!function(n){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this;t.Clipboard=n()}}(function(){var n;return function n(t,i,r){function u(f,o){var h,c,s;if(!i[f]){if(!t[f]){if(h="function"==typeof require&&require,!o&&h)return h(f,!0);if(e)return e(f,!0);c=new Error("Cannot find module '"+f+"'");throw c.code="MODULE_NOT_FOUND",c;}s=i[f]={exports:{}};t[f][0].call(s.exports,function(n){var i=t[f][1][n];return u(i?i:n)},s,s.exports,n,t,i,r)}return i[f].exports}for(var e="function"==typeof require&&require,f=0;f<r.length;f++)u(r[f]);return u}({1:[function(n,t){function r(n,t){for(;n&&n!==document;){if(n.matches(t))return n;n=n.parentNode}}if(Element&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}t.exports=r},{}],2:[function(n,t){function i(n,t,i,u,f){var e=r.apply(this,arguments);return n.addEventListener(i,e,f),{destroy:function(){n.removeEventListener(i,e,f)}}}function r(n,t,i,r){return function(i){i.delegateTarget=u(i.target,t);i.delegateTarget&&r.call(n,i)}}var u=n("./closest");t.exports=i},{"./closest":1}],3:[function(n,t,i){i.node=function(n){return void 0!==n&&n instanceof HTMLElement&&1===n.nodeType};i.nodeList=function(n){var t=Object.prototype.toString.call(n);return void 0!==n&&("[object NodeList]"===t||"[object HTMLCollection]"===t)&&"length"in n&&(0===n.length||i.node(n[0]))};i.string=function(n){return"string"==typeof n||n instanceof String};i.fn=function(n){var t=Object.prototype.toString.call(n);return"[object Function]"===t}},{}],4:[function(n,t){function r(n,t,r){if(!n&&!t&&!r)throw new Error("Missing required arguments");if(!i.string(t))throw new TypeError("Second argument must be a String");if(!i.fn(r))throw new TypeError("Third argument must be a Function");if(i.node(n))return u(n,t,r);if(i.nodeList(n))return f(n,t,r);if(i.string(n))return e(n,t,r);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");}function u(n,t,i){return n.addEventListener(t,i),{destroy:function(){n.removeEventListener(t,i)}}}function f(n,t,i){return Array.prototype.forEach.call(n,function(n){n.addEventListener(t,i)}),{destroy:function(){Array.prototype.forEach.call(n,function(n){n.removeEventListener(t,i)})}}}function e(n,t,i){return o(document.body,n,t,i)}var i=n("./is"),o=n("delegate");t.exports=r},{"./is":3,delegate:2}],5:[function(n,t){function i(n){var t,i,r;return"SELECT"===n.nodeName?(n.focus(),t=n.value):"INPUT"===n.nodeName||"TEXTAREA"===n.nodeName?(n.focus(),n.setSelectionRange(0,n.value.length),t=n.value):(n.hasAttribute("contenteditable")&&n.focus(),i=window.getSelection(),r=document.createRange(),r.selectNodeContents(n),i.removeAllRanges(),i.addRange(r),t=i.toString()),t}t.exports=i},{}],6:[function(n,t){function i(){}i.prototype={on:function(n,t,i){var r=this.e||(this.e={});return(r[n]||(r[n]=[])).push({fn:t,ctx:i}),this},once:function(n,t,i){function r(){u.off(n,r);t.apply(i,arguments)}var u=this;return r._=t,this.on(n,r,i)},emit:function(n){var r=[].slice.call(arguments,1),i=((this.e||(this.e={}))[n]||[]).slice(),t=0,u=i.length;for(t;t<u;t++)i[t].fn.apply(i[t].ctx,r);return this},off:function(n,t){var u=this.e||(this.e={}),r=u[n],f=[],i,e;if(r&&t)for(i=0,e=r.length;i<e;i++)r[i].fn!==t&&r[i].fn._!==t&&f.push(r[i]);return f.length?u[n]=f:delete u[n],this}};t.exports=i},{}],7:[function(t,i,r){!function(u,f){if("function"==typeof n&&n.amd)n(["module","select"],f);else if("undefined"!=typeof r)f(i,t("select"));else{var e={exports:{}};f(e,u.select);u.clipboardAction=e.exports}}(this,function(n,t){"use strict";function r(n){return n&&n.__esModule?n:{"default":n}}function u(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");}var i=r(t),f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},e=function(){function n(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}return function(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),t}}(),o=function(){function n(t){u(this,n);this.resolveOptions(t);this.initSelection()}return e(n,[{key:"resolveOptions",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=n.action;this.emitter=n.emitter;this.target=n.target;this.text=n.text;this.trigger=n.trigger;this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,r="rtl"==document.documentElement.getAttribute("dir"),n;this.removeFake();this.fakeHandlerCallback=function(){return t.removeFake()};this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0;this.fakeElem=document.createElement("textarea");this.fakeElem.style.fontSize="12pt";this.fakeElem.style.border="0";this.fakeElem.style.padding="0";this.fakeElem.style.margin="0";this.fakeElem.style.position="absolute";this.fakeElem.style[r?"right":"left"]="-9999px";n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.addEventListener("focus",window.scrollTo(0,n));this.fakeElem.style.top=n+"px";this.fakeElem.setAttribute("readonly","");this.fakeElem.value=this.text;document.body.appendChild(this.fakeElem);this.selectedText=i.default(this.fakeElem);this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null);this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=i.default(this.target);this.copyText()}},{key:"copyText",value:function(){var n=void 0;try{n=document.execCommand(this.action)}catch(t){n=!1}this.handleResult(n)}},{key:"handleResult",value:function(n){this.emitter.emit(n?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.target&&this.target.blur();window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=n,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"');},get:function(){return this._action}},{key:"target",set:function(n){if(void 0!==n){if(!n||"object"!==("undefined"==typeof n?"undefined":f(n))||1!==n.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&n.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(n.hasAttribute("readonly")||n.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=n}},get:function(){return this._target}}]),n}();n.exports=o})},{select:5}],8:[function(t,i,r){!function(u,f){if("function"==typeof n&&n.amd)n(["module","./clipboard-action","tiny-emitter","good-listener"],f);else if("undefined"!=typeof r)f(i,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var e={exports:{}};f(e,u.clipboardAction,u.tinyEmitter,u.goodListener);u.clipboard=e.exports}}(this,function(n,t,i,r){"use strict";function u(n){return n&&n.__esModule?n:{"default":n}}function e(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");}function o(n,t){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?n:t}function s(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}});t&&(Object.setPrototypeOf?Object.setPrototypeOf(n,t):n.__proto__=t)}function f(n,t){var i="data-clipboard-"+n;if(t.hasAttribute(i))return t.getAttribute(i)}var h=u(t),c=u(i),l=u(r),a=function(){function n(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}return function(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),t}}(),v=function(n){function t(n,i){e(this,t);var r=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.resolveOptions(i),r.listenClick(n),r}return s(t,n),a(t,[{key:"resolveOptions",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof n.action?n.action:this.defaultAction;this.target="function"==typeof n.target?n.target:this.defaultTarget;this.text="function"==typeof n.text?n.text:this.defaultText}},{key:"listenClick",value:function(n){var t=this;this.listener=l.default(n,"click",function(n){return t.onClick(n)})}},{key:"onClick",value:function(n){var t=n.delegateTarget||n.currentTarget;this.clipboardAction&&(this.clipboardAction=null);this.clipboardAction=new h.default({action:this.action(t),target:this.target(t),text:this.text(t),trigger:t,emitter:this})}},{key:"defaultAction",value:function(n){return f("action",n)}},{key:"defaultTarget",value:function(n){var t=f("target",n);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(n){return f("text",n)}},{key:"destroy",value:function(){this.listener.destroy();this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}]),t}(c.default);n.exports=v})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)});!function(){"use strict";var n,t,i="ngclipboard";"object"==typeof module&&module.exports?(n=require("angular"),t=require("clipboard"),module.exports=i):(n=window.angular,t=window.Clipboard);n.module(i,[]).directive("ngclipboard",function(){return{restrict:"A",scope:{ngclipboardSuccess:"&",ngclipboardError:"&"},link:function(n,i){var r=new t(i[0]);r.on("success",function(t){n.$apply(function(){n.ngclipboardSuccess({e:t})})});r.on("error",function(t){n.$apply(function(){n.ngclipboardError({e:t})})})}}})}()