clientnode 4.0.1493 → 4.0.1495

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.
Files changed (113) hide show
  1. package/dist/Lock.d.ts +39 -0
  2. package/dist/Lock.js +68 -83
  3. package/dist/Logger.d.ts +102 -0
  4. package/dist/Logger.js +693 -163
  5. package/dist/Semaphore.d.ts +29 -0
  6. package/dist/Semaphore.js +55 -46
  7. package/dist/array.d.ts +150 -0
  8. package/dist/array.js +545 -337
  9. package/dist/bundle/index.js +4512 -0
  10. package/dist/cli.d.ts +31 -0
  11. package/dist/cli.js +44 -37
  12. package/dist/compatible/Lock.js +85 -0
  13. package/dist/compatible/Logger.js +715 -0
  14. package/dist/compatible/Semaphore.js +74 -0
  15. package/dist/compatible/array.js +660 -0
  16. package/dist/compatible/cli.js +58 -0
  17. package/dist/compatible/constants.js +200 -0
  18. package/dist/compatible/context.js +224 -0
  19. package/dist/compatible/cookie.js +240 -0
  20. package/dist/compatible/data-transfer.js +751 -0
  21. package/dist/compatible/datetime.js +1088 -0
  22. package/dist/compatible/domNode.js +481 -0
  23. package/dist/compatible/expression/evaluators.js +1152 -0
  24. package/dist/compatible/expression/helper.js +115 -0
  25. package/dist/compatible/expression/index.js +1274 -0
  26. package/dist/compatible/expression/indicator-functions.js +224 -0
  27. package/dist/compatible/expression/type.js +16 -0
  28. package/dist/compatible/filesystem.js +373 -0
  29. package/dist/compatible/function.js +114 -0
  30. package/dist/compatible/index.js +3081 -0
  31. package/dist/compatible/indicators.js +471 -0
  32. package/dist/compatible/module.js +168 -0
  33. package/dist/compatible/number.js +433 -0
  34. package/dist/compatible/object.js +1042 -0
  35. package/dist/compatible/process.js +230 -0
  36. package/dist/compatible/property-types.js +36 -0
  37. package/dist/compatible/scope.js +2016 -0
  38. package/dist/compatible/string.js +1156 -0
  39. package/dist/compatible/test-helper.js +837 -0
  40. package/dist/compatible/type.js +16 -0
  41. package/dist/compatible/utility.js +358 -0
  42. package/dist/constants.d.ts +99 -0
  43. package/dist/constants.js +184 -110
  44. package/dist/context.d.ts +8 -0
  45. package/dist/context.js +209 -25
  46. package/dist/cookie.d.ts +31 -0
  47. package/dist/cookie.js +204 -48
  48. package/dist/data-transfer.d.ts +45 -0
  49. package/dist/data-transfer.js +701 -166
  50. package/dist/datetime.d.ts +37 -0
  51. package/dist/datetime.js +1047 -245
  52. package/dist/domNode.d.ts +82 -0
  53. package/dist/domNode.js +427 -277
  54. package/dist/expression/evaluators.d.ts +55 -0
  55. package/dist/expression/evaluators.js +1113 -234
  56. package/dist/expression/helper.d.ts +4 -0
  57. package/dist/expression/helper.js +100 -82
  58. package/dist/expression/index.d.ts +7 -0
  59. package/dist/expression/index.js +1258 -10
  60. package/dist/expression/indicator-functions.d.ts +14 -0
  61. package/dist/expression/indicator-functions.js +208 -21
  62. package/dist/expression/type.d.ts +70 -0
  63. package/dist/expression/type.js +1 -5
  64. package/dist/filesystem.d.ts +143 -0
  65. package/dist/filesystem.js +286 -324
  66. package/dist/function.d.ts +20 -0
  67. package/dist/function.js +90 -51
  68. package/dist/index.d.ts +23 -0
  69. package/dist/index.js +3064 -26
  70. package/dist/indicators.d.ts +68 -0
  71. package/dist/indicators.js +418 -79
  72. package/dist/module.d.ts +10 -0
  73. package/dist/module.js +154 -109
  74. package/dist/number.d.ts +35 -0
  75. package/dist/number.js +397 -25
  76. package/dist/object.d.ts +231 -0
  77. package/dist/object.js +854 -803
  78. package/dist/process.d.ts +22 -0
  79. package/dist/process.js +200 -38
  80. package/dist/property-types.d.ts +460 -0
  81. package/dist/property-types.js +17 -96
  82. package/dist/scope.d.ts +44 -0
  83. package/dist/scope.js +1987 -56
  84. package/dist/string.d.ts +319 -0
  85. package/dist/string.js +929 -626
  86. package/dist/test/Lock.d.ts +1 -0
  87. package/dist/test/Logger.d.ts +1 -0
  88. package/dist/test/Semaphore.d.ts +1 -0
  89. package/dist/test/array.d.ts +1 -0
  90. package/dist/test/cookie.d.ts +1 -0
  91. package/dist/test/data-transfer.d.ts +1 -0
  92. package/dist/test/datetime.d.ts +1 -0
  93. package/dist/test/domNode.d.ts +1 -0
  94. package/dist/test/expression/evaluators.d.ts +1 -0
  95. package/dist/test/expression/helper.d.ts +1 -0
  96. package/dist/test/expression/indicator-functions.d.ts +1 -0
  97. package/dist/test/filesystem.d.ts +1 -0
  98. package/dist/test/function.d.ts +1 -0
  99. package/dist/test/indicators.d.ts +1 -0
  100. package/dist/test/number.d.ts +1 -0
  101. package/dist/test/object.d.ts +1 -0
  102. package/dist/test/process.d.ts +1 -0
  103. package/dist/test/property-types.d.ts +1 -0
  104. package/dist/test/scope.d.ts +1 -0
  105. package/dist/test/string.d.ts +1 -0
  106. package/dist/test/utility.d.ts +1 -0
  107. package/dist/test-helper.d.ts +245 -0
  108. package/dist/test-helper.js +514 -289
  109. package/dist/type.d.ts +248 -0
  110. package/dist/type.js +4 -9
  111. package/dist/utility.d.ts +44 -0
  112. package/dist/utility.js +310 -91
  113. package/package.json +2 -2
package/dist/domNode.js CHANGED
@@ -1,9 +1,68 @@
1
+ if(typeof window==='undefined'||window===null)var window=(typeof globalThis==='undefined'||globalThis===null)?{}:globalThis;import * as __WEBPACK_EXTERNAL_MODULE_core_js_modules_es_array_includes_js_66c3fd7d__ from "core-js/modules/es.array.includes.js";
2
+ /******/ var __webpack_modules__ = ({
3
+
4
+ /***/ 5:
5
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6
+
7
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8
+ /* harmony export */ Lz: function() { return /* binding */ globalContext; },
9
+ /* harmony export */ tE: function() { return /* binding */ NOOP; }
10
+ /* harmony export */ });
11
+ /* unused harmony exports setGlobalContext, MAXIMAL_NUMBER_OF_ITERATIONS, mockConsole */
12
+ /* unused harmony import specifier */ var CONSOLE_METHODS;
13
+ /* harmony import */ var _module_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
1
14
  // #!/usr/bin/env babel-node
2
15
  // -*- coding: utf-8 -*-
3
- /** @module domNode */
4
- 'use strict';
16
+ /** @module context *//* !
17
+ region header
18
+ [Project page](https://torben.website/clientnode)
19
+
20
+ Copyright Torben Sickert (info["~at~"]torben.website) 16.12.2012
21
+
22
+ License
23
+ -------
24
+
25
+ This library written by Torben Sickert stands under a creative commons
26
+ naming 3.0 unported license.
27
+ See https://creativecommons.org/licenses/by/3.0/deed.de
28
+ endregion
29
+ */var _optionalRequire$defa,_optionalRequire;function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t.return||t.return()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n};var globalContext=(0,_module_js__WEBPACK_IMPORTED_MODULE_0__/* .determineGlobalContext */ .a8)();var setGlobalContext=function setGlobalContext(context){globalContext=context};globalContext.fetch=globalContext.fetch?globalContext.fetch.bind(globalContext):(_optionalRequire$defa=(_optionalRequire=(0,_module_js__WEBPACK_IMPORTED_MODULE_0__/* .optionalRequire */ .I5)("node-fetch"))===null||_optionalRequire===void 0?void 0:_optionalRequire.default)!==null&&_optionalRequire$defa!==void 0?_optionalRequire$defa:function(){for(var _len=arguments.length,parameters=new Array(_len),_key=0;_key<_len;_key++){parameters[_key]=arguments[_key]}return (0,_module_js__WEBPACK_IMPORTED_MODULE_0__/* .optionalImport */ .Sw)(/* webpackIgnore: true */"node-fetch").then(function(module){var _ref;return(_ref=module).default.apply(_ref,parameters)})};var MAXIMAL_NUMBER_OF_ITERATIONS=(/* unused pure expression or super */ null && ({value:100}));// A no-op dummy function.
30
+ var NOOP=function NOOP(){// Do nothing.
31
+ };var mockConsole=function mockConsole(){// Avoid errors in browsers that lack a console.
32
+ if(!Object.prototype.hasOwnProperty.call(globalContext,"console"))globalContext.console={};if(!globalContext.console)globalContext.console={};var _iterator=_createForOfIteratorHelper(CONSOLE_METHODS),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var methodName=_step.value;if(!(methodName in globalContext.console))globalContext.console[methodName]=NOOP}}catch(err){_iterator.e(err)}finally{_iterator.f()}};
33
+
34
+ /***/ }),
5
35
 
