External Libraries: Update some external libraries.
This updates three external libraries to their latest versions: - `backbone` from `1.4.0` to `1.4.1`. - `underscore` from `1.13.1` to `1.13.2`. - `clipboard` from `2.0.8` to `2.0.10`. These are all minor updates containing bug fixes and documentation improvements. See #55547. Built from https://develop.svn.wordpress.org/trunk@53164 git-svn-id: http://core.svn.wordpress.org/trunk@52753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
e15e2d78bf
commit
35005412d0
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
||||||
// Backbone.js 1.4.0
|
// Backbone.js 1.4.1
|
||||||
|
|
||||||
// (c) 2010-2019 Jeremy Ashkenas and DocumentCloud
|
// (c) 2010-2022 Jeremy Ashkenas and DocumentCloud
|
||||||
// Backbone may be freely distributed under the MIT license.
|
// Backbone may be freely distributed under the MIT license.
|
||||||
// For all details and documentation:
|
// For all details and documentation:
|
||||||
// http://backbonejs.org
|
// http://backbonejs.org
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
var slice = Array.prototype.slice;
|
var slice = Array.prototype.slice;
|
||||||
|
|
||||||
// Current version of the library. Keep in sync with `package.json`.
|
// Current version of the library. Keep in sync with `package.json`.
|
||||||
Backbone.VERSION = '1.4.0';
|
Backbone.VERSION = '1.4.1';
|
||||||
|
|
||||||
// For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns
|
// For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns
|
||||||
// the `$` variable.
|
// the `$` variable.
|
||||||
|
@ -516,7 +516,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the `id`.
|
// Update the `id`.
|
||||||
if (this.idAttribute in attrs) this.id = this.get(this.idAttribute);
|
if (this.idAttribute in attrs) {
|
||||||
|
var prevId = this.id;
|
||||||
|
this.id = this.get(this.idAttribute);
|
||||||
|
this.trigger('changeId', this, prevId, options);
|
||||||
|
}
|
||||||
|
|
||||||
// Trigger all relevant attribute changes.
|
// Trigger all relevant attribute changes.
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
|
@ -994,7 +998,7 @@
|
||||||
get: function(obj) {
|
get: function(obj) {
|
||||||
if (obj == null) return void 0;
|
if (obj == null) return void 0;
|
||||||
return this._byId[obj] ||
|
return this._byId[obj] ||
|
||||||
this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj)] ||
|
this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj, obj.idAttribute)] ||
|
||||||
obj.cid && this._byId[obj.cid];
|
obj.cid && this._byId[obj.cid];
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1098,8 +1102,8 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
// Define how to uniquely identify models in the collection.
|
// Define how to uniquely identify models in the collection.
|
||||||
modelId: function(attrs) {
|
modelId: function(attrs, idAttribute) {
|
||||||
return attrs[this.model.prototype.idAttribute || 'id'];
|
return attrs[idAttribute || this.model.prototype.idAttribute || 'id'];
|
||||||
},
|
},
|
||||||
|
|
||||||
// Get an iterator of all models in this collection.
|
// Get an iterator of all models in this collection.
|
||||||
|
@ -1134,7 +1138,15 @@
|
||||||
}
|
}
|
||||||
options = options ? _.clone(options) : {};
|
options = options ? _.clone(options) : {};
|
||||||
options.collection = this;
|
options.collection = this;
|
||||||
var model = new this.model(attrs, options);
|
|
||||||
|
var model;
|
||||||
|
if (this.model.prototype) {
|
||||||
|
model = new this.model(attrs, options);
|
||||||
|
} else {
|
||||||
|
// ES class methods didn't have prototype
|
||||||
|
model = this.model(attrs, options);
|
||||||
|
}
|
||||||
|
|
||||||
if (!model.validationError) return model;
|
if (!model.validationError) return model;
|
||||||
this.trigger('invalid', this, model.validationError, options);
|
this.trigger('invalid', this, model.validationError, options);
|
||||||
return false;
|
return false;
|
||||||
|
@ -1154,7 +1166,7 @@
|
||||||
// Remove references before triggering 'remove' event to prevent an
|
// Remove references before triggering 'remove' event to prevent an
|
||||||
// infinite loop. #3693
|
// infinite loop. #3693
|
||||||
delete this._byId[model.cid];
|
delete this._byId[model.cid];
|
||||||
var id = this.modelId(model.attributes);
|
var id = this.modelId(model.attributes, model.idAttribute);
|
||||||
if (id != null) delete this._byId[id];
|
if (id != null) delete this._byId[id];
|
||||||
|
|
||||||
if (!options.silent) {
|
if (!options.silent) {
|
||||||
|
@ -1177,7 +1189,7 @@
|
||||||
// Internal method to create a model's ties to a collection.
|
// Internal method to create a model's ties to a collection.
|
||||||
_addReference: function(model, options) {
|
_addReference: function(model, options) {
|
||||||
this._byId[model.cid] = model;
|
this._byId[model.cid] = model;
|
||||||
var id = this.modelId(model.attributes);
|
var id = this.modelId(model.attributes, model.idAttribute);
|
||||||
if (id != null) this._byId[id] = model;
|
if (id != null) this._byId[id] = model;
|
||||||
model.on('all', this._onModelEvent, this);
|
model.on('all', this._onModelEvent, this);
|
||||||
},
|
},
|
||||||
|
@ -1185,7 +1197,7 @@
|
||||||
// Internal method to sever a model's ties to a collection.
|
// Internal method to sever a model's ties to a collection.
|
||||||
_removeReference: function(model, options) {
|
_removeReference: function(model, options) {
|
||||||
delete this._byId[model.cid];
|
delete this._byId[model.cid];
|
||||||
var id = this.modelId(model.attributes);
|
var id = this.modelId(model.attributes, model.idAttribute);
|
||||||
if (id != null) delete this._byId[id];
|
if (id != null) delete this._byId[id];
|
||||||
if (this === model.collection) delete model.collection;
|
if (this === model.collection) delete model.collection;
|
||||||
model.off('all', this._onModelEvent, this);
|
model.off('all', this._onModelEvent, this);
|
||||||
|
@ -1199,13 +1211,11 @@
|
||||||
if (model) {
|
if (model) {
|
||||||
if ((event === 'add' || event === 'remove') && collection !== this) return;
|
if ((event === 'add' || event === 'remove') && collection !== this) return;
|
||||||
if (event === 'destroy') this.remove(model, options);
|
if (event === 'destroy') this.remove(model, options);
|
||||||
if (event === 'change') {
|
if (event === 'changeId') {
|
||||||
var prevId = this.modelId(model.previousAttributes());
|
var prevId = this.modelId(model.previousAttributes(), model.idAttribute);
|
||||||
var id = this.modelId(model.attributes);
|
var id = this.modelId(model.attributes, model.idAttribute);
|
||||||
if (prevId !== id) {
|
if (prevId != null) delete this._byId[prevId];
|
||||||
if (prevId != null) delete this._byId[prevId];
|
if (id != null) this._byId[id] = model;
|
||||||
if (id != null) this._byId[id] = model;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.trigger.apply(this, arguments);
|
this.trigger.apply(this, arguments);
|
||||||
|
@ -1261,7 +1271,7 @@
|
||||||
if (this._kind === ITERATOR_VALUES) {
|
if (this._kind === ITERATOR_VALUES) {
|
||||||
value = model;
|
value = model;
|
||||||
} else {
|
} else {
|
||||||
var id = this._collection.modelId(model.attributes);
|
var id = this._collection.modelId(model.attributes, model.idAttribute);
|
||||||
if (this._kind === ITERATOR_KEYS) {
|
if (this._kind === ITERATOR_KEYS) {
|
||||||
value = id;
|
value = id;
|
||||||
} else { // ITERATOR_KEYSVALUES
|
} else { // ITERATOR_KEYSVALUES
|
||||||
|
@ -1615,11 +1625,11 @@
|
||||||
|
|
||||||
// Map from CRUD to HTTP for our default `Backbone.sync` implementation.
|
// Map from CRUD to HTTP for our default `Backbone.sync` implementation.
|
||||||
var methodMap = {
|
var methodMap = {
|
||||||
create: 'POST',
|
'create': 'POST',
|
||||||
update: 'PUT',
|
'update': 'PUT',
|
||||||
patch: 'PATCH',
|
'patch': 'PATCH',
|
||||||
delete: 'DELETE',
|
'delete': 'DELETE',
|
||||||
read: 'GET'
|
'read': 'GET'
|
||||||
};
|
};
|
||||||
|
|
||||||
// Set the default implementation of `Backbone.ajax` to proxy through to `$`.
|
// Set the default implementation of `Backbone.ajax` to proxy through to `$`.
|
||||||
|
@ -1712,11 +1722,11 @@
|
||||||
// against the current location hash.
|
// against the current location hash.
|
||||||
_routeToRegExp: function(route) {
|
_routeToRegExp: function(route) {
|
||||||
route = route.replace(escapeRegExp, '\\$&')
|
route = route.replace(escapeRegExp, '\\$&')
|
||||||
.replace(optionalParam, '(?:$1)?')
|
.replace(optionalParam, '(?:$1)?')
|
||||||
.replace(namedParam, function(match, optional) {
|
.replace(namedParam, function(match, optional) {
|
||||||
return optional ? match : '([^/?]+)';
|
return optional ? match : '([^/?]+)';
|
||||||
})
|
})
|
||||||
.replace(splatParam, '([^?]*?)');
|
.replace(splatParam, '([^?]*?)');
|
||||||
return new RegExp('^' + route + '(?:\\?([\\s\\S]*))?$');
|
return new RegExp('^' + route + '(?:\\?([\\s\\S]*))?$');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
||||||
/*!
|
/*!
|
||||||
* clipboard.js v2.0.8
|
* clipboard.js v2.0.10
|
||||||
* https://clipboardjs.com/
|
* https://clipboardjs.com/
|
||||||
*
|
*
|
||||||
* Licensed MIT © Zeno Rocha
|
* Licensed MIT © Zeno Rocha
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
return /******/ (function() { // webpackBootstrap
|
return /******/ (function() { // webpackBootstrap
|
||||||
/******/ var __webpack_modules__ = ({
|
/******/ var __webpack_modules__ = ({
|
||||||
|
|
||||||
/***/ 134:
|
/***/ 686:
|
||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
@ -36,265 +36,156 @@ var listen_default = /*#__PURE__*/__webpack_require__.n(listen);
|
||||||
// EXTERNAL MODULE: ./node_modules/select/src/select.js
|
// EXTERNAL MODULE: ./node_modules/select/src/select.js
|
||||||
var src_select = __webpack_require__(817);
|
var src_select = __webpack_require__(817);
|
||||||
var select_default = /*#__PURE__*/__webpack_require__.n(src_select);
|
var select_default = /*#__PURE__*/__webpack_require__.n(src_select);
|
||||||
;// CONCATENATED MODULE: ./src/clipboard-action.js
|
;// CONCATENATED MODULE: ./src/common/command.js
|
||||||
|
/**
|
||||||
|
* Executes a given operation type.
|
||||||
|
* @param {String} type
|
||||||
|
* @return {Boolean}
|
||||||
|
*/
|
||||||
|
function command(type) {
|
||||||
|
try {
|
||||||
|
return document.execCommand(type);
|
||||||
|
} catch (err) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
;// CONCATENATED MODULE: ./src/actions/cut.js
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cut action wrapper.
|
||||||
|
* @param {String|HTMLElement} target
|
||||||
|
* @return {String}
|
||||||
|
*/
|
||||||
|
|
||||||
|
var ClipboardActionCut = function ClipboardActionCut(target) {
|
||||||
|
var selectedText = select_default()(target);
|
||||||
|
command('cut');
|
||||||
|
return selectedText;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* harmony default export */ var actions_cut = (ClipboardActionCut);
|
||||||
|
;// CONCATENATED MODULE: ./src/common/create-fake-element.js
|
||||||
|
/**
|
||||||
|
* Creates a fake textarea element with a value.
|
||||||
|
* @param {String} value
|
||||||
|
* @return {HTMLElement}
|
||||||
|
*/
|
||||||
|
function createFakeElement(value) {
|
||||||
|
var isRTL = document.documentElement.getAttribute('dir') === 'rtl';
|
||||||
|
var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS
|
||||||
|
|
||||||
|
fakeElement.style.fontSize = '12pt'; // Reset box model
|
||||||
|
|
||||||
|
fakeElement.style.border = '0';
|
||||||
|
fakeElement.style.padding = '0';
|
||||||
|
fakeElement.style.margin = '0'; // Move element out of screen horizontally
|
||||||
|
|
||||||
|
fakeElement.style.position = 'absolute';
|
||||||
|
fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically
|
||||||
|
|
||||||
|
var yPosition = window.pageYOffset || document.documentElement.scrollTop;
|
||||||
|
fakeElement.style.top = "".concat(yPosition, "px");
|
||||||
|
fakeElement.setAttribute('readonly', '');
|
||||||
|
fakeElement.value = value;
|
||||||
|
return fakeElement;
|
||||||
|
}
|
||||||
|
;// CONCATENATED MODULE: ./src/actions/copy.js
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy action wrapper.
|
||||||
|
* @param {String|HTMLElement} target
|
||||||
|
* @param {Object} options
|
||||||
|
* @return {String}
|
||||||
|
*/
|
||||||
|
|
||||||
|
var ClipboardActionCopy = function ClipboardActionCopy(target) {
|
||||||
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
||||||
|
container: document.body
|
||||||
|
};
|
||||||
|
var selectedText = '';
|
||||||
|
|
||||||
|
if (typeof target === 'string') {
|
||||||
|
var fakeElement = createFakeElement(target);
|
||||||
|
options.container.appendChild(fakeElement);
|
||||||
|
selectedText = select_default()(fakeElement);
|
||||||
|
command('copy');
|
||||||
|
fakeElement.remove();
|
||||||
|
} else {
|
||||||
|
selectedText = select_default()(target);
|
||||||
|
command('copy');
|
||||||
|
}
|
||||||
|
|
||||||
|
return selectedText;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* harmony default export */ var actions_copy = (ClipboardActionCopy);
|
||||||
|
;// CONCATENATED MODULE: ./src/actions/default.js
|
||||||
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inner function which performs selection from either `text` or `target`
|
||||||
|
* properties and then executes copy or cut operations.
|
||||||
|
* @param {Object} options
|
||||||
|
*/
|
||||||
|
|
||||||
|
var ClipboardActionDefault = function ClipboardActionDefault() {
|
||||||
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||||
|
// Defines base properties passed from constructor.
|
||||||
|
var _options$action = options.action,
|
||||||
|
action = _options$action === void 0 ? 'copy' : _options$action,
|
||||||
|
container = options.container,
|
||||||
|
target = options.target,
|
||||||
|
text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.
|
||||||
|
|
||||||
|
if (action !== 'copy' && action !== 'cut') {
|
||||||
|
throw new Error('Invalid "action" value, use either "copy" or "cut"');
|
||||||
|
} // Sets the `target` property using an element that will be have its content copied.
|
||||||
|
|
||||||
|
|
||||||
|
if (target !== undefined) {
|
||||||
|
if (target && _typeof(target) === 'object' && target.nodeType === 1) {
|
||||||
|
if (action === 'copy' && target.hasAttribute('disabled')) {
|
||||||
|
throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
|
||||||
|
throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error('Invalid "target" value, use a valid Element');
|
||||||
|
}
|
||||||
|
} // Define selection strategy based on `text` property.
|
||||||
|
|
||||||
|
|
||||||
|
if (text) {
|
||||||
|
return actions_copy(text, {
|
||||||
|
container: container
|
||||||
|
});
|
||||||
|
} // Defines which selection strategy based on `target` property.
|
||||||
|
|
||||||
|
|
||||||
|
if (target) {
|
||||||
|
return action === 'cut' ? actions_cut(target) : actions_copy(target, {
|
||||||
|
container: container
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* harmony default export */ var actions_default = (ClipboardActionDefault);
|
||||||
|
;// CONCATENATED MODULE: ./src/clipboard.js
|
||||||
|
function clipboard_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return clipboard_typeof(obj); }
|
||||||
|
|
||||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inner class which performs selection from either `text` or `target`
|
|
||||||
* properties and then executes copy or cut operations.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var ClipboardAction = /*#__PURE__*/function () {
|
|
||||||
/**
|
|
||||||
* @param {Object} options
|
|
||||||
*/
|
|
||||||
function ClipboardAction(options) {
|
|
||||||
_classCallCheck(this, ClipboardAction);
|
|
||||||
|
|
||||||
this.resolveOptions(options);
|
|
||||||
this.initSelection();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Defines base properties passed from constructor.
|
|
||||||
* @param {Object} options
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
_createClass(ClipboardAction, [{
|
|
||||||
key: "resolveOptions",
|
|
||||||
value: function resolveOptions() {
|
|
||||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
||||||
this.action = options.action;
|
|
||||||
this.container = options.container;
|
|
||||||
this.emitter = options.emitter;
|
|
||||||
this.target = options.target;
|
|
||||||
this.text = options.text;
|
|
||||||
this.trigger = options.trigger;
|
|
||||||
this.selectedText = '';
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Decides which selection strategy is going to be applied based
|
|
||||||
* on the existence of `text` and `target` properties.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "initSelection",
|
|
||||||
value: function initSelection() {
|
|
||||||
if (this.text) {
|
|
||||||
this.selectFake();
|
|
||||||
} else if (this.target) {
|
|
||||||
this.selectTarget();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Creates a fake textarea element, sets its value from `text` property,
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "createFakeElement",
|
|
||||||
value: function createFakeElement() {
|
|
||||||
var isRTL = document.documentElement.getAttribute('dir') === 'rtl';
|
|
||||||
this.fakeElem = document.createElement('textarea'); // Prevent zooming on iOS
|
|
||||||
|
|
||||||
this.fakeElem.style.fontSize = '12pt'; // Reset box model
|
|
||||||
|
|
||||||
this.fakeElem.style.border = '0';
|
|
||||||
this.fakeElem.style.padding = '0';
|
|
||||||
this.fakeElem.style.margin = '0'; // Move element out of screen horizontally
|
|
||||||
|
|
||||||
this.fakeElem.style.position = 'absolute';
|
|
||||||
this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically
|
|
||||||
|
|
||||||
var yPosition = window.pageYOffset || document.documentElement.scrollTop;
|
|
||||||
this.fakeElem.style.top = "".concat(yPosition, "px");
|
|
||||||
this.fakeElem.setAttribute('readonly', '');
|
|
||||||
this.fakeElem.value = this.text;
|
|
||||||
return this.fakeElem;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Get's the value of fakeElem,
|
|
||||||
* and makes a selection on it.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "selectFake",
|
|
||||||
value: function selectFake() {
|
|
||||||
var _this = this;
|
|
||||||
|
|
||||||
var fakeElem = this.createFakeElement();
|
|
||||||
|
|
||||||
this.fakeHandlerCallback = function () {
|
|
||||||
return _this.removeFake();
|
|
||||||
};
|
|
||||||
|
|
||||||
this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;
|
|
||||||
this.container.appendChild(fakeElem);
|
|
||||||
this.selectedText = select_default()(fakeElem);
|
|
||||||
this.copyText();
|
|
||||||
this.removeFake();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Only removes the fake element after another click event, that way
|
|
||||||
* a user can hit `Ctrl+C` to copy because selection still exists.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "removeFake",
|
|
||||||
value: function removeFake() {
|
|
||||||
if (this.fakeHandler) {
|
|
||||||
this.container.removeEventListener('click', this.fakeHandlerCallback);
|
|
||||||
this.fakeHandler = null;
|
|
||||||
this.fakeHandlerCallback = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.fakeElem) {
|
|
||||||
this.container.removeChild(this.fakeElem);
|
|
||||||
this.fakeElem = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Selects the content from element passed on `target` property.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "selectTarget",
|
|
||||||
value: function selectTarget() {
|
|
||||||
this.selectedText = select_default()(this.target);
|
|
||||||
this.copyText();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Executes the copy operation based on the current selection.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "copyText",
|
|
||||||
value: function copyText() {
|
|
||||||
var succeeded;
|
|
||||||
|
|
||||||
try {
|
|
||||||
succeeded = document.execCommand(this.action);
|
|
||||||
} catch (err) {
|
|
||||||
succeeded = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.handleResult(succeeded);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Fires an event based on the copy operation result.
|
|
||||||
* @param {Boolean} succeeded
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "handleResult",
|
|
||||||
value: function handleResult(succeeded) {
|
|
||||||
this.emitter.emit(succeeded ? 'success' : 'error', {
|
|
||||||
action: this.action,
|
|
||||||
text: this.selectedText,
|
|
||||||
trigger: this.trigger,
|
|
||||||
clearSelection: this.clearSelection.bind(this)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Moves focus away from `target` and back to the trigger, removes current selection.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "clearSelection",
|
|
||||||
value: function clearSelection() {
|
|
||||||
if (this.trigger) {
|
|
||||||
this.trigger.focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
document.activeElement.blur();
|
|
||||||
window.getSelection().removeAllRanges();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Sets the `action` to be performed which can be either 'copy' or 'cut'.
|
|
||||||
* @param {String} action
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "destroy",
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destroy lifecycle.
|
|
||||||
*/
|
|
||||||
value: function destroy() {
|
|
||||||
this.removeFake();
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "action",
|
|
||||||
set: function set() {
|
|
||||||
var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
|
|
||||||
this._action = action;
|
|
||||||
|
|
||||||
if (this._action !== 'copy' && this._action !== 'cut') {
|
|
||||||
throw new Error('Invalid "action" value, use either "copy" or "cut"');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Gets the `action` property.
|
|
||||||
* @return {String}
|
|
||||||
*/
|
|
||||||
,
|
|
||||||
get: function get() {
|
|
||||||
return this._action;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Sets the `target` property using an element
|
|
||||||
* that will be have its content copied.
|
|
||||||
* @param {Element} target
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "target",
|
|
||||||
set: function set(target) {
|
|
||||||
if (target !== undefined) {
|
|
||||||
if (target && _typeof(target) === 'object' && target.nodeType === 1) {
|
|
||||||
if (this.action === 'copy' && target.hasAttribute('disabled')) {
|
|
||||||
throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
|
|
||||||
throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
|
|
||||||
}
|
|
||||||
|
|
||||||
this._target = target;
|
|
||||||
} else {
|
|
||||||
throw new Error('Invalid "target" value, use a valid Element');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Gets the `target` property.
|
|
||||||
* @return {String|HTMLElement}
|
|
||||||
*/
|
|
||||||
,
|
|
||||||
get: function get() {
|
|
||||||
return this._target;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return ClipboardAction;
|
|
||||||
}();
|
|
||||||
|
|
||||||
/* harmony default export */ var clipboard_action = (ClipboardAction);
|
|
||||||
;// CONCATENATED MODULE: ./src/clipboard.js
|
|
||||||
function clipboard_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return clipboard_typeof(obj); }
|
|
||||||
|
|
||||||
function clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
||||||
|
|
||||||
function clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
||||||
|
|
||||||
function clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) clipboard_defineProperties(Constructor, staticProps); return Constructor; }
|
|
||||||
|
|
||||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
||||||
|
|
||||||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||||||
|
@ -312,6 +203,8 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to retrieve attribute value.
|
* Helper function to retrieve attribute value.
|
||||||
* @param {String} suffix
|
* @param {String} suffix
|
||||||
|
@ -345,7 +238,7 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
function Clipboard(trigger, options) {
|
function Clipboard(trigger, options) {
|
||||||
var _this;
|
var _this;
|
||||||
|
|
||||||
clipboard_classCallCheck(this, Clipboard);
|
_classCallCheck(this, Clipboard);
|
||||||
|
|
||||||
_this = _super.call(this);
|
_this = _super.call(this);
|
||||||
|
|
||||||
|
@ -362,7 +255,7 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
clipboard_createClass(Clipboard, [{
|
_createClass(Clipboard, [{
|
||||||
key: "resolveOptions",
|
key: "resolveOptions",
|
||||||
value: function resolveOptions() {
|
value: function resolveOptions() {
|
||||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||||
|
@ -394,18 +287,26 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
key: "onClick",
|
key: "onClick",
|
||||||
value: function onClick(e) {
|
value: function onClick(e) {
|
||||||
var trigger = e.delegateTarget || e.currentTarget;
|
var trigger = e.delegateTarget || e.currentTarget;
|
||||||
|
var action = this.action(trigger) || 'copy';
|
||||||
if (this.clipboardAction) {
|
var text = actions_default({
|
||||||
this.clipboardAction = null;
|
action: action,
|
||||||
}
|
|
||||||
|
|
||||||
this.clipboardAction = new clipboard_action({
|
|
||||||
action: this.action(trigger),
|
|
||||||
target: this.target(trigger),
|
|
||||||
text: this.text(trigger),
|
|
||||||
container: this.container,
|
container: this.container,
|
||||||
|
target: this.target(trigger),
|
||||||
|
text: this.text(trigger)
|
||||||
|
}); // Fires an event based on the copy operation result.
|
||||||
|
|
||||||
|
this.emit(text ? 'success' : 'error', {
|
||||||
|
action: action,
|
||||||
|
text: text,
|
||||||
trigger: trigger,
|
trigger: trigger,
|
||||||
emitter: this
|
clearSelection: function clearSelection() {
|
||||||
|
if (trigger) {
|
||||||
|
trigger.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
document.activeElement.blur();
|
||||||
|
window.getSelection().removeAllRanges();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -433,9 +334,10 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Returns the support of the given action, or all actions if no action is
|
* Allow fire programmatically a copy action
|
||||||
* given.
|
* @param {String|HTMLElement} target
|
||||||
* @param {String} [action]
|
* @param {Object} options
|
||||||
|
* @returns Text copied.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
}, {
|
}, {
|
||||||
|
@ -456,13 +358,33 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
key: "destroy",
|
key: "destroy",
|
||||||
value: function destroy() {
|
value: function destroy() {
|
||||||
this.listener.destroy();
|
this.listener.destroy();
|
||||||
|
|
||||||
if (this.clipboardAction) {
|
|
||||||
this.clipboardAction.destroy();
|
|
||||||
this.clipboardAction = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}], [{
|
}], [{
|
||||||
|
key: "copy",
|
||||||
|
value: function copy(target) {
|
||||||
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
||||||
|
container: document.body
|
||||||
|
};
|
||||||
|
return actions_copy(target, options);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Allow fire programmatically a cut action
|
||||||
|
* @param {String|HTMLElement} target
|
||||||
|
* @returns Text cutted.
|
||||||
|
*/
|
||||||
|
|
||||||
|
}, {
|
||||||
|
key: "cut",
|
||||||
|
value: function cut(target) {
|
||||||
|
return actions_cut(target);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Returns the support of the given action, or all actions if no action is
|
||||||
|
* given.
|
||||||
|
* @param {String} [action]
|
||||||
|
*/
|
||||||
|
|
||||||
|
}, {
|
||||||
key: "isSupported",
|
key: "isSupported",
|
||||||
value: function isSupported() {
|
value: function isSupported() {
|
||||||
var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
|
var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
|
||||||
|
@ -948,7 +870,7 @@ module.exports.TinyEmitter = E;
|
||||||
/******/ // module exports must be returned from runtime so entry inlining is disabled
|
/******/ // module exports must be returned from runtime so entry inlining is disabled
|
||||||
/******/ // startup
|
/******/ // startup
|
||||||
/******/ // Load entry module and return exports
|
/******/ // Load entry module and return exports
|
||||||
/******/ return __webpack_require__(134);
|
/******/ return __webpack_require__(686);
|
||||||
/******/ })()
|
/******/ })()
|
||||||
.default;
|
.default;
|
||||||
});
|
});
|
File diff suppressed because one or more lines are too long
|
@ -5,7 +5,7 @@
|
||||||
/***/ (function(module) {
|
/***/ (function(module) {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* clipboard.js v2.0.8
|
* clipboard.js v2.0.10
|
||||||
* https://clipboardjs.com/
|
* https://clipboardjs.com/
|
||||||
*
|
*
|
||||||
* Licensed MIT © Zeno Rocha
|
* Licensed MIT © Zeno Rocha
|
||||||
|
@ -18,284 +18,175 @@
|
||||||
return /******/ (function() { // webpackBootstrap
|
return /******/ (function() { // webpackBootstrap
|
||||||
/******/ var __webpack_modules__ = ({
|
/******/ var __webpack_modules__ = ({
|
||||||
|
|
||||||
/***/ 134:
|
/***/ 686:
|
||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __nested_webpack_require_622__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __nested_webpack_require_623__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
// EXPORTS
|
// EXPORTS
|
||||||
__nested_webpack_require_622__.d(__webpack_exports__, {
|
__nested_webpack_require_623__.d(__webpack_exports__, {
|
||||||
"default": function() { return /* binding */ clipboard; }
|
"default": function() { return /* binding */ clipboard; }
|
||||||
});
|
});
|
||||||
|
|
||||||
// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js
|
// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js
|
||||||
var tiny_emitter = __nested_webpack_require_622__(279);
|
var tiny_emitter = __nested_webpack_require_623__(279);
|
||||||
var tiny_emitter_default = /*#__PURE__*/__nested_webpack_require_622__.n(tiny_emitter);
|
var tiny_emitter_default = /*#__PURE__*/__nested_webpack_require_623__.n(tiny_emitter);
|
||||||
// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js
|
// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js
|
||||||
var listen = __nested_webpack_require_622__(370);
|
var listen = __nested_webpack_require_623__(370);
|
||||||
var listen_default = /*#__PURE__*/__nested_webpack_require_622__.n(listen);
|
var listen_default = /*#__PURE__*/__nested_webpack_require_623__.n(listen);
|
||||||
// EXTERNAL MODULE: ./node_modules/select/src/select.js
|
// EXTERNAL MODULE: ./node_modules/select/src/select.js
|
||||||
var src_select = __nested_webpack_require_622__(817);
|
var src_select = __nested_webpack_require_623__(817);
|
||||||
var select_default = /*#__PURE__*/__nested_webpack_require_622__.n(src_select);
|
var select_default = /*#__PURE__*/__nested_webpack_require_623__.n(src_select);
|
||||||
;// CONCATENATED MODULE: ./src/clipboard-action.js
|
;// CONCATENATED MODULE: ./src/common/command.js
|
||||||
|
/**
|
||||||
|
* Executes a given operation type.
|
||||||
|
* @param {String} type
|
||||||
|
* @return {Boolean}
|
||||||
|
*/
|
||||||
|
function command(type) {
|
||||||
|
try {
|
||||||
|
return document.execCommand(type);
|
||||||
|
} catch (err) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
;// CONCATENATED MODULE: ./src/actions/cut.js
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cut action wrapper.
|
||||||
|
* @param {String|HTMLElement} target
|
||||||
|
* @return {String}
|
||||||
|
*/
|
||||||
|
|
||||||
|
var ClipboardActionCut = function ClipboardActionCut(target) {
|
||||||
|
var selectedText = select_default()(target);
|
||||||
|
command('cut');
|
||||||
|
return selectedText;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* harmony default export */ var actions_cut = (ClipboardActionCut);
|
||||||
|
;// CONCATENATED MODULE: ./src/common/create-fake-element.js
|
||||||
|
/**
|
||||||
|
* Creates a fake textarea element with a value.
|
||||||
|
* @param {String} value
|
||||||
|
* @return {HTMLElement}
|
||||||
|
*/
|
||||||
|
function createFakeElement(value) {
|
||||||
|
var isRTL = document.documentElement.getAttribute('dir') === 'rtl';
|
||||||
|
var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS
|
||||||
|
|
||||||
|
fakeElement.style.fontSize = '12pt'; // Reset box model
|
||||||
|
|
||||||
|
fakeElement.style.border = '0';
|
||||||
|
fakeElement.style.padding = '0';
|
||||||
|
fakeElement.style.margin = '0'; // Move element out of screen horizontally
|
||||||
|
|
||||||
|
fakeElement.style.position = 'absolute';
|
||||||
|
fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically
|
||||||
|
|
||||||
|
var yPosition = window.pageYOffset || document.documentElement.scrollTop;
|
||||||
|
fakeElement.style.top = "".concat(yPosition, "px");
|
||||||
|
fakeElement.setAttribute('readonly', '');
|
||||||
|
fakeElement.value = value;
|
||||||
|
return fakeElement;
|
||||||
|
}
|
||||||
|
;// CONCATENATED MODULE: ./src/actions/copy.js
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy action wrapper.
|
||||||
|
* @param {String|HTMLElement} target
|
||||||
|
* @param {Object} options
|
||||||
|
* @return {String}
|
||||||
|
*/
|
||||||
|
|
||||||
|
var ClipboardActionCopy = function ClipboardActionCopy(target) {
|
||||||
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
||||||
|
container: document.body
|
||||||
|
};
|
||||||
|
var selectedText = '';
|
||||||
|
|
||||||
|
if (typeof target === 'string') {
|
||||||
|
var fakeElement = createFakeElement(target);
|
||||||
|
options.container.appendChild(fakeElement);
|
||||||
|
selectedText = select_default()(fakeElement);
|
||||||
|
command('copy');
|
||||||
|
fakeElement.remove();
|
||||||
|
} else {
|
||||||
|
selectedText = select_default()(target);
|
||||||
|
command('copy');
|
||||||
|
}
|
||||||
|
|
||||||
|
return selectedText;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* harmony default export */ var actions_copy = (ClipboardActionCopy);
|
||||||
|
;// CONCATENATED MODULE: ./src/actions/default.js
|
||||||
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inner function which performs selection from either `text` or `target`
|
||||||
|
* properties and then executes copy or cut operations.
|
||||||
|
* @param {Object} options
|
||||||
|
*/
|
||||||
|
|
||||||
|
var ClipboardActionDefault = function ClipboardActionDefault() {
|
||||||
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||||
|
// Defines base properties passed from constructor.
|
||||||
|
var _options$action = options.action,
|
||||||
|
action = _options$action === void 0 ? 'copy' : _options$action,
|
||||||
|
container = options.container,
|
||||||
|
target = options.target,
|
||||||
|
text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.
|
||||||
|
|
||||||
|
if (action !== 'copy' && action !== 'cut') {
|
||||||
|
throw new Error('Invalid "action" value, use either "copy" or "cut"');
|
||||||
|
} // Sets the `target` property using an element that will be have its content copied.
|
||||||
|
|
||||||
|
|
||||||
|
if (target !== undefined) {
|
||||||
|
if (target && _typeof(target) === 'object' && target.nodeType === 1) {
|
||||||
|
if (action === 'copy' && target.hasAttribute('disabled')) {
|
||||||
|
throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
|
||||||
|
throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error('Invalid "target" value, use a valid Element');
|
||||||
|
}
|
||||||
|
} // Define selection strategy based on `text` property.
|
||||||
|
|
||||||
|
|
||||||
|
if (text) {
|
||||||
|
return actions_copy(text, {
|
||||||
|
container: container
|
||||||
|
});
|
||||||
|
} // Defines which selection strategy based on `target` property.
|
||||||
|
|
||||||
|
|
||||||
|
if (target) {
|
||||||
|
return action === 'cut' ? actions_cut(target) : actions_copy(target, {
|
||||||
|
container: container
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* harmony default export */ var actions_default = (ClipboardActionDefault);
|
||||||
|
;// CONCATENATED MODULE: ./src/clipboard.js
|
||||||
|
function clipboard_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return clipboard_typeof(obj); }
|
||||||
|
|
||||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inner class which performs selection from either `text` or `target`
|
|
||||||
* properties and then executes copy or cut operations.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var ClipboardAction = /*#__PURE__*/function () {
|
|
||||||
/**
|
|
||||||
* @param {Object} options
|
|
||||||
*/
|
|
||||||
function ClipboardAction(options) {
|
|
||||||
_classCallCheck(this, ClipboardAction);
|
|
||||||
|
|
||||||
this.resolveOptions(options);
|
|
||||||
this.initSelection();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Defines base properties passed from constructor.
|
|
||||||
* @param {Object} options
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
_createClass(ClipboardAction, [{
|
|
||||||
key: "resolveOptions",
|
|
||||||
value: function resolveOptions() {
|
|
||||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
||||||
this.action = options.action;
|
|
||||||
this.container = options.container;
|
|
||||||
this.emitter = options.emitter;
|
|
||||||
this.target = options.target;
|
|
||||||
this.text = options.text;
|
|
||||||
this.trigger = options.trigger;
|
|
||||||
this.selectedText = '';
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Decides which selection strategy is going to be applied based
|
|
||||||
* on the existence of `text` and `target` properties.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "initSelection",
|
|
||||||
value: function initSelection() {
|
|
||||||
if (this.text) {
|
|
||||||
this.selectFake();
|
|
||||||
} else if (this.target) {
|
|
||||||
this.selectTarget();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Creates a fake textarea element, sets its value from `text` property,
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "createFakeElement",
|
|
||||||
value: function createFakeElement() {
|
|
||||||
var isRTL = document.documentElement.getAttribute('dir') === 'rtl';
|
|
||||||
this.fakeElem = document.createElement('textarea'); // Prevent zooming on iOS
|
|
||||||
|
|
||||||
this.fakeElem.style.fontSize = '12pt'; // Reset box model
|
|
||||||
|
|
||||||
this.fakeElem.style.border = '0';
|
|
||||||
this.fakeElem.style.padding = '0';
|
|
||||||
this.fakeElem.style.margin = '0'; // Move element out of screen horizontally
|
|
||||||
|
|
||||||
this.fakeElem.style.position = 'absolute';
|
|
||||||
this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically
|
|
||||||
|
|
||||||
var yPosition = window.pageYOffset || document.documentElement.scrollTop;
|
|
||||||
this.fakeElem.style.top = "".concat(yPosition, "px");
|
|
||||||
this.fakeElem.setAttribute('readonly', '');
|
|
||||||
this.fakeElem.value = this.text;
|
|
||||||
return this.fakeElem;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Get's the value of fakeElem,
|
|
||||||
* and makes a selection on it.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "selectFake",
|
|
||||||
value: function selectFake() {
|
|
||||||
var _this = this;
|
|
||||||
|
|
||||||
var fakeElem = this.createFakeElement();
|
|
||||||
|
|
||||||
this.fakeHandlerCallback = function () {
|
|
||||||
return _this.removeFake();
|
|
||||||
};
|
|
||||||
|
|
||||||
this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;
|
|
||||||
this.container.appendChild(fakeElem);
|
|
||||||
this.selectedText = select_default()(fakeElem);
|
|
||||||
this.copyText();
|
|
||||||
this.removeFake();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Only removes the fake element after another click event, that way
|
|
||||||
* a user can hit `Ctrl+C` to copy because selection still exists.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "removeFake",
|
|
||||||
value: function removeFake() {
|
|
||||||
if (this.fakeHandler) {
|
|
||||||
this.container.removeEventListener('click', this.fakeHandlerCallback);
|
|
||||||
this.fakeHandler = null;
|
|
||||||
this.fakeHandlerCallback = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.fakeElem) {
|
|
||||||
this.container.removeChild(this.fakeElem);
|
|
||||||
this.fakeElem = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Selects the content from element passed on `target` property.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "selectTarget",
|
|
||||||
value: function selectTarget() {
|
|
||||||
this.selectedText = select_default()(this.target);
|
|
||||||
this.copyText();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Executes the copy operation based on the current selection.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "copyText",
|
|
||||||
value: function copyText() {
|
|
||||||
var succeeded;
|
|
||||||
|
|
||||||
try {
|
|
||||||
succeeded = document.execCommand(this.action);
|
|
||||||
} catch (err) {
|
|
||||||
succeeded = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.handleResult(succeeded);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Fires an event based on the copy operation result.
|
|
||||||
* @param {Boolean} succeeded
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "handleResult",
|
|
||||||
value: function handleResult(succeeded) {
|
|
||||||
this.emitter.emit(succeeded ? 'success' : 'error', {
|
|
||||||
action: this.action,
|
|
||||||
text: this.selectedText,
|
|
||||||
trigger: this.trigger,
|
|
||||||
clearSelection: this.clearSelection.bind(this)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Moves focus away from `target` and back to the trigger, removes current selection.
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "clearSelection",
|
|
||||||
value: function clearSelection() {
|
|
||||||
if (this.trigger) {
|
|
||||||
this.trigger.focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
document.activeElement.blur();
|
|
||||||
window.getSelection().removeAllRanges();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Sets the `action` to be performed which can be either 'copy' or 'cut'.
|
|
||||||
* @param {String} action
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "destroy",
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destroy lifecycle.
|
|
||||||
*/
|
|
||||||
value: function destroy() {
|
|
||||||
this.removeFake();
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "action",
|
|
||||||
set: function set() {
|
|
||||||
var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
|
|
||||||
this._action = action;
|
|
||||||
|
|
||||||
if (this._action !== 'copy' && this._action !== 'cut') {
|
|
||||||
throw new Error('Invalid "action" value, use either "copy" or "cut"');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Gets the `action` property.
|
|
||||||
* @return {String}
|
|
||||||
*/
|
|
||||||
,
|
|
||||||
get: function get() {
|
|
||||||
return this._action;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Sets the `target` property using an element
|
|
||||||
* that will be have its content copied.
|
|
||||||
* @param {Element} target
|
|
||||||
*/
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "target",
|
|
||||||
set: function set(target) {
|
|
||||||
if (target !== undefined) {
|
|
||||||
if (target && _typeof(target) === 'object' && target.nodeType === 1) {
|
|
||||||
if (this.action === 'copy' && target.hasAttribute('disabled')) {
|
|
||||||
throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
|
|
||||||
throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
|
|
||||||
}
|
|
||||||
|
|
||||||
this._target = target;
|
|
||||||
} else {
|
|
||||||
throw new Error('Invalid "target" value, use a valid Element');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Gets the `target` property.
|
|
||||||
* @return {String|HTMLElement}
|
|
||||||
*/
|
|
||||||
,
|
|
||||||
get: function get() {
|
|
||||||
return this._target;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return ClipboardAction;
|
|
||||||
}();
|
|
||||||
|
|
||||||
/* harmony default export */ var clipboard_action = (ClipboardAction);
|
|
||||||
;// CONCATENATED MODULE: ./src/clipboard.js
|
|
||||||
function clipboard_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return clipboard_typeof(obj); }
|
|
||||||
|
|
||||||
function clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
||||||
|
|
||||||
function clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
||||||
|
|
||||||
function clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) clipboard_defineProperties(Constructor, staticProps); return Constructor; }
|
|
||||||
|
|
||||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
||||||
|
|
||||||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||||||
|
@ -313,6 +204,8 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to retrieve attribute value.
|
* Helper function to retrieve attribute value.
|
||||||
* @param {String} suffix
|
* @param {String} suffix
|
||||||
|
@ -346,7 +239,7 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
function Clipboard(trigger, options) {
|
function Clipboard(trigger, options) {
|
||||||
var _this;
|
var _this;
|
||||||
|
|
||||||
clipboard_classCallCheck(this, Clipboard);
|
_classCallCheck(this, Clipboard);
|
||||||
|
|
||||||
_this = _super.call(this);
|
_this = _super.call(this);
|
||||||
|
|
||||||
|
@ -363,7 +256,7 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
clipboard_createClass(Clipboard, [{
|
_createClass(Clipboard, [{
|
||||||
key: "resolveOptions",
|
key: "resolveOptions",
|
||||||
value: function resolveOptions() {
|
value: function resolveOptions() {
|
||||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||||
|
@ -395,18 +288,26 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
key: "onClick",
|
key: "onClick",
|
||||||
value: function onClick(e) {
|
value: function onClick(e) {
|
||||||
var trigger = e.delegateTarget || e.currentTarget;
|
var trigger = e.delegateTarget || e.currentTarget;
|
||||||
|
var action = this.action(trigger) || 'copy';
|
||||||
if (this.clipboardAction) {
|
var text = actions_default({
|
||||||
this.clipboardAction = null;
|
action: action,
|
||||||
}
|
|
||||||
|
|
||||||
this.clipboardAction = new clipboard_action({
|
|
||||||
action: this.action(trigger),
|
|
||||||
target: this.target(trigger),
|
|
||||||
text: this.text(trigger),
|
|
||||||
container: this.container,
|
container: this.container,
|
||||||
|
target: this.target(trigger),
|
||||||
|
text: this.text(trigger)
|
||||||
|
}); // Fires an event based on the copy operation result.
|
||||||
|
|
||||||
|
this.emit(text ? 'success' : 'error', {
|
||||||
|
action: action,
|
||||||
|
text: text,
|
||||||
trigger: trigger,
|
trigger: trigger,
|
||||||
emitter: this
|
clearSelection: function clearSelection() {
|
||||||
|
if (trigger) {
|
||||||
|
trigger.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
document.activeElement.blur();
|
||||||
|
window.getSelection().removeAllRanges();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -434,9 +335,10 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Returns the support of the given action, or all actions if no action is
|
* Allow fire programmatically a copy action
|
||||||
* given.
|
* @param {String|HTMLElement} target
|
||||||
* @param {String} [action]
|
* @param {Object} options
|
||||||
|
* @returns Text copied.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
}, {
|
}, {
|
||||||
|
@ -457,13 +359,33 @@ var Clipboard = /*#__PURE__*/function (_Emitter) {
|
||||||
key: "destroy",
|
key: "destroy",
|
||||||
value: function destroy() {
|
value: function destroy() {
|
||||||
this.listener.destroy();
|
this.listener.destroy();
|
||||||
|
|
||||||
if (this.clipboardAction) {
|
|
||||||
this.clipboardAction.destroy();
|
|
||||||
this.clipboardAction = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}], [{
|
}], [{
|
||||||
|
key: "copy",
|
||||||
|
value: function copy(target) {
|
||||||
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
||||||
|
container: document.body
|
||||||
|
};
|
||||||
|
return actions_copy(target, options);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Allow fire programmatically a cut action
|
||||||
|
* @param {String|HTMLElement} target
|
||||||
|
* @returns Text cutted.
|
||||||
|
*/
|
||||||
|
|
||||||
|
}, {
|
||||||
|
key: "cut",
|
||||||
|
value: function cut(target) {
|
||||||
|
return actions_cut(target);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Returns the support of the given action, or all actions if no action is
|
||||||
|
* given.
|
||||||
|
* @param {String} [action]
|
||||||
|
*/
|
||||||
|
|
||||||
|
}, {
|
||||||
key: "isSupported",
|
key: "isSupported",
|
||||||
value: function isSupported() {
|
value: function isSupported() {
|
||||||
var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
|
var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
|
||||||
|
@ -524,9 +446,9 @@ module.exports = closest;
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 438:
|
/***/ 438:
|
||||||
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_17417__) {
|
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_15133__) {
|
||||||
|
|
||||||
var closest = __nested_webpack_require_17417__(828);
|
var closest = __nested_webpack_require_15133__(828);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delegates event to a selector.
|
* Delegates event to a selector.
|
||||||
|
@ -665,10 +587,10 @@ exports.fn = function(value) {
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 370:
|
/***/ 370:
|
||||||
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_20781__) {
|
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_18497__) {
|
||||||
|
|
||||||
var is = __nested_webpack_require_20781__(879);
|
var is = __nested_webpack_require_18497__(879);
|
||||||
var delegate = __nested_webpack_require_20781__(438);
|
var delegate = __nested_webpack_require_18497__(438);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validates all params and calls the right
|
* Validates all params and calls the right
|
||||||
|
@ -896,7 +818,7 @@ module.exports.TinyEmitter = E;
|
||||||
/******/ var __webpack_module_cache__ = {};
|
/******/ var __webpack_module_cache__ = {};
|
||||||
/******/
|
/******/
|
||||||
/******/ // The require function
|
/******/ // The require function
|
||||||
/******/ function __nested_webpack_require_26163__(moduleId) {
|
/******/ function __nested_webpack_require_23879__(moduleId) {
|
||||||
/******/ // Check if module is in cache
|
/******/ // Check if module is in cache
|
||||||
/******/ if(__webpack_module_cache__[moduleId]) {
|
/******/ if(__webpack_module_cache__[moduleId]) {
|
||||||
/******/ return __webpack_module_cache__[moduleId].exports;
|
/******/ return __webpack_module_cache__[moduleId].exports;
|
||||||
|
@ -909,7 +831,7 @@ module.exports.TinyEmitter = E;
|
||||||
/******/ };
|
/******/ };
|
||||||
/******/
|
/******/
|
||||||
/******/ // Execute the module function
|
/******/ // Execute the module function
|
||||||
/******/ __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_26163__);
|
/******/ __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_23879__);
|
||||||
/******/
|
/******/
|
||||||
/******/ // Return the exports of the module
|
/******/ // Return the exports of the module
|
||||||
/******/ return module.exports;
|
/******/ return module.exports;
|
||||||
|
@ -919,11 +841,11 @@ module.exports.TinyEmitter = E;
|
||||||
/******/ /* webpack/runtime/compat get default export */
|
/******/ /* webpack/runtime/compat get default export */
|
||||||
/******/ !function() {
|
/******/ !function() {
|
||||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||||
/******/ __nested_webpack_require_26163__.n = function(module) {
|
/******/ __nested_webpack_require_23879__.n = function(module) {
|
||||||
/******/ var getter = module && module.__esModule ?
|
/******/ var getter = module && module.__esModule ?
|
||||||
/******/ function() { return module['default']; } :
|
/******/ function() { return module['default']; } :
|
||||||
/******/ function() { return module; };
|
/******/ function() { return module; };
|
||||||
/******/ __nested_webpack_require_26163__.d(getter, { a: getter });
|
/******/ __nested_webpack_require_23879__.d(getter, { a: getter });
|
||||||
/******/ return getter;
|
/******/ return getter;
|
||||||
/******/ };
|
/******/ };
|
||||||
/******/ }();
|
/******/ }();
|
||||||
|
@ -931,9 +853,9 @@ module.exports.TinyEmitter = E;
|
||||||
/******/ /* webpack/runtime/define property getters */
|
/******/ /* webpack/runtime/define property getters */
|
||||||
/******/ !function() {
|
/******/ !function() {
|
||||||
/******/ // define getter functions for harmony exports
|
/******/ // define getter functions for harmony exports
|
||||||
/******/ __nested_webpack_require_26163__.d = function(exports, definition) {
|
/******/ __nested_webpack_require_23879__.d = function(exports, definition) {
|
||||||
/******/ for(var key in definition) {
|
/******/ for(var key in definition) {
|
||||||
/******/ if(__nested_webpack_require_26163__.o(definition, key) && !__nested_webpack_require_26163__.o(exports, key)) {
|
/******/ if(__nested_webpack_require_23879__.o(definition, key) && !__nested_webpack_require_23879__.o(exports, key)) {
|
||||||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
||||||
/******/ }
|
/******/ }
|
||||||
/******/ }
|
/******/ }
|
||||||
|
@ -942,14 +864,14 @@ module.exports.TinyEmitter = E;
|
||||||
/******/
|
/******/
|
||||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||||
/******/ !function() {
|
/******/ !function() {
|
||||||
/******/ __nested_webpack_require_26163__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
/******/ __nested_webpack_require_23879__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
||||||
/******/ }();
|
/******/ }();
|
||||||
/******/
|
/******/
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/******/ // module exports must be returned from runtime so entry inlining is disabled
|
/******/ // module exports must be returned from runtime so entry inlining is disabled
|
||||||
/******/ // startup
|
/******/ // startup
|
||||||
/******/ // Load entry module and return exports
|
/******/ // Load entry module and return exports
|
||||||
/******/ return __nested_webpack_require_26163__(134);
|
/******/ return __nested_webpack_require_23879__(686);
|
||||||
/******/ })()
|
/******/ })()
|
||||||
.default;
|
.default;
|
||||||
});
|
});
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -7,13 +7,13 @@
|
||||||
exports.noConflict = function () { global._ = current; return exports; };
|
exports.noConflict = function () { global._ = current; return exports; };
|
||||||
}()));
|
}()));
|
||||||
}(this, (function () {
|
}(this, (function () {
|
||||||
// Underscore.js 1.13.1
|
// Underscore.js 1.13.2
|
||||||
// https://underscorejs.org
|
// https://underscorejs.org
|
||||||
// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
|
// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
|
||||||
// Underscore may be freely distributed under the MIT license.
|
// Underscore may be freely distributed under the MIT license.
|
||||||
|
|
||||||
// Current version.
|
// Current version.
|
||||||
var VERSION = '1.13.1';
|
var VERSION = '1.13.2';
|
||||||
|
|
||||||
// Establish the root object, `window` (`self`) in the browser, `global`
|
// Establish the root object, `window` (`self`) in the browser, `global`
|
||||||
// on the server, or `this` in some virtual machines. We use `self`
|
// on the server, or `this` in some virtual machines. We use `self`
|
||||||
|
@ -249,7 +249,7 @@
|
||||||
var hash = {};
|
var hash = {};
|
||||||
for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;
|
for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;
|
||||||
return {
|
return {
|
||||||
contains: function(key) { return hash[key]; },
|
contains: function(key) { return hash[key] === true; },
|
||||||
push: function(key) {
|
push: function(key) {
|
||||||
hash[key] = true;
|
hash[key] = true;
|
||||||
return keys.push(key);
|
return keys.push(key);
|
||||||
|
@ -1513,6 +1513,19 @@
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Safely create a real, live array from anything iterable.
|
||||||
|
var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;
|
||||||
|
function toArray(obj) {
|
||||||
|
if (!obj) return [];
|
||||||
|
if (isArray(obj)) return slice.call(obj);
|
||||||
|
if (isString(obj)) {
|
||||||
|
// Keep surrogate pair characters together.
|
||||||
|
return obj.match(reStrSymbol);
|
||||||
|
}
|
||||||
|
if (isArrayLike(obj)) return map(obj, identity);
|
||||||
|
return values(obj);
|
||||||
|
}
|
||||||
|
|
||||||
// Sample **n** random values from a collection using the modern version of the
|
// Sample **n** random values from a collection using the modern version of the
|
||||||
// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).
|
// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).
|
||||||
// If **n** is not specified, returns a single random element.
|
// If **n** is not specified, returns a single random element.
|
||||||
|
@ -1522,7 +1535,7 @@
|
||||||
if (!isArrayLike(obj)) obj = values(obj);
|
if (!isArrayLike(obj)) obj = values(obj);
|
||||||
return obj[random(obj.length - 1)];
|
return obj[random(obj.length - 1)];
|
||||||
}
|
}
|
||||||
var sample = isArrayLike(obj) ? clone(obj) : values(obj);
|
var sample = toArray(obj);
|
||||||
var length = getLength(sample);
|
var length = getLength(sample);
|
||||||
n = Math.max(Math.min(n, length), 0);
|
n = Math.max(Math.min(n, length), 0);
|
||||||
var last = length - 1;
|
var last = length - 1;
|
||||||
|
@ -1599,19 +1612,6 @@
|
||||||
result[pass ? 0 : 1].push(value);
|
result[pass ? 0 : 1].push(value);
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
// Safely create a real, live array from anything iterable.
|
|
||||||
var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;
|
|
||||||
function toArray(obj) {
|
|
||||||
if (!obj) return [];
|
|
||||||
if (isArray(obj)) return slice.call(obj);
|
|
||||||
if (isString(obj)) {
|
|
||||||
// Keep surrogate pair characters together.
|
|
||||||
return obj.match(reStrSymbol);
|
|
||||||
}
|
|
||||||
if (isArrayLike(obj)) return map(obj, identity);
|
|
||||||
return values(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return the number of elements in a collection.
|
// Return the number of elements in a collection.
|
||||||
function size(obj) {
|
function size(obj) {
|
||||||
if (obj == null) return 0;
|
if (obj == null) return 0;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -968,8 +968,8 @@ function wp_default_scripts( $scripts ) {
|
||||||
$scripts->add( 'json2', "/wp-includes/js/json2$suffix.js", array(), '2015-05-03' );
|
$scripts->add( 'json2', "/wp-includes/js/json2$suffix.js", array(), '2015-05-03' );
|
||||||
did_action( 'init' ) && $scripts->add_data( 'json2', 'conditional', 'lt IE 8' );
|
did_action( 'init' ) && $scripts->add_data( 'json2', 'conditional', 'lt IE 8' );
|
||||||
|
|
||||||
$scripts->add( 'underscore', "/wp-includes/js/underscore$dev_suffix.js", array(), '1.13.1', 1 );
|
$scripts->add( 'underscore', "/wp-includes/js/underscore$dev_suffix.js", array(), '1.13.2', 1 );
|
||||||
$scripts->add( 'backbone', "/wp-includes/js/backbone$dev_suffix.js", array( 'underscore', 'jquery' ), '1.4.0', 1 );
|
$scripts->add( 'backbone', "/wp-includes/js/backbone$dev_suffix.js", array( 'underscore', 'jquery' ), '1.4.1', 1 );
|
||||||
|
|
||||||
$scripts->add( 'wp-util', "/wp-includes/js/wp-util$suffix.js", array( 'underscore', 'jquery' ), false, 1 );
|
$scripts->add( 'wp-util', "/wp-includes/js/wp-util$suffix.js", array( 'underscore', 'jquery' ), false, 1 );
|
||||||
did_action( 'init' ) && $scripts->localize(
|
did_action( 'init' ) && $scripts->localize(
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '6.0-alpha-53163';
|
$wp_version = '6.0-alpha-53164';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
Loading…
Reference in New Issue