650 lines
21 KiB
JavaScript
650 lines
21 KiB
JavaScript
/*!
|
|
* clipboard.js v2.0.8
|
|
* https://clipboardjs.com/
|
|
*
|
|
* Licensed MIT © Zeno Rocha
|
|
*/
|
|
!(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 (
|
|
(n = {
|
|
134: function (t, e, n) {
|
|
"use strict";
|
|
n.d(e, {
|
|
default: function () {
|
|
return r;
|
|
},
|
|
});
|
|
var e = n(279),
|
|
i = n.n(e),
|
|
e = n(370),
|
|
a = n.n(e),
|
|
e = n(817),
|
|
o = n.n(e);
|
|
function c(t) {
|
|
return (c =
|
|
"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;
|
|
})(t);
|
|
}
|
|
function u(t, e) {
|
|
for (var n = 0; n < e.length; n++) {
|
|
var r = e[n];
|
|
(r.enumerable = r.enumerable || !1),
|
|
(r.configurable = !0),
|
|
"value" in r && (r.writable = !0),
|
|
Object.defineProperty(t, r.key, r);
|
|
}
|
|
}
|
|
var l = (function () {
|
|
function e(t) {
|
|
!(function (t) {
|
|
if (!(t instanceof e))
|
|
throw new TypeError("Cannot call a class as a function");
|
|
})(this),
|
|
this.resolveOptions(t),
|
|
this.initSelection();
|
|
}
|
|
var t, n, r;
|
|
return (
|
|
(t = e),
|
|
(n = [
|
|
{
|
|
key: "resolveOptions",
|
|
value: function () {
|
|
var t =
|
|
0 < arguments.length && 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: "createFakeElement",
|
|
value: function () {
|
|
var t =
|
|
"rtl" === document.documentElement.getAttribute("dir");
|
|
(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[t ? "right" : "left"] = "-9999px");
|
|
t = window.pageYOffset || document.documentElement.scrollTop;
|
|
return (
|
|
(this.fakeElem.style.top = "".concat(t, "px")),
|
|
this.fakeElem.setAttribute("readonly", ""),
|
|
(this.fakeElem.value = this.text),
|
|
this.fakeElem
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "selectFake",
|
|
value: function () {
|
|
var t = this,
|
|
e = this.createFakeElement();
|
|
(this.fakeHandlerCallback = function () {
|
|
return t.removeFake();
|
|
}),
|
|
(this.fakeHandler =
|
|
this.container.addEventListener(
|
|
"click",
|
|
this.fakeHandlerCallback
|
|
) || !0),
|
|
this.container.appendChild(e),
|
|
(this.selectedText = o()(e)),
|
|
this.copyText(),
|
|
this.removeFake();
|
|
},
|
|
},
|
|
{
|
|
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 = o()(this.target)), this.copyText();
|
|
},
|
|
},
|
|
{
|
|
key: "copyText",
|
|
value: function () {
|
|
var e;
|
|
try {
|
|
e = document.execCommand(this.action);
|
|
} catch (t) {
|
|
e = !1;
|
|
}
|
|
this.handleResult(e);
|
|
},
|
|
},
|
|
{
|
|
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(),
|
|
document.activeElement.blur(),
|
|
window.getSelection().removeAllRanges();
|
|
},
|
|
},
|
|
{
|
|
key: "destroy",
|
|
value: function () {
|
|
this.removeFake();
|
|
},
|
|
},
|
|
{
|
|
key: "action",
|
|
set: function () {
|
|
var t =
|
|
0 < arguments.length && 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" !== c(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;
|
|
},
|
|
},
|
|
]) && u(t.prototype, n),
|
|
r && u(t, r),
|
|
e
|
|
);
|
|
})();
|
|
function s(t) {
|
|
return (s =
|
|
"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;
|
|
})(t);
|
|
}
|
|
function f(t, e) {
|
|
for (var n = 0; n < e.length; n++) {
|
|
var r = e[n];
|
|
(r.enumerable = r.enumerable || !1),
|
|
(r.configurable = !0),
|
|
"value" in r && (r.writable = !0),
|
|
Object.defineProperty(t, r.key, r);
|
|
}
|
|
}
|
|
function h(t, e) {
|
|
return (h =
|
|
Object.setPrototypeOf ||
|
|
function (t, e) {
|
|
return (t.__proto__ = e), t;
|
|
})(t, e);
|
|
}
|
|
function d(n) {
|
|
var r = (function () {
|
|
if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
|
|
if (Reflect.construct.sham) return !1;
|
|
if ("function" == typeof Proxy) return !0;
|
|
try {
|
|
return (
|
|
Date.prototype.toString.call(
|
|
Reflect.construct(Date, [], function () {})
|
|
),
|
|
!0
|
|
);
|
|
} catch (t) {
|
|
return !1;
|
|
}
|
|
})();
|
|
return function () {
|
|
var t,
|
|
e = p(n);
|
|
return (
|
|
(t = r
|
|
? ((t = p(this).constructor),
|
|
Reflect.construct(e, arguments, t))
|
|
: e.apply(this, arguments)),
|
|
(e = this),
|
|
!(t = t) || ("object" !== s(t) && "function" != typeof t)
|
|
? (function (t) {
|
|
if (void 0 !== t) return t;
|
|
throw new ReferenceError(
|
|
"this hasn't been initialised - super() hasn't been called"
|
|
);
|
|
})(e)
|
|
: t
|
|
);
|
|
};
|
|
}
|
|
function p(t) {
|
|
return (p = Object.setPrototypeOf
|
|
? Object.getPrototypeOf
|
|
: function (t) {
|
|
return t.__proto__ || Object.getPrototypeOf(t);
|
|
})(t);
|
|
}
|
|
function y(t, e) {
|
|
t = "data-clipboard-".concat(t);
|
|
if (e.hasAttribute(t)) return e.getAttribute(t);
|
|
}
|
|
var r = (function () {
|
|
!(function (t, e) {
|
|
if ("function" != typeof e && null !== e)
|
|
throw new TypeError(
|
|
"Super expression must either be null or a function"
|
|
);
|
|
(t.prototype = Object.create(e && e.prototype, {
|
|
constructor: { value: t, writable: !0, configurable: !0 },
|
|
})),
|
|
e && h(t, e);
|
|
})(o, i());
|
|
var t,
|
|
e,
|
|
n,
|
|
r = d(o);
|
|
function o(t, e) {
|
|
var n;
|
|
return (
|
|
(function (t) {
|
|
if (!(t instanceof o))
|
|
throw new TypeError("Cannot call a class as a function");
|
|
})(this),
|
|
(n = r.call(this)).resolveOptions(e),
|
|
n.listenClick(t),
|
|
n
|
|
);
|
|
}
|
|
return (
|
|
(t = o),
|
|
(n = [
|
|
{
|
|
key: "isSupported",
|
|
value: function () {
|
|
var t =
|
|
0 < arguments.length && void 0 !== arguments[0]
|
|
? arguments[0]
|
|
: ["copy", "cut"],
|
|
t = "string" == typeof t ? [t] : t,
|
|
e = !!document.queryCommandSupported;
|
|
return (
|
|
t.forEach(function (t) {
|
|
e = e && !!document.queryCommandSupported(t);
|
|
}),
|
|
e
|
|
);
|
|
},
|
|
},
|
|
]),
|
|
(e = [
|
|
{
|
|
key: "resolveOptions",
|
|
value: function () {
|
|
var t =
|
|
0 < arguments.length && 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" === s(t.container)
|
|
? t.container
|
|
: document.body);
|
|
},
|
|
},
|
|
{
|
|
key: "listenClick",
|
|
value: function (t) {
|
|
var e = this;
|
|
this.listener = a()(t, "click", function (t) {
|
|
return e.onClick(t);
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "onClick",
|
|
value: function (t) {
|
|
t = t.delegateTarget || t.currentTarget;
|
|
this.clipboardAction && (this.clipboardAction = null),
|
|
(this.clipboardAction = new l({
|
|
action: this.action(t),
|
|
target: this.target(t),
|
|
text: this.text(t),
|
|
container: this.container,
|
|
trigger: t,
|
|
emitter: this,
|
|
}));
|
|
},
|
|
},
|
|
{
|
|
key: "defaultAction",
|
|
value: function (t) {
|
|
return y("action", t);
|
|
},
|
|
},
|
|
{
|
|
key: "defaultTarget",
|
|
value: function (t) {
|
|
t = y("target", t);
|
|
if (t) return document.querySelector(t);
|
|
},
|
|
},
|
|
{
|
|
key: "defaultText",
|
|
value: function (t) {
|
|
return y("text", t);
|
|
},
|
|
},
|
|
{
|
|
key: "destroy",
|
|
value: function () {
|
|
this.listener.destroy(),
|
|
this.clipboardAction &&
|
|
(this.clipboardAction.destroy(),
|
|
(this.clipboardAction = null));
|
|
},
|
|
},
|
|
]) && f(t.prototype, e),
|
|
n && f(t, n),
|
|
o
|
|
);
|
|
})();
|
|
},
|
|
828: function (t) {
|
|
var e;
|
|
"undefined" == typeof Element ||
|
|
Element.prototype.matches ||
|
|
((e = Element.prototype).matches =
|
|
e.matchesSelector ||
|
|
e.mozMatchesSelector ||
|
|
e.msMatchesSelector ||
|
|
e.oMatchesSelector ||
|
|
e.webkitMatchesSelector),
|
|
(t.exports = function (t, e) {
|
|
for (; t && 9 !== t.nodeType; ) {
|
|
if ("function" == typeof t.matches && t.matches(e)) return t;
|
|
t = t.parentNode;
|
|
}
|
|
});
|
|
},
|
|
438: function (t, e, n) {
|
|
var a = n(828);
|
|
function i(t, e, n, r, o) {
|
|
var i = function (e, n, t, r) {
|
|
return function (t) {
|
|
(t.delegateTarget = a(t.target, n)),
|
|
t.delegateTarget && r.call(e, t);
|
|
};
|
|
}.apply(this, arguments);
|
|
return (
|
|
t.addEventListener(n, i, o),
|
|
{
|
|
destroy: function () {
|
|
t.removeEventListener(n, i, o);
|
|
},
|
|
}
|
|
);
|
|
}
|
|
t.exports = function (t, e, n, r, o) {
|
|
return "function" == typeof t.addEventListener
|
|
? i.apply(null, arguments)
|
|
: "function" == typeof n
|
|
? i.bind(null, document).apply(null, arguments)
|
|
: ("string" == typeof t && (t = document.querySelectorAll(t)),
|
|
Array.prototype.map.call(t, function (t) {
|
|
return i(t, e, n, r, o);
|
|
}));
|
|
};
|
|
},
|
|
879: function (t, 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);
|
|
});
|
|
},
|
|
370: function (t, e, n) {
|
|
var l = n(879),
|
|
s = n(438);
|
|
t.exports = function (t, e, n) {
|
|
if (!t && !e && !n) throw new Error("Missing required arguments");
|
|
if (!l.string(e))
|
|
throw new TypeError("Second argument must be a String");
|
|
if (!l.fn(n))
|
|
throw new TypeError("Third argument must be a Function");
|
|
if (l.node(t))
|
|
return (
|
|
(c = e),
|
|
(u = n),
|
|
(a = t).addEventListener(c, u),
|
|
{
|
|
destroy: function () {
|
|
a.removeEventListener(c, u);
|
|
},
|
|
}
|
|
);
|
|
if (l.nodeList(t))
|
|
return (
|
|
(r = t),
|
|
(o = e),
|
|
(i = n),
|
|
Array.prototype.forEach.call(r, function (t) {
|
|
t.addEventListener(o, i);
|
|
}),
|
|
{
|
|
destroy: function () {
|
|
Array.prototype.forEach.call(r, function (t) {
|
|
t.removeEventListener(o, i);
|
|
});
|
|
},
|
|
}
|
|
);
|
|
if (l.string(t))
|
|
return (t = t), (e = e), (n = n), s(document.body, t, e, n);
|
|
throw new TypeError(
|
|
"First argument must be a String, HTMLElement, HTMLCollection, or NodeList"
|
|
);
|
|
var r, o, i, a, c, u;
|
|
};
|
|
},
|
|
817: function (t) {
|
|
t.exports = function (t) {
|
|
var e,
|
|
n =
|
|
"SELECT" === t.nodeName
|
|
? (t.focus(), t.value)
|
|
: "INPUT" === t.nodeName || "TEXTAREA" === t.nodeName
|
|
? ((e = t.hasAttribute("readonly")) ||
|
|
t.setAttribute("readonly", ""),
|
|
t.select(),
|
|
t.setSelectionRange(0, t.value.length),
|
|
e || t.removeAttribute("readonly"),
|
|
t.value)
|
|
: (t.hasAttribute("contenteditable") && t.focus(),
|
|
(n = window.getSelection()),
|
|
(e = document.createRange()).selectNodeContents(t),
|
|
n.removeAllRanges(),
|
|
n.addRange(e),
|
|
n.toString());
|
|
return n;
|
|
};
|
|
},
|
|
279: function (t) {
|
|
function e() {}
|
|
(e.prototype = {
|
|
on: function (t, e, n) {
|
|
var r = this.e || (this.e = {});
|
|
return (r[t] || (r[t] = [])).push({ fn: e, ctx: n }), this;
|
|
},
|
|
once: function (t, e, n) {
|
|
var r = this;
|
|
function o() {
|
|
r.off(t, o), e.apply(n, arguments);
|
|
}
|
|
return (o._ = e), this.on(t, o, n);
|
|
},
|
|
emit: function (t) {
|
|
for (
|
|
var e = [].slice.call(arguments, 1),
|
|
n = ((this.e || (this.e = {}))[t] || []).slice(),
|
|
r = 0,
|
|
o = n.length;
|
|
r < o;
|
|
r++
|
|
)
|
|
n[r].fn.apply(n[r].ctx, e);
|
|
return this;
|
|
},
|
|
off: function (t, e) {
|
|
var n = this.e || (this.e = {}),
|
|
r = n[t],
|
|
o = [];
|
|
if (r && e)
|
|
for (var i = 0, a = r.length; i < a; i++)
|
|
r[i].fn !== e && r[i].fn._ !== e && o.push(r[i]);
|
|
return o.length ? (n[t] = o) : delete n[t], this;
|
|
},
|
|
}),
|
|
(t.exports = e),
|
|
(t.exports.TinyEmitter = e);
|
|
},
|
|
}),
|
|
(o = {}),
|
|
(r.n = function (t) {
|
|
var e =
|
|
t && t.__esModule
|
|
? function () {
|
|
return t.default;
|
|
}
|
|
: function () {
|
|
return t;
|
|
};
|
|
return r.d(e, { a: e }), e;
|
|
}),
|
|
(r.d = function (t, e) {
|
|
for (var n in e)
|
|
r.o(e, n) &&
|
|
!r.o(t, n) &&
|
|
Object.defineProperty(t, n, { enumerable: !0, get: e[n] });
|
|
}),
|
|
(r.o = function (t, e) {
|
|
return Object.prototype.hasOwnProperty.call(t, e);
|
|
}),
|
|
r(134).default
|
|
);
|
|
function r(t) {
|
|
if (o[t]) return o[t].exports;
|
|
var e = (o[t] = { exports: {} });
|
|
return n[t](e, e.exports, r), e.exports;
|
|
}
|
|
var n, o;
|
|
});
|