6
- /* !
36
+ /***/ 25:
37
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
38
+
39
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40
+ /* harmony export */ C_: function() { return /* binding */ createDomNodes; },
41
+ /* harmony export */ Cc: function() { return /* binding */ interruptableScrollTo; },
42
+ /* harmony export */ D7: function() { return /* binding */ STOP_AUTO_SCROLLING; },
43
+ /* harmony export */ HC: function() { return /* binding */ replace; },
44
+ /* harmony export */ LV: function() { return /* binding */ wrap; },
45
+ /* harmony export */ Rv: function() { return /* binding */ fade; },
46
+ /* harmony export */ S: function() { return /* binding */ SCROLL_EVENT_NAMES; },
47
+ /* harmony export */ UK: function() { return /* binding */ getAll; },
48
+ /* harmony export */ VG: function() { return /* binding */ scrollTo; },
49
+ /* harmony export */ Xn: function() { return /* binding */ fadeOut; },
50
+ /* harmony export */ ZQ: function() { return /* binding */ MANUAL_SCROLL_EVENT_NAMES; },
51
+ /* harmony export */ dK: function() { return /* binding */ _isHidden; },
52
+ /* harmony export */ kp: function() { return /* binding */ closest; },
53
+ /* harmony export */ l2: function() { return /* binding */ isEquivalent; },
54
+ /* harmony export */ oA: function() { return /* binding */ unwrap; },
55
+ /* harmony export */ q4: function() { return /* binding */ _getText; },
56
+ /* harmony export */ qG: function() { return /* binding */ fadeIn; },
57
+ /* harmony export */ qq: function() { return /* binding */ onDocumentReady; },
58
+ /* harmony export */ wT: function() { return /* binding */ getParents; }
59
+ /* harmony export */ });
60
+ /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
61
+ /* harmony import */ var _context_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
62
+ /* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
63
+ // #!/usr/bin/env babel-node
64
+ // -*- coding: utf-8 -*-
65
+ /** @module domNode *//* !
7
66
  region header
8
67
  [Project page](https://torben.website/clientnode)
9
68
 
@@ -16,69 +75,10 @@
16
75
  naming 3.0 unported license.
17
76
  See https://creativecommons.org/licenses/by/3.0/deed.de
18
77
  endregion
19
- */
20
- import "core-js/modules/es.array.includes.js";
21
- import "core-js/modules/es.array.push.js";
22
- import { globalContext, NOOP } from "./context.js";
23
- import { timeout } from "./utility.js";
24
- export const createDomNodes = html => {
25
- const domNodeWrapper = document.createElement('div');
26
- domNodeWrapper.innerHTML = html;
27
- if (domNodeWrapper.childNodes.length === 1)
28
- /*
29
- NOTE: We need to clone the nested child to decouple it from its
30
- parent node.
31
- */
32
- return domNodeWrapper.childNodes[0].cloneNode(true);
33
- return domNodeWrapper;
34
- };
35
- export const fade = (domNode, intervalInMilliseconds = 200, out = true) => {
36
- const transitionBackup = domNode.style.transition;
37
- const visibleBackup = domNode.style.visibility;
38
- const opacityBackup = domNode.style.opacity;
39
- const hadStyleAttribute = domNode.hasAttribute('style');
40
- if (out) {
41
- domNode.style.visibility = 'hidden';
42
- domNode.style.opacity = '0';
43
- domNode.style.transition = `visibility 0s ${String(intervalInMilliseconds)}ms, ` + `opacity ${String(intervalInMilliseconds)}ms linear`;
44
- } else {
45
- domNode.style.visibility = 'visible';
46
- domNode.style.opacity = '1';
47
- domNode.style.transition = `opacity ${String(intervalInMilliseconds)}ms linear`;
48
- }
49
- let clearTimeoutAndResetDomNode = NOOP;
50
- let resolved = false;
51
- const promise = new Promise(resolve => {
52
- clearTimeoutAndResetDomNode = () => {
53
- domNode.style.transition = transitionBackup;
54
- resolved = true;
55
- resolve();
56
- };
57
- void timeout(intervalInMilliseconds).then(clearTimeoutAndResetDomNode);
58
- });
59
- promise.clear = () => {
60
- if (!resolved) {
61
- domNode.style.transition = 'none';
62
- clearTimeoutAndResetDomNode();
63
- }
64
- };
65
- promise.resetStyles = () => {
66
- if (hadStyleAttribute) {
67
- domNode.style.transition = transitionBackup;
68
- domNode.style.visibility = visibleBackup;
69
- domNode.style.opacity = opacityBackup;
70
- } else domNode.removeAttribute('style');
71
- };
72
- return promise;
73
- };
74
- export const fadeIn = (domNode, intervalInMilliseconds = 200) => fade(domNode, intervalInMilliseconds, false);
75
- export const fadeOut = (domNode, intervalInMilliseconds = 200) => fade(domNode, intervalInMilliseconds);
76
- export const STOP_AUTO_SCROLLING = {
77
- value: NOOP
78
- };
79
- export const MANUAL_SCROLL_EVENT_NAMES = ['DOMMouseScroll', 'keydown', 'mousedown', 'mousewheel', 'wheel', 'touchstart', 'touchmove'];
80
- export const SCROLL_EVENT_NAMES = ['scroll'].concat(MANUAL_SCROLL_EVENT_NAMES);
81
- /**
78
+ */function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof Generator?n:Generator,u=Object.create(c.prototype);return _regeneratorDefine2(u,"_invoke",function(r,n,o){var i,c,u,f=0,p=o||[],y=!1,G={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function d(t,r){return i=t,c=0,u=e,G.n=r,a}};function d(r,n){for(c=r,u=n,t=0;!y&&f&&!o&&t<p.length;t++){var o,i=p[t],d=G.p,l=i[2];r>3?(o=l===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(c=0,G.v=n,G.n=i[1]):d<l&&(o=r<3||i[0]>n||n>l)&&(i[4]=r,i[5]=n,G.n=l,c=0))}if(o||r>1)return a;throw y=!0,n}return function(o,p,l){if(f>1)throw TypeError("Generator is already running");for(y&&1===p&&d(p,l),c=p,u=l;(t=c<2?e:u)||!y;){i||(c?c<3?(c>1&&(G.n=-1),d(c,u)):G.n=u:G.v=u);try{if(f=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(y=G.n<0)?u:r.call(n,G))!==a)break}catch(t){i=e,c=1,u=t}finally{f=1}}return{value:t,done:y}}}(r,o,i),!0),u}var a={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(_regeneratorDefine2(t={},n,function(){return this}),t),u=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(c);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,GeneratorFunctionPrototype):(e.__proto__=GeneratorFunctionPrototype,_regeneratorDefine2(e,o,"GeneratorFunction")),e.prototype=Object.create(u),e}return GeneratorFunction.prototype=GeneratorFunctionPrototype,_regeneratorDefine2(u,"constructor",GeneratorFunctionPrototype),_regeneratorDefine2(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName="GeneratorFunction",_regeneratorDefine2(GeneratorFunctionPrototype,o,"GeneratorFunction"),_regeneratorDefine2(u),_regeneratorDefine2(u,o,"Generator"),_regeneratorDefine2(u,n,function(){return this}),_regeneratorDefine2(u,"toString",function(){return"[object Generator]"}),(_regenerator=function _regenerator(){return{w:i,m:f}})()}function _regeneratorDefine2(e,r,n,t){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}_regeneratorDefine2=function _regeneratorDefine(e,r,n,t){function o(r,n){_regeneratorDefine2(e,r,function(e){return this._invoke(r,n,e)})}r?i?i(e,r,{value:n,enumerable:!t,configurable:!t,writable:!t}):e[r]=n:(o("next",0),o("throw",1),o("return",2))},_regeneratorDefine2(e,r,n,t)}function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value}catch(n){return void e(n)}i.done?t(u):Promise.resolve(u).then(r,o)}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise(function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n)}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n)}_next(void 0)})}};function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t.return||t.return()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)};var createDomNodes=function createDomNodes(html){var domNodeWrapper=document.createElement("div");domNodeWrapper.innerHTML=html;if(domNodeWrapper.childNodes.length===1)/*
79
+ NOTE: We need to clone the nested child to decouple it from its
80
+ parent node.
81
+ */return domNodeWrapper.childNodes[0].cloneNode(true);return domNodeWrapper};var fade=function fade(domNode,intervalInMilliseconds,out){if(intervalInMilliseconds===void 0){intervalInMilliseconds=200}if(out===void 0){out=true}var transitionBackup=domNode.style.transition;var visibleBackup=domNode.style.visibility;var opacityBackup=domNode.style.opacity;var hadStyleAttribute=domNode.hasAttribute("style");if(out){domNode.style.visibility="hidden";domNode.style.opacity="0";domNode.style.transition="visibility 0s ".concat(String(intervalInMilliseconds),"ms, ")+"opacity ".concat(String(intervalInMilliseconds),"ms linear")}else{domNode.style.visibility="visible";domNode.style.opacity="1";domNode.style.transition="opacity ".concat(String(intervalInMilliseconds),"ms linear")}var clearTimeoutAndResetDomNode=_context_js__WEBPACK_IMPORTED_MODULE_1__/* .NOOP */ .tE;var resolved=false;var promise=new Promise(function(resolve){clearTimeoutAndResetDomNode=function clearTimeoutAndResetDomNode(){domNode.style.transition=transitionBackup;resolved=true;resolve()};void (0,_utility_js__WEBPACK_IMPORTED_MODULE_2__/* .timeout */ .wR)(intervalInMilliseconds).then(clearTimeoutAndResetDomNode)});promise.clear=function(){if(!resolved){domNode.style.transition="none";clearTimeoutAndResetDomNode()}};promise.resetStyles=function(){if(hadStyleAttribute){domNode.style.transition=transitionBackup;domNode.style.visibility=visibleBackup;domNode.style.opacity=opacityBackup}else domNode.removeAttribute("style")};return promise};var fadeIn=function fadeIn(domNode,intervalInMilliseconds){if(intervalInMilliseconds===void 0){intervalInMilliseconds=200}return fade(domNode,intervalInMilliseconds,false)};var fadeOut=function fadeOut(domNode,intervalInMilliseconds){if(intervalInMilliseconds===void 0){intervalInMilliseconds=200}return fade(domNode,intervalInMilliseconds)};var STOP_AUTO_SCROLLING={value:_context_js__WEBPACK_IMPORTED_MODULE_1__/* .NOOP */ .tE};var MANUAL_SCROLL_EVENT_NAMES=["DOMMouseScroll","keydown","mousedown","mousewheel","wheel","touchstart","touchmove"];var SCROLL_EVENT_NAMES=["scroll"].concat(MANUAL_SCROLL_EVENT_NAMES);/**
82
82
  * Smoothly scrolls both horizontally and vertically to a target DOM node.
83
83
  * Cancels instantly if the user interacts with the mouse, touch, or keys.
84
84
  * @param givenOptions - Configuration options.
@@ -91,142 +91,22 @@ export const SCROLL_EVENT_NAMES = ['scroll'].concat(MANUAL_SCROLL_EVENT_NAMES);
91
91
  * @param givenOptions.offset - Pixel offsets.
92
92
  * @param givenOptions.offset.top - Vertical offset in pixels.
93
93
  * @param givenOptions.offset.left - Horizontal offset in pixels.
94
- */
95
- export const interruptableScrollTo = (givenOptions = {}) => {
96
- if (!(globalContext.document && globalContext.window)) return;
97
- const document = globalContext.document;
98
- const body = document.body;
99
- const window = globalContext.window;
100
- if (givenOptions.containerDomNode && !('getBoundingClientRect' in givenOptions.containerDomNode) && 'parentElement' in givenOptions.containerDomNode) givenOptions.containerDomNode = givenOptions.containerDomNode.parentElement;
101
- if (givenOptions.targetDomNode && !('getBoundingClientRect' in givenOptions.targetDomNode) && 'parentElement' in givenOptions.targetDomNode) givenOptions.targetDomNode = givenOptions.targetDomNode.parentElement;
102
- const options = {
103
- targetDomNode: body,
104
- containerDomNode: window,
105
- durationInMilliseconds: 500,
106
- offset: {
107
- top: 0,
108
- left: 0,
109
- ...(givenOptions.offset || {})
110
- },
111
- interruptOnManualScroll: true,
112
- ...givenOptions
113
- };
114
- const isWindow = options.containerDomNode === window;
115
-
116
- // 1. Get current starting scroll positions
117
- const startY = isWindow ? window.scrollY || document.documentElement.scrollTop : options.containerDomNode.scrollTop;
118
- const startX = isWindow ? window.scrollX || document.documentElement.scrollLeft : options.containerDomNode.scrollLeft;
119
-
120
- // 2. Calculate targetDomNode positions for both axes
121
- let targetY;
122
- let targetX;
123
- if (isWindow) {
124
- const rect = options.targetDomNode.getBoundingClientRect();
125
- targetY = rect.top + (window.scrollY || document.documentElement.scrollTop) - options.offset.top;
126
- targetX = rect.left + (window.scrollX || document.documentElement.scrollLeft) - options.offset.left;
127
- } else {
128
- // Relative to the scrollable parent container
129
- targetY = options.targetDomNode.offsetTop - options.containerDomNode.offsetTop - options.offset.top;
130
- targetX = options.targetDomNode.offsetLeft - options.containerDomNode.offsetLeft - options.offset.left;
131
- }
132
- const distanceY = targetY - startY;
133
- const distanceX = targetX - startX;
134
-
135
- // If no movement is needed, exit immediately
136
- if (distanceY === 0 && distanceX === 0) return;
137
- let startTime = null;
138
- let animationFrameId = null;
139
-
140
- // Easing function
141
- const easeInOutQuad = time => time < 0.5 ? 2 * time * time : -1 + (4 - 2 * time) * time;
142
- if (options.interruptOnManualScroll) {
143
- // 3. Define the interrupt / teardown system
144
- STOP_AUTO_SCROLLING.value = () => {
145
- if (animationFrameId) {
146
- cancelAnimationFrame(animationFrameId);
147
- animationFrameId = null;
148
- }
149
- for (const node of [body, document.querySelector('html'), window]) for (const name of MANUAL_SCROLL_EVENT_NAMES) node?.removeEventListener(name, STOP_AUTO_SCROLLING.value);
150
- STOP_AUTO_SCROLLING.value = NOOP;
151
- };
152
- for (const node of [body, document.querySelector('html'), window]) for (const name of MANUAL_SCROLL_EVENT_NAMES) node?.addEventListener(name, STOP_AUTO_SCROLLING.value, {
153
- passive: true
154
- });
155
- }
156
-
157
- // 4. Multi-axis animation loop
158
- const step = currentTime => {
159
- if (!startTime) startTime = currentTime;
160
- const progress = currentTime - startTime;
161
- const timeRatio = Math.min(progress / options.durationInMilliseconds, 1);
162
- const easedRatio = easeInOutQuad(timeRatio);
163
-
164
- // Linearly interpolate the positions based on eased progress.
165
- const nextY = startY + distanceY * easedRatio;
166
- const nextX = startX + distanceX * easedRatio;
167
-
168
- // Apply scroll to window or container.
169
- if (isWindow) window.scrollTo(nextX, nextY);else {
170
- ;
171
- options.containerDomNode.scrollTop = nextY;
172
- options.containerDomNode.scrollLeft = nextX;
173
- }
174
- if (timeRatio < 1) animationFrameId = requestAnimationFrame(step);else STOP_AUTO_SCROLLING.value();
175
- };
176
- animationFrameId = requestAnimationFrame(step);
177
- };
178
- /**
94
+ */var interruptableScrollTo=function interruptableScrollTo(givenOptions){if(givenOptions===void 0){givenOptions={}}if(!(_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.document&&_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.window))return;var document=_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.document;var body=document.body;var window=_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.window;if(givenOptions.containerDomNode&&!("getBoundingClientRect"in givenOptions.containerDomNode)&&"parentElement"in givenOptions.containerDomNode)givenOptions.containerDomNode=givenOptions.containerDomNode.parentElement;if(givenOptions.targetDomNode&&!("getBoundingClientRect"in givenOptions.targetDomNode)&&"parentElement"in givenOptions.targetDomNode)givenOptions.targetDomNode=givenOptions.targetDomNode.parentElement;var options=_objectSpread({targetDomNode:body,containerDomNode:window,durationInMilliseconds:500,offset:_objectSpread({top:0,left:0},givenOptions.offset||{}),interruptOnManualScroll:true},givenOptions);var isWindow=options.containerDomNode===window;// 1. Get current starting scroll positions
95
+ var startY=isWindow?window.scrollY||document.documentElement.scrollTop:options.containerDomNode.scrollTop;var startX=isWindow?window.scrollX||document.documentElement.scrollLeft:options.containerDomNode.scrollLeft;// 2. Calculate targetDomNode positions for both axes
96
+ var targetY;var targetX;if(isWindow){var rect=options.targetDomNode.getBoundingClientRect();targetY=rect.top+(window.scrollY||document.documentElement.scrollTop)-options.offset.top;targetX=rect.left+(window.scrollX||document.documentElement.scrollLeft)-options.offset.left}else{// Relative to the scrollable parent container
97
+ targetY=options.targetDomNode.offsetTop-options.containerDomNode.offsetTop-options.offset.top;targetX=options.targetDomNode.offsetLeft-options.containerDomNode.offsetLeft-options.offset.left}var distanceY=targetY-startY;var distanceX=targetX-startX;// If no movement is needed, exit immediately
98
+ if(distanceY===0&&distanceX===0)return;var startTime=null;var animationFrameId=null;// Easing function
99
+ var easeInOutQuad=function easeInOutQuad(time){return time<0.5?2*time*time:-1+(4-2*time)*time};if(options.interruptOnManualScroll){// 3. Define the interrupt / teardown system
100
+ STOP_AUTO_SCROLLING.value=function(){if(animationFrameId){cancelAnimationFrame(animationFrameId);animationFrameId=null}for(var _i=0,_arr=[body,document.querySelector("html"),window];_i<_arr.length;_i++){var node=_arr[_i];for(var _i2=0,_MANUAL_SCROLL_EVENT_=MANUAL_SCROLL_EVENT_NAMES;_i2<_MANUAL_SCROLL_EVENT_.length;_i2++){var name=_MANUAL_SCROLL_EVENT_[_i2];node===null||node===void 0||node.removeEventListener(name,STOP_AUTO_SCROLLING.value)}}STOP_AUTO_SCROLLING.value=_context_js__WEBPACK_IMPORTED_MODULE_1__/* .NOOP */ .tE};for(var _i3=0,_arr2=[body,document.querySelector("html"),window];_i3<_arr2.length;_i3++){var node=_arr2[_i3];for(var _i4=0,_MANUAL_SCROLL_EVENT_2=MANUAL_SCROLL_EVENT_NAMES;_i4<_MANUAL_SCROLL_EVENT_2.length;_i4++){var name=_MANUAL_SCROLL_EVENT_2[_i4];node===null||node===void 0||node.addEventListener(name,STOP_AUTO_SCROLLING.value,{passive:true})}}}// 4. Multi-axis animation loop
101
+ var _step=function step(currentTime){if(!startTime)startTime=currentTime;var progress=currentTime-startTime;var timeRatio=Math.min(progress/options.durationInMilliseconds,1);var easedRatio=easeInOutQuad(timeRatio);// Linearly interpolate the positions based on eased progress.
102
+ var nextY=startY+distanceY*easedRatio;var nextX=startX+distanceX*easedRatio;// Apply scroll to window or container.
103
+ if(isWindow)window.scrollTo(nextX,nextY);else{;options.containerDomNode.scrollTop=nextY;options.containerDomNode.scrollLeft=nextX}if(timeRatio<1)animationFrameId=requestAnimationFrame(_step);else STOP_AUTO_SCROLLING.value()};animationFrameId=requestAnimationFrame(_step)};/**
179
104
  * Scrolls to the given DomNode's location or tio of the page.
180
105
  * @param targetDomNode - DomNode to scroll to. If not given, scrolls to the
181
106
  * top of the page.
182
107
  * @param behavior - Scroll behavior to use.
183
- */
184
- export const scrollTo = (targetDomNode = null, behavior = 'smooth') => {
185
- if (targetDomNode && !('getBoundingClientRect' in targetDomNode)) targetDomNode = targetDomNode.parentElement;
186
- const {
187
- left,
188
- top
189
- } = targetDomNode ? targetDomNode.getBoundingClientRect() : {
190
- left: 0,
191
- top: 0
192
- };
193
- globalContext.window?.scrollTo({
194
- left,
195
- top,
196
- behavior
197
- });
198
- };
199
- export const getAll = root => {
200
- if (!globalContext.document) return [];
201
- const nodes = [];
202
- // SHOW_ALL includes elements, text, and comments
203
- const walker = globalContext.document.createTreeWalker(root, NodeFilter.SHOW_ALL, null);
204
- let currentNode = walker.currentNode;
205
- while (currentNode) {
206
- nodes.push(currentNode);
207
- currentNode = walker.nextNode();
208
- }
209
- return nodes;
210
- };
211
- export const closest = (node, selector, startWithParent = false) => 'closest' in node && !startWithParent ? node.closest(selector) : node.parentElement?.closest(selector) || null;
212
- export const getParents = node => {
213
- const result = [];
214
- while (node.parentNode) {
215
- result.push(node.parentNode);
216
- node = node.parentNode;
217
- }
218
- return result;
219
- };
220
- export const getText = (root, recursive = false) => {
221
- if (root.nodeType === Node.TEXT_NODE) {
222
- const content = root.nodeValue?.trim();
223
- if (content) return [content];
224
- }
225
- const result = [];
226
- for (const domNode of root.childNodes) if (recursive || domNode.nodeType === Node.TEXT_NODE) result.push(...getText(domNode));
227
- return result;
228
- };
229
- /**
108
+ */var scrollTo=function scrollTo(targetDomNode,behavior){var _globalContext$window;if(targetDomNode===void 0){targetDomNode=null}if(behavior===void 0){behavior="smooth"}if(targetDomNode&&!("getBoundingClientRect"in targetDomNode))targetDomNode=targetDomNode.parentElement;var _ref=targetDomNode?targetDomNode.getBoundingClientRect():{left:0,top:0},left=_ref.left,top=_ref.top;(_globalContext$window=_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.window)===null||_globalContext$window===void 0||_globalContext$window.scrollTo({left:left,top:top,behavior:behavior})};var getAll=function getAll(root){if(!_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.document)return[];var nodes=[];// SHOW_ALL includes elements, text, and comments
109
+ var walker=_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.document.createTreeWalker(root,NodeFilter.SHOW_ALL,null);var currentNode=walker.currentNode;while(currentNode){nodes.push(currentNode);currentNode=walker.nextNode()}return nodes};var closest=function closest(node,selector,startWithParent){var _node$parentElement;if(startWithParent===void 0){startWithParent=false}return"closest"in node&&!startWithParent?node.closest(selector):((_node$parentElement=node.parentElement)===null||_node$parentElement===void 0?void 0:_node$parentElement.closest(selector))||null};var getParents=function getParents(node){var result=[];while(node.parentNode){result.push(node.parentNode);node=node.parentNode}return result};var _getText=function getText(root,recursive){if(recursive===void 0){recursive=false}if(root.nodeType===Node.TEXT_NODE){var _root$nodeValue;var content=(_root$nodeValue=root.nodeValue)===null||_root$nodeValue===void 0?void 0:_root$nodeValue.trim();if(content)return[content]}var result=[];var _iterator=_createForOfIteratorHelper(root.childNodes),_step2;try{for(_iterator.s();!(_step2=_iterator.n()).done;){var domNode=_step2.value;if(recursive||domNode.nodeType===Node.TEXT_NODE)result.push.apply(result,_toConsumableArray(_getText(domNode)))}}catch(err){_iterator.e(err)}finally{_iterator.f()}return result};/**
230
110
  * Checks whether given html or text strings are equal.
231
111
  * @param first - First html, selector to dom node or text to compare.
232
112
  * @param second - Second html, selector to dom node or text to compare.
@@ -234,42 +114,13 @@ export const getText = (root, recursive = false) => {
234
114
  * interpreted as html string (otherwise automatic detection will be
235
115
  * triggered).
236
116
  * @returns Returns true if both dom representations are equivalent.
237
- */
238
- export const isEquivalent = (first, second, forceHTMLString = false) => {
239
- if (first === second) return true;
240
- if (!(first && second)) return false;
241
- if (!globalContext.document) throw new Error('Missing document in global context.');
242
- const createElement = globalContext.document.createElement.bind(globalContext.document);
243
- const determineHTMLPattern = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
244
- const inputs = {
245
- first,
246
- second
247
- };
248
- const domNodes = {
249
- first: createElement('dummy'),
250
- second: createElement('dummy')
251
- };
252
-
253
- /*
254
- NOTE: Assume that strings that start "<" and end with ">" are mark up
255
- and skip the more expensive regular expression check.
256
- */
257
- for (const [type, html] of Object.entries(inputs)) if (typeof html === 'string') {
258
- if (forceHTMLString || html.startsWith('<') && html.endsWith('>') && html.length >= 3 || determineHTMLPattern.test(html)) domNodes[type] = createDomNodes(html);else {
259
- const domNode = document.querySelector(html);
260
- if (domNode)
261
- /*
262
- NOTE: We copy the node tree to not manipulate the
263
- original dom node by normalizing it afterward.
264
- */
265
- domNodes[type] = domNode.cloneNode(true);else return false;
266
- }
267
- } else if ('cloneNode' in html) domNodes[type] = html.cloneNode(true);else return false;
268
- domNodes.first.normalize();
269
- domNodes.second.normalize();
270
- return domNodes.first.isEqualNode(domNodes.second);
271
- };
272
- /**
117
+ */var isEquivalent=function isEquivalent(first,second,forceHTMLString){if(forceHTMLString===void 0){forceHTMLString=false}if(first===second)return true;if(!(first&&second))return false;if(!_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.document)throw new Error("Missing document in global context.");var createElement=_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.document.createElement.bind(_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.document);var determineHTMLPattern=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;var inputs={first:first,second:second};var domNodes={first:createElement("dummy"),second:createElement("dummy")};/*
118
+ NOTE: Assume that strings that start "<" and end with ">" are mark up
119
+ and skip the more expensive regular expression check.
120
+ */for(var _i5=0,_Object$entries=Object.entries(inputs);_i5<_Object$entries.length;_i5++){var _Object$entries$_i=_slicedToArray(_Object$entries[_i5],2),type=_Object$entries$_i[0],html=_Object$entries$_i[1];if(typeof html==="string"){if(forceHTMLString||html.startsWith("<")&&html.endsWith(">")&&html.length>=3||determineHTMLPattern.test(html))domNodes[type]=createDomNodes(html);else{var domNode=document.querySelector(html);if(domNode)/*
121
+ NOTE: We copy the node tree to not manipulate the
122
+ original dom node by normalizing it afterward.
123
+ */domNodes[type]=domNode.cloneNode(true);else return false}}else if("cloneNode"in html)domNodes[type]=html.cloneNode(true);else return false}domNodes.first.normalize();domNodes.second.normalize();return domNodes.first.isEqualNode(domNodes.second)};/**
273
124
  * Checks whether the given dom node is visible or takes space in the document
274
125
  * flow.
275
126
  * Elements with visibility: hidden or opacity: 0 are considered to be visible,
@@ -278,54 +129,353 @@ export const isEquivalent = (first, second, forceHTMLString = false) => {
278
129
  * animation.
279
130
  * @param domNode - To inspect.
280
131
  * @returns A boolean indicating the visibility.
281
- */
282
- export const isHidden = domNode => !globalContext.document?.contains(domNode) || domNode.style.display === 'none' || domNode.nodeName === 'INPUT' && domNode.getAttribute('type') === 'hidden' || ['contents', 'inline'].includes(domNode.style.display) && (!('innerHTML' in domNode) || domNode.innerHTML.trim() === '') || domNode.style.height === '0px' && domNode.style.width === '0px' || Boolean(domNode.parentElement) && isHidden(domNode.parentElement);
283
- export const onDocumentReady = callback => new Promise(resolve => void (async () => {
284
- // See if document object model is already available.
285
- if (['complete', 'interactive'].includes(document.readyState)) {
286
- // Call on next available tick.
287
- await timeout();
288
- resolve();
289
- callback?.();
290
- } else document.addEventListener('DOMContentLoaded', () => {
291
- resolve();
292
- callback?.();
293
- });
294
- })());
295
-
296
- /**
132
+ */var _isHidden=function isHidden(domNode){var _globalContext$docume;return!((_globalContext$docume=_context_js__WEBPACK_IMPORTED_MODULE_1__/* .globalContext */ .Lz.document)!==null&&_globalContext$docume!==void 0&&_globalContext$docume.contains(domNode))||domNode.style.display==="none"||domNode.nodeName==="INPUT"&&domNode.getAttribute("type")==="hidden"||["contents","inline"].includes(domNode.style.display)&&(!("innerHTML"in domNode)||domNode.innerHTML.trim()==="")||domNode.style.height==="0px"&&domNode.style.width==="0px"||Boolean(domNode.parentElement)&&_isHidden(domNode.parentElement)};var onDocumentReady=function onDocumentReady(callback){return new Promise(function(resolve){return void _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(){return _regenerator().w(function(_context){while(1)switch(_context.n){case 0:if(!["complete","interactive"].includes(document.readyState)){_context.n=2;break}_context.n=1;return (0,_utility_js__WEBPACK_IMPORTED_MODULE_2__/* .timeout */ .wR)();case 1:resolve();callback===null||callback===void 0||callback();_context.n=3;break;case 2:document.addEventListener("DOMContentLoaded",function(){resolve();callback===null||callback===void 0||callback()});case 3:return _context.a(2)}},_callee)}))()})};/**
297
133
  * Replaces a given dom node with given nodes.
298
134
  * @param domNodeToReplace - Node to replace its children.
299
135
  * @param replacementDomNodes - Node or array of nodes to use as replacement.
300
136
  * @param skipEmptyTextNodes - Configures whether to trim text.
301
- */
302
- export const replace = (domNodeToReplace, replacementDomNodes, skipEmptyTextNodes = false) => {
303
- for (const replacement of [].concat(replacementDomNodes).reverse()) if (!(skipEmptyTextNodes && replacement.nodeType === Node.TEXT_NODE && replacement.nodeValue?.trim() === '')) domNodeToReplace.after(replacement);
304
- domNodeToReplace.remove();
305
- };
306
- export const wrap = (domNodes, wrapper) => {
307
- const domNodeList = domNodes.length ? Array.from(domNodes) : [domNodes];
308
-
309
- // Use the first element's position as the anchor point
310
- const first = domNodeList[0];
311
- if (first.parentNode) first.parentNode.insertBefore(wrapper, first);
312
- for (const domNode of domNodeList) wrapper.appendChild(domNode);
313
- };
314
- /**
137
+ */var replace=function replace(domNodeToReplace,replacementDomNodes,skipEmptyTextNodes){if(skipEmptyTextNodes===void 0){skipEmptyTextNodes=false}var _iterator2=_createForOfIteratorHelper([].concat(replacementDomNodes).reverse()),_step3;try{for(_iterator2.s();!(_step3=_iterator2.n()).done;){var _replacement$nodeValu;var replacement=_step3.value;if(!(skipEmptyTextNodes&&replacement.nodeType===Node.TEXT_NODE&&((_replacement$nodeValu=replacement.nodeValue)===null||_replacement$nodeValu===void 0?void 0:_replacement$nodeValu.trim())===""))domNodeToReplace.after(replacement)}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}domNodeToReplace.remove()};var wrap=function wrap(domNodes,wrapper){var domNodeList=domNodes.length?Array.from(domNodes):[domNodes];// Use the first element's position as the anchor point
138
+ var first=domNodeList[0];if(first.parentNode)first.parentNode.insertBefore(wrapper,first);var _iterator3=_createForOfIteratorHelper(domNodeList),_step4;try{for(_iterator3.s();!(_step4=_iterator3.n()).done;){var domNode=_step4.value;wrapper.appendChild(domNode)}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}};/**
315
139
  * Moves the content of a given dom node one level up and removes the given
316
140
  * node.
317
141
  * @param domNode - Node to unwrap.
318
142
  * @returns List of unwrapped nodes.
319
- */
320
- export const unwrap = domNode => {
321
- const parent = domNode.parentNode;
322
- const result = [];
323
- // NOTE: We need to use "Array.from" to copy the list.
324
- for (const childNode of Array.from(domNode.childNodes)) {
325
- result.push(childNode);
326
- if (parent) parent.insertBefore(childNode, domNode);
327
- }
328
- if (parent) parent.removeChild(domNode);
329
- return result;
330
- };
331
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2RvbU5vZGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gIyEvdXNyL2Jpbi9lbnYgYmFiZWwtbm9kZVxuLy8gLSotIGNvZGluZzogdXRmLTggLSotXG4vKiogQG1vZHVsZSBkb21Ob2RlICovXG4ndXNlIHN0cmljdCdcbi8qICFcbiAgICByZWdpb24gaGVhZGVyXG4gICAgW1Byb2plY3QgcGFnZV0oaHR0cHM6Ly90b3JiZW4ud2Vic2l0ZS9jbGllbnRub2RlKVxuXG4gICAgQ29weXJpZ2h0IFRvcmJlbiBTaWNrZXJ0IChpbmZvW1wifmF0flwiXXRvcmJlbi53ZWJzaXRlKSAxNi4xMi4yMDEyXG5cbiAgICBMaWNlbnNlXG4gICAgLS0tLS0tLVxuXG4gICAgVGhpcyBsaWJyYXJ5IHdyaXR0ZW4gYnkgVG9yYmVuIFNpY2tlcnQgc3RhbmRzIHVuZGVyIGEgY3JlYXRpdmUgY29tbW9uc1xuICAgIG5hbWluZyAzLjAgdW5wb3J0ZWQgbGljZW5zZS5cbiAgICBTZWUgaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC9kZWVkLmRlXG4gICAgZW5kcmVnaW9uXG4qL1xuaW1wb3J0IHR5cGUge1xuICAgIEdpdmVuSW50ZXJydXB0YWJsZVNjcm9sbFRvT3B0aW9ucyxcbiAgICBJbnRlcnJ1cHRhYmxlU2Nyb2xsVG9PcHRpb25zLFxuICAgIEtub3duRXZlbnROYW1lLFxuICAgIE1hcHBpbmdcbn0gZnJvbSAnLi90eXBlJ1xuXG5pbXBvcnQge2dsb2JhbENvbnRleHQsIE5PT1B9IGZyb20gJy4vY29udGV4dCdcbmltcG9ydCB7dGltZW91dH0gZnJvbSAnLi91dGlsaXR5J1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRG9tTm9kZXMgPSA8VHlwZSBleHRlbmRzIE5vZGUgPSBOb2RlPihcbiAgICBodG1sOiBzdHJpbmdcbik6IFR5cGUgPT4ge1xuICAgIGNvbnN0IGRvbU5vZGVXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICBkb21Ob2RlV3JhcHBlci5pbm5lckhUTUwgPSBodG1sXG5cbiAgICBpZiAoZG9tTm9kZVdyYXBwZXIuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEpXG4gICAgICAgIC8qXG4gICAgICAgICAgICBOT1RFOiBXZSBuZWVkIHRvIGNsb25lIHRoZSBuZXN0ZWQgY2hpbGQgdG8gZGVjb3VwbGUgaXQgZnJvbSBpdHNcbiAgICAgICAgICAgIHBhcmVudCBub2RlLlxuICAgICAgICAqL1xuICAgICAgICByZXR1cm4gZG9tTm9kZVdyYXBwZXIuY2hpbGROb2Rlc1swXS5jbG9uZU5vZGUodHJ1ZSkgYXMgVHlwZVxuXG4gICAgcmV0dXJuIGRvbU5vZGVXcmFwcGVyIGFzIHVua25vd24gYXMgVHlwZVxufVxuXG5leHBvcnQgY29uc3QgZmFkZSA9IChcbiAgICBkb21Ob2RlOiBIVE1MRWxlbWVudCwgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcyA9IDIwMCwgb3V0ID0gdHJ1ZVxuKSA9PiB7XG4gICAgY29uc3QgdHJhbnNpdGlvbkJhY2t1cCA9IGRvbU5vZGUuc3R5bGUudHJhbnNpdGlvblxuICAgIGNvbnN0IHZpc2libGVCYWNrdXAgPSBkb21Ob2RlLnN0eWxlLnZpc2liaWxpdHlcbiAgICBjb25zdCBvcGFjaXR5QmFja3VwID0gZG9tTm9kZS5zdHlsZS5vcGFjaXR5XG4gICAgY29uc3QgaGFkU3R5bGVBdHRyaWJ1dGUgPSBkb21Ob2RlLmhhc0F0dHJpYnV0ZSgnc3R5bGUnKVxuXG4gICAgaWYgKG91dCkge1xuICAgICAgICBkb21Ob2RlLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJ1xuICAgICAgICBkb21Ob2RlLnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgICAgICAgZG9tTm9kZS5zdHlsZS50cmFuc2l0aW9uID1cbiAgICAgICAgICAgIGB2aXNpYmlsaXR5IDBzICR7U3RyaW5nKGludGVydmFsSW5NaWxsaXNlY29uZHMpfW1zLCBgICtcbiAgICAgICAgICAgIGBvcGFjaXR5ICR7U3RyaW5nKGludGVydmFsSW5NaWxsaXNlY29uZHMpfW1zIGxpbmVhcmBcbiAgICB9IGVsc2Uge1xuICAgICAgICBkb21Ob2RlLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSdcbiAgICAgICAgZG9tTm9kZS5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICAgIGRvbU5vZGUuc3R5bGUudHJhbnNpdGlvbiA9XG4gICAgICAgICAgICBgb3BhY2l0eSAke1N0cmluZyhpbnRlcnZhbEluTWlsbGlzZWNvbmRzKX1tcyBsaW5lYXJgXG4gICAgfVxuXG4gICAgbGV0IGNsZWFyVGltZW91dEFuZFJlc2V0RG9tTm9kZSA9IE5PT1BcbiAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZVxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXRBbmRSZXNldERvbU5vZGUgPSAoKSA9PiB7XG4gICAgICAgICAgICBkb21Ob2RlLnN0eWxlLnRyYW5zaXRpb24gPSB0cmFuc2l0aW9uQmFja3VwXG5cbiAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZVxuICAgICAgICAgICAgcmVzb2x2ZSgpXG4gICAgICAgIH1cbiAgICAgICAgdm9pZCB0aW1lb3V0KGludGVydmFsSW5NaWxsaXNlY29uZHMpLnRoZW4oY2xlYXJUaW1lb3V0QW5kUmVzZXREb21Ob2RlKVxuICAgIH0pIGFzXG4gICAgICAgIFByb21pc2U8dm9pZD4gJlxuICAgICAgICB7XG4gICAgICAgICAgICBjbGVhcjogKCkgPT4gdm9pZFxuICAgICAgICAgICAgcmVzZXRTdHlsZXM6ICgpID0+IHZvaWRcbiAgICAgICAgfVxuXG4gICAgcHJvbWlzZS5jbGVhciA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAgICAgZG9tTm9kZS5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnXG4gICAgICAgICAgICBjbGVhclRpbWVvdXRBbmRSZXNldERvbU5vZGUoKVxuICAgICAgICB9XG4gICAgfVxuICAgIHByb21pc2UucmVzZXRTdHlsZXMgPSAoKSA9PiB7XG4gICAgICAgIGlmIChoYWRTdHlsZUF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgZG9tTm9kZS5zdHlsZS50cmFuc2l0aW9uID0gdHJhbnNpdGlvbkJhY2t1cFxuICAgICAgICAgICAgZG9tTm9kZS5zdHlsZS52aXNpYmlsaXR5ID0gdmlzaWJsZUJhY2t1cFxuICAgICAgICAgICAgZG9tTm9kZS5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eUJhY2t1cFxuICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIGRvbU5vZGUucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb21pc2Vcbn1cbmV4cG9ydCBjb25zdCBmYWRlSW4gPSAoZG9tTm9kZTogSFRNTEVsZW1lbnQsIGludGVydmFsSW5NaWxsaXNlY29uZHMgPSAyMDApID0+XG4gICAgZmFkZShkb21Ob2RlLCBpbnRlcnZhbEluTWlsbGlzZWNvbmRzLCBmYWxzZSlcbmV4cG9ydCBjb25zdCBmYWRlT3V0ID0gKGRvbU5vZGU6IEhUTUxFbGVtZW50LCBpbnRlcnZhbEluTWlsbGlzZWNvbmRzID0gMjAwKSA9PlxuICAgIGZhZGUoZG9tTm9kZSwgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcylcblxuZXhwb3J0IGNvbnN0IFNUT1BfQVVUT19TQ1JPTExJTkcgPSB7dmFsdWU6IE5PT1B9XG5leHBvcnQgY29uc3QgTUFOVUFMX1NDUk9MTF9FVkVOVF9OQU1FUzogQXJyYXk8S25vd25FdmVudE5hbWU+ID0gW1xuICAgICdET01Nb3VzZVNjcm9sbCcsXG5cbiAgICAna2V5ZG93bicsXG5cbiAgICAnbW91c2Vkb3duJyxcbiAgICAnbW91c2V3aGVlbCcsXG4gICAgJ3doZWVsJyxcblxuICAgICd0b3VjaHN0YXJ0JyxcbiAgICAndG91Y2htb3ZlJ1xuXVxuZXhwb3J0IGNvbnN0IFNDUk9MTF9FVkVOVF9OQU1FUzogQXJyYXk8S25vd25FdmVudE5hbWU+ID1cbiAgICAoWydzY3JvbGwnXSBhcyBBcnJheTxLbm93bkV2ZW50TmFtZT4pLmNvbmNhdChNQU5VQUxfU0NST0xMX0VWRU5UX05BTUVTKVxuLyoqXG4gKiBTbW9vdGhseSBzY3JvbGxzIGJvdGggaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHRvIGEgdGFyZ2V0IERPTSBub2RlLlxuICogQ2FuY2VscyBpbnN0YW50bHkgaWYgdGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIG1vdXNlLCB0b3VjaCwgb3Iga2V5cy5cbiAqIEBwYXJhbSBnaXZlbk9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zLnRhcmdldERvbU5vZGUgLSBUaGUgRE9NIG5vZGUgeW91IHdhbnQgdG8gc2Nyb2xsIHRvLlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucy5jb250YWluZXJEb21Ob2RlIC0gVGhlIHNjcm9sbGFibGUgcGFyZW50LlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucy5kdXJhdGlvbkluTWlsbGlzZWNvbmRzIC0gQW5pbWF0aW9uIGR1cmF0aW9uIGluXG4gKiBtaWxsaXNlY29uZHMuXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zLmludGVycnVwdE9uTWFudWFsU2Nyb2xsIC0gV2hldGhlciB0byBzdG9wIHRoZSBhbmltYXRpb25cbiAqIGlmIHRoZSB1c2VyIHN0YXJ0cyB0byBzY3JvbGwgbWFudWFsbHkuXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zLm9mZnNldCAtIFBpeGVsIG9mZnNldHMuXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zLm9mZnNldC50b3AgLSBWZXJ0aWNhbCBvZmZzZXQgaW4gcGl4ZWxzLlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucy5vZmZzZXQubGVmdCAtIEhvcml6b250YWwgb2Zmc2V0IGluIHBpeGVscy5cbiAqL1xuZXhwb3J0IGNvbnN0IGludGVycnVwdGFibGVTY3JvbGxUbyA9IChcbiAgICBnaXZlbk9wdGlvbnM6IEdpdmVuSW50ZXJydXB0YWJsZVNjcm9sbFRvT3B0aW9ucyA9IHt9XG4pID0+IHtcbiAgICBpZiAoIShnbG9iYWxDb250ZXh0LmRvY3VtZW50ICYmIGdsb2JhbENvbnRleHQud2luZG93KSlcbiAgICAgICAgcmV0dXJuXG5cbiAgICBjb25zdCBkb2N1bWVudDogSFRNTERvY3VtZW50ID0gZ2xvYmFsQ29udGV4dC5kb2N1bWVudFxuICAgIGNvbnN0IGJvZHk6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keVxuICAgIGNvbnN0IHdpbmRvdzogV2luZG93ID0gZ2xvYmFsQ29udGV4dC53aW5kb3dcblxuICAgIGlmIChcbiAgICAgICAgZ2l2ZW5PcHRpb25zLmNvbnRhaW5lckRvbU5vZGUgJiZcbiAgICAgICAgISgnZ2V0Qm91bmRpbmdDbGllbnRSZWN0JyBpbiBnaXZlbk9wdGlvbnMuY29udGFpbmVyRG9tTm9kZSkgJiZcbiAgICAgICAgJ3BhcmVudEVsZW1lbnQnIGluIGdpdmVuT3B0aW9ucy5jb250YWluZXJEb21Ob2RlXG4gICAgKVxuICAgICAgICBnaXZlbk9wdGlvbnMuY29udGFpbmVyRG9tTm9kZSA9XG4gICAgICAgICAgICBnaXZlbk9wdGlvbnMuY29udGFpbmVyRG9tTm9kZS5wYXJlbnRFbGVtZW50XG4gICAgaWYgKFxuICAgICAgICBnaXZlbk9wdGlvbnMudGFyZ2V0RG9tTm9kZSAmJlxuICAgICAgICAhKCdnZXRCb3VuZGluZ0NsaWVudFJlY3QnIGluIGdpdmVuT3B0aW9ucy50YXJnZXREb21Ob2RlKSAmJlxuICAgICAgICAncGFyZW50RWxlbWVudCcgaW4gZ2l2ZW5PcHRpb25zLnRhcmdldERvbU5vZGVcbiAgICApXG4gICAgICAgIGdpdmVuT3B0aW9ucy50YXJnZXREb21Ob2RlID0gZ2l2ZW5PcHRpb25zLnRhcmdldERvbU5vZGUucGFyZW50RWxlbWVudFxuXG4gICAgY29uc3Qgb3B0aW9uczogSW50ZXJydXB0YWJsZVNjcm9sbFRvT3B0aW9ucyA9IHtcbiAgICAgICAgdGFyZ2V0RG9tTm9kZTogYm9keSxcbiAgICAgICAgY29udGFpbmVyRG9tTm9kZTogd2luZG93LFxuICAgICAgICBkdXJhdGlvbkluTWlsbGlzZWNvbmRzOiA1MDAsXG4gICAgICAgIG9mZnNldDoge1xuICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgIC4uLmdpdmVuT3B0aW9ucy5vZmZzZXQgfHwge31cbiAgICAgICAgfSxcbiAgICAgICAgaW50ZXJydXB0T25NYW51YWxTY3JvbGw6IHRydWUsXG4gICAgICAgIC4uLmdpdmVuT3B0aW9ucyBhcyBQYXJ0aWFsPEludGVycnVwdGFibGVTY3JvbGxUb09wdGlvbnM+XG4gICAgfVxuXG4gICAgY29uc3QgaXNXaW5kb3cgPSBvcHRpb25zLmNvbnRhaW5lckRvbU5vZGUgPT09IHdpbmRvd1xuXG4gICAgLy8gMS4gR2V0IGN1cnJlbnQgc3RhcnRpbmcgc2Nyb2xsIHBvc2l0aW9uc1xuICAgIGNvbnN0IHN0YXJ0WSA9IGlzV2luZG93ID9cbiAgICAgICAgKHdpbmRvdy5zY3JvbGxZIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApIDpcbiAgICAgICAgKG9wdGlvbnMuY29udGFpbmVyRG9tTm9kZSBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsVG9wXG4gICAgY29uc3Qgc3RhcnRYID0gaXNXaW5kb3cgP1xuICAgICAgICAod2luZG93LnNjcm9sbFggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQpIDpcbiAgICAgICAgKG9wdGlvbnMuY29udGFpbmVyRG9tTm9kZSBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsTGVmdFxuXG4gICAgLy8gMi4gQ2FsY3VsYXRlIHRhcmdldERvbU5vZGUgcG9zaXRpb25zIGZvciBib3RoIGF4ZXNcbiAgICBsZXQgdGFyZ2V0WVxuICAgIGxldCB0YXJnZXRYXG5cbiAgICBpZiAoaXNXaW5kb3cpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IG9wdGlvbnMudGFyZ2V0RG9tTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICB0YXJnZXRZID1cbiAgICAgICAgICAgIHJlY3QudG9wICtcbiAgICAgICAgICAgICh3aW5kb3cuc2Nyb2xsWSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKSAtXG4gICAgICAgICAgICBvcHRpb25zLm9mZnNldC50b3BcbiAgICAgICAgdGFyZ2V0WCA9XG4gICAgICAgICAgICByZWN0LmxlZnQgK1xuICAgICAgICAgICAgKHdpbmRvdy5zY3JvbGxYIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0KSAtXG4gICAgICAgICAgICBvcHRpb25zLm9mZnNldC5sZWZ0XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVsYXRpdmUgdG8gdGhlIHNjcm9sbGFibGUgcGFyZW50IGNvbnRhaW5lclxuICAgICAgICB0YXJnZXRZID1cbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICBvcHRpb25zLnRhcmdldERvbU5vZGUub2Zmc2V0VG9wIC1cbiAgICAgICAgICAgICAgICAob3B0aW9ucy5jb250YWluZXJEb21Ob2RlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRUb3BcbiAgICAgICAgICAgICkgLVxuICAgICAgICAgICAgb3B0aW9ucy5vZmZzZXQudG9wXG4gICAgICAgIHRhcmdldFggPVxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIG9wdGlvbnMudGFyZ2V0RG9tTm9kZS5vZmZzZXRMZWZ0IC1cbiAgICAgICAgICAgICAgICAob3B0aW9ucy5jb250YWluZXJEb21Ob2RlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRMZWZ0XG4gICAgICAgICAgICApIC1cbiAgICAgICAgICAgIG9wdGlvbnMub2Zmc2V0LmxlZnRcbiAgICB9XG5cbiAgICBjb25zdCBkaXN0YW5jZVkgPSB0YXJnZXRZIC0gc3RhcnRZXG4gICAgY29uc3QgZGlzdGFuY2VYID0gdGFyZ2V0WCAtIHN0YXJ0WFxuXG4gICAgLy8gSWYgbm8gbW92ZW1lbnQgaXMgbmVlZGVkLCBleGl0IGltbWVkaWF0ZWx5XG4gICAgaWYgKGRpc3RhbmNlWSA9PT0gMCAmJiBkaXN0YW5jZVggPT09IDApXG4gICAgICAgIHJldHVyblxuXG4gICAgbGV0IHN0YXJ0VGltZTogbnVsbCB8IG51bWJlciA9IG51bGxcbiAgICBsZXQgYW5pbWF0aW9uRnJhbWVJZDogbnVsbCB8IG51bWJlciA9IG51bGxcblxuICAgIC8vIEVhc2luZyBmdW5jdGlvblxuICAgIGNvbnN0IGVhc2VJbk91dFF1YWQgPSAodGltZTogbnVtYmVyKSA9PlxuICAgICAgICB0aW1lIDwgMC41ID8gMiAqIHRpbWUgKiB0aW1lIDogLTEgKyAoNCAtIDIgKiB0aW1lKSAqIHRpbWVcblxuICAgIGlmIChvcHRpb25zLmludGVycnVwdE9uTWFudWFsU2Nyb2xsKSB7XG4gICAgICAgIC8vIDMuIERlZmluZSB0aGUgaW50ZXJydXB0IC8gdGVhcmRvd24gc3lzdGVtXG4gICAgICAgIFNUT1BfQVVUT19TQ1JPTExJTkcudmFsdWUgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYW5pbWF0aW9uRnJhbWVJZCkge1xuICAgICAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGFuaW1hdGlvbkZyYW1lSWQpXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWVJZCA9IG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBbXG4gICAgICAgICAgICAgICAgYm9keSwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaHRtbCcpLCB3aW5kb3dcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE1BTlVBTF9TQ1JPTExfRVZFTlRfTkFNRVMpXG4gICAgICAgICAgICAgICAgICAgIG5vZGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgU1RPUF9BVVRPX1NDUk9MTElORy52YWx1ZSlcblxuICAgICAgICAgICAgU1RPUF9BVVRPX1NDUk9MTElORy52YWx1ZSA9IE5PT1BcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBbXG4gICAgICAgICAgICBib2R5LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sJyksIHdpbmRvd1xuICAgICAgICBdKVxuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE1BTlVBTF9TQ1JPTExfRVZFTlRfTkFNRVMpXG4gICAgICAgICAgICAgICAgbm9kZT8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICAgICAgbmFtZSwgU1RPUF9BVVRPX1NDUk9MTElORy52YWx1ZSwge3Bhc3NpdmU6IHRydWV9XG4gICAgICAgICAgICAgICAgKVxuICAgIH1cblxuICAgIC8vIDQuIE11bHRpLWF4aXMgYW5pbWF0aW9uIGxvb3BcbiAgICBjb25zdCBzdGVwID0gKGN1cnJlbnRUaW1lOiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKCFzdGFydFRpbWUpXG4gICAgICAgICAgICBzdGFydFRpbWUgPSBjdXJyZW50VGltZVxuXG4gICAgICAgIGNvbnN0IHByb2dyZXNzID0gY3VycmVudFRpbWUgLSBzdGFydFRpbWVcbiAgICAgICAgY29uc3QgdGltZVJhdGlvID1cbiAgICAgICAgICAgIE1hdGgubWluKHByb2dyZXNzIC8gb3B0aW9ucy5kdXJhdGlvbkluTWlsbGlzZWNvbmRzLCAxKVxuXG4gICAgICAgIGNvbnN0IGVhc2VkUmF0aW8gPSBlYXNlSW5PdXRRdWFkKHRpbWVSYXRpbylcblxuICAgICAgICAvLyBMaW5lYXJseSBpbnRlcnBvbGF0ZSB0aGUgcG9zaXRpb25zIGJhc2VkIG9uIGVhc2VkIHByb2dyZXNzLlxuICAgICAgICBjb25zdCBuZXh0WSA9IHN0YXJ0WSArIChkaXN0YW5jZVkgKiBlYXNlZFJhdGlvKVxuICAgICAgICBjb25zdCBuZXh0WCA9IHN0YXJ0WCArIChkaXN0YW5jZVggKiBlYXNlZFJhdGlvKVxuXG4gICAgICAgIC8vIEFwcGx5IHNjcm9sbCB0byB3aW5kb3cgb3IgY29udGFpbmVyLlxuICAgICAgICBpZiAoaXNXaW5kb3cpXG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8obmV4dFgsIG5leHRZKVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIDsob3B0aW9ucy5jb250YWluZXJEb21Ob2RlIGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3AgPSBuZXh0WVxuICAgICAgICAgICAgOyhvcHRpb25zLmNvbnRhaW5lckRvbU5vZGUgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbExlZnQgPSBuZXh0WFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRpbWVSYXRpbyA8IDEpXG4gICAgICAgICAgICBhbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIFNUT1BfQVVUT19TQ1JPTExJTkcudmFsdWUoKVxuICAgIH1cblxuICAgIGFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcClcbn1cbi8qKlxuICogU2Nyb2xscyB0byB0aGUgZ2l2ZW4gRG9tTm9kZSdzIGxvY2F0aW9uIG9yIHRpbyBvZiB0aGUgcGFnZS5cbiAqIEBwYXJhbSB0YXJnZXREb21Ob2RlIC0gRG9tTm9kZSB0byBzY3JvbGwgdG8uIElmIG5vdCBnaXZlbiwgc2Nyb2xscyB0byB0aGVcbiAqIHRvcCBvZiB0aGUgcGFnZS5cbiAqIEBwYXJhbSBiZWhhdmlvciAtIFNjcm9sbCBiZWhhdmlvciB0byB1c2UuXG4gKi9cbmV4cG9ydCBjb25zdCBzY3JvbGxUbyA9IChcbiAgICB0YXJnZXREb21Ob2RlOiBOb2RlIHwgbnVsbCA9IG51bGwsXG4gICAgYmVoYXZpb3I6IFNjcm9sbFRvT3B0aW9uc1snYmVoYXZpb3InXSA9ICdzbW9vdGgnXG4pID0+IHtcbiAgICBpZiAodGFyZ2V0RG9tTm9kZSAmJiAhKCdnZXRCb3VuZGluZ0NsaWVudFJlY3QnIGluIHRhcmdldERvbU5vZGUpKVxuICAgICAgICB0YXJnZXREb21Ob2RlID0gdGFyZ2V0RG9tTm9kZS5wYXJlbnRFbGVtZW50XG5cbiAgICBjb25zdCB7bGVmdCwgdG9wfSA9IHRhcmdldERvbU5vZGUgP1xuICAgICAgICAodGFyZ2V0RG9tTm9kZSBhcyBFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6XG4gICAgICAgIHtsZWZ0OiAwLCB0b3A6IDB9XG5cbiAgICBnbG9iYWxDb250ZXh0LndpbmRvdz8uc2Nyb2xsVG8oe2xlZnQsIHRvcCwgYmVoYXZpb3J9KVxufVxuXG5leHBvcnQgY29uc3QgZ2V0QWxsID0gKHJvb3Q6IE5vZGUpID0+IHtcbiAgICBpZiAoIWdsb2JhbENvbnRleHQuZG9jdW1lbnQpXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgY29uc3Qgbm9kZXM6IEFycmF5PE5vZGU+ID0gW11cbiAgICAvLyBTSE9XX0FMTCBpbmNsdWRlcyBlbGVtZW50cywgdGV4dCwgYW5kIGNvbW1lbnRzXG4gICAgY29uc3Qgd2Fsa2VyID1cbiAgICAgICAgZ2xvYmFsQ29udGV4dC5kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51bGwpXG5cbiAgICBsZXQgY3VycmVudE5vZGU6IE5vZGUgfCBudWxsID0gd2Fsa2VyLmN1cnJlbnROb2RlXG4gICAgd2hpbGUgKGN1cnJlbnROb2RlKSB7XG4gICAgICAgIG5vZGVzLnB1c2goY3VycmVudE5vZGUpXG4gICAgICAgIGN1cnJlbnROb2RlID0gd2Fsa2VyLm5leHROb2RlKClcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZXNcbn1cbmV4cG9ydCBjb25zdCBjbG9zZXN0ID0gKFxuICAgIG5vZGU6IE5vZGUsIHNlbGVjdG9yOiBzdHJpbmcsIHN0YXJ0V2l0aFBhcmVudCA9IGZhbHNlXG4pOiBFbGVtZW50IHwgbnVsbCA9PlxuICAgICdjbG9zZXN0JyBpbiBub2RlICYmICFzdGFydFdpdGhQYXJlbnQgP1xuICAgICAgICAobm9kZSBhcyBFbGVtZW50KS5jbG9zZXN0KHNlbGVjdG9yKSA6XG4gICAgICAgIG5vZGUucGFyZW50RWxlbWVudD8uY2xvc2VzdChzZWxlY3RvcikgfHwgbnVsbFxuZXhwb3J0IGNvbnN0IGdldFBhcmVudHMgPSAobm9kZTogTm9kZSk6IEFycmF5PE5vZGU+ID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IEFycmF5PE5vZGU+ID0gW11cbiAgICB3aGlsZSAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKG5vZGUucGFyZW50Tm9kZSlcbiAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbn1cbmV4cG9ydCBjb25zdCBnZXRUZXh0ID0gKHJvb3Q6IE5vZGUsIHJlY3Vyc2l2ZSA9IGZhbHNlKTogQXJyYXk8c3RyaW5nPiA9PiB7XG4gICAgaWYgKHJvb3Qubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSByb290Lm5vZGVWYWx1ZT8udHJpbSgpXG4gICAgICAgIGlmIChjb250ZW50KVxuICAgICAgICAgICAgcmV0dXJuIFtjb250ZW50XVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogQXJyYXk8c3RyaW5nPiA9IFtdXG4gICAgZm9yIChjb25zdCBkb21Ob2RlIG9mIHJvb3QuY2hpbGROb2RlcylcbiAgICAgICAgaWYgKHJlY3Vyc2l2ZSB8fCBkb21Ob2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSlcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLmdldFRleHQoZG9tTm9kZSkpXG5cbiAgICByZXR1cm4gcmVzdWx0XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGdpdmVuIGh0bWwgb3IgdGV4dCBzdHJpbmdzIGFyZSBlcXVhbC5cbiAqIEBwYXJhbSBmaXJzdCAtIEZpcnN0IGh0bWwsIHNlbGVjdG9yIHRvIGRvbSBub2RlIG9yIHRleHQgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSBzZWNvbmQgLSBTZWNvbmQgaHRtbCwgc2VsZWN0b3IgdG8gZG9tIG5vZGUgb3IgdGV4dCB0byBjb21wYXJlLlxuICogQHBhcmFtIGZvcmNlSFRNTFN0cmluZyAtIEluZGljYXRlcyB3aGV0aGVyIGdpdmVuIGNvbnRlbnRzIGFyZVxuICogaW50ZXJwcmV0ZWQgYXMgaHRtbCBzdHJpbmcgKG90aGVyd2lzZSBhdXRvbWF0aWMgZGV0ZWN0aW9uIHdpbGwgYmVcbiAqIHRyaWdnZXJlZCkuXG4gKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgYm90aCBkb20gcmVwcmVzZW50YXRpb25zIGFyZSBlcXVpdmFsZW50LlxuICovXG5leHBvcnQgY29uc3QgaXNFcXVpdmFsZW50ID0gKFxuICAgIGZpcnN0OiBOb2RlIHwgc3RyaW5nLCBzZWNvbmQ6IE5vZGUgfCBzdHJpbmcsIGZvcmNlSFRNTFN0cmluZyA9IGZhbHNlXG4pOiBib29sZWFuID0+IHtcbiAgICBpZiAoZmlyc3QgPT09IHNlY29uZClcbiAgICAgICAgcmV0dXJuIHRydWVcblxuICAgIGlmICghKGZpcnN0ICYmIHNlY29uZCkpXG4gICAgICAgIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKCFnbG9iYWxDb250ZXh0LmRvY3VtZW50KVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgZG9jdW1lbnQgaW4gZ2xvYmFsIGNvbnRleHQuJylcblxuICAgIGNvbnN0IGNyZWF0ZUVsZW1lbnQgPVxuICAgICAgICBnbG9iYWxDb250ZXh0LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQuYmluZChnbG9iYWxDb250ZXh0LmRvY3VtZW50KVxuXG4gICAgY29uc3QgZGV0ZXJtaW5lSFRNTFBhdHRlcm4gPSAvXig/OlxccyooPFtcXHdcXFddKz4pW14+XSp8IyhbXFx3LV0rKSkkL1xuICAgIGNvbnN0IGlucHV0czogTWFwcGluZzxOb2RlIHwgc3RyaW5nPiA9IHtmaXJzdCwgc2Vjb25kfVxuICAgIGNvbnN0IGRvbU5vZGVzOiBNYXBwaW5nPE5vZGU+ID0ge1xuICAgICAgICBmaXJzdDogY3JlYXRlRWxlbWVudCgnZHVtbXknKSxcbiAgICAgICAgc2Vjb25kOiBjcmVhdGVFbGVtZW50KCdkdW1teScpXG4gICAgfVxuXG4gICAgLypcbiAgICAgICAgTk9URTogQXNzdW1lIHRoYXQgc3RyaW5ncyB0aGF0IHN0YXJ0IFwiPFwiIGFuZCBlbmQgd2l0aCBcIj5cIiBhcmUgbWFyayB1cFxuICAgICAgICBhbmQgc2tpcCB0aGUgbW9yZSBleHBlbnNpdmUgcmVndWxhciBleHByZXNzaW9uIGNoZWNrLlxuICAgICovXG4gICAgZm9yIChjb25zdCBbdHlwZSwgaHRtbF0gb2YgT2JqZWN0LmVudHJpZXMoaW5wdXRzKSlcbiAgICAgICAgaWYgKHR5cGVvZiBodG1sID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmb3JjZUhUTUxTdHJpbmcgfHxcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGh0bWwuc3RhcnRzV2l0aCgnPCcpICYmXG4gICAgICAgICAgICAgICAgICAgIGh0bWwuZW5kc1dpdGgoJz4nKSAmJlxuICAgICAgICAgICAgICAgICAgICBodG1sLmxlbmd0aCA+PSAzIHx8XG4gICAgICAgICAgICAgICAgICAgIGRldGVybWluZUhUTUxQYXR0ZXJuLnRlc3QoaHRtbClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZG9tTm9kZXNbdHlwZV0gPSBjcmVhdGVEb21Ob2RlcyhodG1sKVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9tTm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoaHRtbClcbiAgICAgICAgICAgICAgICBpZiAoZG9tTm9kZSlcbiAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgIE5PVEU6IFdlIGNvcHkgdGhlIG5vZGUgdHJlZSB0byBub3QgbWFuaXB1bGF0ZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsIGRvbSBub2RlIGJ5IG5vcm1hbGl6aW5nIGl0IGFmdGVyd2FyZC5cbiAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgZG9tTm9kZXNbdHlwZV0gPSBkb21Ob2RlLmNsb25lTm9kZSh0cnVlKVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCdjbG9uZU5vZGUnIGluIGh0bWwpXG4gICAgICAgICAgICBkb21Ob2Rlc1t0eXBlXSA9IGh0bWwuY2xvbmVOb2RlKHRydWUpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuXG4gICAgZG9tTm9kZXMuZmlyc3Qubm9ybWFsaXplKClcbiAgICBkb21Ob2Rlcy5zZWNvbmQubm9ybWFsaXplKClcblxuICAgIHJldHVybiBkb21Ob2Rlcy5maXJzdC5pc0VxdWFsTm9kZSgoZG9tTm9kZXMuc2Vjb25kKSlcbn1cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGRvbSBub2RlIGlzIHZpc2libGUgb3IgdGFrZXMgc3BhY2UgaW4gdGhlIGRvY3VtZW50XG4gKiBmbG93LlxuICogRWxlbWVudHMgd2l0aCB2aXNpYmlsaXR5OiBoaWRkZW4gb3Igb3BhY2l0eTogMCBhcmUgY29uc2lkZXJlZCB0byBiZSB2aXNpYmxlLFxuICogc2luY2UgdGhleSBzdGlsbCBjb25zdW1lIHNwYWNlIGluIHRoZSBsYXlvdXQuIER1cmluZyBhbmltYXRpb25zIHRoYXQgaGlkZSBhblxuICogZWxlbWVudCwgdGhlIGVsZW1lbnQgaXMgY29uc2lkZXJlZCB0byBiZSB2aXNpYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlXG4gKiBhbmltYXRpb24uXG4gKiBAcGFyYW0gZG9tTm9kZSAtIFRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB0aGUgdmlzaWJpbGl0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzSGlkZGVuID0gKGRvbU5vZGU6IEhUTUxFbGVtZW50KTogYm9vbGVhbiA9PlxuICAgICFnbG9iYWxDb250ZXh0LmRvY3VtZW50Py5jb250YWlucyhkb21Ob2RlKSB8fFxuXG4gICAgZG9tTm9kZS5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgfHxcblxuICAgIGRvbU5vZGUubm9kZU5hbWUgPT09ICdJTlBVVCcgJiZcbiAgICBkb21Ob2RlLmdldEF0dHJpYnV0ZSgndHlwZScpID09PSAnaGlkZGVuJyB8fFxuXG4gICAgWydjb250ZW50cycsICdpbmxpbmUnXS5pbmNsdWRlcyhkb21Ob2RlLnN0eWxlLmRpc3BsYXkpICYmXG4gICAgKCEoJ2lubmVySFRNTCcgaW4gZG9tTm9kZSkgfHwgZG9tTm9kZS5pbm5lckhUTUwudHJpbSgpID09PSAnJykgfHxcblxuICAgIGRvbU5vZGUuc3R5bGUuaGVpZ2h0ID09PSAnMHB4JyAmJlxuICAgIGRvbU5vZGUuc3R5bGUud2lkdGggPT09ICcwcHgnIHx8XG5cbiAgICBCb29sZWFuKGRvbU5vZGUucGFyZW50RWxlbWVudCkgJiZcbiAgICBpc0hpZGRlbihkb21Ob2RlLnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpXG5cbmV4cG9ydCBjb25zdCBvbkRvY3VtZW50UmVhZHkgPSAoY2FsbGJhY2s/OiAoKSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiA9PlxuICAgIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PlxuICAgICAgICB2b2lkIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAvLyBTZWUgaWYgZG9jdW1lbnQgb2JqZWN0IG1vZGVsIGlzIGFscmVhZHkgYXZhaWxhYmxlLlxuICAgICAgICAgICAgaWYgKFsnY29tcGxldGUnLCAnaW50ZXJhY3RpdmUnXS5pbmNsdWRlcyhkb2N1bWVudC5yZWFkeVN0YXRlKSkge1xuICAgICAgICAgICAgICAgIC8vIENhbGwgb24gbmV4dCBhdmFpbGFibGUgdGljay5cbiAgICAgICAgICAgICAgICBhd2FpdCB0aW1lb3V0KClcbiAgICAgICAgICAgICAgICByZXNvbHZlKClcbiAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKClcbiAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9KSgpXG4gICAgKVxuXG4vKipcbiAqIFJlcGxhY2VzIGEgZ2l2ZW4gZG9tIG5vZGUgd2l0aCBnaXZlbiBub2Rlcy5cbiAqIEBwYXJhbSBkb21Ob2RlVG9SZXBsYWNlIC0gTm9kZSB0byByZXBsYWNlIGl0cyBjaGlsZHJlbi5cbiAqIEBwYXJhbSByZXBsYWNlbWVudERvbU5vZGVzIC0gTm9kZSBvciBhcnJheSBvZiBub2RlcyB0byB1c2UgYXMgcmVwbGFjZW1lbnQuXG4gKiBAcGFyYW0gc2tpcEVtcHR5VGV4dE5vZGVzIC0gQ29uZmlndXJlcyB3aGV0aGVyIHRvIHRyaW0gdGV4dC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlcGxhY2UgPSAoXG4gICAgZG9tTm9kZVRvUmVwbGFjZTogSFRNTEVsZW1lbnQsXG4gICAgcmVwbGFjZW1lbnREb21Ob2RlczogQXJyYXk8Tm9kZT4gfCBOb2RlLFxuICAgIHNraXBFbXB0eVRleHROb2RlcyA9IGZhbHNlXG4pID0+IHtcbiAgICBmb3IgKFxuICAgICAgICBjb25zdCByZXBsYWNlbWVudCBvZlxuICAgICAgICAoW10gYXMgQXJyYXk8Tm9kZT4pLmNvbmNhdChyZXBsYWNlbWVudERvbU5vZGVzKS5yZXZlcnNlKClcbiAgICApXG4gICAgICAgIGlmICghKFxuICAgICAgICAgICAgc2tpcEVtcHR5VGV4dE5vZGVzICYmXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFICYmXG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQubm9kZVZhbHVlPy50cmltKCkgPT09ICcnXG4gICAgICAgICAgICApXG4gICAgICAgICkpXG4gICAgICAgICAgICBkb21Ob2RlVG9SZXBsYWNlLmFmdGVyKHJlcGxhY2VtZW50KVxuXG4gICAgZG9tTm9kZVRvUmVwbGFjZS5yZW1vdmUoKVxufVxuXG5leHBvcnQgY29uc3Qgd3JhcCA9IChcbiAgICBkb21Ob2RlczogTm9kZSB8IE5vZGVMaXN0T2Y8Tm9kZT4sIHdyYXBwZXI6IEhUTUxFbGVtZW50XG4pID0+IHtcbiAgICBjb25zdCBkb21Ob2RlTGlzdCA9IChkb21Ob2RlcyBhcyBOb2RlTGlzdE9mPE5vZGU+KS5sZW5ndGggP1xuICAgICAgICBBcnJheS5mcm9tKGRvbU5vZGVzIGFzIE5vZGVMaXN0T2Y8Tm9kZT4pIDpcbiAgICAgICAgW2RvbU5vZGVzIGFzIE5vZGVdXG5cbiAgICAvLyBVc2UgdGhlIGZpcnN0IGVsZW1lbnQncyBwb3NpdGlvbiBhcyB0aGUgYW5jaG9yIHBvaW50XG4gICAgY29uc3QgZmlyc3QgPSBkb21Ob2RlTGlzdFswXVxuXG4gICAgaWYgKGZpcnN0LnBhcmVudE5vZGUpXG4gICAgICAgIGZpcnN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIGZpcnN0KVxuXG4gICAgZm9yIChjb25zdCBkb21Ob2RlIG9mIGRvbU5vZGVMaXN0KVxuICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGRvbU5vZGUpXG59XG4vKipcbiAqIE1vdmVzIHRoZSBjb250ZW50IG9mIGEgZ2l2ZW4gZG9tIG5vZGUgb25lIGxldmVsIHVwIGFuZCByZW1vdmVzIHRoZSBnaXZlblxuICogbm9kZS5cbiAqIEBwYXJhbSBkb21Ob2RlIC0gTm9kZSB0byB1bndyYXAuXG4gKiBAcmV0dXJucyBMaXN0IG9mIHVud3JhcHBlZCBub2Rlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVud3JhcCA9IChkb21Ob2RlOiBIVE1MRWxlbWVudCk6IEFycmF5PENoaWxkTm9kZT4gPT4ge1xuICAgIGNvbnN0IHBhcmVudCA9IGRvbU5vZGUucGFyZW50Tm9kZVxuXG4gICAgY29uc3QgcmVzdWx0OiBBcnJheTxDaGlsZE5vZGU+ID0gW11cbiAgICAvLyBOT1RFOiBXZSBuZWVkIHRvIHVzZSBcIkFycmF5LmZyb21cIiB0byBjb3B5IHRoZSBsaXN0LlxuICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIEFycmF5LmZyb20oZG9tTm9kZS5jaGlsZE5vZGVzKSkge1xuICAgICAgICByZXN1bHQucHVzaChjaGlsZE5vZGUpXG5cbiAgICAgICAgaWYgKHBhcmVudClcbiAgICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGROb2RlLCBkb21Ob2RlKVxuICAgIH1cblxuICAgIGlmIChwYXJlbnQpXG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChkb21Ob2RlKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxZQUFZOztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFiQTtBQUFBO0FBcUJBLFNBQVEsYUFBYSxFQUFFLElBQUk7QUFDM0IsU0FBUSxPQUFPO0FBRWYsT0FBTyxNQUFNLGNBQWMsR0FDdkIsSUFBWSxJQUNMO0VBQ1AsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDcEQsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJO0VBRS9CLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztJQUN0QztBQUNSO0FBQ0E7QUFDQTtJQUNRLE9BQU8sY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0VBRXZELE9BQU8sY0FBYztBQUN6QixDQUFDO0FBRUQsT0FBTyxNQUFNLElBQUksR0FBRyxDQUNoQixPQUFvQixFQUFF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
143
+ */var unwrap=function unwrap(domNode){var parent=domNode.parentNode;var result=[];// NOTE: We need to use "Array.from" to copy the list.
144
+ for(var _i6=0,_Array$from=Array.from(domNode.childNodes);_i6<_Array$from.length;_i6++){var childNode=_Array$from[_i6];result.push(childNode);if(parent)parent.insertBefore(childNode,domNode)}if(parent)parent.removeChild(domNode);return result};
145
+
146
+ /***/ }),
147
+
148
+ /***/ 4:
149
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
150
+
151
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
152
+ /* harmony export */ Tn: function() { return /* binding */ isFunction; }
153
+ /* harmony export */ });
154
+ /* unused harmony exports isNumeric, isWindow, isArrayLike, isAnyMatching, isObject, isPlainObject, isSet, isMap, isProxy */
155
+ /* unused harmony import specifier */ var PLAIN_OBJECT_PROTOTYPES;
156
+ /* unused harmony import specifier */ var determineType;
157
+ /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
158
+ // #!/usr/bin/env babel-node
159
+ // -*- coding: utf-8 -*-
160
+ /** @module indicators *//* !
161
+ region header
162
+ [Project page](https://torben.website/clientnode)
163
+
164
+ Copyright Torben Sickert (info["~at~"]torben.website) 16.12.2012
165
+
166
+ License
167
+ -------
168
+
169
+ This library written by Torben Sickert stands under a creative commons
170
+ naming 3.0 unported license.
171
+ See https://creativecommons.org/licenses/by/3.0/deed.de
172
+ endregion
173
+ */function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t.return||t.return()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)};/**
174
+ * Determines whether its argument represents a JavaScript number.
175
+ * @param value - Value to analyze.
176
+ * @returns A boolean value indicating whether given object is numeric
177
+ * like.
178
+ */var isNumeric=function isNumeric(value){var type=determineType(value);/*
179
+ NOTE: "parseFloat" "NaNs" numeric-cast false positives ("") but
180
+ misinterprets leading-number strings, particularly hex literals
181
+ ("0x...") subtraction forces infinities to NaN.
182
+ */return["number","string"].includes(type)&&!isNaN(value-parseFloat(value))};/**
183
+ * Determine whether the argument is a window.
184
+ * @param value - Value to check for.
185
+ * @returns Boolean value indicating the result.
186
+ */var isWindow=function isWindow(value){return![null,undefined].includes(value)&&_typeof(value)==="object"&&value===(value===null||value===void 0?void 0:value.window)};/**
187
+ * Checks if given object is similar to an array and can be handled like an
188
+ * array.
189
+ * @param object - Object to check behavior for.
190
+ * @returns A boolean value indicating whether given object is array like.
191
+ */var isArrayLike=function isArrayLike(object){var length;try{length=Boolean(object)&&object.length}catch(_unused){return false}var type=determineType(object);if(type==="function"||isWindow(object))return false;if(type==="array"||length===0)return true;if(typeof length==="number"&&length>0)try{var _dump=object[length-1];return true}catch(_unused2){// Continue regardless of an error.
192
+ }return false};/**
193
+ * Checks whether one of the given pattern matches given string.
194
+ * @param target - Target to check in pattern for.
195
+ * @param pattern - List of pattern to check for.
196
+ * @returns Value "true" if given object is matches by at leas one of the
197
+ * given pattern and "false" otherwise.
198
+ */var isAnyMatching=function isAnyMatching(target,pattern){var _iterator=_createForOfIteratorHelper(pattern),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var currentPattern=_step.value;if(typeof currentPattern==="string"){if(currentPattern===target)return true}else if(currentPattern.test(target))return true}}catch(err){_iterator.e(err)}finally{_iterator.f()}return false};/**
199
+ * Checks whether given object is a native object but not null.
200
+ * @param value - Value to check.
201
+ * @returns Value "true" if given object is a plain javaScript object and
202
+ * "false" otherwise.
203
+ */var isObject=function isObject(value){return value!==null&&_typeof(value)==="object"};/**
204
+ * Checks whether given object is a plain native object.
205
+ * @param value - Value to check.
206
+ * @returns Value "true" if given object is a plain javaScript object and
207
+ * "false" otherwise.
208
+ */var isPlainObject=function isPlainObject(value){var _prototype$constructo;if(!isObject(value))return false;var prototype=Object.getPrototypeOf(value);if(PLAIN_OBJECT_PROTOTYPES.includes(prototype))return true;/*
209
+ NOTE: Plain objects created in another realm (a vm context like used by
210
+ test runners or a worker for example) have their own "Object.prototype"
211
+ instance and would not be recognized by the identity check above.
212
+ */return prototype!==null&&Object.getPrototypeOf(prototype)===null&&((_prototype$constructo=prototype.constructor)===null||_prototype$constructo===void 0?void 0:_prototype$constructo.name)==="Object"};/**
213
+ * Checks whether given object is a set.
214
+ * @param value - Value to check.
215
+ * @returns Value "true" if given object is a set and "false" otherwise.
216
+ */var isSet=function isSet(value){return determineType(value)==="set"};/**
217
+ * Checks whether given object is a map.
218
+ * @param value - Value to check.
219
+ * @returns Value "true" if given object is a map and "false" otherwise.
220
+ */var isMap=function isMap(value){return determineType(value)==="map"};/**
221
+ * Checks whether given object is a proxy.
222
+ * @param value - Value to check.
223
+ * @returns Value "true" if given object is a proxy and "false" otherwise.
224
+ */var isProxy=function isProxy(value){return Boolean(value.__target__)};/**
225
+ * Checks whether given object is a function.
226
+ * @param value - Value to check.
227
+ * @returns Value "true" if given object is a function and "false"
228
+ * otherwise.
229
+ */var isFunction=function isFunction(value){return Boolean(value)&&["[object AsyncFunction]","[object Function]"].includes({}.toString.call(value))};
230
+
231
+ /***/ }),
232
+
233
+ /***/ 2:
234
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
235
+
236
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
237
+ /* harmony export */ I5: function() { return /* binding */ optionalRequire; },
238
+ /* harmony export */ Sw: function() { return /* binding */ optionalImport; },
239
+ /* harmony export */ a8: function() { return /* binding */ determineGlobalContext; }
240
+ /* harmony export */ });
241
+ /* unused harmony exports isImportSyntaxSupported, currentRequire, setOptionalRequire, getCurrentRequire, clearRequireCache, isolatedRequire */
242
+ /* module decorator */ module = __webpack_require__.hmd(module);
243
+ // #!/usr/bin/env babel-node
244
+ // -*- coding: utf-8 -*-
245
+ /** @module module *//* !
246
+ region header
247
+ [Project page](https://torben.website/clientnode)
248
+
249
+ Copyright Torben Sickert (info["~at~"]torben.website) 16.12.2012
250
+
251
+ License
252
+ -------
253
+
254
+ This library written by Torben Sickert stands under a creative commons
255
+ naming 3.0 unported license.
256
+ See https://creativecommons.org/licenses/by/3.0/deed.de
257
+ endregion
258
+ */function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof Generator?n:Generator,u=Object.create(c.prototype);return _regeneratorDefine2(u,"_invoke",function(r,n,o){var i,c,u,f=0,p=o||[],y=!1,G={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function d(t,r){return i=t,c=0,u=e,G.n=r,a}};function d(r,n){for(c=r,u=n,t=0;!y&&f&&!o&&t<p.length;t++){var o,i=p[t],d=G.p,l=i[2];r>3?(o=l===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(c=0,G.v=n,G.n=i[1]):d<l&&(o=r<3||i[0]>n||n>l)&&(i[4]=r,i[5]=n,G.n=l,c=0))}if(o||r>1)return a;throw y=!0,n}return function(o,p,l){if(f>1)throw TypeError("Generator is already running");for(y&&1===p&&d(p,l),c=p,u=l;(t=c<2?e:u)||!y;){i||(c?c<3?(c>1&&(G.n=-1),d(c,u)):G.n=u:G.v=u);try{if(f=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(y=G.n<0)?u:r.call(n,G))!==a)break}catch(t){i=e,c=1,u=t}finally{f=1}}return{value:t,done:y}}}(r,o,i),!0),u}var a={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(_regeneratorDefine2(t={},n,function(){return this}),t),u=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(c);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,GeneratorFunctionPrototype):(e.__proto__=GeneratorFunctionPrototype,_regeneratorDefine2(e,o,"GeneratorFunction")),e.prototype=Object.create(u),e}return GeneratorFunction.prototype=GeneratorFunctionPrototype,_regeneratorDefine2(u,"constructor",GeneratorFunctionPrototype),_regeneratorDefine2(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName="GeneratorFunction",_regeneratorDefine2(GeneratorFunctionPrototype,o,"GeneratorFunction"),_regeneratorDefine2(u),_regeneratorDefine2(u,o,"Generator"),_regeneratorDefine2(u,n,function(){return this}),_regeneratorDefine2(u,"toString",function(){return"[object Generator]"}),(_regenerator=function _regenerator(){return{w:i,m:f}})()}function _regeneratorDefine2(e,r,n,t){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}_regeneratorDefine2=function _regeneratorDefine(e,r,n,t){function o(r,n){_regeneratorDefine2(e,r,function(e){return this._invoke(r,n,e)})}r?i?i(e,r,{value:n,enumerable:!t,configurable:!t,writable:!t}):e[r]=n:(o("next",0),o("throw",1),o("return",2))},_regeneratorDefine2(e,r,n,t)}function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value}catch(n){return void e(n)}i.done?t(u):Promise.resolve(u).then(r,o)}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise(function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n)}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n)}_next(void 0)})}}var determineGlobalContext=function determineGlobalContext(){if(typeof globalThis==="undefined"){if(typeof window==="undefined"){if(typeof __webpack_require__.g==="undefined")return false?0:module;if(Object.prototype.hasOwnProperty.call(__webpack_require__.g,"window"))return __webpack_require__.g.window;return __webpack_require__.g}return window}return globalThis};var globalContext=determineGlobalContext();var isImportSyntaxSupported=function isImportSyntaxSupported(){try{// eslint-disable-next-line @typescript-eslint/no-implied-eval
259
+ new Function("import(\"data:text/javascript,\")");return true}catch(_unused){return false}};var currentRequire=typeof globalContext.require==="undefined"?null:globalContext.require;var optionalRequire;var setOptionalRequire=function setOptionalRequire(localCurrentRequire){optionalRequire=function optionalRequire(id){try{return localCurrentRequire?localCurrentRequire(id):null}catch(_unused2){return null}}};setOptionalRequire(currentRequire);// Make preprocessed require function available at runtime.
260
+ var getCurrentRequire=/*#__PURE__*/(/* unused pure expression or super */ null && (function(){var _getCurrentRequire=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(){var _yield$Function,createRequire,_t;return _regenerator().w(function(_context){while(1)switch(_context.p=_context.n){case 0:if(!currentRequire){_context.n=1;break}return _context.a(2,currentRequire);case 1:_context.p=1;_context.n=2;return new Function("return import(\"node:module\")")();case 2:_yield$Function=_context.v;createRequire=_yield$Function.createRequire;/*
261
+ eslint-enable
262
+ @typescript-eslint/no-implied-eval,
263
+ @typescript-eslint/no-unsafe-call
264
+ */// eslint-disable-next-line @typescript-eslint/no-unsafe-call
265
+ currentRequire=createRequire("file:///__w/clientnode/clientnode/src/module.ts");setOptionalRequire(currentRequire);return _context.a(2,currentRequire);case 3:_context.p=3;_t=_context.v;console.error(_t);return _context.a(2,null)}},_callee,null,[[1,3]])}));function getCurrentRequire(){return _getCurrentRequire.apply(this,arguments)}return getCurrentRequire}()));var clearRequireCache=function clearRequireCache(cache){if(cache===void 0){var _currentRequire;cache=((_currentRequire=currentRequire)===null||_currentRequire===void 0?void 0:_currentRequire.cache)||__webpack_require__.c}var backup={};for(var _i=0,_Object$entries=Object.entries(cache);_i<_Object$entries.length;_i++){var _Object$entries$_i=_slicedToArray(_Object$entries[_i],2),key=_Object$entries$_i[0],_module=_Object$entries$_i[1];backup[key]=_module;delete cache[key]}return backup};var restoreRequireCache=function restoreRequireCache(cache,backup){if(cache===void 0){var _currentRequire2;cache=((_currentRequire2=currentRequire)===null||_currentRequire2===void 0?void 0:_currentRequire2.cache)||__webpack_require__.c}clearRequireCache();for(var _i2=0,_Object$entries2=Object.entries(backup);_i2<_Object$entries2.length;_i2++){var _Object$entries2$_i=_slicedToArray(_Object$entries2[_i2],2),key=_Object$entries2$_i[0],_module2=_Object$entries2$_i[1];cache[key]=_module2}};var isolatedRequire=function isolatedRequire(path,requireFunction){if(requireFunction===void 0){requireFunction=currentRequire||__webpack_require__(6)}var backup=clearRequireCache(requireFunction.cache);try{return requireFunction(path);// eslint-disable-next-line no-useless-catch
266
+ }catch(error){throw error}finally{restoreRequireCache(requireFunction.cache,backup)}};var optionalImport=/*#__PURE__*/function(){var _optionalImport=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(id,options){var _t2,_t3;return _regenerator().w(function(_context2){while(1)switch(_context2.p=_context2.n){case 0:if(options===void 0){options={}}_context2.p=1;if(!isImportSyntaxSupported()){_context2.n=3;break}_context2.n=2;return new Function("options","return import('".concat(id,"', options)"))(options);case 2:_t2=_context2.v;_context2.n=5;break;case 3:_context2.n=4;return Promise.resolve(null);case 4:_t2=_context2.v;case 5:return _context2.a(2,_t2);case 6:_context2.p=6;_t3=_context2.v;_context2.n=7;return Promise.resolve(null);case 7:return _context2.a(2,_context2.v)}},_callee2,null,[[1,6]])}));function optionalImport(_x,_x2){return _optionalImport.apply(this,arguments)}return optionalImport}();
267
+
268
+ /***/ }),
269
+
270
+ /***/ 13:
271
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
272
+
273
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
274
+ /* harmony export */ wR: function() { return /* binding */ timeout; }
275
+ /* harmony export */ });
276
+ /* unused harmony exports trailingThrottle, debounce, preventDefault, stopPropagation */
277
+ /* harmony import */ var _context_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
278
+ /* harmony import */ var _indicators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4);
279
+ // #!/usr/bin/env babel-node
280
+ // -*- coding: utf-8 -*-
281
+ /** @module utility *//* !
282
+ region header
283
+ [Project page](https://torben.website/clientnode)
284
+
285
+ Copyright Torben Sickert (info["~at~"]torben.website) 16.12.2012
286
+
287
+ License
288
+ -------
289
+
290
+ This library written by Torben Sickert stands under a creative commons
291
+ naming 3.0 unported license.
292
+ See https://creativecommons.org/licenses/by/3.0/deed.de
293
+ endregion
294
+ */function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n};/**
295
+ * Prevents event functions from triggering too often by defining a minimal
296
+ * span between each function call. Additional arguments given to this function
297
+ * will be forwarded to the given event function call.
298
+ * @param callback - The function to call debounced.
299
+ * @param thresholdInMilliseconds - The minimum time span between each
300
+ * function call.
301
+ * @param additionalArguments - Additional arguments to forward to given
302
+ * function.
303
+ * @returns Returns the wrapped method.
304
+ */var trailingThrottle=function trailingThrottle(callback,thresholdInMilliseconds){if(thresholdInMilliseconds===void 0){thresholdInMilliseconds=600}for(var _len=arguments.length,additionalArguments=new Array(_len>2?_len-2:0),_key=2;_key<_len;_key++){additionalArguments[_key-2]=arguments[_key]}var timeoutID=null;var recentParameters=[];return function(){for(var _len2=arguments.length,parameters=new Array(_len2),_key2=0;_key2<_len2;_key2++){parameters[_key2]=arguments[_key2]}recentParameters=parameters;if(timeoutID)return;timeoutID=setTimeout(function(){callback.apply(void 0,_toConsumableArray(recentParameters).concat(additionalArguments));// Reset for next cycle.
305
+ timeoutID=null;recentParameters=[]},thresholdInMilliseconds)}};/**
306
+ * Prevents event functions from triggering too close after each trigger by
307
+ * defining a minimal span between each function call. Additional arguments
308
+ * given to this function will be forwarded to the given event function call.
309
+ * @param callback - The function to call debounced.
310
+ * @param thresholdInMilliseconds - The minimum time span between each
311
+ * function call.
312
+ * @param additionalArguments - Additional arguments to forward to given
313
+ * function.
314
+ * @returns Returns the wrapped method.
315
+ */var debounce=function debounce(callback,thresholdInMilliseconds){if(thresholdInMilliseconds===void 0){thresholdInMilliseconds=600}for(var _len3=arguments.length,additionalArguments=new Array(_len3>2?_len3-2:0),_key3=2;_key3<_len3;_key3++){additionalArguments[_key3-2]=arguments[_key3]}var timeoutPromise;var nextResultPromiseResolver;var nextResultPromise=new Promise(function(resolve){nextResultPromiseResolver=resolve});return function(){var _timeoutPromise;for(var _len4=arguments.length,parameters=new Array(_len4),_key4=0;_key4<_len4;_key4++){parameters[_key4]=arguments[_key4]}parameters=parameters.concat(additionalArguments);(_timeoutPromise=timeoutPromise)===null||_timeoutPromise===void 0||_timeoutPromise.clear();timeoutPromise=timeout(function(){nextResultPromiseResolver(callback.apply(void 0,_toConsumableArray(parameters)));nextResultPromise=new Promise(function(resolve){nextResultPromiseResolver=resolve})},thresholdInMilliseconds);return nextResultPromise}};/**
316
+ * Triggers given callback after given duration. Supports unlimited
317
+ * duration length and returns a promise which will be resolved after given
318
+ * duration has been passed.
319
+ * @param parameters - Observes the first three existing parameters. If one
320
+ * is a number it will be interpreted as delay in milliseconds until given
321
+ * callback will be triggered. If one is of type function it will be used
322
+ * as callback and if one is of type boolean it will indicate if returning
323
+ * promise should be rejected or resolved if given internally created
324
+ * timeout should be canceled. Additional parameters will be forwarded to
325
+ * given callback.
326
+ * @returns A promise resolving after given delay or being rejected if
327
+ * value "true" is within one of the first three parameters. The promise
328
+ * holds a boolean indicating whether timeout has been canceled or
329
+ * resolved.
330
+ */var timeout=function timeout(){for(var _len5=arguments.length,parameters=new Array(_len5),_key5=0;_key5<_len5;_key5++){parameters[_key5]=arguments[_key5]}var callback=_context_js__WEBPACK_IMPORTED_MODULE_0__/* .NOOP */ .tE;var delayInMilliseconds=0;var throwOnTimeoutClear=false;for(var _i=0,_parameters=parameters;_i<_parameters.length;_i++){var value=_parameters[_i];if(typeof value==="number"&&!isNaN(value))delayInMilliseconds=value;else if(typeof value==="boolean")throwOnTimeoutClear=value;else if((0,_indicators_js__WEBPACK_IMPORTED_MODULE_1__/* .isFunction */ .Tn)(value))callback=value}var rejectCallback;var resolveCallback;var result=new Promise(function(resolve,reject){rejectCallback=reject;resolveCallback=resolve});var wrappedCallback=function wrappedCallback(){var _callback;(_callback=callback).call.apply(_callback,[result].concat(parameters));resolveCallback(false)};var maximumTimeoutDelayInMilliseconds=2147483647;if(delayInMilliseconds<=maximumTimeoutDelayInMilliseconds)result.timeoutID=setTimeout(wrappedCallback,delayInMilliseconds);else{/*
331
+ Determine the number of times we need to delay by maximum
332
+ possible timeout duration.
333
+ */var numberOfRemainingTimeouts=Math.floor(delayInMilliseconds/maximumTimeoutDelayInMilliseconds);var finalTimeoutDuration=delayInMilliseconds%maximumTimeoutDelayInMilliseconds;var _delay=function delay(){if(numberOfRemainingTimeouts>0){numberOfRemainingTimeouts-=1;result.timeoutID=setTimeout(_delay,maximumTimeoutDelayInMilliseconds)}else result.timeoutID=setTimeout(wrappedCallback,finalTimeoutDuration)};_delay()}result.clear=function(){if(Object.prototype.hasOwnProperty.call(result,"timeoutID")){clearTimeout(result.timeoutID);(throwOnTimeoutClear?rejectCallback:resolveCallback)(true)}};return result};var preventDefault=function preventDefault(event){event.preventDefault()};var stopPropagation=function stopPropagation(event){event.stopPropagation()};
334
+
335
+ /***/ }),
336
+
337
+ /***/ 6:
338
+ /***/ (function(module) {
339
+
340
+ function webpackEmptyContext(req) {
341
+ var e = new Error("Cannot find module '" + req + "'");
342
+ e.code = 'MODULE_NOT_FOUND';
343
+ throw e;
344
+ }
345
+ webpackEmptyContext.keys = function() { return []; };
346
+ webpackEmptyContext.resolve = webpackEmptyContext;
347
+ webpackEmptyContext.id = 6;
348
+ module.exports = webpackEmptyContext;
349
+
350
+ /***/ }),
351
+
352
+ /***/ 0:
353
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
354
+
355
+ var x = function(y) {
356
+ var x = {}; __webpack_require__.d(x, y); return x
357
+ }
358
+ var y = function(x) { return function() { return x; }; }
359
+ module.exports = x({ });
360
+
361
+ /***/ })
362
+
363
+ /******/ });
364
+ /************************************************************************/
365
+ /******/ // The module cache
366
+ /******/ var __webpack_module_cache__ = {};
367
+ /******/
368
+ /******/ // The require function
369
+ /******/ function __webpack_require__(moduleId) {
370
+ /******/ // Check if module is in cache
371
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
372
+ /******/ if (cachedModule !== undefined) {
373
+ /******/ return cachedModule.exports;
374
+ /******/ }
375
+ /******/ // Create a new module (and put it into the cache)
376
+ /******/ var module = __webpack_module_cache__[moduleId] = {
377
+ /******/ id: moduleId,
378
+ /******/ loaded: false,
379
+ /******/ exports: {}
380
+ /******/ };
381
+ /******/
382
+ /******/ // Execute the module function
383
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
384
+ /******/
385
+ /******/ // Flag the module as loaded
386
+ /******/ module.loaded = true;
387
+ /******/
388
+ /******/ // Return the exports of the module
389
+ /******/ return module.exports;
390
+ /******/ }
391
+ /******/
392
+ /******/ // expose the module cache
393
+ /******/ __webpack_require__.c = __webpack_module_cache__;
394
+ /******/
395
+ /************************************************************************/
396
+ /******/ /* webpack/runtime/define property getters */
397
+ /******/ !function() {
398
+ /******/ // define getter/value functions for harmony exports
399
+ /******/ __webpack_require__.d = function(exports, definition) {
400
+ /******/ if(Array.isArray(definition)) {
401
+ /******/ var i = 0;
402
+ /******/ while(i < definition.length) {
403
+ /******/ var key = definition[i++];
404
+ /******/ var binding = definition[i++];
405
+ /******/ if(!__webpack_require__.o(exports, key)) {
406
+ /******/ if(binding === 0) {
407
+ /******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
408
+ /******/ } else {
409
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
410
+ /******/ }
411
+ /******/ } else if(binding === 0) { i++; }
412
+ /******/ }
413
+ /******/ } else {
414
+ /******/ for(var key in definition) {
415
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
416
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
417
+ /******/ }
418
+ /******/ }
419
+ /******/ }
420
+ /******/ };
421
+ /******/ }();
422
+ /******/
423
+ /******/ /* webpack/runtime/global */
424
+ /******/ !function() {
425
+ /******/ __webpack_require__.g = (function() {
426
+ /******/ if (typeof globalThis === 'object') return globalThis;
427
+ /******/ try {
428
+ /******/ return this || new Function('return this')();
429
+ /******/ } catch (e) {
430
+ /******/ if (typeof window === 'object') return window;
431
+ /******/ }
432
+ /******/ })();
433
+ /******/ }();
434
+ /******/
435
+ /******/ /* webpack/runtime/harmony module decorator */
436
+ /******/ !function() {
437
+ /******/ __webpack_require__.hmd = function(module) {
438
+ /******/ module = Object.create(module);
439
+ /******/ if (!module.children) module.children = [];
440
+ /******/ Object.defineProperty(module, 'exports', {
441
+ /******/ enumerable: true,
442
+ /******/ set: function() {
443
+ /******/ throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);
444
+ /******/ }
445
+ /******/ });
446
+ /******/ return module;
447
+ /******/ };
448
+ /******/ }();
449
+ /******/
450
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
451
+ /******/ !function() {
452
+ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
453
+ /******/ }();
454
+ /******/
455
+ /************************************************************************/
456
+ /******/
457
+ /******/ // module cache are used so entry inlining is disabled
458
+ /******/ // startup
459
+ /******/ // Load entry module and return exports
460
+ /******/ var __webpack_exports__ = __webpack_require__(25);
461
+ /******/ var __webpack_exports__MANUAL_SCROLL_EVENT_NAMES = __webpack_exports__.ZQ;
462
+ /******/ var __webpack_exports__SCROLL_EVENT_NAMES = __webpack_exports__.S;
463
+ /******/ var __webpack_exports__STOP_AUTO_SCROLLING = __webpack_exports__.D7;
464
+ /******/ var __webpack_exports__closest = __webpack_exports__.kp;
465
+ /******/ var __webpack_exports__createDomNodes = __webpack_exports__.C_;
466
+ /******/ var __webpack_exports__fade = __webpack_exports__.Rv;
467
+ /******/ var __webpack_exports__fadeIn = __webpack_exports__.qG;
468
+ /******/ var __webpack_exports__fadeOut = __webpack_exports__.Xn;
469
+ /******/ var __webpack_exports__getAll = __webpack_exports__.UK;
470
+ /******/ var __webpack_exports__getParents = __webpack_exports__.wT;
471
+ /******/ var __webpack_exports__getText = __webpack_exports__.q4;
472
+ /******/ var __webpack_exports__interruptableScrollTo = __webpack_exports__.Cc;
473
+ /******/ var __webpack_exports__isEquivalent = __webpack_exports__.l2;
474
+ /******/ var __webpack_exports__isHidden = __webpack_exports__.dK;
475
+ /******/ var __webpack_exports__onDocumentReady = __webpack_exports__.qq;
476
+ /******/ var __webpack_exports__replace = __webpack_exports__.HC;
477
+ /******/ var __webpack_exports__scrollTo = __webpack_exports__.VG;
478
+ /******/ var __webpack_exports__unwrap = __webpack_exports__.oA;
479
+ /******/ var __webpack_exports__wrap = __webpack_exports__.LV;
480
+ /******/ export { __webpack_exports__MANUAL_SCROLL_EVENT_NAMES as MANUAL_SCROLL_EVENT_NAMES, __webpack_exports__SCROLL_EVENT_NAMES as SCROLL_EVENT_NAMES, __webpack_exports__STOP_AUTO_SCROLLING as STOP_AUTO_SCROLLING, __webpack_exports__closest as closest, __webpack_exports__createDomNodes as createDomNodes, __webpack_exports__fade as fade, __webpack_exports__fadeIn as fadeIn, __webpack_exports__fadeOut as fadeOut, __webpack_exports__getAll as getAll, __webpack_exports__getParents as getParents, __webpack_exports__getText as getText, __webpack_exports__interruptableScrollTo as interruptableScrollTo, __webpack_exports__isEquivalent as isEquivalent, __webpack_exports__isHidden as isHidden, __webpack_exports__onDocumentReady as onDocumentReady, __webpack_exports__replace as replace, __webpack_exports__scrollTo as scrollTo, __webpack_exports__unwrap as unwrap, __webpack_exports__wrap as wrap };
481
+ /******/