{"version":3,"file":"base.js","sources":["base.js"],"sourcesContent":["\"use strict\";\n\nvar _document$querySelect;\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\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 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(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar BN = BN || {},\n BNApp,\n vueApp;\nvar mediaQueryMobile = window.matchMedia(\"screen and (max-width: 767px)\");\nvar mediaQueryTablet = window.matchMedia(\"screen and (min-width: 768px) and (max-width: 1199px)\");\nBN.screenMode = mediaQueryMobile.matches ? 'mobile' : mediaQueryTablet.matches ? 'tablet' : 'desktop';\nBN.apiDomain = window.origin;\nBN.wHeight = 0;\nBN.wWidth = 0;\nBN.headerElm;\nBN.bodyWidth = 0;\nBN.domContentLoadedFncList = BN.domContentLoadedFncList || [];\nBN.vueMountedFncList = [];\nBN.windowResizeFncList = {};\nBN.scrollEventFncList = {};\nBN.scrollUpEventFncList = {};\nBN.scrollDownEventFncList = {};\nBN.onDropdownCloseFncList = {};\nBN.onClickDocumentFnList = {};\nBN.isScreenReaderMode = false;\nBN.version = document.firstElementChild.dataset.version;\nBN.delayInitializeFnc = BN.delayInitializeFnc || {\n isInitialized: false,\n list: [],\n reinitializedList: []\n};\nBN.listDialogCursor = [];\nBN.vueComponentsToLoad = []; //Array of {name, url} objects\n\n//To remove a fnc from list: delete BN.scrollEventFncList.someEventName;\n//after remove \"someEventName\" from List, \"someEventName\" is no longer executed\n\nBN.checkIsMobile = function () {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || (navigator.platform === 'MacIntel' || /Macintosh/i.test(navigator.userAgent)) && navigator.maxTouchPoints > 0;\n};\nBN.checkIsIOS = function () {\n return /iPad|iPhone|iPod|Safari/.test(navigator.userAgent) && !window.MSStream;\n};\nBN.defaultConfig = {\n currencyCode: (_document$querySelect = document.querySelector(\"html\")) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getAttribute(\"currency-code\")\n};\nBN.breakpoints = {\n desktop: 992,\n laptop: 1200\n};\nBN.debounce = function (func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\nBN.omit = function (obj) {\n var result = _objectSpread({}, obj);\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n props.forEach(function (prop) {\n delete result[prop];\n });\n return result;\n};\nBN.throttleTimerList = [];\nBN.throttle = function (func) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n BN.throttleTimerList.forEach(function (timerItem) {\n clearTimeout(timerItem);\n });\n var context = this; // store the context of the object that owns this function\n var timer = setTimeout(function () {\n func.apply(context, args); // execute the function with the context of the object that owns it\n }, delay);\n BN.throttleTimerList.push(timer);\n };\n};\nBN.throttleTargetList = new Map();\nBN.throttleTarget = function (func) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;\n var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '*';\n return function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n clearTimeout(BN.throttleTargetList.get(target));\n var context = this; // store the context of the object that owns this function\n var timer = setTimeout(function () {\n func.apply(context, args); // execute the function with the context of the object that owns it\n }, delay);\n BN.throttleTargetList.set(target, timer);\n };\n};\nBN.sleep = function (ms) {\n var start = new Date().getTime();\n while (new Date().getTime() < start + ms);\n};\nBN.copy = function (input) {\n if (_typeof(input) !== 'object') return input;\n return JSON.parse(JSON.stringify(input));\n};\nBN.slugify = function (text) {\n return text.toString().normalize('NFKD').toLowerCase().trim().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/-\\+/g, '-');\n};\nBN.mergeDeep = function (target, source) {\n function isObject(item) {\n return item && _typeof(item) === 'object' && !Array.isArray(item);\n }\n var output = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!(key in target)) Object.assign(output, _defineProperty({}, key, source[key]));else output[key] = BN.mergeDeep(target[key], source[key]);\n } else {\n Object.assign(output, _defineProperty({}, key, source[key]));\n }\n });\n }\n return output;\n};\nBN.timer = function (callback, delay) {\n var timerId,\n timeStart,\n remaining = delay;\n var pause = function pause() {\n window.clearTimeout(timerId);\n timerId = null;\n remaining -= Date.now() - timeStart;\n };\n var resume = function resume() {\n if (timerId) {\n return;\n }\n timeStart = Date.now();\n timerId = window.setTimeout(function () {\n remaining = 0;\n callback();\n }, remaining);\n };\n var stop = function stop() {\n window.clearTimeout(timerId);\n remaining = 0;\n timerId = null;\n };\n var restart = function restart() {\n stop();\n remaining = delay;\n resume();\n };\n var start = function start() {\n remaining = delay;\n resume();\n };\n var running = function running() {\n return !!remaining;\n };\n return {\n start: start,\n pause: pause,\n resume: resume,\n stop: stop,\n restart: restart,\n running: running\n };\n};\nBN.imageProductResized = function (imageUrl, width, quality) {\n var imageFormatSupportOldBrowser = function imageFormatSupportOldBrowser() {\n try {\n var _window$isDeviceSuppo;\n return !window.isDeviceSupport || ((_window$isDeviceSuppo = window.isDeviceSupport) === null || _window$isDeviceSuppo === void 0 ? void 0 : _window$isDeviceSuppo.toLowerCase()) === 'true' ? 'webp' : 'jpeg';\n } catch (error) {\n console.log(error);\n return 'webp';\n }\n };\n if (!window.isCloudflareImageResizerAvailable || window.isCloudflareImageResizerAvailable.toLowerCase() === 'false') {\n return \"\".concat(imageUrl, \"?width=\").concat(width, \"&format=\").concat(imageFormatSupportOldBrowser(), \"&quality=\").concat(quality);\n }\n return \"/cdn-cgi/image/width=\".concat(width, \",format=\").concat(imageFormatSupportOldBrowser(), \",quality=\").concat(quality).concat(imageUrl);\n};\n\n//===========Vue Define\n\nBN.vueData = {\n data: {},\n mixins: [],\n components: {},\n computed: {},\n methods: {},\n computedList: {},\n methodsList: {},\n createdFnList: [],\n mountedFnList: []\n};\nBN.SetVueData = function (componentName, obj) {\n BN.vueData.data[componentName] = obj;\n};\n\n// BN.ExtendVueConfig = function(componentName, obj){\n// if(obj.data) {\n// let tmpData = BN.vueData.data[componentName];\n// let tmpDataNew = BN.mergeDeep(tmpData, obj.data);\n// BN.vueData.data[componentName] = tmpDataNew;\n// }\n\n// if(obj.computed) {\n// if(BN.vueData.computedList[componentName + 'Fn'])\n// BN.vueData.computedList[componentName + 'Fn'] = {...BN.vueData.computedList[componentName + 'Fn'], ...obj.computed}\n// else\n// BN.vueData.computedList[componentName + 'Fn'] = obj.computed\n\n// BN.vueData.computed[componentName + 'Fn'] = function() {\n// return BN.vueData.computedList[componentName + 'Fn']\n// }\n// }\n\n// if(obj.methods) {\n// if(BN.vueData.methodsList[componentName + 'Md'])\n// BN.vueData.methodsList[componentName + 'Md'] = {...BN.vueData.methodsList[componentName + 'Md'], ...obj.methods}\n// else\n// BN.vueData.methodsList[componentName + 'Md'] = obj.methods\n\n// BN.vueData.methods[componentName + 'Md'] = function() {\n// return BN.vueData.methodsList[componentName + 'Md']\n// }\n// }\n\n// if(obj.created)\n// BN.vueData.createdFnList.push(obj.created);\n\n// if(obj.mounted)\n// BN.vueData.mountedFnList.push(obj.mounted);\n// }\n\n//This function should be used before creation of vue app\nBN.LoadVueComponentAtStartup = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(componentName, url, isFromSv) {\n var component;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n if (!url) {\n console.log(\"Could not load Vue component \".concat(componentName, \", url is null or empty\"));\n }\n\n //let url = isFromSv ? BN.apiDomain + path : `/dist/Brownells/js/components/${path}.vue`;\n url += (url.indexOf(\"?\") >= 0 ? \"&v=\" : \"?v=\") + BN.version;\n _context.next = 5;\n return httpVueLoader(url, componentName)();\n case 5:\n component = _context.sent;\n // component.render = BN.manuallyCompile?.compile(component.template) || component.render;\n\n BN.vueData.components[componentName] = component;\n if (!(component !== null && component !== void 0 && component.data) || component !== null && component !== void 0 && component.data && !component.data())\n //No idea what on earth is this, copied from methods below\n {\n component.data = function () {\n return BN.vueData.data;\n };\n }\n _context.next = 13;\n break;\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](0);\n console.error(_context.t0);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 10]]);\n }));\n return function (_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\nBN.LoadComponent = function (path, isFromSv, componentName) {\n var url = isFromSv ? BN.apiDomain + path : \"/dist/Brownells/js/components/\".concat(path, \".vue\");\n url += (url.indexOf(\"?\") >= 0 ? \"&v=\" : \"?v=\") + BN.version;\n var resultFunction = httpVueLoader(url, componentName);\n var result = resultFunction();\n return result;\n};\nBN.SetVueComponent = function (componentName, path) {\n BN.vueData.components[componentName] = BN.LoadComponent(path);\n};\nBN.SetVueComponentAtRunTime = function (componentName, path, isFromSv, callback, data, cacheTemplate) {\n if (typeof cacheTemplate == \"undefined\") cacheTemplate = true;\n var updateViewApp = function updateViewApp() {\n BNApp.$forceUpdate();\n BNApp.$nextTick(function () {\n if (callback) callback();\n });\n };\n var afterLoadComponent = function afterLoadComponent(component) {\n if (!(component !== null && component !== void 0 && component.data) || component !== null && component !== void 0 && component.data && !component.data()) {\n component.data = function () {\n return BN.vueData.data;\n };\n }\n vueApp.component(componentName, component);\n BN.vueData.components[componentName] = component;\n updateViewApp();\n };\n if (cacheTemplate && _typeof(BN.vueData.components[componentName]) == \"object\") {\n if (data) BN.vueData.components[componentName].props.data = data;\n updateViewApp();\n } else {\n BN.vueData.components[componentName] = null;\n if (typeof path === 'string') {\n BN.LoadComponent(path, isFromSv, componentName).then(function (component) {\n var _BN$manuallyCompile;\n component.render = ((_BN$manuallyCompile = BN.manuallyCompile) === null || _BN$manuallyCompile === void 0 ? void 0 : _BN$manuallyCompile.compile(component.template)) || component.render;\n if (data) component.props.data = data;\n afterLoadComponent(component);\n })[\"catch\"](function (e) {\n return console.error(e);\n });\n } else if (_typeof(path) === 'object') {\n afterLoadComponent(path);\n }\n }\n};\nBN.KeyName = {\n \"enter\": \"Enter\"\n};\nBN.Key = {\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n ENTER: 13,\n ESCAPE: 27,\n SPACE: 32,\n END: 35,\n HOME: 36,\n PAGE_UP: 33,\n PAGE_DOWN: 34\n};\nBN.StorageKey = {\n \"username\": \"USER_NAME\",\n \"prevUrl\": \"PREV_URL\",\n \"btnPopupElem\": \"BUTTON_POPUP_ELEM\",\n \"hasLoginPopup\": \"HAS_LOGIN_POPUP\",\n \"hasLoginToCheckoutPopup\": \"HAS_LOGIN_CHECKOUT_POPUP\",\n \"hasLoginFavoritePopup\": \"HAS_LOGIN_FAVORITE_POPUP\",\n \"loginFromFavorite\": \"LOGIN_FROM_FAVORITE\",\n \"redirectToPlpFromSearchHeader\": \"REDIRECT_TO_PLP_FROM_SEARCH_HEADER\"\n};\nBN.Regex = {\n 'allCaseCharacter': new RegExp(/([a-z].*[A-Z])|([A-Z].*[a-z])/),\n 'specialCharacter': new RegExp(/([~!%&@#$^*?\\-_+=;:'\"<,.>\\(\\)\\{\\}\\[\\]\\|\\\\\\/]{1,})/),\n 'number': new RegExp(/([0-9])/),\n 'allRule': new RegExp(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[~!%&@#$^*?\\-_+=;:'\"<,.>\\(\\)\\{\\}\\[\\]\\|\\\\\\/])[A-Za-z\\d~!%&@#$^*?\\-_+=;:'\"<,.>\\(\\)\\{\\}\\[\\]\\|\\\\\\/]{8,}$/),\n 'email': new RegExp(/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i),\n 'nonASCII': new RegExp(/[^\\x00-\\x7F]+/)\n};\nBN.MaxLengthInput = {\n 'email': 60,\n 'phone': 16,\n 'fflNumber': 36,\n 'billingFirstName': 30,\n 'billingLastName': 30,\n 'billingShopName': 36,\n 'billingAddressLine1': 36,\n 'billingAddressLine2': 36,\n 'billingCity': 20,\n 'billingCountry': 3,\n 'billingState': 2,\n 'billingZipCode': 10,\n 'deliveryFirstName': 30,\n 'deliveryLastName': 30,\n 'deliveryShopName': 36,\n 'gcMessage': 40\n};\nBN.RegisterAccountCode = {\n 'invalidUsername': 1,\n 'invalidEmailBillingAddress': 2,\n 'invalidPassword': 3\n};\nBN.AttributeStatusToClassName = {\n 1: \"attribute-in-stock\",\n 2: \"attribute-back-order\",\n 3: \"attribute-pre-order\",\n 4: \"attribute-notify-me\",\n 5: \"attribute-no-longer-available\"\n};\nBN.onChangePhoneCode = function (evt, refInputName, listPhoneCodes) {\n var _currentOption$;\n var currentOption = listPhoneCodes.filter(function (item) {\n return item.code == evt.target.value;\n });\n if ((_currentOption$ = currentOption[0]) !== null && _currentOption$ !== void 0 && _currentOption$.dialCode) {\n BNApp.$refs[refInputName].setAttribute(\"maxlength\", BN.MaxLengthInput.phone - currentOption[0].dialCode.length);\n }\n};\nBN.formatPrice = function (price) {\n var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '${{amount}}';\n var numberDigitRound = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;\n if (!price) price = 0;\n var floatPrice = parseFloat(price);\n if (isNaN(floatPrice)) return price;\n var strPrice;\n if (numberDigitRound == -1) {\n strPrice = Math.abs(floatPrice).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n } else {\n strPrice = Math.abs(floatPrice).toFixed(numberDigitRound).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n }\n return (floatPrice < 0 ? '-' : '') + format.replace(/{{amount}}/, strPrice);\n};\nBN.formatString = function (stringTemplate) {\n for (var _len4 = arguments.length, params = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n params[_key4 - 1] = arguments[_key4];\n }\n if (params && params.length) {\n for (var i = 0; i < params.length; i++) {\n stringTemplate = stringTemplate.replace(\"{\".concat(i, \"}\"), params[i]);\n }\n }\n return stringTemplate;\n};\nBN.formatInfoFFLDealer = function (model) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"address\";\n var strConverted = \"\";\n if (!model) {\n return strConverted;\n }\n if (type === \"address\") {\n if (model.street) {\n strConverted += model.street;\n }\n if (model.city) {\n strConverted += ' ' + model.city;\n }\n if (model.stateCode || model.zipCode) {\n strConverted += ', ';\n if (model.stateCode) {\n strConverted += model.stateCode;\n }\n if (model.zipCode) {\n strConverted += ', ' + model.zipCode;\n }\n }\n } else {\n var phone = model.phone ? model.phone : model.phoneNumber;\n if (phone) {\n if (model.countryCodeForPhone) {\n strConverted += '(' + model.countryCodeForPhone + ') ' + phone;\n } else {\n strConverted += phone;\n }\n }\n }\n return strConverted;\n};\nBN.equalsObject = function (a, b) {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();\n if (!a || !b || _typeof(a) !== 'object' && _typeof(b) !== 'object') return a === b;\n if (a.prototype !== b.prototype) return false;\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) return false;\n return keys.every(function (k) {\n return BN.equalsObject(a[k], b[k]);\n });\n};\nBN.selectElementContents = function (el) {\n var range = document.createRange();\n range.selectNodeContents(el);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n};\nBN.lazyLoadFiles = function (files, callback, isSelfHosting) {\n var node;\n var loadFile = function loadFile(url, type) {\n return new Promise(function (resolve) {\n node = document.createElement(type === 'css' ? 'link' : 'script');\n if (type === 'css') {\n node.type = 'text/css';\n node.rel = 'stylesheet';\n node.href = isSelfHosting ? \"/dist/Brownells/css/\" + url + \"?v=\" + BN.version : url;\n } else if (type === 'js') {\n node.type = 'text/javascript';\n node.src = isSelfHosting ? \"/dist/Brownells/js/\" + url + \"?v=\" + BN.version : url;\n }\n node.onload = function () {\n resolve({\n isError: false,\n url: url,\n type: type\n });\n };\n node.onerror = function () {\n resolve({\n isError: true,\n url: url,\n type: type\n });\n };\n window.document.head.append(node);\n });\n };\n var promies = [],\n type;\n for (type in files) {\n files[type].forEach(function (url) {\n promies.push(loadFile(url, type));\n });\n }\n Promise.all(promies).then(function (responses) {\n callback && callback(responses);\n });\n};\nBN.encodeHtml = function (e) {\n return e.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\");\n};\nBN.decodeHtml = function (input) {\n if (!input) return '';\n var e = document.createElement('textarea');\n e.innerHTML = input;\n var result = e.childNodes.length === 0 ? \"\" : e.childNodes[0].nodeValue;\n e.remove();\n return result;\n};\nBN.eventSelectVariantCallBacks = new Set();\nBN.setEventSelectVariant = function () {\n var cbAfter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var isRefreshComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var componentName = 'choose-variants';\n var isInitVueComponent = BN.vueData.components.hasOwnProperty(componentName);\n cbAfter && BN.eventSelectVariantCallBacks.add(cbAfter);\n if (document.addedEventSelectVariant) {\n return;\n }\n document.addedEventSelectVariant = true;\n document.addEventListener('click', function (e) {\n var target = e.target,\n dialogCursor = target.closest('[dialog-variant-cursor]'),\n dataDialogAddCart = BNApp.dialogAddCart;\n if (dialogCursor) {\n var isOnlyNotifyMe = dialogCursor.hasAttribute('datalayer-notify-me-click');\n var datalayerPid = dialogCursor.dataset.datalayerPid || dialogCursor.dataset.pid;\n dataDialogAddCart.volumeDiscount.data = [];\n dataDialogAddCart.datalayerPid = datalayerPid;\n if (isOnlyNotifyMe && datalayerPid) {\n var productList = dialogCursor.dataset.productList || \"\";\n BN.pushDataLayer(null, null, {\n 'event': 'click_notify_me',\n 'type': 'button',\n 'interactionText': dialogCursor === null || dialogCursor === void 0 ? void 0 : dialogCursor.innerText,\n 'location': 'Product Listing',\n 'itemListName': productList,\n 'pid': datalayerPid,\n 'sku': dialogCursor.dataset.datalayerVid\n });\n }\n }\n if (dialogCursor && (dialogCursor.dataset.pid || dialogCursor.dataset.vid)) {\n var _target$closest, _productItemNode$data;\n var productItemNodes = Array.from((target === null || target === void 0 || (_target$closest = target.closest(\".category-slider__items\")) === null || _target$closest === void 0 ? void 0 : _target$closest.querySelectorAll(\".category-slider__item\")) || []),\n productItemNode = target.closest(\".category-slider__item\"),\n _isOnlyNotifyMe = dialogCursor.hasAttribute('dialog-notify-me');\n if (!isInitVueComponent) {\n BN.SetVueComponentAtRunTime(componentName, \"variant/choose\", false, function () {\n var _BNApp$dialogAddCart;\n isRefreshComponent && ((_BNApp$dialogAddCart = BNApp.dialogAddCart) === null || _BNApp$dialogAddCart === void 0 ? void 0 : _BNApp$dialogAddCart.refresh) !== undefined && (BNApp.dialogAddCart.refresh = new Date().getTime());\n });\n isInitVueComponent = true;\n }\n dataDialogAddCart.onlyNotifyMe = _isOnlyNotifyMe;\n dataDialogAddCart.allVariantOutOfStock = dialogCursor.hasAttribute('all-variant-out-stock');\n if (dialogCursor.dataset.vid !== undefined) {\n dataDialogAddCart.variantCode = dialogCursor.dataset.vid;\n }\n if (dialogCursor.dataset.pid !== undefined) {\n dataDialogAddCart.productCode = dialogCursor.dataset.pid;\n }\n dataDialogAddCart.isReload = !dataDialogAddCart.isReload;\n dataDialogAddCart.variant = {};\n\n // set datalayer event add to cart\n if (dialogCursor.dataset.productPosition) {\n dataDialogAddCart.productPosition = dialogCursor.dataset.productPosition;\n } else if (productItemNodes.length && productItemNode) {\n dataDialogAddCart.productPosition = productItemNodes.indexOf(productItemNode) + 1;\n }\n if (dialogCursor.dataset.productList) {\n dataDialogAddCart.productList = dialogCursor.dataset.productList;\n } else if (productItemNode !== null && productItemNode !== void 0 && (_productItemNode$data = productItemNode.dataset) !== null && _productItemNode$data !== void 0 && _productItemNode$data.productList) {\n dataDialogAddCart.productList = productItemNode.dataset.productList;\n }\n BNApp.$data.selections = [];\n BN.eventSelectVariantCallBacks.forEach(function (func) {\n if (typeof func === 'function') {\n func(dialogCursor);\n }\n });\n }\n if (dialogCursor && dialogCursor.dataset.productUrl !== undefined) {\n dataDialogAddCart.productUrl = dialogCursor.dataset.productUrl;\n }\n });\n};\nBN.setEventSelectVariantForCartRecs = function () {\n var cbAfter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var isRefreshComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var componentName = 'choose-variants';\n var isInitVueComponent = BN.vueData.components.hasOwnProperty(componentName);\n document.addedEventSelectVariantForCartRecs = true;\n document.querySelectorAll(\".mini-cart [dialog-variant-cursor]\").forEach(function (elm) {\n elm.addEventListener(\"click\", function (e) {\n var target = e.target;\n var dataDialogAddCart = BNApp.dialogAddCart;\n if (target && (target.dataset.pid || target.dataset.vid)) {\n if (!isInitVueComponent) {\n BN.SetVueComponentAtRunTime(componentName, \"variant/choose\", false, function () {\n var _BNApp$dialogAddCart2;\n isRefreshComponent && ((_BNApp$dialogAddCart2 = BNApp.dialogAddCart) === null || _BNApp$dialogAddCart2 === void 0 ? void 0 : _BNApp$dialogAddCart2.refresh) !== undefined && (BNApp.dialogAddCart.refresh = new Date().getTime());\n });\n isInitVueComponent = true;\n }\n dataDialogAddCart.onlyNotifyMe = target.hasAttribute('dialog-notify-me');\n dataDialogAddCart.allVariantOutOfStock = target.hasAttribute('all-variant-out-stock');\n if (target.dataset.vid !== undefined) {\n dataDialogAddCart.variantCode = target.dataset.vid;\n } else if (target.dataset.pid !== undefined) {\n dataDialogAddCart.productCode = target.dataset.pid;\n }\n dataDialogAddCart.isReload = !dataDialogAddCart.isReload;\n dataDialogAddCart.variant = {};\n dataDialogAddCart.productPosition = target.dataset.productPosition;\n dataDialogAddCart.productList = target.dataset.productList;\n BNApp.$data.selections = [];\n typeof cbAfter === 'function' && cbAfter(target);\n }\n if (target && target.dataset.productUrl !== undefined) {\n dataDialogAddCart.productUrl = target.dataset.productUrl;\n }\n });\n });\n var miniCart = document.querySelector(\".mini-cart .mini-cart__wrap\");\n if (miniCart && !miniCart.addedEventSelectVariantForCartRecs) {\n miniCart.addedEventSelectVariantForCartRecs = true;\n miniCart.addEventListener(\"click\", function (e) {\n var _e$target;\n var dialogCursor = (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.closest('[dialog-variant-cursor]');\n if (dialogCursor) {\n var productList = dialogCursor.dataset.productList,\n datalayerPid = dialogCursor.dataset.datalayerPid || dialogCursor.dataset.pid;\n if (dialogCursor.hasAttribute('datalayer-notify-me-click') && datalayerPid && productList) {\n BN.pushDataLayer(null, null, {\n 'event': 'click_notify_me',\n 'type': 'button',\n 'interactionText': dialogCursor.innerText,\n 'location': 'Product Listing',\n 'itemListName': productList,\n 'pid': datalayerPid,\n 'sku': dialogCursor.dataset.datalayerVid\n });\n }\n }\n });\n }\n};\nBN.cacheListOfProduct = function (data_object, event) {\n var _data_object$ecommerc;\n if ((data_object === null || data_object === void 0 ? void 0 : data_object.event) === 'select_item' && data_object !== null && data_object !== void 0 && (_data_object$ecommerc = data_object.ecommerce) !== null && _data_object$ecommerc !== void 0 && (_data_object$ecommerc = _data_object$ecommerc.click) !== null && _data_object$ecommerc !== void 0 && _data_object$ecommerc.products[0]) {\n var _data_object$ecommerc2, _data_object$ecommerc3, _data_object$ecommerc4;\n var currentDate = new Date();\n var cacheListOfProduct = {\n id: data_object === null || data_object === void 0 || (_data_object$ecommerc2 = data_object.ecommerce) === null || _data_object$ecommerc2 === void 0 || (_data_object$ecommerc2 = _data_object$ecommerc2.click) === null || _data_object$ecommerc2 === void 0 || (_data_object$ecommerc2 = _data_object$ecommerc2.products[0]) === null || _data_object$ecommerc2 === void 0 ? void 0 : _data_object$ecommerc2.id,\n expiresAt: currentDate.setDate(currentDate.getDate() + 1),\n list: data_object === null || data_object === void 0 || (_data_object$ecommerc3 = data_object.ecommerce) === null || _data_object$ecommerc3 === void 0 || (_data_object$ecommerc3 = _data_object$ecommerc3.click) === null || _data_object$ecommerc3 === void 0 || (_data_object$ecommerc3 = _data_object$ecommerc3.actionField) === null || _data_object$ecommerc3 === void 0 ? void 0 : _data_object$ecommerc3.list,\n position: data_object === null || data_object === void 0 || (_data_object$ecommerc4 = data_object.ecommerce) === null || _data_object$ecommerc4 === void 0 || (_data_object$ecommerc4 = _data_object$ecommerc4.click) === null || _data_object$ecommerc4 === void 0 || (_data_object$ecommerc4 = _data_object$ecommerc4.actionField) === null || _data_object$ecommerc4 === void 0 ? void 0 : _data_object$ecommerc4.position\n };\n if (event.ctrlKey) {\n localStorage.setItem(\"cacheListOfProduct\", JSON.stringify(cacheListOfProduct));\n } else {\n sessionStorage.setItem(\"cacheListOfProduct\", JSON.stringify(cacheListOfProduct));\n }\n }\n};\nBN.pushDataLayer = function (element, event, data_object) {\n if (element && event) {\n element.addEventListener(event, function (e) {\n //Google still can track events even Network speed is 1Kbps\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(data_object);\n BN.cacheListOfProduct(data_object, e);\n });\n } else if (!element && !event) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(data_object);\n }\n};\nBN.waitForElmRendering = function (selector, timeout) {\n var it;\n return new Promise(function (resolve) {\n if (document.querySelector(selector)) {\n return resolve(document.querySelector(selector));\n }\n if (!timeout) {\n timeout = 15000;\n }\n it = setTimeout(function () {\n if (observer) {\n observer.disconnect();\n resolve();\n }\n }, timeout);\n var observer = new MutationObserver(function () {\n if (document.querySelector(selector)) {\n observer.disconnect();\n it && clearTimeout(it);\n resolve(document.querySelector(selector));\n }\n });\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n });\n};\nBN.collectVolumeDiscountInfo = function (settings, data) {\n var amountLabel = settings.popupAmountColumnName,\n priceLabel = settings.popupPriceColumnName,\n quantityLabel = settings.popupQuantityColumnName,\n volumeDiscountTitle = settings.popupTitle,\n iconOnPdpUrl = settings.iconOnPdpUrl,\n textOnPdp = settings.textOnPdp;\n BNApp.dialogAddCart.volumeDiscount.iconOnPdpUrl = iconOnPdpUrl;\n BNApp.dialogAddCart.volumeDiscount.textOnPdp = textOnPdp;\n BNApp.dialogAddCart.volumeDiscount.data = data;\n BNApp.dialogAddCart.volumeDiscount.title = volumeDiscountTitle || \"Volume Discount\";\n BNApp.dialogAddCart.volumeDiscount.columns = [quantityLabel || \"Quantity\", priceLabel || \"Price Per Unit\", amountLabel || \"Total Amount\"];\n};\nfunction LogObjectChange(objectPath) {\n var evalString = \"\".concat(objectPath, \" = new Proxy(\").concat(objectPath, \", { set(target, key, value) { console.trace(`\").concat(objectPath, \" changed: ${key} - ${value}`); target[key] = value; return true; } })\");\n eval(evalString);\n return evalString;\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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar dispathEvent = {\n open: function open(target) {\n var customEvent = new CustomEvent('dialogOpen', {\n detail: {\n target: target\n }\n });\n document.dispatchEvent(customEvent);\n },\n close: function close(target) {\n var customEvent = new CustomEvent('dialogClose', {\n detail: {\n target: target\n }\n });\n document.dispatchEvent(customEvent);\n }\n};\nvar DropdownService = /*#__PURE__*/function () {\n function DropdownService() {\n _classCallCheck(this, DropdownService);\n }\n return _createClass(DropdownService, [{\n key: \"init\",\n value: function init(container) {\n var dropdownElms = (container || document).querySelectorAll(\"[show-dropdown]\"),\n self = this;\n dropdownElms.forEach(function (dropdownElm) {\n dropdownElm.querySelectorAll(\"[dropdown-cursor]\").forEach(function (cursor) {\n if (cursor.closest(\"[show-dropdown]\") == dropdownElm) {\n if (!cursor.initializedDropdown) {\n cursor.initializedDropdown = true;\n cursor.addEventListener(\"click\", function (e) {\n self.show(e.target.closest(\"[dropdown-cursor]\"), null, true);\n });\n }\n }\n });\n });\n }\n }, {\n key: \"getListFocusableElms\",\n value: function getListFocusableElms(element) {\n // let activeElement = document.activeElement;\n // if(element.contains(activeElement)) return null;\n return element.querySelectorAll('a[href]:not([hide-on-desktop]), button:not([disabled]):not([hide-on-desktop]), input:not([disabled]):not([type=\"hidden\"]), textarea, select:not([disabled]), details, [tabindex]:not([tabindex=\"-1\"])');\n }\n\n // close(e) {\n // let activePanelElm = e.target.closest(\"[dropdown-panel].show\");\n // if(!activePanelElm)\n // return;\n\n // BN.dropdownService.close()\n // activePanelElm.classList.remove(\"show\");\n // BN.lockScrollIos.offAll();\n // dispathEvent.close(activePanelElm);\n // }\n }, {\n key: \"close\",\n value: function close(e, panelElm) {\n var _cursorElm$classList;\n // if(panelElm && panelElm.dataset.onclose) {\n // panelElm.dataset.onclose(e);\n // }\n\n panelElm = panelElm ? panelElm : e.target.closest(\"[dropdown-panel].show\");\n if (!panelElm) return;else {\n var loginRecaptcharEl = panelElm.querySelector(\".login_display_recaptcha\");\n if (loginRecaptcharEl) {\n var recaptchaEl = document.querySelector(\".grecaptcha-badge\");\n if (typeof updateReCaptchaInterval != 'undefined') {\n clearInterval(updateReCaptchaInterval);\n }\n loginRecaptcharEl.parentNode.removeChild(loginRecaptcharEl);\n if (recaptchaEl) {\n recaptchaEl.classList.remove('active');\n }\n }\n }\n Object.keys(BN.onDropdownCloseFncList).forEach(function (k) {\n BN.onDropdownCloseFncList[k](e);\n });\n var cursorElm = BN.listDialogCursor[BN.listDialogCursor.length - 1];\n BN.listDialogCursor = BN.listDialogCursor.slice(0, -1);\n panelElm.classList.remove(\"show\");\n BN.lockScrollIos.offAll();\n cursorElm === null || cursorElm === void 0 || (_cursorElm$classList = cursorElm.classList) === null || _cursorElm$classList === void 0 || _cursorElm$classList.remove('active');\n document.body.classList.remove(\"showing-megamenu\");\n document.body.classList.remove(\"showing-popover\");\n if (panelElm.classList.contains(\"mini-cart\") && BNApp.cart) {\n BNApp.cart.showcart = false;\n }\n this.hideDialogComplete();\n dispathEvent.close(panelElm);\n this.resetStyleElm(panelElm);\n if (BN.isScreenReaderMode && cursorElm) {\n cursorElm.focus();\n var targetPanelCursorContainer = cursorElm.closest(\"[show-dropdown]\");\n if (targetPanelCursorContainer) {\n var _BNApp$cart;\n if ((_BNApp$cart = BNApp.cart) !== null && _BNApp$cart !== void 0 && _BNApp$cart.showcart) {\n BN.CartService.autoFocusAtFirstElm(true);\n } else BN.dropdownService.loopFocus(document.querySelector(targetPanelCursorContainer.dataset.target), null, true);\n }\n }\n }\n }, {\n key: \"hideDialogComplete\",\n value: function hideDialogComplete() {\n setTimeout(function () {\n if (!BN.listDialogCursor.length) {\n document.body.classList.remove(\"showing-dialog\");\n }\n }, 250);\n }\n }, {\n key: \"closeAll\",\n value: function closeAll() {\n window.document.body.click();\n }\n }, {\n key: \"show\",\n value: function show(currentCursor, targetCursor, isToggle) {\n var _parentElm$dataset;\n //targetCursor = event or element\n if (typeof currentCursor == \"string\") currentCursor = document.querySelector(currentCursor);\n var self = this,\n parentElm = currentCursor.closest(\"[show-dropdown]\"),\n targetPanel = document.querySelector(parentElm.dataset.target);\n if (targetPanel.classList.contains('dialog-login')) {\n var templateRecaptcha = document.querySelector(\".template-recaptcha\");\n var cloneEl = templateRecaptcha.content.cloneNode(true);\n targetPanel.querySelector('.login__form').appendChild(cloneEl);\n var errorMessageEl = targetPanel.querySelector(\".login__form__general-msg\");\n if (errorMessageEl.dataset.errorEdgeMember === \"true\" && BNApp.cart && !BNApp.cart.isEdgeMembershipInCart) {\n errorMessageEl.dataset.errorEdgeMember = \"false\";\n errorMessageEl.innerText = \"\";\n }\n }\n if (targetCursor) {\n currentCursor = targetCursor.target || targetCursor;\n currentCursor.setAttribute(\"dropdown-cursor\", \"\");\n BN.listDialogCursor.push(currentCursor);\n } else BN.listDialogCursor.push(currentCursor);\n if (targetPanel) {\n if (!currentCursor.classList.contains(\"active\")) {\n dispathEvent.open(targetPanel);\n parentElm.querySelectorAll(\"[dropdown-cursor].active\").forEach(function (activeCursorElm) {\n activeCursorElm.classList.remove(\"active\");\n });\n if (targetPanel.dataset.lockScroll !== undefined) {\n targetPanel.querySelectorAll('[data-scroll]').forEach(function (elm) {\n BN.lockScrollIos.on(elm);\n });\n }\n currentCursor.classList.add(\"active\");\n parentElm.classList.add(\"opening\");\n targetPanel.classList.add(\"show\");\n // targetPanel.style.opacity = 0;\n var pos = parentElm.getBoundingClientRect();\n pos.y = pos.y + pos.height;\n pos.x = pos.x - targetPanel.offsetWidth.width / 2;\n // parentElm.offsetLeft + (parentElm.offsetWidth / 2) - (targetPanel.offsetWidth / 2)\n switch (parentElm.dataset.name) {\n case \"nav\":\n targetPanel.classList.remove(\"show-all\");\n if (currentCursor.dataset.target === \"all\") {\n targetPanel.classList.add(\"show-all\");\n pos = {\n x: 0,\n y: 0\n };\n }\n document.body.classList.add(\"showing-megamenu\");\n break;\n case \"dialog\":\n pos = {\n x: 0,\n y: 0\n };\n setTimeout(function () {\n self.loopFocus(targetPanel);\n }, 500);\n document.body.classList.add(\"showing-dialog\");\n break;\n case \"mini-cart\":\n pos = {\n x: 0,\n y: 0\n };\n document.body.classList.add(\"showing-dialog\");\n break;\n case 'popover':\n document.body.classList.add(\"showing-popover\");\n if (BN.screenMode !== 'desktop') {\n pos.y = 0;\n } else if (((_parentElm$dataset = parentElm.dataset) === null || _parentElm$dataset === void 0 ? void 0 : _parentElm$dataset.placement) === 'right') {\n var rectCursor = currentCursor.getBoundingClientRect();\n pos._x = BN.wWidth - (rectCursor.x + rectCursor.width);\n }\n break;\n }\n if (pos.x < 0) pos.x = 0;\n if (pos.y < 0) pos.y = 0;\n if (!parentElm.dataset.ignoreDetectPositionAutomatically) {\n targetPanel.style.left = \"\".concat(pos.x, \"px\");\n targetPanel.style.right = \"\".concat(pos._x, \"px\");\n targetPanel.style.top = \"\".concat(pos.y, \"px\");\n // targetPanel.style.opacity = 1;\n targetPanel.style.height = \"calc(100% - \".concat(pos.y, \"px)\");\n }\n if (parentElm.dataset.height === \"full\") {\n targetPanel.style.height = \"calc(100vh + \".concat(pos.y, \"px)\");\n }\n } else if (isToggle) {\n targetPanel.classList.remove(\"show\");\n currentCursor.classList.remove(\"active\");\n parentElm.classList.remove(\"opening\");\n document.body.classList.remove(\"showing-megamenu\");\n document.body.classList.remove(\"showing-popover\");\n this.hideDialogComplete();\n this.resetStyleElm(targetPanel);\n BN.lockScrollIos.offAll();\n dispathEvent.close(targetPanel);\n }\n }\n }\n }, {\n key: \"firstFocusableElmKeyHandler\",\n value: function firstFocusableElmKeyHandler(e) {\n if (e.key == \"Tab\" && !e.shiftKey) {\n e.preventDefault();\n BN.dropdownService.firstFocusableElm.focus();\n }\n }\n }, {\n key: \"lastFocusableElmKeyHandler\",\n value: function lastFocusableElmKeyHandler(e) {\n if (e.key == \"Tab\" && e.shiftKey) {\n e.preventDefault();\n BN.dropdownService.lastFocusableElm.focus();\n }\n }\n }, {\n key: \"loopFocus\",\n value: function loopFocus(targetPanel, listFocusableElms, onlyLoopFocus) {\n var tmpListFocusableElms = listFocusableElms ? listFocusableElms : this.getListFocusableElms(targetPanel),\n tmpListFocusableElmsLength = tmpListFocusableElms.length,\n vm = this;\n if (tmpListFocusableElmsLength) {\n var _BN$dropdownService$l, _BN$dropdownService$f;\n tmpListFocusableElms.forEach(function (item, indx) {\n var _tmpListFocusableElms, _tmpListFocusableElms2;\n (_tmpListFocusableElms = tmpListFocusableElms[indx]) === null || _tmpListFocusableElms === void 0 || _tmpListFocusableElms.removeEventListener(\"keydown\", vm.firstFocusableElmKeyHandler);\n (_tmpListFocusableElms2 = tmpListFocusableElms[indx]) === null || _tmpListFocusableElms2 === void 0 || _tmpListFocusableElms2.removeEventListener(\"keydown\", vm.lastFocusableElmKeyHandler);\n });\n BN.dropdownService.firstFocusableElm = tmpListFocusableElms[0], BN.dropdownService.lastFocusableElm = tmpListFocusableElmsLength > 1 ? tmpListFocusableElms[tmpListFocusableElmsLength - 1] : BN.dropdownService.firstFocusableElm;\n if (!onlyLoopFocus) BN.dropdownService.firstFocusableElm.focus();\n (_BN$dropdownService$l = BN.dropdownService.lastFocusableElm) === null || _BN$dropdownService$l === void 0 || _BN$dropdownService$l.addEventListener(\"keydown\", vm.firstFocusableElmKeyHandler);\n (_BN$dropdownService$f = BN.dropdownService.firstFocusableElm) === null || _BN$dropdownService$f === void 0 || _BN$dropdownService$f.addEventListener(\"keydown\", vm.lastFocusableElmKeyHandler);\n return {\n firstFocusableElm: BN.dropdownService.firstFocusableElm,\n lastFocusableElm: BN.dropdownService.lastFocusableElm\n };\n }\n }\n }, {\n key: \"resetStyleElm\",\n value: function resetStyleElm(elm) {\n if (elm) {\n elm.style.top = null;\n elm.style.left = null;\n elm.style.right = null;\n elm.style.height = null;\n }\n }\n }, {\n key: \"closeRemainingDropdown\",\n value: function closeRemainingDropdown(selectorClassOrId) {\n document.querySelectorAll(\"[dropdown-panel].show\").forEach(function (panelElm) {\n if (!panelElm.closest(selectorClassOrId)) {\n panelElm.classList.remove(\"show\");\n BN.dropdownService.resetStyleElm(panelElm);\n dispathEvent.close(panelElm);\n BN.lockScrollIos.offAll();\n }\n });\n document.querySelectorAll(\"[dropdown-cursor].active\").forEach(function (item) {\n if (!item.closest(selectorClassOrId)) {\n item.classList.remove(\"active\");\n }\n });\n document.querySelectorAll(\"[show-dropdown].opening\").forEach(function (item) {\n if (!item.closest(selectorClassOrId)) {\n item.classList.remove(\"opening\");\n }\n });\n }\n }]);\n}();\nBN.domContentLoadedFncList.push(function () {\n BN.dropdownService = new DropdownService();\n BN.dropdownService.init();\n window.addEventListener(\"keydown\", function (e) {\n if (e.key === \"Escape\") {\n var latestCursor,\n listDialogCursorLength = BN.listDialogCursor.length;\n if (listDialogCursorLength) latestCursor = BN.listDialogCursor[listDialogCursorLength - 1];\n var panelElms = document.querySelectorAll(\"[dropdown-panel].show\"),\n panelElms_length = panelElms.length;\n if (panelElms_length) {\n BN.dropdownService.close(null, panelElms[panelElms_length - 1]);\n if (latestCursor && BN.isScreenReaderMode) {\n latestCursor.focus();\n }\n }\n }\n });\n var mouseUpData = null,\n mouseDownData = null;\n window.addEventListener(\"mouseup\", function (e) {\n mouseUpData = e;\n });\n window.addEventListener(\"mousedown\", function (e) {\n mouseDownData = e;\n });\n window.addEventListener(\"click\", function (e) {\n var _mouseDownData, _mouseUpData;\n var target = e.target;\n if (BN.listDialogCursor.indexOf(target) == -1 && target.closest(\"[dropdown-cursor]\") == null && (!target.closest('[dropdown-panel-container]') || target.closest('[dropdown-panel-container]') && target.hasAttribute(\"dropdown-panel\")) && !target.closest('.toast') && !target.closest('.disable-click-outside') && !target.closest('#onetrust-consent-sdk') && !target.closest('.bn-select') && ((_mouseDownData = mouseDownData) === null || _mouseDownData === void 0 ? void 0 : _mouseDownData.target) == ((_mouseUpData = mouseUpData) === null || _mouseUpData === void 0 ? void 0 : _mouseUpData.target)) {\n if (target.hasAttribute(\"dropdown-panel\")) {\n BN.dropdownService.close(e);\n } else if (document.contains(target)) {\n //prevent close mini-cart automatically by clicking on body\n //call BN.cartCtrl.close() instead\n if (document.body.classList.contains(\"mini-cart--opening\")) return;\n BN.listDialogCursor = [];\n document.querySelectorAll(\"[dropdown-panel].show\").forEach(function (panelElm) {\n if (document.contains(target)) {\n panelElm.classList.remove(\"show\");\n // const onCloseCallbackFn = panelElm.dataset?.onclose;\n // if(onCloseCallbackFn)\n // eval(onCloseCallbackFn);\n BN.dropdownService.resetStyleElm(panelElm);\n dispathEvent.close(panelElm);\n BN.lockScrollIos.offAll();\n }\n });\n document.querySelectorAll(\"[dropdown-cursor].active\").forEach(function (item) {\n item.classList.remove(\"active\");\n });\n document.querySelectorAll(\"[show-dropdown].opening\").forEach(function (item) {\n item.classList.remove(\"opening\");\n });\n }\n\n // document.querySelectorAll(\".bn-select\");\n document.body.classList.remove(\"showing-megamenu\");\n document.body.classList.remove(\"showing-popover\");\n BN.dropdownService.hideDialogComplete();\n Object.keys(BN.onDropdownCloseFncList).forEach(function (k) {\n BN.onDropdownCloseFncList[k](e);\n });\n }\n mouseUpData = null;\n mouseDownData = null;\n });\n document.querySelectorAll(\"[close-dropdown]\").forEach(function (closeBtn) {\n closeBtn.addEventListener(\"click\", function (e) {\n BN.dropdownService.close(e);\n e.stopPropagation();\n });\n });\n document.querySelectorAll(\"[close-all-dropdown]\").forEach(function (closeBtn) {\n closeBtn.addEventListener(\"click\", function (e) {\n document.body.click();\n });\n });\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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar DropdownMenu = /*#__PURE__*/function () {\n function DropdownMenu(dropdownElement) {\n var _this = this;\n _classCallCheck(this, DropdownMenu);\n this.ignoreBlur = false;\n var vm = this;\n this.dropdownElement = dropdownElement;\n this.dropdownToggle = dropdownElement.querySelector(\".bn-dropdown-menu-toggle\");\n this.dropdownPanel = dropdownElement.querySelector(\".bn-dropdown-menu-panel\");\n this.dropdownPanel.addEventListener(\"mousedown\", this.onDropdownPanelMousedown.bind(this));\n // this.dropdownToggle.addEventListener(\"blur\", this.onToggleBlur.bind(this))\n this.dropdownToggle.addEventListener(\"click\", this.onToggleClick.bind(this));\n this.dropdownToggle.addEventListener(\"keydown\", this.onToggleKeyDown.bind(this));\n this.debounceSetPositionPanel = BN.debounce(this.setPositionPanel.bind(this), 150);\n this.dropdownItems = this.dropdownPanel.querySelectorAll(\".bn-dropdown-menu-item\").forEach(function (element) {\n element.addEventListener(\"click\", function () {\n _this.updateState(false);\n });\n });\n this.dropdownElement.querySelectorAll(\".bn-dropdown-menu-panel a\").forEach(function (item) {\n item.addEventListener(\"blur\", vm.onToggleBlur.bind(_this));\n item.addEventListener(\"keydown\", _this.onToggleKeyDown.bind(_this));\n });\n }\n return _createClass(DropdownMenu, [{\n key: \"onDropdownPanelMousedown\",\n value: function onDropdownPanelMousedown() {\n this.ignoreBlur = true;\n }\n }, {\n key: \"setPositionPanel\",\n value: function setPositionPanel() {\n var posCursor = this.dropdownToggle.getBoundingClientRect();\n var posPanel = this.dropdownPanel.getBoundingClientRect();\n if (BN.wHeight - posCursor.y > posPanel.height) {\n this.dropdownPanel.style.top = \"calc(100% + 0.4rem)\";\n this.dropdownPanel.style.bottom = \"auto\";\n } else {\n this.dropdownPanel.style.top = \"auto\";\n this.dropdownPanel.style.bottom = \"calc(100% + 0.2rem)\";\n }\n if (BN.wWidth < posPanel.right) {\n this.dropdownPanel.style.left = \"\".concat(BN.wWidth - posPanel.right - 32, \"px\"); // 32 is gutter\n }\n }\n }, {\n key: \"onToggleBlur\",\n value: function onToggleBlur() {\n if (this.ignoreBlur) {\n this.ignoreBlur = false;\n return;\n }\n this.updateState(false);\n }\n }, {\n key: \"onToggleClick\",\n value: function onToggleClick() {\n this.updateState(!this.isOpen);\n }\n }, {\n key: \"onToggleKeyDown\",\n value: function onToggleKeyDown(event) {\n // const { key } = event\n // const max = this.selectElement.querySelectorAll(\".bn-dropdown-menu-item\").length - 1\n var action = this.getActionFromKey(event, this.open);\n switch (action) {\n // case SelectActions.Last: \n case SelectActions.First:\n this.updateState(true);\n break;\n // case SelectActions.Next:\n // case SelectActions.Previous:\n // case SelectActions.PageUp:\n // case SelectActions.PageDown:\n // event.preventDefault()\n // return this.onOptionChange(getUpdatedIndex(this.activeIndex, max, action))\n // case SelectActions.CloseSelect:\n // event.preventDefault()\n // this.selectOption(this.activeIndex)\n case SelectActions.Close:\n event.preventDefault();\n return this.updateState(false);\n // case SelectActions.Type:\n // return this.onComboType(key)\n case SelectActions.Open:\n event.preventDefault();\n return this.updateState(true);\n }\n }\n }, {\n key: \"updateState\",\n value: function updateState(open) {\n this.isOpen = open;\n if (open) {\n var _this$dropdownElement;\n this.dropdownElement.classList.add(\"active\");\n this.setPositionPanel();\n window.addEventListener('scroll', this.debounceSetPositionPanel);\n (_this$dropdownElement = this.dropdownElement.querySelector(\".bn-dropdown-menu-panel a\")) === null || _this$dropdownElement === void 0 || _this$dropdownElement.focus();\n } else {\n window.removeEventListener('scroll', this.debounceSetPositionPanel);\n this.dropdownElement.classList.remove(\"active\");\n this.dropdownToggle.focus();\n }\n }\n\n // map a key press to an action\n }, {\n key: \"getActionFromKey\",\n value: function getActionFromKey(event) {\n var key = event.key,\n altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n var openKeys = [\"ArrowDown\", \"ArrowUp\", \"Enter\", \" \"]; // all keys that will do the default open action\n // handle opening when closed\n if (!this.isOpen && openKeys.includes(key)) {\n return SelectActions.Open;\n }\n\n // home and end move the selected option when open or closed\n if (key === \"Home\") {\n return SelectActions.First;\n }\n if (key === \"End\") {\n return SelectActions.Last;\n }\n\n // handle typing characters when open or closed\n if (key === \"Backspace\" || key === \"Clear\" || key.length === 1 && key !== \" \" && !altKey && !ctrlKey && !metaKey) {\n return SelectActions.Type;\n }\n\n // handle keys when open\n if (this.isOpen) {\n if (key === \"ArrowUp\" && altKey) {\n return SelectActions.CloseSelect;\n } else if (key === \"ArrowDown\" && !altKey) {\n return SelectActions.Next;\n } else if (key === \"ArrowUp\") {\n return SelectActions.Previous;\n } else if (key === \"PageUp\") {\n return SelectActions.PageUp;\n } else if (key === \"PageDown\") {\n return SelectActions.PageDown;\n } else if (key === \"Escape\") {\n return SelectActions.Close;\n } else if (key === \"Enter\" || key === \" \") {\n return SelectActions.CloseSelect;\n }\n }\n }\n }]);\n}();\nBN.domContentLoadedFncList.push(function () {\n document.querySelectorAll(\".bn-dropdown-menu\").forEach(function (dropdownElm, index) {\n if (!dropdownElm.dropdown) {\n dropdownElm.dropdown = new DropdownMenu(dropdownElm);\n }\n });\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 _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// mostly taken from WAI-ARIA Authoring guide: https://w3c.github.io/aria-practices/examples/combobox/combobox-select-only.html\n\n// Save a list of named combobox actions, for future readability\nvar SelectActions = {\n Close: 0,\n CloseSelect: 1,\n First: 2,\n Last: 3,\n Next: 4,\n Open: 5,\n PageDown: 6,\n PageUp: 7,\n Previous: 8,\n OpenFirst: 9,\n OpenLast: 10\n};\nvar SelectBox = /*#__PURE__*/function () {\n function SelectBox(comboboxElement) {\n var _this = this;\n _classCallCheck(this, SelectBox);\n this.isOpen = false;\n this.ignoreBlur = false;\n this.active_value = \"\";\n this.active_key = \"\";\n this.options = {};\n this.indexFocus = 0;\n this.indexSuggestion = 0;\n this.keyPressSuggestion = null;\n this.isSuggestioning = false;\n this.itemToShow = 5;\n this.comboboxElement = comboboxElement;\n this.disabled = comboboxElement.hasAttribute(\"disabled\");\n this.selectElement = comboboxElement.querySelector(\"select\");\n this.isReverseKeyValue = this.selectElement && this.selectElement.hasAttribute('data-phone-code');\n this.keepOpened = comboboxElement.hasAttribute('keep-opened');\n this.collapseOnMobile = comboboxElement.hasAttribute('collapse-mobile');\n this.selectCursor = comboboxElement.querySelector(\"[role=combobox]\");\n this.selectPanel = comboboxElement.querySelector(\"[role=listbox]\");\n this.selectCursor.addEventListener(\"blur\", this.onComboBlur.bind(this));\n this.selectCursor.addEventListener(\"click\", this.onComboClick.bind(this));\n this.selectCursor.addEventListener(\"keydown\", this.onComboKeyDown.bind(this));\n this.selectCursor.addEventListener(\"focus\", this.onComboFocus.bind(this));\n var vm = this;\n this.debounceSetPositionPanel = function () {\n vm.setPositionPanel();\n };\n this.selectElement.addEventListener('dataChanged', function (e) {\n _this.selectPanel.classList.add('show', 'visually-hidden');\n _this.selectPanel && (_this.selectPanel.scrollTop = 0);\n _this.selectPanel.classList.remove('show', 'visually-hidden');\n _this.initOptionTag();\n _this.selectElement.dispatchEvent(new Event('change', {\n bubbles: true\n }));\n });\n this.initOptionTag();\n if (this.disabled) {\n this.selectCursor.setAttribute(\"tabindex\", \"-1\");\n }\n var input = this.selectPanel.querySelector('input');\n if (input) {\n input.addEventListener('mousedown', function (e) {\n _this.ignoreBlur = true;\n });\n input.addEventListener('keypress', function (e) {\n var key = e.which || e.keyCode;\n if (key === 13) {\n e.stopPropagation();\n _this.updateState(false);\n }\n });\n input.addEventListener('blur', function (e) {\n _this.updateState(false);\n });\n }\n }\n return _createClass(SelectBox, [{\n key: \"replaceOptionSelect\",\n value: function replaceOptionSelect(data) {\n var opt;\n this.selectElement.innerHTML = '';\n var _iterator = _createForOfIteratorHelper(data),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n opt = document.createElement('option');\n opt.value = key[0];\n opt.innerHTML = key[0];\n this.selectElement.appendChild(opt);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"initOptionTag\",\n value: function initOptionTag(data) {\n var _this2 = this;\n if (this.selectElement) {\n var vm = this;\n this.selectPanel.dataset.reset !== 'false' && (this.selectPanel.innerHTML = \"\");\n // init options in to select-panel\n var option_object = new Map();\n var addition_option_object = {};\n this.active_value = \"\";\n this.active_key = \"\";\n if (data) {\n var entriesObj = Object.entries(data);\n option_object = entriesObj.length ? new Map(entriesObj) : data;\n this.replaceOptionSelect(option_object);\n } else {\n this.selectElement.querySelectorAll(\"option\").forEach(function (option, optionIdx) {\n var innerText = option.textContent;\n if (innerText) {\n var _option$dataset, _option$dataset2;\n var optionKeyName = _this2.isReverseKeyValue ? option.value : innerText;\n addition_option_object[optionKeyName] = {};\n addition_option_object[optionKeyName]['selected'] = option.selected;\n if (option.getAttribute('data-thumbnail')) {\n // option_object[optionKeyName] = option.innerHTML;\n option_object.set(optionKeyName, option.innerHTML);\n addition_option_object[optionKeyName]['data-thumbnail'] = option.getAttribute('data-thumbnail');\n } else {\n // option_object[innerText] = option.value\n option_object.set(innerText, option.value);\n }\n if ((_option$dataset = option.dataset) !== null && _option$dataset !== void 0 && _option$dataset.tooltip) {\n addition_option_object[optionKeyName]['tooltip'] = option.dataset.tooltip;\n }\n if ((_option$dataset2 = option.dataset) !== null && _option$dataset2 !== void 0 && _option$dataset2.additionalClass) {\n addition_option_object[optionKeyName]['additionalClass'] = option.dataset.additionalClass;\n }\n }\n });\n }\n this.options = option_object;\n var keys_option = Array.from(option_object.keys());\n keys_option.forEach(function (option, optionIdx) {\n var _addition_option_obje;\n var isSelected = !!((_addition_option_obje = addition_option_object[option]) !== null && _addition_option_obje !== void 0 && _addition_option_obje.selected);\n var optionElement = document.createElement(\"div\"),\n value = option_object.get(option);\n optionElement.setAttribute(\"role\", \"option\");\n optionElement.setAttribute(\"data-index\", optionIdx);\n optionElement.setAttribute(\"data-value\", value);\n if (addition_option_object[option] && addition_option_object[option]['tooltip']) {\n optionElement.setAttribute('data-tooltip', addition_option_object[option]['tooltip']);\n optionElement.setAttribute('data-tooltip-location', 'right');\n }\n optionElement.setAttribute(\"aria-selected\", isSelected);\n if (isSelected) {\n _this2.comboboxElement.classList.remove('without-choosing');\n optionElement.setAttribute(\"aria-current\", true);\n _this2.indexFocus = optionIdx;\n }\n if (addition_option_object[option][\"additionalClass\"]) {\n optionElement.classList.add(addition_option_object[option][\"additionalClass\"]);\n }\n var htmlOptionSelected = '';\n if (addition_option_object[option] && addition_option_object[option]['data-thumbnail']) {\n var html;\n if (window.lazySizes) {\n html = '' + value;\n } else {\n html = '
' + value;\n }\n optionElement.innerHTML = html;\n optionElement.setAttribute(\"title\", value);\n optionElement.setAttribute(\"data-country\", option);\n if (isSelected) {\n htmlOptionSelected = html;\n }\n } else {\n optionElement.innerText = option;\n optionElement.setAttribute(\"title\", option);\n if (isSelected) {\n htmlOptionSelected = option;\n }\n }\n if (isSelected && _this2.selectCursor.dataset.setHtml !== 'false') {\n _this2.selectCursor.innerHTML = htmlOptionSelected;\n }\n optionElement.addEventListener(\"mousedown\", function () {\n _this2.ignoreBlur = true;\n _this2.activeIndex = optionIdx;\n });\n optionElement.dataset.touchDirection = {\n direction: \"up\",\n currentCursorPos: 0\n };\n var touchDirection = null,\n touchStartPos = {},\n isTouching = false;\n optionElement.addEventListener(\"touchstart\", function (e) {\n if (e.touches.length == 1) {\n isTouching = true;\n touchStartPos.y = e.touches[0].clientY;\n }\n }, {\n passive: false\n });\n optionElement.addEventListener(\"touchend\", function (e) {\n if (e.touches.length == 1) {\n isTouching = false;\n }\n });\n optionElement.addEventListener(\"touchmove\", function (e) {\n if (e.touches.length == 1) {\n touchDirection = touchStartPos.y > e.touches[0].clientY ? 'down' : 'up';\n touchStartPos.y = e.touches[0].clientY;\n if ((vm.selectPanel.scrollTop == 0 && touchDirection == 'up' || vm.selectPanel.scrollTop + vm.selectPanel.offsetHeight - 2 == vm.selectPanel.scrollHeight && touchDirection == 'down') && e.cancelable && isTouching) {\n e.preventDefault();\n }\n }\n }, {\n passive: false\n });\n optionElement.addEventListener(\"click\", function (e) {\n e.stopPropagation();\n var _ref = e.detail || {},\n _ref$dispatchEvent = _ref.dispatchEvent,\n dispatchEvent = _ref$dispatchEvent === void 0 ? true : _ref$dispatchEvent;\n _this2.selectElement.setAttribute('is-dirty', true);\n if (_this2.selectElement.hasAttribute(\"data-append-html\")) {\n _this2.selectOption(option, optionIdx, optionElement.innerHTML, dispatchEvent);\n } else {\n _this2.selectOption(option, optionIdx, null, dispatchEvent);\n }\n if (_this2.isSuggestioning) {\n _this2.setScrollToOptionSelected();\n _this2.isSuggestioning = false;\n } else {\n !_this2.keepOpened && _this2.updateState(false);\n _this2.resetSuggestion();\n }\n _this2.selectCursor.focus();\n });\n _this2.selectPanel.appendChild(optionElement);\n });\n !this.selectElement.addedEventChange && this.selectElement.addEventListener('change', function (e) {\n var _e$detail;\n var value = ((_e$detail = e.detail) === null || _e$detail === void 0 ? void 0 : _e$detail.value) !== undefined ? e.detail.value : _this2.selectElement.value;\n if (value) {\n var querySelector = '';\n if (_this2.comboboxElement.hasAttribute('data-phone-code')) {\n querySelector = \"[role=\\\"option\\\"][data-country=\\\"\".concat(value, \"\\\"][aria-selected=\\\"false\\\"]\");\n } else {\n querySelector = \"[role=\\\"option\\\"][data-value=\\\"\".concat(value, \"\\\"][aria-selected=\\\"false\\\"]\");\n }\n var optionEl = _this2.comboboxElement.querySelector(querySelector);\n if (optionEl) {\n optionEl.dispatchEvent(new CustomEvent('click', {\n detail: {\n dispatchEvent: false\n }\n }));\n }\n } else {\n _this2.resetOption();\n }\n _this2.selectElement.addedEventChange = true;\n });\n this.allOptions = _toConsumableArray(this.selectPanel.querySelectorAll('[role=\"option\"]'));\n }\n }\n }, {\n key: \"closeOtherSelects\",\n value: function closeOtherSelects() {\n var _this3 = this;\n document.querySelectorAll('.bn-select.opening').forEach(function (el) {\n if (el !== _this3.comboboxElement) {\n el.classList.remove('opening');\n el.select.isOpen = false;\n el.querySelector('[role=\"combobox\"]').classList.remove('active');\n el.querySelector('[role=\"combobox\"]').setAttribute('aria-expanded', 'false');\n el.querySelector('[role=\"listbox\"]').classList.remove('show');\n }\n });\n }\n }, {\n key: \"setPositionPanel\",\n value: function setPositionPanel() {\n var gutter = 4;\n var posCursor = this.selectCursor.getBoundingClientRect();\n posCursor.y = posCursor.y + posCursor.height;\n this.selectPanel.style.maxHeight = 'px';\n this.selectPanel.style.width = \"auto\";\n var tmpWidth = this.selectPanel.offsetWidth < posCursor.width ? posCursor.width : this.selectPanel.offsetWidth + 8;\n tmpWidth = tmpWidth < BN.wWidth ? tmpWidth : BN.wWidth - 16;\n this.selectPanel.style.width = tmpWidth + \"px\";\n if (BN.wWidth < posCursor.x + tmpWidth || this.selectPanel.dataset.alignRight) {\n this.selectPanel.style.left = \"\".concat(posCursor.x + posCursor.width - tmpWidth + 8, \"px\");\n } else this.selectPanel.style.left = \"\".concat(posCursor.x, \"px\");\n if (BN.wHeight < posCursor.y + this.selectPanel.offsetHeight) {\n this.selectPanel.style.top = \"auto\";\n this.selectPanel.style.bottom = BN.wHeight - posCursor.y + posCursor.height + gutter + \"px\";\n } else {\n this.selectPanel.style.top = posCursor.y + gutter + \"px\";\n this.selectPanel.style.bottom = \"auto\";\n }\n if (posCursor.y < 0) posCursor.y = 0;\n }\n }, {\n key: \"onComboClick\",\n value: function onComboClick() {\n if (this.comboboxElement.hasAttribute(\"disabled\")) return;\n this.closeOtherSelects();\n this.updateState(!this.isOpen);\n }\n }, {\n key: \"selectOption\",\n value: function selectOption(option, optionIdx, innerHTML) {\n var dispatchEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n this.comboboxElement.classList.remove(\"without-choosing\");\n this.selectElement.value = this.isReverseKeyValue ? option : this.options.get(option);\n this.selectCursor.dataset.setHtml !== 'false' && (this.selectCursor.innerHTML = innerHTML ? innerHTML : option);\n this.selectCursor.setAttribute(\"title\", option);\n this.active_value = this.isReverseKeyValue ? option : this.options.get(option);\n this.active_key = option;\n\n // update aria-selected\n var options = this.selectPanel.querySelectorAll(\"[role=option]\");\n options.forEach(function (optionEl) {\n optionEl.setAttribute('aria-selected', 'false');\n optionEl.setAttribute('aria-current', 'false');\n });\n if ((options === null || options === void 0 ? void 0 : options[optionIdx]) === undefined) return;\n options[optionIdx].setAttribute('aria-selected', 'true');\n options[optionIdx].setAttribute('aria-current', 'true');\n this.focusOption(optionIdx);\n if (this.onChange) {\n this.onChange();\n }\n dispatchEvent && this.selectElement.dispatchEvent(new Event('change', {\n bubbles: true\n }));\n dispatchEvent && this.selectElement.dispatchEvent(new Event('input', {\n bubbles: true\n }));\n }\n }, {\n key: \"debounceResetSuggestion\",\n value: function debounceResetSuggestion() {\n var _this4 = this;\n return BN.throttle(function () {\n return _this4.resetSuggestion();\n }, 1000)();\n }\n }, {\n key: \"resetSuggestion\",\n value: function resetSuggestion() {\n this.indexSuggestion = 0;\n this.keyPressSuggestion = null;\n this.isSuggestioning = false;\n }\n }, {\n key: \"onComboFocus\",\n value: function onComboFocus() {\n this.resetSuggestion();\n }\n }, {\n key: \"onComboBlur\",\n value: function onComboBlur() {\n if (this.collapseOnMobile && BN.isMobile) return;\n if (this.ignoreBlur) {\n this.ignoreBlur = false;\n return;\n }\n this.updateState(false);\n }\n }, {\n key: \"focusOption\",\n value: function focusOption(index) {\n this.allOptions.forEach(function (option) {\n return option.setAttribute('aria-current', false);\n });\n var targetOption = this.allOptions[index];\n if (targetOption) {\n targetOption.setAttribute('aria-current', true);\n }\n this.indexFocus = index;\n }\n }, {\n key: \"onComboKeyDown\",\n value: function onComboKeyDown(event) {\n var _this$allOptions$this;\n var keyCode = event.which || event.keyCode;\n if (this.comboboxElement.hasAttribute(\"disabled\")) return;\n var action = this.getActionFromKey(event);\n var keysAction = [BN.Key.HOME, BN.Key.END, BN.Key.ENTER, BN.Key.ARROW_DOWN, BN.Key.ARROW_UP, BN.Key.ESCAPE, BN.Key.SPACE, BN.Key.PAGE_DOWN, BN.Key.PAGE_UP];\n if (keysAction.indexOf(keyCode) > -1) {\n event.stopPropagation();\n event.preventDefault();\n switch (action) {\n case SelectActions.Open:\n this.updateState(true);\n break;\n case SelectActions.Close:\n this.updateState(false);\n break;\n case SelectActions.CloseSelect:\n (_this$allOptions$this = this.allOptions[this.indexFocus]) === null || _this$allOptions$this === void 0 || _this$allOptions$this.click();\n break;\n case SelectActions.First:\n this.focusOption(0);\n this.setScrollToOption(this.allOptions[0]);\n break;\n case SelectActions.OpenFirst:\n this.updateState(true);\n this.focusOption(0);\n this.setScrollToOption(this.allOptions[0], false);\n break;\n case SelectActions.Last:\n this.focusOption(this.allOptions.length - 1);\n this.setScrollToOption(this.allOptions[this.allOptions.length - 1]);\n break;\n case SelectActions.OpenLast:\n this.updateState(true);\n this.focusOption(this.allOptions.length - 1);\n this.setScrollToOption(this.allOptions[this.allOptions.length - 1], false);\n break;\n case SelectActions.Next:\n if (this.indexFocus < this.allOptions.length - 1) {\n this.focusOption(++this.indexFocus);\n this.setScrollToOption(this.allOptions[this.indexFocus]);\n }\n break;\n case SelectActions.Previous:\n if (this.indexFocus > 0) {\n this.focusOption(--this.indexFocus);\n this.setScrollToOption(this.allOptions[this.indexFocus]);\n }\n break;\n case SelectActions.PageUp:\n if (this.indexFocus > 0) {\n var index = this.indexFocus - this.itemToShow;\n index = index < 0 ? 0 : index;\n this.focusOption(index);\n this.setScrollToOption(this.allOptions[index]);\n }\n break;\n case SelectActions.PageDown:\n var optionsLength = this.allOptions.length;\n if (this.indexFocus < optionsLength - 1) {\n var _index = this.indexFocus + this.itemToShow;\n _index = _index > optionsLength - 1 ? optionsLength - 1 : _index;\n this.focusOption(_index);\n this.setScrollToOption(this.allOptions[_index]);\n }\n break;\n default:\n break;\n }\n } else {\n this.onKeyPressSuggestion(event);\n }\n }\n }, {\n key: \"setScrollToOption\",\n value: function setScrollToOption(optionEl) {\n var isSmooth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (optionEl) {\n var optionOffsetTop = optionEl.offsetTop,\n optionHeight = optionEl.clientHeight,\n panelHeight = this.selectPanel.clientHeight;\n var minScroll = this.selectPanel.scrollTop,\n maxScroll = minScroll + panelHeight;\n if (optionOffsetTop < minScroll) {\n this.selectPanel.scrollTo({\n top: optionOffsetTop,\n behavior: 'auto'\n });\n } else if (optionOffsetTop + optionHeight > maxScroll) {\n this.selectPanel.scrollTo({\n top: optionOffsetTop - panelHeight + optionHeight,\n behavior: 'auto'\n });\n }\n }\n }\n }, {\n key: \"setScrollToOptionSelected\",\n value: function setScrollToOptionSelected() {\n var isSmooth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var optionSelected = this.selectPanel.querySelector('[aria-selected=\"true\"]');\n if (optionSelected) {\n var index = optionSelected.dataset.index;\n this.focusOption(index);\n this.setScrollToOption(optionSelected, isSmooth);\n } else {\n this.focusOption(0);\n }\n }\n }, {\n key: \"updateState\",\n value: function updateState(open) {\n this.isOpen = open;\n this.resetSuggestion();\n var extraClass = this.comboboxElement.dataset.extraClass;\n if (open) {\n var _this$selectPanel$que;\n this.selectCursor.classList.add(\"active\");\n this.selectCursor.setAttribute('aria-expanded', 'true');\n this.comboboxElement.classList.add(\"opening\");\n this.selectPanel.classList.add(\"show\");\n this.setPositionPanel();\n window.addEventListener('scroll', this.debounceSetPositionPanel);\n this.setScrollToOptionSelected(false);\n document.body.classList.add(\"showing-dialog\", \"opening-selectbox\");\n if (extraClass) {\n extraClass.split(\",\").forEach(function (item) {\n document.body.classList.add(item.trim());\n });\n }\n if (this.comboboxElement.closest('#dialog-variant')) {\n this.selectPanel.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center'\n });\n }\n (_this$selectPanel$que = this.selectPanel.querySelector('[role=\"option\"]')) === null || _this$selectPanel$que === void 0 || _this$selectPanel$que.focus();\n } else {\n if (!BN.listDialogCursor.length) document.body.classList.remove(\"showing-dialog\");\n document.body.classList.remove(\"opening-selectbox\");\n if (extraClass) {\n extraClass.split(\",\").forEach(function (item) {\n document.body.classList.remove(item.trim());\n });\n }\n window.removeEventListener('scroll', this.debounceSetPositionPanel);\n this.selectPanel.classList.remove(\"show\");\n this.selectCursor.classList.remove(\"active\");\n this.selectCursor.setAttribute('aria-expanded', 'false');\n this.comboboxElement.classList.remove(\"opening\");\n document.body.classList.remove(\"showing-megamenu\");\n }\n }\n }, {\n key: \"resetOption\",\n value: function resetOption() {\n var _this$selectCursor$da;\n this.selectCursor.innerHTML = \"