<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://49.235.161.20:80/media/mediawiki/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-clipboard.js</id>
	<title>MediaWiki:Gadget-clipboard.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://49.235.161.20:80/media/mediawiki/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-clipboard.js"/>
	<link rel="alternate" type="text/html" href="http://49.235.161.20:80/media/mediawiki/index.php?title=MediaWiki:Gadget-clipboard.js&amp;action=history"/>
	<updated>2026-06-17T19:46:21Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>http://49.235.161.20:80/media/mediawiki/index.php?title=MediaWiki:Gadget-clipboard.js&amp;diff=584&amp;oldid=prev</id>
		<title>4573去：​创建页面，内容为“/*!  * clipboard.js v2.0.0  * https://zenorocha.github.io/clipboard.js  *   * Licensed MIT © Zeno Rocha  */ (function webpackUniversalModuleDefinition(root, factory) { 	if(typeof exports === 'object' &amp;&amp; typeof module === 'object') 		module.exports = factory(); 	else if(typeof define === 'function' &amp;&amp; define.amd) 		define([], factory); 	else if(typeof exports === 'object') 		exports[&quot;ClipboardJS&quot;] = factory(); 	else 		root[&quot;ClipboardJS&quot;] = factory(); })(this, f…”</title>
		<link rel="alternate" type="text/html" href="http://49.235.161.20:80/media/mediawiki/index.php?title=MediaWiki:Gadget-clipboard.js&amp;diff=584&amp;oldid=prev"/>
		<updated>2024-02-22T20:21:17Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;!  * clipboard.js v2.0.0  * https://zenorocha.github.io/clipboard.js  *   * Licensed MIT © Zeno Rocha：​&lt;/span&gt; (function webpackUniversalModuleDefinition(root, factory) { 	if(typeof exports === &amp;#039;object&amp;#039; &amp;amp;&amp;amp; typeof module === &amp;#039;object&amp;#039;) 		module.exports = factory(); 	else if(typeof define === &amp;#039;function&amp;#039; &amp;amp;&amp;amp; define.amd) 		define([], factory); 	else if(typeof exports === &amp;#039;object&amp;#039;) 		exports[&amp;quot;ClipboardJS&amp;quot;] = factory(); 	else 		root[&amp;quot;ClipboardJS&amp;quot;] = factory(); })(this, f…”&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*!&lt;br /&gt;
 * clipboard.js v2.0.0&lt;br /&gt;
 * https://zenorocha.github.io/clipboard.js&lt;br /&gt;
 * &lt;br /&gt;
 * Licensed MIT © Zeno Rocha&lt;br /&gt;
 */&lt;br /&gt;
(function webpackUniversalModuleDefinition(root, factory) {&lt;br /&gt;
	if(typeof exports === 'object' &amp;amp;&amp;amp; typeof module === 'object')&lt;br /&gt;
		module.exports = factory();&lt;br /&gt;
	else if(typeof define === 'function' &amp;amp;&amp;amp; define.amd)&lt;br /&gt;
		define([], factory);&lt;br /&gt;
	else if(typeof exports === 'object')&lt;br /&gt;
		exports[&amp;quot;ClipboardJS&amp;quot;] = factory();&lt;br /&gt;
	else&lt;br /&gt;
		root[&amp;quot;ClipboardJS&amp;quot;] = factory();&lt;br /&gt;
})(this, function() {&lt;br /&gt;
return /******/ (function(modules) { // webpackBootstrap&lt;br /&gt;
/******/ 	// The module cache&lt;br /&gt;
/******/ 	var installedModules = {};&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// The require function&lt;br /&gt;
/******/ 	function __webpack_require__(moduleId) {&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 		// Check if module is in cache&lt;br /&gt;
/******/ 		if(installedModules[moduleId]) {&lt;br /&gt;
/******/ 			return installedModules[moduleId].exports;&lt;br /&gt;
/******/ 		}&lt;br /&gt;
/******/ 		// Create a new module (and put it into the cache)&lt;br /&gt;
/******/ 		var module = installedModules[moduleId] = {&lt;br /&gt;
/******/ 			i: moduleId,&lt;br /&gt;
/******/ 			l: false,&lt;br /&gt;
/******/ 			exports: {}&lt;br /&gt;
/******/ 		};&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 		// Execute the module function&lt;br /&gt;
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 		// Flag the module as loaded&lt;br /&gt;
/******/ 		module.l = true;&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 		// Return the exports of the module&lt;br /&gt;
/******/ 		return module.exports;&lt;br /&gt;
/******/ 	}&lt;br /&gt;
/******/&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// expose the modules object (__webpack_modules__)&lt;br /&gt;
/******/ 	__webpack_require__.m = modules;&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// expose the module cache&lt;br /&gt;
/******/ 	__webpack_require__.c = installedModules;&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// identity function for calling harmony imports with the correct context&lt;br /&gt;
/******/ 	__webpack_require__.i = function(value) { return value; };&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// define getter function for harmony exports&lt;br /&gt;
/******/ 	__webpack_require__.d = function(exports, name, getter) {&lt;br /&gt;
/******/ 		if(!__webpack_require__.o(exports, name)) {&lt;br /&gt;
/******/ 			Object.defineProperty(exports, name, {&lt;br /&gt;
/******/ 				configurable: false,&lt;br /&gt;
/******/ 				enumerable: true,&lt;br /&gt;
/******/ 				get: getter&lt;br /&gt;
/******/ 			});&lt;br /&gt;
/******/ 		}&lt;br /&gt;
/******/ 	};&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// getDefaultExport function for compatibility with non-harmony modules&lt;br /&gt;
/******/ 	__webpack_require__.n = function(module) {&lt;br /&gt;
/******/ 		var getter = module &amp;amp;&amp;amp; module.__esModule ?&lt;br /&gt;
/******/ 			function getDefault() { return module['default']; } :&lt;br /&gt;
/******/ 			function getModuleExports() { return module; };&lt;br /&gt;
/******/ 		__webpack_require__.d(getter, 'a', getter);&lt;br /&gt;
/******/ 		return getter;&lt;br /&gt;
/******/ 	};&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// Object.prototype.hasOwnProperty.call&lt;br /&gt;
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// __webpack_public_path__&lt;br /&gt;
/******/ 	__webpack_require__.p = &amp;quot;&amp;quot;;&lt;br /&gt;
/******/&lt;br /&gt;
/******/ 	// Load entry module and return exports&lt;br /&gt;
/******/ 	return __webpack_require__(__webpack_require__.s = 3);&lt;br /&gt;
/******/ })&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/******/ ([&lt;br /&gt;
/* 0 */&lt;br /&gt;
/***/ (function(module, exports, __webpack_require__) {&lt;br /&gt;
&lt;br /&gt;
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {&lt;br /&gt;
    if (true) {&lt;br /&gt;
        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(7)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),&lt;br /&gt;
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?&lt;br /&gt;
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),&lt;br /&gt;
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined &amp;amp;&amp;amp; (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));&lt;br /&gt;
    } else if (typeof exports !== &amp;quot;undefined&amp;quot;) {&lt;br /&gt;
        factory(module, require('select'));&lt;br /&gt;
    } else {&lt;br /&gt;
        var mod = {&lt;br /&gt;
            exports: {}&lt;br /&gt;
        };&lt;br /&gt;
        factory(mod, global.select);&lt;br /&gt;
        global.clipboardAction = mod.exports;&lt;br /&gt;
    }&lt;br /&gt;
})(this, function (module, _select) {&lt;br /&gt;
    'use strict';&lt;br /&gt;
&lt;br /&gt;
    var _select2 = _interopRequireDefault(_select);&lt;br /&gt;
&lt;br /&gt;
    function _interopRequireDefault(obj) {&lt;br /&gt;
    	if(obj &amp;amp;&amp;amp; obj.__esModule){&lt;br /&gt;
    		return obj;&lt;br /&gt;
    	}else{&lt;br /&gt;
    		return {'default': obj};&lt;br /&gt;
    	}&lt;br /&gt;
    	/*&lt;br /&gt;
        return obj &amp;amp;&amp;amp; obj.__esModule ? obj : {&lt;br /&gt;
            default: obj&lt;br /&gt;
        };&lt;br /&gt;
        */&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var _typeof = typeof Symbol === &amp;quot;function&amp;quot; &amp;amp;&amp;amp; typeof Symbol.iterator === &amp;quot;symbol&amp;quot; ? function (obj) {&lt;br /&gt;
        return typeof obj;&lt;br /&gt;
    } : function (obj) {&lt;br /&gt;
        return obj &amp;amp;&amp;amp; typeof Symbol === &amp;quot;function&amp;quot; &amp;amp;&amp;amp; obj.constructor === Symbol &amp;amp;&amp;amp; obj !== Symbol.prototype ? &amp;quot;symbol&amp;quot; : typeof obj;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    function _classCallCheck(instance, Constructor) {&lt;br /&gt;
        if (!(instance instanceof Constructor)) {&lt;br /&gt;
            throw new TypeError(&amp;quot;Cannot call a class as a function&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var _createClass = function () {&lt;br /&gt;
        function defineProperties(target, props) {&lt;br /&gt;
            for (var i = 0; i &amp;lt; props.length; i++) {&lt;br /&gt;
                var descriptor = props[i];&lt;br /&gt;
                descriptor.enumerable = descriptor.enumerable || false;&lt;br /&gt;
                descriptor.configurable = true;&lt;br /&gt;
                if (&amp;quot;value&amp;quot; in descriptor) descriptor.writable = true;&lt;br /&gt;
                Object.defineProperty(target, descriptor.key, descriptor);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return function (Constructor, protoProps, staticProps) {&lt;br /&gt;
            if (protoProps) defineProperties(Constructor.prototype, protoProps);&lt;br /&gt;
            if (staticProps) defineProperties(Constructor, staticProps);&lt;br /&gt;
            return Constructor;&lt;br /&gt;
        };&lt;br /&gt;
    }();&lt;br /&gt;
&lt;br /&gt;
    var ClipboardAction = function () {&lt;br /&gt;
        /**&lt;br /&gt;
         * @param {Object} options&lt;br /&gt;
         */&lt;br /&gt;
        function ClipboardAction(options) {&lt;br /&gt;
            _classCallCheck(this, ClipboardAction);&lt;br /&gt;
&lt;br /&gt;
            this.resolveOptions(options);&lt;br /&gt;
            this.initSelection();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /**&lt;br /&gt;
         * Defines base properties passed from constructor.&lt;br /&gt;
         * @param {Object} options&lt;br /&gt;
         */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        _createClass(ClipboardAction, [{&lt;br /&gt;
            key: 'resolveOptions',&lt;br /&gt;
            value: function resolveOptions() {&lt;br /&gt;
                var options = arguments.length &amp;gt; 0 &amp;amp;&amp;amp; arguments[0] !== undefined ? arguments[0] : {};&lt;br /&gt;
&lt;br /&gt;
                this.action = options.action;&lt;br /&gt;
                this.container = options.container;&lt;br /&gt;
                this.emitter = options.emitter;&lt;br /&gt;
                this.target = options.target;&lt;br /&gt;
                this.text = options.text;&lt;br /&gt;
                this.trigger = options.trigger;&lt;br /&gt;
&lt;br /&gt;
                this.selectedText = '';&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'initSelection',&lt;br /&gt;
            value: function initSelection() {&lt;br /&gt;
                if (this.text) {&lt;br /&gt;
                    this.selectFake();&lt;br /&gt;
                } else if (this.target) {&lt;br /&gt;
                    this.selectTarget();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'selectFake',&lt;br /&gt;
            value: function selectFake() {&lt;br /&gt;
                var _this = this;&lt;br /&gt;
&lt;br /&gt;
                var isRTL = document.documentElement.getAttribute('dir') == 'rtl';&lt;br /&gt;
&lt;br /&gt;
                this.removeFake();&lt;br /&gt;
&lt;br /&gt;
                this.fakeHandlerCallback = function () {&lt;br /&gt;
                    return _this.removeFake();&lt;br /&gt;
                };&lt;br /&gt;
                this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;&lt;br /&gt;
&lt;br /&gt;
                this.fakeElem = document.createElement('textarea');&lt;br /&gt;
                // Prevent zooming on iOS&lt;br /&gt;
                this.fakeElem.style.fontSize = '12pt';&lt;br /&gt;
                // Reset box model&lt;br /&gt;
                this.fakeElem.style.border = '0';&lt;br /&gt;
                this.fakeElem.style.padding = '0';&lt;br /&gt;
                this.fakeElem.style.margin = '0';&lt;br /&gt;
                // Move element out of screen horizontally&lt;br /&gt;
                this.fakeElem.style.position = 'absolute';&lt;br /&gt;
                this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';&lt;br /&gt;
                // Move element to the same position vertically&lt;br /&gt;
                var yPosition = window.pageYOffset || document.documentElement.scrollTop;&lt;br /&gt;
                this.fakeElem.style.top = yPosition + 'px';&lt;br /&gt;
&lt;br /&gt;
                this.fakeElem.setAttribute('readonly', '');&lt;br /&gt;
                this.fakeElem.value = this.text;&lt;br /&gt;
&lt;br /&gt;
                this.container.appendChild(this.fakeElem);&lt;br /&gt;
&lt;br /&gt;
                this.selectedText =(0, _select2['default'])(this.fakeElem);&lt;br /&gt;
                this.copyText();&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'removeFake',&lt;br /&gt;
            value: function removeFake() {&lt;br /&gt;
                if (this.fakeHandler) {&lt;br /&gt;
                    this.container.removeEventListener('click', this.fakeHandlerCallback);&lt;br /&gt;
                    this.fakeHandler = null;&lt;br /&gt;
                    this.fakeHandlerCallback = null;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                if (this.fakeElem) {&lt;br /&gt;
                    this.container.removeChild(this.fakeElem);&lt;br /&gt;
                    this.fakeElem = null;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'selectTarget',&lt;br /&gt;
            value: function selectTarget() {&lt;br /&gt;
                this.selectedText = (0, _select2['default'])(this.target);&lt;br /&gt;
                this.copyText();&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'copyText',&lt;br /&gt;
            value: function copyText() {&lt;br /&gt;
                var succeeded = void 0;&lt;br /&gt;
&lt;br /&gt;
                try {&lt;br /&gt;
                    succeeded = document.execCommand(this.action);&lt;br /&gt;
                } catch (err) {&lt;br /&gt;
                    succeeded = false;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                this.handleResult(succeeded);&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'handleResult',&lt;br /&gt;
            value: function handleResult(succeeded) {&lt;br /&gt;
                this.emitter.emit(succeeded ? 'success' : 'error', {&lt;br /&gt;
                    action: this.action,&lt;br /&gt;
                    text: this.selectedText,&lt;br /&gt;
                    trigger: this.trigger,&lt;br /&gt;
                    clearSelection: this.clearSelection.bind(this)&lt;br /&gt;
                });&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'clearSelection',&lt;br /&gt;
            value: function clearSelection() {&lt;br /&gt;
                if (this.trigger) {&lt;br /&gt;
                    this.trigger.focus();&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                window.getSelection().removeAllRanges();&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'destroy',&lt;br /&gt;
            value: function destroy() {&lt;br /&gt;
                this.removeFake();&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'action',&lt;br /&gt;
            set: function set() {&lt;br /&gt;
                var action = arguments.length &amp;gt; 0 &amp;amp;&amp;amp; arguments[0] !== undefined ? arguments[0] : 'copy';&lt;br /&gt;
&lt;br /&gt;
                this._action = action;&lt;br /&gt;
&lt;br /&gt;
                if (this._action !== 'copy' &amp;amp;&amp;amp; this._action !== 'cut') {&lt;br /&gt;
                    throw new Error('Invalid &amp;quot;action&amp;quot; value, use either &amp;quot;copy&amp;quot; or &amp;quot;cut&amp;quot;');&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            get: function get() {&lt;br /&gt;
                return this._action;&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'target',&lt;br /&gt;
            set: function set(target) {&lt;br /&gt;
                if (target !== undefined) {&lt;br /&gt;
                    if (target &amp;amp;&amp;amp; (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' &amp;amp;&amp;amp; target.nodeType === 1) {&lt;br /&gt;
                        if (this.action === 'copy' &amp;amp;&amp;amp; target.hasAttribute('disabled')) {&lt;br /&gt;
                            throw new Error('Invalid &amp;quot;target&amp;quot; attribute. Please use &amp;quot;readonly&amp;quot; instead of &amp;quot;disabled&amp;quot; attribute');&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if (this.action === 'cut' &amp;amp;&amp;amp; (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {&lt;br /&gt;
                            throw new Error('Invalid &amp;quot;target&amp;quot; attribute. You can\'t cut text from elements with &amp;quot;readonly&amp;quot; or &amp;quot;disabled&amp;quot; attributes');&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        this._target = target;&lt;br /&gt;
                    } else {&lt;br /&gt;
                        throw new Error('Invalid &amp;quot;target&amp;quot; value, use a valid Element');&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            get: function get() {&lt;br /&gt;
                return this._target;&lt;br /&gt;
            }&lt;br /&gt;
        }]);&lt;br /&gt;
&lt;br /&gt;
        return ClipboardAction;&lt;br /&gt;
    }();&lt;br /&gt;
&lt;br /&gt;
    module.exports = ClipboardAction;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/***/ }),&lt;br /&gt;
/* 1 */&lt;br /&gt;
/***/ (function(module, exports, __webpack_require__) {&lt;br /&gt;
&lt;br /&gt;
var is = __webpack_require__(6);&lt;br /&gt;
var delegate = __webpack_require__(5);&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Validates all params and calls the right&lt;br /&gt;
 * listener function based on its target type.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {String|HTMLElement|HTMLCollection|NodeList} target&lt;br /&gt;
 * @param {String} type&lt;br /&gt;
 * @param {Function} callback&lt;br /&gt;
 * @return {Object}&lt;br /&gt;
 */&lt;br /&gt;
function listen(target, type, callback) {&lt;br /&gt;
    if (!target &amp;amp;&amp;amp; !type &amp;amp;&amp;amp; !callback) {&lt;br /&gt;
        throw new Error('Missing required arguments');&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!is.string(type)) {&lt;br /&gt;
        throw new TypeError('Second argument must be a String');&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!is.fn(callback)) {&lt;br /&gt;
        throw new TypeError('Third argument must be a Function');&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (is.node(target)) {&lt;br /&gt;
        return listenNode(target, type, callback);&lt;br /&gt;
    }&lt;br /&gt;
    else if (is.nodeList(target)) {&lt;br /&gt;
        return listenNodeList(target, type, callback);&lt;br /&gt;
    }&lt;br /&gt;
    else if (is.string(target)) {&lt;br /&gt;
        return listenSelector(target, type, callback);&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Adds an event listener to a HTML element&lt;br /&gt;
 * and returns a remove listener function.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {HTMLElement} node&lt;br /&gt;
 * @param {String} type&lt;br /&gt;
 * @param {Function} callback&lt;br /&gt;
 * @return {Object}&lt;br /&gt;
 */&lt;br /&gt;
function listenNode(node, type, callback) {&lt;br /&gt;
    node.addEventListener(type, callback);&lt;br /&gt;
&lt;br /&gt;
    return {&lt;br /&gt;
        destroy: function() {&lt;br /&gt;
            node.removeEventListener(type, callback);&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Add an event listener to a list of HTML elements&lt;br /&gt;
 * and returns a remove listener function.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {NodeList|HTMLCollection} nodeList&lt;br /&gt;
 * @param {String} type&lt;br /&gt;
 * @param {Function} callback&lt;br /&gt;
 * @return {Object}&lt;br /&gt;
 */&lt;br /&gt;
function listenNodeList(nodeList, type, callback) {&lt;br /&gt;
    Array.prototype.forEach.call(nodeList, function(node) {&lt;br /&gt;
        node.addEventListener(type, callback);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    return {&lt;br /&gt;
        destroy: function() {&lt;br /&gt;
            Array.prototype.forEach.call(nodeList, function(node) {&lt;br /&gt;
                node.removeEventListener(type, callback);&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Add an event listener to a selector&lt;br /&gt;
 * and returns a remove listener function.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {String} selector&lt;br /&gt;
 * @param {String} type&lt;br /&gt;
 * @param {Function} callback&lt;br /&gt;
 * @return {Object}&lt;br /&gt;
 */&lt;br /&gt;
function listenSelector(selector, type, callback) {&lt;br /&gt;
    return delegate(document.body, selector, type, callback);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module.exports = listen;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***/ }),&lt;br /&gt;
/* 2 */&lt;br /&gt;
/***/ (function(module, exports) {&lt;br /&gt;
&lt;br /&gt;
function E () {&lt;br /&gt;
  // Keep this empty so it's easier to inherit from&lt;br /&gt;
  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
E.prototype = {&lt;br /&gt;
  on: function (name, callback, ctx) {&lt;br /&gt;
    var e = this.e || (this.e = {});&lt;br /&gt;
&lt;br /&gt;
    (e[name] || (e[name] = [])).push({&lt;br /&gt;
      fn: callback,&lt;br /&gt;
      ctx: ctx&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    return this;&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  once: function (name, callback, ctx) {&lt;br /&gt;
    var self = this;&lt;br /&gt;
    function listener () {&lt;br /&gt;
      self.off(name, listener);&lt;br /&gt;
      callback.apply(ctx, arguments);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    listener._ = callback;&lt;br /&gt;
    return this.on(name, listener, ctx);&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  emit: function (name) {&lt;br /&gt;
    var data = [].slice.call(arguments, 1);&lt;br /&gt;
    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();&lt;br /&gt;
    var i = 0;&lt;br /&gt;
    var len = evtArr.length;&lt;br /&gt;
&lt;br /&gt;
    for (i; i &amp;lt; len; i++) {&lt;br /&gt;
      evtArr[i].fn.apply(evtArr[i].ctx, data);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return this;&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  off: function (name, callback) {&lt;br /&gt;
    var e = this.e || (this.e = {});&lt;br /&gt;
    var evts = e[name];&lt;br /&gt;
    var liveEvents = [];&lt;br /&gt;
&lt;br /&gt;
    if (evts &amp;amp;&amp;amp; callback) {&lt;br /&gt;
      for (var i = 0, len = evts.length; i &amp;lt; len; i++) {&lt;br /&gt;
        if (evts[i].fn !== callback &amp;amp;&amp;amp; evts[i].fn._ !== callback)&lt;br /&gt;
          liveEvents.push(evts[i]);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Remove event from queue to prevent memory leak&lt;br /&gt;
    // Suggested by https://github.com/lazd&lt;br /&gt;
    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910&lt;br /&gt;
&lt;br /&gt;
    (liveEvents.length)&lt;br /&gt;
      ? e[name] = liveEvents&lt;br /&gt;
      : delete e[name];&lt;br /&gt;
&lt;br /&gt;
    return this;&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
module.exports = E;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***/ }),&lt;br /&gt;
/* 3 */&lt;br /&gt;
/***/ (function(module, exports, __webpack_require__) {&lt;br /&gt;
&lt;br /&gt;
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {&lt;br /&gt;
    if (true) {&lt;br /&gt;
        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(0), __webpack_require__(2), __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),&lt;br /&gt;
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?&lt;br /&gt;
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),&lt;br /&gt;
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined &amp;amp;&amp;amp; (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));&lt;br /&gt;
    } else if (typeof exports !== &amp;quot;undefined&amp;quot;) {&lt;br /&gt;
        factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));&lt;br /&gt;
    } else {&lt;br /&gt;
        var mod = {&lt;br /&gt;
            exports: {}&lt;br /&gt;
        };&lt;br /&gt;
        factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);&lt;br /&gt;
        global.clipboard = mod.exports;&lt;br /&gt;
    }&lt;br /&gt;
})(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {&lt;br /&gt;
    'use strict';&lt;br /&gt;
&lt;br /&gt;
    var _clipboardAction2 = _interopRequireDefault(_clipboardAction);&lt;br /&gt;
&lt;br /&gt;
    var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);&lt;br /&gt;
&lt;br /&gt;
    var _goodListener2 = _interopRequireDefault(_goodListener);&lt;br /&gt;
&lt;br /&gt;
    function _interopRequireDefault(obj) {&lt;br /&gt;
        return obj &amp;amp;&amp;amp; obj.__esModule ? obj : {&lt;br /&gt;
            'default': obj&lt;br /&gt;
        };&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var _typeof = typeof Symbol === &amp;quot;function&amp;quot; &amp;amp;&amp;amp; typeof Symbol.iterator === &amp;quot;symbol&amp;quot; ? function (obj) {&lt;br /&gt;
        return typeof obj;&lt;br /&gt;
    } : function (obj) {&lt;br /&gt;
        return obj &amp;amp;&amp;amp; typeof Symbol === &amp;quot;function&amp;quot; &amp;amp;&amp;amp; obj.constructor === Symbol &amp;amp;&amp;amp; obj !== Symbol.prototype ? &amp;quot;symbol&amp;quot; : typeof obj;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    function _classCallCheck(instance, Constructor) {&lt;br /&gt;
        if (!(instance instanceof Constructor)) {&lt;br /&gt;
            throw new TypeError(&amp;quot;Cannot call a class as a function&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var _createClass = function () {&lt;br /&gt;
        function defineProperties(target, props) {&lt;br /&gt;
            for (var i = 0; i &amp;lt; props.length; i++) {&lt;br /&gt;
                var descriptor = props[i];&lt;br /&gt;
                descriptor.enumerable = descriptor.enumerable || false;&lt;br /&gt;
                descriptor.configurable = true;&lt;br /&gt;
                if (&amp;quot;value&amp;quot; in descriptor) descriptor.writable = true;&lt;br /&gt;
                Object.defineProperty(target, descriptor.key, descriptor);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return function (Constructor, protoProps, staticProps) {&lt;br /&gt;
            if (protoProps) defineProperties(Constructor.prototype, protoProps);&lt;br /&gt;
            if (staticProps) defineProperties(Constructor, staticProps);&lt;br /&gt;
            return Constructor;&lt;br /&gt;
        };&lt;br /&gt;
    }();&lt;br /&gt;
&lt;br /&gt;
    function _possibleConstructorReturn(self, call) {&lt;br /&gt;
        if (!self) {&lt;br /&gt;
            throw new ReferenceError(&amp;quot;this hasn't been initialised - super() hasn't been called&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return call &amp;amp;&amp;amp; (typeof call === &amp;quot;object&amp;quot; || typeof call === &amp;quot;function&amp;quot;) ? call : self;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function _inherits(subClass, superClass) {&lt;br /&gt;
        if (typeof superClass !== &amp;quot;function&amp;quot; &amp;amp;&amp;amp; superClass !== null) {&lt;br /&gt;
            throw new TypeError(&amp;quot;Super expression must either be null or a function, not &amp;quot; + typeof superClass);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        subClass.prototype = Object.create(superClass &amp;amp;&amp;amp; superClass.prototype, {&lt;br /&gt;
            constructor: {&lt;br /&gt;
                value: subClass,&lt;br /&gt;
                enumerable: false,&lt;br /&gt;
                writable: true,&lt;br /&gt;
                configurable: true&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var Clipboard = function (_Emitter) {&lt;br /&gt;
        _inherits(Clipboard, _Emitter);&lt;br /&gt;
&lt;br /&gt;
        /**&lt;br /&gt;
         * @param {String|HTMLElement|HTMLCollection|NodeList} trigger&lt;br /&gt;
         * @param {Object} options&lt;br /&gt;
         */&lt;br /&gt;
        function Clipboard(trigger, options) {&lt;br /&gt;
            _classCallCheck(this, Clipboard);&lt;br /&gt;
&lt;br /&gt;
            var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));&lt;br /&gt;
&lt;br /&gt;
            _this.resolveOptions(options);&lt;br /&gt;
            _this.listenClick(trigger);&lt;br /&gt;
            return _this;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /**&lt;br /&gt;
         * Defines if attributes would be resolved using internal setter functions&lt;br /&gt;
         * or custom functions that were passed in the constructor.&lt;br /&gt;
         * @param {Object} options&lt;br /&gt;
         */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        _createClass(Clipboard, [{&lt;br /&gt;
            key: 'resolveOptions',&lt;br /&gt;
            value: function resolveOptions() {&lt;br /&gt;
                var options = arguments.length &amp;gt; 0 &amp;amp;&amp;amp; arguments[0] !== undefined ? arguments[0] : {};&lt;br /&gt;
&lt;br /&gt;
                this.action = typeof options.action === 'function' ? options.action : this.defaultAction;&lt;br /&gt;
                this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;&lt;br /&gt;
                this.text = typeof options.text === 'function' ? options.text : this.defaultText;&lt;br /&gt;
                this.container = _typeof(options.container) === 'object' ? options.container : document.body;&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'listenClick',&lt;br /&gt;
            value: function listenClick(trigger) {&lt;br /&gt;
                var _this2 = this;&lt;br /&gt;
&lt;br /&gt;
                this.listener = (0, _goodListener2['default'])(trigger, 'click', function (e) {&lt;br /&gt;
                    return _this2.onClick(e);&lt;br /&gt;
                });&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'onClick',&lt;br /&gt;
            value: function onClick(e) {&lt;br /&gt;
                var trigger = e.delegateTarget || e.currentTarget;&lt;br /&gt;
&lt;br /&gt;
                if (this.clipboardAction) {&lt;br /&gt;
                    this.clipboardAction = null;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                this.clipboardAction = new _clipboardAction2['default']({&lt;br /&gt;
                    action: this.action(trigger),&lt;br /&gt;
                    target: this.target(trigger),&lt;br /&gt;
                    text: this.text(trigger),&lt;br /&gt;
                    container: this.container,&lt;br /&gt;
                    trigger: trigger,&lt;br /&gt;
                    emitter: this&lt;br /&gt;
                });&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'defaultAction',&lt;br /&gt;
            value: function defaultAction(trigger) {&lt;br /&gt;
                return getAttributeValue('action', trigger);&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'defaultTarget',&lt;br /&gt;
            value: function defaultTarget(trigger) {&lt;br /&gt;
                var selector = getAttributeValue('target', trigger);&lt;br /&gt;
&lt;br /&gt;
                if (selector) {&lt;br /&gt;
                    return document.querySelector(selector);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'defaultText',&lt;br /&gt;
            value: function defaultText(trigger) {&lt;br /&gt;
                return getAttributeValue('text', trigger);&lt;br /&gt;
            }&lt;br /&gt;
        }, {&lt;br /&gt;
            key: 'destroy',&lt;br /&gt;
            value: function destroy() {&lt;br /&gt;
                this.listener.destroy();&lt;br /&gt;
&lt;br /&gt;
                if (this.clipboardAction) {&lt;br /&gt;
                    this.clipboardAction.destroy();&lt;br /&gt;
                    this.clipboardAction = null;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }], [{&lt;br /&gt;
            key: 'isSupported',&lt;br /&gt;
            value: function isSupported() {&lt;br /&gt;
                var action = arguments.length &amp;gt; 0 &amp;amp;&amp;amp; arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];&lt;br /&gt;
&lt;br /&gt;
                var actions = typeof action === 'string' ? [action] : action;&lt;br /&gt;
                var support = !!document.queryCommandSupported;&lt;br /&gt;
&lt;br /&gt;
                actions.forEach(function (action) {&lt;br /&gt;
                    support = support &amp;amp;&amp;amp; !!document.queryCommandSupported(action);&lt;br /&gt;
                });&lt;br /&gt;
&lt;br /&gt;
                return support;&lt;br /&gt;
            }&lt;br /&gt;
        }]);&lt;br /&gt;
&lt;br /&gt;
        return Clipboard;&lt;br /&gt;
    }(_tinyEmitter2['default']);&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Helper function to retrieve attribute value.&lt;br /&gt;
     * @param {String} suffix&lt;br /&gt;
     * @param {Element} element&lt;br /&gt;
     */&lt;br /&gt;
    function getAttributeValue(suffix, element) {&lt;br /&gt;
        var attribute = 'data-clipboard-' + suffix;&lt;br /&gt;
&lt;br /&gt;
        if (!element.hasAttribute(attribute)) {&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return element.getAttribute(attribute);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    module.exports = Clipboard;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/***/ }),&lt;br /&gt;
/* 4 */&lt;br /&gt;
/***/ (function(module, exports) {&lt;br /&gt;
&lt;br /&gt;
var DOCUMENT_NODE_TYPE = 9;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * A polyfill for Element.matches()&lt;br /&gt;
 */&lt;br /&gt;
if (typeof Element !== 'undefined' &amp;amp;&amp;amp; !Element.prototype.matches) {&lt;br /&gt;
    var proto = Element.prototype;&lt;br /&gt;
&lt;br /&gt;
    proto.matches = proto.matchesSelector ||&lt;br /&gt;
                    proto.mozMatchesSelector ||&lt;br /&gt;
                    proto.msMatchesSelector ||&lt;br /&gt;
                    proto.oMatchesSelector ||&lt;br /&gt;
                    proto.webkitMatchesSelector;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Finds the closest parent that matches a selector.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Element} element&lt;br /&gt;
 * @param {String} selector&lt;br /&gt;
 * @return {Function}&lt;br /&gt;
 */&lt;br /&gt;
function closest (element, selector) {&lt;br /&gt;
    while (element &amp;amp;&amp;amp; element.nodeType !== DOCUMENT_NODE_TYPE) {&lt;br /&gt;
        if (typeof element.matches === 'function' &amp;amp;&amp;amp;&lt;br /&gt;
            element.matches(selector)) {&lt;br /&gt;
          return element;&lt;br /&gt;
        }&lt;br /&gt;
        element = element.parentNode;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module.exports = closest;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***/ }),&lt;br /&gt;
/* 5 */&lt;br /&gt;
/***/ (function(module, exports, __webpack_require__) {&lt;br /&gt;
&lt;br /&gt;
var closest = __webpack_require__(4);&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Delegates event to a selector.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Element} element&lt;br /&gt;
 * @param {String} selector&lt;br /&gt;
 * @param {String} type&lt;br /&gt;
 * @param {Function} callback&lt;br /&gt;
 * @param {Boolean} useCapture&lt;br /&gt;
 * @return {Object}&lt;br /&gt;
 */&lt;br /&gt;
function _delegate(element, selector, type, callback, useCapture) {&lt;br /&gt;
    var listenerFn = listener.apply(this, arguments);&lt;br /&gt;
&lt;br /&gt;
    element.addEventListener(type, listenerFn, useCapture);&lt;br /&gt;
&lt;br /&gt;
    return {&lt;br /&gt;
        destroy: function() {&lt;br /&gt;
            element.removeEventListener(type, listenerFn, useCapture);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Delegates event to a selector.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Element|String|Array} [elements]&lt;br /&gt;
 * @param {String} selector&lt;br /&gt;
 * @param {String} type&lt;br /&gt;
 * @param {Function} callback&lt;br /&gt;
 * @param {Boolean} useCapture&lt;br /&gt;
 * @return {Object}&lt;br /&gt;
 */&lt;br /&gt;
function delegate(elements, selector, type, callback, useCapture) {&lt;br /&gt;
    // Handle the regular Element usage&lt;br /&gt;
    if (typeof elements.addEventListener === 'function') {&lt;br /&gt;
        return _delegate.apply(null, arguments);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Handle Element-less usage, it defaults to global delegation&lt;br /&gt;
    if (typeof type === 'function') {&lt;br /&gt;
        // Use `document` as the first parameter, then apply arguments&lt;br /&gt;
        // This is a short way to .unshift `arguments` without running into deoptimizations&lt;br /&gt;
        return _delegate.bind(null, document).apply(null, arguments);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Handle Selector-based usage&lt;br /&gt;
    if (typeof elements === 'string') {&lt;br /&gt;
        elements = document.querySelectorAll(elements);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Handle Array-like based usage&lt;br /&gt;
    return Array.prototype.map.call(elements, function (element) {&lt;br /&gt;
        return _delegate(element, selector, type, callback, useCapture);&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Finds closest match and invokes callback.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Element} element&lt;br /&gt;
 * @param {String} selector&lt;br /&gt;
 * @param {String} type&lt;br /&gt;
 * @param {Function} callback&lt;br /&gt;
 * @return {Function}&lt;br /&gt;
 */&lt;br /&gt;
function listener(element, selector, type, callback) {&lt;br /&gt;
    return function(e) {&lt;br /&gt;
        e.delegateTarget = closest(e.target, selector);&lt;br /&gt;
&lt;br /&gt;
        if (e.delegateTarget) {&lt;br /&gt;
            callback.call(element, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module.exports = delegate;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***/ }),&lt;br /&gt;
/* 6 */&lt;br /&gt;
/***/ (function(module, exports) {&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Check if argument is a HTML element.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Object} value&lt;br /&gt;
 * @return {Boolean}&lt;br /&gt;
 */&lt;br /&gt;
exports.node = function(value) {&lt;br /&gt;
    return value !== undefined&lt;br /&gt;
        &amp;amp;&amp;amp; value instanceof HTMLElement&lt;br /&gt;
        &amp;amp;&amp;amp; value.nodeType === 1;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Check if argument is a list of HTML elements.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Object} value&lt;br /&gt;
 * @return {Boolean}&lt;br /&gt;
 */&lt;br /&gt;
exports.nodeList = function(value) {&lt;br /&gt;
    var type = Object.prototype.toString.call(value);&lt;br /&gt;
&lt;br /&gt;
    return value !== undefined&lt;br /&gt;
        &amp;amp;&amp;amp; (type === '[object NodeList]' || type === '[object HTMLCollection]')&lt;br /&gt;
        &amp;amp;&amp;amp; ('length' in value)&lt;br /&gt;
        &amp;amp;&amp;amp; (value.length === 0 || exports.node(value[0]));&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Check if argument is a string.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Object} value&lt;br /&gt;
 * @return {Boolean}&lt;br /&gt;
 */&lt;br /&gt;
exports.string = function(value) {&lt;br /&gt;
    return typeof value === 'string'&lt;br /&gt;
        || value instanceof String;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Check if argument is a function.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Object} value&lt;br /&gt;
 * @return {Boolean}&lt;br /&gt;
 */&lt;br /&gt;
exports.fn = function(value) {&lt;br /&gt;
    var type = Object.prototype.toString.call(value);&lt;br /&gt;
&lt;br /&gt;
    return type === '[object Function]';&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***/ }),&lt;br /&gt;
/* 7 */&lt;br /&gt;
/***/ (function(module, exports) {&lt;br /&gt;
&lt;br /&gt;
function select(element) {&lt;br /&gt;
    var selectedText;&lt;br /&gt;
&lt;br /&gt;
    if (element.nodeName === 'SELECT') {&lt;br /&gt;
        element.focus();&lt;br /&gt;
&lt;br /&gt;
        selectedText = element.value;&lt;br /&gt;
    }&lt;br /&gt;
    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {&lt;br /&gt;
        var isReadOnly = element.hasAttribute('readonly');&lt;br /&gt;
&lt;br /&gt;
        if (!isReadOnly) {&lt;br /&gt;
            element.setAttribute('readonly', '');&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        element.select();&lt;br /&gt;
        element.setSelectionRange(0, element.value.length);&lt;br /&gt;
&lt;br /&gt;
        if (!isReadOnly) {&lt;br /&gt;
            element.removeAttribute('readonly');&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        selectedText = element.value;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        if (element.hasAttribute('contenteditable')) {&lt;br /&gt;
            element.focus();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var selection = window.getSelection();&lt;br /&gt;
        var range = document.createRange();&lt;br /&gt;
&lt;br /&gt;
        range.selectNodeContents(element);&lt;br /&gt;
        selection.removeAllRanges();&lt;br /&gt;
        selection.addRange(range);&lt;br /&gt;
&lt;br /&gt;
        selectedText = selection.toString();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return selectedText;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module.exports = select;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***/ })&lt;br /&gt;
/******/ ]);&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>4573去</name></author>
	</entry>
</feed>