{"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 = \"
\".concat((_this$selectCursor$da = this.selectCursor.dataset.placeholder) !== null && _this$selectCursor$da !== void 0 ? _this$selectCursor$da : '', \"
\");\n this.selectPanel.querySelectorAll('[role=\"option\"][aria-selected=\"true\"]').forEach(function (el) {\n el.ariaSelected = false;\n });\n this.selectPanel.querySelectorAll('[role=\"option\"][aria-current=\"true\"]').forEach(function (el) {\n el.ariaCurrent = false;\n });\n this.selectElement.value = '';\n }\n }, {\n key: \"getOptionsSuggestion\",\n value: function getOptionsSuggestion(_char) {\n var elOptions = _toConsumableArray(this.selectPanel.querySelectorAll('[role=\"option\"]')),\n optionsSuggestion = elOptions.filter(function (elOption) {\n var _elOption$innerText;\n return elOption === null || elOption === void 0 || (_elOption$innerText = elOption.innerText) === null || _elOption$innerText === void 0 || (_elOption$innerText = _elOption$innerText.trim()) === null || _elOption$innerText === void 0 || (_elOption$innerText = _elOption$innerText.toLowerCase()) === null || _elOption$innerText === void 0 ? void 0 : _elOption$innerText.startsWith(_char);\n });\n return optionsSuggestion;\n }\n }, {\n key: \"getCurrentIndexSuggestion\",\n value: function getCurrentIndexSuggestion(_char2) {\n var index = 0;\n var optionSelected = this.selectPanel.querySelector('[aria-selected=\"true\"]');\n if (optionSelected) {\n var _optionSelected$inner, _optionText$toLowerCa;\n var optionText = (_optionSelected$inner = optionSelected.innerText) === null || _optionSelected$inner === void 0 ? void 0 : _optionSelected$inner.trim();\n if (optionText !== null && optionText !== void 0 && (_optionText$toLowerCa = optionText.toLowerCase()) !== null && _optionText$toLowerCa !== void 0 && _optionText$toLowerCa.startsWith(_char2)) {\n var optionsSuggestion = this.getOptionsSuggestion(_char2);\n index = optionsSuggestion.reduce(function (acc, cur, index) {\n var _cur$innerText;\n if (((_cur$innerText = cur.innerText) === null || _cur$innerText === void 0 ? void 0 : _cur$innerText.trim()) === optionText) {\n acc = index + 1;\n }\n return acc;\n }, 0);\n if (index > optionsSuggestion.length - 1) {\n index = 0;\n }\n }\n }\n return index;\n }\n }, {\n key: \"onKeyPressSuggestion\",\n value: function onKeyPressSuggestion(e) {\n var _char3 = String.fromCharCode(e.keyCode).toLowerCase();\n this.debounceResetSuggestion();\n if (!_char3 || this.keyPressSuggestion !== null && _char3 !== this.keyPressSuggestion) {\n return;\n }\n this.keyPressSuggestion = _char3;\n this.indexSuggestion = this.getCurrentIndexSuggestion(_char3);\n var itemsSuggestion = this.getOptionsSuggestion(_char3),\n currentItemSuggestion = itemsSuggestion === null || itemsSuggestion === void 0 ? void 0 : itemsSuggestion[this.indexSuggestion];\n if (currentItemSuggestion) {\n this.isSuggestioning = true;\n currentItemSuggestion.click();\n this.indexSuggestion++;\n }\n }\n // map a key press to an action\n }, {\n key: \"getActionFromKey\",\n value: function getActionFromKey(event) {\n var altKey = event.altKey;\n var keyCode = event.which || event.keyCode;\n switch (keyCode) {\n case BN.Key.ESCAPE:\n return this.isOpen ? SelectActions.Close : null;\n case BN.Key.ENTER:\n return this.isOpen ? SelectActions.CloseSelect : SelectActions.Open;\n case BN.Key.ARROW_DOWN:\n if (altKey) {\n return this.isOpen ? null : SelectActions.Open;\n } else {\n if (this.isOpen) {\n return SelectActions.Next;\n } else {\n return SelectActions.Open;\n }\n }\n case BN.Key.ARROW_UP:\n if (altKey) {\n return this.isOpen ? SelectActions.CloseSelect : SelectActions.Open;\n } else {\n if (this.isOpen) {\n return SelectActions.Previous;\n } else {\n return SelectActions.Open;\n }\n }\n case BN.Key.SPACE:\n return this.isOpen ? SelectActions.CloseSelect : SelectActions.Open;\n case BN.Key.PAGE_UP:\n return this.isOpen ? SelectActions.PageUp : null;\n case BN.Key.PAGE_DOWN:\n return this.isOpen ? SelectActions.PageDown : null;\n case BN.Key.HOME:\n return this.isOpen ? SelectActions.First : SelectActions.OpenFirst;\n case BN.Key.END:\n return this.isOpen ? SelectActions.Last : SelectActions.OpenLast;\n default:\n return null;\n }\n }\n }, {\n key: \"updateStateDisabled\",\n value: function updateStateDisabled(value) {\n if (value) {\n this.comboboxElement.setAttribute(\"disabled\", \"\");\n this.selectCursor.setAttribute(\"tabindex\", \"0\");\n this.disabled = true;\n } else {\n this.comboboxElement.removeAttribute(\"disabled\");\n this.selectCursor.setAttribute(\"tabindex\", \"-1\");\n this.disabled = false;\n }\n }\n }]);\n}();\nBN.domContentLoadedFncList.push(function () {\n document.querySelectorAll(\".bn-select:not(.lazy-init-select)\").forEach(function (selectElm, index) {\n if (!selectElm.select) {\n selectElm.select = new SelectBox(selectElm);\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 CollapseService = /*#__PURE__*/function () {\n function CollapseService() {\n _classCallCheck(this, CollapseService);\n this.init(\"bn-toggle-btn\");\n }\n return _createClass(CollapseService, [{\n key: \"removeProperty\",\n value: function removeProperty(target) {\n for (var _len = arguments.length, listProperties = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n listProperties[_key - 1] = arguments[_key];\n }\n listProperties.forEach(function (prop) {\n target.style.removeProperty(prop);\n });\n }\n }, {\n key: \"setProperty\",\n value: function setProperty(target) {\n target.style.overflow = 'hidden';\n target.style.height = 0;\n target.style.paddingTop = 0;\n target.style.paddingBottom = 0;\n target.style.marginTop = 0;\n target.style.marginBottom = 0;\n }\n }, {\n key: \"init\",\n value: function init(queryElm) {\n var vm = this;\n BN.onClickDocumentFnList.collapseServiceInit = function (ev) {\n var _currentElm$classList;\n var currentElm = ev.target;\n if (currentElm !== null && currentElm !== void 0 && (_currentElm$classList = currentElm.classList) !== null && _currentElm$classList !== void 0 && _currentElm$classList.contains(queryElm)) vm.triggerToggleClick(currentElm.id, currentElm.dataset.target);\n };\n }\n }, {\n key: \"slideUp\",\n value: function slideUp(buttonId, target) {\n var _this = this;\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (typeof target == \"string\") target = document.querySelector(target);\n typeof callback === 'function' && callback({\n target: target,\n status: 'transition-start',\n type: 'close'\n });\n target.style.height = target.offsetHeight + 'px';\n target.offsetHeight;\n this.setProperty(target);\n var buttonElm = document.getElementById(buttonId);\n if (buttonElm.querySelector('.collapse-icon')) {\n buttonElm.querySelector('.collapse-icon').classList.remove('rotate180');\n }\n buttonElm.classList.remove('active');\n buttonElm.setAttribute(\"aria-expanded\", false);\n window.setTimeout(function () {\n target.style.display = 'none';\n _this.removeProperty(target, 'height', 'padding-top', 'padding-bottom', 'margin-top', 'margin-bottom', 'overflow', 'transition-duration', 'transition-property');\n typeof callback === 'function' && callback({\n target: target,\n status: 'transition-end',\n type: 'close'\n });\n }, duration);\n }\n }, {\n key: \"slideDown\",\n value: function slideDown(buttonId, target) {\n var _this2 = this;\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (typeof target == \"string\") {\n target = document.querySelector(target);\n }\n\n // Check if target exists\n if (!target || !target.style) {\n return;\n }\n typeof callback === 'function' && callback({\n target: target,\n status: 'transition-start',\n type: 'open'\n });\n target.style.removeProperty('display');\n var buttonElm = document.getElementById(buttonId);\n if (buttonElm.classList.contains(\"active\")) return;\n if (buttonElm.querySelector('.collapse-icon')) {\n buttonElm.querySelector('.collapse-icon').classList.add('rotate180');\n }\n target.style.display = 'block';\n buttonElm.classList.add('active');\n buttonElm.setAttribute(\"aria-expanded\", true);\n var height = target.offsetHeight;\n this.setProperty(target);\n target.offsetHeight;\n target.style.height = height + 'px';\n this.removeProperty(target, 'padding-top', 'padding-bottom', 'margin-top', 'margin-bottom');\n window.setTimeout(function () {\n _this2.removeProperty(target, 'height', 'overflow', 'transition-duration', 'transition-property');\n typeof callback === 'function' && callback({\n target: target,\n status: 'transition-end',\n type: 'open'\n });\n }, duration);\n }\n }, {\n key: \"slideToggle\",\n value: function slideToggle(buttonId, target) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n target.style.transitionProperty = 'height, margin, padding';\n target.style.transitionDuration = duration + 'ms';\n target.style.boxSizing = 'border-box';\n if (window.getComputedStyle(target).display === 'none') {\n return this.slideDown(buttonId, target, duration, callback);\n } else {\n return this.slideUp(buttonId, target, duration, callback);\n }\n }\n }, {\n key: \"toggleClick\",\n value: function toggleClick(buttonId, targetId) {\n var _this3 = this;\n var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (document.getElementById(buttonId) && document.getElementById(targetId)) {\n document.getElementById(buttonId).addEventListener('click', function () {\n return _this3.slideToggle(buttonId, document.getElementById(targetId), 400, callback);\n });\n }\n }\n }, {\n key: \"triggerToggleClick\",\n value: function triggerToggleClick(buttonId, targetId) {\n var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (document.getElementById(buttonId) && document.getElementById(targetId)) {\n this.slideToggle(buttonId, document.getElementById(targetId), 400, callback);\n }\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 Focus = /*#__PURE__*/function () {\n function Focus() {\n _classCallCheck(this, Focus);\n }\n return _createClass(Focus, [{\n key: \"addEventFocus\",\n value: function addEventFocus(listCurrentSelectors, listNextSelectors) {\n var listCurrentEl = document.querySelectorAll(listCurrentSelectors);\n var listNextEl = document.querySelectorAll(listNextSelectors);\n if (listCurrentEl.length) {\n var currentEl = listCurrentEl[listCurrentEl.length - 1];\n var nextEl = listNextEl[0];\n var KEYCODE_TAB = 9;\n currentEl.addEventListener(\"keydown\", function (evt) {\n //handle Tab but not Shift + Tab event for current element\n if (evt.keyCode == KEYCODE_TAB && !evt.shiftKey) {\n if (listNextEl.length) {\n nextEl.focus();\n nextEl.addEventListener(\"keydown\", function (evtNext) {\n //handle Shift + Tab event for next element\n if (evtNext.keyCode == KEYCODE_TAB && evtNext.shiftKey) {\n currentEl.focus();\n evtNext.preventDefault();\n }\n });\n }\n evt.preventDefault();\n }\n });\n }\n }\n }, {\n key: \"addEventFocusForMultiBlock\",\n value: function addEventFocusForMultiBlock() {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length - 1; i++) {\n this.addEventFocus(i < 0 || arguments.length <= i ? undefined : arguments[i], i + 1 < 0 || arguments.length <= i + 1 ? undefined : arguments[i + 1]);\n }\n }\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 _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 HttpService = /*#__PURE__*/function () {\n function HttpService() {\n _classCallCheck(this, HttpService);\n _defineProperty(this, \"METHODS\", {\n DELETE: \"delete\",\n GET: \"get\",\n PUT: \"put\",\n POST: \"post\",\n UPLOAD: \"uploadFile\",\n PATCH: \"patch\"\n });\n }\n return _createClass(HttpService, [{\n key: \"sendRequest\",\n value: function sendRequest(method, url) {\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var requestHeaders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var isAsync = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var xhr = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n return new Promise(function (resolve, reject) {\n xhr = xhr || new XMLHttpRequest();\n if (method == \"POST_FILE\") {\n xhr.open(\"POST\", url, isAsync);\n /*xhr.setRequestHeader('Content-type', 'multipart/form-data');*/\n } else {\n xhr.open(method, url, isAsync);\n xhr.setRequestHeader('Content-type', 'application/json; charset=UTF-8');\n }\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n //\n var body = document.getElementsByTagName('body');\n var fromPage = 0;\n if (body != undefined && body.length > 0) {\n fromPage = body[0].getAttribute('p');\n }\n xhr.setRequestHeader('bro-p', fromPage);\n if (requestHeaders) {\n Object.keys(requestHeaders).forEach(function (headerKey) {\n xhr.setRequestHeader(headerKey, requestHeaders[headerKey]);\n });\n }\n\n //Add default forgery token to header of post method\n if (!requestHeaders || !requestHeaders.hasOwnProperty('RequestVerificationToken')) {\n var tokens = document.getElementsByName('__RequestVerificationToken');\n if (tokens != null && tokens != undefined && tokens.length > 0) {\n var _tokens$;\n xhr.setRequestHeader('RequestVerificationToken', (_tokens$ = tokens[0]) === null || _tokens$ === void 0 ? void 0 : _tokens$.value);\n }\n }\n xhr.onload = function () {\n try {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve(xhr.responseText ? JSON.parse(xhr.responseText) : {});\n } else {\n var resError = {};\n resError = JSON.parse(xhr.responseText);\n resolve(Object.assign({\n status: xhr.status,\n statusText: xhr.statusText,\n error: true\n }, resError));\n }\n } catch (error) {\n resolve({\n status: xhr.status,\n statusText: xhr.statusText,\n error: true\n });\n console.error(\"Content is malformed \", error);\n }\n };\n xhr.onerror = function (e) {\n reject({\n status: xhr.status,\n statusText: xhr.statusText\n });\n };\n if (method == \"POST_FILE\") {\n xhr.send(data);\n } else {\n xhr.send(data ? JSON.stringify(data) : null);\n }\n });\n }\n }, {\n key: \"getHtmlContent\",\n value: function getHtmlContent(url) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var requestHeaders = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var isAsync = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, isAsync);\n xhr.setRequestHeader('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9');\n if (requestHeaders) {\n Object.keys(requestHeaders).forEach(function (headerKey) {\n xhr.setRequestHeader(headerKey, requestHeaders['headerKey']);\n });\n }\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve(xhr.responseText);\n } else {\n reject({\n status: xhr.status,\n statusText: xhr.statusText\n });\n }\n };\n xhr.onerror = function () {\n reject({\n status: xhr.status,\n statusText: xhr.statusText\n });\n };\n xhr.send(JSON.stringify(data));\n });\n }\n }, {\n key: \"get\",\n value: function get(url, data, requestHeaders) {\n var isAsync = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var xhr = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n return this.sendRequest('GET', url, data, requestHeaders, isAsync, xhr);\n }\n }, {\n key: \"post\",\n value: function post(url, data, requestHeaders) {\n var isAsync = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var xhr = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n return this.sendRequest('POST', url, data, requestHeaders, isAsync, xhr);\n }\n }, {\n key: \"patch\",\n value: function patch(url, data, requestHeaders) {\n var isAsync = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var xhr = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n return this.sendRequest('PATCH', url, data, requestHeaders, isAsync, xhr);\n }\n }, {\n key: \"uploadFile\",\n value: function uploadFile(url, data, requestHeaders) {\n var isAsync = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var xhr = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n return this.sendRequest('POST_FILE', url, data, requestHeaders, isAsync, xhr);\n }\n }, {\n key: \"put\",\n value: function put(url, data, requestHeaders) {\n var isAsync = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var xhr = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n return this.sendRequest('PUT', url, data, requestHeaders, isAsync, xhr);\n }\n }, {\n key: \"update\",\n value: function update(url, data, requestHeaders) {\n var isAsync = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var xhr = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n return this.sendRequest('PUT', url, data, requestHeaders, isAsync, xhr);\n }\n }, {\n key: \"delete\",\n value: function _delete(url, data, requestHeaders) {\n var isAsync = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var xhr = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n return this.sendRequest('DELETE', url, data, requestHeaders, isAsync, xhr);\n }\n }, {\n key: \"getPromise\",\n value: function getPromise(method, endPoint, data, isAsync, doNotShowErrorMSG) {\n var self = this;\n return new Promise(function (resolve, reject) {\n self[method](endPoint, data, null, isAsync).then(function (res) {\n if (!doNotShowErrorMSG && res.error && res.message) {\n BN.toastService.displayToast(res.message, \"error\");\n }\n resolve(res);\n })[\"catch\"](function (e) {\n BN.toastService.displayToast(\"Something wrong!\", \"error\");\n console.log(e);\n reject(e);\n });\n });\n }\n }, {\n key: \"getPromiseWithoutMSG\",\n value: function getPromiseWithoutMSG(method, endPoint, data, isAsync) {\n return this.getPromise(method, endPoint, data, isAsync, true);\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 _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 Input = /*#__PURE__*/function () {\n function Input() {\n _classCallCheck(this, Input);\n _defineProperty(this, \"zIndexInputRange\", 3);\n _defineProperty(this, \"configRangeList\", {});\n }\n return _createClass(Input, [{\n key: \"addEventDisplayPassword\",\n value: function addEventDisplayPassword(inputId, displayButtonId, parentElem) {\n var showText = \"Show\";\n var hideText = \"Hide\";\n var displayButtonEl = document.getElementById(displayButtonId);\n var inputEl = document.getElementById(inputId);\n if (parentElem) {\n displayButtonEl = parentElem.querySelector(\".\".concat(displayButtonId));\n inputEl = parentElem.querySelector(\".\".concat(inputId));\n }\n displayButtonEl.addEventListener('click', function (evt) {\n if (inputEl.type === \"password\") {\n inputEl.type = \"text\";\n evt.target.innerHTML = hideText;\n } else {\n inputEl.type = \"password\";\n evt.target.innerHTML = showText;\n }\n });\n ['change', 'keypress', 'keyup', 'paste'].forEach(function (eventName) {\n inputEl.addEventListener(eventName, function (evt) {\n var _evt$target$value;\n var pasteText = '';\n if (eventName == 'paste') {\n pasteText = (evt.originalEvent || evt).clipboardData.getData('text/plain');\n }\n displayButtonEl.style.display = ((_evt$target$value = evt.target.value) === null || _evt$target$value === void 0 ? void 0 : _evt$target$value.length) > 0 || pasteText.length > 0 ? \"block\" : \"none\";\n });\n });\n document.addEventListener('click', function (evt) {\n if (!parentElem && ![inputId, displayButtonId].includes(evt.target.id) || parentElem && !evt.target.classList.contains(inputId) && !evt.target.classList.contains(displayButtonId)) {\n inputEl.type = \"password\";\n displayButtonEl.innerHTML = showText;\n }\n });\n }\n }, {\n key: \"setClassPasswordCriteria\",\n value: function setClassPasswordCriteria(elem, flag) {\n if (elem) {\n var classInActive = 'password-criteria--inactive';\n var svgElem = elem.querySelector('svg use');\n if (flag == 1) {\n elem.classList.remove(classInActive);\n svgElem.setAttribute('xlink:href', '#svg_check-no-round');\n } else {\n elem.classList.add(classInActive);\n svgElem.setAttribute('xlink:href', '#svg_close_login');\n }\n }\n }\n }, {\n key: \"checkStrength\",\n value: function checkStrength(password) {\n var strength = 0;\n var hasAllCaseChar = 0;\n var hasNumberSpecialChar = 0;\n var hasMoreEightChar = 0;\n\n //If password contains both lower and uppercase characters\n if (password.match(BN.Regex['allCaseCharacter'])) {\n strength += 1;\n hasAllCaseChar = 1;\n }\n\n //If it has numbers and characters\n if (password.match(BN.Regex['number'])) {\n strength += 1;\n hasNumberSpecialChar += 0.5;\n }\n\n //If it has one special character\n if (password.match(BN.Regex['specialCharacter'])) {\n strength += 1;\n hasNumberSpecialChar += 0.5;\n }\n\n //If password is greater or equal 8\n if (password.length > 7) {\n strength += 1;\n hasMoreEightChar = 1;\n }\n this.setClassPasswordCriteria(document.querySelector('#hasAllCase'), hasAllCaseChar);\n this.setClassPasswordCriteria(document.querySelector('#hasMoreEightChar'), hasMoreEightChar);\n this.setClassPasswordCriteria(document.querySelector('#hasNumberSpecialChar'), hasNumberSpecialChar);\n return strength;\n }\n }, {\n key: \"addEventInputPasswoord\",\n value: function addEventInputPasswoord(formGroupId, inputId, displayButtonId) {\n var _this = this;\n var showPassStrength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var isMobile = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n this.addEventDisplayPassword(inputId, displayButtonId);\n if (!isMobile) {\n isMobile = BN.checkIsMobile();\n }\n if (showPassStrength) {\n ['input', 'change', 'keypress', 'keyup'].forEach(function (eventName) {\n document.getElementById(inputId).addEventListener(eventName, function (evt) {\n var _evt$target$value2;\n var strengthElemSelector = \".custom-form-group__strength\";\n var formGroupElem = document.getElementById(formGroupId);\n var strengthElem = formGroupElem.querySelector(strengthElemSelector);\n var strengthBarElem = formGroupElem.querySelector(\"\".concat(strengthElemSelector, \"__bar\"));\n var strengthNameElem = formGroupElem.querySelector(\"\".concat(strengthElemSelector, \"__name\"));\n var labelStrengthMobile = formGroupElem.querySelector(\".custom-form-group__label__right\");\n\n // validate strength of password\n var strength = _this.checkStrength(evt.target.value);\n if (((_evt$target$value2 = evt.target.value) === null || _evt$target$value2 === void 0 ? void 0 : _evt$target$value2.length) > 0) {\n var classSuffix = \"--error\";\n var textLabel = \"Poor\";\n if (strength == 3) {\n classSuffix = \"--warning\";\n textLabel = \"Average\";\n }\n if (strength == 4) {\n classSuffix = \"--success\";\n textLabel = \"Strong\";\n }\n var strengthBarLevelElem = formGroupElem.querySelector(\".strength__bar__level\");\n strengthBarLevelElem.classList.replace(strengthBarLevelElem.classList[1], \"strength__bar__level\".concat(classSuffix));\n strengthElem.style.display = 'flex';\n strengthBarElem.style.display = 'flex';\n if (isMobile) {\n // mobile screen\n strengthNameElem.style.display = 'none';\n labelStrengthMobile.style.display = 'block';\n labelStrengthMobile.classList.replace(labelStrengthMobile.classList[1], \"custom-form-group__label__right\".concat(classSuffix));\n labelStrengthMobile.innerText = textLabel;\n } else {\n // desktop screen\n strengthNameElem.style.display = 'flex';\n strengthNameElem.classList.replace(strengthNameElem.classList[2], \"strength__name\".concat(classSuffix));\n strengthNameElem.innerText = textLabel;\n labelStrengthMobile.style.display = 'none';\n }\n } else {\n // if input is empty\n labelStrengthMobile.style.display = 'none';\n strengthBarElem.style.display = 'none';\n strengthNameElem.style.display = 'none';\n }\n });\n });\n }\n }\n }, {\n key: \"checkRequiredInputField\",\n value: function checkRequiredInputField(listInputElems, errMsg, errorElem) {\n var _this2 = this;\n var formValid = true;\n listInputElems.forEach(function (elem) {\n var _elem$previousSibling;\n var textErrorElem = _this2.getTextErrorElement(elem, errorElem);\n var message = elem.getAttribute('err-msg') ? elem.getAttribute('err-msg') : errMsg;\n var inputValue = elem.value.trim();\n var onlyValidateNonAscii = elem.hasAttribute(\"non-ascii-required\");\n var hasNonAsciiChar = elem.name != \"Password2\" && (!elem.hasAttribute(\"non-ascii-allowed\") || elem.getAttribute(\"non-ascii-allowed\") != \"true\") && inputValue.length && inputValue.match(BN.Regex['nonASCII']);\n if ((inputValue.length < 1 && !onlyValidateNonAscii || hasNonAsciiChar) && !elem.classList.contains('hide')) {\n formValid = false;\n if (hasNonAsciiChar) {\n message = window.nonAsciiMessage ? window.nonAsciiMessage : \"Not allow non-ASCII\";\n }\n elem.classList.add('input-error');\n } else {\n message = \"\";\n elem.classList.remove('input-error');\n }\n if (textErrorElem && (((_elem$previousSibling = elem.previousSibling) === null || _elem$previousSibling === void 0 ? void 0 : _elem$previousSibling.tagName) != \"INPUT\" || !elem.previousSibling.classList.contains(\"input-error\"))) {\n textErrorElem.innerText = message;\n }\n });\n return formValid;\n }\n }, {\n key: \"checkRequiredInputAllFields\",\n value: function checkRequiredInputAllFields(listInputElems, errMsg, errorElem) {\n var formValid = true;\n listInputElems.forEach(function (elem) {\n var inputValue = elem.value.trim();\n if (inputValue.length < 1 && !elem.classList.contains('hide')) {\n formValid = false;\n elem.classList.add('input-error');\n } else {\n elem.classList.remove('input-error');\n }\n });\n if (errorElem) {\n if (formValid) {\n errorElem.innerText = \"\";\n } else {\n errorElem.innerText = errMsg;\n }\n }\n return formValid;\n }\n }, {\n key: \"resetTextError\",\n value: function resetTextError(listInputElems, errorElem, generalMsgElem) {\n var _this3 = this;\n listInputElems.forEach(function (elem) {\n var textErrorElem = _this3.getTextErrorElement(elem, errorElem);\n var isAsciiCharacterAllowed = elem.hasAttribute(\"non-ascii-allowed\") && elem.getAttribute(\"non-ascii-allowed\") == \"true\";\n ['keyup', 'blur'].forEach(function (eventName) {\n elem.addEventListener(eventName, function (e) {\n if (elem.value.trim().length > 0 && e.key != BN.KeyName[\"enter\"]) {\n var message = \"\";\n if (!isAsciiCharacterAllowed && elem.value.trim().match(BN.Regex['nonASCII'])) {\n message = window.nonAsciiMessage ? window.nonAsciiMessage : \"Not allow non-ASCII\";\n elem.classList.add('input-error');\n }\n if (generalMsgElem || textErrorElem) {\n var _elem$previousSibling2, _elem$nextElementSibl;\n if (generalMsgElem && (!elem.closest('.login__form') || elem.getAttribute('type') == \"password\")) {\n generalMsgElem.innerText = message;\n }\n if (textErrorElem && !(((_elem$previousSibling2 = elem.previousSibling) === null || _elem$previousSibling2 === void 0 ? void 0 : _elem$previousSibling2.tagName) == \"INPUT\" && elem.previousSibling.classList.contains(\"input-error\") || ((_elem$nextElementSibl = elem.nextElementSibling) === null || _elem$nextElementSibl === void 0 ? void 0 : _elem$nextElementSibl.tagName) == \"INPUT\" && elem.nextElementSibling.classList.contains(\"input-error\"))) {\n textErrorElem.innerText = message;\n }\n !message && elem.classList.remove('input-error');\n }\n }\n });\n });\n });\n }\n }, {\n key: \"resetTextOtpError\",\n value: function resetTextOtpError(listInputElems, errorElem, generalMsgElem) {\n var _this4 = this;\n listInputElems.forEach(function (elem) {\n var textErrorElem = _this4.getTextErrorElement(elem, errorElem);\n ['change', 'keydown'].forEach(function (eventName) {\n elem.addEventListener(eventName, function () {\n if (elem.value.trim().length > 0 || eventName == 'keyup') {\n if (generalMsgElem) {\n generalMsgElem.innerText = '';\n }\n if (textErrorElem) {\n textErrorElem.innerText = '';\n }\n elem.classList.remove('input-error');\n }\n });\n });\n });\n }\n }, {\n key: \"getTextErrorElement\",\n value: function getTextErrorElement(inputEl, errEl) {\n var textErrorElem = inputEl.name == 'Password' ? errEl : inputEl.nextElementSibling;\n if (textErrorElem && !textErrorElem.classList.contains('text-error')) {\n var loopIndex = 0;\n while (textErrorElem && !textErrorElem.classList.contains('text-error') && loopIndex < 3) {\n textErrorElem = textErrorElem.nextElementSibling;\n loopIndex += 1;\n }\n }\n return textErrorElem;\n }\n }, {\n key: \"formatMoney\",\n value: function formatMoney(money) {\n var format = '${{amount}}';\n money = parseFloat(money).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n return format.replace(/{{amount}}/, money);\n }\n }, {\n key: \"setInputMoneys\",\n value: function setInputMoneys(configRange, money, type) {\n if (configRange !== null && configRange !== void 0 && configRange.inputRangeElm) {\n var _configRange$inputRan, _configRange$inputRan2, _configRange$inputRan3, _configRange$inputRan4;\n var min = (_configRange$inputRan = (_configRange$inputRan2 = configRange.inputRangeElm.dataset.priceMin) === null || _configRange$inputRan2 === void 0 ? void 0 : _configRange$inputRan2.trim()) !== null && _configRange$inputRan !== void 0 ? _configRange$inputRan : 0,\n max = (_configRange$inputRan3 = (_configRange$inputRan4 = configRange.inputRangeElm.dataset.priceMax) === null || _configRange$inputRan4 === void 0 ? void 0 : _configRange$inputRan4.trim()) !== null && _configRange$inputRan3 !== void 0 ? _configRange$inputRan3 : 100;\n var value = configRange.inputRangeElm.value,\n values = value.split('-');\n values[type] = BN.formatPrice(money);\n if (type === 0) {\n var _values$;\n values[1] = ((_values$ = values[1]) === null || _values$ === void 0 ? void 0 : _values$.trim()) || BN.formatPrice(max);\n } else {\n var _values$2;\n values[0] = ((_values$2 = values[0]) === null || _values$2 === void 0 ? void 0 : _values$2.trim()) || BN.formatPrice(min);\n }\n configRange.inputRangeElm.value = values.join('-');\n }\n }\n }, {\n key: \"onChangeEventInputRangeMax\",\n value: function onChangeEventInputRangeMax(configRange) {\n var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var elem = configRange.maxInputElm;\n var minValue = parseFloat(elem.min);\n var valueInputMin;\n if (init) {\n valueInputMin = parseFloat(configRange.minInputElm.getAttribute('value') || configRange.minInputElm.value);\n elem.value = Math.max(elem.getAttribute('value') || elem.value, valueInputMin);\n } else {\n valueInputMin = parseFloat(configRange.minInputElm.value);\n if (parseFloat(elem.value) < valueInputMin) elem.value = valueInputMin + 1;\n }\n if (valueInputMin == minValue) {\n elem.style.zIndex = this.zIndexInputRange + 1;\n configRange.maxInputElm.style.zIndex = this.zIndexInputRange;\n } else {\n elem.style.zIndex = this.zIndexInputRange;\n }\n\n // get percentage that value occupies\n var value = 100 / (parseFloat(elem.max) - parseFloat(elem.min)) * (parseFloat(elem.value) - parseFloat(elem.min));\n configRange.inverseRightElm.style.width = \"\".concat(100 - value, \"%\");\n configRange.mainRangeElm.style.right = \"\".concat(100 - value, \"%\");\n configRange.thumbRightElm.style.left = \"\".concat(value, \"%\");\n configRange.maxElm.innerHTML = BN.formatPrice(elem.value);\n !init && this.setInputMoneys(configRange, elem.value, 1);\n }\n }, {\n key: \"onChangeEventInputRangeMin\",\n value: function onChangeEventInputRangeMin(configRange) {\n var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var elem = configRange.minInputElm;\n var maxValue = parseFloat(elem.max);\n var valueInputMax;\n if (init) {\n valueInputMax = parseFloat(configRange.maxInputElm.getAttribute('value') || configRange.maxInputElm.value);\n elem.value = Math.min(elem.getAttribute('value') || elem.value, valueInputMax);\n } else {\n valueInputMax = parseFloat(configRange.maxInputElm.value);\n if (parseFloat(elem.value) > valueInputMax) elem.value = valueInputMax - 1;\n }\n if (valueInputMax == maxValue) {\n elem.style.zIndex = this.zIndexInputRange + 1;\n configRange.maxInputElm.style.zIndex = this.zIndexInputRange;\n } else {\n elem.style.zIndex = this.zIndexInputRange;\n }\n // get percentage that value occupies\n var value = 100 / (parseFloat(elem.max) - parseFloat(elem.min)) * (parseFloat(elem.value) - parseFloat(elem.min));\n configRange.inverseLeftElm.style.width = \"\".concat(value, \"%\");\n configRange.mainRangeElm.style.left = \"\".concat(value, \"%\");\n configRange.thumbLeftElm.style.left = \"\".concat(value, \"%\");\n configRange.minElm.innerHTML = BN.formatPrice(elem.value);\n !init && this.setInputMoneys(configRange, elem.value, 0);\n }\n }, {\n key: \"addEventInputRange\",\n value: function addEventInputRange(sliderId, isInputMin) {\n var init = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n document.querySelector(\"#\".concat(sliderId)).inited = true;\n var self = this,\n configRange = this.configRangeList[sliderId];\n if (!configRange || !configRange.minElm || !configRange.maxElm || !configRange.minInputElm || !configRange.maxInputElm || !configRange.mainRangeElm || !configRange.inputRangeElm || !configRange.inverseLeftElm || !configRange.inverseRightElm || !configRange.thumbLeftElm || !configRange.thumbRightElm) return;\n configRange.minElm.addEventListener(\"keydown\", function (e) {\n if (e.key === \"Enter\") e.preventDefault();\n });\n configRange.maxElm.addEventListener(\"keydown\", function (e) {\n if (e.key === \"Enter\") e.preventDefault();\n });\n configRange.minElm.addEventListener(\"focus\", function (e) {\n var _configRange = self.configRangeList[e.target.closest(\".multi-range-slider\").id];\n _configRange.minElm.innerHTML = _configRange.minInputElm.value;\n BN.selectElementContents(_configRange.minElm);\n });\n configRange.minElm.addEventListener(\"blur\", function (e) {\n var _configRange = self.configRangeList[e.target.closest(\".multi-range-slider\").id];\n var oldValue = _configRange.minInputElm.value;\n if (!isNaN(_configRange.minElm.innerHTML) && parseFloat(_configRange.minElm.innerHTML) <= parseFloat(_configRange.maxInputElm.value)) _configRange.minInputElm.value = _configRange.minElm.innerHTML;\n self.onChangeEventInputRangeMin(_configRange, false);\n if (oldValue != _configRange.minInputElm.value) _configRange.inputRangeElm.dispatchEvent(new Event('change', {\n bubbles: true\n }));\n });\n configRange.maxElm.addEventListener(\"focus\", function (e) {\n var _configRange = self.configRangeList[e.target.closest(\".multi-range-slider\").id];\n _configRange.maxElm.innerHTML = _configRange.maxInputElm.value;\n BN.selectElementContents(_configRange.maxElm);\n });\n configRange.maxElm.addEventListener(\"blur\", function (e) {\n var _configRange = self.configRangeList[e.target.closest(\".multi-range-slider\").id];\n var oldValue = _configRange.maxInputElm.value;\n if (!isNaN(_configRange.maxElm.innerHTML) && parseFloat(_configRange.maxElm.innerHTML) >= parseFloat(_configRange.minInputElm.value)) _configRange.maxInputElm.value = _configRange.maxElm.innerHTML;\n self.onChangeEventInputRangeMax(_configRange, false);\n if (_configRange.maxInputElm.value != oldValue) _configRange.inputRangeElm.dispatchEvent(new Event('change', {\n bubbles: true\n }));\n });\n if (isInputMin) {\n if (init) {\n this.onChangeEventInputRangeMin(configRange, true);\n }\n configRange.minInputElm.addEventListener('input', this.onChangeEventInputRangeMin.bind(this, configRange, false), false);\n } else {\n if (init) {\n this.onChangeEventInputRangeMax(configRange, true);\n }\n configRange.maxInputElm.addEventListener('input', this.onChangeEventInputRangeMax.bind(this, configRange, false), false);\n }\n }\n }, {\n key: \"addEventResetInput\",\n value: function addEventResetInput(sliderId, isKeepValue) {\n var rangeSliderElm = document.querySelector(\"#\".concat(sliderId));\n if (rangeSliderElm) this.configRangeList[sliderId] = {\n sliderId: sliderId,\n minElm: rangeSliderElm.querySelector(\".multi-range-slider__sign__left span\"),\n maxElm: rangeSliderElm.querySelector(\".multi-range-slider__sign__right span\"),\n minInputElm: rangeSliderElm.querySelector(\".multi-range-slider__main__form__input--left\"),\n maxInputElm: rangeSliderElm.querySelector(\".multi-range-slider__main__form__input--right\"),\n mainRangeElm: rangeSliderElm.querySelector(\".multi-range-slider__main__form__range\"),\n inverseLeftElm: rangeSliderElm.querySelector(\".multi-range-slider__main__form__inverse-left\"),\n inverseRightElm: rangeSliderElm.querySelector(\".multi-range-slider__main__form__inverse-right\"),\n thumbLeftElm: rangeSliderElm.querySelector(\".multi-range-slider__main__form__thumb--left\"),\n thumbRightElm: rangeSliderElm.querySelector(\".multi-range-slider__main__form__thumb--right\"),\n inputRangeElm: rangeSliderElm.querySelector(\".multi-range-slider__input\")\n };\n var elem = document.getElementById(sliderId);\n if (elem) {\n var idsInput = ['inputRangeMin', 'inputRangeMax'];\n elem.addEventListener('reset-input', function (e) {\n var _e$detail$trigger, _e$detail;\n var trigger = (_e$detail$trigger = (_e$detail = e.detail) === null || _e$detail === void 0 ? void 0 : _e$detail.trigger) !== null && _e$detail$trigger !== void 0 ? _e$detail$trigger : true;\n idsInput.forEach(function (id) {\n var input = elem.querySelector('#' + id);\n if (input) {\n var _input$dataset$defaul, _input$dataset;\n var newValue = (_input$dataset$defaul = (_input$dataset = input.dataset) === null || _input$dataset === void 0 ? void 0 : _input$dataset.defaultValue) !== null && _input$dataset$defaul !== void 0 ? _input$dataset$defaul : '';\n if (parseFloat(input.value) != newValue) {\n input.value = newValue;\n trigger && input.dispatchEvent(new Event('input', {\n bubbles: true\n }));\n trigger && input.dispatchEvent(new Event('change', {\n bubbles: true\n }));\n }\n }\n });\n var input = elem.querySelector('.multi-range-slider__input');\n if (input && input.value !== '' && !isKeepValue) {\n input.value = '';\n trigger && input.dispatchEvent(new Event('change', {\n bubbles: true\n }));\n }\n });\n\n //set range input value automatically at first load\n if (elem.querySelector('.multi-range-slider__input')) {\n var _configRange$minInput;\n var configRange = this.configRangeList[sliderId];\n if (configRange) this.setInputMoneys(configRange, (_configRange$minInput = configRange.minInputElm) === null || _configRange$minInput === void 0 ? void 0 : _configRange$minInput.value, 0);\n }\n }\n }\n }, {\n key: \"reloadRangeInput\",\n value: function reloadRangeInput(id) {\n var _configRange$minInput2;\n if (!id) return;\n this.addEventResetInput(id, true);\n this.addEventInputRange(id, true, true);\n this.addEventInputRange(id, false, true);\n var configRange = this.configRangeList[id];\n this.setInputMoneys(configRange, (_configRange$minInput2 = configRange.minInputElm) === null || _configRange$minInput2 === void 0 ? void 0 : _configRange$minInput2.value, 0);\n }\n }, {\n key: \"addEventOTPInput\",\n value: function addEventOTPInput(parentId, parentEl) {\n var inputs;\n if (parentEl) {\n inputs = parentEl.querySelectorAll(\"\".concat(parentId, \" > input\"));\n } else {\n inputs = document.querySelectorAll(\"#\".concat(parentId, \" > input\"));\n }\n var KEYCODE_NUMBER_0 = 48,\n KEYCODE_NUMBER_9 = 57,\n KEYCODE_PAD_NUMBER_0 = 96,\n KEYCODE_PAD_NUMBER_9 = 105;\n var numberInputEl = inputs.length;\n var ctrlActive = false;\n document.body.addEventListener('keyup', function (event) {\n if (event.key == 'Control') ctrlActive = true;\n });\n inputs[0].addEventListener('paste', function (evt) {\n evt.preventDefault();\n var pasteText = (evt.originalEvent || evt).clipboardData.getData('text/plain');\n if (pasteText && pasteText.trim().length) {\n var _pasteText$trim$match;\n pasteText = ((_pasteText$trim$match = pasteText.trim().match(new RegExp(/\\d+/g))) === null || _pasteText$trim$match === void 0 ? void 0 : _pasteText$trim$match.join('')) || '';\n for (var i = 0; i < pasteText.length; i++) {\n if (inputs[i]) {\n var _inputs;\n inputs[i].value = pasteText[i];\n inputs[i].classList.remove('error');\n inputs[i].dispatchEvent(new Event('inputChange'));\n (_inputs = inputs[i + 1]) === null || _inputs === void 0 || _inputs.focus();\n }\n }\n }\n });\n var _loop = function _loop(i) {\n var currentEl = inputs[i];\n ['input', 'keydown'].forEach(function (evtName) {\n currentEl.addEventListener(evtName, function (evt) {\n if (evt.key === \"Backspace\") {\n currentEl.value = '';\n if (i !== 0) inputs[i - 1].focus();\n } else {\n if (i === numberInputEl - 1 && currentEl.value !== '') {\n // if it is the last input\n if (currentEl.value.length > currentEl.maxLength) {\n currentEl.value = currentEl.value.slice(0, currentEl.maxLength);\n }\n } else if (evt.keyCode >= KEYCODE_NUMBER_0 && evt.keyCode <= KEYCODE_NUMBER_9 || evt.keyCode >= KEYCODE_PAD_NUMBER_0 && evt.keyCode <= KEYCODE_PAD_NUMBER_9) {\n currentEl.value = evt.key;\n if (i !== numberInputEl - 1) inputs[i + 1].focus();\n evt.preventDefault();\n } else {\n currentEl.value = '';\n }\n currentEl.classList.remove('error');\n currentEl.dispatchEvent(new Event('inputChange'));\n }\n });\n });\n };\n for (var i = 0; i < numberInputEl; i++) {\n _loop(i);\n }\n }\n }, {\n key: \"addEventSingleInputRange\",\n value: function addEventSingleInputRange(el) {\n var input = el.querySelector('input[type=\"range\"]'),\n thumb = el.querySelector('.input-range__thumb--icon'),\n progressBar = el.querySelector('.input-range__range--progress-bar');\n function onChangeValue(value, min, max) {\n var per = Math.round((value - min) / (max - min) * 10000) / 100;\n progressBar.style.width = per + '%';\n thumb.style.left = per + '%';\n }\n if (input) {\n var _input$min, _input$max;\n var min = (_input$min = input.min) !== null && _input$min !== void 0 ? _input$min : 0,\n max = (_input$max = input.max) !== null && _input$max !== void 0 ? _input$max : 100;\n min = parseFloat(min);\n max = parseFloat(max);\n el.inputRange = true;\n input.addEventListener('input', function () {\n onChangeValue(parseInt(input.value), min, max);\n });\n }\n }\n }]);\n}();\nBN.domContentLoadedFncList.push(function () {\n BN.inputService = new Input();\n document.querySelectorAll(\".input-range\").forEach(function (inputElm) {\n if (!inputElm.inputRange) {\n BN.inputService.addEventSingleInputRange(inputElm);\n }\n });\n});\n\"use strict\";\n\nfunction AppStorage() {\n var Base64 = {\n // private property\n _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\n // public method for encoding\n encode: function encode(input) {\n var output = \"\";\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0;\n input = Base64._utf8_encode(input);\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n enc1 = chr1 >> 2;\n enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n enc4 = chr3 & 63;\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n output = output + Base64._keyStr.charAt(enc1) + Base64._keyStr.charAt(enc2) + Base64._keyStr.charAt(enc3) + Base64._keyStr.charAt(enc4);\n }\n return output;\n },\n // public method for decoding\n decode: function decode(input) {\n var output = \"\";\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n while (i < input.length) {\n enc1 = Base64._keyStr.indexOf(input.charAt(i++));\n enc2 = Base64._keyStr.indexOf(input.charAt(i++));\n enc3 = Base64._keyStr.indexOf(input.charAt(i++));\n enc4 = Base64._keyStr.indexOf(input.charAt(i++));\n chr1 = enc1 << 2 | enc2 >> 4;\n chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n chr3 = (enc3 & 3) << 6 | enc4;\n output = output + String.fromCharCode(chr1);\n if (enc3 != 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 != 64) {\n output = output + String.fromCharCode(chr3);\n }\n }\n output = Base64._utf8_decode(output);\n return output;\n },\n // private method for UTF-8 encoding\n _utf8_encode: function _utf8_encode(string) {\n string = string.replace(/\\r\\n/g, \"\\n\");\n var utftext = \"\";\n for (var n = 0; n < string.length; n++) {\n var c = string.charCodeAt(n);\n if (c < 128) {\n utftext += String.fromCharCode(c);\n } else if (c > 127 && c < 2048) {\n utftext += String.fromCharCode(c >> 6 | 192);\n utftext += String.fromCharCode(c & 63 | 128);\n } else {\n utftext += String.fromCharCode(c >> 12 | 224);\n utftext += String.fromCharCode(c >> 6 & 63 | 128);\n utftext += String.fromCharCode(c & 63 | 128);\n }\n }\n return utftext;\n },\n // private method for UTF-8 decoding\n _utf8_decode: function _utf8_decode(utftext) {\n var string = \"\";\n var i = 0;\n var c = 0,\n c1 = 0,\n c2 = 0,\n c3 = 0;\n while (i < utftext.length) {\n c = utftext.charCodeAt(i);\n if (c < 128) {\n string += String.fromCharCode(c);\n i++;\n } else if (c > 191 && c < 224) {\n c2 = utftext.charCodeAt(i + 1);\n string += String.fromCharCode((c & 31) << 6 | c2 & 63);\n i += 2;\n } else {\n c2 = utftext.charCodeAt(i + 1);\n c3 = utftext.charCodeAt(i + 2);\n string += String.fromCharCode((c & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\n i += 3;\n }\n }\n return string;\n }\n };\n return {\n set: function set(key, value) {\n if (\"undefined\" == typeof Storage) return AppToast.error(\"system_this_browser_does_not_support_web_storage_function_to_improve_performance\"), !1;\n value = Base64.encode(JSON.stringify(value)), localStorage.setItem(key, value);\n },\n get: function get(key) {\n if (\"undefined\" != typeof Storage) {\n var saved = localStorage[key];\n return !!saved && JSON.parse(Base64.decode(saved));\n }\n return AppToast.error(\"system_this_browser_does_not_support_web_storage_function_to_improve_performance\"), !1;\n },\n \"delete\": function _delete(key) {\n if (\"undefined\" == typeof Storage) return AppToast.error(\"system_this_browser_does_not_support_web_storage_function_to_improve_performance\"), !1;\n localStorage.removeItem(key);\n },\n deleteAll: function deleteAll() {\n if (\"undefined\" == typeof Storage) return AppToast.error(\"system_this_browser_does_not_support_web_storage_function_to_improve_performance\"), !1;\n localStorage.clear();\n }\n };\n}\n\"use strict\";\n\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; }\nBN.SetVueData(\"tooltip\", {\n show: false,\n text: '',\n location: 'top',\n type: '',\n style: null,\n styleContent: null\n});\nBN.tooltip = function (el) {\n if (!el || el !== null && el !== void 0 && el.tooltipReady) return;\n var tooltip = document.getElementById('tooltip'),\n tooltipContent = tooltip && tooltip.querySelector('span');\n if (!tooltipContent) return;\n var vueModelTooltip = BNApp.$data.tooltip;\n var config = el.dataset;\n var label = config.tooltip,\n _config$tooltipLocati = config.tooltipLocation,\n location = _config$tooltipLocati === void 0 ? 'top' : _config$tooltipLocati;\n var _onMouseEnter = function onMouseEnter() {\n if (!el.tooltipReady) {\n el.removeEventListener('mouseenter', _onMouseEnter);\n return;\n }\n vueModelTooltip.show = true;\n var rect = el.getBoundingClientRect();\n var top = rect.top,\n left = rect.left,\n width = rect.width,\n height = rect.height;\n Object.assign(vueModelTooltip, {\n label: label,\n location: location,\n type: el.classList.contains('tooltip-dark') ? 'dark' : '',\n style: {\n top: top + 'px',\n left: left + 'px',\n width: width + 'px',\n height: height + 'px'\n },\n styleContent: null\n });\n BNApp.$nextTick(function () {\n var rectContent = tooltipContent.getBoundingClientRect();\n var contentLeft = rectContent.left,\n contentTop = rectContent.top,\n contentWidth = rectContent.width,\n contentHeight = rectContent.height;\n if (location === 'left' && contentLeft < 0) {\n vueModelTooltip.location = 'right';\n } else if (location === 'top' && contentTop < 0) {\n vueModelTooltip.location = 'bottom';\n } else if (location === 'right' && contentLeft + contentWidth > BN.wWidth) {\n vueModelTooltip.location = 'left';\n } else if (location === 'bottom' && contentTop + contentHeight > BN.wHeight) {\n vueModelTooltip.location = 'top';\n }\n if (location === 'top' || location === 'bottom') {\n if (contentLeft < 0) {\n vueModelTooltip.styleContent = {\n marginLeft: contentLeft * -1 + 5 + 'px'\n };\n } else if (contentLeft + contentWidth > BN.wWidth) {\n vueModelTooltip.styleContent = {\n marginLeft: BN.wWidth - contentLeft - contentWidth - 5 + 'px'\n };\n }\n } else {\n if (contentTop < 0) {\n vueModelTooltip.styleContent = {\n marginTop: contentTop * -1 + 5 + 'px'\n };\n } else if (contentTop + contentHeight > BN.wHeight) {\n vueModelTooltip.styleContent = {\n marginTop: BN.wHeight - contentTop - contentHeight - 5 + 'px'\n };\n }\n }\n });\n };\n var _onMouseLeave = function onMouseLeave() {\n if (!el.tooltipReady) {\n el.removeEventListener('mouseleave', _onMouseLeave);\n return;\n }\n vueModelTooltip.show = false;\n };\n if (label) {\n el.tooltipReady = true;\n el.addEventListener('mouseenter', _onMouseEnter);\n el.addEventListener('mouseleave', _onMouseLeave);\n el.addEventListener('focusin', _onMouseEnter);\n el.addEventListener('focusout', _onMouseLeave);\n }\n};\nBN.scrollEventFncList.tooltip = function () {\n var _BNApp$$data$tooltip, _BNApp;\n var vueModelTooltip = (_BNApp$$data$tooltip = (_BNApp = BNApp) === null || _BNApp === void 0 || (_BNApp = _BNApp.$data) === null || _BNApp === void 0 ? void 0 : _BNApp.tooltip) !== null && _BNApp$$data$tooltip !== void 0 ? _BNApp$$data$tooltip : {};\n if (vueModelTooltip.show) {\n vueModelTooltip.show = false;\n }\n};\nBN.domContentLoadedFncList.push(function () {\n document.querySelectorAll(\".tooltip\").forEach(function (el) {\n BN.tooltip(el);\n });\n if (window.MutationObserver) {\n var targetNode = document.body;\n var config = {\n attributes: true,\n childList: true,\n subtree: true\n };\n var callback = function callback(mutationsList, observer) {\n //script for test missing icon\n // let allSvg = [...new Set([...document.querySelectorAll('[*|href]:not([href])')].map(el => el.getAttribute('xlink:href')))],\n // allSvgAdded = [...new Set([...document.querySelectorAll('symbol')].map(el => '#' + el.getAttribute('id')))];\n // let svgMiss = allSvg.filter(svg => allSvgAdded.indexOf(svg) === -1);\n // svgMiss.length && console.log(svgMiss);\n var targets = [];\n var _iterator = _createForOfIteratorHelper(mutationsList),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var mutation = _step.value;\n var target = mutation.target;\n if ((mutation.type === 'childList' || mutation.type === 'attributes') && targets.indexOf(target) === -1) {\n targets.push(target);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n targets.forEach(function (target) {\n if (target.classList.contains('tooltip')) {\n BN.tooltip(target);\n } else {\n if (target.tooltipReady) {\n target.tooltipReady = false;\n } else {\n var tooltips = target.querySelectorAll('.tooltip');\n tooltips.forEach(function (tooltip) {\n BN.tooltip(tooltip);\n });\n }\n }\n });\n };\n var observer = new window.MutationObserver(callback);\n observer.observe(targetNode, config);\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 Dialog = /*#__PURE__*/function () {\n function Dialog() {\n _classCallCheck(this, Dialog);\n }\n return _createClass(Dialog, [{\n key: \"initDialogContainer\",\n value: function initDialogContainer(config, callback) {\n if (!BN.vueData.components[\"bn-dialog-container\"]) {\n BN.SetVueData(\"dialog\", {\n list: {}\n });\n BN.SetVueComponentAtRunTime(\"bn-dialog-container\", \"dialog/container\", false, function () {\n BNApp.$data.dialog.list[config.id] = config;\n BNApp.$nextTick(function () {\n callback();\n });\n }, null, true);\n } else {\n BNApp.$data.dialog.list[config.id] = config;\n BNApp.$nextTick(function () {\n callback();\n });\n }\n }\n }, {\n key: \"showConfirm\",\n value: function showConfirm(e, title, msg, okCallback, cancelCallback) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n options = Object.assign({\n btnConfirmText: 'Confirm',\n btnCancelText: 'Cancel'\n }, options);\n var bnConfirm = document.querySelector(\"bn-confirm\"),\n targetElm = e.submitter || e.target,\n self = this;\n if (!bnConfirm) {\n var disableClickOutsideCl = options.disableClickOutside ? \" disable-click-outside\" : '';\n var dialogName = options.name ? \" \".concat(options.name) : '';\n document.body.insertAdjacentHTML(\"beforeend\", \"\"));\n bnConfirm = document.querySelector(\"bn-confirm\");\n }\n bnConfirm.innerHTML = \"\\n
\\n
\\n
\\n
\".concat(title, \"
\\n \\n
\\n
\\n
\").concat(BN.decodeHtml(msg), \"
\\n \\n \").concat(!options.hideBtnCancel ? \"\") : '', \"\\n
\\n
\\n
\\n \");\n var customEvent = new CustomEvent('dialogOpen', {\n detail: {\n target: bnConfirm\n }\n });\n document.dispatchEvent(customEvent);\n bnConfirm.classList.add(\"show\");\n BN.listDialogCursor.push(targetElm);\n BN.dropdownService && BN.dropdownService.loopFocus(bnConfirm);\n if (okCallback) bnConfirm.querySelector(\".confirm\").onclick = function (e) {\n okCallback();\n BN.dropdownService.close(e);\n };\n bnConfirm.querySelectorAll(\".close-btn\").forEach(function (item) {\n item.onclick = function (e) {\n if (cancelCallback) cancelCallback();\n BN.dropdownService.close(e);\n };\n });\n }\n }, {\n key: \"showDialog\",\n value: function showDialog(e, dialogConfig) {\n var targetElm = e.target,\n config = {\n id: dialogConfig.id || \"bn-dialog\",\n \"class\": dialogConfig[\"class\"],\n title: dialogConfig.title,\n bodyTemplate: dialogConfig.bodyTemplate,\n closeCallback: dialogConfig.closeCallback,\n okCallback: dialogConfig.okCallback,\n isTinyMceFormat: dialogConfig.isTinyMceFormat,\n data: dialogConfig.data,\n externalTemplate: dialogConfig.externalTemplate,\n hideHeader: dialogConfig.hideHeader,\n isConfirmation: false\n },\n self = this;\n\n // externalTemplate = {\n // name: \"component-name\",\n // path: \"https:// or relative path\",\n // isFromSV: true | false, //\"if path is http => true else false\",\n // callback: () => {}, // \"a callback function, after child component is initialized completely\"\n // cacheTemplate: true | false // do not reload Vue Single Component, reuse template and change data only\n // }\n\n //** if using externalTemplate, we should empty bodyTemplate property\n\n //example:\n // showRestrictions(e, product){\n // BN.dialogService.showDialog(e, {\n // title: \"Restrictions\",\n // id: \"restrictions-dialog\",\n // data: product,\n // class: 'bn-dialog--md restrictions-dialog',\n // externalTemplate: {\n // name: \"restrictions-dialog\",\n // path: \"cart/restrictions\",\n // cacheTemplate: true,\n // callback: () => {\n // console.log(BN.vueData.components[\"restrictions-dialog\"])\n // }\n // }\n // });\n // }\n\n function dialogInitCallback(bnDialog) {\n bnDialog.classList.add(\"show\");\n BN.dropdownService.loopFocus(bnDialog);\n document.body.classList.add(\"showing-dialog\");\n BN.lockScrollIos.on(bnDialog);\n bnDialog.querySelectorAll(\".close-btn\").forEach(function (item) {\n item.onclick = function (e) {\n if (config.closeCallback) config.closeCallback();\n BN.dropdownService.close(e);\n };\n });\n bnDialog.querySelectorAll(\".ok-btn\").forEach(function (item) {\n item.onclick = function (e) {\n if (config.okCallback) config.okCallback();\n BN.dropdownService.close(e);\n };\n });\n var customEvent = new CustomEvent('dialogOpen', {\n detail: {\n target: bnDialog\n }\n });\n document.dispatchEvent(customEvent);\n }\n BNApp.$nextTick(function () {\n if (config.externalTemplate) {\n BN.SetVueComponentAtRunTime(config.externalTemplate.name, config.externalTemplate.path, config.externalTemplate.isFromSV, function () {\n self.initDialogContainer(config, function () {\n dialogInitCallback(document.querySelector(\"#\" + config.id));\n if (config.externalTemplate.callback) config.externalTemplate.callback();\n });\n }, BN.copy(config.data), config.externalTemplate.cacheTemplate);\n } else {\n self.initDialogContainer(config, function () {\n dialogInitCallback(document.querySelector(\"#\" + config.id));\n });\n }\n BN.listDialogCursor.push(targetElm);\n });\n }\n }, {\n key: \"loadGlobalDialog\",\n value: function loadGlobalDialog(callback) {\n if (!document.querySelector(\".dialog-login\")) BN.lazyLoadFiles({\n \"css\": [\"components/login.css\", \"components/tab-footer.css\", \"pages/register-account.css\"],\n \"js\": [\"components/login.js\", \"services/auth.js\"]\n }, function () {\n BN.SetVueComponentAtRunTime(\"global-dialog-template\", \"/header/GetGlobalDialogTemplates/index.vue\", true, function () {\n typeof addEventDisplayPassword != \"undefined\" && addEventDisplayPassword();\n typeof addEventLoginForm != \"undefined\" && addEventLoginForm();\n typeof addEventStepVerify != \"undefined\" && addEventStepVerify();\n typeof addEventSubmitEmailCheckout != \"undefined\" && addEventSubmitEmailCheckout();\n if (callback) callback();\n });\n }, true);else if (callback) callback();\n }\n }, {\n key: \"loadPromotionDialog\",\n value: function loadPromotionDialog(callback) {\n if (!document.querySelector(\"#dialog-promotion-bar\")) BN.SetVueComponentAtRunTime(\"global-promotion-dialog\", \"/header/GetGlobalPromotionBarDialog/index.vue\", true, function () {\n if (callback) callback();\n });else if (callback) callback();\n }\n }, {\n key: \"loadTermsAndConditionsDialog\",\n value: function loadTermsAndConditionsDialog(callback) {\n if (!document.querySelector(\"#terms-and-conditions-dialog\")) BN.SetVueComponentAtRunTime(\"terms-and-conditions-dialog-component\", \"/checkout/GetTermsAndConditionsDialog/index.vue\", true, function () {\n if (callback) callback();\n });else if (callback) callback();\n }\n }]);\n}();\n\"use strict\";\n\nBN.domContentLoadedFncList.push(function () {\n document.querySelectorAll('.alert').forEach(function (element) {\n var closeBtn = element.querySelector(\".btn-close\");\n if (closeBtn) {\n closeBtn.addEventListener(\"click\", function (e) {\n e.preventDefault();\n element.remove();\n });\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 CredovaService = /*#__PURE__*/function () {\n function CredovaService() {\n _classCallCheck(this, CredovaService);\n }\n return _createClass(CredovaService, [{\n key: \"openCredovaPopup\",\n value: function openCredovaPopup(credovaSettings) {\n this.importCredova().then(function () {\n var environment = credovaSettings.environment || \"Sandbox\",\n store = credovaSettings.store || \"OTS000\",\n minAmount = parseFloat(credovaSettings.minAmount),\n maxAmount = parseFloat(credovaSettings.maxAmount),\n price = credovaSettings.minAmount;\n CRDV.plugin.config({\n environment: CRDV.Environment[environment],\n store: store,\n minAmount: minAmount,\n maxAmount: maxAmount\n });\n CRDV.plugin.prequalify(parseFloat(price)).then(function (res) {\n if (res.approved) {\n var httpService = new HttpService();\n httpService.post('/CredovaApi/HandlePrequalifyCallbackSuccess', res, null, true).then(function (res) {\n console.log(JSON.stringify(res));\n })[\"catch\"](function (e) {\n resolve({\n isSuccess: false,\n message: e.statusText\n });\n });\n document.cookie = \"credovaApproved=y\";\n } else {\n document.cookie = \"credovaApproved=n\";\n }\n });\n });\n }\n }, {\n key: \"importCredova\",\n value: function importCredova() {\n return new Promise(function (resolve) {\n if (typeof CRDV == 'undefined') {\n var urlCredovaVendor = '/dist/Brownells/js/vendors/credova.js?v=' + BN.version;\n var script = document.createElement('script');\n script.setAttribute('src', urlCredovaVendor);\n script.onload = function () {\n resolve();\n };\n document.body.appendChild(script);\n } else {\n resolve();\n }\n });\n }\n }, {\n key: \"openCredovaApplicationSubmitPopup\",\n value: function openCredovaApplicationSubmitPopup(credovaSettings, publicId, callback) {\n this.importCredova().then(function () {\n var environment = credovaSettings.environment || \"Sandbox\",\n store = credovaSettings.store || \"OTS000\",\n minAmount = parseFloat(credovaSettings.minAmount),\n maxAmount = parseFloat(credovaSettings.maxAmount),\n price = credovaSettings.minAmount;\n CRDV.plugin.config({\n environment: CRDV.Environment[environment],\n store: store,\n minAmount: minAmount,\n maxAmount: maxAmount\n });\n CRDV.plugin.checkout(publicId).then(function (completed) {\n if (callback) {\n callback(completed);\n }\n });\n });\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 Toast = /*#__PURE__*/function () {\n function Toast() {\n _classCallCheck(this, Toast);\n this.options = {\n prependTo: document.body.childNodes[1],\n lifeSpan: 3000,\n animate: true,\n animateDuration: 1000,\n delay: 0\n };\n this.classes = {\n container: 'toast__container',\n animate: 'toast--exit',\n \"default\": 'toast',\n success: 'toast--success',\n info: 'toast--info',\n warning: 'toast--warning',\n error: 'toast--error'\n };\n }\n return _createClass(Toast, [{\n key: \"setOptions\",\n value: function setOptions(opts) {\n for (var key in opts) {\n if (opts.hasOwnProperty(key)) {\n if (key in this.options) {\n this.options[key] = opts[key];\n }\n }\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classDict) {\n for (var key in classDict) {\n if (classDict.hasOwnProperty(key)) {\n if (key in this.classes) {\n this.classes[key] = classDict[key];\n }\n }\n }\n }\n }, {\n key: \"customForIe\",\n value: function customForIe(node) {\n Object.defineProperty(node, 'remove', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function remove() {\n if (this.parentNode !== null) this.parentNode.removeChild(this);\n }\n });\n }\n }, {\n key: \"placeToast\",\n value: function placeToast(msg, toastType) {\n var _this = this;\n var options = this.options;\n var classes = this.classes;\n var self = this;\n var init = function init() {\n var htmlContent = \"
\\n
\\n \\n Success\\n \\n \\n \\n Error\\n \\n \\n \\n Warning\\n \\n \\n
\\n
\\n \".concat(msg, \"\\n
\\n
\\n \\n Close\\n \\n \\n
\\n
\");\n var toastParent = document.querySelector('.' + _this.classes[\"default\"]);\n var parentExists = !!toastParent;\n if (!toastParent) {\n toastParent = document.createElement('div');\n }\n toastParent.className = \"\".concat(_this.classes[\"default\"], \" \").concat(_this.classes[toastType]);\n _this.customForIe(toastParent);\n toastParent.innerHTML = htmlContent;\n if (!parentExists) {\n document.body.appendChild(toastParent);\n }\n document.querySelector('.toast__close').addEventListener('click', function () {\n self.close();\n });\n // This timeout is used for the duration that the toast will stay on the page\n setTimeout(function () {\n // Animation is set to perform\n if (options.animate && options.animateDuration) {\n toastParent.classList.add(classes.animate);\n\n // This timeout is used to defer the removal of the toast from the DOM\n setTimeout(function () {\n var _document$querySelect;\n if ((_document$querySelect = document.querySelector('.' + classes[\"default\"])) !== null && _document$querySelect !== void 0 && _document$querySelect.childNodes.length) {\n toastParent.remove();\n }\n }, options.animateDuration);\n } else {\n var _document$querySelect2;\n if ((_document$querySelect2 = document.querySelector('.' + classes[\"default\"])) !== null && _document$querySelect2 !== void 0 && _document$querySelect2.childNodes.length) {\n toastParent.remove();\n }\n }\n }, options.lifeSpan);\n };\n setTimeout(init, options === null || options === void 0 ? void 0 : options.delay);\n }\n }, {\n key: \"close\",\n value: function close() {\n var _document$querySelect3;\n (_document$querySelect3 = document.querySelector(\".toast\")) === null || _document$querySelect3 === void 0 || _document$querySelect3.remove();\n }\n }, {\n key: \"displayToast\",\n value: function displayToast() {\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var type = arguments.length > 1 ? arguments[1] : undefined;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.setOptions(options);\n if (!message && type == \"error\") message = \"Server error! Not your fault.\";\n this.placeToast(message, type);\n }\n }]);\n}();\nBN.domContentLoadedFncList.push(function () {\n BN.toastService = new Toast();\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 SpeedToolsService = /*#__PURE__*/function () {\n function SpeedToolsService() {\n _classCallCheck(this, SpeedToolsService);\n }\n return _createClass(SpeedToolsService, [{\n key: \"IsPerformanceToolVisiting\",\n value: function IsPerformanceToolVisiting() {\n var check = false;\n (function (a) {\n if (/lighthouse|speedcurve|page speed|headless|webpagetest|screaming frog|addthis|PTST|googlebot|adsbot|feedfetcher|mediapartners|spider|bingbot|apica/gi.test(a)) check = true;\n })(navigator.userAgent);\n return check;\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 _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(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 _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(r) { if (Array.isArray(r)) return r; }\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); }\n//===========GTM Product Impression tracking\nBN.productImpressionTracking = function ($productElements, productDatalayer) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n list = _ref.list;\n if (!$productElements && !productDatalayer && $productElements.length != productDatalayer.length) return;\n var observeImpression = new window.IntersectionObserver(function (entries) {\n if (entries.length) {\n var impressions = [];\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n var position = $productElements.findIndex(function (item) {\n return item === entry.target;\n });\n impressions.push(_objectSpread(_objectSpread({}, productDatalayer[position]), {}, {\n list: list,\n position: position + 1\n }));\n observeImpression.unobserve(entry.target);\n }\n });\n if (impressions.length) {\n var _BN;\n BN.pushDataLayer(null, null, {\n 'event': 'view_item_list',\n 'ecommerce': {\n 'currencyCode': (_BN = BN) === null || _BN === void 0 || (_BN = _BN.defaultConfig) === null || _BN === void 0 ? void 0 : _BN.currencyCode,\n 'impressions': impressions\n }\n });\n }\n }\n }, {\n root: null,\n rootMargin: \"0px\",\n threshold: 0.5 // set offset 0.1 means trigger if atleast 10% of element in viewport\n });\n $productElements.forEach(function (productElement) {\n if (productElement) {\n observeImpression.observe(productElement);\n }\n });\n};\n\n//===========GTM Block tracking\nBN.blockTracking = function () {\n var blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var blockItems = {\n \"herocarouselblock-item\": {\n selector: \".herocarouselblock .hero-banner-block\",\n navigateSelector: \"a[href]\"\n },\n \"splitmediaandcontentblock\": {\n selector: \".splitmediaandcontentblock\",\n navigateSelector: \"a[href]\"\n },\n \"brandcontent-item\": {\n selector: \".brandcarouselblock .brand__content--item\",\n navigateSelector: \"a[href]\"\n },\n \"productcategorycarouselblock-item\": {\n selector: \".productcategorycarouselblock .category-slider__item\",\n navigateSelector: \"a[href]\",\n blockIsNavigateSelector: true\n },\n \"recommedendproductsblock\": {\n selector: \".recommedendproductsblock\",\n navigateSelector: \"a[href], .category-slider__item__cart-btn\"\n },\n \"global-promotion-bar-block\": {\n selector: \".promotion-bar\",\n blockIsNavigateSelector: true\n },\n \"mega-menu-banner-block\": {\n selector: \".mega-banner\",\n blockIsNavigateSelector: true\n },\n \"mega-menu-promo-banner-block\": {\n selector: \".mega-menu-promo\",\n blockIsNavigateSelector: true\n },\n \"deals-featured-products-carousel\": {\n selector: \".deals-featured-products-carousel-block\",\n navigateSelector: \"a[href], .category-slider__item__cart-btn\"\n },\n \"homepage-left-content-block\": {\n selector: \".homepage-left-content-block\",\n navigateSelector: \"a[href]\",\n blockIsNavigateSelector: true\n },\n \"homepage-right-content-block\": {\n selector: \".homepage-right-content-block\",\n navigateSelector: \"a[href]\",\n blockIsNavigateSelector: true\n },\n \"homepage-banner-block\": {\n selector: \".homepage-banner-block\",\n navigateSelector: \"a[href]\",\n blockIsNavigateSelector: true\n },\n \"media-and-content-selection-block\": {\n selector: \".media-and-content-selection-block\",\n navigateSelector: \"a[href]\",\n blockIsNavigateSelector: true\n }\n };\n var observeImpression = new window.IntersectionObserver(function (entries) {\n if (entries.length) {\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n var _contentarea$dataset, _entry$target$dataset, _contentBlock$dataset, _contentBlock$dataset2, _contentBlock$dataset3;\n var contentarea = entry.target.closest(\"[data-contentarea-name]\");\n var contentareaName = contentarea === null || contentarea === void 0 || (_contentarea$dataset = contentarea.dataset) === null || _contentarea$dataset === void 0 ? void 0 : _contentarea$dataset.contentareaName;\n var contentBlock = (_entry$target$dataset = entry.target.dataset) !== null && _entry$target$dataset !== void 0 && _entry$target$dataset.blockId ? entry.target : entry.target.querySelector(\"[data-block-id]\");\n var contentBlockName = contentBlock === null || contentBlock === void 0 || (_contentBlock$dataset = contentBlock.dataset) === null || _contentBlock$dataset === void 0 ? void 0 : _contentBlock$dataset.blockName;\n var contentBlockId = contentBlock === null || contentBlock === void 0 || (_contentBlock$dataset2 = contentBlock.dataset) === null || _contentBlock$dataset2 === void 0 ? void 0 : _contentBlock$dataset2.blockId;\n var positionBlock = contentBlock === null || contentBlock === void 0 || (_contentBlock$dataset3 = contentBlock.dataset) === null || _contentBlock$dataset3 === void 0 ? void 0 : _contentBlock$dataset3.blockIndex;\n var isClickable = contentBlock === null || contentBlock === void 0 ? void 0 : contentBlock.hasAttribute(\"is-clickable\");\n observeImpression.unobserve(entry.target);\n BN.pushDataLayer(null, null, {\n 'event': 'content_block_impression',\n 'contentBlockName': contentBlockName,\n 'contentBlockID': contentBlockId,\n 'contentBlockCreative': null,\n 'contentBlockLocation': contentareaName,\n 'isClickable': isClickable ? \"yes\" : \"no\",\n 'position': positionBlock\n });\n }\n });\n }\n }, {\n root: null,\n rootMargin: \"0px\",\n threshold: 0.5 // set offset 0.1 means trigger if atleast 10% of element in viewport\n });\n var _loop = function _loop() {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n key = _Object$entries$_i[0],\n block = _Object$entries$_i[1];\n if (blocks.includes(key)) {\n document.querySelectorAll(block.selector).forEach(function (blockNode) {\n if (!blockNode.classList.contains(\"loaded\")) {\n var _blockNode$dataset, _contentarea$dataset2, _contentBlock$dataset4, _contentBlock$dataset5;\n var contentBlockTracking = function contentBlockTracking(target) {\n BN.pushDataLayer(target, \"click\", {\n 'event': 'content_block_click',\n 'contentBlockName': contentBlockName,\n 'contentBlockID': contentBlockId,\n 'contentBlockCreative': null,\n 'contentBlockLocation': contentareaName,\n 'position': positionBlock,\n 'isClickable': isClickable ? \"yes\" : \"no\"\n });\n };\n observeImpression.observe(blockNode);\n var contentarea = blockNode.closest(\"[data-contentarea-name]\");\n var contentBlock = (_blockNode$dataset = blockNode.dataset) !== null && _blockNode$dataset !== void 0 && _blockNode$dataset.blockId ? blockNode : blockNode.querySelector(\"[data-block-id]\");\n var contentareaName = contentarea === null || contentarea === void 0 || (_contentarea$dataset2 = contentarea.dataset) === null || _contentarea$dataset2 === void 0 ? void 0 : _contentarea$dataset2.contentareaName;\n var contentBlockName = contentBlock === null || contentBlock === void 0 || (_contentBlock$dataset4 = contentBlock.dataset) === null || _contentBlock$dataset4 === void 0 ? void 0 : _contentBlock$dataset4.blockName;\n var contentBlockId = contentBlock === null || contentBlock === void 0 || (_contentBlock$dataset5 = contentBlock.dataset) === null || _contentBlock$dataset5 === void 0 ? void 0 : _contentBlock$dataset5.blockId;\n var positionBlock = Array.from((contentarea === null || contentarea === void 0 ? void 0 : contentarea.querySelectorAll(block.selector)) || []).indexOf(blockNode) + 1;\n var isClickable = contentBlock === null || contentBlock === void 0 ? void 0 : contentBlock.hasAttribute(\"is-clickable\");\n if (contentBlock) {\n contentBlock.dataset.blockIndex = positionBlock;\n }\n if (block !== null && block !== void 0 && block.navigateSelector) {\n blockNode.querySelectorAll(block.navigateSelector).forEach(function (nav) {\n contentBlockTracking(nav);\n });\n }\n if (block !== null && block !== void 0 && block.blockIsNavigateSelector) {\n contentBlockTracking(blockNode);\n }\n blockNode.classList.add(\"loaded\");\n }\n });\n }\n };\n for (var _i = 0, _Object$entries = Object.entries(blockItems); _i < _Object$entries.length; _i++) {\n _loop();\n }\n};\nBN.domContentLoadedFncList.push(function () {\n BN.blockTracking([\"herocarouselblock-item\", \"splitmediaandcontentblock\", \"brandcontent-item\", \"productcategorycarouselblock-item\"]);\n});"],"names":["_document$querySelect","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","h","f","Error","s","done","method","arg","delegate","maybeInvokeDelegate","TypeError","y","tryCatch","type","resultName","next","nextLoc","sent","_sent","dispatchException","abrupt","p","l","call","GeneratorFunction","GeneratorFunctionPrototype","d","this","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","callInvokeWithMethodAndArg","invoke","_typeof","resolve","__await","then","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","BN","BNApp","vueApp","mediaQueryMobile","window","matchMedia","mediaQueryTablet","LogObjectChange","objectPath","evalString","concat","eval","_classCallCheck","_defineProperties","key","_createClass","screenMode","matches","apiDomain","origin","wHeight","wWidth","headerElm","bodyWidth","domContentLoadedFncList","vueMountedFncList","windowResizeFncList","scrollEventFncList","scrollUpEventFncList","scrollDownEventFncList","onDropdownCloseFncList","onClickDocumentFnList","isScreenReaderMode","version","document","firstElementChild","dataset","delayInitializeFnc","isInitialized","list","reinitializedList","listDialogCursor","vueComponentsToLoad","checkIsMobile","test","navigator","userAgent","platform","maxTouchPoints","checkIsIOS","MSStream","defaultConfig","currencyCode","querySelector","getAttribute","breakpoints","desktop","laptop","debounce","func","wait","immediate","timeout","context","args","callNow","clearTimeout","setTimeout","omit","obj","result","_len","props","Array","_key","prop","throttleTimerList","throttle","delay","undefined","_len2","_key2","timerItem","timer","throttleTargetList","Map","throttleTarget","target","_len3","_key3","get","set","sleep","ms","start","Date","getTime","copy","input","JSON","parse","stringify","slugify","text","toString","normalize","toLowerCase","trim","replace","mergeDeep","source","isObject","item","isArray","output","assign","callback","resume","timerId","timeStart","now","remaining","pause","restart","running","imageProductResized","imageUrl","width","quality","imageFormatSupportOldBrowser","_window$isDeviceSuppo","isDeviceSupport","error","console","log","isCloudflareImageResizerAvailable","vueData","data","mixins","components","computed","methods","computedList","methodsList","createdFnList","mountedFnList","SetVueData","componentName","LoadVueComponentAtStartup","_ref","_callee","url","isFromSv","component","_context","indexOf","httpVueLoader","t0","_x","_x2","_x3","LoadComponent","path","SetVueComponent","SetVueComponentAtRunTime","cacheTemplate","updateViewApp","$forceUpdate","$nextTick","afterLoadComponent","_BN$manuallyCompile","render","manuallyCompile","compile","template","KeyName","enter","Key","ARROW_UP","ARROW_DOWN","ENTER","ESCAPE","SPACE","END","HOME","PAGE_UP","PAGE_DOWN","StorageKey","username","prevUrl","btnPopupElem","hasLoginPopup","hasLoginToCheckoutPopup","hasLoginFavoritePopup","loginFromFavorite","redirectToPlpFromSearchHeader","Regex","allCaseCharacter","RegExp","specialCharacter","number","allRule","email","nonASCII","MaxLengthInput","phone","fflNumber","billingFirstName","billingLastName","billingShopName","billingAddressLine1","billingAddressLine2","billingCity","billingCountry","billingState","billingZipCode","deliveryFirstName","deliveryLastName","deliveryShopName","gcMessage","RegisterAccountCode","invalidUsername","invalidEmailBillingAddress","invalidPassword","AttributeStatusToClassName","1","2","3","4","5","onChangePhoneCode","evt","refInputName","listPhoneCodes","_currentOption$","currentOption","code","dialCode","$refs","setAttribute","formatPrice","price","format","numberDigitRound","floatPrice","parseFloat","strPrice","Math","abs","toFixed","formatString","stringTemplate","_len4","params","_key4","formatInfoFFLDealer","model","strConverted","street","city","stateCode","zipCode","phoneNumber","countryCodeForPhone","equalsObject","b","every","k","selectElementContents","el","range","createRange","sel","selectNodeContents","getSelection","removeAllRanges","addRange","lazyLoadFiles","files","isSelfHosting","node","promies","createElement","rel","href","src","onload","isError","onerror","head","append","all","responses","encodeHtml","decodeHtml","innerHTML","childNodes","nodeValue","remove","eventSelectVariantCallBacks","Set","setEventSelectVariant","cbAfter","isRefreshComponent","isInitVueComponent","add","addedEventSelectVariant","addEventListener","productItemNodes","productItemNode","dialogCursor","closest","dataDialogAddCart","dialogAddCart","isOnlyNotifyMe","hasAttribute","datalayerPid","pid","volumeDiscount","productList","pushDataLayer","event","interactionText","innerText","location","itemListName","sku","datalayerVid","vid","from","_target$closest","querySelectorAll","_isOnlyNotifyMe","_BNApp$dialogAddCart","refresh","onlyNotifyMe","allVariantOutOfStock","variantCode","productCode","isReload","variant","productPosition","_productItemNode$data","$data","selections","productUrl","setEventSelectVariantForCartRecs","miniCart","addedEventSelectVariantForCartRecs","elm","_BNApp$dialogAddCart2","_e$target","cacheListOfProduct","data_object","currentDate","_data_object$ecommerc","ecommerce","click","products","id","_data_object$ecommerc2","expiresAt","setDate","getDate","_data_object$ecommerc3","actionField","position","_data_object$ecommerc4","ctrlKey","localStorage","sessionStorage","setItem","element","dataLayer","waitForElmRendering","selector","it","observer","disconnect","MutationObserver","observe","body","childList","subtree","collectVolumeDiscountInfo","settings","amountLabel","popupAmountColumnName","priceLabel","popupPriceColumnName","quantityLabel","popupQuantityColumnName","volumeDiscountTitle","popupTitle","textOnPdp","iconOnPdpUrl","title","columns","dispathEvent","open","customEvent","CustomEvent","detail","dispatchEvent","close","DropdownService","container","dropdownElms","self","dropdownElm","cursor","initializedDropdown","show","panelElm","cursorElm","targetPanelCursorContainer","loginRecaptcharEl","recaptchaEl","updateReCaptchaInterval","clearInterval","parentNode","removeChild","classList","lockScrollIos","offAll","_cursorElm$classList","contains","cart","showcart","hideDialogComplete","resetStyleElm","focus","_BNApp$cart","CartService","autoFocusAtFirstElm","dropdownService","loopFocus","currentCursor","targetCursor","isToggle","errorMessageEl","parentElm","targetPanel","cloneEl","content","cloneNode","appendChild","errorEdgeMember","isEdgeMembershipInCart","activeCursorElm","lockScroll","on","rectCursor","pos","getBoundingClientRect","height","x","offsetWidth","_parentElm$dataset","placement","ignoreDetectPositionAutomatically","style","left","right","top","shiftKey","preventDefault","firstFocusableElm","lastFocusableElm","listFocusableElms","onlyLoopFocus","tmpListFocusableElms","getListFocusableElms","tmpListFocusableElmsLength","vm","indx","_tmpListFocusableElms2","_tmpListFocusableElms","removeEventListener","firstFocusableElmKeyHandler","lastFocusableElmKeyHandler","_BN$dropdownService$l","_BN$dropdownService$f","selectorClassOrId","init","latestCursor","panelElms_length","listDialogCursorLength","panelElms","mouseUpData","mouseDownData","_mouseUpData","_mouseDownData","closeBtn","stopPropagation","DropdownMenu","dropdownElement","_this","ignoreBlur","dropdownToggle","dropdownPanel","onDropdownPanelMousedown","bind","onToggleClick","onToggleKeyDown","debounceSetPositionPanel","setPositionPanel","dropdownItems","updateState","onToggleBlur","posCursor","posPanel","bottom","isOpen","getActionFromKey","SelectActions","First","Close","Open","_this$dropdownElement","altKey","metaKey","includes","Last","CloseSelect","Previous","PageUp","PageDown","Next","Type","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","_createForOfIteratorHelper","_n","F","index","dropdown","OpenFirst","OpenLast","SelectBox","comboboxElement","active_value","active_key","options","indexFocus","indexSuggestion","keyPressSuggestion","isSuggestioning","itemToShow","disabled","selectElement","isReverseKeyValue","keepOpened","collapseOnMobile","selectCursor","selectPanel","onComboBlur","onComboClick","onComboKeyDown","onComboFocus","scrollTop","initOptionTag","Event","bubbles","which","keyCode","_step","_iterator","opt","err","addition_option_object","entriesObj","option_object","_this2","entries","replaceOptionSelect","option","optionIdx","optionKeyName","textContent","selected","_option$dataset","tooltip","_option$dataset2","additionalClass","html","touchDirection","isSelected","_addition_option_obje","optionElement","htmlOptionSelected","touchStartPos","lazySizes","setHtml","activeIndex","direction","currentCursorPos","isTouching","touches","clientY","passive","offsetHeight","scrollHeight","cancelable","_ref$dispatchEvent","selectOption","setScrollToOptionSelected","resetSuggestion","addedEventChange","_e$detail","optionEl","resetOption","allOptions","_this3","select","maxHeight","tmpWidth","alignRight","closeOtherSelects","focusOption","onChange","_this4","isMobile","targetOption","action","_this$allOptions$this","setScrollToOption","_index","optionsLength","onKeyPressSuggestion","optionOffsetTop","panelHeight","minScroll","maxScroll","offsetTop","optionHeight","clientHeight","scrollTo","behavior","isSmooth","optionSelected","extraClass","split","scrollIntoView","block","inline","_this$selectPanel$que","_this$selectCursor$da","placeholder","ariaSelected","ariaCurrent","_char","elOption","_elOption$innerText","startsWith","_char2","optionText","_optionSelected$inner","_optionText$toLowerCa","optionsSuggestion","getOptionsSuggestion","reduce","acc","cur","_cur$innerText","_char3","fromCharCode","debounceResetSuggestion","getCurrentIndexSuggestion","currentItemSuggestion","itemsSuggestion","removeAttribute","selectElm","CollapseService","listProperties","removeProperty","overflow","paddingTop","paddingBottom","marginTop","marginBottom","queryElm","collapseServiceInit","ev","_currentElm$classList","currentElm","triggerToggleClick","buttonId","duration","buttonElm","status","setProperty","getElementById","display","transitionProperty","transitionDuration","boxSizing","getComputedStyle","slideDown","slideUp","targetId","slideToggle","Focus","listCurrentSelectors","listNextSelectors","currentEl","nextEl","listCurrentEl","listNextEl","evtNext","addEventFocus","HttpService","DELETE","GET","PUT","POST","UPLOAD","PATCH","requestHeaders","isAsync","xhr","reject","XMLHttpRequest","setRequestHeader","getElementsByTagName","fromPage","headerKey","tokens","getElementsByName","_tokens$","resError","responseText","statusText","send","sendRequest","endPoint","doNotShowErrorMSG","res","message","toastService","displayToast","getPromise","Input","inputId","displayButtonId","parentElem","displayButtonEl","inputEl","eventName","pasteText","originalEvent","clipboardData","getData","_evt$target$value","elem","flag","classInActive","svgElem","password","strength","hasAllCaseChar","hasNumberSpecialChar","hasMoreEightChar","match","setClassPasswordCriteria","formGroupId","showPassStrength","addEventDisplayPassword","textLabel","strengthElemSelector","formGroupElem","strengthElem","strengthBarElem","strengthNameElem","labelStrengthMobile","checkStrength","_evt$target$value2","classSuffix","strengthBarLevelElem","listInputElems","errMsg","errorElem","formValid","textErrorElem","getTextErrorElement","inputValue","onlyValidateNonAscii","hasNonAsciiChar","nonAsciiMessage","_elem$previousSibling","previousSibling","tagName","generalMsgElem","isAsciiCharacterAllowed","_elem$nextElementSibl","_elem$previousSibling2","nextElementSibling","errEl","loopIndex","money","configRange","min","max","inputRangeElm","_configRange$inputRan","_configRange$inputRan2","priceMin","_configRange$inputRan3","_configRange$inputRan4","priceMax","_values$","_values$2","join","maxInputElm","minValue","valueInputMin","minInputElm","zIndex","zIndexInputRange","inverseRightElm","mainRangeElm","thumbRightElm","maxElm","setInputMoneys","maxValue","valueInputMax","inverseLeftElm","thumbLeftElm","minElm","sliderId","isInputMin","inited","configRangeList","_configRange","oldValue","onChangeEventInputRangeMin","onChangeEventInputRangeMax","isKeepValue","idsInput","rangeSliderElm","trigger","_e$detail$trigger","newValue","_input$dataset$defaul","_input$dataset","defaultValue","_configRange$minInput","addEventResetInput","addEventInputRange","_configRange$minInput2","parentId","parentEl","inputs","numberInputEl","_inputs","_pasteText$trim$match","evtName","maxLength","_input$max","thumb","progressBar","_input$min","inputRange","parseInt","per","round","AppStorage","Base64","_keyStr","encode","chr2","chr3","enc1","enc2","enc3","enc4","_utf8_encode","chr1","charCodeAt","decode","_utf8_decode","string","utftext","c3","c2","Storage","AppToast","saved","delete","removeItem","deleteAll","clear","inputService","inputElm","addEventSingleInputRange","styleContent","tooltipContent","vueModelTooltip","label","_config$tooltipLocati","_onMouseEnter","_onMouseLeave","tooltipReady","config","tooltipLocation","rect","rectContent","contentLeft","contentTop","contentWidth","contentHeight","marginLeft","_BNApp$$data$tooltip","_BNApp","targetNode","mutationsList","targets","mutation","attributes","Dialog","dialog","msg","okCallback","cancelCallback","dialogName","btnConfirmText","btnCancelText","bnConfirm","targetElm","submitter","disableClickOutsideCl","disableClickOutside","insertAdjacentHTML","hideBtnCancel","onclick","dialogConfig","class","bodyTemplate","closeCallback","isTinyMceFormat","externalTemplate","hideHeader","isConfirmation","dialogInitCallback","bnDialog","isFromSV","initDialogContainer","css","js","addEventLoginForm","addEventStepVerify","addEventSubmitEmailCheckout","CredovaService","credovaSettings","importCredova","environment","store","minAmount","maxAmount","CRDV","plugin","Environment","prequalify","approved","post","isSuccess","cookie","urlCredovaVendor","script","publicId","checkout","completed","Toast","prependTo","lifeSpan","animate","animateDuration","classes","default","success","info","warning","opts","classDict","toastType","htmlContent","toastParent","parentExists","className","customForIe","_document$querySelect2","_document$querySelect3","setOptions","placeToast","SpeedToolsService","check","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","productImpressionTracking","$productElements","productDatalayer","observeImpression","IntersectionObserver","impressions","entry","isIntersecting","findIndex","unobserve","_BN","root","rootMargin","threshold","productElement","blockTracking","blocks","contentareaName","contentBlockName","contentBlockId","positionBlock","isClickable","contentarea","_contentarea$dataset","contentBlock","_entry$target$dataset","blockId","_contentBlock$dataset","blockName","_contentBlock$dataset2","_contentBlock$dataset3","blockIndex","contentBlockID","contentBlockCreative","contentBlockLocation","_i","_Object$entries","herocarouselblock-item","navigateSelector","splitmediaandcontentblock","brandcontent-item","productcategorycarouselblock-item","blockIsNavigateSelector","recommedendproductsblock","global-promotion-bar-block","mega-menu-banner-block","mega-menu-promo-banner-block","deals-featured-products-carousel","homepage-left-content-block","homepage-right-content-block","homepage-banner-block","media-and-content-selection-block","_Object$entries$_i","blockNode","_contentBlock$dataset5","contentBlockTracking","_blockNode$dataset","_contentarea$dataset2","_contentBlock$dataset4","nav"],"mappings":"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"}