{"version":3,"file":"alpacaExtensions.js?112422025","mappings":"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","sources":["webpack:///webpack/runtime/load script","webpack:///../../../node_modules/assert/build/assert.js","webpack:///../../../node_modules/assert/build/internal/assert/assertion_error.js","webpack:///../../../node_modules/assert/build/internal/errors.js","webpack:///../../../node_modules/assert/build/internal/util/comparisons.js","webpack:///../../../node_modules/call-bind/callBound.js","webpack:///../../../node_modules/call-bind/index.js","webpack:///../../../node_modules/console-browserify/index.js","webpack:///../../../node_modules/define-data-property/index.js","webpack:///../../../node_modules/define-properties/index.js","webpack:///../../../node_modules/es-define-property/index.js","webpack:///../../../node_modules/es-errors/eval.js","webpack:///../../../node_modules/es-errors/index.js","webpack:///../../../node_modules/es-errors/range.js","webpack:///../../../node_modules/es-errors/ref.js","webpack:///../../../node_modules/es-errors/syntax.js","webpack:///../../../node_modules/es-errors/type.js","webpack:///../../../node_modules/es-errors/uri.js","webpack:///../../../node_modules/for-each/index.js","webpack:///../../../node_modules/function-bind/implementation.js","webpack:///../../../node_modules/function-bind/index.js","webpack:///../../../node_modules/get-intrinsic/index.js","webpack:///../../../node_modules/gopd/index.js","webpack:///../../../node_modules/has-property-descriptors/index.js","webpack:///../../../node_modules/has-proto/index.js","webpack:///../../../node_modules/has-symbols/index.js","webpack:///../../../node_modules/has-symbols/shams.js","webpack:///../../../node_modules/has-tostringtag/shams.js","webpack:///../../../node_modules/hasown/index.js","webpack:///../../../node_modules/inherits/inherits_browser.js","webpack:///../../../node_modules/is-arguments/index.js","webpack:///../../../node_modules/is-callable/index.js","webpack:///../../../node_modules/is-generator-function/index.js","webpack:///../../../node_modules/is-nan/implementation.js","webpack:///../../../node_modules/is-nan/index.js","webpack:///../../../node_modules/is-nan/polyfill.js","webpack:///../../../node_modules/is-nan/shim.js","webpack:///../../../node_modules/is-typed-array/index.js","webpack:///../../../node_modules/object-is/implementation.js","webpack:///../../../node_modules/object-is/index.js","webpack:///../../../node_modules/object-is/polyfill.js","webpack:///../../../node_modules/object-is/shim.js","webpack:///../../../node_modules/object-keys/implementation.js","webpack:///../../../node_modules/object-keys/index.js","webpack:///../../../node_modules/object-keys/isArguments.js","webpack:///../../../node_modules/object.assign/implementation.js","webpack:///../../../node_modules/object.assign/polyfill.js","webpack:///../../../node_modules/possible-typed-array-names/index.js","webpack:///../../../node_modules/process/browser.js","webpack:///../../../node_modules/set-function-length/index.js","webpack:///./ClassWithTracking/helpers.ts","webpack:///./alpaca-extensions/modules/AlpacaExtension.ts","webpack:///./alpaca-extensions/modules/PhotoTin.ts","webpack:///./alpaca-extensions/modules/PhotoTinMipMap.ts","webpack:///./alpaca-extensions/modules/PhotoTinMipMapLevel.ts","webpack:///./helpers/DOMHelpers.ts","webpack:///./helpers/helperFunctions.ts","webpack:///../../../node_modules/util/support/isBufferBrowser.js","webpack:///../../../node_modules/util/support/types.js","webpack:///../../../node_modules/util/util.js","webpack:///../../../node_modules/which-typed-array/index.js","webpack:///./alpaca-extensions/modules/ sync ^\\.\\/.*\\.ts$","webpack:///../../../node_modules/available-typed-arrays/index.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","webpack:///./alpaca-extensions/index.ts"],"sourcesContent":["var inProgress = {};\n// data-webpack is not used as build has no uniqueName\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction _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); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\nvar AssertionError = require('./internal/assert/assertion_error');\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\nvar objectAssign = require('object.assign/polyfill')();\nvar objectIs = require('object-is/polyfill')();\nvar RegExpPrototypeTest = require('call-bind/callBound')('RegExp.prototype.test');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n}\n\n// Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\nvar warned = false;\n\n// The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {};\n\n// All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n if (argsLen === 2) operator = '!=';\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== undefined) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n}\nassert.fail = fail;\n\n// The AssertionError is defined in internal/error.\nassert.AssertionError = AssertionError;\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\n\n// Pure assertion tests whether a value is truthy, as determined\n// by !!value.\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\nassert.ok = ok;\n\n// The equality assertion tests shallow, coercive equality with ==.\n/* eslint-disable no-restricted-properties */\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n};\n\n// The non-equality assertion tests for whether two objects are not\n// equal with !=.\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n};\n\n// The equivalence assertion tests a deep equality relation.\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n};\n\n// The non-equivalence assertion tests for any deep inequality.\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\nvar Comparison = /*#__PURE__*/_createClass(function Comparison(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison);\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n});\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n // assert.doesNotThrow does not accept objects.\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n }\n\n // Handle primitives properly.\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n // Special handle errors to make sure the name and the message are compared\n // as well.\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n // Guard instanceof against arrow functions as they don't have a prototype.\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n}\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n}\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn();\n // Fail in case no promise is returned.\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n throw actual;\n}\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n });\n\n // Make sure we actually have a stack trace!\n var origStack = err.stack;\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift();\n // Filter all frames existing in err.stack.\n var tmp1 = newErr.stack.split('\\n');\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n throw newErr;\n }\n};\n\n// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a871df3dfb8ea663ef5e1f8f62701ec51384ecb\nfunction internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE('regexp', 'RegExp', regexp);\n }\n var match = fnName === 'match';\n if (typeof string !== 'string' || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n\n // 'The input was expected to not match the regular expression ' +\n message = message || (typeof string !== 'string' ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? 'The input did not match the regular expression ' : 'The input was expected to not match the regular expression ') + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message: message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\nassert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, 'match');\n};\nassert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, 'doesNotMatch');\n};\n\n// Expose a strict only variant of assert\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n\n'use strict';\n\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _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); }\nvar _require = require('util/'),\n inspect = _require.inspect;\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nvar kMaxShortLength = 10;\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = '';\n\n // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n }\n\n // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n // Ignore the first characters.\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n }\n\n // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n');\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the expected line to the cache.\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine);\n // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = '';\n // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n // Inspected object to big (Show ~20 rows max)\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\nvar AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {\n _inherits(AssertionError, _Error);\n var _super = _createSuper(AssertionError);\n function AssertionError(options) {\n var _this;\n _classCallCheck(this, AssertionError);\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n }\n // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n');\n\n // In case \"actual\" is an object, it should not be reference equal.\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n\n // Only print a single input.\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = '';\n var knownOperators = kReadableOperator[operator];\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n // Create error message including the error code in the name.\n _this.stack;\n // Reset the name.\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError;\n}( /*#__PURE__*/_wrapNativeSuper(Error), inspect.custom);\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n/* eslint node-core/alphabetize-errors: \"error\" */\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\nfunction _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); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar codes = {};\n\n// Lazy loaded\nvar assert;\nvar util;\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n var _super = _createSuper(NodeError);\n function NodeError(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError);\n }(Base);\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\");\n\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n // TODO(BridgeAR): Improve the output by showing `null` and similar.\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _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.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _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; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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); }\nvar regexFlagsSupported = /a/g.flags !== undefined;\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n // The maximum size for an array is 2 ** 32 -1.\n return key.length === 10 && key >= Math.pow(2, 32);\n}\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n}\n\n// Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3;\n\n// Check if they have the same source and flags\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n}\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n}\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n\n // The pair must have the same number of owned properties.\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n\n // Use memos to handle cycles.\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n return false;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n case 'object':\n // Only pass in null as object!\n return undefined;\n case 'symbol':\n return false;\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n}\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n }\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n}\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n _key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n if (_typeof(_key) === 'object' && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n}\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = toObject(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = toObject(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @typedef {(...args: unknown[]) => unknown} Func */\n\n/** @type {(fn: T, length: number, loose?: boolean) => T} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","/// \r\n\r\nexport async function trackPurchase(cartState: any, orderId: string) {\r\n cartState = JSON.parse(cartState);\r\n const countryCode = dataLayer[0].pageCountry;\r\n const { AmountToPayDecimal, DeliveryCostDecimal, TotalTaxDecimal, CurrencyCode } = cartState.Summary;\r\n const coupon: string = cartState.Promotions.length > 0 ? cartState.Promotions.map(a => `${Object.values(a).join(', ')}`).join(', ') : '';\r\n const brand: string = dataLayer[0].hasOwnProperty('brand') ? dataLayer[0].brand : 'Nivea';\r\n\r\n const products = cartState.Items.map((item) => {\r\n const coupon: string = item.Promotions.length > 0 ? item.Promotions.join(', ') : '';\r\n const category: string = !!item.Category ? item.Category : '';\r\n\r\n let cartItemTrackObj = {\r\n 'name': item.ProductName,\r\n 'id': item.ProductId,\r\n 'price': getPriceValue(item.ProductPrice),\r\n 'brand': brand,\r\n 'category': category,\r\n 'variant': item.ProductSize,\r\n 'quantity': item.Quantity,\r\n 'coupon': coupon,\r\n }\r\n\r\n return cartItemTrackObj;\r\n });\r\n\r\n dataLayer.push({\r\n event: 'purchase',\r\n currencyCode: CurrencyCode,\r\n ecommerce: {\r\n purchase: {\r\n actionField: {\r\n id: orderId,\r\n affiliation: 'eShop ' + countryCode,\r\n revenue: AmountToPayDecimal,\r\n tax: TotalTaxDecimal,\r\n shipping: DeliveryCostDecimal,\r\n coupon: coupon,\r\n },\r\n products,\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function trackPhototinUpload() {\r\n dataLayer.push({\r\n event: 'ga_event',\r\n eventCategory: 'Make It Yours',\r\n eventAction: 'Photo Upload'\r\n });\r\n}\r\n\r\nexport function trackPhototinAddMessage(message) {\r\n dataLayer.push({\r\n event: 'ga_event',\r\n eventCategory: 'Make It Yours',\r\n eventAction: 'Message Selection',\r\n eventLabel: message\r\n });\r\n}\r\n\r\nexport function trackPhototinAddToCart() {\r\n const currencyCode = dataLayer[0].hasOwnProperty('currencyCode') ? dataLayer[0].currencyCode : '',\r\n productNameNode: HTMLElement = document.querySelector('h1.nx-product-stage__headline'),\r\n productName: string = productNameNode !== null ? productNameNode.innerText : '',\r\n addToCartNode: HTMLElement = document.querySelector('.nx-add-to-cart') as HTMLElement,\r\n id: string = addToCartNode.dataset.productId,\r\n productCategory: string = dataLayer[0].hasOwnProperty('category') ? dataLayer[0].category : '',\r\n productVariantNode: HTMLElement = document.querySelector('.nx-product-stage .nx-pas__product-attribute:last-child'),\r\n productVariant: string = productVariantNode !== null ? productVariantNode.innerHTML : '',\r\n price: string = addToCartNode.querySelector('.nx-price').innerHTML,\r\n quantity: string = document.querySelector('.nx-range-dropdown__label-value').textContent;\r\n\r\n dataLayer.push({\r\n event: 'addToCart',\r\n ecommerce: {\r\n currencyCode: currencyCode,\r\n add: {\r\n buttonType: 'AddToCartButton',\r\n products: [{\r\n 'name': productName,\r\n 'id': id,\r\n 'price': getPriceValue(price),\r\n 'brand': 'Nivea',\r\n 'category': productCategory,\r\n 'variant': productVariant,\r\n 'quantity': quantity,\r\n }]\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function trackAlpacaFormsError(form: any) {\r\n let serverSideErrorArray = Array.from(form.querySelectorAll('.server-side-error'));\r\n if (serverSideErrorArray && serverSideErrorArray.length < 1) return;\r\n\r\n let formName: string = form.dataset.name;\r\n let id: string = form.id;\r\n let serverSideErrorMessages = [];\r\n serverSideErrorArray.forEach((element: HTMLElement) => serverSideErrorMessages.push(element.innerHTML));\r\n\r\n dataLayer.push({\r\n event: 'ga_event',\r\n eventCategory: 'Form Error',\r\n eventAction: `${formName} - ${id}`,\r\n eventLabel: serverSideErrorMessages.join()\r\n });\r\n\r\n}\r\n\r\nexport function trackEvent(eventCategory: string, eventAction: string, eventLabel: string, event?: Event): any {\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: eventCategory,\r\n eventAction: eventAction,\r\n eventLabel: eventLabel,\r\n eventNonInteraction: false\r\n });\r\n}\r\n\r\nexport function addLayer(options: DataLayerG4Options): any {\r\n if (typeof window.dataLayer == 'undefined' || !window.dataLayer) {\r\n console.warn(\"dataLayer is not defined or not loaded\");\r\n return;\r\n }\r\n\r\n if (window.dataLayer) window.dataLayer.push(options);\r\n}\r\n\r\nexport function getClickedElementIndex(itemList: NodeListOf, item: HTMLElement): number {\r\n let index: number = Array.from(itemList).indexOf(item);\r\n return index + 1;\r\n}\r\n\r\nexport function getLinkElementHref(event: MouseEvent, selector: string, property: string = 'href') {\r\n let target: HTMLElement = event.target,\r\n element: HTMLAnchorElement = target.closest(selector),\r\n isBlank = (element['target'] == \"_blank\") ? true : false;\r\n\r\n return {\r\n \"isBlank\": isBlank,\r\n \"href\": element[property]\r\n }\r\n}\r\n\r\nexport function trackSliderMovement(eventAction: string, eventLabel: string = '') {\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: 'Teaser',\r\n eventAction: eventAction,\r\n eventLabel: eventLabel.length > 0 ? eventLabel : undefined,\r\n eventNonInteraction: false\r\n });\r\n}\r\n\r\nexport function trackTeaserClick(eventCategory: string, eventAction: string, destinationUrl: any) {\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: eventCategory,\r\n eventAction: eventAction,\r\n eventLabel: destinationUrl.href,\r\n });\r\n\r\n if (!destinationUrl.isBlank) { document.location = destinationUrl.href; }\r\n}\r\n\r\nexport function getActionFieldTracking(item: HTMLElement, checkSliders: boolean = false) {\r\n const isSlider = item.closest('.nx-slider') ? true : false;\r\n let actionFieldValue: string;\r\n if (isSlider && checkSliders) {\r\n actionFieldValue = item.closest('section').querySelector('h2') as HTMLElement ? (item.closest('section').querySelector('h2') as HTMLElement).innerText : ``;\r\n } else {\r\n actionFieldValue = document.querySelector('.nx-breadcrumb__list').lastElementChild as HTMLElement ? (document.querySelector('.nx-breadcrumb__list').lastElementChild as HTMLElement).innerText : ``;\r\n }\r\n return actionFieldValue;\r\n}\r\n\r\nexport function getCurrencyCode(): string {\r\n if (window.dataLayer) return dataLayer[0].hasOwnProperty('currencyCode') ? dataLayer[0].currencyCode : '';\r\n}\r\n\r\nexport function productTeaserTrackingObject(teasers: NodeListOf, attachClickTracking: boolean = false, excludeShownTeasers?: NodeListOf) {\r\n if (!excludeShownTeasers) {\r\n excludeShownTeasers = teasers;\r\n }\r\n\r\n const teasersArray = Object.entries(teasers).map((teaserNode) => {\r\n const name: string = teaserNode[1].getAttribute('data-name') ? teaserNode[1].getAttribute('data-name') : '',\r\n prodId: string = teaserNode[1].getAttribute('data-product-id') ? teaserNode[1].getAttribute('data-product-id') : '',\r\n price: number = teaserNode[1].getAttribute('data-product-price') ? getPriceValue(teaserNode[1].getAttribute('data-product-price')) : undefined,\r\n brand: string = teaserNode[1].getAttribute('data-brand') ? teaserNode[1].getAttribute('data-brand') : '',\r\n category: string = teaserNode[1].getAttribute('data-category') ? teaserNode[1].getAttribute('data-category') : '',\r\n variant: string = teaserNode[1].getAttribute('data-product-variant') ? teaserNode[1].getAttribute('data-product-variant') : '',\r\n position: number = Array.from(excludeShownTeasers).indexOf(teaserNode[1]) + 1,\r\n list: string = getActionFieldTracking(teaserNode[1], true);\r\n\r\n const teaserItemTrackObj = {\r\n 'id': prodId,\r\n 'name': name,\r\n 'brand': brand,\r\n 'category': category,\r\n 'variant': variant,\r\n 'position': position,\r\n 'price': price ? price.toFixed(2) : ''\r\n }\r\n\r\n teaserNode[1].classList.add('nx-product-shown');\r\n\r\n if (attachClickTracking) {\r\n const teaserNodeLink: HTMLElement = teaserNode[1].querySelector('a');\r\n productClickHandler(teaserNodeLink, teaserItemTrackObj, list);\r\n }\r\n\r\n return { ...teaserItemTrackObj, 'list': list };\r\n });\r\n \r\n return teasersArray;\r\n}\r\n\r\nexport function productClickHandler(teaserNodeLink: HTMLElement, product: Object, list: string) {\r\n teaserNodeLink.addEventListener('click', event => {\r\n event.preventDefault();\r\n const url: string = teaserNodeLink.getAttribute('href');\r\n productClickPush(product, list, url);\r\n });\r\n}\r\n\r\nexport function productClickPush(product: Object, list: string, url: any) {\r\n addLayer({\r\n event: 'productClick',\r\n ecommerce: {\r\n click: {\r\n actionField: { 'list': list },\r\n currencyCode: getCurrencyCode(),\r\n products: [product]\r\n }\r\n }\r\n });\r\n\r\n url ? document.location = url : \"\";\r\n}\r\n\r\nexport function floatNumberFromString(element: any) {\r\n const regExpForFloatNumbers = /\\d+(?:.\\d+)?/;\r\n return element.match(regExpForFloatNumbers).join('');\r\n}\r\n\r\nexport function getPriceValue(item: any) {\r\n let price = floatNumberFromString(item);\r\n price = price.replace(/,/g, \".\");\r\n\r\n return parseFloat(price);\r\n}\r\n\r\nexport function hasDataTracking(data) {\r\n if (data.tracking) {\r\n trackData(data.tracking)\r\n }\r\n}\r\n\r\nexport function trackData(trakingList) {\r\n if (!trakingList) return;\r\n\r\n trakingList.forEach(item => {\r\n const triggerOption = item.Ttrigger;\r\n switch (triggerOption) {\r\n case \"FormSubmitted\":\r\n addLayer(item.Tevent);\r\n break;\r\n default:\r\n console.log(\"No tracking set up for this event \" + triggerOption + \".\");\r\n }\r\n })\r\n\r\n}\r\n\r\n\r\n\r\n","interface IAlpacaExtension {\r\n init(...args: any[]): any;\r\n getFieldValue(...args: any[]): any;\r\n}\r\n\r\nexport default class AlpacaExtension implements IAlpacaExtension {\r\n static extName: string = '';\r\n \r\n static setup(selector: string = `[data-alpaca-ext=\"${this.extName}\"]`): void {\r\n Array.from(document.querySelectorAll(selector))\r\n .filter((node: HTMLElement) => !node.dataset.alpacaExtInitialized)\r\n .forEach((element: HTMLElement) => {\r\n new this(element); // \"this\" is a Class\r\n element.dataset.alpacaExtInitialized = \"true\";\r\n });\r\n }\r\n\r\n constructor(protected element: HTMLElement) {\r\n const alpacaListener = window.NiveaX.AlpacaListener;\r\n let initSub, readySub;\r\n\r\n if (!alpacaListener) return;\r\n\r\n // First and only one event on Alpaca init\r\n const onAlpacaInit = ({ detail: { form }}: AlpacaEvent) => {\r\n form.getFieldValuePipeline.push((args: ValidatorArgs) => this.getFieldValue(args));\r\n initSub && initSub.unsubscribe('init', onAlpacaInit);\r\n }\r\n initSub = alpacaListener.subscribe('init', onAlpacaInit);\r\n\r\n // Next events on Alpaca Froms are ready\r\n const onAlpacaFromReady = (event: AlpacaEvent) => {\r\n requestAnimationFrame(() => this.init());\r\n readySub && readySub.unsubscribe('ready', onAlpacaFromReady);\r\n };\r\n readySub = alpacaListener.subscribe('ready', onAlpacaFromReady);\r\n }\r\n\r\n // method to initialize all nodes and event listeners for current instance\r\n init() {}\r\n\r\n // method gets value of current Alpaca field\r\n getFieldValue(args: ValidatorArgs) {}\r\n}","import AlpacaExtension from './AlpacaExtension';\r\n\r\nimport PhotoTinMipMap from \"./PhotoTinMipMap\";\r\n\r\nimport { IOSScroll, isIOS } from '../../helpers/helperFunctions';\r\nimport { trackPhototinUpload, trackPhototinAddMessage, trackPhototinAddToCart } from '../../ClassWithTracking/helpers';\r\n\r\nclass PhotoTin extends AlpacaExtension {\r\n static extName: string = 'PhotoTin';\r\n\r\n browseFileButton: HTMLElement;\r\n inner: HTMLElement;\r\n canvas: HTMLCanvasElement;\r\n zoomField: HTMLInputElement;\r\n btnZoomIn: HTMLButtonElement;\r\n btnZoomOut: HTMLButtonElement;\r\n fileInput: HTMLInputElement;\r\n errorField: HTMLElement;\r\n addToCartSection: HTMLElement;\r\n legalCheckbox: HTMLInputElement;\r\n submitButton: HTMLElement;\r\n rotateButtonLeft: HTMLButtonElement;\r\n rotateButtonRight: HTMLButtonElement;\r\n\r\n photo: PhotoTinMipMap;\r\n\r\n message: PhotoTinMipMap;\r\n\r\n canvasSizes: ICanvasSizes;\r\n\r\n tinToCanvas: number[];\r\n photoToTin: number[];\r\n\r\n zoomTimerHandler: number;\r\n prevZoomTime: Date;\r\n zoomDirection: number;\r\n\r\n prevDragPosX: number;\r\n prevDragPosY: number;\r\n\r\n tinVirtualWidth = 200;\r\n tinVirtualHeight = 200;\r\n\r\n backgroundColor: string;\r\n\r\n dragEndHandler;\r\n dragHandler;\r\n\r\n isEShopContext = false;\r\n\r\n pinchState = {\r\n start1: [],\r\n start2: [],\r\n end1: [],\r\n end2: []\r\n }\r\n\r\n init() {\r\n this.initHtmlElements();\r\n this.bindEventListeners();\r\n\r\n this.backgroundColor = this.element.dataset['background-color'] || '#00136f';\r\n this.canvasSizes = {\r\n S: { width: 213, height: 213 },\r\n M: { width: 295, height: 295 },\r\n L: { width: 538, height: 360 },\r\n XL: { width: 794, height: 450 }\r\n };\r\n\r\n window.breakpoints = {\r\n XSMALL: 640,\r\n SMALL: 768,\r\n MEDIUM: 1024,\r\n LARGE: 1280\r\n };\r\n\r\n this.resize();\r\n\r\n const messages = this.element.querySelector('[name=\"message\"]') as HTMLSelectElement;\r\n messages.addEventListener('change', this.addMessage());\r\n messages.selectedIndex = 0;\r\n messages.dispatchEvent(new CustomEvent('change', { detail: { tackMessageChange: false } }));\r\n\r\n this.tinToCanvas = this.createTinToCanvasMatrix(this.getXPosition(), 0, this.canvas.height);\r\n\r\n this.dragEndHandler = this.dragEnd.bind(this);\r\n this.dragHandler = this.drag.bind(this);\r\n this.isEShopContext = this.addToCartSection != null;\r\n this.unsetFormOverflow();\r\n }\r\n\r\n initHtmlElements() {\r\n this.browseFileButton = this.element.querySelector(\".nx-browse-file-button\") as HTMLElement;\r\n this.errorField = this.element.querySelector('.nx-error') as HTMLElement;\r\n this.inner = this.element.querySelector('.nx-phototin-inner') as HTMLElement;\r\n this.canvas = this.element.querySelector('canvas');\r\n this.zoomField = this.element.querySelector('.nx-zoom-field') as HTMLInputElement;\r\n this.btnZoomIn = this.element.querySelector('.nx-zoom-in') as HTMLButtonElement;\r\n this.btnZoomIn.disabled = true;\r\n this.btnZoomOut = this.element.querySelector('.nx-zoom-out') as HTMLButtonElement;\r\n this.btnZoomOut.disabled = true;\r\n this.fileInput = this.element.querySelector('.nx-upload') as HTMLInputElement;\r\n this.addToCartSection = document.querySelector('.nx-add-to-cart') as HTMLElement;\r\n this.legalCheckbox = document.querySelector('.nx-photo-tin-legal-checkbox') as HTMLInputElement;\r\n this.submitButton = this.getSubmitButton() as HTMLButtonElement;\r\n this.rotateButtonLeft = this.element.querySelector('.nx-phototin__rotate-btn--left') as HTMLButtonElement;\r\n this.rotateButtonLeft.disabled = true;\r\n this.rotateButtonRight = this.element.querySelector('.nx-phototin__rotate-btn--right') as HTMLButtonElement;\r\n this.rotateButtonRight.disabled = true;\r\n\r\n }\r\n\r\n bindEventListeners() {\r\n document.addEventListener('nivea:window:afterResize', () => {\r\n this.resize();\r\n this.tinToCanvas = this.createTinToCanvasMatrix(this.getXPosition(), 0, this.canvas.height);\r\n this.redrawPreview();\r\n });\r\n\r\n this.browseFileButton.addEventListener(\"click\", event => this.openDialog(event));\r\n this.btnZoomIn.addEventListener('mousedown', event => this.startZoom(event, +1));\r\n this.btnZoomIn.addEventListener('touchstart', event => this.startZoom(event, +1), { passive: true });\r\n this.btnZoomIn.addEventListener('mouseleave', (event) => this.endZoom(event));\r\n this.btnZoomIn.addEventListener('mouseup', (event) => this.endZoom(event));\r\n this.btnZoomIn.addEventListener('touchend', (event) => this.endZoom(event));\r\n this.btnZoomIn.addEventListener('touchleave', (event) => this.endZoom(event));\r\n this.btnZoomOut.addEventListener('mousedown', event => this.startZoom(event, -1));\r\n this.btnZoomOut.addEventListener('touchstart', event => this.startZoom(event, -1), { passive: true });\r\n this.btnZoomOut.addEventListener('mouseleave', (event) => this.endZoom(event));\r\n this.btnZoomOut.addEventListener('mouseup', (event) => this.endZoom(event));\r\n this.btnZoomOut.addEventListener('touchend', (event) => this.endZoom(event));\r\n this.btnZoomOut.addEventListener('touchleave', (event) => this.endZoom(event));\r\n this.canvas.addEventListener('mousedown', this.dragStart());\r\n this.canvas.addEventListener('touchstart', this.dragStart(), { passive: true });\r\n\r\n\r\n this.fileInput.addEventListener(\"change\", this.uploadPhoto());\r\n this.rotateButtonRight.addEventListener('click', (e) => this.applyRotate(e, 1));\r\n this.rotateButtonLeft.addEventListener('click', (e) => this.applyRotate(e, -1));\r\n this.addToCartSection?.addEventListener(\"click\", (e) => {\r\n const target = e.target as HTMLElement;\r\n const button = target.closest(\".nx-add-to-cart .nx-btn\");\r\n const flag = target.closest(\".nx-add-to-cart-flag\");\r\n const mobileButton = target.closest(\".nx-add-to-cart-mobile-trigger\");\r\n if (button || flag || mobileButton) this.handleAddToCartClick(e);\r\n });\r\n if (this.legalCheckbox) this.legalCheckbox.addEventListener('click', () => this.hideLegalError());\r\n\r\n window.NiveaX.AlpacaListener.subscribe('init', event => (event).detail.form.registerCustomDataHandler('refreshCart', async () => {\r\n this.hideAddToCartSection();\r\n trackPhototinAddToCart();\r\n }));\r\n\r\n document.addEventListener('Nivea:AddToCard:allowBtnClicking', () => {\r\n const addToCardBtns = document.querySelectorAll('div[data-eshop=\"AddToCartPDP\"] button.nx-btn[disabled]');\r\n this.allowUserClicking(addToCardBtns)\r\n })\r\n }\r\n\r\n getXPosition(): number {\r\n return (this.canvas.width - this.canvas.height) / 2;\r\n }\r\n\r\n createTinToCanvasMatrix(x: number, y: number, size: number) {\r\n return [x, y, size / this.tinVirtualWidth];\r\n }\r\n\r\n createPhotoToTinMatrix(w: number, h: number) {\r\n var size = Math.min(w, h);\r\n return this.mulMatrix(this.invertMatrix([w * 0.5, h * 0.5, size / this.tinVirtualWidth]), this.matrixFromTranslation([this.tinVirtualHeight * 0.5, this.tinVirtualHeight * 0.5]));\r\n }\r\n\r\n uploadPhoto(): (event) => void {\r\n var fileReader = new FileReader(),\r\n file: File;\r\n\r\n return (event) => {\r\n const htmlInputElement = event.currentTarget as HTMLInputElement;\r\n trackPhototinUpload();\r\n\r\n if (!htmlInputElement.value.length) {\r\n return;\r\n }\r\n\r\n if (!this.isValidExtension(htmlInputElement)) {\r\n this.showErrorField(this.element.dataset.notValidError);\r\n return;\r\n }\r\n\r\n const fileList = htmlInputElement.files;\r\n\r\n if (!fileList || !fileList.length) {\r\n return;\r\n }\r\n\r\n file = fileList[0];\r\n this.errorField.classList.add('nx-hidden');\r\n if (file.type !== 'image/jpeg' && file.type !== 'image/jpg') {\r\n fileReader.onload = event => this.addPhoto(1, event.target as FileReader);\r\n fileReader.readAsDataURL(file);\r\n\r\n } else {\r\n fileReader.onload = () => this.getOrientation(fileReader, (orientation: number) => {\r\n if (orientation === -1 || orientation === -2) {\r\n orientation = 1;\r\n }\r\n\r\n fileReader.onload = () => this.addPhoto(orientation, fileReader);\r\n fileReader.readAsDataURL(file);\r\n });\r\n fileReader.readAsArrayBuffer(file);\r\n }\r\n\r\n };\r\n }\r\n\r\n showErrorField(errorMsg: string): void {\r\n this.errorField.nodeValue = errorMsg;\r\n this.errorField.classList.remove('nx-hidden');\r\n }\r\n\r\n isValidExtension(fileInput: HTMLInputElement): boolean {\r\n return /(\\.jpg|jpeg|png|gif|bmp)$/i.test(fileInput.value.toLowerCase());\r\n }\r\n\r\n getOrientation(fileReader: FileReader, callback) {\r\n var view = new DataView(fileReader.result),\r\n length,\r\n offset,\r\n marker,\r\n little,\r\n tags;\r\n\r\n if (view.getUint16(0, false) != 0xFFD8) {\r\n return callback(-2);\r\n }\r\n\r\n length = view.byteLength;\r\n offset = 2;\r\n\r\n while (offset < length) {\r\n marker = view.getUint16(offset, false);\r\n offset += 2;\r\n\r\n if (marker == 0xFFE1) {\r\n if (view.getUint32(offset += 2, false) != 0x45786966) {\r\n return callback(-1);\r\n }\r\n\r\n little = view.getUint16(offset += 6, false) == 0x4949;\r\n offset += view.getUint32(offset + 4, little);\r\n tags = view.getUint16(offset, little);\r\n offset += 2;\r\n\r\n for (var i = 0; i < tags; i++) {\r\n if (view.getUint16(offset + (i * 12), little) == 0x0112) {\r\n return callback(view.getUint16(offset + (i * 12) + 8, little));\r\n }\r\n }\r\n }\r\n else if ((marker & 0xFF00) != 0xFF00) {\r\n break;\r\n } else {\r\n offset += view.getUint16(offset, false);\r\n }\r\n }\r\n\r\n return callback(-1);\r\n }\r\n\r\n addPhoto(orientation: number, fileReader: FileReader) {\r\n var photo = new PhotoTinMipMap(fileReader.result.toString(), orientation, () => {\r\n this.photoToTin = this.createPhotoToTinMatrix(photo.width, photo.height);\r\n this.photo = photo;\r\n this.applyBounds();\r\n this.updateZoomLabel();\r\n this.redrawPreview();\r\n\r\n this.btnZoomIn.disabled = false;\r\n this.btnZoomOut.disabled = false;\r\n this.rotateButtonLeft.disabled = false;\r\n this.rotateButtonRight.disabled = false;\r\n\r\n this.inner.classList.add(\"nx-image-loaded\");\r\n });\r\n }\r\n\r\n addMessage(): (event) => void {\r\n let imgSrc: string;\r\n\r\n return (event) => {\r\n const selectedOption = (event.currentTarget as HTMLSelectElement).selectedOptions[0];\r\n\r\n if (selectedOption) {\r\n imgSrc = selectedOption.value;\r\n }\r\n\r\n if (!imgSrc || !imgSrc.length) {\r\n return;\r\n }\r\n\r\n if (!(event).detail)\r\n trackPhototinAddMessage(selectedOption.innerText);\r\n\r\n var message = new PhotoTinMipMap(imgSrc, 1, () => {\r\n this.message = message;\r\n this.redrawPreview();\r\n });\r\n };\r\n }\r\n\r\n mulMatrix(a: number[], b: number[]): number[] {\r\n return [a[0] * b[2] + b[0], a[1] * b[2] + b[1], a[2] * b[2]];\r\n }\r\n\r\n applyMatrix(point: number[], b: number[]): number[] {\r\n return [point[0] * b[2] + b[0], point[1] * b[2] + b[1]];\r\n }\r\n\r\n invertMatrix(a: number[]): number[] {\r\n return [-a[0] / a[2], - a[1] / a[2], 1 / a[2]];\r\n }\r\n\r\n matrixFromTranslation(point: number[]): number[] {\r\n return [point[0], point[1], 1];\r\n }\r\n\r\n matrixFromZoom(z: number): number[] {\r\n return [0, 0, z];\r\n }\r\n\r\n applyMatrixToCanvas(ctx: CanvasRenderingContext2D, a: number[]) {\r\n\r\n ctx.transform(a[2], 0, 0, a[2], a[0], a[1]);\r\n }\r\n\r\n drawImage(ctx: CanvasRenderingContext2D, image: PhotoTinMipMap, pixelSize: number) {\r\n ctx.save();\r\n var mipMap = image.getMipMap(pixelSize);\r\n var scale = image.width / mipMap.width;\r\n ctx.scale(scale, scale);\r\n ctx.drawImage(mipMap.canvas, 0, 0);\r\n ctx.restore();\r\n }\r\n\r\n drawTinCircle(ctx: CanvasRenderingContext2D) {\r\n ctx.beginPath();\r\n ctx.arc(this.tinVirtualWidth * 0.5, this.tinVirtualHeight * 0.5, this.tinVirtualWidth * 0.5, 0, 2 * Math.PI);\r\n }\r\n\r\n drawTin(ctx: CanvasRenderingContext2D, tinToCanvas: number[], drawOutside: boolean): void {\r\n ctx.save();\r\n var photoToTin = this.photoToTin;\r\n\r\n this.applyMatrixToCanvas(ctx, tinToCanvas);\r\n\r\n if (drawOutside && this.photo) {\r\n // photo\r\n ctx.save();\r\n this.applyMatrixToCanvas(ctx, photoToTin);\r\n ctx.globalAlpha = .25;\r\n this.drawImage(ctx, this.photo, (tinToCanvas[2] * photoToTin[2]));\r\n ctx.restore();\r\n }\r\n\r\n // blue Background\r\n\r\n ctx.fillStyle = this.backgroundColor;\r\n this.drawTinCircle(ctx);\r\n ctx.fill();\r\n\r\n // photo in the Tin\r\n if (this.photo) {\r\n ctx.save();\r\n this.drawTinCircle(ctx);\r\n ctx.clip();\r\n this.applyMatrixToCanvas(ctx, photoToTin);\r\n this.drawImage(ctx, this.photo, (tinToCanvas[2] * photoToTin[2]));\r\n ctx.restore();\r\n }\r\n\r\n // overlay\r\n\r\n if (this.message) {\r\n ctx.save();\r\n var scale = this.tinVirtualWidth / this.message.width;\r\n ctx.scale(scale, scale);\r\n this.drawImage(ctx, this.message, (tinToCanvas[2] * scale));\r\n ctx.restore();\r\n }\r\n\r\n // white ring\r\n\r\n this.drawTinCircle(ctx);\r\n ctx.lineWidth = 1;\r\n ctx.strokeStyle = '#fff';\r\n ctx.stroke();\r\n ctx.closePath();\r\n\r\n\r\n ctx.restore();\r\n }\r\n // draw phototin preview in frontend \r\n redrawPreview(): void {\r\n let ctx = this.canvas.getContext('2d');\r\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n this.drawTin(ctx, this.tinToCanvas, true);\r\n\r\n // logs of created images\r\n\r\n // let pt = document.getElementById('photo-tin');\r\n\r\n // let finalPT = new Image();\r\n // let thumbNail = new Image();\r\n\r\n // finalPT.src = this.export();\r\n // thumbNail.src = this.exportThumbnail();\r\n\r\n // pt.appendChild(finalPT);\r\n // pt.appendChild(thumbNail);\r\n }\r\n\r\n resize(): void {\r\n const winWidth: number = window.outerWidth;\r\n\r\n switch (true) {\r\n case (winWidth < window.breakpoints.SMALL):\r\n this.canvas.height = this.canvasSizes.S.height;\r\n // this.stage.width = this.inner.width;\r\n break;\r\n case (winWidth < window.breakpoints.MEDIUM):\r\n this.canvas.height = this.canvasSizes.M.height;\r\n // this.stage.width = this.inner.width();\r\n break;\r\n case (winWidth < window.breakpoints.LARGE):\r\n this.canvas.height = this.canvasSizes.L.height;\r\n this.canvas.width = this.canvasSizes.L.width;\r\n break;\r\n default:\r\n this.canvas.height = this.canvasSizes.XL.height;\r\n this.canvas.width = this.canvasSizes.XL.width;\r\n }\r\n }\r\n\r\n dragStart() {\r\n let isTouchEvent: boolean,\r\n touches: TouchList,\r\n startX: number,\r\n startY: number;\r\n\r\n return (event) => {\r\n event.stopImmediatePropagation();\r\n\r\n if (!this.photo || event.target !== this.canvas) {\r\n return;\r\n }\r\n\r\n isTouchEvent = event.type === 'touchstart' || event.type === 'touchmove';\r\n touches = (event as TouchEvent).touches;\r\n\r\n\r\n\r\n if (isTouchEvent) {\r\n document.querySelector(\"html\").classList.add('nx-lock');\r\n\r\n if (touches && touches.length === 2) {\r\n this.pinchState.start1 = [touches[0].clientX, touches[0].clientY];\r\n this.pinchState.start2 = [touches[1].clientX, touches[1].clientY];\r\n this.pinchState.end1 = [touches[0].clientX, touches[0].clientY];\r\n this.pinchState.end2 = [touches[1].clientX, touches[1].clientY];\r\n }\r\n }\r\n\r\n startX = isTouchEvent && touches ? touches[0].clientX : event.clientX;\r\n startY = isTouchEvent && touches ? touches[0].clientY : event.clientY;\r\n\r\n this.prevDragPosX = startX;\r\n this.prevDragPosY = startY;\r\n\r\n document.addEventListener('mousemove', this.dragHandler);\r\n document.addEventListener('touchmove', this.dragHandler, { passive: true });\r\n document.addEventListener('dragleave', this.dragEndHandler);\r\n document.addEventListener('mouseleave', this.dragEndHandler);\r\n document.addEventListener('mouseup', this.dragEndHandler);\r\n document.addEventListener('touchend', this.dragEndHandler, { passive: true });\r\n };\r\n }\r\n\r\n drag(event) {\r\n event.stopImmediatePropagation();\r\n\r\n const isTouchEvent = event.type === 'touchstart' || event.type === 'touchmove';\r\n const photoToTin = [...this.photoToTin];\r\n\r\n const touches = (event as TouchEvent).touches;\r\n const x = (isTouchEvent && touches ? touches[0].clientX : event.clientX);\r\n const y = (isTouchEvent && touches ? touches[0].clientY : event.clientY);\r\n\r\n if (touches && touches.length === 2) {\r\n this.pinchState.end1 = [touches[0].clientX, touches[0].clientY];\r\n this.pinchState.end2 = [touches[1].clientX, touches[1].clientY];\r\n this.applyPinch(photoToTin, this.pinchState.start1, this.pinchState.start2, this.pinchState.end1, this.pinchState.end2);\r\n }\r\n\r\n this.applyTranslateDelta(x - this.prevDragPosX, y - this.prevDragPosY);\r\n this.redrawPreview();\r\n\r\n this.prevDragPosX = x;\r\n this.prevDragPosY = y;\r\n }\r\n\r\n dragEnd(event) {\r\n event.stopImmediatePropagation();\r\n\r\n document.removeEventListener('mousemove', this.dragHandler);\r\n document.removeEventListener('touchmove', this.dragHandler);\r\n document.removeEventListener('dragleave', this.dragEndHandler);\r\n document.removeEventListener('mouseleave', this.dragEndHandler);\r\n document.removeEventListener('mouseup', this.dragEndHandler);\r\n document.removeEventListener('touchend', this.dragEndHandler);\r\n\r\n document.querySelector(\"html\").classList.remove('nx-lock');\r\n }\r\n\r\n zoomStart(direction: number) {\r\n this.zoomEnd();\r\n this.prevZoomTime = new Date();\r\n this.zoomDirection = direction;\r\n this.requestAFZoom(() => { this.applyZoom(); });\r\n }\r\n\r\n requestAFZoom(callback: () => void, then = undefined, fps = 60) {\r\n\r\n let now: number,\r\n delta: number,\r\n interval = 1000 / fps;\r\n\r\n if (typeof then !== \"number\") {\r\n then = new Date().valueOf();\r\n }\r\n\r\n now = new Date().valueOf();\r\n delta = now - then;\r\n\r\n if (delta > interval) {\r\n then = now - (delta % interval);\r\n callback();\r\n }\r\n\r\n this.zoomTimerHandler = window.requestAnimationFrame(() => {\r\n this.requestAFZoom(callback, then);\r\n });\r\n\r\n }\r\n\r\n applyZoom() {\r\n if (!this.prevZoomTime)\r\n return;\r\n\r\n var time = new Date();\r\n var timeDelta = (time.valueOf() - this.prevZoomTime.valueOf()) / 1000;\r\n if (timeDelta > 0.2)\r\n timeDelta = 0.2;\r\n this.prevZoomTime = time;\r\n\r\n this.applyZoomDelta(this.zoomDirection * timeDelta);\r\n this.redrawPreview();\r\n }\r\n\r\n zoomEnd() {\r\n if (this.zoomTimerHandler) {\r\n window.cancelAnimationFrame(this.zoomTimerHandler);\r\n this.applyZoom();\r\n this.zoomTimerHandler = undefined;\r\n this.prevZoomTime = undefined;\r\n }\r\n }\r\n\r\n applyTranslateDelta(x: number, y: number) {\r\n if (!this.photoToTin)\r\n return;\r\n var canvasToTin = this.invertMatrix(this.tinToCanvas);\r\n\r\n var deltaInTinSpace = [x * canvasToTin[2], y * canvasToTin[2]];\r\n\r\n this.photoToTin = this.mulMatrix(this.photoToTin, this.matrixFromTranslation(deltaInTinSpace));\r\n this.applyBounds();\r\n }\r\n\r\n applyZoomDelta(delta: number) {\r\n if (!this.photoToTin)\r\n return;\r\n var zoom = this.matrixFromZoom(Math.pow(2, delta));\r\n\r\n var currentZoom = zoom[2] * this.photoToTin[2];\r\n if (currentZoom >= this.maxZoom)\r\n currentZoom = this.maxZoom;\r\n if (currentZoom <= this.minZoom)\r\n currentZoom = this.minZoom;\r\n zoom[2] = currentZoom / this.photoToTin[2];\r\n\r\n\r\n var offset = this.matrixFromTranslation([this.tinVirtualWidth * 0.5, this.tinVirtualHeight * 0.5]);\r\n var tmp = this.mulMatrix(this.photoToTin, this.invertMatrix(offset));\r\n\r\n\r\n tmp = this.mulMatrix(tmp, zoom);\r\n\r\n\r\n this.photoToTin = this.mulMatrix(tmp, offset);\r\n\r\n this.applyBounds();\r\n this.updateZoomLabel();\r\n }\r\n\r\n updateZoomLabel() {\r\n const matrix = this.mulMatrix(this.photoToTin, this.getExportTinToCanvasMatrix()),\r\n zoom = matrix[2],\r\n zoomErrorContainer = document.querySelector('.nx-photo-tin-error'),\r\n zoomError = (zoom > 2) ? true : false;\r\n zoomError ? zoomErrorContainer.classList.add('nx-photo-tin-error--visible') : zoomErrorContainer.classList.remove('nx-photo-tin-error--visible');\r\n\r\n this.zoomField.value = Math.round(zoom * 100) + '%';\r\n }\r\n\r\n applyRotate(e, rotateClockwise) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.photo.rotateCanvasImage(rotateClockwise, () => {\r\n this.photoToTin = this.createPhotoToTinMatrix(this.photo.width, this.photo.height);\r\n this.photo = this.photo;\r\n this.applyBounds();\r\n this.updateZoomLabel();\r\n this.redrawPreview();\r\n });\r\n }\r\n\r\n applyPinch(startMatrix: number[], start1: number[], start2: number[], end1: number[], end2: number[]) {\r\n const prevDistance = Math.sqrt(\r\n (start1[0] - start2[0]) *\r\n (start1[0] - start2[0]) +\r\n (start1[1] - start2[1]) *\r\n (start1[1] - start2[1])\r\n );\r\n\r\n const lastDistance = Math.sqrt(\r\n (end1[0] - end2[0]) *\r\n (end1[0] - end2[0]) +\r\n (end1[1] - end2[1]) *\r\n (end1[1] - end2[1])\r\n );\r\n\r\n const distance = ((lastDistance - prevDistance) * 0.002);\r\n this.photoToTin = [...startMatrix]\r\n this.applyZoomDelta(distance);\r\n }\r\n\r\n\r\n minZoom = 1 / 50;\r\n maxZoom = 2;\r\n requiredVisibilityFactor = 0.1;\r\n\r\n applyBounds(): void {\r\n var m = this.photoToTin;\r\n\r\n m = this.invertMatrix(m);\r\n var x = m[0];\r\n var y = m[1];\r\n var z = m[2];\r\n var w = this.photo.width;\r\n var h = this.photo.height;\r\n var tw = this.tinVirtualWidth * z;\r\n var th = this.tinVirtualHeight * z;\r\n var requiredVisibilityFactor = this.requiredVisibilityFactor;\r\n var minX = -tw * (1 - requiredVisibilityFactor);\r\n var minY = -th * (1 - requiredVisibilityFactor);\r\n var maxX = w - tw * requiredVisibilityFactor;\r\n var maxY = h - th * requiredVisibilityFactor;\r\n var minZ = 1 / this.maxZoom;\r\n var maxZ = 1 / this.minZoom;\r\n if (z < minZ)\r\n z = minZ;\r\n if (z > maxZ)\r\n z = maxZ;\r\n if (x < minX)\r\n x = minX;\r\n if (y < minY)\r\n y = minY;\r\n if (x > maxX)\r\n x = maxX;\r\n if (y > maxY)\r\n y = maxY;\r\n m = [x, y, z];\r\n m = this.invertMatrix(m);\r\n\r\n this.photoToTin = m;\r\n }\r\n\r\n getExportTinToCanvasMatrix(): number[] {\r\n const dataset = this.element.dataset;\r\n return this.createTinToCanvasMatrix(parseInt(dataset.phototinX), parseInt(dataset.phototinY), parseInt(dataset.phototinWidth));\r\n }\r\n\r\n endZoom(event) {\r\n (event.currentTarget as HTMLButtonElement).classList.remove('active');\r\n this.zoomEnd();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n // final print pattern for printer guy\r\n export() {\r\n const canvas = document.createElement('canvas') as HTMLCanvasElement;\r\n canvas.width = parseInt(this.element.dataset.imageWidth);\r\n canvas.height = parseInt(this.element.dataset.imageHeight);\r\n const ctx = canvas.getContext('2d');\r\n ctx.fillStyle = this.backgroundColor;\r\n ctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n const tinToCanvas = this.getExportTinToCanvasMatrix();\r\n this.drawTin(ctx, tinToCanvas, false);\r\n\r\n // place aswell thumbnail on print cart (right bottom aligned)\r\n const thumbnailToCanvas = this.createTinToCanvasMatrix(\r\n parseInt(this.element.dataset.thumbnailX),\r\n parseInt(this.element.dataset.thumbnailY),\r\n parseInt(this.element.dataset.thumbnailWidth)\r\n );\r\n\r\n this.drawTin(ctx, thumbnailToCanvas, false);\r\n\r\n return canvas.toDataURL('image/jpeg');\r\n }\r\n\r\n // create and export thumbnail to display in the cart\r\n exportThumbnail() {\r\n const thumbnail = document.createElement('canvas') as HTMLCanvasElement,\r\n ctx = thumbnail.getContext('2d'),\r\n thumbNailPreviewBackground = \"#fff\";\r\n\r\n thumbnail.width = parseInt(this.element.dataset.thumbnailWidth);\r\n thumbnail.height = parseInt(this.element.dataset.thumbnailWidth);\r\n ctx.fillStyle = thumbNailPreviewBackground;\r\n ctx.fillRect(0, 0, thumbnail.width, thumbnail.height);\r\n\r\n this.drawTin(ctx, this.createTinToCanvasMatrix(0, 0, thumbnail.width), false);\r\n\r\n return thumbnail.toDataURL('image/jpeg');\r\n }\r\n\r\n startZoom(event, zoomDirection: number) {\r\n (event.currentTarget as HTMLButtonElement).classList.add('active');\r\n this.zoomStart(zoomDirection);\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n /*\r\n * Returns the (Alpaca Forms) field value.\r\n */\r\n getFieldValue(args) {\r\n const id = args.id.substring(\"field_\".length);\r\n const field = args.elem;\r\n const inputFinalPhotoTin = field.querySelector(`input[name=\"${id}\"][type=\"hidden\"]`) as HTMLInputElement;\r\n const inputThumbnail = field.querySelector(`input[name=\"${id}-thumbnail\"][type=\"hidden\"]`) as HTMLInputElement;\r\n\r\n let fileName = \"\";\r\n\r\n // Create final image with thumbnail and phototin image as base64\r\n if (inputFinalPhotoTin) {\r\n // Abort validation pipeline to prevent setting incorrect values by following get field value methods.\r\n args.abort = true;\r\n args.value = null;\r\n if (this.fileInput.files.length === 0) {\r\n return;\r\n }\r\n const image = this.export();\r\n inputFinalPhotoTin.value = image;\r\n fileName = this.fileInput.files.length > 0\r\n ? this.fileInput.files[0].name\r\n : \"\";\r\n args.value = [\r\n {\r\n name: fileName,\r\n size: image.length\r\n }\r\n ];\r\n this.setQuantity(inputFinalPhotoTin.form);\r\n }\r\n // write base64 thumbnail into hidden input\r\n if (this.isEShopContext && inputThumbnail) {\r\n // Thumbnail is only needed in e-shop as thumbnail of product.\r\n // When running standalone, thumbnail would be uploaded as second image to ProCampaign, which is not necessary (and wrong).\r\n const image = this.exportThumbnail();\r\n inputThumbnail.value = image;\r\n args.value.push(\r\n {\r\n name: fileName + \"-thumbnail\",\r\n size: image.length\r\n });\r\n }\r\n }\r\n\r\n openDialog(event: any) {\r\n event.preventDefault();\r\n (this.element.querySelector(\"input[type='file']\") as HTMLElement).click();\r\n }\r\n\r\n checkLegalStatement(): boolean {\r\n const legalCheckbox = this.legalCheckbox;\r\n if (legalCheckbox) return legalCheckbox.checked;\r\n }\r\n\r\n getLegalErrorElement() {\r\n const legalErrorText = document.querySelector('.nx-photo-tin-legal-error') as HTMLInputElement;\r\n return legalErrorText;\r\n }\r\n\r\n getQuantity(): string {\r\n const quantity = document.querySelector('.nx-range-dropdown__label-value').textContent;\r\n if (quantity) return quantity;\r\n }\r\n\r\n hideLegalError() {\r\n const legalErrorText = document.querySelector('.nx-photo-tin-legal-error') as HTMLInputElement;\r\n if (legalErrorText && legalErrorText.classList.contains('nx-photo-tin-error--visible')) legalErrorText.classList.remove('nx-photo-tin-error--visible');\r\n }\r\n\r\n /**\r\n * Copies the quantity from frontend to the corresponding hidden input field in the backend.\r\n *\r\n * @param form\r\n */\r\n setQuantity(form: HTMLFormElement) {\r\n const quantityInput = form.querySelector(\"input[name$=\\\"_quantity\\\"]\") as HTMLInputElement;\r\n if (quantityInput) {\r\n quantityInput.value = this.getQuantity();\r\n }\r\n }\r\n\r\n allowUserClicking(elements): void {\r\n elements.forEach(elm => elm.disabled = false);\r\n }\r\n\r\n preventUserClicking(elements): void {\r\n elements.forEach(elm => elm.disabled = true);\r\n }\r\n\r\n handleAddToCartClick(e): void {\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n const submitButton = this.submitButton,\r\n addToCardBtns: NodeList[] = e.currentTarget.querySelectorAll('button');\r\n\r\n if (submitButton) {\r\n submitButton.dispatchEvent(new Event('click'));\r\n this.preventUserClicking(addToCardBtns);\r\n }\r\n }\r\n\r\n getSubmitButton(): HTMLButtonElement {\r\n const form = this.element.closest('form');\r\n\r\n if (form) {\r\n const submitButton = form.querySelector('button[type=\"submit\"]');\r\n\r\n if (submitButton) {\r\n return submitButton as HTMLButtonElement;\r\n }\r\n }\r\n }\r\n\r\n unsetFormOverflow() {\r\n const form = this.element.closest('form');\r\n\r\n if (form) form.style.overflow = 'visible';\r\n }\r\n\r\n checkFotoUpload(): number {\r\n return this.fileInput.files.length;\r\n }\r\n\r\n hideAddToCartSection(): void {\r\n const addToCartSection = this.addToCartSection;\r\n const successMessage = document.querySelector(\".alpaca-form.success-message\");\r\n\r\n if (addToCartSection && successMessage) addToCartSection.style.display = 'none';\r\n }\r\n}\r\n\r\nclass PhotoTinIos extends PhotoTin {\r\n dragStart(): (event) => void {\r\n let orignMethod = super.dragStart();\r\n\r\n return (event) => {\r\n if (!this.photo || event.target !== this.canvas) {\r\n return;\r\n }\r\n\r\n orignMethod(event);\r\n IOSScroll.prevent();\r\n };\r\n }\r\n\r\n dragEnd(isTouchEvent: boolean): void {\r\n super.dragEnd(isTouchEvent);\r\n IOSScroll.allow();\r\n }\r\n}\r\nexport default class PhotoTinFactory {\r\n static extName: string = 'PhotoTin';\r\n\r\n static setup(selector: string = `[data-alpaca-ext=\"${this.extName}\"]`): void {\r\n Array.from(document.querySelectorAll(selector))\r\n .filter((node: HTMLElement) => !node.dataset.alpacaExtInitialized)\r\n .forEach((element: HTMLElement) => {\r\n (isIOS() && PhotoTinFactory.isInLayer(element))\r\n ? new PhotoTinIos(element)\r\n : new PhotoTin(element);\r\n element.dataset.alpacaExtInitialized = \"true\";\r\n });\r\n }\r\n\r\n static isInLayer(element: HTMLElement): boolean {\r\n return element.closest('.nx-layer') != null;\r\n }\r\n}\r\n","import PhotoTinMipMapLevel from \"./PhotoTinMipMapLevel\";\r\n\r\nexport default class PhotoTinMipMap {\r\n levels: PhotoTinMipMapLevel[];\r\n width: number;\r\n height: number;\r\n canvasImage: any\r\n orientationState = [1, 6, 3, 8];\r\n currentOriantationIdx: number\r\n\r\n\r\n constructor(imgSrc: string, orientation: number, callback: () => void) {\r\n this.levels = [];\r\n\r\n this.canvasImage = new Image();\r\n this.canvasImage.onload = () => this.generate(this.canvasImage, orientation, callback);\r\n this.canvasImage.src = imgSrc;\r\n\r\n this.currentOriantationIdx = this.orientationState.findIndex(e => e == orientation);\r\n }\r\n\r\n generate(img: HTMLImageElement, orientation: number, callback: () => void): void {\r\n var oc = document.createElement('canvas'),\r\n oCtx = oc.getContext('2d'),\r\n steps: number;\r\n\r\n if (orientation == 6 || orientation == 8) {\r\n oc.width = img.height;\r\n oc.height = img.width;\r\n } else {\r\n oc.width = img.width;\r\n oc.height = img.height;\r\n }\r\n\r\n this.width = oc.width;\r\n this.height = oc.height;\r\n\r\n oCtx = this.rotateCanvasContext(oCtx, orientation, oc.width, oc.height);\r\n oCtx.drawImage(img, 0, 0);\r\n\r\n this.levels = [];\r\n this.levels.push(new PhotoTinMipMapLevel(oc.width, oc.height, oc));\r\n\r\n steps = this.getSteps(oc.width, oc.width * .1);\r\n this.generateLevel(oc, steps);\r\n\r\n //this.log();\r\n callback();\r\n }\r\n\r\n rotateCanvasContext(oCtx: CanvasRenderingContext2D, orientation: number, w: number, h: number): CanvasRenderingContext2D {\r\n var degreesToRotate: number,\r\n x: number, y: number;\r\n\r\n switch (orientation) {\r\n case 6:\r\n degreesToRotate = 90;\r\n x = h / 2;\r\n y = w / 2;\r\n break;\r\n case 3:\r\n degreesToRotate = 180;\r\n x = w / 2;\r\n y = h / 2;\r\n break;\r\n case 8:\r\n degreesToRotate = 270;\r\n x = h / 2;\r\n y = w / 2;\r\n break;\r\n case 1:\r\n default:\r\n degreesToRotate = 0;\r\n x = w / 2;\r\n y = h / 2;\r\n }\r\n\r\n oCtx.translate(w / 2, h / 2);\r\n oCtx.rotate(degreesToRotate * Math.PI / 180);\r\n oCtx.translate(-x, -y);\r\n\r\n return oCtx;\r\n }\r\n\r\n rotateCanvasImage(rotateClockwise, callback) {\r\n this.generate(this.canvasImage, this.getNextOrientation(rotateClockwise), callback);\r\n }\r\n\r\n getNextOrientation(rotateClockwise) {\r\n\r\n let orientation;\r\n if (rotateClockwise == true) {\r\n orientation = this.orientationState[this.currentOriantationIdx + 1];\r\n this.currentOriantationIdx += 1;\r\n if (this.orientationState.length == this.currentOriantationIdx) {\r\n orientation = this.orientationState[0];\r\n this.currentOriantationIdx = 0;\r\n }\r\n } else {\r\n orientation = this.orientationState[this.currentOriantationIdx - 1];\r\n this.currentOriantationIdx -= 1;\r\n if (this.currentOriantationIdx < 0) {\r\n orientation = this.orientationState[this.orientationState.length - 1];\r\n this.currentOriantationIdx = this.orientationState.length - 1;\r\n }\r\n\r\n }\r\n\r\n return orientation;\r\n }\r\n\r\n getSteps(sourceWidth: number, targetWidth: number): number {\r\n return Math.ceil(Math.log(sourceWidth / targetWidth) / Math.log(2));\r\n }\r\n\r\n generateLevel(oc, steps): void {\r\n var tempC = document.createElement('canvas'),\r\n tempCtx = tempC.getContext('2d'),\r\n width = oc.width,\r\n height = oc.height,\r\n levelWidth = Math.floor(width * .5),\r\n levelHeight = Math.floor(height * .5);\r\n\r\n tempC.width = levelWidth;\r\n tempC.height = levelHeight;\r\n\r\n tempCtx.drawImage(oc, 0, 0, width, height, 0, 0, levelWidth, levelHeight);\r\n\r\n this.levels.push(new PhotoTinMipMapLevel(tempC.width, tempC.height, tempC));\r\n\r\n if (steps > 1) {\r\n this.generateLevel(tempC, steps - 1);\r\n }\r\n }\r\n\r\n getMipMap(pixelSize: number): PhotoTinMipMapLevel {\r\n var bestLevel = 0;\r\n\r\n for (var i = 1; i < this.levels.length; i++) {\r\n var levelPixelSize = this.levels[i].width / this.width;\r\n if (levelPixelSize >= pixelSize) {\r\n bestLevel = i;\r\n }\r\n }\r\n\r\n return this.levels[bestLevel];\r\n }\r\n\r\n\r\n log(): void {\r\n document.body.style.backgroundColor = 'dimgray';\r\n\r\n for (var i = 0; i < this.levels.length; i++) {\r\n var _ = new Image();\r\n _.onload = this.appendLevel(_);\r\n _.src = this.levels[i].canvas.toDataURL();\r\n }\r\n }\r\n\r\n appendLevel(_: HTMLImageElement) {\r\n return () => {\r\n document.body.appendChild(_);\r\n }\r\n }\r\n}\r\n","export default class PhotoTinMipMapLevel {\r\n width: number;\r\n height: number;\r\n canvas: HTMLCanvasElement;\r\n\r\n constructor(width: number, height: number, canvas: HTMLCanvasElement) {\r\n this.width = width;\r\n this.height = height;\r\n this.canvas = canvas;\r\n }\r\n}\r\n","import { isIOS } from '../helpers/helperFunctions';\r\n\r\nexport function bindFunctions(element: any, ...funcs: Array<(target: any, ...args: any[]) => void>) {\r\n return function (...args) {\r\n funcs.forEach((f, i) => f(element, args[i]));\r\n return element;\r\n }\r\n}\r\n\r\nexport function createElement(selector: string): HTMLElement {\r\n return document.createElement(selector);\r\n}\r\n\r\nexport function createAnchor(href: string = '', text: string = '', className: string = ''): HTMLAnchorElement {\r\n return bindFunctions(\r\n createElement('a'),\r\n addHref,\r\n addTextContent,\r\n addClassName\r\n )(href, text, className);\r\n}\r\n\r\nexport function createSpan(className: string): HTMLElement {\r\n return addClassName(createElement('span'), className);\r\n};\r\n\r\nexport function createDiv(className: string): HTMLElement {\r\n return addClassName(createElement('div'), className);\r\n};\r\n\r\nexport function createNav(className: string): HTMLElement {\r\n return addClassName(createElement('nav'), className);\r\n};\r\n\r\nexport function createUList(className: string): HTMLElement {\r\n return addClassName(createElement('ul'), className);\r\n};\r\n\r\nexport function createListItem(className: string): HTMLElement {\r\n return addClassName(createElement('li'), className);\r\n};\r\n\r\nexport function createButton(className: string): HTMLElement {\r\n return addClassName(createElement('button'), className);\r\n};\r\n\r\nexport function createElementFromString(str: string): HTMLElement {\r\n const wrapper = createDiv('');\r\n wrapper.innerHTML = str;\r\n return wrapper.firstElementChild || wrapper;\r\n}\r\n\r\nexport function createSVG(inner: string): HTMLElement {\r\n const svg = document.createElement('svg');\r\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svg.setAttribute('viewBox', '0 0 86 86');\r\n svg.innerHTML = inner;\r\n\r\n return svg;\r\n}\r\n\r\nexport function addTextContent(element: HTMLElement, value: string): HTMLElement {\r\n element.textContent = value;\r\n return element;\r\n}\r\n\r\nexport function addInnerHTML(element: HTMLElement, value: string): HTMLElement {\r\n element.innerHTML = value;\r\n return element;\r\n}\r\n\r\nexport function addClassName(node: HTMLElement, className: string): HTMLElement {\r\n node.className = className;\r\n return node;\r\n}\r\n\r\nexport function addClass(node: HTMLElement, className: string): HTMLElement {\r\n if (className) node.classList.add(className);\r\n return node;\r\n}\r\n\r\nexport function addClasses(node: HTMLElement, ...classes: string[]): HTMLElement {\r\n classes.forEach(cls => addClass(node, cls));\r\n return node;\r\n}\r\n\r\nexport function removeClass(node: HTMLElement, className: string): HTMLElement {\r\n if (className) node.classList.remove(className);\r\n return node;\r\n}\r\n\r\nexport function removeClasses(node: HTMLElement, ...classes: string[]): HTMLElement {\r\n classes.forEach(cls => removeClass(node, cls));\r\n return node;\r\n}\r\n\r\nexport function addClassToList(list: Element[] | HTMLElement[] | HTMLCollection | NodeList, className: string) {\r\n Array.from(list).forEach(itm => addClass(itm, className));\r\n return list;\r\n}\r\n\r\nexport function removeClassFromList(list: Element[] | HTMLElement[] | HTMLCollection | NodeList, className: string) {\r\n Array.from(list).forEach(itm => removeClass(itm, className));\r\n return list;\r\n}\r\n\r\nexport function hasClass(\r\n element: HTMLElement | Element | EventTarget,\r\n value: string\r\n): boolean {\r\n return (element)?.classList.contains(value);\r\n}\r\n\r\nexport function addHref(element: HTMLAnchorElement, value: string): HTMLAnchorElement {\r\n element.href = value;\r\n return element;\r\n}\r\n\r\nexport function addToElement(element: HTMLElement, ...items: HTMLElement[]): HTMLElement {\r\n items.filter(i => i).forEach(i => element.appendChild(i));\r\n return element;\r\n}\r\n\r\nexport function addToElementAtTheBeginning(element: HTMLElement, ...items: HTMLElement[]): HTMLElement {\r\n const children = Array.from(element.children);\r\n return addToElement(element, ...items.concat(children));\r\n}\r\n\r\nexport function addElementsFromArray(target: HTMLElement, arr: HTMLElement[]) {\r\n arr.forEach(e => addToElement(target, e));\r\n return arr;\r\n}\r\n\r\nexport function getElementHeight(element: HTMLElement): number {\r\n return element.offsetHeight;\r\n}\r\n\r\nexport function setElementHeight(element: HTMLElement, height: number) {\r\n element.style.height = height ? height + 'px' : '';\r\n return this;\r\n}\r\n\r\nexport function isInViewPort(element: HTMLElement): boolean {\r\n const elementRect = element.getBoundingClientRect(),\r\n offsetHeight = document.documentElement.offsetHeight;\r\n\r\n return elementRect.top < 0 && elementRect.bottom > 0\r\n || elementRect.top >= 0 && elementRect.top < offsetHeight\r\n || elementRect.bottom > 0 && elementRect.bottom < offsetHeight;\r\n}\r\n\r\nexport function observeFirstTimeInViewport(element): Promise {\r\n return new Promise((resolve, reject) => {\r\n const observer = new IntersectionObserver((entries, observer) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n resolve(true);\r\n observer.disconnect();\r\n }\r\n });\r\n }, { threshold: 0.01 });\r\n\r\n observer.observe(element);\r\n });\r\n}\r\n \r\n\r\nexport function getSibling(element: HTMLElement, selector: string): HTMLElement {\r\n return element.parentElement.querySelector(selector);\r\n}\r\n\r\nexport function getClosest(element: HTMLElement, selector: string): HTMLElement {\r\n do {\r\n if (element.matches(selector)) {\r\n return element;\r\n }\r\n element = element.parentElement || element.parentNode;\r\n } while (element !== null && element.nodeType === 1);\r\n\r\n return null;\r\n}\r\n\r\nexport function createScriptTag(script: HTMLScriptElement): HTMLScriptElement {\r\n let domScript = document.createElement('script');\r\n domScript.type = script.type;\r\n\r\n if (script.src) {\r\n domScript.src = script.src;\r\n } else {\r\n domScript.textContent = script.innerText;\r\n }\r\n\r\n if (script.defer) {\r\n domScript.defer = true;\r\n }\r\n\r\n return domScript;\r\n}\r\n\r\nexport function convertToPlain(html): string {\r\n var tempDivElement = document.createElement(\"div\");\r\n tempDivElement.innerHTML = html;\r\n\r\n return tempDivElement.textContent || tempDivElement.innerText || \"\";\r\n}\r\n\r\nexport function injectScriptsFromAjaxResponse(element: HTMLElement): Promise {\r\n\r\n const scripts = Array.from(element.getElementsByTagName('script'))\r\n .filter(script => !isScriptTagRendered(script))\r\n .map(createScriptTag);\r\n\r\n return Promise.all(scripts.map(script => new Promise((resolve, reject) => {\r\n if (script.src) {\r\n script.onload = () => resolve();\r\n script.onerror = () => {\r\n console.error(`Layer script was not loaded: URL ${(event.target).src}`);\r\n resolve();\r\n };\r\n } else {\r\n resolve();\r\n }\r\n\r\n document.head.appendChild(script);\r\n })));\r\n}\r\n\r\nexport function isScriptTagRendered(script: HTMLScriptElement): boolean {\r\n let exist: boolean = false;\r\n const shouldScriptNotBeMoved = script.hasAttribute('data-dont-move-script-from-layer');\r\n\r\n if (script.src) {\r\n (document.querySelectorAll(`[src=\"${script.src}\"]`).length > 0 && script.src.indexOf(\"recaptcha\") == -1) ? exist = true : exist = false;\r\n }\r\n\r\n if (shouldScriptNotBeMoved) {\r\n exist = true;\r\n }\r\n\r\n return exist;\r\n}\r\n\r\nexport function toggleClass(node: HTMLElement, className: string, force?: boolean): HTMLElement {\r\n if (typeof force === undefined) {\r\n node.classList.toggle(className);\r\n } else {\r\n force\r\n ? node.classList.add(className)\r\n : node.classList.remove(className);\r\n }\r\n\r\n return node;\r\n}\r\n\r\nexport function getChildren(node: HTMLElement, selector?: string): HTMLElement[] {\r\n let children = Array.from(node.children);\r\n\r\n if (selector) {\r\n children = children.filter(ch => hasClass(ch, selector));\r\n }\r\n\r\n return children;\r\n}\r\n\r\nexport function dispatchEvent(element: HTMLElement, event: Event): HTMLElement {\r\n element.dispatchEvent(event);\r\n return element;\r\n}\r\n\r\n/*\r\n *\r\n * Helper Functions for Video Movie\r\n *\r\n */\r\n\r\nexport function hasVideoToBeLoaded(video: HTMLVideoElement): boolean {\r\n return !isVideoLoaded(video) && isInViewPort(video) && document.readyState == \"complete\";\r\n}\r\n\r\nexport function hasVideoToBePaused(video: HTMLVideoElement) {\r\n return isVideoLoaded(video) && !isInViewPort(video) && isVideoPlaying(video);\r\n}\r\n\r\nexport function hasVideoToBePlay(video: HTMLVideoElement): boolean {\r\n return isVideoLoaded(video) && isInViewPort(video) && !isVideoPlaying(video) && isVideoAutoplay(video);\r\n}\r\n\r\nexport function isVideoAutoplay(video) {\r\n return video.getAttributeNames()?.includes('autoplay');\r\n}\r\n\r\nexport function isVideoLoaded(video: HTMLVideoElement): boolean {\r\n return (video.hasAttribute('src') || video.readyState == 4);\r\n}\r\n\r\nexport function playVideo(video: HTMLVideoElement) {\r\n return video.play();\r\n}\r\n\r\nexport function pauseMovieVideo(vid: HTMLVideoElement) {\r\n return vid.pause();\r\n}\r\n\r\nexport function showVideo(video: HTMLVideoElement) {\r\n video.parentElement.classList.add(\"nx-movie-video--ready\");\r\n}\r\n\r\nexport function setVideoSourceAttr(video: HTMLVideoElement): HTMLVideoElement {\r\n let src;\r\n\r\n if (window.innerWidth >= 768) {\r\n src = video.dataset.srcCompact || video.dataset.src || video.dataset.srcDefault;\r\n } else {\r\n src = video.dataset.srcCompactmobile || video.dataset.srcMobile || video.dataset.srcDefault;\r\n }\r\n\r\n const currentSrc = video.getAttribute('src');\r\n if (src && src !== currentSrc)\r\n video.setAttribute('src', src);\r\n\r\n return video;\r\n}\r\n\r\nexport function removeDataVideoAttr(video: HTMLVideoElement): HTMLVideoElement {\r\n video.removeAttribute('data-src');\r\n\r\n return video;\r\n}\r\n\r\nexport function isVideoPlaying(vid): boolean {\r\n const video: HTMLVideoElement = vid;\r\n return !!(video.currentTime > 0 && !video.paused && !video.ended && video.readyState > 2);\r\n}\r\n\r\nexport function getContent(node: HTMLElement | string): string {\r\n const element = typeof node === 'string' ? createElementFromString(node) : node;\r\n return element.innerHTML;\r\n}\r\n\r\nexport function isImageLoaded(img: HTMLImageElement): boolean {\r\n return (img.hasAttribute('src') || img.hasAttribute('srcset'))\r\n || (!isIOS && img.complete && img.naturalHeight !== 0);\r\n}\r\n\r\nexport function showSpinner(img: HTMLImageElement) {\r\n addClass(img.parentElement, 'nx-u-spinner');\r\n return img;\r\n}\r\n\r\nexport function hideSpinner(img: HTMLImageElement) {\r\n removeClass(img.parentElement, 'nx-u-spinner');\r\n return img;\r\n}\r\n\r\nexport function clearElement(e: HTMLElement): HTMLElement {\r\n e.innerHTML = '';\r\n return e;\r\n}\r\n\r\nexport function clearStyleElement(e: HTMLElement): HTMLElement {\r\n e.removeAttribute('style');\r\n return e;\r\n}\r\n\r\nexport function adjustLayerMarkUp(html: string, overlayTitle?): HTMLElement {\r\n let node = createElementFromString(`
${html}
`),\r\n layerTitle = (overlayTitle) ? overlayTitle : '';\r\n\r\n return createElementFromString(`\r\n
\r\n ${overlayTitle ?\r\n `
\r\n

${layerTitle}

\r\n
`\r\n : \"\"}\r\n
${node.innerHTML}
\r\n
`);\r\n}\r\n\r\nexport function setFocusIntoLayer(element:HTMLElement): void {\r\n if (window.NiveaX.deviceType.isMobile == true || element.classList.contains('nx-spush-item')) {\r\n return;\r\n }\r\n \r\n const focusableElem = element.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])'),\r\n firstFocusableElm = focusableElem[0] as HTMLElement;\r\n firstFocusableElm?.classList.contains('nx-shop-cart__promotion-form-input') ?\r\n firstFocusableElm?.parentElement.classList.add('nx-shop-cart__promotion-form-input--focus') : \"\";\r\n\r\n firstFocusableElm?.focus();\r\n}\r\n\r\nexport function objectToStyleString(styleObject): string {\r\n return Object.entries(styleObject).map(([k, v]) => `${k}: ${v}`).join(';');\r\n}\r\n\r\nexport function isChildOf(element: HTMLElement, parent: HTMLElement): boolean {\r\n do {\r\n if (element === parent) return true;\r\n element = element.parentElement;\r\n } while (element);\r\n\r\n return false;\r\n}\r\n\r\n\r\nexport function numDigits(x: number): number {\r\n return Math.max(Math.floor(Math.log10(Math.abs(x))), 0) + 1;\r\n}\r\n\r\nexport function addSpinnerToTeaserGrid(gridNode: HTMLElement) {\r\n addClass(gridNode, \"nx-teaser-grid--loading\");\r\n\r\n gridNode.insertBefore(createElementFromString(\r\n `
\r\n
\r\n
\r\n
\r\n
`), gridNode.firstChild || null);\r\n}\r\n\r\nexport function removeSpinnerFromTeaserGrid(gridNode: HTMLElement) {\r\n removeClass(gridNode, \"nx-teaser-grid--loading\");\r\n}\r\n","import { deepmerge } from 'deepmerge-ts';\r\nimport { getSibling, addClass, addClasses, removeClass, removeClasses } from './DOMHelpers';\r\n\r\nexport function copyObject(options) {\r\n return JSON.parse(JSON.stringify(options));\r\n}\r\n\r\n/**\r\n * Copies current URL query parameters to passed URL.\r\n * This is needed for instance for a layer.\r\n * Parameter will not be copied if the parameter name is already included in the URL or if the parameter name is included as an element in parametersToOmit.\r\n */\r\nexport function copyQueryParametersToUrl(url: string, parametersToOmit: string[] = []) {\r\n const parameters = window.location.search.substring(1);\r\n if (!parameters) return url;\r\n const parametersToCopy = decodeURIComponent(parameters)\r\n .split(\"&\")\r\n .filter(parameter => {\r\n const parameterKey = parameter.split(\"=\")[0];\r\n return url.indexOf(`${parameterKey}=`) < 0 && !parametersToOmit.includes(parameterKey);\r\n })\r\n .join(\"&\");\r\n if (!parametersToCopy) return url;\r\n return url.indexOf(\"?\") <= 0\r\n ? `${url}?${parametersToCopy}`\r\n : `${url}&${parametersToCopy}`;\r\n}\r\n\r\nexport function getOptions(element: HTMLElement, defOptions: any = {}): any {\r\n let optionsStringFromData = element.dataset.options,\r\n optionsFromData;\r\n \r\n if (optionsStringFromData) {\r\n try {\r\n optionsFromData = JSON.parse(optionsStringFromData);\r\n } catch (e) {\r\n console.warn(\"Bad data-options for: \" + element + \" \" + element.dataset.options);\r\n }\r\n }\r\n\r\n return typeof optionsFromData === 'object'\r\n ? deepmerge(defOptions, optionsFromData)\r\n : defOptions;\r\n}\r\n\r\nexport function loadParamsFromURL(url?: string) {\r\n const historyParameter = url || location.search;\r\n let state = {};\r\n if (historyParameter !== '' && historyParameter !== undefined) {\r\n const searchParameters = new URLSearchParams(historyParameter) as any;\r\n state = Object.fromEntries(searchParameters);\r\n }\r\n\r\n return state;\r\n}\r\n\r\n// Filter helper functions\r\nexport function toggleSelection(input: HTMLInputElement, select: boolean = true): void {\r\n input.checked = select;\r\n}\r\n\r\nexport function getNamesOfInputs(inputs: FilterCheckBox[]): string[] {\r\n return inputs.sort(compareTimeStamp).map(getFilterName);\r\n}\r\n\r\nexport function compareTimeStamp(a: FilterCheckBox, b: FilterCheckBox): number {\r\n return a.timeStamp > b.timeStamp ? 1 : -1;\r\n}\r\n\r\nexport function getFilterName(element: HTMLElement): string {\r\n const node = element.nextElementSibling;\r\n return node ? node.textContent.trim() : '';\r\n}\r\n\r\nexport function getCateforyName(nameNodeSelector: string, element: HTMLElement): string {\r\n const nameNode = getSibling(element, nameNodeSelector);\r\n return nameNode ? nameNode.textContent : '';\r\n}\r\n\r\nexport function getPageScrollTop(): number {\r\n return document.documentElement.scrollTop || document.body.scrollTop;\r\n}\r\n\r\nexport const getScrollTopPosition = (scrollTop: number): number => document.documentElement.scrollHeight * scrollTop;\r\n\r\nexport const isViewPortInPosition = (scrollTop: number): boolean => getPageScrollTop() + document.documentElement.offsetHeight >= getScrollTopPosition(scrollTop);\r\n\r\nexport function setPageScrollTop(value: number): void {\r\n document.documentElement.scrollTop = document.body.scrollTop = value;\r\n}\r\n\r\n\r\n\r\n// horizontalScrolling\r\nexport function horizontalScrolling(element: HTMLElement) {\r\n let x: number,\r\n left: number,\r\n leftUp: number,\r\n down: boolean;\r\n\r\n function onMouseDown(event: MouseEvent): void {\r\n event.preventDefault();\r\n down = true;\r\n x = event.pageX;\r\n left = element.scrollLeft;\r\n\r\n document.body.addEventListener('mousemove', onBodyMouseMove);\r\n document.body.addEventListener('mouseup', onBodyMouseUp);\r\n }\r\n\r\n function onBodyMouseMove(event: MouseEvent): void {\r\n if (down) {\r\n const newX = event.pageX;\r\n element.scrollLeft = left - newX + x;\r\n }\r\n }\r\n\r\n function onBodyMouseUp(): void {\r\n document.body.removeEventListener('mousemove', onBodyMouseMove);\r\n document.body.removeEventListener('mouseup', onBodyMouseUp);\r\n down = false;\r\n leftUp = element.scrollLeft;\r\n\r\n if (left !== leftUp) window.addEventListener('click', captureClick, false);\r\n }\r\n\r\n function captureClick(event: MouseEvent): void {\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n // console.log(event.type, event.target)\r\n window.removeEventListener('click', captureClick, false);\r\n }\r\n\r\n element.addEventListener('mousedown', onMouseDown);\r\n}\r\n\r\n// Cookie methods\r\nexport function setCookie(cname: string, cvalue: string, exdays?: number) {\r\n var d = new Date();\r\n d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n var expires = exdays ? 'expires=' + d.toUTCString() : '';\r\n\r\n document.cookie = cname + '=' + cvalue + '; ' + expires + ';path=/';\r\n}\r\n\r\nexport function deleteCookie(name: string) {\r\n document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n}\r\n\r\nexport function getCookie(cname: string): string {\r\n var name = cname + '=',\r\n ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) !== -1) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return '';\r\n}\r\n\r\n// for Cookies\r\nconst getCookiesArray = () => document.cookie.split('; ');\r\n\r\nexport function getCookieValue(name: string): string {\r\n const cookies = getCookiesArray();\r\n\r\n return cookies\r\n .filter(c => c.startsWith(name))\r\n .map(c => c.split('=')[1])\r\n [0];\r\n};\r\n\r\nexport function checkCookie(name: string, checkFunc: CheckFunc = a => true) {\r\n const cookieValue = getCookie(name);\r\n return checkFunc(cookieValue);\r\n};\r\n\r\n// IOS prevent scrolling\r\nexport class IOSScroll {\r\n static prevent(visual: boolean = false, preventClass: string = 'nx-u-prevent-scroll'): void {\r\n if (!isIOS()) {\r\n document.body['preventLevel'] = document.body['preventLevel'] + 1 || 1;\r\n addClass(document.body, 'nx-u-lock-screen');\r\n return;\r\n }\r\n\r\n const scrollTop = getPageScrollTop();\r\n\r\n IOSScroll.scrollTop.unshift(IOSScroll.scrollTop.length ? IOSScroll.scrollTop[0] : scrollTop);\r\n document.body.classList.add(preventClass);\r\n setTimeout(() =>\r\n IOSScroll.setNegativeMarginTop(\r\n visual ? IOSScroll.scrollTop[0] : null\r\n ), IOSScroll.scrollTop.length > 1 ? 500 : 0);\r\n }\r\n\r\n static allow(visual: boolean = false, preventClass: string = 'nx-u-prevent-scroll'): void {\r\n if (!isIOS()) {\r\n document.body['preventLevel'] = Math.max(document.body['preventLevel'] - 1, 0);\r\n document.body['preventLevel'] === 0 && removeClass(document.body, 'nx-u-lock-screen');\r\n return;\r\n }\r\n\r\n const firstScrollTop = IOSScroll.scrollTop.shift();\r\n IOSScroll.setNegativeMarginTop(IOSScroll.scrollTop[0] || null);\r\n\r\n if (IOSScroll.scrollTop.length === 0) {\r\n document.body.classList.remove(preventClass);\r\n\r\n const hash: string = window.location.hash.substring(1);\r\n if (hash && hash.indexOf('layer') === -1 && document.getElementById(`${hash}`)) {\r\n document.getElementById(`${hash}`).scrollIntoView();\r\n } else {\r\n setPageScrollTop(firstScrollTop)\r\n }\r\n }\r\n }\r\n\r\n private static setNegativeMarginTop(value: number): void {\r\n document.body.style.marginTop = value && `-${value}px`;\r\n }\r\n\r\n static scrollTop: number[] = [];\r\n}\r\n\r\nexport function isIOS(): boolean {\r\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\r\n}\r\n\r\nexport function isIE11(): boolean {\r\n return !!navigator.userAgent.match(/Trident.*rv\\:11\\./);\r\n}\r\n\r\nexport function isPageEditor(): boolean{\r\n return window.location.search.includes('view=page-editor') || window.location.search.includes('view=content-editor');\r\n}\r\n\r\nexport function focusInput(input: HTMLInputElement): HTMLInputElement {\r\n let position = input.value.length;\r\n\r\n if (isIE11() && position) {\r\n input.setSelectionRange(position, position);\r\n }\r\n\r\n input.focus();\r\n\r\n return input;\r\n}\r\n\r\nexport function parseJSONSafe(json: string): any {\r\n let result = null;\r\n\r\n if (json) {\r\n try {\r\n result = JSON.parse(json);\r\n } catch (e) {\r\n console.warn(e.message, json);\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function cleanString(str: string): string {\r\n return str.replace(/[^\\w\\W\\s\\u00C0-\\u00FF]/gi, '');\r\n}\r\n\r\nexport function removeFromArray(arr: any[], element: any) {\r\n arr.splice(arr.indexOf(element), 1);\r\n};\r\n\r\nexport function requestNextAnimationFrame(func: () => any): number {\r\n return requestAnimationFrame(requestAnimationFrame.bind(null, func));\r\n}\r\n\r\nexport function requestAnimationFrameTimer(func: () => any, time: number = 0): void {\r\n requestAnimationFrame(\r\n () => setTimeout(\r\n () => func(),\r\n time)\r\n );\r\n}\r\n\r\nexport function limitCall(func, delay: number) {\r\n let timerId;\r\n\r\n return function (...args) {\r\n if (timerId) return;\r\n timerId = setTimeout(() => timerId = null, delay);\r\n func.apply(this, args);\r\n }\r\n}\r\n\r\nexport function getLastItemInArray(arr: any[]): any {\r\n const length = arr.length;\r\n return length > 0 ? arr[arr.length - 1] : arr[0];\r\n}\r\n\r\nexport const isBoolean = (value: any): boolean => typeof value === 'boolean';\r\nexport const isNumber = (value: any): boolean => typeof value === 'number';\r\nexport const isString = (value: any): boolean => typeof value === 'string';\r\n\r\nexport function getURLParamsArray(): string[] {\r\n return window.location.search.substring(1).split('&');\r\n}\r\n\r\nexport const getMillisecondsOfSeconds = (seconds: number = 0): number => seconds * 1000;\r\n\r\nexport const getMillisecondsOfMinutes = (minutes: number = 0): number => getMillisecondsOfSeconds(minutes * 60);\r\n\r\nexport const getMillisecondsOfHours = (hours: number = 0): number => getMillisecondsOfMinutes(hours * 60);\r\n\r\nexport const getMillisecondsOfDays = (days: number = 0): number => getMillisecondsOfHours(days * 24);\r\n\r\nexport const isNotUndefined = (...values) => values.every(v => v != undefined);\r\n\r\nexport function replaceQueryParam(param, newval, search, remove = '&') {\r\n var regex = new RegExp(\"([?;&])\" + param + \"[^&;]*[;&]?\");\r\n var query = search.replace(regex, \"$1\").replace(/&$/, '');\r\n\r\n return (query.length > 2 ? query + remove : \"?\") + (newval ? param + \"=\" + newval : '');\r\n}\r\n\r\nexport function removeQueryParam(key, sourceURL) {\r\n var rtn = sourceURL.split(\"?\")[0],\r\n param,\r\n params_arr = [],\r\n queryString = (sourceURL.indexOf(\"?\") !== -1) ? sourceURL.split(\"?\")[1] : \"\";\r\n if (queryString !== \"\") {\r\n params_arr = queryString.split(\"&\");\r\n for (var i = params_arr.length - 1; i >= 0; i -= 1) {\r\n param = params_arr[i].split(\"=\")[0];\r\n if (param === key) {\r\n params_arr.splice(i, 1);\r\n }\r\n }\r\n if (params_arr.length) rtn = rtn + \"?\" + params_arr.join(\"&\");\r\n }\r\n return rtn;\r\n}\r\n\r\nexport const isObjectEmpty = obj => Object.entries(obj).length === 0 && obj.constructor === Object;\r\n\r\nexport const isArrayEmpty = arr => Array.isArray(arr) && arr.length > 0;\r\n\r\nexport const getCurrentPageInfo = (): string => `${document.title} - ${location.origin}${location.pathname}`;\r\n\r\nexport const getAjaxURLs = (): AjaxURLs => {\r\n const configNode = document.querySelector('[data-ajax-urls]');\r\n const ajaxUrls: AjaxURLs = configNode && JSON.parse(configNode.innerHTML) || {};\r\n return ajaxUrls;\r\n}\r\n\r\nexport const checkAndInitShop = async () => {\r\n const {\r\n Context = '',\r\n FeatureAjaxUrls: {\r\n Shop: shopUrls,\r\n },\r\n } = getAjaxURLs();\r\n\r\n if (shopUrls) {\r\n const module = await import(/* webpackChunkName: \"ShopInitializer\" */'../ShopInitializer');\r\n const initShop = module.default;\r\n initShop(Context, shopUrls);\r\n };\r\n}\r\n\r\nexport const getServiceLayerUrl = (hash?: string) => {\r\n const layerName = location.hash.split('=')[1] || hash.split('=')[1];\r\n const currentUrl = encodeURIComponent(window.location.href.split(\"#\")[0]);\r\n const contextItem = window.location.href.split('~').pop();\r\n const {\r\n FeatureAjaxUrls: {\r\n Layer: ResolveLayer,\r\n },\r\n } = getAjaxURLs();\r\n\r\n let url = ResolveLayer.ResolveLayerUrl;\r\n url = url.replace(/{layerName}/gi, layerName);\r\n url = url.replace(/{currentUrl}/gi, currentUrl);\r\n if (contextItem) url.replace(/{contextItem}/gi, contextItem);\r\n\r\n return {\r\n Url: url,\r\n PostUrl: ResolveLayer.ResolveLayerPostUrl\r\n };\r\n}\r\n\r\nexport const getCartOverviewLayerUrl = () => {\r\n const {\r\n FeatureAjaxUrls: {\r\n Shop: Shop,\r\n },\r\n } = getAjaxURLs();\r\n\r\n return Shop.CartOverviewPage;\r\n}\r\n\r\nexport const constructServiceLayerRequest = (url?: string) => {\r\n const layerName = location.hash.split('=')[1];\r\n const currentUrl = window.location.href.split(\"#\")[0];\r\n\r\n let parameters = loadParamsFromURL(url);\r\n\r\n return {\r\n Layer: layerName,\r\n CurrentUrl: currentUrl,\r\n CurrentPage: parameters[\"currentpage\"]\r\n }\r\n}\r\n\r\nexport function getSizes(element: HTMLElement): ClientRect {\r\n const clientRect = (): ClientRect => element.getBoundingClientRect();\r\n\r\n return {\r\n get height(): number {\r\n return clientRect().height;\r\n },\r\n\r\n get width(): number {\r\n return clientRect().width;\r\n },\r\n\r\n get top(): number {\r\n return clientRect().top;\r\n },\r\n\r\n get bottom(): number {\r\n return clientRect().bottom;\r\n },\r\n\r\n get left(): number {\r\n return clientRect().left;\r\n },\r\n\r\n get right(): number {\r\n return clientRect().right;\r\n },\r\n\r\n get x(): number {\r\n return clientRect().x;\r\n },\r\n\r\n get y(): number {\r\n return clientRect().y;\r\n },\r\n\r\n toJSON(): any {\r\n return {\r\n height: this.height,\r\n width: this.width,\r\n top: this.top,\r\n bottom: this.bottom,\r\n left: this.left,\r\n right: this.right,\r\n x: this.x,\r\n y: this.y\r\n };\r\n }\r\n };\r\n}\r\n\r\nexport function debounce(func, wait: number) {\r\n let timerId;\r\n\r\n return function (...args) {\r\n if (timerId) {\r\n clearTimeout(timerId);\r\n timerId = null;\r\n }\r\n\r\n timerId = setTimeout(() => {\r\n func.apply(this, args);\r\n timerId = null;\r\n }, wait);\r\n }\r\n}\r\n\r\nexport function floatNumberFromString(element: any) {\r\n const regExpForFloatNumbers = /\\d+(?:.\\d+)?/;\r\n return element.match(regExpForFloatNumbers).join('');\r\n}\r\n\r\n// object = {main1:{inner11:value11, inner21:value21}, main2{inner21:value21, inner22:value22, inner32:value32}}\r\n// parseObjectByPath(object, 'main1.inner11') // value11\r\n// parseObjectByPath(object, 'main2.inner22') // value22\r\nexport function parseObjectByPath(object: object, path: string) {\r\n return path.split('.').reduce((oldValue, newValue) => {\r\n return oldValue ? oldValue[newValue] : null\r\n }, object || self)\r\n}\r\n\r\nexport function isSelectorValid(selector) {\r\n const queryCheck = s => document.createDocumentFragment().querySelector(s)\r\n try { queryCheck(selector) } catch { return false }\r\n return true\r\n}\r\n\r\nexport function startSpinner() {\r\n const item: HTMLElement = document.body.querySelector('main'),\r\n extraClass: string = 'nx-u-spinner--fixed';\r\n\r\n addClasses(item, 'nx-u-spinner', 'nx-u-spinner--medium', extraClass);\r\n}\r\n\r\nexport function stopSpinner() {\r\n const item: HTMLElement = document.body.querySelector('main'),\r\n extraClass: string = 'nx-u-spinner--fixed';\r\n\r\n removeClasses(item, 'nx-u-spinner', 'nx-u-spinner--medium', extraClass);\r\n}\r\n\r\nexport function checkMobileOrDesktop() {\r\n return window.innerWidth < 768;\r\n}\r\n\r\nexport function checkMobileTabletOrDesktop() {\r\n return window.innerWidth < 1024;\r\n}\r\n\r\nexport function getYouTubeVideoIdFromUrl(url) {\r\n var regExp = /^.*(youtu\\.be\\/|v\\/|u\\/\\w\\/|shorts\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\r\n var match = url.match(regExp);\r\n return (match && match[2].length >= 11) ? match[2] : '';\r\n}","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || /** @type {(array: readonly unknown[], value: unknown) => keyof array} */ function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array} TypedArray */\n/** @typedef {'Int8Array' | 'Uint8Array' | 'Uint8ClampedArray' | 'Int16Array' | 'Uint16Array' | 'Int32Array' | 'Uint32Array' | 'Float32Array' | 'Float64Array' | 'BigInt64Array' | 'BigUint64Array'} TypedArrayName */\n/** @type {{ [k in `\\$${TypedArrayName}`]?: (receiver: TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call } & { __proto__: null }} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {import('.')} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, typeof cache>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */ function (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","var map = {\n\t\"./AlpacaExtension.ts\": 62512,\n\t\"./PhotoTin.ts\": 92078,\n\t\"./PhotoTinMipMap.ts\": 87162,\n\t\"./PhotoTinMipMapLevel.ts\": 64102\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 97600;","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"./modules/\" + (chunkId === 4140 ? \"ShopInitializer\" : chunkId) + \".\" + {\"543\":\"49920e97\",\"4140\":\"42219ee3\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/dist/NiveaX/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4875: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"NiveaXwebpackJsonp\"] = self[\"NiveaXwebpackJsonp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default class AlpacaExtensionLoader {\r\n constructor(private selector: string = '[data-alpaca-ext]') {\r\n this.initExtensions();\r\n document.addEventListener('alpaca-extensions:init', () => this.initExtensions());\r\n }\r\n\r\n initExtensions() {\r\n const nodes = Array.from(document.querySelectorAll(this.selector));\r\n const extNames = this.getExtensionNames(nodes);\r\n\r\n extNames\r\n .map(eN => require(`./modules/${eN}.ts`).default)\r\n .forEach(Extension => Extension.setup());\r\n }\r\n\r\n getExtensionNames(nodes: HTMLElement[]): string[] {\r\n const allExtensionNames = nodes.map((node: HTMLElement) => node.getAttribute(this.selector.slice(1, -1)));\r\n const uniqExtensionNames = Array.from(new Set(allExtensionNames));\r\n\r\n return uniqExtensionNames;\r\n }\r\n}\r\n\r\nnew AlpacaExtensionLoader();"],"names":["inProgress","_typeof","o","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","arg","key","input","hint","prim","toPrimitive","undefined","res","call","TypeError","String","Number","_toPrimitive","_createClass","Constructor","protoProps","staticProps","isDeepEqual","isDeepStrictEqual","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","inspect","_require$types","isPromise","isRegExp","objectAssign","objectIs","RegExpPrototypeTest","Map","lazyLoadComparison","comparison","warned","assert","module","exports","ok","NO_EXCEPTION_SENTINEL","innerFail","obj","message","Error","innerOk","fn","argLen","value","generatedMessage","err","actual","expected","operator","stackStartFn","_len","arguments","args","Array","_key","apply","concat","fail","internalMessage","argsLen","process","emitWarning","console","warn","bind","errArgs","equal","notEqual","deepEqual","notDeepEqual","deepStrictEqual","notDeepStrictEqual","strictEqual","notStrictEqual","Comparison","keys","_this","this","instance","_classCallCheck","forEach","expectedException","msg","name","push","a","b","compareExceptionKey","isPrototypeOf","getActual","e","checkIsPromise","then","catch","waitForActual","promiseFn","Promise","resolve","resultPromise","expectsError","error","details","fnType","expectsNoError","internalMatch","string","regexp","fnName","match","strict","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","result","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","split","shift","tmp1","pos","indexOf","slice","join","doesNotMatch","ownKeys","r","t","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Function","toString","has","get","set","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","p","setPrototypeOf","__proto__","getPrototypeOf","endsWith","str","search","this_len","substring","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","copyError","source","inspectValue","val","compact","customInspect","depth","maxArrayLength","Infinity","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","other","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","stderr","isTTY","columns","count","Math","floor","maxCount","log","repeat","pop","maxLines","max","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","_Error","_inspect$custom","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","_super","Super","NewTarget","options","limit","stackTraceLimit","getColorDepth","base","_res","knownOperators","code","captureStackTrace","recurseTimes","ctx","custom","_createSuper","util","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","thing","isArray","len","map","determiner","substr","replace","type","start","includes","reason","inspected","RangeError","_slicedToArray","arr","_arrayWithHoles","l","n","u","f","next","done","return","_iterableToArrayLimit","minLen","_arrayLikeToArray","from","test","_unsupportedIterableToArray","_nonIterableRest","arr2","regexFlagsSupported","flags","arrayFromSet","array","arrayFromMap","is","objectGetOwnPropertySymbols","numberIsNaN","isNaN","uncurryThis","hasOwnProperty","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","charCodeAt","pow","getOwnNonIndexProperties","compare","x","y","min","kNoIterator","kIsArray","kIsSet","kIsMap","innerDeepEqual","val1","val2","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","Date","getTime","RegExp","byteLength","Uint8Array","buffer","byteOffset","areSimilarTypedArrays","offset","areSimilarFloatArrays","_keys","_keys2","size","BigInt","isEqualBoxedPrimitive","getEnumerables","k","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","memo","aValues","Set","add","setMightHaveLoosePrim","bValues","_i","_val","setHasEqualElement","setEquiv","aEntries","_aEntries$i","item1","item2","mapMightHaveLoosePrim","bEntries","_i2","_bEntries$_i","item","mapHasEqualEntry","mapEquiv","keysA","objEquiv","delete","setValues","findLooseMatchingPrimitives","altValue","curB","key1","key2","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","setFunctionLength","$TypeError","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","func","applyBind","now","times","g","window","functions","label","time","duration","format","object","expression","tuple","$SyntaxError","gopd","property","nonEnumerable","nonWritable","nonConfigurable","loose","desc","hasSymbols","toStr","defineDataProperty","supportsDescriptors","predicate","predicates","EvalError","SyntaxError","URIError","isCallable","list","thisArg","receiver","forEachArray","charAt","forEachString","forEachObject","concatty","j","that","bound","arrLike","slicy","boundLength","boundArgs","joiner","joiny","Empty","implementation","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt64Array","BigUint64Array","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","JSON","parseFloat","parseInt","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","parts","first","last","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasPropertyDescriptors","hasArrayLengthDefineBug","foo","$Object","origSymbol","hasSymbolSham","sym","symObj","getOwnPropertyNames","syms","toStringTag","$hasOwn","ctor","superCtor","super_","TempCtor","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","_","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","document","all","strClass","GeneratorFunction","isFnRegex","generatorFunc","getGeneratorFunc","define","getPolyfill","shim","polyfill","NaN","whichTypedArray","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isObject","isFunction","isArguments","isString","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","objectKeys","toObject","$push","$propIsEnumerable","originalGetSymbols","source1","to","s","getSymbols","nextKey","propValue","assign","letters","lacksProperEnumerationOrder","preventExtensions","thrower","assignHasPendingExceptions","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","hasDescriptors","gOPD","$floor","functionLengthIsConfigurable","functionLengthIsWritable","async","trackPurchase","cartState","orderId","parse","countryCode","dataLayer","pageCountry","AmountToPayDecimal","DeliveryCostDecimal","TotalTaxDecimal","CurrencyCode","Summary","coupon","Promotions","values","brand","products","Items","category","Category","ProductName","ProductId","getPriceValue","ProductPrice","ProductSize","Quantity","event","currencyCode","ecommerce","purchase","actionField","id","affiliation","revenue","tax","shipping","trackPhototinUpload","eventCategory","eventAction","trackPhototinAddMessage","eventLabel","trackPhototinAddToCart","productNameNode","querySelector","productName","innerText","addToCartNode","dataset","productId","productCategory","productVariantNode","productVariant","innerHTML","price","quantity","textContent","buttonType","addLayer","trackData","trakingList","triggerOption","Ttrigger","Tevent","AlpacaExtension","setup","selector","extName","querySelectorAll","node","alpacaExtInitialized","element","alpacaListener","NiveaX","AlpacaListener","initSub","readySub","onAlpacaInit","detail","form","getFieldValuePipeline","getFieldValue","unsubscribe","subscribe","onAlpacaFromReady","requestAnimationFrame","init","PhotoTin","tinVirtualWidth","tinVirtualHeight","isEShopContext","pinchState","start1","start2","end1","end2","minZoom","maxZoom","requiredVisibilityFactor","initHtmlElements","bindEventListeners","backgroundColor","canvasSizes","S","width","height","M","L","XL","breakpoints","XSMALL","SMALL","MEDIUM","LARGE","resize","messages","addEventListener","addMessage","selectedIndex","dispatchEvent","CustomEvent","tackMessageChange","tinToCanvas","createTinToCanvasMatrix","getXPosition","canvas","dragEndHandler","dragEnd","dragHandler","drag","addToCartSection","unsetFormOverflow","browseFileButton","errorField","inner","zoomField","btnZoomIn","disabled","btnZoomOut","fileInput","legalCheckbox","submitButton","getSubmitButton","rotateButtonLeft","rotateButtonRight","redrawPreview","openDialog","startZoom","passive","endZoom","dragStart","uploadPhoto","applyRotate","button","closest","flag","mobileButton","handleAddToCartClick","hideLegalError","registerCustomDataHandler","hideAddToCartSection","addToCardBtns","allowUserClicking","createPhotoToTinMatrix","w","h","mulMatrix","invertMatrix","matrixFromTranslation","file","fileReader","FileReader","htmlInputElement","currentTarget","isValidExtension","showErrorField","notValidError","fileList","files","classList","onload","addPhoto","readAsDataURL","getOrientation","orientation","readAsArrayBuffer","errorMsg","nodeValue","remove","toLowerCase","callback","little","tags","view","getUint16","getUint32","photo","photoToTin","applyBounds","updateZoomLabel","imgSrc","selectedOption","selectedOptions","applyMatrix","point","matrixFromZoom","z","applyMatrixToCanvas","transform","drawImage","image","pixelSize","save","mipMap","getMipMap","scale","restore","drawTinCircle","beginPath","arc","PI","drawTin","drawOutside","globalAlpha","fillStyle","fill","clip","lineWidth","strokeStyle","stroke","closePath","getContext","clearRect","winWidth","outerWidth","isTouchEvent","touches","startX","startY","stopImmediatePropagation","clientX","clientY","prevDragPosX","prevDragPosY","applyPinch","applyTranslateDelta","removeEventListener","zoomStart","direction","zoomEnd","prevZoomTime","zoomDirection","requestAFZoom","applyZoom","fps","delta","interval","zoomTimerHandler","timeDelta","applyZoomDelta","cancelAnimationFrame","canvasToTin","deltaInTinSpace","zoom","currentZoom","tmp","getExportTinToCanvasMatrix","zoomErrorContainer","round","rotateClockwise","preventDefault","stopPropagation","rotateCanvasImage","startMatrix","prevDistance","sqrt","distance","m","tw","th","minX","minY","maxX","maxY","minZ","maxZ","phototinX","phototinY","phototinWidth","createElement","imageWidth","imageHeight","fillRect","thumbnailToCanvas","thumbnailX","thumbnailY","thumbnailWidth","toDataURL","exportThumbnail","thumbnail","field","elem","inputFinalPhotoTin","inputThumbnail","fileName","abort","export","setQuantity","click","checkLegalStatement","checked","getLegalErrorElement","getQuantity","legalErrorText","contains","quantityInput","elements","elm","preventUserClicking","Event","style","overflow","checkFotoUpload","successMessage","display","PhotoTinIos","orignMethod","super","PhotoTinFactory","isInLayer","PhotoTinMipMap","orientationState","levels","canvasImage","Image","generate","src","currentOriantationIdx","findIndex","img","steps","oc","oCtx","rotateCanvasContext","getSteps","generateLevel","degreesToRotate","translate","rotate","getNextOrientation","sourceWidth","targetWidth","ceil","tempC","tempCtx","levelWidth","levelHeight","bestLevel","body","appendLevel","appendChild","PhotoTinMipMapLevel","createSpan","className","addClassName","createElementFromString","wrapper","firstElementChild","addClass","addClasses","classes","cls","removeClass","removeClasses","addToElement","items","toggleClass","force","toggle","getContent","getPageScrollTop","documentElement","scrollTop","IOSScroll","prevent","visual","preventClass","isIOS","unshift","setNegativeMarginTop","allow","firstScrollTop","hash","location","getElementById","scrollIntoView","marginTop","navigator","userAgent","parseJSONSafe","json","requestAnimationFrameTimer","isNotUndefined","every","v","isObjectEmpty","entries","copy","readUInt8","isArgumentsObject","isGeneratorFunction","isTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","method","descriptors","formatRegExp","objects","stringify","isNull","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","toUpperCase","opts","seen","stylize","stylizeNoColor","colors","isBoolean","_extend","isUndefined","stylizeWithColor","formatValue","styleType","styles","ret","primitive","simple","isNumber","formatPrimitive","visibleKeys","idx","arrayToHash","isError","formatError","output","braces","toUTCString","formatProperty","formatArray","reduce","prev","numLinesEst","reduceToSingleString","line","ar","re","d","pad","debuglog","pid","types","isNullOrUndefined","isSymbol","isPrimitive","isBuffer","months","prop","getHours","getMinutes","getSeconds","getDate","getMonth","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","cb","newReason","promisify","original","promiseResolve","promiseReject","promise","reject","callbackify","callbackified","maybeCb","rej","availableTypedArrays","globalThis","typedArrays","$slice","cache","typedArray","proto","superProto","tag","found","getter","trySlices","tryTypedArrays","webpackContext","req","webpackContextResolve","__webpack_require__","possibleNames","out","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","definition","chunkId","promises","miniCssF","url","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","setAttribute","onScriptComplete","onerror","doneFns","parentNode","removeChild","head","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","initExtensions","nodes","getExtensionNames","eN","default","Extension","allExtensionNames"],"sourceRoot":""}