clipboard
Advanced tools
Comparing version 1.7.1 to 2.0.0
/*! | ||
* clipboard.js v1.7.1 | ||
* clipboard.js v2.0.0 | ||
* https://zenorocha.github.io/clipboard.js | ||
* | ||
* | ||
* Licensed MIT © Zeno Rocha | ||
*/ | ||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Clipboard = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
var DOCUMENT_NODE_TYPE = 9; | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
if(typeof exports === 'object' && typeof module === 'object') | ||
module.exports = factory(); | ||
else if(typeof define === 'function' && define.amd) | ||
define([], factory); | ||
else if(typeof exports === 'object') | ||
exports["ClipboardJS"] = factory(); | ||
else | ||
root["ClipboardJS"] = factory(); | ||
})(this, function() { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
/******/ // The module cache | ||
/******/ var installedModules = {}; | ||
/******/ | ||
/******/ // The require function | ||
/******/ function __webpack_require__(moduleId) { | ||
/******/ | ||
/******/ // Check if module is in cache | ||
/******/ if(installedModules[moduleId]) { | ||
/******/ return installedModules[moduleId].exports; | ||
/******/ } | ||
/******/ // Create a new module (and put it into the cache) | ||
/******/ var module = installedModules[moduleId] = { | ||
/******/ i: moduleId, | ||
/******/ l: false, | ||
/******/ exports: {} | ||
/******/ }; | ||
/******/ | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/******/ | ||
/******/ // Flag the module as loaded | ||
/******/ module.l = true; | ||
/******/ | ||
/******/ // Return the exports of the module | ||
/******/ return module.exports; | ||
/******/ } | ||
/******/ | ||
/******/ | ||
/******/ // expose the modules object (__webpack_modules__) | ||
/******/ __webpack_require__.m = modules; | ||
/******/ | ||
/******/ // expose the module cache | ||
/******/ __webpack_require__.c = installedModules; | ||
/******/ | ||
/******/ // identity function for calling harmony imports with the correct context | ||
/******/ __webpack_require__.i = function(value) { return value; }; | ||
/******/ | ||
/******/ // define getter function for harmony exports | ||
/******/ __webpack_require__.d = function(exports, name, getter) { | ||
/******/ if(!__webpack_require__.o(exports, name)) { | ||
/******/ Object.defineProperty(exports, name, { | ||
/******/ configurable: false, | ||
/******/ enumerable: true, | ||
/******/ get: getter | ||
/******/ }); | ||
/******/ } | ||
/******/ }; | ||
/******/ | ||
/******/ // getDefaultExport function for compatibility with non-harmony modules | ||
/******/ __webpack_require__.n = function(module) { | ||
/******/ var getter = module && module.__esModule ? | ||
/******/ function getDefault() { return module['default']; } : | ||
/******/ function getModuleExports() { return module; }; | ||
/******/ __webpack_require__.d(getter, 'a', getter); | ||
/******/ return getter; | ||
/******/ }; | ||
/******/ | ||
/******/ // Object.prototype.hasOwnProperty.call | ||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | ||
/******/ | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
/******/ | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 3); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
/** | ||
* A polyfill for Element.matches() | ||
*/ | ||
if (typeof Element !== 'undefined' && !Element.prototype.matches) { | ||
var proto = Element.prototype; | ||
proto.matches = proto.matchesSelector || | ||
proto.mozMatchesSelector || | ||
proto.msMatchesSelector || | ||
proto.oMatchesSelector || | ||
proto.webkitMatchesSelector; | ||
} | ||
/** | ||
* Finds the closest parent that matches a selector. | ||
* | ||
* @param {Element} element | ||
* @param {String} selector | ||
* @return {Function} | ||
*/ | ||
function closest (element, selector) { | ||
while (element && element.nodeType !== DOCUMENT_NODE_TYPE) { | ||
if (typeof element.matches === 'function' && | ||
element.matches(selector)) { | ||
return element; | ||
} | ||
element = element.parentNode; | ||
} | ||
} | ||
module.exports = closest; | ||
},{}],2:[function(require,module,exports){ | ||
var closest = require('./closest'); | ||
/** | ||
* Delegates event to a selector. | ||
* | ||
* @param {Element} element | ||
* @param {String} selector | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @param {Boolean} useCapture | ||
* @return {Object} | ||
*/ | ||
function delegate(element, selector, type, callback, useCapture) { | ||
var listenerFn = listener.apply(this, arguments); | ||
element.addEventListener(type, listenerFn, useCapture); | ||
return { | ||
destroy: function() { | ||
element.removeEventListener(type, listenerFn, useCapture); | ||
} | ||
} | ||
} | ||
/** | ||
* Finds closest match and invokes callback. | ||
* | ||
* @param {Element} element | ||
* @param {String} selector | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Function} | ||
*/ | ||
function listener(element, selector, type, callback) { | ||
return function(e) { | ||
e.delegateTarget = closest(e.target, selector); | ||
if (e.delegateTarget) { | ||
callback.call(element, e); | ||
} | ||
} | ||
} | ||
module.exports = delegate; | ||
},{"./closest":1}],3:[function(require,module,exports){ | ||
/** | ||
* Check if argument is a HTML element. | ||
* | ||
* @param {Object} value | ||
* @return {Boolean} | ||
*/ | ||
exports.node = function(value) { | ||
return value !== undefined | ||
&& value instanceof HTMLElement | ||
&& value.nodeType === 1; | ||
}; | ||
/** | ||
* Check if argument is a list of HTML elements. | ||
* | ||
* @param {Object} value | ||
* @return {Boolean} | ||
*/ | ||
exports.nodeList = function(value) { | ||
var type = Object.prototype.toString.call(value); | ||
return value !== undefined | ||
&& (type === '[object NodeList]' || type === '[object HTMLCollection]') | ||
&& ('length' in value) | ||
&& (value.length === 0 || exports.node(value[0])); | ||
}; | ||
/** | ||
* Check if argument is a string. | ||
* | ||
* @param {Object} value | ||
* @return {Boolean} | ||
*/ | ||
exports.string = function(value) { | ||
return typeof value === 'string' | ||
|| value instanceof String; | ||
}; | ||
/** | ||
* Check if argument is a function. | ||
* | ||
* @param {Object} value | ||
* @return {Boolean} | ||
*/ | ||
exports.fn = function(value) { | ||
var type = Object.prototype.toString.call(value); | ||
return type === '[object Function]'; | ||
}; | ||
},{}],4:[function(require,module,exports){ | ||
var is = require('./is'); | ||
var delegate = require('delegate'); | ||
/** | ||
* Validates all params and calls the right | ||
* listener function based on its target type. | ||
* | ||
* @param {String|HTMLElement|HTMLCollection|NodeList} target | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Object} | ||
*/ | ||
function listen(target, type, callback) { | ||
if (!target && !type && !callback) { | ||
throw new Error('Missing required arguments'); | ||
} | ||
if (!is.string(type)) { | ||
throw new TypeError('Second argument must be a String'); | ||
} | ||
if (!is.fn(callback)) { | ||
throw new TypeError('Third argument must be a Function'); | ||
} | ||
if (is.node(target)) { | ||
return listenNode(target, type, callback); | ||
} | ||
else if (is.nodeList(target)) { | ||
return listenNodeList(target, type, callback); | ||
} | ||
else if (is.string(target)) { | ||
return listenSelector(target, type, callback); | ||
} | ||
else { | ||
throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList'); | ||
} | ||
} | ||
/** | ||
* Adds an event listener to a HTML element | ||
* and returns a remove listener function. | ||
* | ||
* @param {HTMLElement} node | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Object} | ||
*/ | ||
function listenNode(node, type, callback) { | ||
node.addEventListener(type, callback); | ||
return { | ||
destroy: function() { | ||
node.removeEventListener(type, callback); | ||
} | ||
} | ||
} | ||
/** | ||
* Add an event listener to a list of HTML elements | ||
* and returns a remove listener function. | ||
* | ||
* @param {NodeList|HTMLCollection} nodeList | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Object} | ||
*/ | ||
function listenNodeList(nodeList, type, callback) { | ||
Array.prototype.forEach.call(nodeList, function(node) { | ||
node.addEventListener(type, callback); | ||
}); | ||
return { | ||
destroy: function() { | ||
Array.prototype.forEach.call(nodeList, function(node) { | ||
node.removeEventListener(type, callback); | ||
}); | ||
} | ||
} | ||
} | ||
/** | ||
* Add an event listener to a selector | ||
* and returns a remove listener function. | ||
* | ||
* @param {String} selector | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Object} | ||
*/ | ||
function listenSelector(selector, type, callback) { | ||
return delegate(document.body, selector, type, callback); | ||
} | ||
module.exports = listen; | ||
},{"./is":3,"delegate":2}],5:[function(require,module,exports){ | ||
function select(element) { | ||
var selectedText; | ||
if (element.nodeName === 'SELECT') { | ||
element.focus(); | ||
selectedText = element.value; | ||
} | ||
else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') { | ||
var isReadOnly = element.hasAttribute('readonly'); | ||
if (!isReadOnly) { | ||
element.setAttribute('readonly', ''); | ||
} | ||
element.select(); | ||
element.setSelectionRange(0, element.value.length); | ||
if (!isReadOnly) { | ||
element.removeAttribute('readonly'); | ||
} | ||
selectedText = element.value; | ||
} | ||
else { | ||
if (element.hasAttribute('contenteditable')) { | ||
element.focus(); | ||
} | ||
var selection = window.getSelection(); | ||
var range = document.createRange(); | ||
range.selectNodeContents(element); | ||
selection.removeAllRanges(); | ||
selection.addRange(range); | ||
selectedText = selection.toString(); | ||
} | ||
return selectedText; | ||
} | ||
module.exports = select; | ||
},{}],6:[function(require,module,exports){ | ||
function E () { | ||
// Keep this empty so it's easier to inherit from | ||
// (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3) | ||
} | ||
E.prototype = { | ||
on: function (name, callback, ctx) { | ||
var e = this.e || (this.e = {}); | ||
(e[name] || (e[name] = [])).push({ | ||
fn: callback, | ||
ctx: ctx | ||
}); | ||
return this; | ||
}, | ||
once: function (name, callback, ctx) { | ||
var self = this; | ||
function listener () { | ||
self.off(name, listener); | ||
callback.apply(ctx, arguments); | ||
}; | ||
listener._ = callback | ||
return this.on(name, listener, ctx); | ||
}, | ||
emit: function (name) { | ||
var data = [].slice.call(arguments, 1); | ||
var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); | ||
var i = 0; | ||
var len = evtArr.length; | ||
for (i; i < len; i++) { | ||
evtArr[i].fn.apply(evtArr[i].ctx, data); | ||
} | ||
return this; | ||
}, | ||
off: function (name, callback) { | ||
var e = this.e || (this.e = {}); | ||
var evts = e[name]; | ||
var liveEvents = []; | ||
if (evts && callback) { | ||
for (var i = 0, len = evts.length; i < len; i++) { | ||
if (evts[i].fn !== callback && evts[i].fn._ !== callback) | ||
liveEvents.push(evts[i]); | ||
} | ||
} | ||
// Remove event from queue to prevent memory leak | ||
// Suggested by https://github.com/lazd | ||
// Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910 | ||
(liveEvents.length) | ||
? e[name] = liveEvents | ||
: delete e[name]; | ||
return this; | ||
} | ||
}; | ||
module.exports = E; | ||
},{}],7:[function(require,module,exports){ | ||
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(['module', 'select'], factory); | ||
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { | ||
if (true) { | ||
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(7)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), | ||
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? | ||
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), | ||
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); | ||
} else if (typeof exports !== "undefined") { | ||
@@ -580,6 +322,185 @@ factory(module, require('select')); | ||
},{"select":5}],8:[function(require,module,exports){ | ||
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(['module', './clipboard-action', 'tiny-emitter', 'good-listener'], factory); | ||
/***/ }), | ||
/* 1 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
var is = __webpack_require__(6); | ||
var delegate = __webpack_require__(5); | ||
/** | ||
* Validates all params and calls the right | ||
* listener function based on its target type. | ||
* | ||
* @param {String|HTMLElement|HTMLCollection|NodeList} target | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Object} | ||
*/ | ||
function listen(target, type, callback) { | ||
if (!target && !type && !callback) { | ||
throw new Error('Missing required arguments'); | ||
} | ||
if (!is.string(type)) { | ||
throw new TypeError('Second argument must be a String'); | ||
} | ||
if (!is.fn(callback)) { | ||
throw new TypeError('Third argument must be a Function'); | ||
} | ||
if (is.node(target)) { | ||
return listenNode(target, type, callback); | ||
} | ||
else if (is.nodeList(target)) { | ||
return listenNodeList(target, type, callback); | ||
} | ||
else if (is.string(target)) { | ||
return listenSelector(target, type, callback); | ||
} | ||
else { | ||
throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList'); | ||
} | ||
} | ||
/** | ||
* Adds an event listener to a HTML element | ||
* and returns a remove listener function. | ||
* | ||
* @param {HTMLElement} node | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Object} | ||
*/ | ||
function listenNode(node, type, callback) { | ||
node.addEventListener(type, callback); | ||
return { | ||
destroy: function() { | ||
node.removeEventListener(type, callback); | ||
} | ||
} | ||
} | ||
/** | ||
* Add an event listener to a list of HTML elements | ||
* and returns a remove listener function. | ||
* | ||
* @param {NodeList|HTMLCollection} nodeList | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Object} | ||
*/ | ||
function listenNodeList(nodeList, type, callback) { | ||
Array.prototype.forEach.call(nodeList, function(node) { | ||
node.addEventListener(type, callback); | ||
}); | ||
return { | ||
destroy: function() { | ||
Array.prototype.forEach.call(nodeList, function(node) { | ||
node.removeEventListener(type, callback); | ||
}); | ||
} | ||
} | ||
} | ||
/** | ||
* Add an event listener to a selector | ||
* and returns a remove listener function. | ||
* | ||
* @param {String} selector | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Object} | ||
*/ | ||
function listenSelector(selector, type, callback) { | ||
return delegate(document.body, selector, type, callback); | ||
} | ||
module.exports = listen; | ||
/***/ }), | ||
/* 2 */ | ||
/***/ (function(module, exports) { | ||
function E () { | ||
// Keep this empty so it's easier to inherit from | ||
// (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3) | ||
} | ||
E.prototype = { | ||
on: function (name, callback, ctx) { | ||
var e = this.e || (this.e = {}); | ||
(e[name] || (e[name] = [])).push({ | ||
fn: callback, | ||
ctx: ctx | ||
}); | ||
return this; | ||
}, | ||
once: function (name, callback, ctx) { | ||
var self = this; | ||
function listener () { | ||
self.off(name, listener); | ||
callback.apply(ctx, arguments); | ||
}; | ||
listener._ = callback | ||
return this.on(name, listener, ctx); | ||
}, | ||
emit: function (name) { | ||
var data = [].slice.call(arguments, 1); | ||
var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); | ||
var i = 0; | ||
var len = evtArr.length; | ||
for (i; i < len; i++) { | ||
evtArr[i].fn.apply(evtArr[i].ctx, data); | ||
} | ||
return this; | ||
}, | ||
off: function (name, callback) { | ||
var e = this.e || (this.e = {}); | ||
var evts = e[name]; | ||
var liveEvents = []; | ||
if (evts && callback) { | ||
for (var i = 0, len = evts.length; i < len; i++) { | ||
if (evts[i].fn !== callback && evts[i].fn._ !== callback) | ||
liveEvents.push(evts[i]); | ||
} | ||
} | ||
// Remove event from queue to prevent memory leak | ||
// Suggested by https://github.com/lazd | ||
// Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910 | ||
(liveEvents.length) | ||
? e[name] = liveEvents | ||
: delete e[name]; | ||
return this; | ||
} | ||
}; | ||
module.exports = E; | ||
/***/ }), | ||
/* 3 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { | ||
if (true) { | ||
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(0), __webpack_require__(2), __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), | ||
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? | ||
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), | ||
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); | ||
} else if (typeof exports !== "undefined") { | ||
@@ -790,3 +711,231 @@ factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener')); | ||
},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8) | ||
/***/ }), | ||
/* 4 */ | ||
/***/ (function(module, exports) { | ||
var DOCUMENT_NODE_TYPE = 9; | ||
/** | ||
* A polyfill for Element.matches() | ||
*/ | ||
if (typeof Element !== 'undefined' && !Element.prototype.matches) { | ||
var proto = Element.prototype; | ||
proto.matches = proto.matchesSelector || | ||
proto.mozMatchesSelector || | ||
proto.msMatchesSelector || | ||
proto.oMatchesSelector || | ||
proto.webkitMatchesSelector; | ||
} | ||
/** | ||
* Finds the closest parent that matches a selector. | ||
* | ||
* @param {Element} element | ||
* @param {String} selector | ||
* @return {Function} | ||
*/ | ||
function closest (element, selector) { | ||
while (element && element.nodeType !== DOCUMENT_NODE_TYPE) { | ||
if (typeof element.matches === 'function' && | ||
element.matches(selector)) { | ||
return element; | ||
} | ||
element = element.parentNode; | ||
} | ||
} | ||
module.exports = closest; | ||
/***/ }), | ||
/* 5 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
var closest = __webpack_require__(4); | ||
/** | ||
* Delegates event to a selector. | ||
* | ||
* @param {Element} element | ||
* @param {String} selector | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @param {Boolean} useCapture | ||
* @return {Object} | ||
*/ | ||
function _delegate(element, selector, type, callback, useCapture) { | ||
var listenerFn = listener.apply(this, arguments); | ||
element.addEventListener(type, listenerFn, useCapture); | ||
return { | ||
destroy: function() { | ||
element.removeEventListener(type, listenerFn, useCapture); | ||
} | ||
} | ||
} | ||
/** | ||
* Delegates event to a selector. | ||
* | ||
* @param {Element|String|Array} [elements] | ||
* @param {String} selector | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @param {Boolean} useCapture | ||
* @return {Object} | ||
*/ | ||
function delegate(elements, selector, type, callback, useCapture) { | ||
// Handle the regular Element usage | ||
if (typeof elements.addEventListener === 'function') { | ||
return _delegate.apply(null, arguments); | ||
} | ||
// Handle Element-less usage, it defaults to global delegation | ||
if (typeof type === 'function') { | ||
// Use `document` as the first parameter, then apply arguments | ||
// This is a short way to .unshift `arguments` without running into deoptimizations | ||
return _delegate.bind(null, document).apply(null, arguments); | ||
} | ||
// Handle Selector-based usage | ||
if (typeof elements === 'string') { | ||
elements = document.querySelectorAll(elements); | ||
} | ||
// Handle Array-like based usage | ||
return Array.prototype.map.call(elements, function (element) { | ||
return _delegate(element, selector, type, callback, useCapture); | ||
}); | ||
} | ||
/** | ||
* Finds closest match and invokes callback. | ||
* | ||
* @param {Element} element | ||
* @param {String} selector | ||
* @param {String} type | ||
* @param {Function} callback | ||
* @return {Function} | ||
*/ | ||
function listener(element, selector, type, callback) { | ||
return function(e) { | ||
e.delegateTarget = closest(e.target, selector); | ||
if (e.delegateTarget) { | ||
callback.call(element, e); | ||
} | ||
} | ||
} | ||
module.exports = delegate; | ||
/***/ }), | ||
/* 6 */ | ||
/***/ (function(module, exports) { | ||
/** | ||
* Check if argument is a HTML element. | ||
* | ||
* @param {Object} value | ||
* @return {Boolean} | ||
*/ | ||
exports.node = function(value) { | ||
return value !== undefined | ||
&& value instanceof HTMLElement | ||
&& value.nodeType === 1; | ||
}; | ||
/** | ||
* Check if argument is a list of HTML elements. | ||
* | ||
* @param {Object} value | ||
* @return {Boolean} | ||
*/ | ||
exports.nodeList = function(value) { | ||
var type = Object.prototype.toString.call(value); | ||
return value !== undefined | ||
&& (type === '[object NodeList]' || type === '[object HTMLCollection]') | ||
&& ('length' in value) | ||
&& (value.length === 0 || exports.node(value[0])); | ||
}; | ||
/** | ||
* Check if argument is a string. | ||
* | ||
* @param {Object} value | ||
* @return {Boolean} | ||
*/ | ||
exports.string = function(value) { | ||
return typeof value === 'string' | ||
|| value instanceof String; | ||
}; | ||
/** | ||
* Check if argument is a function. | ||
* | ||
* @param {Object} value | ||
* @return {Boolean} | ||
*/ | ||
exports.fn = function(value) { | ||
var type = Object.prototype.toString.call(value); | ||
return type === '[object Function]'; | ||
}; | ||
/***/ }), | ||
/* 7 */ | ||
/***/ (function(module, exports) { | ||
function select(element) { | ||
var selectedText; | ||
if (element.nodeName === 'SELECT') { | ||
element.focus(); | ||
selectedText = element.value; | ||
} | ||
else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') { | ||
var isReadOnly = element.hasAttribute('readonly'); | ||
if (!isReadOnly) { | ||
element.setAttribute('readonly', ''); | ||
} | ||
element.select(); | ||
element.setSelectionRange(0, element.value.length); | ||
if (!isReadOnly) { | ||
element.removeAttribute('readonly'); | ||
} | ||
selectedText = element.value; | ||
} | ||
else { | ||
if (element.hasAttribute('contenteditable')) { | ||
element.focus(); | ||
} | ||
var selection = window.getSelection(); | ||
var range = document.createRange(); | ||
range.selectNodeContents(element); | ||
selection.removeAllRanges(); | ||
selection.addRange(range); | ||
selectedText = selection.toString(); | ||
} | ||
return selectedText; | ||
} | ||
module.exports = select; | ||
/***/ }) | ||
/******/ ]); | ||
}); |
/*! | ||
* clipboard.js v1.7.1 | ||
* clipboard.js v2.0.0 | ||
* https://zenorocha.github.io/clipboard.js | ||
* | ||
* | ||
* Licensed MIT © Zeno Rocha | ||
*/ | ||
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n||t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<o.length;a++)i(o[a]);return i}({1:[function(t,e,n){function o(t,e){for(;t&&t.nodeType!==i;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var i=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}e.exports=o},{}],2:[function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function i(t,e,n,o){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&o.call(t,n)}}var r=t("./closest");e.exports=o},{"./closest":1}],3:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},{}],4:[function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return i(t,e,n);if(c.nodeList(t))return r(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function i(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function r(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return l(document.body,t,e,n)}var c=t("./is"),l=t("delegate");e.exports=o},{"./is":3,delegate:2}],5:[function(t,e,n){function o(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),i=document.createRange();i.selectNodeContents(t),o.removeAllRanges(),o.addRange(i),e=o.toString()}return e}e.exports=o},{}],6:[function(t,e,n){function o(){}o.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){i.off(t,o),e.apply(n,arguments)}var i=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,i=n.length;for(o;o<i;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],i=[];if(o&&e)for(var r=0,a=o.length;r<a;r++)o[r].fn!==e&&o[r].fn._!==e&&i.push(o[r]);return i.length?n[t]=i:delete n[t],this}},e.exports=o},{}],7:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","select"],r);else if(void 0!==o)r(n,e("select"));else{var a={exports:{}};r(a,i.select),i.clipboardAction=a.exports}}(this,function(t,e){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),c=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return a(t,[{key:"resolveOptions",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function t(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function t(){var e=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.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[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function t(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function t(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function t(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function t(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function t(){this.removeFake()}},{key:"action",set:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function t(){return this._target}}]),t}();t.exports=c})},{select:5}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if(void 0!==o)r(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(t,e,n,o){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var s=i(e),u=i(n),f=i(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(t){function e(t,n){r(this,e);var o=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.resolveOptions(n),o.listenClick(t),o}return c(e,t),h(e,[{key:"resolveOptions",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===d(e.container)?e.container:document.body}},{key:"listenClick",value:function t(e){var n=this;this.listener=(0,f.default)(e,"click",function(t){return n.onClick(t)})}},{key:"onClick",value:function t(e){var n=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),container:this.container,trigger:n,emitter:this})}},{key:"defaultAction",value:function t(e){return l("action",e)}},{key:"defaultTarget",value:function t(e){var n=l("target",e);if(n)return document.querySelector(n)}},{key:"defaultText",value:function t(e){return l("text",e)}},{key:"destroy",value:function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof e?[e]:e,o=!!document.queryCommandSupported;return n.forEach(function(t){o=o&&!!document.queryCommandSupported(t)}),o}}]),e}(u.default);t.exports=p})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=3)}([function(t,e,n){var o,r,i;!function(a,c){r=[t,n(7)],o=c,void 0!==(i="function"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(t){return t&&t.__esModule?t:{default:t}}(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),a=function(){function t(e){n(this,t),this.resolveOptions(e),this.initSelection()}return i(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.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[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"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(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=a})},function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return r(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function r(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return u(document.body,t,e,n)}var c=n(6),u=n(5);t.exports=o},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){r.off(t,o),e.apply(n,arguments)}var r=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;for(o;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var o,r,i;!function(a,c){r=[t,n(0),n(2),n(1)],o=c,void 0!==(i="function"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e,n,o){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var l=r(e),s=r(n),f=r(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(t){function e(t,n){i(this,e);var o=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.resolveOptions(n),o.listenClick(t),o}return c(e,t),h(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,f.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(s.default);t.exports=p})},function(t,e){function n(t,e){for(;t&&t.nodeType!==o;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var o=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=n},function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function r(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return o(t,e,n,r,i)}))}function i(t,e,n,o){return function(n){n.delegateTarget=a(n.target,e),n.delegateTarget&&o.call(t,n)}}var a=n(4);t.exports=r},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e){function n(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}t.exports=n}])}); |
@@ -5,4 +5,4 @@ // Package metadata for Meteor.js. | ||
name: "zenorocha:clipboard", | ||
summary: "Modern copy to clipboard. No Flash. Just 2kb.", | ||
version: "1.7.1", | ||
summary: "Modern copy to clipboard. No Flash. Just 3kb.", | ||
version: "2.0.0", | ||
git: "https://github.com/zenorocha/clipboard.js" | ||
@@ -9,0 +9,0 @@ }); |
{ | ||
"name": "clipboard", | ||
"version": "1.7.1", | ||
"version": "2.0.0", | ||
"description": "Modern copy to clipboard. No Flash. Just 2kb", | ||
"repository": "zenorocha/clipboard.js", | ||
"license": "MIT", | ||
"main": "lib/clipboard.js", | ||
"main": "dist/clipboard.js", | ||
"module": "src/clipboard.js", | ||
"keywords": [ | ||
@@ -19,31 +20,28 @@ "clipboard", | ||
"devDependencies": { | ||
"babel-cli": "^6.24.1", | ||
"babel-core": "^6.24.1", | ||
"babel-plugin-transform-es2015-modules-umd": "^6.24.1", | ||
"babel-preset-es2015": "^6.24.1", | ||
"babelify": "^7.3.0", | ||
"bannerify": "Vekat/bannerify#feature-option", | ||
"browserify": "^14.3.0", | ||
"chai": "^3.5.0", | ||
"install": "^0.9.6", | ||
"karma": "^1.6.0", | ||
"karma-browserify": "^5.1.1", | ||
"babel-cli": "^6.5.1", | ||
"babel-core": "^6.5.2", | ||
"babel-loader": "^6.2.10", | ||
"babel-plugin-transform-es2015-modules-umd": "^6.5.0", | ||
"babel-preset-es2015": "^6.5.0", | ||
"chai": "^3.4.1", | ||
"cross-env": "^3.1.4", | ||
"karma": "^1.3.0", | ||
"karma-chai": "^0.1.0", | ||
"karma-mocha": "^1.3.0", | ||
"karma-phantomjs-launcher": "^1.0.4", | ||
"karma-sinon": "^1.0.5", | ||
"mocha": "^3.3.0", | ||
"phantomjs-prebuilt": "^2.1.14", | ||
"sinon": "^2.2.0", | ||
"uglify-js": "^2.8.22", | ||
"watchify": "^3.9.0" | ||
"karma-mocha": "^1.2.0", | ||
"karma-phantomjs-launcher": "^1.0.0", | ||
"karma-sinon": "^1.0.4", | ||
"karma-webpack": "^2.0.2", | ||
"mocha": "^3.1.2", | ||
"phantomjs-prebuilt": "^2.1.4", | ||
"sinon": "^1.17.2", | ||
"webpack": "^2.2.1" | ||
}, | ||
"scripts": { | ||
"build": "npm run build-debug && npm run build-min", | ||
"build-debug": "browserify src/clipboard.js -s Clipboard -t [babelify] -p [bannerify --file .banner ] -o dist/clipboard.js", | ||
"build-min": "uglifyjs dist/clipboard.js --comments '/!/' -m screw_ie8=true -c screw_ie8=true,unused=false -o dist/clipboard.min.js", | ||
"build-watch": "watchify src/clipboard.js -s Clipboard -t [babelify] -o dist/clipboard.js -v", | ||
"build-debug": "webpack", | ||
"build-min": "cross-env NODE_ENV=production webpack --optimize-minimize", | ||
"build-watch": "webpack --watch", | ||
"test": "karma start --single-run", | ||
"prepublish": "babel src --out-dir lib" | ||
"prepublish": "npm run build" | ||
} | ||
} |
@@ -122,4 +122,10 @@ # clipboard.js | ||
For a live demonstration, open this [site](https://clipboardjs.com/) and just your console :) | ||
For a live demonstration, go to this [site](https://clipboardjs.com/) and open your console. | ||
## Tooltips | ||
Each application has different design needs, that's why clipboard.js does not include any CSS or built-in tooltip solution. | ||
The tooltips you see on the [demo site](https://clipboardjs.com/) were built using [GitHub's Primer](https://github.com/primer/primer-css/tree/master/modules/primer-tooltips). You may want to check that out if you're looking for a similar look and feel. | ||
## Advanced Options | ||
@@ -153,3 +159,3 @@ | ||
new Clipboard('.btn', { | ||
container: document.getElementById('#modal') | ||
container: document.getElementById('modal') | ||
}); | ||
@@ -156,0 +162,0 @@ ``` |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
17
1
190
3
53301
877
1