easy 13.0.17 → 13.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +128 -80
- package/index.html +1 -2
- package/lib/element/body.js +3 -3
- package/lib/element/checkbox.js +3 -3
- package/lib/element.js +37 -29
- package/lib/mixins/element.js +13 -13
- package/lib/mixins/event.js +5 -5
- package/lib/mixins/jsx.js +3 -3
- package/lib/utilities/array.js +18 -10
- package/lib/utilities/dom.js +5 -5
- package/lib/utilities/object.js +6 -6
- package/lib/window.js +22 -14
- package/package.json +2 -2
package/index.html
CHANGED
package/lib/element/body.js
CHANGED
|
@@ -155,8 +155,8 @@ function _createSuper(Derived) {
|
|
|
155
155
|
var Body = /*#__PURE__*/ function(Element) {
|
|
156
156
|
_inherits(Body, Element);
|
|
157
157
|
var _super = _createSuper(Body);
|
|
158
|
-
function Body(
|
|
159
|
-
var selector =
|
|
158
|
+
function Body() {
|
|
159
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants.BODY;
|
|
160
160
|
_classCallCheck(this, Body);
|
|
161
161
|
return _super.call(this, selector);
|
|
162
162
|
}
|
|
@@ -165,4 +165,4 @@ var Body = /*#__PURE__*/ function(Element) {
|
|
|
165
165
|
_defineProperty(Body, "tagName", "body");
|
|
166
166
|
exports.default = Body;
|
|
167
167
|
|
|
168
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
168
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JvZHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBFbGVtZW50IGZyb20gXCIuLi9lbGVtZW50XCI7XG5cbmltcG9ydCB7IEJPRFkgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvZHkgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IgPSBCT0RZKSB7XG4gICAgc3VwZXIoc2VsZWN0b3IpO1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImJvZHlcIjtcbn1cbiJdLCJuYW1lcyI6WyJCb2R5Iiwic2VsZWN0b3IiLCJ0YWdOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVRLEdBQVksQ0FBWixRQUFZO0FBRVgsR0FBYyxDQUFkLFVBQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFZEEsSUFBSSxpQkFBVixRQUFRO2NBQUZBLElBQUk7OEJBQUpBLElBQUk7YUFBSkEsSUFBSTtZQUNYQyxRQUFRLG9FQUhELFVBQWM7OEJBRWRELElBQUk7aUNBRWZDLFFBQVE7O1dBRkdELElBQUk7bUJBSkwsUUFBWTtnQkFJWEEsSUFBSSxFQUtoQkUsQ0FBTyxVQUFHLENBQU07a0JBTEpGLElBQUkifQ==
|
package/lib/element/checkbox.js
CHANGED
|
@@ -182,8 +182,8 @@ var Checkbox = /*#__PURE__*/ function(Element) {
|
|
|
182
182
|
},
|
|
183
183
|
{
|
|
184
184
|
key: "check",
|
|
185
|
-
value: function check(
|
|
186
|
-
var checked =
|
|
185
|
+
value: function check() {
|
|
186
|
+
var checked = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
187
187
|
this.domElement.checked = checked;
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -198,4 +198,4 @@ Object.assign(Checkbox.prototype, _change.default);
|
|
|
198
198
|
var _default = Checkbox;
|
|
199
199
|
exports.default = _default;
|
|
200
200
|
|
|
201
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
201
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NoZWNrYm94LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRWxlbWVudCBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IGNoYW5nZU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL2NoYW5nZVwiO1xuXG5jbGFzcyBDaGVja2JveCBleHRlbmRzIEVsZW1lbnQge1xuICBpc0NoZWNrZWQoKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQuY2hlY2tlZDsgfVxuXG4gIGNoZWNrKGNoZWNrZWQgPSB0cnVlKSB7IHRoaXMuZG9tRWxlbWVudC5jaGVja2VkID0gY2hlY2tlZDsgfVxuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJpbnB1dFwiO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICB0eXBlOiBcImNoZWNrYm94XCJcbiAgfTtcbn1cblxuT2JqZWN0LmFzc2lnbihDaGVja2JveC5wcm90b3R5cGUsIGNoYW5nZU1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94O1xuIl0sIm5hbWVzIjpbIkNoZWNrYm94IiwiaXNDaGVja2VkIiwiZG9tRWxlbWVudCIsImNoZWNrZWQiLCJjaGVjayIsInRhZ05hbWUiLCJkZWZhdWx0UHJvcGVydGllcyIsInR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVEsR0FBWSxDQUFaLFFBQVk7QUFDUCxHQUFrQixDQUFsQixPQUFrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRXJDQSxRQUFRLGlCQUFkLFFBQVE7Y0FBRkEsUUFBUTs4QkFBUkEsUUFBUTthQUFSQSxRQUFROzhCQUFSQSxRQUFROzs7aUJBQVJBLFFBQVE7O1lBQ1pDLEdBQVMsRUFBVEEsQ0FBUzttQkFBVEEsUUFBUSxDQUFSQSxTQUFTLEdBQUcsQ0FBQztnQkFBQyxNQUFNLENBQUMsSUFBSSxDQUFDQyxVQUFVLENBQUNDLE9BQU87WUFBRSxDQUFDOzs7WUFFL0NDLEdBQUssRUFBTEEsQ0FBSzttQkFBTEEsUUFBUSxDQUFSQSxLQUFLLEdBQWlCLENBQUM7b0JBQWpCRCxPQUFPLG9FQUFHLElBQUk7Z0JBQUksSUFBSSxDQUFDRCxVQUFVLENBQUNDLE9BQU8sR0FBR0EsT0FBTztZQUFFLENBQUM7OztXQUh4REgsUUFBUTttQkFITSxRQUFZO2dCQUcxQkEsUUFBUSxFQUtMSyxDQUFPLFVBQUcsQ0FBTztnQkFMcEJMLFFBQVEsRUFPTE0sQ0FBaUIsb0JBQUcsQ0FBQztJQUMxQkMsSUFBSSxFQUFFLENBQVU7QUFDbEIsQ0FBQztBQUdIQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ1QsUUFBUSxDQUFDVSxTQUFTLEVBZFAsT0FBa0I7ZUFnQjVCVixRQUFRIn0=
|
package/lib/element.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.default = void 0;
|
|
|
6
6
|
var _offset = _interopRequireDefault(require("./offset"));
|
|
7
7
|
var _bounds = _interopRequireDefault(require("./bounds"));
|
|
8
8
|
var _jsx = _interopRequireDefault(require("./mixins/jsx"));
|
|
9
|
-
var
|
|
9
|
+
var _key = _interopRequireDefault(require("./mixins/key"));
|
|
10
10
|
var _click = _interopRequireDefault(require("./mixins/click"));
|
|
11
11
|
var _state = _interopRequireDefault(require("./mixins/state"));
|
|
12
12
|
var _event = _interopRequireDefault(require("./mixins/event"));
|
|
@@ -18,13 +18,13 @@ var _object = require("./utilities/object");
|
|
|
18
18
|
var _name = require("./utilities/name");
|
|
19
19
|
var _array = require("./utilities/array");
|
|
20
20
|
var _constants = require("./constants");
|
|
21
|
+
function _arrayLikeToArray(arr, len) {
|
|
22
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
23
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
24
|
+
return arr2;
|
|
25
|
+
}
|
|
21
26
|
function _arrayWithoutHoles(arr) {
|
|
22
|
-
if (Array.isArray(arr))
|
|
23
|
-
for(var i = 0, arr2 = new Array(arr.length); i < arr.length; i++){
|
|
24
|
-
arr2[i] = arr[i];
|
|
25
|
-
}
|
|
26
|
-
return arr2;
|
|
27
|
-
}
|
|
27
|
+
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
28
28
|
}
|
|
29
29
|
function _classCallCheck(instance, Constructor) {
|
|
30
30
|
if (!(instance instanceof Constructor)) {
|
|
@@ -51,17 +51,25 @@ function _interopRequireDefault(obj) {
|
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
function _iterableToArray(iter) {
|
|
54
|
-
if (Symbol.iterator
|
|
54
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
55
55
|
}
|
|
56
56
|
function _nonIterableSpread() {
|
|
57
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance");
|
|
57
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
58
58
|
}
|
|
59
59
|
function _toConsumableArray(arr) {
|
|
60
|
-
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
|
|
60
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
61
61
|
}
|
|
62
62
|
var _typeof = function(obj) {
|
|
63
63
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
64
64
|
};
|
|
65
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
66
|
+
if (!o) return;
|
|
67
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
68
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
69
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
70
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
71
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
72
|
+
}
|
|
65
73
|
var Element = /*#__PURE__*/ function() {
|
|
66
74
|
function Element(selector) {
|
|
67
75
|
_classCallCheck(this, Element);
|
|
@@ -93,8 +101,8 @@ var Element = /*#__PURE__*/ function() {
|
|
|
93
101
|
},
|
|
94
102
|
{
|
|
95
103
|
key: "getWidth",
|
|
96
|
-
value: function getWidth(
|
|
97
|
-
var includeBorder =
|
|
104
|
+
value: function getWidth() {
|
|
105
|
+
var includeBorder = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
98
106
|
var width = includeBorder ? this.domElement.offsetWidth : this.domElement.clientWidth;
|
|
99
107
|
return width;
|
|
100
108
|
}
|
|
@@ -108,8 +116,8 @@ var Element = /*#__PURE__*/ function() {
|
|
|
108
116
|
},
|
|
109
117
|
{
|
|
110
118
|
key: "getHeight",
|
|
111
|
-
value: function getHeight(
|
|
112
|
-
var includeBorder =
|
|
119
|
+
value: function getHeight() {
|
|
120
|
+
var includeBorder = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
113
121
|
var height = includeBorder ? this.domElement.offsetHeight : this.domElement.clientHeight;
|
|
114
122
|
return height;
|
|
115
123
|
}
|
|
@@ -289,8 +297,8 @@ var Element = /*#__PURE__*/ function() {
|
|
|
289
297
|
},
|
|
290
298
|
{
|
|
291
299
|
key: "show",
|
|
292
|
-
value: function show(
|
|
293
|
-
var displayStyle =
|
|
300
|
+
value: function show() {
|
|
301
|
+
var displayStyle = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants.BLOCK;
|
|
294
302
|
this.display(displayStyle);
|
|
295
303
|
}
|
|
296
304
|
},
|
|
@@ -426,8 +434,8 @@ var Element = /*#__PURE__*/ function() {
|
|
|
426
434
|
{
|
|
427
435
|
key: "fromClass",
|
|
428
436
|
value: function fromClass(Class, properties) {
|
|
429
|
-
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0),
|
|
430
|
-
remainingArguments[
|
|
437
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key1 = 2; _key1 < _len; _key1++){
|
|
438
|
+
remainingArguments[_key1 - 2] = arguments[_key1];
|
|
431
439
|
}
|
|
432
440
|
var tagName = Class.tagName, element = elementFromTagName.apply(void 0, [
|
|
433
441
|
Class,
|
|
@@ -441,8 +449,8 @@ var Element = /*#__PURE__*/ function() {
|
|
|
441
449
|
{
|
|
442
450
|
key: "fromTagName",
|
|
443
451
|
value: function fromTagName(tagName, properties) {
|
|
444
|
-
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0),
|
|
445
|
-
remainingArguments[
|
|
452
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key2 = 2; _key2 < _len; _key2++){
|
|
453
|
+
remainingArguments[_key2 - 2] = arguments[_key2];
|
|
446
454
|
}
|
|
447
455
|
var Class = Element, element = elementFromTagName.apply(void 0, [
|
|
448
456
|
Class,
|
|
@@ -458,7 +466,7 @@ var Element = /*#__PURE__*/ function() {
|
|
|
458
466
|
return Element;
|
|
459
467
|
}();
|
|
460
468
|
Object.assign(Element.prototype, _jsx.default);
|
|
461
|
-
Object.assign(Element.prototype,
|
|
469
|
+
Object.assign(Element.prototype, _key.default);
|
|
462
470
|
Object.assign(Element.prototype, _click.default);
|
|
463
471
|
Object.assign(Element.prototype, _state.default);
|
|
464
472
|
Object.assign(Element.prototype, _event.default);
|
|
@@ -469,8 +477,8 @@ Object.assign(Element.prototype, _element.default);
|
|
|
469
477
|
var _default = Element;
|
|
470
478
|
exports.default = _default;
|
|
471
479
|
function elementFromTagName(Class, tagName) {
|
|
472
|
-
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0),
|
|
473
|
-
remainingArguments[
|
|
480
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key3 = 2; _key3 < _len; _key3++){
|
|
481
|
+
remainingArguments[_key3 - 2] = arguments[_key3];
|
|
474
482
|
}
|
|
475
483
|
var _bind;
|
|
476
484
|
var selector = null, element = new ((_bind = Function.prototype.bind).call.apply(_bind, [
|
|
@@ -482,9 +490,9 @@ function elementFromTagName(Class, tagName) {
|
|
|
482
490
|
element.domElement.__element__ = element; ///
|
|
483
491
|
return element;
|
|
484
492
|
}
|
|
485
|
-
function defaultPropertiesFromClass(Class
|
|
486
|
-
var defaultProperties =
|
|
487
|
-
}
|
|
493
|
+
function defaultPropertiesFromClass(Class) {
|
|
494
|
+
var defaultProperties = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
|
|
495
|
+
};
|
|
488
496
|
if (Class.hasOwnProperty(_constants.DEFAULT_PROPERTIES)) {
|
|
489
497
|
defaultProperties = (0, _object).combine(defaultProperties, Class[_constants.DEFAULT_PROPERTIES]);
|
|
490
498
|
}
|
|
@@ -494,8 +502,8 @@ function defaultPropertiesFromClass(Class, param) {
|
|
|
494
502
|
}
|
|
495
503
|
return defaultProperties;
|
|
496
504
|
}
|
|
497
|
-
function ignoredPropertiesFromClass(Class
|
|
498
|
-
var ignoredProperties =
|
|
505
|
+
function ignoredPropertiesFromClass(Class) {
|
|
506
|
+
var ignoredProperties = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
499
507
|
if (Class.hasOwnProperty(_constants.IGNORED_PROPERTIES)) {
|
|
500
508
|
ignoredProperties = (0, _array).augment(ignoredProperties, Class[_constants.IGNORED_PROPERTIES], function(ignoredProperty) {
|
|
501
509
|
return !ignoredProperties.includes(ignoredProperty);
|
|
@@ -508,4 +516,4 @@ function ignoredPropertiesFromClass(Class, param) {
|
|
|
508
516
|
return ignoredProperties;
|
|
509
517
|
}
|
|
510
518
|
|
|
511
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgT2Zmc2V0IGZyb20gXCIuL29mZnNldFwiO1xuaW1wb3J0IEJvdW5kcyBmcm9tIFwiLi9ib3VuZHNcIjtcbmltcG9ydCBqc3hNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2pzeFwiO1xuaW1wb3J0IGtleU1peGlucyBmcm9tIFwiLi9taXhpbnMva2V5XCI7XG5pbXBvcnQgY2xpY2tNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2NsaWNrXCI7XG5pbXBvcnQgc3RhdGVNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL3N0YXRlXCI7XG5pbXBvcnQgZXZlbnRNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2V2ZW50XCI7XG5pbXBvcnQgbW91c2VNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL21vdXNlXCI7XG5pbXBvcnQgcmVzaXplTWl4aW5zIGZyb20gXCIuL21peGlucy9yZXNpemVcIjtcbmltcG9ydCBzY3JvbGxNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL3Njcm9sbFwiO1xuaW1wb3J0IGVsZW1lbnRNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2VsZW1lbnRcIjtcblxuaW1wb3J0IHsgY29tYmluZSB9IGZyb20gXCIuL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IGlzU1ZHVGFnTmFtZSB9IGZyb20gXCIuL3V0aWxpdGllcy9uYW1lXCI7XG5pbXBvcnQgeyBmaXJzdCwgYXVnbWVudCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgTk9ORSxcbiAgICAgICAgIEJMT0NLLFxuICAgICAgICAgV0lEVEgsXG4gICAgICAgICBTVFJJTkcsXG4gICAgICAgICBIRUlHSFQsXG4gICAgICAgICBESVNQTEFZLFxuICAgICAgICAgRElTQUJMRUQsXG4gICAgICAgICBFTVBUWV9TVFJJTkcsXG4gICAgICAgICBTVkdfTkFNRVNQQUNFX1VSSSxcbiAgICAgICAgIERFRkFVTFRfUFJPUEVSVElFUyxcbiAgICAgICAgIElHTk9SRURfUFJPUEVSVElFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jbGFzcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IpIHtcbiAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgIHRoaXMuZG9tRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuXG4gICAgICB0aGlzLmRvbUVsZW1lbnQuX19lbGVtZW50X18gPSB0aGlzOyAvLy9cbiAgICB9XG4gIH1cblxuICBnZXRET01FbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmRvbUVsZW1lbnQ7XG4gIH1cblxuICBnZXRPZmZzZXQoKSB7XG4gICAgY29uc3QgdG9wID0gdGhpcy5kb21FbGVtZW50Lm9mZnNldFRvcCwgIC8vL1xuICAgICAgICAgIGxlZnQgPSB0aGlzLmRvbUVsZW1lbnQub2Zmc2V0TGVmdCwgIC8vL1xuICAgICAgICAgIG9mZnNldCA9IG5ldyBPZmZzZXQodG9wLCBsZWZ0KTtcblxuICAgIHJldHVybiBvZmZzZXQ7XG4gIH1cblxuICBnZXRCb3VuZHMoKSB7XG4gICAgY29uc3QgYm91bmRpbmdDbGllbnRSZWN0ID0gdGhpcy5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgIGJvdW5kcyA9IEJvdW5kcy5mcm9tQm91bmRpbmdDbGllbnRSZWN0KGJvdW5kaW5nQ2xpZW50UmVjdCk7XG5cbiAgICByZXR1cm4gYm91bmRzO1xuICB9XG5cbiAgZ2V0V2lkdGgoaW5jbHVkZUJvcmRlciA9IHRydWUpIHtcbiAgICBjb25zdCB3aWR0aCA9IGluY2x1ZGVCb3JkZXIgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbUVsZW1lbnQub2Zmc2V0V2lkdGggOlxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgIHJldHVybiB3aWR0aDtcbiAgfVxuXG4gIHNldFdpZHRoKHdpZHRoKSB7XG4gICAgd2lkdGggPSBgJHt3aWR0aH1weGA7IC8vL1xuXG4gICAgdGhpcy5zdHlsZShXSURUSCwgd2lkdGgpO1xuICB9XG5cbiAgZ2V0SGVpZ2h0KGluY2x1ZGVCb3JkZXIgPSB0cnVlKSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gaW5jbHVkZUJvcmRlciA/XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDpcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb21FbGVtZW50LmNsaWVudEhlaWdodDtcblxuICAgIHJldHVybiBoZWlnaHQ7XG4gIH1cblxuICBzZXRIZWlnaHQoaGVpZ2h0KSB7XG4gICAgaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDsgLy8vXG5cbiAgICB0aGlzLnN0eWxlKEhFSUdIVCwgaGVpZ2h0KTtcbiAgfVxuXG4gIGhhc0F0dHJpYnV0ZShuYW1lKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQuaGFzQXR0cmlidXRlKG5hbWUpOyB9XG5cbiAgZ2V0QXR0cmlidXRlKG5hbWUpIHsgcmV0dXJuIHRoaXMuZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUobmFtZSk7IH1cblxuICBzZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHsgdGhpcy5kb21FbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7IH1cblxuICBjbGVhckF0dHJpYnV0ZShuYW1lKSB7IHRoaXMuZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7IH1cblxuICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHsgdGhpcy5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOyB9XG5cbiAgcmVtb3ZlQXR0cmlidXRlKG5hbWUpIHsgdGhpcy5jbGVhckF0dHJpYnV0ZShuYW1lKTsgfVxuXG4gIHNldENsYXNzKGNsYXNzTmFtZSkgeyB0aGlzLmRvbUVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NOYW1lOyB9XG5cbiAgYWRkQ2xhc3MoY2xhc3NOYW1lKSB7IHRoaXMuZG9tRWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7IH1cblxuICByZW1vdmVDbGFzcyhjbGFzc05hbWUpIHsgdGhpcy5kb21FbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTsgfVxuXG4gIHRvZ2dsZUNsYXNzKGNsYXNzTmFtZSkgeyB0aGlzLmRvbUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShjbGFzc05hbWUpOyB9XG5cbiAgaGFzQ2xhc3MoY2xhc3NOYW1lKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSk7IH1cblxuICBjbGVhckNsYXNzZXMoKSB7IHRoaXMuZG9tRWxlbWVudC5jbGFzc05hbWUgPSBFTVBUWV9TVFJJTkc7IH1cblxuICBwcmVwZW5kVG8ocGFyZW50RWxlbWVudCkgeyBwYXJlbnRFbGVtZW50LnByZXBlbmQodGhpcyk7IH1cblxuICBhcHBlbmRUbyhwYXJlbnRFbGVtZW50KSB7IHBhcmVudEVsZW1lbnQuYXBwZW5kKHRoaXMpOyB9XG5cbiAgYWRkVG8ocGFyZW50RWxlbWVudCkgeyBwYXJlbnRFbGVtZW50LmFkZCh0aGlzKTsgfVxuXG4gIHJlbW92ZUZyb20ocGFyZW50RWxlbWVudCkgeyBwYXJlbnRFbGVtZW50LnJlbW92ZSh0aGlzKTsgfVxuXG4gIGluc2VydEJlZm9yZShzaWJsaW5nRWxlbWVudCkge1xuICAgIGNvbnN0IHBhcmVudERPTU5vZGUgPSBzaWJsaW5nRWxlbWVudC5kb21FbGVtZW50LnBhcmVudE5vZGUsXG4gICAgICAgICAgc2libGluZ0RPTUVsZW1lbnQgPSBzaWJsaW5nRWxlbWVudC5kb21FbGVtZW50O1xuXG4gICAgcGFyZW50RE9NTm9kZS5pbnNlcnRCZWZvcmUodGhpcy5kb21FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudCk7XG4gIH1cblxuICBpbnNlcnRBZnRlcihzaWJsaW5nRWxlbWVudCkge1xuICAgIGNvbnN0IHBhcmVudERPTU5vZGUgPSBzaWJsaW5nRWxlbWVudC5kb21FbGVtZW50LnBhcmVudE5vZGUsXG4gICAgICAgICAgc2libGluZ0RPTUVsZW1lbnQgPSBzaWJsaW5nRWxlbWVudC5kb21FbGVtZW50O1xuXG4gICAgcGFyZW50RE9NTm9kZS5pbnNlcnRCZWZvcmUodGhpcy5kb21FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudC5uZXh0U2libGluZyk7ICAvLy9cbiAgfVxuXG4gIHByZXBlbmQoZWxlbWVudCkge1xuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSBlbGVtZW50LmRvbUVsZW1lbnQsXG4gICAgICAgICAgZmlyc3RDaGlsZERPTUVsZW1lbnQgPSB0aGlzLmRvbUVsZW1lbnQuZmlyc3RDaGlsZDtcblxuICAgIHRoaXMuZG9tRWxlbWVudC5pbnNlcnRCZWZvcmUoZG9tRWxlbWVudCwgZmlyc3RDaGlsZERPTUVsZW1lbnQpO1xuICB9XG5cbiAgYXBwZW5kKGVsZW1lbnQpIHtcbiAgICBjb25zdCBkb21FbGVtZW50ID0gZWxlbWVudC5kb21FbGVtZW50O1xuXG4gICAgdGhpcy5kb21FbGVtZW50Lmluc2VydEJlZm9yZShkb21FbGVtZW50LCBudWxsKTsgLy8vXG4gIH1cblxuICBhZGQoZWxlbWVudCkgeyB0aGlzLmFwcGVuZChlbGVtZW50KTsgfVxuXG4gIHJlbW92ZShlbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSBlbGVtZW50LmRvbUVsZW1lbnQ7XG5cbiAgICAgIHRoaXMuZG9tRWxlbWVudC5yZW1vdmVDaGlsZChkb21FbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kb21FbGVtZW50LnJlbW92ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG1vdW50KGVsZW1lbnQpIHtcbiAgICBjb25zdCBkZXNjZW5kYW50RWxlbWVudHMgPSBlbGVtZW50LmdldERlc2NlbmRhbnRFbGVtZW50cygpLFxuICAgICAgICAgIGVsZW1lbnRzID0gW1xuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIC4uLmRlc2NlbmRhbnRFbGVtZW50c1xuICAgICAgICAgIF07XG5cbiAgICB0aGlzLmFkZChlbGVtZW50KTtcblxuICAgIGVsZW1lbnRzLnJldmVyc2UoKTsgLy8vXG5cbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiAoZWxlbWVudC5kaWRNb3VudCAmJiBlbGVtZW50LmRpZE1vdW50KCkpKTsgIC8vL1xuICB9XG5cbiAgdW5tb3VudChlbGVtZW50KSB7XG4gICAgY29uc3QgZGVzY2VuZGFudEVsZW1lbnRzID0gZWxlbWVudC5nZXREZXNjZW5kYW50RWxlbWVudHMoKSxcbiAgICAgICAgICBlbGVtZW50cyA9IFtcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICAuLi5kZXNjZW5kYW50RWxlbWVudHNcbiAgICAgICAgICBdO1xuXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4gKGVsZW1lbnQud2lsbFVubW91bnQgJiYgZWxlbWVudC53aWxsVW5tb3VudCgpKSk7ICAvLy9cblxuICAgIHRoaXMucmVtb3ZlKGVsZW1lbnQpO1xuICB9XG5cbiAgc2hvdyhkaXNwbGF5U3R5bGUgPSBCTE9DSykgeyB0aGlzLmRpc3BsYXkoZGlzcGxheVN0eWxlKTsgfVxuXG4gIGhpZGUoKSB7IHRoaXMuc3R5bGUoRElTUExBWSwgTk9ORSk7IH1cblxuICBkaXNwbGF5KGRpc3BsYXkpIHsgdGhpcy5zdHlsZShESVNQTEFZLCBkaXNwbGF5KTsgfVxuXG4gIGVuYWJsZSgpIHsgdGhpcy5jbGVhckF0dHJpYnV0ZShESVNBQkxFRCk7IH1cblxuICBkaXNhYmxlKCkgeyB0aGlzLnNldEF0dHJpYnV0ZShESVNBQkxFRCwgRElTQUJMRUQpOyB9XG5cbiAgaXNFbmFibGVkKCkge1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5pc0Rpc2FibGVkKCksXG4gICAgICAgICAgZW5hYmxlZCA9ICFkaXNhYmxlZDtcblxuICAgIHJldHVybiBlbmFibGVkO1xuICB9XG5cbiAgaXNEaXNhYmxlZCgpIHtcbiAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMuaGFzQXR0cmlidXRlKERJU0FCTEVEKTtcblxuICAgIHJldHVybiBkaXNhYmxlZDtcbiAgfVxuICBcbiAgaXNEaXNwbGF5ZWQoKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMuY3NzKERJU1BMQVkpLFxuICAgICAgICAgIGRpc3BsYXllZCA9IChkaXNwbGF5ICE9PSBOT05FKTtcbiAgICBcbiAgICByZXR1cm4gZGlzcGxheWVkO1xuICB9XG5cbiAgaXNTaG93aW5nKCkge1xuICAgIGNvbnN0IGRpc3BsYXllZCA9IHRoaXMuaXNEaXNwbGF5ZWQoKSxcbiAgICAgICAgICBzaG93aW5nID0gZGlzcGxheWVkOyAgLy8vXG5cbiAgICByZXR1cm4gc2hvd2luZztcbiAgfVxuXG4gIGlzSGlkZGVuKCkge1xuICAgIGNvbnN0IGRpc3BsYXllZCA9IHRoaXMuaXNEaXNwbGF5ZWQoKSxcbiAgICAgICAgICBoaWRkZW4gPSAhZGlzcGxheWVkO1xuXG4gICAgcmV0dXJuIGhpZGRlbjtcbiAgfVxuXG4gIHN0eWxlKG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZG9tRWxlbWVudC5zdHlsZVtuYW1lXSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdHlsZSA9IHRoaXMuZG9tRWxlbWVudC5zdHlsZVtuYW1lXTtcblxuICAgICAgcmV0dXJuIHN0eWxlO1xuICAgIH1cbiAgfVxuXG4gIGh0bWwoaHRtbCkge1xuICAgIGlmIChodG1sID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGlubmVySFRNTCA9IHRoaXMuZG9tRWxlbWVudC5pbm5lckhUTUw7XG5cbiAgICAgIGh0bWwgPSBpbm5lckhUTUw7IC8vL1xuXG4gICAgICByZXR1cm4gaHRtbDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5uZXJIVE1MID0gaHRtbDsgLy8vXG5cbiAgICAgIHRoaXMuZG9tRWxlbWVudC5pbm5lckhUTUwgPSBpbm5lckhUTUxcbiAgICB9XG4gIH1cblxuICBjc3MoY3NzKSB7XG4gICAgaWYgKGNzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRvbUVsZW1lbnQpLFxuICAgICAgICAgICAgY3NzID0ge307XG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb21wdXRlZFN0eWxlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBmaXJzdENvbXB1dGVkU3R5bGUgPSBmaXJzdFtjb21wdXRlZFN0eWxlXSxcbiAgICAgICAgICAgICAgbmFtZSA9IGZpcnN0Q29tcHV0ZWRTdHlsZSwgIC8vL1xuICAgICAgICAgICAgICB2YWx1ZSA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKTsgLy8vXG5cbiAgICAgICAgY3NzW25hbWVdID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjc3M7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY3NzID09PSBTVFJJTkcpIHtcbiAgICAgIGxldCBuYW1lID0gY3NzOyAvLy9cblxuICAgICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5kb21FbGVtZW50KSxcbiAgICAgICAgICAgIHZhbHVlID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpOyAvLy9cblxuICAgICAgY3NzID0gdmFsdWU7ICAvLy9cblxuICAgICAgcmV0dXJuIGNzcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmFtZXMgPSBPYmplY3Qua2V5cyhjc3MpOyAvLy9cblxuICAgICAgbmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNzc1tuYW1lXTtcblxuICAgICAgICB0aGlzLnN0eWxlKG5hbWUsIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgYmx1cigpIHsgdGhpcy5kb21FbGVtZW50LmJsdXIoKTsgfVxuXG4gIGZvY3VzKCkgeyB0aGlzLmRvbUVsZW1lbnQuZm9jdXMoKTsgfVxuXG4gIGhhc0ZvY3VzKCkge1xuICAgIGNvbnN0IGZvY3VzID0gKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuZG9tRWxlbWVudCk7ICAvLy9cblxuICAgIHJldHVybiBmb2N1cztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IHsgdGFnTmFtZSB9ID0gQ2xhc3MsXG4gICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnRGcm9tVGFnTmFtZShDbGFzcywgdGFnTmFtZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSxcbiAgICAgICAgICBkZWZhdWx0UHJvcGVydGllcyA9IGRlZmF1bHRQcm9wZXJ0aWVzRnJvbUNsYXNzKENsYXNzKSxcbiAgICAgICAgICBpZ25vcmVkUHJvcGVydGllcyA9IGlnbm9yZWRQcm9wZXJ0aWVzRnJvbUNsYXNzKENsYXNzKTtcblxuICAgIGVsZW1lbnQuYXBwbHlQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIGRlZmF1bHRQcm9wZXJ0aWVzLCBpZ25vcmVkUHJvcGVydGllcyk7XG5cbiAgICBlbGVtZW50LmluaXRpYWxpc2UgJiYgZWxlbWVudC5pbml0aWFsaXNlKCk7IC8vL1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVRhZ05hbWUodGFnTmFtZSwgcHJvcGVydGllcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgQ2xhc3MgPSBFbGVtZW50LCAgLy8vXG4gICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnRGcm9tVGFnTmFtZShDbGFzcywgdGFnTmFtZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSxcbiAgICAgICAgICBkZWZhdWx0UHJvcGVydGllcyA9IHt9LCAvLy9cbiAgICAgICAgICBpZ25vcmVkUHJvcGVydGllcyA9IFtdOyAvLy9cblxuICAgIGVsZW1lbnQuYXBwbHlQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIGRlZmF1bHRQcm9wZXJ0aWVzLCBpZ25vcmVkUHJvcGVydGllcyk7XG5cbiAgICBlbGVtZW50LmluaXRpYWxpc2UgJiYgZWxlbWVudC5pbml0aWFsaXNlKCk7IC8vL1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihFbGVtZW50LnByb3RvdHlwZSwganN4TWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oRWxlbWVudC5wcm90b3R5cGUsIGtleU1peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCBjbGlja01peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCBzdGF0ZU1peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCBldmVudE1peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCBtb3VzZU1peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCByZXNpemVNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihFbGVtZW50LnByb3RvdHlwZSwgc2Nyb2xsTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oRWxlbWVudC5wcm90b3R5cGUsIGVsZW1lbnRNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCBFbGVtZW50O1xuXG5mdW5jdGlvbiBlbGVtZW50RnJvbVRhZ05hbWUoQ2xhc3MsIHRhZ05hbWUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBjb25zdCBzZWxlY3RvciA9IG51bGwsXG4gICAgICAgIGVsZW1lbnQgPSBuZXcgKEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwoQ2xhc3MsIG51bGwsIHNlbGVjdG9yLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpKTtcblxuICBlbGVtZW50LmRvbUVsZW1lbnQgPSBpc1NWR1RhZ05hbWUodGFnTmFtZSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTkFNRVNQQUNFX1VSSSwgdGFnTmFtZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcblxuICBlbGVtZW50LmRvbUVsZW1lbnQuX19lbGVtZW50X18gPSBlbGVtZW50OyAvLy9cblxuICByZXR1cm4gZWxlbWVudDtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFByb3BlcnRpZXNGcm9tQ2xhc3MoQ2xhc3MsIGRlZmF1bHRQcm9wZXJ0aWVzID0ge30pIHtcbiAgaWYgKENsYXNzLmhhc093blByb3BlcnR5KERFRkFVTFRfUFJPUEVSVElFUykpIHtcbiAgICBkZWZhdWx0UHJvcGVydGllcyA9IGNvbWJpbmUoZGVmYXVsdFByb3BlcnRpZXMsIENsYXNzW0RFRkFVTFRfUFJPUEVSVElFU10pO1xuICB9XG5cbiAgY29uc3Qgc3VwZXJDbGFzcyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihDbGFzcyk7XG5cbiAgaWYgKHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICBkZWZhdWx0UHJvcGVydGllcyA9IGRlZmF1bHRQcm9wZXJ0aWVzRnJvbUNsYXNzKHN1cGVyQ2xhc3MsIGRlZmF1bHRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHJldHVybiBkZWZhdWx0UHJvcGVydGllcztcbn1cblxuZnVuY3Rpb24gaWdub3JlZFByb3BlcnRpZXNGcm9tQ2xhc3MoQ2xhc3MsIGlnbm9yZWRQcm9wZXJ0aWVzID0gW10pIHtcbiAgaWYgKENsYXNzLmhhc093blByb3BlcnR5KElHTk9SRURfUFJPUEVSVElFUykpIHtcbiAgICBpZ25vcmVkUHJvcGVydGllcyA9IGF1Z21lbnQoaWdub3JlZFByb3BlcnRpZXMsIENsYXNzW0lHTk9SRURfUFJPUEVSVElFU10sIChpZ25vcmVkUHJvcGVydHkpID0+ICFpZ25vcmVkUHJvcGVydGllcy5pbmNsdWRlcyhpZ25vcmVkUHJvcGVydHkpKTtcbiAgfVxuXG4gIGNvbnN0IHN1cGVyQ2xhc3MgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoQ2xhc3MpO1xuXG4gIGlmIChzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgaWdub3JlZFByb3BlcnRpZXMgPSBpZ25vcmVkUHJvcGVydGllc0Zyb21DbGFzcyhzdXBlckNsYXNzLCBpZ25vcmVkUHJvcGVydGllcyk7XG4gIH1cblxuICByZXR1cm4gaWdub3JlZFByb3BlcnRpZXM7XG59XG4iXSwibmFtZXMiOlsiRWxlbWVudCIsInNlbGVjdG9yIiwiZG9tRWxlbWVudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIl9fZWxlbWVudF9fIiwiZ2V0RE9NRWxlbWVudCIsImdldE9mZnNldCIsInRvcCIsIm9mZnNldFRvcCIsImxlZnQiLCJvZmZzZXRMZWZ0Iiwib2Zmc2V0IiwiZ2V0Qm91bmRzIiwiYm91bmRpbmdDbGllbnRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiYm91bmRzIiwiZnJvbUJvdW5kaW5nQ2xpZW50UmVjdCIsImdldFdpZHRoIiwiaW5jbHVkZUJvcmRlciIsIndpZHRoIiwib2Zmc2V0V2lkdGgiLCJjbGllbnRXaWR0aCIsInNldFdpZHRoIiwic3R5bGUiLCJnZXRIZWlnaHQiLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJzZXRIZWlnaHQiLCJoYXNBdHRyaWJ1dGUiLCJuYW1lIiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwidmFsdWUiLCJjbGVhckF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsImFkZEF0dHJpYnV0ZSIsInNldENsYXNzIiwiY2xhc3NOYW1lIiwiYWRkQ2xhc3MiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmVDbGFzcyIsInJlbW92ZSIsInRvZ2dsZUNsYXNzIiwidG9nZ2xlIiwiaGFzQ2xhc3MiLCJjb250YWlucyIsImNsZWFyQ2xhc3NlcyIsInByZXBlbmRUbyIsInBhcmVudEVsZW1lbnQiLCJwcmVwZW5kIiwiYXBwZW5kVG8iLCJhcHBlbmQiLCJhZGRUbyIsInJlbW92ZUZyb20iLCJpbnNlcnRCZWZvcmUiLCJzaWJsaW5nRWxlbWVudCIsInBhcmVudERPTU5vZGUiLCJwYXJlbnROb2RlIiwic2libGluZ0RPTUVsZW1lbnQiLCJpbnNlcnRBZnRlciIsIm5leHRTaWJsaW5nIiwiZWxlbWVudCIsImZpcnN0Q2hpbGRET01FbGVtZW50IiwiZmlyc3RDaGlsZCIsInJlbW92ZUNoaWxkIiwibW91bnQiLCJkZXNjZW5kYW50RWxlbWVudHMiLCJnZXREZXNjZW5kYW50RWxlbWVudHMiLCJlbGVtZW50cyIsInJldmVyc2UiLCJmb3JFYWNoIiwiZGlkTW91bnQiLCJ1bm1vdW50Iiwid2lsbFVubW91bnQiLCJzaG93IiwiZGlzcGxheVN0eWxlIiwiZGlzcGxheSIsImhpZGUiLCJlbmFibGUiLCJkaXNhYmxlIiwiaXNFbmFibGVkIiwiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIiwiZW5hYmxlZCIsImlzRGlzcGxheWVkIiwiY3NzIiwiZGlzcGxheWVkIiwiaXNTaG93aW5nIiwic2hvd2luZyIsImlzSGlkZGVuIiwiaGlkZGVuIiwidW5kZWZpbmVkIiwiaHRtbCIsImlubmVySFRNTCIsImNvbXB1dGVkU3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiaW5kZXgiLCJsZW5ndGgiLCJmaXJzdENvbXB1dGVkU3R5bGUiLCJnZXRQcm9wZXJ0eVZhbHVlIiwibmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiYmx1ciIsImZvY3VzIiwiaGFzRm9jdXMiLCJhY3RpdmVFbGVtZW50IiwiZnJvbUNsYXNzIiwiQ2xhc3MiLCJwcm9wZXJ0aWVzIiwicmVtYWluaW5nQXJndW1lbnRzIiwidGFnTmFtZSIsImVsZW1lbnRGcm9tVGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiZGVmYXVsdFByb3BlcnRpZXNGcm9tQ2xhc3MiLCJpZ25vcmVkUHJvcGVydGllcyIsImlnbm9yZWRQcm9wZXJ0aWVzRnJvbUNsYXNzIiwiYXBwbHlQcm9wZXJ0aWVzIiwiaW5pdGlhbGlzZSIsImZyb21UYWdOYW1lIiwiYXNzaWduIiwicHJvdG90eXBlIiwiRnVuY3Rpb24iLCJiaW5kIiwiY2FsbCIsImNyZWF0ZUVsZW1lbnROUyIsImNyZWF0ZUVsZW1lbnQiLCJoYXNPd25Qcm9wZXJ0eSIsInN1cGVyQ2xhc3MiLCJnZXRQcm90b3R5cGVPZiIsImlnbm9yZWRQcm9wZXJ0eSIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVPLEdBQVUsQ0FBVixPQUFVO0FBQ1YsR0FBVSxDQUFWLE9BQVU7QUFDUCxHQUFjLENBQWQsSUFBYztBQUNkLEdBQWMsQ0FBZCxLQUFjO0FBQ1osR0FBZ0IsQ0FBaEIsTUFBZ0I7QUFDaEIsR0FBZ0IsQ0FBaEIsTUFBZ0I7QUFDaEIsR0FBZ0IsQ0FBaEIsTUFBZ0I7QUFDaEIsR0FBZ0IsQ0FBaEIsTUFBZ0I7QUFDZixHQUFpQixDQUFqQixPQUFpQjtBQUNqQixHQUFpQixDQUFqQixPQUFpQjtBQUNoQixHQUFrQixDQUFsQixRQUFrQjtBQUVwQixHQUFvQixDQUFwQixPQUFvQjtBQUNmLEdBQWtCLENBQWxCLEtBQWtCO0FBQ2hCLEdBQW1CLENBQW5CLE1BQW1CO0FBV2YsR0FBYSxDQUFiLFVBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUUxQ0EsT0FBTyxpQkFBYixRQUFRO2FBQUZBLE9BQU8sQ0FDQ0MsUUFBUTs4QkFEaEJELE9BQU87UUFFVCxFQUFFLEVBQUVDLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDQyxVQUFVLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDSCxRQUFRO1lBRWpELElBQUksQ0FBQ0MsVUFBVSxDQUFDRyxXQUFXLEdBQUcsSUFBSSxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQUN6QyxDQUFDOztpQkFOQ0wsT0FBTzs7WUFTWE0sR0FBYSxFQUFiQSxDQUFhO21CQUFiQSxRQUFRLENBQVJBLGFBQWEsR0FBRyxDQUFDO2dC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
|
|
519
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgT2Zmc2V0IGZyb20gXCIuL29mZnNldFwiO1xuaW1wb3J0IEJvdW5kcyBmcm9tIFwiLi9ib3VuZHNcIjtcbmltcG9ydCBqc3hNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2pzeFwiO1xuaW1wb3J0IGtleU1peGlucyBmcm9tIFwiLi9taXhpbnMva2V5XCI7XG5pbXBvcnQgY2xpY2tNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2NsaWNrXCI7XG5pbXBvcnQgc3RhdGVNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL3N0YXRlXCI7XG5pbXBvcnQgZXZlbnRNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2V2ZW50XCI7XG5pbXBvcnQgbW91c2VNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL21vdXNlXCI7XG5pbXBvcnQgcmVzaXplTWl4aW5zIGZyb20gXCIuL21peGlucy9yZXNpemVcIjtcbmltcG9ydCBzY3JvbGxNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL3Njcm9sbFwiO1xuaW1wb3J0IGVsZW1lbnRNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2VsZW1lbnRcIjtcblxuaW1wb3J0IHsgY29tYmluZSB9IGZyb20gXCIuL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IGlzU1ZHVGFnTmFtZSB9IGZyb20gXCIuL3V0aWxpdGllcy9uYW1lXCI7XG5pbXBvcnQgeyBmaXJzdCwgYXVnbWVudCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgTk9ORSxcbiAgICAgICAgIEJMT0NLLFxuICAgICAgICAgV0lEVEgsXG4gICAgICAgICBTVFJJTkcsXG4gICAgICAgICBIRUlHSFQsXG4gICAgICAgICBESVNQTEFZLFxuICAgICAgICAgRElTQUJMRUQsXG4gICAgICAgICBFTVBUWV9TVFJJTkcsXG4gICAgICAgICBTVkdfTkFNRVNQQUNFX1VSSSxcbiAgICAgICAgIERFRkFVTFRfUFJPUEVSVElFUyxcbiAgICAgICAgIElHTk9SRURfUFJPUEVSVElFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jbGFzcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IpIHtcbiAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgIHRoaXMuZG9tRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuXG4gICAgICB0aGlzLmRvbUVsZW1lbnQuX19lbGVtZW50X18gPSB0aGlzOyAvLy9cbiAgICB9XG4gIH1cblxuICBnZXRET01FbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmRvbUVsZW1lbnQ7XG4gIH1cblxuICBnZXRPZmZzZXQoKSB7XG4gICAgY29uc3QgdG9wID0gdGhpcy5kb21FbGVtZW50Lm9mZnNldFRvcCwgIC8vL1xuICAgICAgICAgIGxlZnQgPSB0aGlzLmRvbUVsZW1lbnQub2Zmc2V0TGVmdCwgIC8vL1xuICAgICAgICAgIG9mZnNldCA9IG5ldyBPZmZzZXQodG9wLCBsZWZ0KTtcblxuICAgIHJldHVybiBvZmZzZXQ7XG4gIH1cblxuICBnZXRCb3VuZHMoKSB7XG4gICAgY29uc3QgYm91bmRpbmdDbGllbnRSZWN0ID0gdGhpcy5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgIGJvdW5kcyA9IEJvdW5kcy5mcm9tQm91bmRpbmdDbGllbnRSZWN0KGJvdW5kaW5nQ2xpZW50UmVjdCk7XG5cbiAgICByZXR1cm4gYm91bmRzO1xuICB9XG5cbiAgZ2V0V2lkdGgoaW5jbHVkZUJvcmRlciA9IHRydWUpIHtcbiAgICBjb25zdCB3aWR0aCA9IGluY2x1ZGVCb3JkZXIgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbUVsZW1lbnQub2Zmc2V0V2lkdGggOlxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgIHJldHVybiB3aWR0aDtcbiAgfVxuXG4gIHNldFdpZHRoKHdpZHRoKSB7XG4gICAgd2lkdGggPSBgJHt3aWR0aH1weGA7IC8vL1xuXG4gICAgdGhpcy5zdHlsZShXSURUSCwgd2lkdGgpO1xuICB9XG5cbiAgZ2V0SGVpZ2h0KGluY2x1ZGVCb3JkZXIgPSB0cnVlKSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gaW5jbHVkZUJvcmRlciA/XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDpcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb21FbGVtZW50LmNsaWVudEhlaWdodDtcblxuICAgIHJldHVybiBoZWlnaHQ7XG4gIH1cblxuICBzZXRIZWlnaHQoaGVpZ2h0KSB7XG4gICAgaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDsgLy8vXG5cbiAgICB0aGlzLnN0eWxlKEhFSUdIVCwgaGVpZ2h0KTtcbiAgfVxuXG4gIGhhc0F0dHJpYnV0ZShuYW1lKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQuaGFzQXR0cmlidXRlKG5hbWUpOyB9XG5cbiAgZ2V0QXR0cmlidXRlKG5hbWUpIHsgcmV0dXJuIHRoaXMuZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUobmFtZSk7IH1cblxuICBzZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHsgdGhpcy5kb21FbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7IH1cblxuICBjbGVhckF0dHJpYnV0ZShuYW1lKSB7IHRoaXMuZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7IH1cblxuICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHsgdGhpcy5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOyB9XG5cbiAgcmVtb3ZlQXR0cmlidXRlKG5hbWUpIHsgdGhpcy5jbGVhckF0dHJpYnV0ZShuYW1lKTsgfVxuXG4gIHNldENsYXNzKGNsYXNzTmFtZSkgeyB0aGlzLmRvbUVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NOYW1lOyB9XG5cbiAgYWRkQ2xhc3MoY2xhc3NOYW1lKSB7IHRoaXMuZG9tRWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7IH1cblxuICByZW1vdmVDbGFzcyhjbGFzc05hbWUpIHsgdGhpcy5kb21FbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTsgfVxuXG4gIHRvZ2dsZUNsYXNzKGNsYXNzTmFtZSkgeyB0aGlzLmRvbUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShjbGFzc05hbWUpOyB9XG5cbiAgaGFzQ2xhc3MoY2xhc3NOYW1lKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSk7IH1cblxuICBjbGVhckNsYXNzZXMoKSB7IHRoaXMuZG9tRWxlbWVudC5jbGFzc05hbWUgPSBFTVBUWV9TVFJJTkc7IH1cblxuICBwcmVwZW5kVG8ocGFyZW50RWxlbWVudCkgeyBwYXJlbnRFbGVtZW50LnByZXBlbmQodGhpcyk7IH1cblxuICBhcHBlbmRUbyhwYXJlbnRFbGVtZW50KSB7IHBhcmVudEVsZW1lbnQuYXBwZW5kKHRoaXMpOyB9XG5cbiAgYWRkVG8ocGFyZW50RWxlbWVudCkgeyBwYXJlbnRFbGVtZW50LmFkZCh0aGlzKTsgfVxuXG4gIHJlbW92ZUZyb20ocGFyZW50RWxlbWVudCkgeyBwYXJlbnRFbGVtZW50LnJlbW92ZSh0aGlzKTsgfVxuXG4gIGluc2VydEJlZm9yZShzaWJsaW5nRWxlbWVudCkge1xuICAgIGNvbnN0IHBhcmVudERPTU5vZGUgPSBzaWJsaW5nRWxlbWVudC5kb21FbGVtZW50LnBhcmVudE5vZGUsXG4gICAgICAgICAgc2libGluZ0RPTUVsZW1lbnQgPSBzaWJsaW5nRWxlbWVudC5kb21FbGVtZW50O1xuXG4gICAgcGFyZW50RE9NTm9kZS5pbnNlcnRCZWZvcmUodGhpcy5kb21FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudCk7XG4gIH1cblxuICBpbnNlcnRBZnRlcihzaWJsaW5nRWxlbWVudCkge1xuICAgIGNvbnN0IHBhcmVudERPTU5vZGUgPSBzaWJsaW5nRWxlbWVudC5kb21FbGVtZW50LnBhcmVudE5vZGUsXG4gICAgICAgICAgc2libGluZ0RPTUVsZW1lbnQgPSBzaWJsaW5nRWxlbWVudC5kb21FbGVtZW50O1xuXG4gICAgcGFyZW50RE9NTm9kZS5pbnNlcnRCZWZvcmUodGhpcy5kb21FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudC5uZXh0U2libGluZyk7ICAvLy9cbiAgfVxuXG4gIHByZXBlbmQoZWxlbWVudCkge1xuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSBlbGVtZW50LmRvbUVsZW1lbnQsXG4gICAgICAgICAgZmlyc3RDaGlsZERPTUVsZW1lbnQgPSB0aGlzLmRvbUVsZW1lbnQuZmlyc3RDaGlsZDtcblxuICAgIHRoaXMuZG9tRWxlbWVudC5pbnNlcnRCZWZvcmUoZG9tRWxlbWVudCwgZmlyc3RDaGlsZERPTUVsZW1lbnQpO1xuICB9XG5cbiAgYXBwZW5kKGVsZW1lbnQpIHtcbiAgICBjb25zdCBkb21FbGVtZW50ID0gZWxlbWVudC5kb21FbGVtZW50O1xuXG4gICAgdGhpcy5kb21FbGVtZW50Lmluc2VydEJlZm9yZShkb21FbGVtZW50LCBudWxsKTsgLy8vXG4gIH1cblxuICBhZGQoZWxlbWVudCkgeyB0aGlzLmFwcGVuZChlbGVtZW50KTsgfVxuXG4gIHJlbW92ZShlbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSBlbGVtZW50LmRvbUVsZW1lbnQ7XG5cbiAgICAgIHRoaXMuZG9tRWxlbWVudC5yZW1vdmVDaGlsZChkb21FbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kb21FbGVtZW50LnJlbW92ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG1vdW50KGVsZW1lbnQpIHtcbiAgICBjb25zdCBkZXNjZW5kYW50RWxlbWVudHMgPSBlbGVtZW50LmdldERlc2NlbmRhbnRFbGVtZW50cygpLFxuICAgICAgICAgIGVsZW1lbnRzID0gW1xuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIC4uLmRlc2NlbmRhbnRFbGVtZW50c1xuICAgICAgICAgIF07XG5cbiAgICB0aGlzLmFkZChlbGVtZW50KTtcblxuICAgIGVsZW1lbnRzLnJldmVyc2UoKTsgLy8vXG5cbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiAoZWxlbWVudC5kaWRNb3VudCAmJiBlbGVtZW50LmRpZE1vdW50KCkpKTsgIC8vL1xuICB9XG5cbiAgdW5tb3VudChlbGVtZW50KSB7XG4gICAgY29uc3QgZGVzY2VuZGFudEVsZW1lbnRzID0gZWxlbWVudC5nZXREZXNjZW5kYW50RWxlbWVudHMoKSxcbiAgICAgICAgICBlbGVtZW50cyA9IFtcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICAuLi5kZXNjZW5kYW50RWxlbWVudHNcbiAgICAgICAgICBdO1xuXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4gKGVsZW1lbnQud2lsbFVubW91bnQgJiYgZWxlbWVudC53aWxsVW5tb3VudCgpKSk7ICAvLy9cblxuICAgIHRoaXMucmVtb3ZlKGVsZW1lbnQpO1xuICB9XG5cbiAgc2hvdyhkaXNwbGF5U3R5bGUgPSBCTE9DSykgeyB0aGlzLmRpc3BsYXkoZGlzcGxheVN0eWxlKTsgfVxuXG4gIGhpZGUoKSB7IHRoaXMuc3R5bGUoRElTUExBWSwgTk9ORSk7IH1cblxuICBkaXNwbGF5KGRpc3BsYXkpIHsgdGhpcy5zdHlsZShESVNQTEFZLCBkaXNwbGF5KTsgfVxuXG4gIGVuYWJsZSgpIHsgdGhpcy5jbGVhckF0dHJpYnV0ZShESVNBQkxFRCk7IH1cblxuICBkaXNhYmxlKCkgeyB0aGlzLnNldEF0dHJpYnV0ZShESVNBQkxFRCwgRElTQUJMRUQpOyB9XG5cbiAgaXNFbmFibGVkKCkge1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5pc0Rpc2FibGVkKCksXG4gICAgICAgICAgZW5hYmxlZCA9ICFkaXNhYmxlZDtcblxuICAgIHJldHVybiBlbmFibGVkO1xuICB9XG5cbiAgaXNEaXNhYmxlZCgpIHtcbiAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMuaGFzQXR0cmlidXRlKERJU0FCTEVEKTtcblxuICAgIHJldHVybiBkaXNhYmxlZDtcbiAgfVxuICBcbiAgaXNEaXNwbGF5ZWQoKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMuY3NzKERJU1BMQVkpLFxuICAgICAgICAgIGRpc3BsYXllZCA9IChkaXNwbGF5ICE9PSBOT05FKTtcbiAgICBcbiAgICByZXR1cm4gZGlzcGxheWVkO1xuICB9XG5cbiAgaXNTaG93aW5nKCkge1xuICAgIGNvbnN0IGRpc3BsYXllZCA9IHRoaXMuaXNEaXNwbGF5ZWQoKSxcbiAgICAgICAgICBzaG93aW5nID0gZGlzcGxheWVkOyAgLy8vXG5cbiAgICByZXR1cm4gc2hvd2luZztcbiAgfVxuXG4gIGlzSGlkZGVuKCkge1xuICAgIGNvbnN0IGRpc3BsYXllZCA9IHRoaXMuaXNEaXNwbGF5ZWQoKSxcbiAgICAgICAgICBoaWRkZW4gPSAhZGlzcGxheWVkO1xuXG4gICAgcmV0dXJuIGhpZGRlbjtcbiAgfVxuXG4gIHN0eWxlKG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZG9tRWxlbWVudC5zdHlsZVtuYW1lXSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdHlsZSA9IHRoaXMuZG9tRWxlbWVudC5zdHlsZVtuYW1lXTtcblxuICAgICAgcmV0dXJuIHN0eWxlO1xuICAgIH1cbiAgfVxuXG4gIGh0bWwoaHRtbCkge1xuICAgIGlmIChodG1sID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGlubmVySFRNTCA9IHRoaXMuZG9tRWxlbWVudC5pbm5lckhUTUw7XG5cbiAgICAgIGh0bWwgPSBpbm5lckhUTUw7IC8vL1xuXG4gICAgICByZXR1cm4gaHRtbDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5uZXJIVE1MID0gaHRtbDsgLy8vXG5cbiAgICAgIHRoaXMuZG9tRWxlbWVudC5pbm5lckhUTUwgPSBpbm5lckhUTUxcbiAgICB9XG4gIH1cblxuICBjc3MoY3NzKSB7XG4gICAgaWYgKGNzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRvbUVsZW1lbnQpLFxuICAgICAgICAgICAgY3NzID0ge307XG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb21wdXRlZFN0eWxlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBmaXJzdENvbXB1dGVkU3R5bGUgPSBmaXJzdFtjb21wdXRlZFN0eWxlXSxcbiAgICAgICAgICAgICAgbmFtZSA9IGZpcnN0Q29tcHV0ZWRTdHlsZSwgIC8vL1xuICAgICAgICAgICAgICB2YWx1ZSA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKTsgLy8vXG5cbiAgICAgICAgY3NzW25hbWVdID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjc3M7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY3NzID09PSBTVFJJTkcpIHtcbiAgICAgIGxldCBuYW1lID0gY3NzOyAvLy9cblxuICAgICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5kb21FbGVtZW50KSxcbiAgICAgICAgICAgIHZhbHVlID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpOyAvLy9cblxuICAgICAgY3NzID0gdmFsdWU7ICAvLy9cblxuICAgICAgcmV0dXJuIGNzcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmFtZXMgPSBPYmplY3Qua2V5cyhjc3MpOyAvLy9cblxuICAgICAgbmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNzc1tuYW1lXTtcblxuICAgICAgICB0aGlzLnN0eWxlKG5hbWUsIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgYmx1cigpIHsgdGhpcy5kb21FbGVtZW50LmJsdXIoKTsgfVxuXG4gIGZvY3VzKCkgeyB0aGlzLmRvbUVsZW1lbnQuZm9jdXMoKTsgfVxuXG4gIGhhc0ZvY3VzKCkge1xuICAgIGNvbnN0IGZvY3VzID0gKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuZG9tRWxlbWVudCk7ICAvLy9cblxuICAgIHJldHVybiBmb2N1cztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IHsgdGFnTmFtZSB9ID0gQ2xhc3MsXG4gICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnRGcm9tVGFnTmFtZShDbGFzcywgdGFnTmFtZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSxcbiAgICAgICAgICBkZWZhdWx0UHJvcGVydGllcyA9IGRlZmF1bHRQcm9wZXJ0aWVzRnJvbUNsYXNzKENsYXNzKSxcbiAgICAgICAgICBpZ25vcmVkUHJvcGVydGllcyA9IGlnbm9yZWRQcm9wZXJ0aWVzRnJvbUNsYXNzKENsYXNzKTtcblxuICAgIGVsZW1lbnQuYXBwbHlQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIGRlZmF1bHRQcm9wZXJ0aWVzLCBpZ25vcmVkUHJvcGVydGllcyk7XG5cbiAgICBlbGVtZW50LmluaXRpYWxpc2UgJiYgZWxlbWVudC5pbml0aWFsaXNlKCk7IC8vL1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVRhZ05hbWUodGFnTmFtZSwgcHJvcGVydGllcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgQ2xhc3MgPSBFbGVtZW50LCAgLy8vXG4gICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnRGcm9tVGFnTmFtZShDbGFzcywgdGFnTmFtZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSxcbiAgICAgICAgICBkZWZhdWx0UHJvcGVydGllcyA9IHt9LCAvLy9cbiAgICAgICAgICBpZ25vcmVkUHJvcGVydGllcyA9IFtdOyAvLy9cblxuICAgIGVsZW1lbnQuYXBwbHlQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIGRlZmF1bHRQcm9wZXJ0aWVzLCBpZ25vcmVkUHJvcGVydGllcyk7XG5cbiAgICBlbGVtZW50LmluaXRpYWxpc2UgJiYgZWxlbWVudC5pbml0aWFsaXNlKCk7IC8vL1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihFbGVtZW50LnByb3RvdHlwZSwganN4TWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oRWxlbWVudC5wcm90b3R5cGUsIGtleU1peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCBjbGlja01peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCBzdGF0ZU1peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCBldmVudE1peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCBtb3VzZU1peGlucyk7XG5PYmplY3QuYXNzaWduKEVsZW1lbnQucHJvdG90eXBlLCByZXNpemVNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihFbGVtZW50LnByb3RvdHlwZSwgc2Nyb2xsTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oRWxlbWVudC5wcm90b3R5cGUsIGVsZW1lbnRNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCBFbGVtZW50O1xuXG5mdW5jdGlvbiBlbGVtZW50RnJvbVRhZ05hbWUoQ2xhc3MsIHRhZ05hbWUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBjb25zdCBzZWxlY3RvciA9IG51bGwsXG4gICAgICAgIGVsZW1lbnQgPSBuZXcgKEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwoQ2xhc3MsIG51bGwsIHNlbGVjdG9yLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpKTtcblxuICBlbGVtZW50LmRvbUVsZW1lbnQgPSBpc1NWR1RhZ05hbWUodGFnTmFtZSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTkFNRVNQQUNFX1VSSSwgdGFnTmFtZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcblxuICBlbGVtZW50LmRvbUVsZW1lbnQuX19lbGVtZW50X18gPSBlbGVtZW50OyAvLy9cblxuICByZXR1cm4gZWxlbWVudDtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFByb3BlcnRpZXNGcm9tQ2xhc3MoQ2xhc3MsIGRlZmF1bHRQcm9wZXJ0aWVzID0ge30pIHtcbiAgaWYgKENsYXNzLmhhc093blByb3BlcnR5KERFRkFVTFRfUFJPUEVSVElFUykpIHtcbiAgICBkZWZhdWx0UHJvcGVydGllcyA9IGNvbWJpbmUoZGVmYXVsdFByb3BlcnRpZXMsIENsYXNzW0RFRkFVTFRfUFJPUEVSVElFU10pO1xuICB9XG5cbiAgY29uc3Qgc3VwZXJDbGFzcyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihDbGFzcyk7XG5cbiAgaWYgKHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICBkZWZhdWx0UHJvcGVydGllcyA9IGRlZmF1bHRQcm9wZXJ0aWVzRnJvbUNsYXNzKHN1cGVyQ2xhc3MsIGRlZmF1bHRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHJldHVybiBkZWZhdWx0UHJvcGVydGllcztcbn1cblxuZnVuY3Rpb24gaWdub3JlZFByb3BlcnRpZXNGcm9tQ2xhc3MoQ2xhc3MsIGlnbm9yZWRQcm9wZXJ0aWVzID0gW10pIHtcbiAgaWYgKENsYXNzLmhhc093blByb3BlcnR5KElHTk9SRURfUFJPUEVSVElFUykpIHtcbiAgICBpZ25vcmVkUHJvcGVydGllcyA9IGF1Z21lbnQoaWdub3JlZFByb3BlcnRpZXMsIENsYXNzW0lHTk9SRURfUFJPUEVSVElFU10sIChpZ25vcmVkUHJvcGVydHkpID0+ICFpZ25vcmVkUHJvcGVydGllcy5pbmNsdWRlcyhpZ25vcmVkUHJvcGVydHkpKTtcbiAgfVxuXG4gIGNvbnN0IHN1cGVyQ2xhc3MgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoQ2xhc3MpO1xuXG4gIGlmIChzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgaWdub3JlZFByb3BlcnRpZXMgPSBpZ25vcmVkUHJvcGVydGllc0Zyb21DbGFzcyhzdXBlckNsYXNzLCBpZ25vcmVkUHJvcGVydGllcyk7XG4gIH1cblxuICByZXR1cm4gaWdub3JlZFByb3BlcnRpZXM7XG59XG4iXSwibmFtZXMiOlsiRWxlbWVudCIsInNlbGVjdG9yIiwiZG9tRWxlbWVudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIl9fZWxlbWVudF9fIiwiZ2V0RE9NRWxlbWVudCIsImdldE9mZnNldCIsInRvcCIsIm9mZnNldFRvcCIsImxlZnQiLCJvZmZzZXRMZWZ0Iiwib2Zmc2V0IiwiZ2V0Qm91bmRzIiwiYm91bmRpbmdDbGllbnRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiYm91bmRzIiwiZnJvbUJvdW5kaW5nQ2xpZW50UmVjdCIsImdldFdpZHRoIiwiaW5jbHVkZUJvcmRlciIsIndpZHRoIiwib2Zmc2V0V2lkdGgiLCJjbGllbnRXaWR0aCIsInNldFdpZHRoIiwic3R5bGUiLCJnZXRIZWlnaHQiLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJzZXRIZWlnaHQiLCJoYXNBdHRyaWJ1dGUiLCJuYW1lIiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwidmFsdWUiLCJjbGVhckF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsImFkZEF0dHJpYnV0ZSIsInNldENsYXNzIiwiY2xhc3NOYW1lIiwiYWRkQ2xhc3MiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmVDbGFzcyIsInJlbW92ZSIsInRvZ2dsZUNsYXNzIiwidG9nZ2xlIiwiaGFzQ2xhc3MiLCJjb250YWlucyIsImNsZWFyQ2xhc3NlcyIsInByZXBlbmRUbyIsInBhcmVudEVsZW1lbnQiLCJwcmVwZW5kIiwiYXBwZW5kVG8iLCJhcHBlbmQiLCJhZGRUbyIsInJlbW92ZUZyb20iLCJpbnNlcnRCZWZvcmUiLCJzaWJsaW5nRWxlbWVudCIsInBhcmVudERPTU5vZGUiLCJwYXJlbnROb2RlIiwic2libGluZ0RPTUVsZW1lbnQiLCJpbnNlcnRBZnRlciIsIm5leHRTaWJsaW5nIiwiZWxlbWVudCIsImZpcnN0Q2hpbGRET01FbGVtZW50IiwiZmlyc3RDaGlsZCIsInJlbW92ZUNoaWxkIiwibW91bnQiLCJkZXNjZW5kYW50RWxlbWVudHMiLCJnZXREZXNjZW5kYW50RWxlbWVudHMiLCJlbGVtZW50cyIsInJldmVyc2UiLCJmb3JFYWNoIiwiZGlkTW91bnQiLCJ1bm1vdW50Iiwid2lsbFVubW91bnQiLCJzaG93IiwiZGlzcGxheVN0eWxlIiwiZGlzcGxheSIsImhpZGUiLCJlbmFibGUiLCJkaXNhYmxlIiwiaXNFbmFibGVkIiwiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIiwiZW5hYmxlZCIsImlzRGlzcGxheWVkIiwiY3NzIiwiZGlzcGxheWVkIiwiaXNTaG93aW5nIiwic2hvd2luZyIsImlzSGlkZGVuIiwiaGlkZGVuIiwidW5kZWZpbmVkIiwiaHRtbCIsImlubmVySFRNTCIsImNvbXB1dGVkU3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiaW5kZXgiLCJsZW5ndGgiLCJmaXJzdENvbXB1dGVkU3R5bGUiLCJnZXRQcm9wZXJ0eVZhbHVlIiwibmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiYmx1ciIsImZvY3VzIiwiaGFzRm9jdXMiLCJhY3RpdmVFbGVtZW50IiwiZnJvbUNsYXNzIiwiQ2xhc3MiLCJwcm9wZXJ0aWVzIiwicmVtYWluaW5nQXJndW1lbnRzIiwidGFnTmFtZSIsImVsZW1lbnRGcm9tVGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiZGVmYXVsdFByb3BlcnRpZXNGcm9tQ2xhc3MiLCJpZ25vcmVkUHJvcGVydGllcyIsImlnbm9yZWRQcm9wZXJ0aWVzRnJvbUNsYXNzIiwiYXBwbHlQcm9wZXJ0aWVzIiwiaW5pdGlhbGlzZSIsImZyb21UYWdOYW1lIiwiYXNzaWduIiwicHJvdG90eXBlIiwiRnVuY3Rpb24iLCJiaW5kIiwiY2FsbCIsImNyZWF0ZUVsZW1lbnROUyIsImNyZWF0ZUVsZW1lbnQiLCJoYXNPd25Qcm9wZXJ0eSIsInN1cGVyQ2xhc3MiLCJnZXRQcm90b3R5cGVPZiIsImlnbm9yZWRQcm9wZXJ0eSIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVPLEdBQVUsQ0FBVixPQUFVO0FBQ1YsR0FBVSxDQUFWLE9BQVU7QUFDUCxHQUFjLENBQWQsSUFBYztBQUNkLEdBQWMsQ0FBZCxJQUFjO0FBQ1osR0FBZ0IsQ0FBaEIsTUFBZ0I7QUFDaEIsR0FBZ0IsQ0FBaEIsTUFBZ0I7QUFDaEIsR0FBZ0IsQ0FBaEIsTUFBZ0I7QUFDaEIsR0FBZ0IsQ0FBaEIsTUFBZ0I7QUFDZixHQUFpQixDQUFqQixPQUFpQjtBQUNqQixHQUFpQixDQUFqQixPQUFpQjtBQUNoQixHQUFrQixDQUFsQixRQUFrQjtBQUVwQixHQUFvQixDQUFwQixPQUFvQjtBQUNmLEdBQWtCLENBQWxCLEtBQWtCO0FBQ2hCLEdBQW1CLENBQW5CLE1BQW1CO0FBV2YsR0FBYSxDQUFiLFVBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRTFDQSxPQUFPLGlCQUFiLFFBQVE7YUFBRkEsT0FBTyxDQUNDQyxRQUFROzhCQURoQkQsT0FBTztRQUVULEVBQUUsRUFBRUMsUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUNDLFVBQVUsR0FBR0MsUUFBUSxDQUFDQyxhQUFhLENBQUNILFFBQVE7WUFFakQsSUFBSSxDQUFDQyxVQUFVLENBQUNHLFdBQVcsR0FBRyxJQUFJLENBQUUsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO1FBQ3pDLENBQUM7O2lCQU5DTCxPQUFPOztZQVNYTSxHQUFhLEVBQWJBLENBQWE7bUJBQWJBLFFBQVEsQ0FBUkEsYUFBYSxHQUFH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
|
package/lib/mixins/element.js
CHANGED
|
@@ -6,8 +6,8 @@ exports.default = void 0;
|
|
|
6
6
|
var _array = require("../utilities/array");
|
|
7
7
|
var _constants = require("../constants");
|
|
8
8
|
var _dom = require("../utilities/dom");
|
|
9
|
-
function getParentElement(
|
|
10
|
-
var selector =
|
|
9
|
+
function getParentElement() {
|
|
10
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants.WILDCARD;
|
|
11
11
|
var parentElement = null;
|
|
12
12
|
var parentDOMElement = this.domElement.parentElement;
|
|
13
13
|
if (parentDOMElement !== null) {
|
|
@@ -20,23 +20,23 @@ function getParentElement(param) {
|
|
|
20
20
|
}
|
|
21
21
|
return parentElement;
|
|
22
22
|
}
|
|
23
|
-
function getChildElements(
|
|
24
|
-
var selector =
|
|
23
|
+
function getChildElements() {
|
|
24
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants.WILDCARD;
|
|
25
25
|
var childDOMNodes = this.domElement.childNodes, childDOMElements = (0, _dom).filterDOMNodesBySelector(childDOMNodes, selector), childElements = (0, _dom).elementsFromDOMElements(childDOMElements);
|
|
26
26
|
return childElements;
|
|
27
27
|
}
|
|
28
|
-
function getAscendantElements(
|
|
29
|
-
var selector =
|
|
28
|
+
function getAscendantElements() {
|
|
29
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants.WILDCARD, maximumHeight = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Infinity;
|
|
30
30
|
var height = maximumHeight, domNode = this.domElement, ascendantDOMNodes = (0, _dom).ascendantDOMNodesFromDOMNode(domNode, height), ascendantDOMElements = (0, _dom).filterDOMNodesBySelector(ascendantDOMNodes, selector), ascendantElements = (0, _dom).elementsFromDOMElements(ascendantDOMElements);
|
|
31
31
|
return ascendantElements;
|
|
32
32
|
}
|
|
33
|
-
function getDescendantElements(
|
|
34
|
-
var selector =
|
|
33
|
+
function getDescendantElements() {
|
|
34
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants.WILDCARD, maximumDepth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Infinity;
|
|
35
35
|
var depth = maximumDepth, domNode = this.domElement, descendantDOMNodes = (0, _dom).descendantDOMNodesFromDOMNode(domNode, depth), descendantDOMElements = (0, _dom).filterDOMNodesBySelector(descendantDOMNodes, selector), descendantElements = (0, _dom).elementsFromDOMElements(descendantDOMElements);
|
|
36
36
|
return descendantElements;
|
|
37
37
|
}
|
|
38
|
-
function getNextSiblingElement(
|
|
39
|
-
var selector =
|
|
38
|
+
function getNextSiblingElement() {
|
|
39
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants.WILDCARD;
|
|
40
40
|
var nextSiblingElement = null;
|
|
41
41
|
var nextSiblingDOMNode = this.domElement.nextSibling;
|
|
42
42
|
if (nextSiblingDOMNode !== null && (0, _dom).domNodeMatchesSelector(nextSiblingDOMNode, selector)) {
|
|
@@ -44,8 +44,8 @@ function getNextSiblingElement(param) {
|
|
|
44
44
|
}
|
|
45
45
|
return nextSiblingElement;
|
|
46
46
|
}
|
|
47
|
-
function getPreviousSiblingElement(
|
|
48
|
-
var selector =
|
|
47
|
+
function getPreviousSiblingElement() {
|
|
48
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants.WILDCARD;
|
|
49
49
|
var previousSiblingElement = null;
|
|
50
50
|
var previousSiblingDOMNode = this.domElement.previousSibling; ///
|
|
51
51
|
if (previousSiblingDOMNode !== null && (0, _dom).domNodeMatchesSelector(previousSiblingDOMNode, selector)) {
|
|
@@ -64,4 +64,4 @@ var elementMixins = {
|
|
|
64
64
|
var _default = elementMixins;
|
|
65
65
|
exports.default = _default;
|
|
66
66
|
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZWxlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBXSUxEQ0FSRCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGRvbU5vZGVNYXRjaGVzU2VsZWN0b3IsIGVsZW1lbnRzRnJvbURPTUVsZW1lbnRzLCBmaWx0ZXJET01Ob2Rlc0J5U2VsZWN0b3IsIGFzY2VuZGFudERPTU5vZGVzRnJvbURPTU5vZGUsIGRlc2NlbmRhbnRET01Ob2Rlc0Zyb21ET01Ob2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9kb21cIjtcblxuZnVuY3Rpb24gZ2V0UGFyZW50RWxlbWVudChzZWxlY3RvciA9IFdJTERDQVJEKSB7XG4gIGxldCBwYXJlbnRFbGVtZW50ID0gbnVsbDtcblxuICBjb25zdCBwYXJlbnRET01FbGVtZW50ID0gdGhpcy5kb21FbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgaWYgKHBhcmVudERPTUVsZW1lbnQgIT09IG51bGwpIHtcbiAgICBpZiAocGFyZW50RE9NRWxlbWVudC5tYXRjaGVzKHNlbGVjdG9yKSkge1xuICAgICAgY29uc3QgcGFyZW50RE9NRWxlbWVudHMgPSBbcGFyZW50RE9NRWxlbWVudF0sXG4gICAgICAgICAgICBwYXJlbnRFbGVtZW50cyA9IGVsZW1lbnRzRnJvbURPTUVsZW1lbnRzKHBhcmVudERPTUVsZW1lbnRzKSxcbiAgICAgICAgICAgIGZpcnN0UGFyZW50RWxlbWVudCA9IGZpcnN0KHBhcmVudEVsZW1lbnRzKTtcblxuICAgICAgcGFyZW50RWxlbWVudCA9IGZpcnN0UGFyZW50RWxlbWVudCB8fCBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJlbnRFbGVtZW50O1xufVxuXG5mdW5jdGlvbiBnZXRDaGlsZEVsZW1lbnRzKHNlbGVjdG9yID0gV0lMRENBUkQpIHtcbiAgY29uc3QgY2hpbGRET01Ob2RlcyA9IHRoaXMuZG9tRWxlbWVudC5jaGlsZE5vZGVzLFxuICAgICAgICBjaGlsZERPTUVsZW1lbnRzID0gZmlsdGVyRE9NTm9kZXNCeVNlbGVjdG9yKGNoaWxkRE9NTm9kZXMsIHNlbGVjdG9yKSxcbiAgICAgICAgY2hpbGRFbGVtZW50cyA9IGVsZW1lbnRzRnJvbURPTUVsZW1lbnRzKGNoaWxkRE9NRWxlbWVudHMpO1xuXG4gIHJldHVybiBjaGlsZEVsZW1lbnRzO1xufVxuXG5mdW5jdGlvbiBnZXRBc2NlbmRhbnRFbGVtZW50cyhzZWxlY3RvciA9IFdJTERDQVJELCBtYXhpbXVtSGVpZ2h0ID0gSW5maW5pdHkpIHtcbiAgY29uc3QgaGVpZ2h0ID0gbWF4aW11bUhlaWdodCwgLy8vXG4gICAgICAgIGRvbU5vZGUgPSB0aGlzLmRvbUVsZW1lbnQsICAvLy9cbiAgICAgICAgYXNjZW5kYW50RE9NTm9kZXMgPSBhc2NlbmRhbnRET01Ob2Rlc0Zyb21ET01Ob2RlKGRvbU5vZGUsIGhlaWdodCksXG4gICAgICAgIGFzY2VuZGFudERPTUVsZW1lbnRzID0gZmlsdGVyRE9NTm9kZXNCeVNlbGVjdG9yKGFzY2VuZGFudERPTU5vZGVzLCBzZWxlY3RvciksXG4gICAgICAgIGFzY2VuZGFudEVsZW1lbnRzID0gZWxlbWVudHNGcm9tRE9NRWxlbWVudHMoYXNjZW5kYW50RE9NRWxlbWVudHMpO1xuXG4gIHJldHVybiBhc2NlbmRhbnRFbGVtZW50cztcbn1cblxuZnVuY3Rpb24gZ2V0RGVzY2VuZGFudEVsZW1lbnRzKHNlbGVjdG9yID0gV0lMRENBUkQsIG1heGltdW1EZXB0aCA9IEluZmluaXR5KSB7XG4gIGNvbnN0IGRlcHRoID0gbWF4aW11bURlcHRoLCAvLy9cbiAgICAgICAgZG9tTm9kZSA9IHRoaXMuZG9tRWxlbWVudCwgIC8vL1xuICAgICAgICBkZXNjZW5kYW50RE9NTm9kZXMgPSBkZXNjZW5kYW50RE9NTm9kZXNGcm9tRE9NTm9kZShkb21Ob2RlLCBkZXB0aCksXG4gICAgICAgIGRlc2NlbmRhbnRET01FbGVtZW50cyA9IGZpbHRlckRPTU5vZGVzQnlTZWxlY3RvcihkZXNjZW5kYW50RE9NTm9kZXMsIHNlbGVjdG9yKSxcbiAgICAgICAgZGVzY2VuZGFudEVsZW1lbnRzID0gZWxlbWVudHNGcm9tRE9NRWxlbWVudHMoZGVzY2VuZGFudERPTUVsZW1lbnRzKTtcblxuICByZXR1cm4gZGVzY2VuZGFudEVsZW1lbnRzO1xufVxuXG5mdW5jdGlvbiBnZXROZXh0U2libGluZ0VsZW1lbnQoc2VsZWN0b3IgPSBXSUxEQ0FSRCkge1xuICBsZXQgbmV4dFNpYmxpbmdFbGVtZW50ID0gbnVsbDtcblxuICBjb25zdCBuZXh0U2libGluZ0RPTU5vZGUgPSB0aGlzLmRvbUVsZW1lbnQubmV4dFNpYmxpbmc7XG5cbiAgaWYgKChuZXh0U2libGluZ0RPTU5vZGUgIT09IG51bGwpICYmIGRvbU5vZGVNYXRjaGVzU2VsZWN0b3IobmV4dFNpYmxpbmdET01Ob2RlLCBzZWxlY3RvcikpIHtcbiAgICBuZXh0U2libGluZ0VsZW1lbnQgPSBuZXh0U2libGluZ0RPTU5vZGUuX19lbGVtZW50X18gfHwgbnVsbDtcbiAgfVxuXG4gIHJldHVybiBuZXh0U2libGluZ0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGdldFByZXZpb3VzU2libGluZ0VsZW1lbnQoc2VsZWN0b3IgPSBXSUxEQ0FSRCkge1xuICBsZXQgcHJldmlvdXNTaWJsaW5nRWxlbWVudCA9IG51bGw7XG5cbiAgY29uc3QgcHJldmlvdXNTaWJsaW5nRE9NTm9kZSA9IHRoaXMuZG9tRWxlbWVudC5wcmV2aW91c1NpYmxpbmc7ICAvLy9cblxuICBpZiAoKHByZXZpb3VzU2libGluZ0RPTU5vZGUgIT09IG51bGwpICYmIGRvbU5vZGVNYXRjaGVzU2VsZWN0b3IocHJldmlvdXNTaWJsaW5nRE9NTm9kZSwgc2VsZWN0b3IpKSB7XG4gICAgcHJldmlvdXNTaWJsaW5nRWxlbWVudCA9IHByZXZpb3VzU2libGluZ0RPTU5vZGUuX19lbGVtZW50X18gfHwgbnVsbDtcbiAgfVxuXG4gIHJldHVybiBwcmV2aW91c1NpYmxpbmdFbGVtZW50O1xufVxuXG5jb25zdCBlbGVtZW50TWl4aW5zID0ge1xuICBnZXRQYXJlbnRFbGVtZW50LFxuICBnZXRDaGlsZEVsZW1lbnRzLFxuICBnZXRBc2NlbmRhbnRFbGVtZW50cyxcbiAgZ2V0RGVzY2VuZGFudEVsZW1lbnRzLFxuICBnZXROZXh0U2libGluZ0VsZW1lbnQsXG4gIGdldFByZXZpb3VzU2libGluZ0VsZW1lbnRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVsZW1lbnRNaXhpbnM7XG4iXSwibmFtZXMiOlsiZ2V0UGFyZW50RWxlbWVudCIsInNlbGVjdG9yIiwicGFyZW50RWxlbWVudCIsInBhcmVudERPTUVsZW1lbnQiLCJkb21FbGVtZW50IiwibWF0Y2hlcyIsInBhcmVudERPTUVsZW1lbnRzIiwicGFyZW50RWxlbWVudHMiLCJmaXJzdFBhcmVudEVsZW1lbnQiLCJnZXRDaGlsZEVsZW1lbnRzIiwiY2hpbGRET01Ob2RlcyIsImNoaWxkTm9kZXMiLCJjaGlsZERPTUVsZW1lbnRzIiwiY2hpbGRFbGVtZW50cyIsImdldEFzY2VuZGFudEVsZW1lbnRzIiwibWF4aW11bUhlaWdodCIsIkluZmluaXR5IiwiaGVpZ2h0IiwiZG9tTm9kZSIsImFzY2VuZGFudERPTU5vZGVzIiwiYXNjZW5kYW50RE9NRWxlbWVudHMiLCJhc2NlbmRhbnRFbGVtZW50cyIsImdldERlc2NlbmRhbnRFbGVtZW50cyIsIm1heGltdW1EZXB0aCIsImRlcHRoIiwiZGVzY2VuZGFudERPTU5vZGVzIiwiZGVzY2VuZGFudERPTUVsZW1lbnRzIiwiZGVzY2VuZGFudEVsZW1lbnRzIiwiZ2V0TmV4dFNpYmxpbmdFbGVtZW50IiwibmV4dFNpYmxpbmdFbGVtZW50IiwibmV4dFNpYmxpbmdET01Ob2RlIiwibmV4dFNpYmxpbmciLCJfX2VsZW1lbnRfXyIsImdldFByZXZpb3VzU2libGluZ0VsZW1lbnQiLCJwcmV2aW91c1NpYmxpbmdFbGVtZW50IiwicHJldmlvdXNTaWJsaW5nRE9NTm9kZSIsInByZXZpb3VzU2libGluZyIsImVsZW1lbnRNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVUsR0FBb0IsQ0FBcEIsTUFBb0I7QUFDakIsR0FBYyxDQUFkLFVBQWM7QUFDZ0gsR0FBa0IsQ0FBbEIsSUFBa0I7U0FFaEtBLGdCQUFnQixHQUFzQixDQUFDO1FBQXRCQyxRQUFRLG9FQUhULFVBQWM7SUFJckMsR0FBRyxDQUFDQyxhQUFhLEdBQUcsSUFBSTtJQUV4QixHQUFLLENBQUNDLGdCQUFnQixHQUFHLElBQUksQ0FBQ0MsVUFBVSxDQUFDRixhQUFhO0lBRXRELEVBQUUsRUFBRUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDOUIsRUFBRSxFQUFFQSxnQkFBZ0IsQ0FBQ0UsT0FBTyxDQUFDSixRQUFRLEdBQUcsQ0FBQztZQUN2QyxHQUFLLENBQUNLLGlCQUFpQixHQUFHLENBQUNIO2dCQUFBQSxnQkFBZ0I7WUFBQSxDQUFDLEVBQ3RDSSxjQUFjLE9BVjZILElBQWtCLDBCQVVwSEQsaUJBQWlCLEdBQzFERSxrQkFBa0IsT0FiUixNQUFvQixRQWFIRCxjQUFjO1lBRS9DTCxhQUFhLEdBQUdNLGtCQUFrQixJQUFJLElBQUk7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUNOLGFBQWE7QUFDdEIsQ0FBQztTQUVRTyxnQkFBZ0IsR0FBc0IsQ0FBQztRQUF0QlIsUUFBUSxvRUFyQlQsVUFBYztJQXNCckMsR0FBSyxDQUFDUyxhQUFhLEdBQUcsSUFBSSxDQUFDTixVQUFVLENBQUNPLFVBQVUsRUFDMUNDLGdCQUFnQixPQXRCK0gsSUFBa0IsMkJBc0JySEYsYUFBYSxFQUFFVCxRQUFRLEdBQ25FWSxhQUFhLE9BdkJrSSxJQUFrQiwwQkF1QnpIRCxnQkFBZ0I7SUFFOUQsTUFBTSxDQUFDQyxhQUFhO0FBQ3RCLENBQUM7U0FFUUMsb0JBQW9CLEdBQWdELENBQUM7UUFBaERiLFFBQVEsb0VBN0JiLFVB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
|
package/lib/mixins/event.js
CHANGED
|
@@ -6,8 +6,8 @@ exports.default = void 0;
|
|
|
6
6
|
var _constants = require("../constants");
|
|
7
7
|
var _eventTypes = require("../eventTypes");
|
|
8
8
|
var _resize = require("../mixins/resize");
|
|
9
|
-
function on(eventTypes, handler
|
|
10
|
-
var element =
|
|
9
|
+
function on(eventTypes, handler) {
|
|
10
|
+
var element = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : this;
|
|
11
11
|
var _this = this;
|
|
12
12
|
eventTypes = eventTypes.split(_constants.SPACE);
|
|
13
13
|
eventTypes.forEach(function(eventType) {
|
|
@@ -21,8 +21,8 @@ function on(eventTypes, handler, param) {
|
|
|
21
21
|
_this.domElement.addEventListener(eventType, eventListener);
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
function off(eventTypes, handler
|
|
25
|
-
var element =
|
|
24
|
+
function off(eventTypes, handler) {
|
|
25
|
+
var element = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : this;
|
|
26
26
|
var _this = this;
|
|
27
27
|
eventTypes = eventTypes.split(_constants.SPACE);
|
|
28
28
|
eventTypes.forEach(function(eventType) {
|
|
@@ -99,4 +99,4 @@ var eventMixins = {
|
|
|
99
99
|
var _default = eventMixins;
|
|
100
100
|
exports.default = _default;
|
|
101
101
|
|
|
102
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZXZlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFNQQUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUkVTSVpFX0VWRU5UX1RZUEUgfSBmcm9tIFwiLi4vZXZlbnRUeXBlc1wiO1xuaW1wb3J0IHsgcmVtb3ZlUmVzaXplT2JqZWN0IH0gZnJvbSBcIi4uL21peGlucy9yZXNpemVcIjtcblxuZnVuY3Rpb24gb24oZXZlbnRUeXBlcywgaGFuZGxlciwgZWxlbWVudCA9IHRoaXMpIHtcbiAgZXZlbnRUeXBlcyA9IGV2ZW50VHlwZXMuc3BsaXQoU1BBQ0UpO1xuXG4gIGV2ZW50VHlwZXMuZm9yRWFjaCgoZXZlbnRUeXBlKSA9PiB7XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gUkVTSVpFX0VWRU5UX1RZUEUpIHtcbiAgICAgIGNvbnN0IHJlc2l6ZUV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoUkVTSVpFX0VWRU5UX1RZUEUpLFxuICAgICAgICAgICAgcmVzaXplRXZlbnRMaXN0ZW5lcnNMZW5ndGggPSByZXNpemVFdmVudExpc3RlbmVycy5sZW5ndGg7XG5cbiAgICAgIGlmIChyZXNpemVFdmVudExpc3RlbmVyc0xlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmFkZFJlc2l6ZU9iamVjdCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50TGlzdGVuZXIgPSB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcblxuICAgIHRoaXMuZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgZXZlbnRMaXN0ZW5lcik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvZmYoZXZlbnRUeXBlcywgaGFuZGxlciwgZWxlbWVudCA9IHRoaXMpIHtcbiAgZXZlbnRUeXBlcyA9IGV2ZW50VHlwZXMuc3BsaXQoU1BBQ0UpO1xuXG4gIGV2ZW50VHlwZXMuZm9yRWFjaCgoZXZlbnRUeXBlKSA9PiB7XG4gICAgY29uc3QgZXZlbnRMaXN0ZW5lciA9IHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xuXG4gICAgdGhpcy5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBldmVudExpc3RlbmVyKTtcblxuICAgIGlmIChldmVudFR5cGUgPT09IFJFU0laRV9FVkVOVF9UWVBFKSB7XG4gICAgICBjb25zdCByZXNpemVFdmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKFJFU0laRV9FVkVOVF9UWVBFKSxcbiAgICAgICAgICAgIHJlc2l6ZUV2ZW50TGlzdGVuZXJzTGVuZ3RoID0gcmVzaXplRXZlbnRMaXN0ZW5lcnMubGVuZ3RoO1xuXG4gICAgICBpZiAocmVzaXplRXZlbnRMaXN0ZW5lcnNMZW5ndGggPT09IDApIHtcbiAgICAgICAgcmVtb3ZlUmVzaXplT2JqZWN0KHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KSB7XG4gIGlmICh0aGlzLmV2ZW50TGlzdGVuZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gW107XG4gIH1cblxuICBjb25zdCBldmVudExpc3RlbmVyID0gdGhpcy5jcmVhdGVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG5cbiAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKGV2ZW50TGlzdGVuZXIpO1xuXG4gIHJldHVybiBldmVudExpc3RlbmVyO1xufVxuXG5mdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBldmVudExpc3RlbmVyID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpLFxuICAgICAgICBpbmRleCA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuaW5kZXhPZihldmVudExpc3RlbmVyKSxcbiAgICAgICAgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICBkZWxldGVDb3VudCA9IDE7XG5cbiAgdGhpcy5ldmVudExpc3RlbmVycy5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50KTtcblxuICBpZiAodGhpcy5ldmVudExpc3RlbmVycy5sZW5ndGggPT09IDApIHtcbiAgICBkZWxldGUgdGhpcy5ldmVudExpc3RlbmVycztcbiAgfVxuXG4gIHJldHVybiBldmVudExpc3RlbmVyO1xufVxuXG5mdW5jdGlvbiBmaW5kRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgZXZlbnRMaXN0ZW5lciA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuZmluZCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xuICAgIGlmICgoZXZlbnRMaXN0ZW5lci5lbGVtZW50ID09PSBlbGVtZW50KSAmJiAoZXZlbnRMaXN0ZW5lci5oYW5kbGVyID09PSBoYW5kbGVyKSAmJiAoZXZlbnRMaXN0ZW5lci5ldmVudFR5cGUgPT09IGV2ZW50VHlwZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGV2ZW50TGlzdGVuZXI7XG59XG5cbmZ1bmN0aW9uIGZpbmRFdmVudExpc3RlbmVycyhldmVudFR5cGUpIHtcbiAgY29uc3QgZXZlbnRMaXN0ZW5lcnMgPSBbXTtcblxuICBpZiAodGhpcy5ldmVudExpc3RlbmVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKChldmVudExpc3RlbmVyKSA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IChldmVudExpc3RlbmVyLmV2ZW50VHlwZSA9PT0gZXZlbnRUeXBlKTtcblxuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGV2ZW50TGlzdGVuZXJzLnB1c2goZXZlbnRMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZXZlbnRMaXN0ZW5lcnM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KSB7XG4gIGxldCBldmVudExpc3RlbmVyO1xuXG4gIGNvbnN0IGhhbmRsZXJFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgZXZlbnRMaXN0ZW5lciA9IChldmVudCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzOyAvLy9cblxuICAgIGhhbmRsZXIuY2FsbChoYW5kbGVyRWxlbWVudCwgZXZlbnQsIGVsZW1lbnQpO1xuICB9O1xuXG4gIE9iamVjdC5hc3NpZ24oZXZlbnRMaXN0ZW5lciwge1xuICAgIGVsZW1lbnQsXG4gICAgaGFuZGxlcixcbiAgICBldmVudFR5cGVcbiAgfSk7XG5cbiAgcmV0dXJuIGV2ZW50TGlzdGVuZXI7XG59XG5cbmNvbnN0IGV2ZW50TWl4aW5zID0ge1xuICBvbixcbiAgb2ZmLFxuICBhZGRFdmVudExpc3RlbmVyLFxuICByZW1vdmVFdmVudExpc3RlbmVyLFxuICBjcmVhdGVFdmVudExpc3RlbmVyLFxuICBmaW5kRXZlbnRMaXN0ZW5lcixcbiAgZmluZEV2ZW50TGlzdGVuZXJzXG59O1xuXG5leHBvcnQgZGVmYXVsdCBldmVudE1peGlucztcbiJdLCJuYW1lcyI6WyJvbiIsImV2ZW50VHlwZXMiLCJoYW5kbGVyIiwiZWxlbWVudCIsInNwbGl0IiwiZm9yRWFjaCIsImV2ZW50VHlwZSIsInJlc2l6ZUV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwicmVzaXplRXZlbnRMaXN0ZW5lcnNMZW5ndGgiLCJsZW5ndGgiLCJhZGRSZXNpemVPYmplY3QiLCJldmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRvbUVsZW1lbnQiLCJvZmYiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZXZlbnRMaXN0ZW5lcnMiLCJ1bmRlZmluZWQiLCJjcmVhdGVFdmVudExpc3RlbmVyIiwicHVzaCIsImZpbmRFdmVudExpc3RlbmVyIiwiaW5kZXgiLCJpbmRleE9mIiwic3RhcnQiLCJkZWxldGVDb3VudCIsInNwbGljZSIsImZpbmQiLCJmb3VuZCIsImhhbmRsZXJFbGVtZW50IiwiZXZlbnQiLCJjYWxsIiwiT2JqZWN0IiwiYXNzaWduIiwiZXZlbnRNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVUsR0FBYyxDQUFkLFVBQWM7QUFDRixHQUFlLENBQWYsV0FBZTtBQUNkLEdBQWtCLENBQWxCLE9BQWtCO1NBRTVDQSxFQUFFLENBQUNDLFVBQVUsRUFBRUMsT0FBTyxFQUFrQixDQUFDO1FBQWpCQyxPQUFPLG9FQUFHLElBQUk7O0lBQzdDRixVQUFVLEdBQUdBLFVBQVUsQ0FBQ0csS0FBSyxDQUxULFVBQWM7SUFPbENILFVBQVUsQ0FBQ0ksT0FBTyxDQUFDLFFBQVEsQ0FBUEMsU0FBUyxFQUFLLENBQUM7UUFDakMsRUFBRSxFQUFFQSxTQUFTLEtBUGlCLFdBQWUsb0JBT1IsQ0FBQztZQUNwQyxHQUFLLENBQUNDLG9CQUFvQixTQUFRQyxrQkFBa0IsQ0FSeEIsV0FBZSxxQkFTckNDLDBCQUEwQixHQUFHRixvQkFBb0IsQ0FBQ0csTUFBTTtZQUU5RCxFQUFFLEVBQUVELDBCQUEwQixLQUFLLENBQUMsRUFBRSxDQUFDO3NCQUNoQ0UsZUFBZTtZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUVELEdBQUssQ0FBQ0MsYUFBYSxTQUFRQyxnQkFBZ0IsQ0FBQ1AsU0FBUyxFQUFFSixPQUFPLEVBQUVDLE9BQU87Y0FFbEVXLFVBQVUsQ0FBQ0QsZ0JBQWdCLENBQUNQLFNBQVMsRUFBRU0sYUFBYTtJQUMzRCxDQUFDO0FBQ0gsQ0FBQztTQUVRRyxHQUFHLENBQUNkLFVBQVUsRUFBRUMsT0FBTyxFQUFrQixDQUFDO1FBQWpCQyxP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
|