{"version":3,"file":"lp_dob.bundle.js","mappings":"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","sources":["webpack:///webpack/runtime/create fake namespace object","webpack:///webpack/runtime/load script","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/modules/esnext.iterator.every.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/core-js/modules/esnext.json.parse.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/get-iterator-direct.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/core-js/modules/web.url-search-params.has.js","webpack:///./node_modules/core-js/internals/get-json-replacer-function.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/modules/esnext.iterator.map.js","webpack:///./node_modules/core-js/internals/iterator-create-proxy.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/parse-json-string.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./src/main/webpack/libs/vendor/pristine.min.js","webpack:///./node_modules/core-js/modules/esnext.iterator.find.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./src/main/webpack/libs/component.js","webpack:///./node_modules/core-js/internals/define-built-ins.js","webpack:///./node_modules/core-js/modules/web.url-search-params.size.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./src/main/webpack/assets/lottie/circles.json","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/modules/esnext.iterator.constructor.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./src/main/webpack/libs/utils.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/delete-property-or-throw.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/esnext.iterator.filter.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/web.url-search-params.delete.js","webpack:///../src/loading-attribute-polyfill.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/core-js/internals/define-built-in-accessor.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/document-all.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/core-js/internals/array-set-length.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/vanilla-lazyload/dist/lazyload.min.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/core-js/internals/iterator-map.js","webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/modules/es.array.push.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/modules/es.array.unshift.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/modules/esnext.iterator.some.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/core-js/modules/esnext.iterator.reduce.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/core-js/modules/esnext.iterator.for-each.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/amd options","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","webpack:///./src/main/webpack/libs/analytics.js","webpack:///./src/main/webpack/libs/register.js","webpack:///./src/main/webpack/components/base-page/index.js","webpack:///./src/main/webpack/components/media-picture/index.js","webpack:///./src/main/webpack/components/base-header/index.js","webpack:///./src/main/webpack/components/base-header-lite/index.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./src/main/webpack/components/base-sticky-menu/index.js","webpack:///./src/main/webpack/components/layout-masonry/index.js","webpack:///./src/main/webpack/components/layout-prelogin/index.js","webpack:///./src/main/webpack/components/elem-custom-select/index.js","webpack:///./src/main/webpack/components/elem-custom-select-filter-table/index.js","webpack:///./src/main/webpack/components/elem-quick-links/index.js","webpack:///./src/main/webpack/components/elem-cta-modal/index.js","webpack:///./src/main/webpack/libs/commons.js","webpack:///./src/main/webpack/components/elem-card/index.js","webpack:///./src/main/webpack/components/elem-accordion/index.js","webpack:///./src/main/webpack/components/elem-searchbar/index.js","webpack:///./src/main/webpack/components/elem-iframe/index.js","webpack:///./src/main/webpack/components/elem-icon-anim/index.js","webpack:///./src/main/webpack/components/elem-flip-card/index.js","webpack:///./src/main/webpack/components/elem-lottie-animation/index.js","webpack:///./src/main/webpack/components/media-video/index.js","webpack:///./src/main/webpack/components/widget-modal/index.js","webpack:///./src/main/webpack/components/widget-modal-circuit/index.js","webpack:///./src/main/webpack/components/widget-modal-generic/index.js","webpack:///./src/main/webpack/components/widget-modal-comparison/index.js","webpack:///./src/main/webpack/components/widget-modal-form/index.js","webpack:///./src/main/webpack/components/widget-form-steps/index.js","webpack:///./src/main/webpack/libs/validation.js","webpack:///./src/main/webpack/components/widget-accordion-select/index.js","webpack:///./src/main/webpack/components/widget-table/index.js","webpack:///./src/main/webpack/components/widget-share/index.js","webpack:///./src/main/webpack/components/widget-slideshow/index.js","webpack:///./src/main/webpack/components/widget-round-images/index.js","webpack:///./src/main/webpack/components/widget-logos-grid/index.js","webpack:///./src/main/webpack/components/widget-chatbot/index.js","webpack:///./src/main/webpack/components/base-sticky-bar-dob/index.js","webpack:///./src/main/webpack/components/base-dynamic-component/index.js","webpack:///./src/main/webpack/components/base-footer-lp-dob/index.js","webpack:///./src/main/webpack/components/widget-lp-dob-loader-modal/index.js","webpack:///./src/main/webpack/components/elem-image/dynamic/index.js","webpack:///./src/main/webpack/components/elem-highlight-card/dynamic/index.js","webpack:///./src/main/webpack/components/elem-service-card/dynamic/index.js","webpack:///./src/main/webpack/components/widget-tile/dynamic/index.js","webpack:///./src/main/webpack/components/elem-accordion-faq/dynamic/index.js","webpack:///./src/main/webpack/components/widget-app-payments/dynamic/index.js","webpack:///./src/main/webpack/components/widget-tab/dynamic/index.js","webpack:///./src/main/webpack/components/widget-products-slider/dynamic/index.js","webpack:///./src/main/webpack/components/widget-product-detail-card/dynamic/index.js","webpack:///./src/main/webpack/components/layout-panel/dynamic/index.js","webpack:///./src/main/webpack/components/layout-cards/dynamic/index.js","webpack:///./src/main/webpack/index.lp_dob.js"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"ui.frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.31.1',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  every: function every(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return !iterate(record, function (value, stop) {\n      if (!predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || this || Function('return this')();\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n  return function () {\n    return call.apply(fn, arguments);\n  };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = global.JSON;\nvar Number = global.Number;\nvar SyntaxError = global.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^(-|\\d)$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n  source = toString(source);\n  var context = new Context(source, 0, '');\n  var root = context.parse();\n  var value = root.value;\n  var endIndex = context.skip(IS_WHITESPACE, root.end);\n  if (endIndex < source.length) {\n    throw SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n  }\n  return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n  var val = holder[name];\n  var unmodified = node && val === node.value;\n  var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n  var elementRecordsLen, keys, len, i, P;\n  if (isObject(val)) {\n    var nodeIsArray = isArray(val);\n    var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n    if (nodeIsArray) {\n      elementRecordsLen = nodes.length;\n      len = lengthOfArrayLike(val);\n      for (i = 0; i < len; i++) {\n        internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n      }\n    } else {\n      keys = enumerableOwnProperties(val);\n      len = lengthOfArrayLike(keys);\n      for (i = 0; i < len; i++) {\n        P = keys[i];\n        internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n      }\n    }\n  }\n  return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n  if (DESCRIPTORS) {\n    var descriptor = getOwnPropertyDescriptor(object, key);\n    if (descriptor && !descriptor.configurable) return;\n  }\n  if (value === undefined) delete object[key];\n  else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n  this.value = value;\n  this.end = end;\n  this.source = source;\n  this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n  this.source = source;\n  this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n  fork: function (nextIndex) {\n    return new Context(this.source, nextIndex);\n  },\n  parse: function () {\n    var source = this.source;\n    var i = this.skip(IS_WHITESPACE, this.index);\n    var fork = this.fork(i);\n    var chr = at(source, i);\n    if (exec(IS_NUMBER_START, chr)) return fork.number();\n    switch (chr) {\n      case '{':\n        return fork.object();\n      case '[':\n        return fork.array();\n      case '\"':\n        return fork.string();\n      case 't':\n        return fork.keyword(true);\n      case 'f':\n        return fork.keyword(false);\n      case 'n':\n        return fork.keyword(null);\n    } throw SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n  },\n  node: function (type, value, start, end, nodes) {\n    return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n  },\n  object: function () {\n    var source = this.source;\n    var i = this.index + 1;\n    var expectKeypair = false;\n    var object = {};\n    var nodes = {};\n    while (i < source.length) {\n      i = this.until(['\"', '}'], i);\n      if (at(source, i) == '}' && !expectKeypair) {\n        i++;\n        break;\n      }\n      // Parsing the key\n      var result = this.fork(i).string();\n      var key = result.value;\n      i = result.end;\n      i = this.until([':'], i) + 1;\n      // Parsing value\n      i = this.skip(IS_WHITESPACE, i);\n      result = this.fork(i).parse();\n      createProperty(nodes, key, result);\n      createProperty(object, key, result.value);\n      i = this.until([',', '}'], result.end);\n      var chr = at(source, i);\n      if (chr == ',') {\n        expectKeypair = true;\n        i++;\n      } else if (chr == '}') {\n        i++;\n        break;\n      }\n    }\n    return this.node(OBJECT, object, this.index, i, nodes);\n  },\n  array: function () {\n    var source = this.source;\n    var i = this.index + 1;\n    var expectElement = false;\n    var array = [];\n    var nodes = [];\n    while (i < source.length) {\n      i = this.skip(IS_WHITESPACE, i);\n      if (at(source, i) == ']' && !expectElement) {\n        i++;\n        break;\n      }\n      var result = this.fork(i).parse();\n      push(nodes, result);\n      push(array, result.value);\n      i = this.until([',', ']'], result.end);\n      if (at(source, i) == ',') {\n        expectElement = true;\n        i++;\n      } else if (at(source, i) == ']') {\n        i++;\n        break;\n      }\n    }\n    return this.node(OBJECT, array, this.index, i, nodes);\n  },\n  string: function () {\n    var index = this.index;\n    var parsed = parseJSONString(this.source, this.index + 1);\n    return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n  },\n  number: function () {\n    var source = this.source;\n    var startIndex = this.index;\n    var i = startIndex;\n    if (at(source, i) == '-') i++;\n    if (at(source, i) == '0') i++;\n    else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, ++i);\n    else throw SyntaxError('Failed to parse number at: ' + i);\n    if (at(source, i) == '.') i = this.skip(IS_DIGIT, ++i);\n    if (at(source, i) == 'e' || at(source, i) == 'E') {\n      i++;\n      if (at(source, i) == '+' || at(source, i) == '-') i++;\n      var exponentStartIndex = i;\n      i = this.skip(IS_DIGIT, i);\n      if (exponentStartIndex == i) throw SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n    }\n    return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n  },\n  keyword: function (value) {\n    var keyword = '' + value;\n    var index = this.index;\n    var endIndex = index + keyword.length;\n    if (slice(this.source, index, endIndex) != keyword) throw SyntaxError('Failed to parse value at: ' + index);\n    return this.node(PRIMITIVE, value, index, endIndex);\n  },\n  skip: function (regex, i) {\n    var source = this.source;\n    for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n    return i;\n  },\n  until: function (array, i) {\n    i = this.skip(IS_WHITESPACE, i);\n    var chr = at(this.source, i);\n    for (var j = 0; j < array.length; j++) if (array[j] == chr) return i;\n    throw SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n  }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n  var unsafeInt = '9007199254740993';\n  var source;\n  nativeParse(unsafeInt, function (key, value, context) {\n    source = context.source;\n  });\n  return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n  // Safari 9 bug\n  return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n  parse: function parse(text, reviver) {\n    return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n  }\n});\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n  return {\n    iterator: obj,\n    next: obj.next,\n    done: false\n  };\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n  var symbol = getBuiltIn('Symbol')();\n  // MS Edge converts symbol values to JSON as {}\n  return $stringify([symbol]) != '[null]'\n    // WebKit converts symbol values to JSON as null\n    || $stringify({ a: symbol }) != '{}'\n    // V8 throws on boxed symbols\n    || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n  return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n    || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n  var args = arraySlice(arguments);\n  var $replacer = getReplacerFunction(replacer);\n  if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n  args[1] = function (key, value) {\n    // some old implementations (like WebKit) could pass numbers as keys\n    if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n    if (!isSymbol(value)) return value;\n  };\n  return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n  var prev = charAt(string, offset - 1);\n  var next = charAt(string, offset + 1);\n  if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n    return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n  } return match;\n};\n\nif ($stringify) {\n  // `JSON.stringify` method\n  // https://tc39.es/ecma262/#sec-json.stringify\n  $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n    // eslint-disable-next-line no-unused-vars -- required for `.length`\n    stringify: function stringify(it, replacer, space) {\n      var args = arraySlice(arguments);\n      var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n      return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n    }\n  });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\nif (params.has('a', 2)) {\n  defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $has(this, name);\n    var values = getAll(this, name); // also validates `this`\n    validateArgumentsLength(length, 1);\n    var value = toString($value);\n    var index = 0;\n    while (index < values.length) {\n      if (values[index++] === value) return true;\n    } return false;\n  }, { enumerable: true, unsafe: true });\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n  if (isCallable(replacer)) return replacer;\n  if (!isArray(replacer)) return;\n  var rawLength = replacer.length;\n  var keys = [];\n  for (var i = 0; i < rawLength; i++) {\n    var element = replacer[i];\n    if (typeof element == 'string') push(keys, element);\n    else if (typeof element == 'number' || classof(element) == 'Number' || classof(element) == 'String') push(keys, toString(element));\n  }\n  var keysLength = keys.length;\n  var root = true;\n  return function (key, value) {\n    if (root) {\n      root = false;\n      return value;\n    }\n    if (isArray(this)) return value;\n    for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n  };\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator, 'throw', error);\n  }\n};\n","var $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  map: map\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n  var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n  return defineBuiltIns(create(IteratorPrototype), {\n    next: function next() {\n      var state = getInternalState(this);\n      // for simplification:\n      //   for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n      //   for `%IteratorHelperPrototype%.next` - just a value\n      if (IS_ITERATOR) return state.nextHandler();\n      try {\n        var result = state.done ? undefined : state.nextHandler();\n        return createIterResultObject(result, state.done);\n      } catch (error) {\n        state.done = true;\n        throw error;\n      }\n    },\n    'return': function () {\n      var state = getInternalState(this);\n      var iterator = state.iterator;\n      state.done = true;\n      if (IS_ITERATOR) {\n        var returnMethod = getMethod(iterator, 'return');\n        return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n      }\n      if (state.inner) try {\n        iteratorClose(state.inner.iterator, 'normal');\n      } catch (error) {\n        return iteratorClose(iterator, 'throw', error);\n      }\n      iteratorClose(iterator, 'normal');\n      return createIterResultObject(undefined, true);\n    }\n  });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n  var IteratorProxy = function Iterator(record, state) {\n    if (state) {\n      state.iterator = record.iterator;\n      state.next = record.next;\n    } else state = record;\n    state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n    state.nextHandler = nextHandler;\n    state.counter = 0;\n    state.done = false;\n    setInternalState(this, state);\n  };\n\n  IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n  return IteratorProxy;\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name)) {\n    WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n      ? Symbol[name]\n      : createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n  '\\\\\"': '\"',\n  '\\\\\\\\': '\\\\',\n  '\\\\/': '/',\n  '\\\\b': '\\b',\n  '\\\\f': '\\f',\n  '\\\\n': '\\n',\n  '\\\\r': '\\r',\n  '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n  var unterminated = true;\n  var value = '';\n  while (i < source.length) {\n    var chr = at(source, i);\n    if (chr == '\\\\') {\n      var twoChars = slice(source, i, i + 2);\n      if (hasOwn(codePoints, twoChars)) {\n        value += codePoints[twoChars];\n        i += 2;\n      } else if (twoChars == '\\\\u') {\n        i += 2;\n        var fourHexDigits = slice(source, i, i + 4);\n        if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw $SyntaxError('Bad Unicode escape at: ' + i);\n        value += fromCharCode($parseInt(fourHexDigits, 16));\n        i += 4;\n      } else throw $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n    } else if (chr == '\"') {\n      unterminated = false;\n      i++;\n      break;\n    } else {\n      if (exec(IS_C0_CONTROL_CODE, chr)) throw $SyntaxError('Bad control character in string literal at: ' + i);\n      value += chr;\n      i++;\n    }\n  }\n  if (unterminated) throw $SyntaxError('Unterminated string at: ' + i);\n  return { value: value, end: i };\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPropertyKey(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol();\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n  // of course, fail.\n  return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","!function(e,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(r):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).Pristine=r()}(this,(function(){\"use strict\";var e={en:{required:\"This field is required\",email:\"This field requires a valid e-mail address\",number:\"This field requires a number\",integer:\"This field requires an integer value\",url:\"This field requires a valid website URL\",tel:\"This field requires a valid telephone number\",maxlength:\"This fields length must be < ${1}\",minlength:\"This fields length must be > ${1}\",min:\"Minimum value for this field is ${1}\",max:\"Maximum value for this field is ${1}\",pattern:\"Please match the requested format\",equals:\"The two fields do not match\",default:\"Please enter a correct value\"}};function r(e){var r=arguments;return this.replace(/\\${([^{}]*)}/g,(function(e,t){return r[t]}))}function t(e){return e.pristine.self.form.querySelectorAll('input[name=\"'+e.getAttribute(\"name\")+'\"]:checked').length}var n={classTo:\"form-group\",errorClass:\"has-danger\",successClass:\"has-success\",errorTextParent:\"form-group\",errorTextTag:\"div\",errorTextClass:\"text-help\"},i=[\"required\",\"min\",\"max\",\"minlength\",\"maxlength\",\"pattern\"],s=/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,a=/-message(?:-([a-z]{2}(?:_[A-Z]{2})?))?/,o=\"en\",l={},u=function(e,r){r.name=e,void 0===r.priority&&(r.priority=1),l[e]=r};function f(t,s,u){var f=this;function c(e,r,t,n){var i=l[t];if(i&&(e.push(i),n)){var s=\"pattern\"===t?[n]:n.split(\",\");s.unshift(null),r[t]=s}}function p(t){for(var n=[],i=!0,s=0;t.validators[s];s++){var a=t.validators[s],l=t.params[a.name]?t.params[a.name]:[];if(l[0]=t.input.value,!a.fn.apply(t.input,l)&&(i=!1,\"function\"==typeof a.msg?n.push(a.msg(t.input.value,l)):\"string\"==typeof a.msg?n.push(r.apply(a.msg,l)):a.msg===Object(a.msg)&&a.msg[o]?n.push(r.apply(a.msg[o],l)):t.messages[o]&&t.messages[o][a.name]?n.push(r.apply(t.messages[o][a.name],l)):e[o]&&e[o][a.name]?n.push(r.apply(e[o][a.name],l)):n.push(r.apply(e[o].default,l)),!0===a.halt))break}return t.errors=n,i}function m(e){if(e.errorElements)return e.errorElements;var r=function(e,r){for(;(e=e.parentElement)&&!e.classList.contains(r););return e}(e.input,f.config.classTo),t=null,n=null;return(t=f.config.classTo===f.config.errorTextParent?r:r.querySelector(\".\"+f.config.errorTextParent))&&((n=t.querySelector(\".pristine-error\"))||((n=document.createElement(f.config.errorTextTag)).className=\"pristine-error \"+f.config.errorTextClass,t.appendChild(n),n.pristineDisplay=n.style.display)),e.errorElements=[r,n]}function d(e){var r=m(e),t=r[0],n=r[1];t&&(t.classList.remove(f.config.successClass),t.classList.add(f.config.errorClass)),n&&(n.innerHTML=e.errors.join(\"<br/>\"),n.style.display=n.pristineDisplay||\"\")}function h(e){var r=function(e){var r=m(e),t=r[0],n=r[1];return t&&(t.classList.remove(f.config.errorClass),t.classList.remove(f.config.successClass)),n&&(n.innerHTML=\"\",n.style.display=\"none\"),r}(e)[0];r&&r.classList.add(f.config.successClass)}return function(e,r,t){e.setAttribute(\"novalidate\",\"true\"),f.form=e,f.config=function(e,r){for(var t in r)t in e||(e[t]=r[t]);return e}(r||{},n),f.live=!(!1===t),f.fields=Array.from(e.querySelectorAll(\"input:not([type^=hidden]):not([type^=submit]), select, textarea\")).map(function(e){var r=[],t={},n={};return[].forEach.call(e.attributes,(function(e){if(/^data-pristine-/.test(e.name)){var s=e.name.substr(14),o=s.match(a);if(null!==o){var l=void 0===o[1]?\"en\":o[1];return n.hasOwnProperty(l)||(n[l]={}),void(n[l][s.slice(0,s.length-o[0].length)]=e.value)}\"type\"===s&&(s=e.value),c(r,t,s,e.value)}else~i.indexOf(e.name)?c(r,t,e.name,e.value):\"type\"===e.name&&c(r,t,e.value)})),r.sort((function(e,r){return r.priority-e.priority})),f.live&&e.addEventListener(~[\"radio\",\"checkbox\"].indexOf(e.getAttribute(\"type\"))?\"change\":\"input\",function(e){f.validate(e.target)}.bind(f)),e.pristine={input:e,validators:r,params:t,messages:n,self:f}}.bind(f))}(t,s,u),f.validate=function(e,r){r=e&&!0===r||!0===e;var t=f.fields;!0!==e&&!1!==e&&(e instanceof HTMLElement?t=[e.pristine]:(e instanceof NodeList||e instanceof(window.$||Array)||e instanceof Array)&&(t=Array.from(e).map((function(e){return e.pristine}))));for(var n=!0,i=0;t[i];i++){var s=t[i];p(s)?!r&&h(s):(n=!1,!r&&d(s))}return n},f.getErrors=function(e){if(!e){for(var r=[],t=0;t<f.fields.length;t++){var n=f.fields[t];n.errors.length&&r.push({input:n.input,errors:n.errors})}return r}return e.tagName&&\"select\"===e.tagName.toLowerCase()?e.pristine.errors:e.length?e[0].pristine.errors:e.pristine.errors},f.addValidator=function(e,r,t,n,i){e instanceof HTMLElement?(e.pristine.validators.push({fn:r,msg:t,priority:n,halt:i}),e.pristine.validators.sort((function(e,r){return r.priority-e.priority}))):console.warn(\"The parameter elem must be a dom element\")},f.addError=function(e,r){(e=e.length?e[0]:e).pristine.errors.push(r),d(e.pristine)},f.reset=function(){for(var e=0;f.fields[e];e++)f.fields[e].errorElements=null;Array.from(f.form.querySelectorAll(\".pristine-error\")).map((function(e){e.parentNode.removeChild(e)})),Array.from(f.form.querySelectorAll(\".\"+f.config.classTo)).map((function(e){e.classList.remove(f.config.successClass),e.classList.remove(f.config.errorClass)}))},f.destroy=function(){f.reset(),f.fields.forEach((function(e){delete e.input.pristine})),f.fields=[]},f.setGlobalConfig=function(e){n=e},f}return u(\"text\",{fn:function(e){return!0},priority:0}),u(\"required\",{fn:function(e){return\"radio\"===this.type||\"checkbox\"===this.type?t(this):void 0!==e&&\"\"!==e},priority:99,halt:!0}),u(\"email\",{fn:function(e){return!e||s.test(e)}}),u(\"number\",{fn:function(e){return!e||!isNaN(parseFloat(e))},priority:2}),u(\"integer\",{fn:function(e){return!e||/^\\d+$/.test(e)}}),u(\"minlength\",{fn:function(e,r){return!e||e.length>=parseInt(r)}}),u(\"maxlength\",{fn:function(e,r){return!e||e.length<=parseInt(r)}}),u(\"min\",{fn:function(e,r){return!e||(\"checkbox\"===this.type?t(this)>=parseInt(r):parseFloat(e)>=parseFloat(r))}}),u(\"max\",{fn:function(e,r){return!e||(\"checkbox\"===this.type?t(this)<=parseInt(r):parseFloat(e)<=parseFloat(r))}}),u(\"pattern\",{fn:function(e,r){var t=r.match(new RegExp(\"^/(.*?)/([gimy]*)$\"));return!e||new RegExp(t[1],t[2]).test(e)}}),u(\"equals\",{fn:function(e,r){var t=document.querySelector(r);return t&&(!e&&!t.value||t.value===e)}}),f.addValidator=function(e,r,t,n,i){u(e,{fn:r,msg:t,priority:n,halt:i})},f.addMessages=function(r,t){var n=e.hasOwnProperty(r)?e[r]:e[r]={};Object.keys(t).forEach((function(e,r){n[e]=t[e]}))},f.setLocale=function(e){o=e},f}));\r\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.find` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  find: function find(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop(value);\n    }, { IS_RECORD: true, INTERRUPTED: true }).result;\n  }\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n","export default class Component {\r\n    constructor(name) {\r\n        this.name = name;\r\n    }\r\n\r\n    _elMod(elName, modifier, addDot = false) {\r\n        return `${addDot ? '.' : ''}${this.name}__${elName}--${modifier}`;\r\n    }\r\n\r\n    _mod(modifier, addDot = false) {\r\n        return `${addDot ? '.' : ''}${this.name}--${modifier}`;\r\n    }\r\n\r\n    _el(elName, addDot = false) {\r\n        return `${addDot ? '.' : ''}${this.name}__${elName}`;\r\n    }\r\n}\r\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) defineBuiltIn(target, key, src[key], options);\n  return target;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n  defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n    get: function size() {\n      var count = 0;\n      forEach(this, function () { count++; });\n      return count;\n    },\n    configurable: true,\n    enumerable: true\n  });\n}\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_RECORD = !!(options && options.IS_RECORD);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    if (iterator) iteratorClose(iterator, 'normal', condition);\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_RECORD) {\n    iterator = iterable.iterator;\n  } else if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && isPrototypeOf(ResultPrototype, result)) return result;\n      } return new Result(false);\n    }\n    iterator = getIterator(iterable, iterFn);\n  }\n\n  next = IS_RECORD ? iterable.next : iterator.next;\n  while (!(step = call(next, iterator)).done) {\n    try {\n      result = callFn(step.value);\n    } catch (error) {\n      iteratorClose(iterator, 'throw', error);\n    }\n    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n  } return new Result(false);\n};\n","const data = {\n  \"nm\": \"newScene\",\n  \"ddd\": 0,\n  \"h\": 600,\n  \"w\": 800,\n  \"meta\": {\n    \"g\": \"@lottiefiles/toolkit-js 0.26.1\"\n  },\n  \"layers\": [\n    {\n      \"ty\": 4,\n      \"nm\": \"Layer 3\",\n      \"sr\": 1,\n      \"st\": 0,\n      \"op\": 20,\n      \"ip\": 0,\n      \"hd\": false,\n      \"ddd\": 0,\n      \"bm\": 3,\n      \"hasMask\": false,\n      \"ao\": 0,\n      \"ks\": {\n        \"a\": {\n          \"a\": 0,\n          \"k\": [\n            -24.5,\n            -24.5,\n            0\n          ]\n        },\n        \"s\": {\n          \"a\": 0,\n          \"k\": [\n            100,\n            100,\n            100\n          ]\n        },\n        \"sk\": {\n          \"a\": 0,\n          \"k\": 0\n        },\n        \"p\": {\n          \"a\": 1,\n          \"k\": [\n            {\n              \"o\": {\n                \"x\": 0.785,\n                \"y\": 0.135\n              },\n              \"i\": {\n                \"x\": 0.15,\n                \"y\": 0.86\n              },\n              \"s\": [\n                456.419,\n                423.252,\n                0\n              ],\n              \"t\": 0,\n              \"ti\": [\n                -62.867,\n                94.219,\n                0\n              ],\n              \"to\": [\n                -161.825,\n                -53.536,\n                0\n              ]\n            },\n            {\n              \"o\": {\n                \"x\": 0.785,\n                \"y\": 0.135\n              },\n              \"i\": {\n                \"x\": 0.15,\n                \"y\": 0.86\n              },\n              \"s\": [\n                371.703,\n                167.513,\n                0\n              ],\n              \"t\": 10,\n              \"ti\": [\n                0,\n                0,\n                0\n              ],\n              \"to\": [\n                0,\n                0,\n                0\n              ]\n            },\n            {\n              \"s\": [\n                456.419,\n                423.252,\n                0\n              ],\n              \"t\": 20\n            }\n          ]\n        },\n        \"r\": {\n          \"a\": 0,\n          \"k\": -43.065\n        },\n        \"sa\": {\n          \"a\": 0,\n          \"k\": 0\n        },\n        \"o\": {\n          \"a\": 0,\n          \"k\": 100\n        }\n      },\n      \"ef\": [],\n      \"shapes\": [\n        {\n          \"ty\": \"gr\",\n          \"bm\": 0,\n          \"hd\": false,\n          \"nm\": \"Object\",\n          \"it\": [\n            {\n              \"ty\": \"el\",\n              \"bm\": 0,\n              \"hd\": false,\n              \"nm\": \"\",\n              \"d\": 1,\n              \"p\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"s\": {\n                \"a\": 0,\n                \"k\": [\n                  210.919,\n                  210.919\n                ]\n              }\n            },\n            {\n              \"ty\": \"fl\",\n              \"bm\": 0,\n              \"hd\": false,\n              \"nm\": \"\",\n              \"c\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0.7216,\n                  0.8706\n                ]\n              },\n              \"r\": 1,\n              \"o\": {\n                \"a\": 0,\n                \"k\": 100\n              }\n            },\n            {\n              \"ty\": \"tr\",\n              \"a\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"s\": {\n                \"a\": 0,\n                \"k\": [\n                  100,\n                  100\n                ]\n              },\n              \"sk\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"p\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"r\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"sa\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"o\": {\n                \"a\": 0,\n                \"k\": 100\n              }\n            }\n          ]\n        }\n      ],\n      \"ind\": 1\n    },\n    {\n      \"ty\": 4,\n      \"nm\": \"Layer 2\",\n      \"sr\": 1,\n      \"st\": 0,\n      \"op\": 20,\n      \"ip\": 0,\n      \"hd\": false,\n      \"ddd\": 0,\n      \"bm\": 3,\n      \"hasMask\": false,\n      \"ao\": 0,\n      \"ks\": {\n        \"a\": {\n          \"a\": 0,\n          \"k\": [\n            -66.5,\n            -66.5,\n            0\n          ]\n        },\n        \"s\": {\n          \"a\": 0,\n          \"k\": [\n            100,\n            100,\n            100\n          ]\n        },\n        \"sk\": {\n          \"a\": 0,\n          \"k\": 0\n        },\n        \"p\": {\n          \"a\": 1,\n          \"k\": [\n            {\n              \"o\": {\n                \"x\": 0.785,\n                \"y\": 0.135\n              },\n              \"i\": {\n                \"x\": 0.15,\n                \"y\": 0.86\n              },\n              \"s\": [\n                361.777,\n                165.918,\n                0\n              ],\n              \"t\": 0,\n              \"ti\": [\n                0,\n                0,\n                0\n              ],\n              \"to\": [\n                0,\n                0,\n                0\n              ]\n            },\n            {\n              \"o\": {\n                \"x\": 0.785,\n                \"y\": 0.135\n              },\n              \"i\": {\n                \"x\": 0.15,\n                \"y\": 0.86\n              },\n              \"s\": [\n                214.784,\n                406.838,\n                0\n              ],\n              \"t\": 10,\n              \"ti\": [\n                0,\n                0,\n                0\n              ],\n              \"to\": [\n                -83.035,\n                -34.503,\n                0\n              ]\n            },\n            {\n              \"s\": [\n                361.777,\n                165.918,\n                0\n              ],\n              \"t\": 20\n            }\n          ]\n        },\n        \"r\": {\n          \"a\": 0,\n          \"k\": -43.065\n        },\n        \"sa\": {\n          \"a\": 0,\n          \"k\": 0\n        },\n        \"o\": {\n          \"a\": 0,\n          \"k\": 100\n        }\n      },\n      \"ef\": [],\n      \"shapes\": [\n        {\n          \"ty\": \"gr\",\n          \"bm\": 0,\n          \"hd\": false,\n          \"nm\": \"Object\",\n          \"it\": [\n            {\n              \"ty\": \"el\",\n              \"bm\": 0,\n              \"hd\": false,\n              \"nm\": \"\",\n              \"d\": 1,\n              \"p\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"s\": {\n                \"a\": 0,\n                \"k\": [\n                  236,\n                  236\n                ]\n              }\n            },\n            {\n              \"ty\": \"fl\",\n              \"bm\": 0,\n              \"hd\": false,\n              \"nm\": \"\",\n              \"c\": {\n                \"a\": 0,\n                \"k\": [\n                  0.1765,\n                  0.1961,\n                  0.6667\n                ]\n              },\n              \"r\": 1,\n              \"o\": {\n                \"a\": 0,\n                \"k\": 100\n              }\n            },\n            {\n              \"ty\": \"tr\",\n              \"a\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"s\": {\n                \"a\": 0,\n                \"k\": [\n                  100,\n                  100\n                ]\n              },\n              \"sk\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"p\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"r\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"sa\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"o\": {\n                \"a\": 0,\n                \"k\": 100\n              }\n            }\n          ]\n        }\n      ],\n      \"ind\": 2\n    },\n    {\n      \"ty\": 4,\n      \"nm\": \"Layer 1\",\n      \"sr\": 1,\n      \"st\": 0,\n      \"op\": 20,\n      \"ip\": 0,\n      \"hd\": false,\n      \"ddd\": 0,\n      \"bm\": 3,\n      \"hasMask\": false,\n      \"ao\": 0,\n      \"ks\": {\n        \"a\": {\n          \"a\": 0,\n          \"k\": [\n            0,\n            0,\n            0\n          ]\n        },\n        \"s\": {\n          \"a\": 0,\n          \"k\": [\n            100,\n            100,\n            100\n          ]\n        },\n        \"sk\": {\n          \"a\": 0,\n          \"k\": 0\n        },\n        \"p\": {\n          \"a\": 1,\n          \"k\": [\n            {\n              \"o\": {\n                \"x\": 0.785,\n                \"y\": 0.135\n              },\n              \"i\": {\n                \"x\": 0.15,\n                \"y\": 0.86\n              },\n              \"s\": [\n                263.776,\n                342.564,\n                0\n              ],\n              \"t\": 0,\n              \"ti\": [\n                0,\n                0,\n                0\n              ],\n              \"to\": [\n                0,\n                0,\n                0\n              ]\n            },\n            {\n              \"o\": {\n                \"x\": 0.785,\n                \"y\": 0.135\n              },\n              \"i\": {\n                \"x\": 0.15,\n                \"y\": 0.86\n              },\n              \"s\": [\n                545.716,\n                355.446,\n                0\n              ],\n              \"t\": 10,\n              \"ti\": [\n                0,\n                0,\n                0\n              ],\n              \"to\": [\n                -7.345,\n                74.699,\n                0\n              ]\n            },\n            {\n              \"s\": [\n                263.776,\n                342.564,\n                0\n              ],\n              \"t\": 20\n            }\n          ]\n        },\n        \"r\": {\n          \"a\": 0,\n          \"k\": -43.065\n        },\n        \"sa\": {\n          \"a\": 0,\n          \"k\": 0\n        },\n        \"o\": {\n          \"a\": 0,\n          \"k\": 100\n        }\n      },\n      \"ef\": [],\n      \"shapes\": [\n        {\n          \"ty\": \"gr\",\n          \"bm\": 0,\n          \"hd\": false,\n          \"nm\": \"Object\",\n          \"it\": [\n            {\n              \"ty\": \"el\",\n              \"bm\": 0,\n              \"hd\": false,\n              \"nm\": \"\",\n              \"d\": 1,\n              \"p\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"s\": {\n                \"a\": 0,\n                \"k\": [\n                  150.135,\n                  150.135\n                ]\n              }\n            },\n            {\n              \"ty\": \"fl\",\n              \"bm\": 0,\n              \"hd\": false,\n              \"nm\": \"\",\n              \"c\": {\n                \"a\": 0,\n                \"k\": [\n                  0.9176,\n                  0.451,\n                  0.4745\n                ]\n              },\n              \"r\": 1,\n              \"o\": {\n                \"a\": 0,\n                \"k\": 100\n              }\n            },\n            {\n              \"ty\": \"tr\",\n              \"a\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"s\": {\n                \"a\": 0,\n                \"k\": [\n                  100,\n                  100\n                ]\n              },\n              \"sk\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"p\": {\n                \"a\": 0,\n                \"k\": [\n                  0,\n                  0\n                ]\n              },\n              \"r\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"sa\": {\n                \"a\": 0,\n                \"k\": 0\n              },\n              \"o\": {\n                \"a\": 0,\n                \"k\": 100\n              }\n            }\n          ]\n        }\n      ],\n      \"ind\": 3\n    }\n  ],\n  \"v\": \"5.0.1\",\n  \"fr\": 10,\n  \"op\": 20,\n  \"ip\": 0,\n  \"assets\": []\n}\nmodule.exports = data;","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n  // Nashorn bug:\n  //   https://github.com/zloirock/core-js/issues/1128\n  //   https://github.com/zloirock/core-js/issues/1130\n  if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar IS_PURE = require('../internals/is-pure');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar NativeIterator = global.Iterator;\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n  || !isCallable(NativeIterator)\n  || NativeIterator.prototype !== IteratorPrototype\n  // FF44- non-standard `Iterator` passes previous tests\n  || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n  anInstance(this, IteratorPrototype);\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) {\n  createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator');\n}\n\nif (FORCED || !hasOwn(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) {\n  createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://github.com/tc39/proposal-iterator-helpers\n$({ global: true, constructor: true, forced: FORCED }, {\n  Iterator: IteratorConstructor\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw $TypeError($String(argument) + ' is not an object');\n};\n","///////////////////////////////////////////////////\r\n//////////// DEVICE BREAKPOINTS LISTENERS\r\n///////////////////////////////////////////////////\r\n export const setDeviceBreakpoints = (breakpoints) => {\r\n\r\n    if (breakpoints) {\r\n\r\n        let breakpointsList = {};\r\n\r\n        for (let eventName in breakpoints) {\r\n            if (!eventName) continue;\r\n            breakpointsList[eventName] = window.matchMedia(breakpoints[eventName]);\r\n            breakpointsList[eventName].addListener((ev) => {\r\n                if (ev.matches === true) {\r\n                    let event = new CustomEvent(eventName, { bubbles: true });\r\n                    document.dispatchEvent(event);\r\n                    console.log(event)\r\n                }\r\n            });\r\n        }\r\n\r\n        window.deviceBreakpoints = breakpointsList;\r\n    }\r\n}\r\n\r\n///////////////////////////////////////////////////\r\n//////////// CHECK IF BROWSER IE\r\n///////////////////////////////////////////////////\r\nexport const isIE = () => {\r\n    return window.navigator.userAgent.match(/(MSIE|Trident)/);  // Returns true if the browser is IE11 or lower\r\n}\r\n\r\n///////////////////////////////////////////////////\r\n//////////// GENERATE RANDOM NUMBER WITH LIMITS\r\n///////////////////////////////////////////////////\r\nexport const randomIntFromInterval = (min, max) => {\r\n    return Math.floor(Math.random() * (max - min + 1) + min);\r\n}\r\n\r\n///////////////////////////////////////////////////\r\n//////////// PROMISIFY EVENT\r\n///////////////////////////////////////////////////\r\nexport const buildWaitForEvent = (eventName) => (node, func) =>\r\n    new Promise((resolve, reject) => {\r\n        // reject for invalid node\r\n        if (!(node instanceof window.HTMLElement || node instanceof window.SVGElement)) {\r\n            return reject(new Error('tail-end: an HTML or SVG element is required.'));\r\n        }\r\n\r\n        // create the event handler\r\n        const handler = () => {\r\n            // unbind the handler\r\n            node.removeEventListener(eventName, handler);\r\n            // resolve the (now clean) node\r\n            return resolve(node);\r\n        };\r\n\r\n        // bind the handler\r\n        node.addEventListener(eventName, handler);\r\n\r\n        // if it exists, call the function passing in the node\r\n        if (typeof func === 'function') {\r\n            window.requestAnimationFrame(() => func(node));\r\n        }\r\n    });\r\n\r\n///////////////////////////////////////////////////\r\n//////////// PROMISIFY XMLHTTPREQUEST\r\n///////////////////////////////////////////////////\r\nexport const request = obj => {\r\n    return new Promise((resolve, reject) => {\r\n        let xhr = new XMLHttpRequest();\r\n        xhr.open(obj.method || \"GET\", obj.url, true);\r\n        if (obj.headers) {\r\n            Object.keys(obj.headers).forEach(key => {\r\n                xhr.setRequestHeader(key, obj.headers[key]);\r\n            });\r\n        }\r\n        xhr.onload = () => {\r\n            if (xhr.status >= 200 && xhr.status < 300) {\r\n                resolve({'response': xhr.response, 'status': xhr.status});\r\n            } else {\r\n                reject({'response': xhr.statusText, 'status': xhr.status});\r\n            }\r\n        };\r\n        xhr.onerror = () => reject({'response': xhr.statusText, 'status': 'network_error'});\r\n        xhr.send(obj.body);\r\n    });\r\n};\r\n\r\n///////////////////////////////////////////////////\r\n//////////// PROMISIFY ANIMATIONEND - TRANSITIONEND\r\n///////////////////////////////////////////////////\r\nexport const animationEnd = buildWaitForEvent('animationend');\r\nexport const transitionEnd = buildWaitForEvent('transitionend');\r\n\r\n///////////////////////////////////////////////////\r\n//////////// NEXT PREV SIBLINGS\r\n///////////////////////////////////////////////////\r\nexport const getNextSibling = function (elem, selector) {\r\n    // Get the next sibling element\r\n    var sibling = elem.nextElementSibling;\r\n\r\n    // If there's no selector, return the first sibling\r\n    if (!selector) return sibling;\r\n\r\n    // If the sibling matches our selector, use it\r\n    // If not, jump to the next sibling and continue the loop\r\n    while (sibling) {\r\n        if (sibling.matches && sibling.matches(selector)) return sibling;\r\n        sibling = sibling.nextElementSibling;\r\n    }\r\n};\r\n\r\nexport const getPrevSibling = function (elem, selector) {\r\n    // Get the next sibling element\r\n    var sibling = elem.previousElementSibling;\r\n\r\n    // If there's no selector, return the first sibling\r\n    if (!selector) return sibling;\r\n\r\n    // If the sibling matches our selector, use it\r\n    // If not, jump to the next sibling and continue the loop\r\n    while (sibling) {\r\n        if (sibling.matches && sibling.matches(selector)) return sibling;\r\n        sibling = sibling.previousElementSibling;\r\n    }\r\n};\r\n\r\nexport const getNextSiblingAll = function (elem, selector) {\r\n    // Get the next sibling element\r\n    let sibling = elem.nextElementSibling;\r\n    let result = [];\r\n    // If the sibling matches our selector, use it\r\n    // If not, jump to the next sibling and continue the loop\r\n    while (sibling) {\r\n        if (sibling.matches && sibling.matches(selector)) result.push(sibling);\r\n        sibling = sibling.nextElementSibling;\r\n    }\r\n    return result;\r\n};\r\n\r\nexport const getPrevSiblingAll = function (elem, selector) {\r\n    // Get the next sibling element\r\n    let sibling = elem.previousElementSibling;\r\n    let result = [];\r\n    // If the sibling matches our selector, use it\r\n    // If not, jump to the next sibling and continue the loop\r\n    while (sibling) {\r\n        if (sibling.matches && sibling.matches(selector)) result.push(sibling);\r\n        sibling = sibling.previousElementSibling;\r\n    }\r\n    return result;\r\n};\r\n\r\n///////////////////////////////////////////////////\r\n//////////// FIRST AND LAST CHILD\r\n///////////////////////////////////////////////////\r\nexport const getFirstChild = function (elem, selector) {\r\n    // Get the first child element\r\n    var nodes = elem.childNodes;\r\n    if (nodes.length <= 0) return;\r\n\r\n    // If there's no selector, return the first sibling\r\n    if (!selector) return nodes[0];\r\n\r\n    // If the child node matches our selector, use it\r\n    // If not, jump to the next child and continue the loop\r\n    for (let i = 0; i < nodes.length; i++) {\r\n        if (nodes[i].matches && nodes[i].matches(selector)) return nodes[i];\r\n    }\r\n};\r\n\r\nexport const getLastChild = function (elem, selector) {\r\n    // Get the last child element\r\n    var nodes = elem.childNodes;\r\n    if (nodes.length <= 0) return;\r\n\r\n    // If there's no selector, return the last sibling\r\n    if (!selector) return nodes[nodes.length - 1];\r\n\r\n    // If the child node matches our selector, use it\r\n    // If not, jump to the prev child and continue the loop\r\n    for (let i = nodes.length - 1; i >= 0; i--) {\r\n        if (nodes[i].matches && nodes[i].matches(selector)) return nodes[i];\r\n    }\r\n};\r\n\r\n///////////////////////////////////////////////////\r\n//////////// CREATE QUERY PARAMETERS\r\n///////////////////////////////////////////////////\r\nexport const buildQuery = (obj) =>\r\n    Object.entries(obj)\r\n        .map((pair) => pair.map(encodeURIComponent).join('='))\r\n        .join('&');\r\n\r\n///////////////////////////////////////////////////\r\n//////////// CREATE SELF DESTRUCTING EVENT LISTENER\r\n///////////////////////////////////////////////////\r\nexport const addOneTimeEventListener = (element, eventType, callback) => {\r\n    let handler = () => {\r\n        callback();\r\n        element.removeEventListener(eventType, handler);\r\n    };\r\n    element.addEventListener(eventType, handler);\r\n};\r\n\r\n///////////////////////////////////////////////////\r\n// GET THE PARAMS FROM THE URL\r\n// @param {*} k The param key to return\r\n// @returns The value of the param key, an object with all params if not set.\r\n///////////////////////////////////////////////////\r\nexport const getURLParams = (k) => {\r\n    var p = {};\r\n    location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(s, k, v) {\r\n        p[ k.toLowerCase() ] = v;\r\n    });\r\n    return k ? p[k] : p;\r\n};\r\n\r\n///////////////////////////////////////////////////\r\n// GET THE QUERY STRING WITH LOWERCASE PARAMETER KEYS\r\n// @returns The query string with lowercase parameter keys\r\n///////////////////////////////////////////////////\r\nexport const getURLParamsString = () => {\r\n    var s = location.search.replace(/[?&]+([^=&]+)/gi, function(p) {\r\n          return p.toLowerCase();\r\n    });\r\n    return s;\r\n}\r\n\r\n///////////////////////////////////////////////////\r\n//////////// GET COOKIE DOMAIN\r\n///////////////////////////////////////////////////\r\nexport const getCookieDomain = () => {\r\n    let domainName = document.location.hostname;\r\n\r\n    if (domainName) {\r\n        // verifico se è un indirizzo IP oppure localhost\r\n        if (domainName.match(/^(?:(?:[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})|(?:localhost))$/g)) {\r\n            return '';\r\n        }\r\n\r\n        // ricavo l'ultima parte del dominio e l'estensione\r\n        let domainNameSplit = domainName.split('.');\r\n        if (domainNameSplit.length >= 2) {\r\n            return '.' + domainNameSplit.splice(-2).join('.');\r\n        }\r\n    }\r\n\r\n    return '';\r\n};\r\n\r\n///////////////////////////////////////////////////\r\n//////////// SET COOKIE\r\n///////////////////////////////////////////////////\r\nexport const setCookie = (cname, cvalue, exdays) => {\r\n    let expireDate = new Date();\r\n    expireDate.setTime(expireDate.getTime() + exdays * 24 * 60 * 60 * 1000);\r\n    let expires = 'expires=' + expireDate.toUTCString();\r\n    let domain = getCookieDomain();\r\n\r\n    let cookieStr = cname + '=' + cvalue + ';' + expires + ';path=/';\r\n    if (domain) {\r\n        cookieStr += ';domain=' + domain;\r\n    }\r\n    document.cookie = cookieStr;\r\n};\r\n\r\n///////////////////////////////////////////////////\r\n//////////// GET COOKIE\r\n///////////////////////////////////////////////////\r\nexport const getCookie = (cookieName) => {\r\n    let cookieIdentifier = cookieName + '=';\r\n    let cookieArray = document.cookie.split(';');\r\n    for (let i = 0; i < cookieArray.length; i++) {\r\n        let currentCookie = cookieArray[i] && cookieArray[i].trim();\r\n        if (currentCookie.indexOf(cookieIdentifier) === 0) {\r\n            return currentCookie.substring(cookieIdentifier.length, currentCookie.length);\r\n        }\r\n    }\r\n    return '';\r\n};\r\n\r\n\r\n///////////////////////////////////////////////////\r\n//////////// DELETE COOKIE\r\n///////////////////////////////////////////////////\r\nexport const deleteCookie = (cookieName) => {\r\n    document.cookie = cookieName + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\r\n};\r\n\r\n\r\n\r\n///////////////////////////////////////////////////\r\n//////////// TRUNCATE STRING WITH ELLIPSIS\r\n///////////////////////////////////////////////////\r\nexport const truncate = (str, length) => {\r\n    if (str.length > length) {\r\n        return `${str.substring(0, length-1)}…`;\r\n    }\r\n    return str;\r\n};\r\n\r\n\r\n///////////////////////////////////////////////////\r\n//////////// CHECK IF IN DEV MODE\r\n///////////////////////////////////////////////////\r\nexport const isDevMode = () => {\r\n    let origin = window.location.origin;\r\n\r\n    return origin.startsWith('http://localhost') || origin.startsWith('http://localk');\r\n};\r\n\r\n\r\n///////////////////////////////////////////////////\r\n//////////// CHECK IF WCMMODE IS DISABLED\r\n///////////////////////////////////////////////////\r\nexport const isWCMModeDisabled = () => {\r\n    return window.location.search.includes('wcmmode=disabled');\r\n};\r\n\r\n///////////////////////////////////////////////////\r\n//////////// CHANGE CTA BEHAVIOUR TO MODAL.\r\n//////////// OPTIONAL: PASS THE CTA HREF TO THE MODAL\r\n///////////////////////////////////////////////////\r\nexport const ctaToModal = (ctaLink, ctaContainer, modalId, ctaHref = null) => {\r\n    ctaLink.style.pointerEvents = 'none';\r\n\r\n    ctaContainer.style.cursor = 'pointer';\r\n    ctaContainer.addEventListener('click', () => {\r\n        document.querySelector('#' + modalId).objReference._openModal(ctaHref);\r\n    });\r\n};","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype != 42;\n});\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n  if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var predicate = this.predicate;\n  var next = this.next;\n  var result, done, value;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (done) return;\n    value = result.value;\n    if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n  }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  filter: function filter(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    return new IteratorProxy(getIteratorDirect(this), {\n      predicate: predicate\n    });\n  }\n});\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n  if (isPrototypeOf(Prototype, it)) return it;\n  throw $TypeError('Incorrect invocation');\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n  return $String(argument);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2');\n\nparams['delete']('a', 1);\n\nif (params + '' !== 'a=2') {\n  defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $delete(this, name);\n    var entries = [];\n    forEach(this, function (v, k) { // also validates `this`\n      push(entries, { key: k, value: v });\n    });\n    validateArgumentsLength(length, 1);\n    var key = toString(name);\n    var value = toString($value);\n    var index = 0;\n    var dindex = 0;\n    var found = false;\n    var entriesLength = entries.length;\n    var entry;\n    while (index < entriesLength) {\n      entry = entries[index++];\n      if (found || entry.key === key) {\n        found = true;\n        $delete(this, entry.key);\n      } else dindex++;\n    }\n    while (dindex < entriesLength) {\n      entry = entries[dindex++];\n      if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n    }\n  }, { enumerable: true, unsafe: true });\n}\n","/*\n * Loading attribute polyfill - https://github.com/mfranzke/loading-attribute-polyfill\n * @license Copyright(c) 2019 by Maximilian Franzke\n * Credits for the initial kickstarter / script to @Sora2455, and supported by @cbirdsong, @eklingen, @DaPo, @nextgenthemes, @diogoterremoto, @dracos, @Flimm, @TomS-, @vinyfc93, @JordanDysart and @denyshutsal - many thanks for that !\n */\n/*\n * A minimal and dependency-free vanilla JavaScript loading attribute polyfill.\n * Supports standard's functionality and tests for native support upfront.\n * Elsewhere the functionality gets emulated with the support of noscript wrapper tags.\n * Use an IntersectionObserver polyfill in case of IE11 support necessary.\n */\n\nimport './loading-attribute-polyfill.css';\n\nconst config = {\n\tintersectionObserver: {\n\t\t// Start download if the item gets within 256px in the Y axis\n\t\trootMargin: '0px 0px 256px 0px',\n\t\tthreshold: 0.01,\n\t},\n\tlazyImage: 'img[loading=\"lazy\"]',\n\tlazyIframe: 'iframe[loading=\"lazy\"]',\n};\n\n// Device/browser capabilities object\nconst capabilities = {\n\tloading: {\n\t\timage: 'loading' in HTMLImageElement.prototype,\n\t\tiframe: 'loading' in HTMLIFrameElement.prototype,\n\t},\n\tscrolling: 'onscroll' in window,\n};\n\n// Nodelist foreach polyfill / source: https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach#polyfill\nif (window.NodeList && !NodeList.prototype.forEach) {\n\tNodeList.prototype.forEach = Array.prototype.forEach;\n}\n\n// Define according to browsers support of the IntersectionObserver feature (missing e.g. on IE11 or Safari 11)\nlet intersectionObserver;\n\nif ('IntersectionObserver' in window) {\n\tintersectionObserver = new IntersectionObserver(\n\t\tonIntersection,\n\t\tconfig.intersectionObserver\n\t);\n}\n\n/**\n * Put the source and srcset back where it belongs - now that the elements content is attached to the document, it will load now\n * @param {Object} lazyItem Current item to be restored after lazy loading.\n */\nfunction restoreSource(lazyItem) {\n\tlet srcsetItems = [];\n\n\t// Just in case the img is the decendent of a picture element, check for source tags\n\tif (lazyItem.parentNode.tagName.toLowerCase() === 'picture') {\n\t\tremovePlaceholderSource(lazyItem.parentNode);\n\n\t\tsrcsetItems = Array.prototype.slice.call(\n\t\t\tlazyItem.parentNode.querySelectorAll('source')\n\t\t);\n\t}\n\n\tsrcsetItems.push(lazyItem);\n\n\t// Not using .dataset within those upfollowing lines of code for polyfill independent compatibility down to IE9\n\tsrcsetItems.forEach((item) => {\n\t\t/* eslint-disable unicorn/prefer-dom-node-dataset */\n\t\tif (item.hasAttribute('data-lazy-srcset')) {\n\t\t\titem.setAttribute('srcset', item.getAttribute('data-lazy-srcset'));\n\t\t\titem.removeAttribute('data-lazy-srcset'); // Not using delete .dataset here for compatibility down to IE9\n\t\t}\n\t\t/* eslint-enable unicorn/prefer-dom-node-dataset */\n\t});\n\n\t/* eslint-disable unicorn/prefer-dom-node-dataset */\n\tlazyItem.setAttribute('src', lazyItem.getAttribute('data-lazy-src'));\n\tlazyItem.removeAttribute('data-lazy-src'); // Not using delete .dataset here for compatibility down to IE9\n\t/* eslint-enable unicorn/prefer-dom-node-dataset */\n}\n\n/**\n * Remove the source tag preventing the loading of picture assets\n * @param {Object} lazyItemPicture Current <picture> item to be restored after lazy loading.\n */\nfunction removePlaceholderSource(lazyItemPicture) {\n\tconst placeholderSource = lazyItemPicture.querySelector(\n\t\t'source[data-lazy-remove]'\n\t);\n\n\tif (placeholderSource) {\n\t\t// Preferred .removeChild over .remove here for IE\n\t\tlazyItemPicture.removeChild(placeholderSource);\n\t}\n}\n\n/**\n * Handle IntersectionObservers callback\n * @param {Object} entries Target elements Intersection observed changes\n * @param {Object} observer IntersectionObserver instance reference\n */\nfunction onIntersection(entries, observer) {\n\tentries.forEach((entry) => {\n\t\t// Mitigation for EDGE lacking support of .isIntersecting until v15, compare to e.g. https://github.com/w3c/IntersectionObserver/issues/211#issuecomment-309144669\n\t\tif (entry.intersectionRatio === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the item is visible now, load it and stop watching it\n\t\tconst lazyItem = entry.target;\n\n\t\tobserver.unobserve(lazyItem);\n\n\t\trestoreSource(lazyItem);\n\t});\n}\n\n/**\n * Handle printing the page\n */\nfunction onPrinting() {\n\tif (typeof window.matchMedia === 'undefined') {\n\t\treturn;\n\t}\n\n\tconst mediaQueryList = window.matchMedia('print');\n\n\tmediaQueryList.addListener((mql) => {\n\t\tif (mql.matches) {\n\t\t\tdocument\n\t\t\t\t.querySelectorAll(\n\t\t\t\t\tconfig.lazyImage +\n\t\t\t\t\t\t'[data-lazy-src],' +\n\t\t\t\t\t\tconfig.lazyIframe +\n\t\t\t\t\t\t'[data-lazy-src]'\n\t\t\t\t)\n\t\t\t\t.forEach((lazyItem) => {\n\t\t\t\t\trestoreSource(lazyItem);\n\t\t\t\t});\n\t\t}\n\t});\n}\n\n/**\n * Get and prepare the HTML code depending on feature detection for both image as well as iframe,\n * and if not scrolling supported, because it's a Google or Bing Bot\n * @param {String} lazyAreaHtml Noscript inner HTML code that src-urls need to get rewritten\n */\nfunction getAndPrepareHTMLCode(noScriptTag) {\n\t// The contents of a <noscript> tag are treated as text to JavaScript\n\tlet lazyAreaHtml = noScriptTag.textContent || noScriptTag.innerHTML;\n\n\tconst getImageWidth = lazyAreaHtml.match(/width=['\"](\\d+)['\"]/) || false;\n\tconst temporaryImageWidth = getImageWidth[1] || 1;\n\tconst getImageHeight = lazyAreaHtml.match(/height=['\"](\\d+)['\"]/) || false;\n\tconst temporaryImageHeight = getImageHeight[1] || 1;\n\n\tconst temporaryImage =\n\t\t'data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 ' +\n\t\ttemporaryImageWidth +\n\t\t' ' +\n\t\ttemporaryImageHeight +\n\t\t'%27%3E%3C/svg%3E';\n\n\t// Test for whether it's image or iframe content, their support by the browser and regarding the scrolling capability\n\tif (\n\t\t((/<img/gim.test(lazyAreaHtml) && !capabilities.loading.image) ||\n\t\t\t(/<iframe/gim.test(lazyAreaHtml) && !capabilities.loading.iframe)) &&\n\t\tcapabilities.scrolling\n\t) {\n\t\t// Check for IntersectionObserver support\n\t\tif (typeof intersectionObserver === 'undefined') {\n\t\t\t// Attach abandonned attribute 'lazyload' to the HTML tags on browsers w/o IntersectionObserver being available\n\t\t\tlazyAreaHtml = lazyAreaHtml.replace(\n\t\t\t\t/(?:\\r\\n|\\r|\\n|\\t| )src=/g,\n\t\t\t\t' lazyload=\"1\" src='\n\t\t\t);\n\t\t} else {\n\t\t\t// Temporarily prevent expensive resource loading by inserting a <source> tag pointing to a simple one (data URI)\n\t\t\tlazyAreaHtml = lazyAreaHtml.replace(\n\t\t\t\t'<source',\n\t\t\t\t'<source srcset=\"' +\n\t\t\t\t\ttemporaryImage +\n\t\t\t\t\t'\" data-lazy-remove=\"true\"></source>\\n<source'\n\t\t\t);\n\n\t\t\t// Temporarily replace a expensive resource load with a simple one by storing the actual source and srcset for later and point src to a temporary replacement (data URI)\n\t\t\tlazyAreaHtml = lazyAreaHtml\n\t\t\t\t.replace(/(?:\\r\\n|\\r|\\n|\\t| )srcset=/g, ' data-lazy-srcset=')\n\t\t\t\t.replace(\n\t\t\t\t\t/(?:\\r\\n|\\r|\\n|\\t| )src=/g,\n\t\t\t\t\t' src=\"' + temporaryImage + '\" data-lazy-src='\n\t\t\t\t);\n\t\t}\n\t}\n\n\treturn lazyAreaHtml;\n}\n\n/**\n * Retrieve the elements from the 'lazy load' <noscript> tag and prepare them for display\n * @param {Object} noScriptTag noscript HTML tag that should get initially transformed\n */\nfunction prepareElement(noScriptTag) {\n\t// Sticking the noscript HTML code in the innerHTML of a new <div> tag to 'load' it after creating that <div>\n\tconst lazyArea = document.createElement('div');\n\n\tlazyArea.innerHTML = getAndPrepareHTMLCode(noScriptTag);\n\n\t// Move all children out of the element\n\twhile (lazyArea.firstChild) {\n\t\tconst actualChild = lazyArea.firstChild;\n\n\t\tif (\n\t\t\tcapabilities.scrolling &&\n\t\t\ttypeof intersectionObserver !== 'undefined' &&\n\t\t\tactualChild.tagName &&\n\t\t\t(((actualChild.tagName.toLowerCase() === 'img' ||\n\t\t\t\tactualChild.tagName.toLowerCase() === 'picture') &&\n\t\t\t\t!capabilities.loading.image) ||\n\t\t\t\t(actualChild.tagName.toLowerCase() === 'iframe' &&\n\t\t\t\t\t!capabilities.loading.iframe))\n\t\t) {\n\t\t\tconst observedElement =\n\t\t\t\tactualChild.tagName.toLowerCase() === 'picture'\n\t\t\t\t\t? lazyArea.querySelector('img')\n\t\t\t\t\t: actualChild;\n\t\t\t// Observe the item so that loading could start when it gets close to the viewport\n\t\t\tintersectionObserver.observe(observedElement);\n\t\t}\n\n\t\tnoScriptTag.parentNode.insertBefore(actualChild, noScriptTag);\n\t}\n\n\t// Remove the empty element - not using .remove() here for IE11 compatibility\n\tnoScriptTag.parentNode.removeChild(noScriptTag);\n}\n\n/**\n * Get all the <noscript> tags on the page, prepare each and any one of them and setup the printing\n */\nconst prepareElements = () => {\n\tconst lazyLoadAreas = document.querySelectorAll('noscript.loading-lazy');\n\n\tlazyLoadAreas.forEach((element) => prepareElement(element));\n\n\t// Bind for someone printing the page\n\tonPrinting();\n};\n\n// If the page has loaded already, run setup - if it hasn't, run as soon as it has.\n// document.readyState values: https://www.w3schools.com/jsref/prop_doc_readystate.asp\nif (/comp|inter/.test(document.readyState)) {\n\tprepareElements();\n} else if ('addEventListener' in document) {\n\tdocument.addEventListener('DOMContentLoaded', () => {\n\t\tprepareElements();\n\t});\n} else {\n\tdocument.attachEvent('onreadystatechange', () => {\n\t\tif (document.readyState === 'complete') {\n\t\t\tprepareElements();\n\t\t}\n\t});\n}\n\nconst loadingAttributePolyfill = {\n\tprepareElement,\n};\n\nexport default loadingAttributePolyfill;\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n  if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n  if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n  return defineProperty.f(target, name, descriptor);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n  all: documentAll,\n  IS_HTMLDDA: IS_HTMLDDA\n};\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n  if (passed < required) throw $TypeError('Not enough arguments');\n  return passed;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n  // makes no sense without proper strict mode support\n  if (this !== undefined) return true;\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).length = 1;\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n  if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n    throw $TypeError('Cannot set read only .length');\n  } return O.length = length;\n} : function (O, length) {\n  return O.length = length;\n};\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","module.exports = false;\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n  if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n  return it;\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n","!function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).LazyLoad=t()}(this,(function(){\"use strict\";function n(){return n=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},n.apply(this,arguments)}var t=\"undefined\"!=typeof window,e=t&&!(\"onscroll\"in window)||\"undefined\"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),i=t&&\"IntersectionObserver\"in window,o=t&&\"classList\"in document.createElement(\"p\"),a=t&&window.devicePixelRatio>1,r={elements_selector:\".lazy\",container:e||t?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_bg_set:\"bg-set\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"loading\",class_loaded:\"loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},c=function(t){return n({},r,t)},l=function(n,t){var e,i=\"LazyLoad::Initialized\",o=new n(t);try{e=new CustomEvent(i,{detail:{instance:o}})}catch(n){(e=document.createEvent(\"CustomEvent\")).initCustomEvent(i,!1,!1,{instance:o})}window.dispatchEvent(e)},u=\"src\",s=\"srcset\",d=\"sizes\",f=\"poster\",_=\"llOriginalAttrs\",g=\"data\",v=\"loading\",b=\"loaded\",p=\"applied\",m=\"error\",h=\"native\",E=\"data-\",I=\"ll-status\",y=function(n,t){return n.getAttribute(E+t)},k=function(n){return y(n,I)},w=function(n,t){return function(n,t,e){var i=\"data-ll-status\";null!==e?n.setAttribute(i,e):n.removeAttribute(i)}(n,0,t)},A=function(n){return w(n,null)},L=function(n){return null===k(n)},O=function(n){return k(n)===h},x=[v,b,p,m],C=function(n,t,e,i){n&&\"function\"==typeof n&&(void 0===i?void 0===e?n(t):n(t,e):n(t,e,i))},N=function(n,t){\"\"!==t&&(o?n.classList.add(t):n.className+=(n.className?\" \":\"\")+t)},M=function(n,t){\"\"!==t&&(o?n.classList.remove(t):n.className=n.className.replace(new RegExp(\"(^|\\\\s+)\"+t+\"(\\\\s+|$)\"),\" \").replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"))},z=function(n){return n.llTempImage},T=function(n,t){if(t){var e=t._observer;e&&e.unobserve(n)}},R=function(n,t){n&&(n.loadingCount+=t)},G=function(n,t){n&&(n.toLoadCount=t)},j=function(n){for(var t,e=[],i=0;t=n.children[i];i+=1)\"SOURCE\"===t.tagName&&e.push(t);return e},D=function(n,t){var e=n.parentNode;e&&\"PICTURE\"===e.tagName&&j(e).forEach(t)},H=function(n,t){j(n).forEach(t)},V=[u],F=[u,f],B=[u,s,d],J=[g],P=function(n){return!!n[_]},S=function(n){return n[_]},U=function(n){return delete n[_]},$=function(n,t){if(!P(n)){var e={};t.forEach((function(t){e[t]=n.getAttribute(t)})),n[_]=e}},q=function(n,t){if(P(n)){var e=S(n);t.forEach((function(t){!function(n,t,e){e?n.setAttribute(t,e):n.removeAttribute(t)}(n,t,e[t])}))}},K=function(n,t,e){N(n,t.class_applied),w(n,p),e&&(t.unobserve_completed&&T(n,t),C(t.callback_applied,n,e))},Q=function(n,t,e){N(n,t.class_loading),w(n,v),e&&(R(e,1),C(t.callback_loading,n,e))},W=function(n,t,e){e&&n.setAttribute(t,e)},X=function(n,t){W(n,d,y(n,t.data_sizes)),W(n,s,y(n,t.data_srcset)),W(n,u,y(n,t.data_src))},Y={IMG:function(n,t){D(n,(function(n){$(n,B),X(n,t)})),$(n,B),X(n,t)},IFRAME:function(n,t){$(n,V),W(n,u,y(n,t.data_src))},VIDEO:function(n,t){H(n,(function(n){$(n,V),W(n,u,y(n,t.data_src))})),$(n,F),W(n,f,y(n,t.data_poster)),W(n,u,y(n,t.data_src)),n.load()},OBJECT:function(n,t){$(n,J),W(n,g,y(n,t.data_src))}},Z=[\"IMG\",\"IFRAME\",\"VIDEO\",\"OBJECT\"],nn=function(n,t){!t||function(n){return n.loadingCount>0}(t)||function(n){return n.toLoadCount>0}(t)||C(n.callback_finish,t)},tn=function(n,t,e){n.addEventListener(t,e),n.llEvLisnrs[t]=e},en=function(n,t,e){n.removeEventListener(t,e)},on=function(n){return!!n.llEvLisnrs},an=function(n){if(on(n)){var t=n.llEvLisnrs;for(var e in t){var i=t[e];en(n,e,i)}delete n.llEvLisnrs}},rn=function(n,t,e){!function(n){delete n.llTempImage}(n),R(e,-1),function(n){n&&(n.toLoadCount-=1)}(e),M(n,t.class_loading),t.unobserve_completed&&T(n,e)},cn=function(n,t,e){var i=z(n)||n;on(i)||function(n,t,e){on(n)||(n.llEvLisnrs={});var i=\"VIDEO\"===n.tagName?\"loadeddata\":\"load\";tn(n,i,t),tn(n,\"error\",e)}(i,(function(o){!function(n,t,e,i){var o=O(t);rn(t,e,i),N(t,e.class_loaded),w(t,b),C(e.callback_loaded,t,i),o||nn(e,i)}(0,n,t,e),an(i)}),(function(o){!function(n,t,e,i){var o=O(t);rn(t,e,i),N(t,e.class_error),w(t,m),C(e.callback_error,t,i),e.restore_on_error&&q(t,B),o||nn(e,i)}(0,n,t,e),an(i)}))},ln=function(n,t,e){!function(n){return Z.indexOf(n.tagName)>-1}(n)?function(n,t,e){!function(n){n.llTempImage=document.createElement(\"IMG\")}(n),cn(n,t,e),function(n){P(n)||(n[_]={backgroundImage:n.style.backgroundImage})}(n),function(n,t,e){var i=y(n,t.data_bg),o=y(n,t.data_bg_hidpi),r=a&&o?o:i;r&&(n.style.backgroundImage='url(\"'.concat(r,'\")'),z(n).setAttribute(u,r),Q(n,t,e))}(n,t,e),function(n,t,e){var i=y(n,t.data_bg_multi),o=y(n,t.data_bg_multi_hidpi),r=a&&o?o:i;r&&(n.style.backgroundImage=r,K(n,t,e))}(n,t,e),function(n,t,e){var i=y(n,t.data_bg_set);if(i){var o=i.split(\"|\"),a=o.map((function(n){return\"image-set(\".concat(n,\")\")}));n.style.backgroundImage=a.join(),\"\"===n.style.backgroundImage&&(a=o.map((function(n){return\"-webkit-image-set(\".concat(n,\")\")})),n.style.backgroundImage=a.join()),K(n,t,e)}}(n,t,e)}(n,t,e):function(n,t,e){cn(n,t,e),function(n,t,e){var i=Y[n.tagName];i&&(i(n,t),Q(n,t,e))}(n,t,e)}(n,t,e)},un=function(n){n.removeAttribute(u),n.removeAttribute(s),n.removeAttribute(d)},sn=function(n){D(n,(function(n){q(n,B)})),q(n,B)},dn={IMG:sn,IFRAME:function(n){q(n,V)},VIDEO:function(n){H(n,(function(n){q(n,V)})),q(n,F),n.load()},OBJECT:function(n){q(n,J)}},fn=function(n,t){(function(n){var t=dn[n.tagName];t?t(n):function(n){if(P(n)){var t=S(n);n.style.backgroundImage=t.backgroundImage}}(n)})(n),function(n,t){L(n)||O(n)||(M(n,t.class_entered),M(n,t.class_exited),M(n,t.class_applied),M(n,t.class_loading),M(n,t.class_loaded),M(n,t.class_error))}(n,t),A(n),U(n)},_n=[\"IMG\",\"IFRAME\",\"VIDEO\"],gn=function(n){return n.use_native&&\"loading\"in HTMLImageElement.prototype},vn=function(n,t,e){n.forEach((function(n){return function(n){return n.isIntersecting||n.intersectionRatio>0}(n)?function(n,t,e,i){var o=function(n){return x.indexOf(k(n))>=0}(n);w(n,\"entered\"),N(n,e.class_entered),M(n,e.class_exited),function(n,t,e){t.unobserve_entered&&T(n,e)}(n,e,i),C(e.callback_enter,n,t,i),o||ln(n,e,i)}(n.target,n,t,e):function(n,t,e,i){L(n)||(N(n,e.class_exited),function(n,t,e,i){e.cancel_on_exit&&function(n){return k(n)===v}(n)&&\"IMG\"===n.tagName&&(an(n),function(n){D(n,(function(n){un(n)})),un(n)}(n),sn(n),M(n,e.class_loading),R(i,-1),A(n),C(e.callback_cancel,n,t,i))}(n,t,e,i),C(e.callback_exit,n,t,i))}(n.target,n,t,e)}))},bn=function(n){return Array.prototype.slice.call(n)},pn=function(n){return n.container.querySelectorAll(n.elements_selector)},mn=function(n){return function(n){return k(n)===m}(n)},hn=function(n,t){return function(n){return bn(n).filter(L)}(n||pn(t))},En=function(n,e){var o=c(n);this._settings=o,this.loadingCount=0,function(n,t){i&&!gn(n)&&(t._observer=new IntersectionObserver((function(e){vn(e,n,t)}),function(n){return{root:n.container===document?null:n.container,rootMargin:n.thresholds||n.threshold+\"px\"}}(n)))}(o,this),function(n,e){t&&(e._onlineHandler=function(){!function(n,t){var e;(e=pn(n),bn(e).filter(mn)).forEach((function(t){M(t,n.class_error),A(t)})),t.update()}(n,e)},window.addEventListener(\"online\",e._onlineHandler))}(o,this),this.update(e)};return En.prototype={update:function(n){var t,o,a=this._settings,r=hn(n,a);G(this,r.length),!e&&i?gn(a)?function(n,t,e){n.forEach((function(n){-1!==_n.indexOf(n.tagName)&&function(n,t,e){n.setAttribute(\"loading\",\"lazy\"),cn(n,t,e),function(n,t){var e=Y[n.tagName];e&&e(n,t)}(n,t),w(n,h)}(n,t,e)})),G(e,0)}(r,a,this):(o=r,function(n){n.disconnect()}(t=this._observer),function(n,t){t.forEach((function(t){n.observe(t)}))}(t,o)):this.loadAll(r)},destroy:function(){this._observer&&this._observer.disconnect(),t&&window.removeEventListener(\"online\",this._onlineHandler),pn(this._settings).forEach((function(n){U(n)})),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(n){var t=this,e=this._settings;hn(n,e).forEach((function(n){T(n,t),ln(n,e,t)}))},restoreAll:function(){var n=this._settings;pn(n).forEach((function(t){fn(t,n)}))}},En.load=function(n,t){var e=c(t);ln(n,e)},En.resetStatus=function(n){A(n)},t&&function(n,t){if(t)if(t.length)for(var e,i=0;e=t[i];i+=1)l(n,e);else l(n,t)}(En,window.lazyLoadOptions),En}));\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n    name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n  return { value: value, done: done };\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var result = anObject(call(this.next, iterator));\n  var done = this.done = !!result.done;\n  if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n  anObject(this);\n  aCallable(mapper);\n  return new IteratorProxy(getIteratorDirect(this), {\n    mapper: mapper\n  });\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n  return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n  return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) == 'Array';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n  return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).push();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  push: function push(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    doesNotExceedSafeInteger(len + argCount);\n    for (var i = 0; i < argCount; i++) {\n      O[len] = arguments[i];\n      len++;\n    }\n    setArrayLength(O, len);\n    return len;\n  }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-function-prototype-bind -- safe\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).unshift();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  unshift: function unshift(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    if (argCount) {\n      doesNotExceedSafeInteger(len + argCount);\n      var k = len;\n      while (k--) {\n        var to = k + argCount;\n        if (k in O) O[to] = O[k];\n        else deletePropertyOrThrow(O, to);\n      }\n      for (var j = 0; j < argCount; j++) {\n        O[j] = arguments[j];\n      }\n    } return setArrayLength(O, len + argCount);\n  }\n});\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  /* eslint-disable no-self-assign -- prototype methods protection */\n  store.get = store.get;\n  store.has = store.has;\n  store.set = store.set;\n  /* eslint-enable no-self-assign -- prototype methods protection */\n  set = function (it, metadata) {\n    if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    store.set(it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return store.get(it) || {};\n  };\n  has = function (it) {\n    return store.has(it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  some: function some(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(global, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  reduce: function reduce(reducer /* , initialValue */) {\n    anObject(this);\n    aCallable(reducer);\n    var record = getIteratorDirect(this);\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    var counter = 0;\n    iterate(record, function (value) {\n      if (noInitial) {\n        noInitial = false;\n        accumulator = value;\n      } else {\n        accumulator = reducer(accumulator, value, counter);\n      }\n      counter++;\n    }, { IS_RECORD: true });\n    if (noInitial) throw $TypeError('Reduce of empty iterator with no initial value');\n    return accumulator;\n  }\n});\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n  throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  forEach: function forEach(fn) {\n    anObject(this);\n    aCallable(fn);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    iterate(record, function (value) {\n      fn(value, counter++);\n    }, { IS_RECORD: true });\n  }\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"resources/chunks/\" + (chunkId === 970 ? \"lottie\" : chunkId) + \"-\" + {\"90\":\"23b546b999750a7abc6d\",\"341\":\"ff75612729086bcecb96\",\"419\":\"ddcf49ca81a358176072\",\"467\":\"5171df0e5d9ed9e2ec83\",\"569\":\"75647da9d6afd1801eaa\",\"586\":\"e54f97986f21486e724e\",\"622\":\"cc7a178f5464cbd6d087\",\"705\":\"78541176287929806308\",\"710\":\"e0410ea85a43a758db30\",\"787\":\"ed63ef999222b92ef4a0\",\"920\":\"0ebad556bb9c5c5d9434\",\"970\":\"44b6cc68b2068bdd31c8\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/etc.clientlibs/nexinew/clientlibs/clientlib-site/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t660: 0,\n\t709: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkui_frontend\"] = self[\"webpackChunkui_frontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","///////////////////////////////////////////////////\r\n//////////// ANALYTICS LIBRARY  ///////////////////\r\n///////////////////////////////////////////////////\r\n\r\nclass Analytics {\r\n\r\n    constructor() {\r\n        this.dataLayer = window['dataLayer'];\r\n    }\r\n\r\n    sendData(data) {\r\n\r\n        try {\r\n            let jsonData = (typeof data === 'string' || data instanceof String) ? JSON.parse(data) : data;\r\n\r\n            if (this.dataLayer && jsonData) {\r\n                console.log('*** Sending Analytics:',jsonData);\r\n                this.dataLayer.push(jsonData);\r\n            } else {\r\n                console.log('--- Debug Analytics:',jsonData);\r\n            }\r\n        } catch(err) {\r\n            console.log('/-/-/- Analytics Error:',err);\r\n        }\r\n    }\r\n\r\n}\r\n\r\nconst defaultAnalytics = new Analytics();\r\nexport const analytics = defaultAnalytics;","class Register {\r\n    constructor() {\r\n        this.reg = {};\r\n    }\r\n\r\n    /**\r\n     * Register a new class to the register\r\n     * @param {String} selector\r\n     * @param {Class} cl\r\n     */\r\n    registerClass(selector, cl) {\r\n        this.reg[selector] = cl;\r\n    }\r\n\r\n    /**\r\n     * Search for all registered class into the root element and apply the logic\r\n     * @param {HTMLELement} rootEl\r\n     */\r\n    apply(rootEl) {\r\n        for (const r in this.reg) {\r\n            if (!this.reg[r]) continue;\r\n            const elements = rootEl.querySelectorAll(r);\r\n            for (const el of elements) {\r\n                try {\r\n                    if (!el.objReference) {\r\n                        el.objReference = new this.reg[r](el);\r\n                        const id = el.id ? el.id : '<id not set>';\r\n                        console.info(`Created object ${r} to component with id ${id}`);\r\n                    }\r\n                } catch (error) {\r\n                    console.error('Cannot apply class to element ' + el, error);\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Apply to the specific element the necessary logic\r\n     * @param {HTMLELement} el\r\n     */\r\n    applyTo(el) {\r\n        if (el.objReference) return el.objReference;\r\n        for (const r in this.reg) {\r\n            if (el.matches(r)) {\r\n                el.objReference = new this.reg[r](el);\r\n                return el.objReference;\r\n            }\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Get class from element\r\n     * @param {HTMLELement} element\r\n     */\r\n    getClass(element) {\r\n        if (element.objReference) return element.objReference;\r\n        return this.applyTo(element);\r\n    }\r\n}\r\n\r\nconst defaultRegister = new Register();\r\nexport const register = defaultRegister;\r\n","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { setDeviceBreakpoints } from '../../libs/utils';\r\n\r\n\r\n\r\nclass Page extends Component {\r\n    constructor(page) {\r\n        super('base-page');\r\n\r\n        document.documentElement.classList.remove('no-js');\r\n        document.documentElement.classList.add('js');\r\n\r\n        this.page = page;\r\n        this.breakpoints = {\r\n            bpDesktop: '(min-width: 1024px)',\r\n            bpDesktopNoTablet: '(min-width: 1024px) and (hover: hover)',\r\n            //bpDesktopTablet: '(min-width: 1024px) and (hover: none), (min-width: 1024px) and (hover: hover)',\r\n            //bpTablet: '(min-width: 768px) and (max-width: 1023px)',\r\n            bpTabletLandscape: '(min-width: 1024px) and (orientation: landscape) and (hover: none)',\r\n            //bpMobileTablet: '(max-width: 919px) and (orientation: portrait)',\r\n            bpTablet: '(min-width: 768px) and (max-width: 1023px)',\r\n            bpMobileTablet: '(max-width: 1023px)',\r\n            bpMobile: '(max-width: 767px)',\r\n            orientLandscape: '(orientation: landscape)',\r\n            orientPortrait: '(orientation: portrait)'\r\n        };\r\n        this.chatbotApp = this.page.querySelector('#chatbotApp');\r\n\r\n        setDeviceBreakpoints(this.breakpoints);\r\n\r\n        this.trackedCtas = [...page.querySelectorAll(`a[data-tracking], button[data-tracking]`)];\r\n\r\n        if (this.trackedCtas) {\r\n            this.trackedCtas.forEach((el) => {\r\n                el.addEventListener('click', this._sendAnalytics);\r\n            })\r\n        }\r\n\r\n        this._initSmootScroll();\r\n    }\r\n\r\n    async _initSmootScroll() {\r\n        const smoothscroll = await import('smoothscroll-polyfill');\r\n\r\n        // start scroll polyfill\r\n        smoothscroll.polyfill();\r\n\r\n        if(this.chatbotApp) {\r\n            let metaTagDynamicEnv = document.querySelector('meta[name=\"environment\"]');\r\n            if(metaTagDynamicEnv) {\r\n                sessionStorage.setItem('env', metaTagDynamicEnv.getAttribute('content'));\r\n            }\r\n\r\n            sessionStorage.setItem('portalName', 'NEXIIT');\r\n        }\r\n    }\r\n\r\n    _sendAnalytics({target}) {\r\n\r\n        let trackingData = target.dataset.tracking;\r\n\r\n        if (trackingData) {\r\n            analytics.sendData(trackingData);\r\n        }\r\n    }\r\n\r\n    _toggleBlockPageScroll() {\r\n        const hasBlock = document.documentElement.classList.contains('block-scroll');\r\n        if (hasBlock) this.removeBlockScroll();\r\n        else this.setBlockScroll();\r\n    }\r\n\r\n    _setBlockScroll() {\r\n        document.documentElement.classList.add('block-scroll');\r\n    }\r\n\r\n    _removeBlockScroll() {\r\n        document.documentElement.classList.remove('block-scroll');\r\n    }\r\n}\r\n\r\nregister.registerClass('.base-page', Page);\r\n\r\nconst getPage = () => {\r\n    const page = document.querySelector('.base-page').objReference;\r\n    if (!page) console.error('Cannot find current base-page');\r\n    return page;\r\n};\r\n\r\nexport const toggleBlockPageScroll = () => {\r\n    getPage()._toggleBlockPageScroll();\r\n};\r\n\r\nexport const setBlockScroll = () => {\r\n    getPage()._setBlockScroll();\r\n};\r\n\r\nexport const removeBlockScroll = () => {\r\n    getPage()._removeBlockScroll();\r\n};\r\n","import LazyLoad from 'vanilla-lazyload';\r\n\r\nconst lazyLoad = new LazyLoad({\r\n    elements_selector: '.media-picture--lazy .media-picture__img',\r\n    class_loaded: 'media-picture__img--loaded',\r\n    callback_loaded: (img) => {\r\n        img.classList.add('media-picture__img--loaded');\r\n        img.classList.remove('media-picture__fixed-ratio');\r\n        img.style.removeProperty('--fixed-width');\r\n        img.style.removeProperty('--fixed-height');\r\n        img.closest('picture').classList.add('media-picture--loaded');\r\n        const event = new CustomEvent('mediaPictureLoaded', { bubbles: true });\r\n        img.dispatchEvent(event);\r\n    },\r\n});\r\n\r\n(() => {\r\n    //reload images if adobe target load a dynamic image\r\n    if (window.adobe && window.adobe.target) {\r\n        document.addEventListener(window.adobe.target.event.CONTENT_RENDERING_SUCCEEDED, function () {\r\n            lazyLoad.update();\r\n        });\r\n    }\r\n    lazyLoad.update();\r\n})();\r\n\r\nexport const forceUpdateLazy = () => {\r\n    lazyLoad.update();\r\n};\r\n\r\nexport const resetImageLazy = (img) => {\r\n\r\n    if (img && img.dataset.llStatus != 'loaded') {\r\n        let pic = img.closest('picture');\r\n\r\n        Array.prototype.forEach.call(pic, el => {\r\n            if (el.nodeName === 'SOURCE') {\r\n                el.dataset.srcset = el.srcset;\r\n                el.srcset = '';\r\n            } else {\r\n                el.dataset.src = el.src;\r\n                el.src = 'data:image/gif;base64,R0lGODlhAwACAIAAAP///wAAACH5BAEAAAEALAAAAAADAAIAAAICjF8AOw==';\r\n            }\r\n        });\r\n        \r\n        img.classList.remove('media-picture__img--loaded');\r\n        img.classList.remove('loading');\r\n        img.removeAttribute('data-ll-status');\r\n        pic.classList.remove('media-picture--loaded');\r\n        LazyLoad.resetStatus(img);\r\n        //console.log('Lazy images resetting:', img);\r\n    }\r\n};\r\n","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { forceUpdateLazy } from '../../components/media-picture';\r\nimport { getNextSibling, isIE, getCookie} from '../../libs/utils';\r\nimport { setBlockScroll, removeBlockScroll } from '../base-page';\r\n\r\n\r\nclass Header extends Component {\r\n    \r\n    constructor(container) {\r\n        super('base-header');\r\n\r\n        this.SCROLLED_HIDDEN_MENU_SELECTOR = 'scrolled-hidden';\r\n        this.SCROLLED_MENU_SELECTOR = 'scrolled';\r\n        this.OPENED_MOBILE_MENU_SELECTOR = 'nav--opened';\r\n        this.OPENED_DESKTOP_MENU_SELECTOR = 'flyout--active';\r\n        this.CLOSING_DESKTOP_MENU_SELECTOR = 'flyout--closing';\r\n        this.ACTIVE_NAV_BUTTON_SELECTOR = 'active';\r\n        this.NO_MENU_ANIMATION_SELECTOR = 'no-anim';\r\n        this.ACTIVE_FLYOUT_MENU_SELECTOR = 'flyout--active';\r\n        this.FLYOUT_OPENED_SELECTOR = 'flyout--opened';\r\n        this.FLYOUT_CLOSING_SELECTOR = 'flyout--closing';\r\n        this.FLYOUT_COLUMNS_BALANCE = 'column-balance';\r\n        this.FLYOUT_HIGHLIGHT = 'highlight';\r\n        this.FLYOUT_MAX_COLUMN_ITEMS = 99;\r\n        this.MENU_CLOSING_DELAY = 500;\r\n        this.MOBILE_SCROLL_OFFSET =\r\n            parseInt( getComputedStyle(document.documentElement).getPropertyValue('--header-height').replace('px','') ) || 72;\r\n        this.MENU_DARK = 'base-header--dark';\r\n        this.MENU_DEFAULT = 'base-header--white';\r\n        this.MENU_OPEN ='menu-open';\r\n        this.MENU_STICKY ='base-header--sticky-menu';\r\n\r\n        this.header = container;\r\n        this.navMenu = this.header.querySelector('nav');\r\n        this.navMenuItems = this.navMenu.querySelector(this._el('nav-items',true)).children;\r\n        this.menuOpened = false;\r\n        this.menuTimer = null;\r\n\r\n        if (this.header.classList.contains(this.MENU_STICKY))\r\n            this.MENU_STICKY_OFFSET = window.innerHeight / 2;\r\n\r\n        this._addCommonInit();\r\n\r\n        if (isIE())\r\n            this._addDesktopInit();\r\n        else\r\n            window.deviceBreakpoints.bpDesktop.matches === true ? this._addDesktopInit() : this._addMobileInit();\r\n    }\r\n\r\n    _addCommonInit() {\r\n        console.log('INIT HEADER COMMONS');\r\n\r\n        let mobileRotation = window.matchMedia('(orientation: landscape)');\r\n\r\n        mobileRotation.addListener(() => {\r\n            if (this.menuOpened)\r\n                this._closeMobileMenu();\r\n        });\r\n\r\n        document.addEventListener('bpDesktop', () => {\r\n            this._cleanMobileMenu();\r\n            this._cleanDesktopMenu();\r\n            this._addDesktopInit();\r\n        });\r\n\r\n        document.addEventListener('bpMobileTablet', () => {\r\n            this._cleanDesktopMenu();\r\n            this._cleanMobileMenu();\r\n            this._addMobileInit();\r\n        });\r\n\r\n        //this._checkColumnElements(this.navMenu);\r\n        this._addScrollListener();\r\n        this._cookieInit();\r\n    }\r\n\r\n    _addMobileInit() {\r\n        console.log('INIT HEADER MOBILE MENU');\r\n\r\n        this.navMenu\r\n            .querySelectorAll('li.has-submenu > button, li.has-submenu > label')\r\n            .forEach((el) => {\r\n\r\n                el.addEventListener('click', (ev) => {\r\n                    let item = ev.target.parentElement;\r\n                    \r\n                    item.parentElement\r\n                        .querySelectorAll('li')\r\n                        .forEach((li) => {\r\n                            li.classList.remove(this.FLYOUT_OPENED_SELECTOR);\r\n                        });\r\n                    \r\n                    item.classList.add(this.FLYOUT_OPENED_SELECTOR);\r\n\r\n                    let left = this.navMenu.style.left.replace('%','') | 0;\r\n                    let offset = parseInt(left) - 100;\r\n                    this.navMenu.style.left = `${offset}%`;\r\n                    this.navMenu.classList.add(this.ACTIVE_FLYOUT_MENU_SELECTOR);\r\n                });\r\n            });\r\n\r\n        this.navMenu\r\n            .querySelectorAll(`.${this.name}__back-btn`)\r\n            .forEach((el) => {\r\n                el.addEventListener('click', () => {\r\n\r\n                    let left = this.navMenu.style.left.replace('%','') | 0;\r\n                    let offset = parseInt(left) + 100;\r\n                    this.navMenu.style.left = `${offset}%`;\r\n\r\n                    if (offset == 0)\r\n                        this.navMenu.classList.remove(this.ACTIVE_FLYOUT_MENU_SELECTOR);\r\n                });\r\n            });\r\n\r\n        this.header\r\n            .querySelectorAll(`${this._el('menu-btn',true)}, ${this._el('menu-close-btn',true)}`)\r\n            .forEach((el) => {\r\n                el.addEventListener('click', (ev) => {\r\n                    ev.preventDefault();\r\n\r\n                    if (this.header.classList.contains(this.OPENED_MOBILE_MENU_SELECTOR)) {\r\n                        this._closeMobileMenu();\r\n                    } else {\r\n                        this._openMobileMenu();\r\n                    }\r\n                });\r\n            });\r\n    }\r\n\r\n    _cleanMobileMenu() {\r\n        console.log('CLEANING HEADER MOBILE MENU');\r\n\r\n        this._closeMobileMenu();\r\n\r\n        this.navMenu\r\n            .querySelectorAll('li.has-submenu > button, li.has-submenu > label')\r\n            .forEach((el) => el.replaceWith(el.cloneNode(true)));\r\n\r\n        this.navMenu\r\n            .querySelectorAll(`.${this.name}__back-btn`)\r\n            .forEach((el) => el.replaceWith(el.cloneNode(true)));\r\n\r\n        this.header\r\n            .querySelectorAll(`${this._el('menu-btn',true)}, ${this._el('menu-close-btn',true)}`)\r\n            .forEach((el) => el.replaceWith(el.cloneNode(true)));\r\n    }\r\n\r\n    _addDesktopInit() {\r\n        console.log('INIT HEADER DESKTOP MENU');\r\n\r\n        if (this.navMenu) {\r\n\r\n            let navMenus = this.navMenu\r\n                .querySelectorAll(this._el('nav-item.has-submenu',true));\r\n            \r\n            navMenus.forEach((el) => {\r\n\r\n                el.addEventListener('click', (ev) => {\r\n                    this._handleNavButton(ev);\r\n                });\r\n                /*el.addEventListener('mouseover', (ev) => {\r\n                    this._handleNavButton(ev);\r\n                });\r\n                el.addEventListener('mouseout', (ev) => {\r\n                    this._handleNavButton(ev);\r\n                });*/\r\n            });\r\n\r\n            let flyoutButtons = this.navMenu\r\n                .querySelectorAll(this._el('flyout-item.has-submenu',true));\r\n\r\n            flyoutButtons.forEach((el) => {\r\n\r\n                el.addEventListener('mouseover', (ev) => {\r\n                    this._handleFlyoutButton(ev);\r\n                });\r\n                el.addEventListener('click', (ev) => {\r\n                    this._handleFlyoutButton(ev);\r\n                });\r\n                el.addEventListener('mouseout', (ev) => {\r\n                    this._handleFlyoutButton(ev);\r\n                });\r\n            });\r\n\r\n            let flyoutLinks = this.navMenu\r\n                .querySelectorAll(`ul.second-level > li > ${this._el('flyout-link',true)}`);\r\n\r\n            flyoutLinks.forEach((el) => {\r\n\r\n                el.addEventListener('mouseover', (ev) => {\r\n                    this._handleFlyoutLink(ev);\r\n                });\r\n                el.addEventListener('mouseout', (ev) => {\r\n                    this._handleFlyoutLink(ev);\r\n                });\r\n            });\r\n\r\n            let flyoutMenus = this.navMenu\r\n                .querySelectorAll(`${this._el('flyout',true)}`);\r\n\r\n            flyoutMenus.forEach((el) => {\r\n                \r\n                el.addEventListener(\"animationend\", (ev) => {\r\n                    //console.log('*** ANIM ENDED',ev);\r\n                    \r\n                    if (ev.animationName == 'flyoutUp') {\r\n                        ev.target\r\n                            .closest(this._el('nav-item.has-submenu',true))\r\n                            .classList\r\n                            .remove(this.FLYOUT_CLOSING_SELECTOR);\r\n                        this.menuAnimating = false;\r\n                        this.menuOpened = false;\r\n                        this._resetMenu();\r\n                        \r\n                        document.body.classList.remove(this.MENU_OPEN);\r\n\r\n                        console.log('--- HEADER MENU CLOSED');\r\n                    }\r\n                });\r\n            });\r\n\r\n            let flyoutPreview = this.navMenu\r\n                .querySelectorAll(this._el('flyout-item.has-preview',true));\r\n\r\n            flyoutPreview.forEach((el) => {\r\n                \r\n                el.addEventListener('mouseover', (ev) => {\r\n                    this._handleFlyoutPreview(ev);\r\n                });\r\n\r\n                el.addEventListener('mouseout', (ev) => {\r\n                    this._handleFlyoutPreview(ev);\r\n                });\r\n            });\r\n\r\n            this.header\r\n                .querySelectorAll(`${this._el('menu-close-btn',true)}`)\r\n                .forEach((el) => {\r\n                    el.addEventListener( 'click', (ev) => {\r\n                        ev.preventDefault();\r\n                        this._flyoutMenuClose();\r\n                    });\r\n                });\r\n\r\n            forceUpdateLazy();\r\n        }\r\n    }\r\n\r\n    _cleanDesktopMenu() {\r\n        console.log('CLEANING HEADER DESKTOP MENU');\r\n\r\n        let navMenus = this.navMenu.querySelectorAll(this._el('nav-item.has-submenu',true));\r\n        navMenus.forEach((el) => el.replaceWith(el.cloneNode(true)));\r\n\r\n        let flyoutButtons = this.navMenu.querySelectorAll(this._el('flyout-item.has-submenu',true));\r\n        flyoutButtons.forEach((el) => el.replaceWith(el.cloneNode(true)));\r\n\r\n        let flyoutLinks = this.navMenu\r\n            .querySelectorAll(`${this._el('flyout--vertical',true)} > ul > li > ${this._el('flyout-link',true)}`);\r\n        flyoutLinks.forEach((el) => el.replaceWith(el.cloneNode(true)));\r\n\r\n        let flyoutMenus = this.navMenu.querySelectorAll(`${this._el('flyout',true)}`);\r\n        flyoutMenus.forEach((el) => el.replaceWith(el.cloneNode(true)));\r\n\r\n        this.header\r\n            .querySelectorAll(`${this._el('menu-close-btn',true)}`)\r\n            .forEach((el) => el.replaceWith(el.cloneNode(true)));\r\n    }\r\n\r\n    _handleNavButton(ev) {\r\n\r\n        let { target: el } = ev;\r\n\r\n        if (el.classList.contains(`${this._el('nav-button')}`)) {\r\n\r\n            if (!el.classList.contains(this.ACTIVE_NAV_BUTTON_SELECTOR)) {\r\n                if (!this.menuOpened) {\r\n\r\n                    this.menuOpened = true;\r\n                    this.navMenu\r\n                        .classList\r\n                        .add(this.OPENED_DESKTOP_MENU_SELECTOR);\r\n\r\n                    this._addClickOutside();\r\n                    this._addScrollCloseMenu();\r\n                    \r\n                    console.log('*** HEADER MENU OPENED')\r\n\r\n                    document.body.classList.add(this.MENU_OPEN);\r\n\r\n                } else {\r\n                    this._closeFlyout(this.navMenu);\r\n                    this.navMenu\r\n                        .classList\r\n                        .add(this.NO_MENU_ANIMATION_SELECTOR);\r\n                }\r\n\r\n                // show first preview\r\n                if (ev.target.closest(`${this._el('nav-item',true)}`).querySelector('.has-preview')) {\r\n                    this._openFlyout(ev.target.closest(`${this._el('nav-item',true)}`).querySelector('.has-preview'));\r\n                }\r\n                \r\n                this._cleanFlyoutItems();\r\n                this._cleanNavButtons();\r\n                this._openFlyout(ev.target.closest(`${this._el('nav-item',true)}`));\r\n                this._checkNavHeight(ev.target.closest(`${this._el('nav-item',true)}`));\r\n\r\n                ev.target\r\n                    .classList\r\n                    .add(this.ACTIVE_NAV_BUTTON_SELECTOR);\r\n\r\n            } else {\r\n            \r\n                this._flyoutMenuClose();\r\n            }\r\n        }\r\n    }\r\n\r\n    _handleFlyoutButton(ev) {\r\n        ev.stopPropagation();\r\n\r\n        let { target: el } = ev;\r\n\r\n        if (el.classList.contains(`${this._el('flyout-button')}`)) {\r\n\r\n            if (ev.type === 'click' || ev.type === 'mouseover') {\r\n                this._closeFlyout(el.closest(`${this._el('flyout',true)}`));\r\n                this._openFlyout(el.closest(`${this._el('flyout-item',true)}`));\r\n                this._setFlyoutHeight(getNextSibling(el,`${this._el('flyout',true)}`));\r\n                this._cleanFlyoutItems();\r\n                this._hightlightItem(el);\r\n            }\r\n        }\r\n    }\r\n\r\n    _handleFlyoutLink(ev) {\r\n\r\n        const { target: el, type: type } = ev;\r\n        \r\n        switch(type) {\r\n            case 'mouseover':\r\n                this._cleanFlyoutItems();\r\n                this._hightlightItem(el);\r\n                this._closeFlyout(el.closest(`${this._el('flyout',true)}`));\r\n                break;\r\n            case 'mouseout':\r\n                this._hightlightItem(el,false);\r\n                break;\r\n        }\r\n    }\r\n\r\n    _handleFlyoutPreview(ev) {\r\n        \r\n        const { target: el, type: type } = ev;\r\n\r\n        if (el.classList.contains(`${this._el('flyout-link')}`)) {\r\n            if (type == 'mouseover') {\r\n                this._closeFlyout(el.closest(`${this._el('flyout-items',true)}.second-level`));\r\n                this._openFlyout(el.closest(`${this._el('flyout-item',true)}`));\r\n                this._cleanFlyoutItems();\r\n            }\r\n        }\r\n    }\r\n\r\n    _hightlightItem(item,enable=true) {\r\n\r\n        const flyoutItems = item.closest(`${this._el('flyout-items',true)}`);\r\n\r\n        if (enable) {\r\n            item.classList.add(this.FLYOUT_HIGHLIGHT);\r\n            flyoutItems.classList.add(this.FLYOUT_HIGHLIGHT);\r\n        } else {\r\n            item.classList.remove(this.FLYOUT_HIGHLIGHT);\r\n            flyoutItems.classList.remove(this.FLYOUT_HIGHLIGHT);\r\n        }\r\n    }\r\n\r\n    _cleanFlyoutItems() {\r\n\r\n        this.navMenu\r\n            .querySelectorAll(`.${this.FLYOUT_HIGHLIGHT}`)\r\n            .forEach((el) => {\r\n                el.classList\r\n                    .remove(this.FLYOUT_HIGHLIGHT);\r\n            });\r\n    }\r\n\r\n    _cleanNavButtons() {\r\n\r\n        this.navMenu\r\n            .querySelectorAll(`${this._el('nav-item',true)}`)\r\n            .forEach((el) => {\r\n                el.classList\r\n                    .remove(this.FLYOUT_CLOSING_SELECTOR);\r\n                \r\n                if(el.childElementCount > 2)\r\n                    el.querySelector(`${this._el('nav-button',true)}`)\r\n                        .classList\r\n                        .remove(this.ACTIVE_NAV_BUTTON_SELECTOR);\r\n            });\r\n    }\r\n\r\n    _addScrollListener() {\r\n\r\n        let ticking = false,\r\n            prevScrollPos = 0,\r\n            lastScrollPos = window.scrollY || window.pageYOffset;\r\n\r\n        this._checkScrollPosition(lastScrollPos,prevScrollPos,this.MOBILE_SCROLL_OFFSET);\r\n\r\n        document.addEventListener('scroll', () => {\r\n            lastScrollPos = window.pageYOffset;\r\n\r\n            if (!ticking) {\r\n                window.requestAnimationFrame( () => {\r\n                    this._checkScrollPosition(lastScrollPos,prevScrollPos,this.MOBILE_SCROLL_OFFSET);\r\n                    prevScrollPos = lastScrollPos;\r\n                    ticking = false;\r\n                });\r\n\r\n                ticking = true;\r\n            }\r\n        });\r\n    }\r\n\r\n    _addScrollCloseMenu() {\r\n        document.addEventListener('scroll', this._scrollCloseMenu);\r\n    }\r\n\r\n    _scrollCloseMenu() {\r\n        let menu = document.querySelector('header').objReference;\r\n        let closeMenu = menu._flyoutMenuClose.bind(menu);\r\n        closeMenu();\r\n        document.removeEventListener('scroll', menu._scrollCloseMenu);\r\n    }\r\n\r\n    _checkScrollPosition(lastPos,prevPos,offset=0) {\r\n\r\n        if (lastPos > 1) {  // Accounting for rounding error\r\n            this.header.classList.add(this.SCROLLED_MENU_SELECTOR);\r\n            this._setStyle();\r\n        } else {\r\n            this.header.classList.remove(this.SCROLLED_MENU_SELECTOR);\r\n            this._resetStyle();\r\n        }\r\n\r\n        // If there isn't sticky menu, header is hidden on scroll down and is showed on scroll up\r\n        if (lastPos > offset && lastPos > prevPos) {\r\n            this.header.classList.add(this.SCROLLED_HIDDEN_MENU_SELECTOR);\r\n        } else {\r\n            this.header.classList.remove(this.SCROLLED_HIDDEN_MENU_SELECTOR);\r\n        }\r\n\r\n        if (this.header.classList.contains(this.MENU_STICKY)) {\r\n\r\n            let stickyOffset = offset;\r\n\r\n            if (window.deviceBreakpoints.bpDesktop.matches === true)\r\n                stickyOffset = this.MENU_STICKY_OFFSET;\r\n\r\n            if (lastPos > stickyOffset && lastPos > prevPos) {\r\n                this.header.classList.add(this.SCROLLED_HIDDEN_MENU_SELECTOR);\r\n            } else {\r\n                this.header.classList.remove(this.SCROLLED_HIDDEN_MENU_SELECTOR);\r\n            }\r\n        }\r\n    }\r\n\r\n    _flyoutMenuClose(withDelay=false) {\r\n\r\n        let navItem = this.navMenu.querySelector(`${this._el('nav-item.flyout--opened',true)}`);\r\n\r\n        if (navItem) {\r\n\r\n            if (withDelay) {\r\n\r\n                this._closeDelay();\r\n                return;\r\n            }\r\n\r\n            this.navMenu\r\n                .classList\r\n                .remove(this.NO_MENU_ANIMATION_SELECTOR);\r\n\r\n            navItem.querySelector('button, label').classList.remove('active');\r\n            navItem.classList.remove(this.FLYOUT_OPENED_SELECTOR);\r\n            navItem.classList.add(this.FLYOUT_CLOSING_SELECTOR);\r\n            this.navMenu.classList.add(this.CLOSING_DESKTOP_MENU_SELECTOR);\r\n            this._removeClickOutside();\r\n            this.menuAnimating = true;\r\n            \r\n            if (this.header.classList.contains('nav-scrollable')) {\r\n                removeBlockScroll();\r\n                this.header.classList.remove('nav-scrollable');\r\n            }\r\n        }\r\n    }\r\n\r\n    _closeDelay() {\r\n\r\n        let activeFlyout = this.navMenu.querySelector(`${this._el('flyout-item.flyout--opened',true)} ${this._el('flyout',true)}`)\r\n\r\n        this.clearTimer = () => {\r\n            //console.log('/// clear time?')\r\n            if (this.menuTimer) {\r\n                //console.log('/-/-/- timer cleared')\r\n                clearTimeout(this.menuTimer);\r\n                this.menuTimer = null;\r\n                \r\n                if (activeFlyout)\r\n                    activeFlyout.removeEventListener('mouseover', this.clearTimer);\r\n\r\n                this.navMenu.removeEventListener('mouseover', this.clearTimer);\r\n            }\r\n        };\r\n\r\n        if (this.menuTimer)\r\n            this.clearTimer();\r\n\r\n        //activeFlyout.addEventListener('mouseover', (ev) => console.log('ciao',ev));\r\n        \r\n        if (activeFlyout)\r\n            activeFlyout.removeEventListener('mouseover', this.clearTimer);\r\n\r\n        this.navMenu.addEventListener('mouseover', this.clearTimer);\r\n\r\n        //console.log('/+/+/+ delayed close requested')\r\n\r\n        this.menuTimer = setTimeout( () => {\r\n            this.clearTimer();\r\n            this._flyoutMenuClose();\r\n        }, this.MENU_CLOSING_DELAY);\r\n    }\r\n    \r\n    _addClickOutside() {\r\n        document.body.addEventListener('click', this._clickOutside);\r\n    }\r\n\r\n    _removeClickOutside() {\r\n        document.body.removeEventListener('click', this._clickOutside);\r\n    }\r\n\r\n    _clickOutside(ev) {\r\n\r\n        let header = document.querySelector('header'),\r\n            flyout = header.querySelector('li.has-submenu.flyout--opened'),\r\n            langMenu = header.querySelector('[class*=lang-menu]');\r\n\r\n        if (flyout) {\r\n            if (!flyout.contains(ev.target)) {\r\n                console.log('CLICKED OUTSIDE',ev.target);\r\n                header\r\n                    .objReference\r\n                    ._flyoutMenuClose();\r\n            }\r\n        }\r\n\r\n        if (langMenu) {\r\n            if (!langMenu.contains(ev.target)) {\r\n                langMenu\r\n                    .classList\r\n                    .remove('active');\r\n            }\r\n        }\r\n    }\r\n\r\n    _openFlyout(container) {\r\n        if (container) {\r\n            container\r\n                .classList\r\n                .add(this.FLYOUT_OPENED_SELECTOR);\r\n            this._cleanFlyoutHeight();\r\n        }\r\n    }\r\n\r\n    _closeFlyout(container) {\r\n        if (container) {\r\n            container\r\n                .querySelectorAll(`.${this.FLYOUT_OPENED_SELECTOR}`)\r\n                .forEach((el) => {\r\n                    el.classList.remove(this.FLYOUT_OPENED_SELECTOR);\r\n                });\r\n        }\r\n    }\r\n\r\n    _checkNavHeight(container){\r\n\r\n        if (container) {\r\n            let flyoutContainer = container.querySelector(`${this._el('flyout-container',true)}`),\r\n                screenHeight = window.innerHeight,\r\n                containerHeight = flyoutContainer.offsetHeight;\r\n\r\n            if( containerHeight > screenHeight ) {\r\n                console.debug('check menu height', flyoutContainer, containerHeight,  screenHeight );\r\n                this.header.classList.add('nav-scrollable');\r\n\r\n                setBlockScroll();\r\n                document.removeEventListener('scroll', this.header._scrollCloseMenu);\r\n            }\r\n        }\r\n    }\r\n\r\n    _setFlyoutHeight(container) {\r\n        \r\n        if (container) {\r\n\r\n            let flyoutItems = container.closest(`${this._el('flyout-items',true)}`),\r\n                screenHeight = window.innerHeight - this.header.offsetHeight,\r\n                items = container.querySelectorAll('li'),\r\n                itemHeight = 100;\r\n\r\n                for (const [i, el] of items.entries()) {\r\n                    if (i >= this.FLYOUT_MAX_COLUMN_ITEMS) break;\r\n                    itemHeight += Math.ceil(el.getBoundingClientRect().height);\r\n                }\r\n\r\n                if (itemHeight > screenHeight)\r\n                    itemHeight = screenHeight;\r\n\r\n                flyoutItems.style.minHeight = itemHeight + 'px';\r\n        }\r\n    }\r\n\r\n    _cleanFlyoutHeight(container) {\r\n        \r\n        let flyoutItems;\r\n\r\n        if (container)\r\n            flyoutItems = container.querySelectorAll(`${this._el('flyout-items',true)}`);\r\n        else\r\n            flyoutItems = this.header.querySelectorAll(`${this._el('flyout-items',true)}`);\r\n\r\n        flyoutItems.forEach((el) => {\r\n            el.style.minHeight = '';\r\n        });\r\n    }\r\n\r\n    _openMobileMenu() {\r\n\r\n        this.header.classList.add(this.OPENED_MOBILE_MENU_SELECTOR);\r\n        setBlockScroll();\r\n    }\r\n\r\n    _closeMobileMenu() {\r\n\r\n        if (this.header.classList.contains(this.OPENED_MOBILE_MENU_SELECTOR)) {\r\n            this._resetMenu();\r\n            removeBlockScroll();\r\n        }\r\n    }\r\n\r\n    _checkColumnElements(container) {\r\n\r\n        if (container) {\r\n\r\n            const itemsContainers = [...container.querySelectorAll(`${this._el('flyout-items',true)}.second-level`)];\r\n\r\n            itemsContainers.forEach((el) => {\r\n\r\n                const items = [...el.children].filter((element) => {\r\n                    return element.classList.contains(this._el('flyout-item')) && !element.classList.contains('is-related-menu') && !element.classList.contains('is-card-menu');\r\n                });\r\n    \r\n                if (items.length > 5)\r\n                    el.classList.add(this.FLYOUT_COLUMNS_BALANCE);\r\n            });\r\n        }\r\n    }\r\n\r\n    _setStyle() {\r\n\r\n        if (this.header.classList.contains(this.MENU_DARK)) {\r\n            this.header.classList.add(this.MENU_DEFAULT);\r\n        }; \r\n    }\r\n\r\n    _resetStyle(){\r\n\r\n        if (this.header.classList.contains(this.MENU_DARK)) {\r\n            this.header.classList.remove(this.MENU_DEFAULT);\r\n        };\r\n    }\r\n\r\n    _resetMenu() {\r\n\r\n        //if (!this.menuAnimating) {\r\n            this.navMenu.classList.remove(this.OPENED_DESKTOP_MENU_SELECTOR);\r\n            this.navMenu.classList.remove(this.CLOSING_DESKTOP_MENU_SELECTOR);\r\n            this.menuAnimating = false;\r\n            this.menuOpened = false;\r\n        //}\r\n\r\n        this.navMenu.classList.remove(this.NO_MENU_ANIMATION_SELECTOR);\r\n        this.header.classList.remove(this.SCROLLED_HIDDEN_MENU_SELECTOR);\r\n        this.header.classList.remove(this.OPENED_MOBILE_MENU_SELECTOR);\r\n        //this.navMenu.classList.remove(this.ACTIVE_FLYOUT_MENU_SELECTOR);\r\n        this.navMenu.style.left = '';\r\n        this._closeFlyout(this.navMenu);\r\n        this._cleanNavButtons();\r\n        this._cleanFlyoutItems();\r\n    }\r\n\r\n    _cookieInit() {\r\n        const loginCta = this.navMenu.querySelector(this._el('login-cta',true));\r\n\r\n        if (loginCta)\r\n            loginCta.addEventListener('click', (ev) => {\r\n                this._checkLoginCookie(ev);\r\n            });\r\n    }\r\n\r\n    _checkLoginCookie(event) {\r\n        const loginPage = getCookie(\"loginPage\");\r\n\r\n        if (loginPage != \"\") {\r\n            event.preventDefault();\r\n\r\n            window.location.replace(loginPage);\r\n        } \r\n    }\r\n}\r\n\r\nregister.registerClass('.base-header', Header);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport {deleteCookie} from '../../libs/utils';\r\n\r\n\r\nclass HeaderLite extends Component {\r\n    \r\n    constructor(container) {\r\n        super('base-header-lite');\r\n\r\n        this.header = container;\r\n        this.changeLogin = container.querySelector('.base-header__login-change');\r\n\r\n        this._init();\r\n    }\r\n\r\n    _init() {\r\n        this.changeLogin.addEventListener('click', () => {\r\n            deleteCookie('loginPage');\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.base-header-lite', HeaderLite);","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { isIE } from '../../libs/utils';\r\nimport ResizeObserver from 'resize-observer-polyfill';\r\n\r\n\r\n\r\nclass StickyMenu extends Component {\r\n    \r\n    constructor(container) {\r\n        super('base-sticky-menu');\r\n\r\n        this.sticky = container;\r\n        this.stickyItem = container.querySelectorAll(this._el('nav-link',true));\r\n        this.sections = [];\r\n        this.MENU_OFFSET = window.innerHeight / 2;\r\n\r\n        this._initScrollHide = this.initScrollHide.bind(this);\r\n        this._onScrollHide = this.onScrollHide.bind(this);\r\n        this._checkScrollHide = this.checkScrollHide.bind(this);\r\n        this._cleanScrollHide = this.cleanScrollHide.bind(this);\r\n        this._unhideStickyMenu = this.unhideStickyMenu.bind(this);\r\n        this._disableDesktopScrollHide = this.disableDesktopScrollHide.bind(this);\r\n        this._scrollToSection = this.scrollToSection.bind(this);\r\n        this.ticking = false;\r\n        this.scrolling = false;\r\n\r\n        this._initSections();\r\n\r\n        if ((window.deviceBreakpoints.bpDesktop.matches === true) || isIE()) {\r\n            this._addDesktopInit();\r\n        }\r\n\r\n        document.addEventListener('bpDesktop', () => {\r\n            this._addDesktopInit();\r\n        });\r\n\r\n        this._initScrollHide();\r\n\r\n        let basePage = document.querySelector('.base-page');\r\n        if (basePage.classList.contains('sticky-menu--mobile'))\r\n            document.body.classList.add('sticky-menu--mobile-enabled');\r\n    }\r\n\r\n    _initSections() {\r\n        this.stickyItem.forEach(el => {\r\n            const href = el.getAttribute('href');\r\n            if (!href || !href.startsWith('#')) return;\r\n            const sectionEl = document.getElementById(href.slice(1));\r\n            if (sectionEl) this.sections.push(sectionEl);\r\n        });\r\n    }\r\n\r\n    _addDesktopInit() {\r\n        console.log('INIT DESKTOP STICKY MENU');\r\n\r\n        this.stickyItem.forEach((el) => {\r\n            const href = el.getAttribute('href');\r\n            if (!href || !href.startsWith('#')) return;\r\n            el.addEventListener('click', (ev) => {\r\n                ev.preventDefault();\r\n                ev.stopPropagation();\r\n                if (this.scrolling) return;\r\n                if (el.hasAttribute('data-tab-link')) {\r\n                    const tabId = href.slice(1);\r\n                    const tabPane = document.getElementById(tabId);\r\n                    if (tabPane) {\r\n                        const tabContainer = tabPane.closest('.widget-tab');\r\n                        if (tabContainer && tabContainer.objReference) {\r\n                            tabContainer.objReference.openTabByIdFromLink(tabId, false);\r\n                        }\r\n                    }\r\n                }\r\n                const body = document.querySelector('body');\r\n                this._addHeightListener(body, this._scrollToSection, el);\r\n                this.scrolling = true;\r\n                this._scrollToSection(el);\r\n                this._highlightNavigation();\r\n                setTimeout(() => {\r\n                    this._removeHeightListener();   // Temp workaround\r\n                    this.scrolling = false;\r\n                }, 1000);\r\n            });\r\n        });\r\n\r\n        this._addScrollListener();\r\n    }\r\n\r\n    _addHeightListener(elem,callback,param) {\r\n\r\n        if (this.resizeObserver)\r\n            this._removeHeightListener();\r\n\r\n        this.resizeObserver = new ResizeObserver(() => {\r\n            callback(param);\r\n        });\r\n\r\n        this.resizeObserver.observe(elem);\r\n    }\r\n\r\n    _removeHeightListener() {\r\n\r\n        if (this.resizeObserver) {\r\n            this.resizeObserver.disconnect();\r\n            this.resizeObserver = null;\r\n        }\r\n    }\r\n\r\n    _addScrollListener() {\r\n        let sticky = false,\r\n            prevScrollPos = 0,\r\n            lastScrollPos = window.scrollY || window.pageYOffset;\r\n\r\n        this._checkScrollPosition(lastScrollPos,prevScrollPos,this.MENU_OFFSET);\r\n\r\n        document.addEventListener('scroll', () => {\r\n            lastScrollPos = window.pageYOffset;\r\n            \r\n            if (!sticky) {\r\n                window.requestAnimationFrame( () => {\r\n                    this._checkScrollPosition(lastScrollPos,prevScrollPos,this.MENU_OFFSET);\r\n                    prevScrollPos = lastScrollPos;\r\n                    sticky = false;\r\n                });\r\n\r\n                sticky = true;\r\n            }\r\n        });\r\n\r\n        window.addEventListener(\"scroll\", this._throttle( () => {\r\n            this._highlightNavigation();\r\n        }, 150));\r\n    }\r\n\r\n    _checkScrollPosition(lastPos,prevPos,offset) {\r\n\r\n        if (lastPos > offset && lastPos > prevPos) {\r\n            document.body.classList.add('sticky-scrolled');\r\n        } else if (lastPos < offset) {\r\n            document.body.classList.remove('sticky-scrolled');\r\n        }\r\n    }\r\n\r\n    scrollToSection(el){\r\n        let value = el.getAttribute('href');\r\n\r\n        if (value) {\r\n            value = value.replace(\"#\", \"\");\r\n            let element = document.getElementById(value);\r\n\r\n            if (element) {\r\n                // Get the size and position of our element in the viewport\r\n                //const containerBox = element.getBoundingClientRect();\r\n                // const headerHeight = document.querySelector('header').getBoundingClientRect().height;\r\n                const headerHeight = this.sticky.getBoundingClientRect().height;\r\n\r\n                // The top offset of our element is the top position of the \r\n                // element in the viewport plus the amount the body is scrolled minus the header height\r\n                // let offsetTop = containerBox.top + (window.scrollY || window.pageYOffset) - headerHeight;\r\n                let offsetTop = element.offsetTop - headerHeight;\r\n\r\n                //console.debug(offsetTop , headerHeight, (containerBox.top + (window.scrollY || window.pageYOffset) - headerHeight) )\r\n\r\n                let scrollOptions = {\r\n                    left: 0,\r\n                    top: offsetTop,\r\n                    behavior: 'smooth'\r\n                }\r\n\r\n                el.parentElement.classList.add('active');\r\n                    \r\n                window.scrollTo(scrollOptions);\r\n            }\r\n        }\r\n    }\r\n\r\n    _throttle(fn, interval) {\r\n        let lastCall, timeoutId;\r\n        return function () {\r\n            let now = new Date().getTime();\r\n            if (lastCall && now < (lastCall + interval) ) {\r\n                // if we are inside the interval we wait\r\n                clearTimeout(timeoutId);\r\n                timeoutId = setTimeout(function () {\r\n                    lastCall = now;\r\n                    fn.call();\r\n                }, interval - (now - lastCall) );\r\n            } else {\r\n                // otherwise, we directly call the function \r\n                lastCall = now;\r\n                fn.call();\r\n            }\r\n        };\r\n    }\r\n\r\n    _highlightNavigation() {\r\n        // get the current vertical position of the scroll bar\r\n\t    let scrollPosition = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n        let currentScroll = scrollPosition;\r\n        let currentSection;\r\n\r\n        this.sections.forEach((el) => {\r\n            if (el.classList.contains('widget-tab__tab-pane') && !el.classList.contains('active')) {\r\n                return;\r\n            }\r\n            let sectionPosition = el.offsetTop - 72;\r\n            if( sectionPosition  <= currentScroll ) {\r\n                currentSection = el;\r\n            }\r\n        });\r\n\r\n        // If there is a section \r\n        if( currentSection != undefined) {\r\n            let id = currentSection.id;\r\n            this.stickyItem.forEach((el) => {\r\n                let value = el.getAttribute('href');\r\n                if(value) {\r\n                    value = value.replace('#','');\r\n                    el.parentElement.classList.remove('active');\r\n                    if(id === value) {\r\n                        el.parentElement.classList.add('active');\r\n                    } else {\r\n                        el.parentElement.classList.remove('active');\r\n                    }\r\n                }\r\n            });\r\n        }\r\n\r\n    }\r\n\r\n    initScrollHide() {\r\n\r\n        this._cleanScrollHide();\r\n\r\n        document.addEventListener('bpDesktop', this._disableDesktopScrollHide);\r\n        document.addEventListener('bpTablet', this._initScrollHide);\r\n        document.addEventListener('bpMobile', this._initScrollHide);\r\n\r\n        if (window.deviceBreakpoints.bpDesktop.matches === false) {\r\n            document.addEventListener('scroll', this._onScrollHide);\r\n            window.addEventListener('resize', this._checkScrollHide);\r\n            this._checkScrollHide();\r\n        }\r\n    }\r\n\r\n    cleanScrollHide() {\r\n        document.removeEventListener('bpDesktop', this._disableDesktopScrollHide);\r\n        document.removeEventListener('bpTablet', this._initScrollHide);\r\n        document.removeEventListener('bpMobile', this._initScrollHide);\r\n        this._disableDesktopScrollHide();\r\n    }\r\n\r\n    disableDesktopScrollHide() {\r\n        document.removeEventListener('scroll', this._onScrollHide);\r\n        window.removeEventListener('resize', this._checkScrollHide);\r\n        this._unhideStickyMenu();\r\n    }\r\n\r\n    checkScrollHide() {\r\n        const footer = document.querySelector('footer .base-footer__secondary');\r\n        if (!footer) { return; }\r\n        const footerBox = footer.getBoundingClientRect();\r\n        if (footerBox.top < window.innerHeight) {\r\n            if (!this.sticky.matches(this._mod('hidden',true)))\r\n                this.sticky.classList.add(this._mod('hidden'));\r\n        } else {\r\n            this._unhideStickyMenu();\r\n        }\r\n    }\r\n\r\n    onScrollHide() {\r\n        if (!this.ticking) {\r\n            window.requestAnimationFrame( () => {\r\n                this._checkScrollHide();\r\n                this.ticking = false;\r\n            });\r\n\r\n            this.ticking = true;\r\n        };\r\n    }\r\n\r\n    unhideStickyMenu() {\r\n        this.sticky.classList.remove(this._mod('hidden'));\r\n    }\r\n}\r\n\r\nregister.registerClass('.base-sticky-menu', StickyMenu);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\n\r\n\r\nclass LayoutMasonry extends Component {\r\n\r\n    constructor(container) {\r\n        super('layout-masonry');\r\n\r\n        this.container = container.querySelector(this._el('container',true));\r\n        this.items = container.getElementsByClassName(this._el('item'));\r\n\r\n        this._init();\r\n    }\r\n\r\n    async _init() {\r\n        const Macy = await import('macy');\r\n        if (this.container)\r\n            this.masonry = new Macy.default({\r\n                container: this.container,\r\n                waitForImages: false,\r\n                mobileFirst: true,\r\n                margin: 24,\r\n                columns: 1,\r\n                breakAt: {\r\n                    1024: {\r\n                        margin: 16,\r\n                        columns: 3,\r\n                    },\r\n                    768:{\r\n                        margin: 24,\r\n                        columns: 2,\r\n                    },\r\n                }\r\n            });\r\n    }\r\n\r\n    addItems(items,updateLayout=true) {\r\n\r\n        if (items) {\r\n\r\n            let newItems = items;\r\n\r\n            if (!Array.isArray(newItems))\r\n                newItems = [items];\r\n\r\n            newItems.forEach((item) => {\r\n                this.container.appendChild(item);\r\n            });\r\n\r\n            if (updateLayout)\r\n                this.update();\r\n        }\r\n    }\r\n\r\n    removeItems(className,updateLayout=true) {\r\n\r\n        className = className || '.elem-card';\r\n        let items = this.container.querySelectorAll(className);\r\n\r\n        items.forEach((item) => {\r\n            this.container.removeChild(item);\r\n        });\r\n\r\n        if (updateLayout)\r\n            this.update();\r\n    }\r\n\r\n    itemsCount() {\r\n        let items = this.container.getElementsByClassName('elem-card');\r\n        return items ? items.length : 0;\r\n    }\r\n\r\n    update() {\r\n\r\n        if (this.masonry) {\r\n            let event = new CustomEvent('resize', { bubbles: true });\r\n            window.dispatchEvent(event);\r\n            this.masonry.recalculate(true);\r\n            return true;\r\n        }\r\n\r\n        return false;\r\n    }\r\n}\r\n\r\nregister.registerClass('.layout-masonry', LayoutMasonry);\r\n","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { setCookie, deleteCookie } from '../../libs/utils';\r\n\r\nclass Prelogin extends Component {\r\n    constructor(container) {\r\n        super('layout-prelogin');\r\n\r\n        this.prelogin = container;\r\n        this.preloginMain = container.querySelector(this._el('main',true));\r\n        this.footerBtn = container.querySelector(this._el('footer-btn',true));\r\n        this.footerCollapse = container.querySelector(this._el('footer-collapse',true));\r\n        this.footerState =  this.footerCollapse.dataset.collapse;\r\n        \r\n        \r\n        this._init();\r\n        this._setFooter();\r\n    }\r\n\r\n    _init() {\r\n        this.preloginMain.querySelectorAll('.elem-login-card__link')\r\n            .forEach((el) => {\r\n\r\n                el.addEventListener('click', (ev) => {\r\n                    this._setLoginCookie(ev);\r\n                });\r\n            });\r\n\r\n        this.footerCollapse.querySelectorAll('.elem-login-card__link')\r\n            .forEach((el) => {\r\n\r\n                el.addEventListener('click', () => {\r\n                   deleteCookie('loginPage');\r\n                });\r\n            });\r\n    }\r\n\r\n    _setFooter() {\r\n        this.footerBtn.addEventListener('click', (ev) => {\r\n            ev.preventDefault();\r\n            this._expandFooter(ev);\r\n        });\r\n    }\r\n\r\n    _expandFooter() {\r\n        if ( this.footerState === \"true\") {\r\n            this._closeFooter();\r\n        } else {\r\n            this._openFooter();\r\n        }\r\n    }\r\n\r\n    _openFooter() {\r\n        let _height =  this.footerCollapse.querySelector('.layout-prelogin__footer-content').scrollHeight;\r\n\r\n        this.footerCollapse.style.height = _height + 'px';\r\n        this.footerCollapse.classList.add('show');\r\n        this.footerBtn.setAttribute('aria-expanded', 'true');\r\n        this.footerCollapse.setAttribute('data-collapse', 'true');\r\n        this.footerState = this.footerCollapse.dataset.collapse;\r\n        \r\n        this.preloginMain.style.overflowY = 'hidden';\r\n        \r\n        window.setTimeout(function(){\r\n            document.querySelector('.layout-prelogin__footer-collapse').style.height = null;\r\n        }, 400);\r\n    }\r\n\r\n    _closeFooter() {\r\n        let _height =  this.footerCollapse.querySelector('.layout-prelogin__footer-content').scrollHeight;\r\n        \r\n        this.footerCollapse.style.height = _height + 'px';\r\n        this.footerCollapse.classList.remove('show');\r\n\r\n        window.setTimeout(function(){\r\n            document.querySelector('.layout-prelogin__footer-collapse').style.height = null;\r\n        },100);\r\n\r\n        this.footerBtn.setAttribute('aria-expanded', 'false');\r\n        this.footerCollapse.setAttribute('data-collapse', 'false');\r\n        this.footerState = this.footerCollapse.dataset.collapse;\r\n        \r\n        this.preloginMain.style.overflowY = 'auto';\r\n    }\r\n\r\n    _setLoginCookie(ev) {\r\n        let path = ev.target.getAttribute('href');\r\n\r\n        let path1 =  \"https://icbp.seceti.it/ICBP-CORPORATE/preparaLogin.do;jsessionid=Ev5UHvX1XuLu7ohIxGot5CQ3.wfatas1\";\r\n        let path2 = \"https://all4you.icbpi.it/psd?portalenexi\";\r\n        let path3 = \"https://servizi.cartasi.it/platea/homePubblica.do\";\r\n    \r\n        // eslint-disable-next-line no-empty\r\n        if (path == path1 || path == path2 || path == path3) {\r\n        } else {\r\n            setCookie('loginPage', path, 365);\r\n        }\r\n    };\r\n}\r\n\r\nregister.registerClass('.layout-prelogin',  Prelogin);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { addOneTimeEventListener } from '../../libs/utils';\r\n\r\n\r\n\r\nclass CustomSelect extends Component {\r\n    \r\n    constructor(container) {\r\n        super('elem-custom-select');\r\n\r\n        this.container = container;\r\n        this.select = container.querySelector('select');\r\n        this.type = this.select.dataset.type;\r\n        this.tabSelect = container.classList.contains(\"widget-tab__dropdown\");\r\n        this.filterSelect = container.classList.contains(\"list-filter\");\r\n        this.formSelect = container.classList.contains(\"form-select\");\r\n        this.localizedLabels = this.container.dataset.i18n ? JSON.parse(this.container.dataset.i18n) : { selectedLabel: 'selected', applyButton: 'apply'};\r\n        this.container.removeAttribute('i18n');\r\n        this.validated = [];\r\n        this.defaultConfig = {\r\n            panelItem: {\r\n                position: 'bottom',\r\n                item: '<span></span>'\r\n            }\r\n        };\r\n        this.filterConfig = {\r\n            panelItem: {\r\n                position: 'bottom',\r\n                item: `<button class=\"custom-select__apply-btn\">${this.localizedLabels.applyButton}<span></span></button>`\r\n            },\r\n            changeOpenerText: false,\r\n            multipleSelectionOnSingleClick: true,\r\n            multipleSelectOpenerText: { labels: false, array: false },\r\n        };\r\n\r\n        if (this.filterSelect || this.formSelect) {\r\n\r\n            this.select.addEventListener('change', (ev) => {\r\n                \r\n                const selectedOptions = this._getSelectedOptions(ev.target);\r\n\r\n                this._selectActive(selectedOptions.length);\r\n                if (this.filterSelect)\r\n                    this._updateApplyButton(selectedOptions.length);\r\n                this._changeSelectLabel(selectedOptions);\r\n\r\n                console.log(selectedOptions)\r\n            });\r\n\r\n            this._init();\r\n\r\n        } if (this.tabSelect) {\r\n\r\n            if (window.deviceBreakpoints.bpMobileTablet.matches === true)\r\n                this._init();\r\n\r\n            window.addEventListener('resize', () => {\r\n                if (window.deviceBreakpoints.bpMobileTablet.matches === true)\r\n                    this._init();\r\n                else\r\n                    this._clean();\r\n            });\r\n        }\r\n        else {\r\n\r\n            if (window.deviceBreakpoints.bpDesktop.matches === true)\r\n                this._init();\r\n\r\n            window.addEventListener('resize', () => {\r\n                if (window.deviceBreakpoints.bpDesktop.matches === true)\r\n                    this._init();\r\n                else\r\n                    this._clean();\r\n            });\r\n        }\r\n    }\r\n    async _init() {\r\n        const Select = await import('select-custom');\r\n        if (!this.selectCustom) {\r\n\r\n            let config = this.filterSelect ? this.filterConfig : this.defaultConfig\r\n\r\n            this.selectCustom = new Select.default(this.select, config);\r\n\r\n            this.selectCustom.onOpen = () => {\r\n                this._sendOpenEvent();\r\n                // this._addScrollCloseMenu();\r\n                if (this.scrollbar)\r\n                    this.scrollbar.update();\r\n            };\r\n\r\n            if (this.filterSelect)\r\n                this.selectCustom.onClose = () => {\r\n                    this._resetValidatedValues();\r\n                };\r\n\r\n            if (this.formSelect)\r\n                this.selectCustom.onClose = () => {\r\n                    this._sendCloseEvent();\r\n                };\r\n\r\n            this.selectCustom.init();\r\n\r\n            this.applyBtn = this.container.querySelector('.custom-select__apply-btn');\r\n\r\n            if (this.applyBtn) {\r\n                this.applyBtn.disabled = true;\r\n                this.applyBtn.setAttribute('disabled','');\r\n\r\n                this.applyBtn.addEventListener('click',() => {\r\n\r\n                    this.validated = this._getSelectedOptions(this.select);\r\n                    this._sendValidatedFiltersEvent({type: this.type, validated: this.validated});\r\n\r\n                    //console.log('APPLY',this.validated);\r\n\r\n                    // call service\r\n                    this._closeSelect();\r\n                });\r\n            }\r\n\r\n            this._addCustomScrollbar();\r\n\r\n            // get query string parameters and update select values\r\n        }\r\n    }\r\n\r\n    async _addCustomScrollbar() {\r\n\r\n        const scrollbar = this.container.querySelector('.custom-select__options');\r\n\r\n        if (scrollbar) {\r\n            const PerfectScrollbar = await import('perfect-scrollbar');\r\n            this.scrollbar = new PerfectScrollbar.default(scrollbar, {\r\n                //scrollYMarginOffset: '11',\r\n                suppressScrollX: true,\r\n                wheelPropagation: false,\r\n                swipeEasing: true\r\n            });\r\n\r\n            this.scrollbar.update();\r\n\r\n            const scrollbarRail = scrollbar.querySelector('.ps__rail-y');\r\n            scrollbarRail.addEventListener('click', (ev) => {\r\n                ev.stopImmediatePropagation();  // Disable select closing on scrollbar click\r\n            });\r\n        }\r\n    }\r\n\r\n    _removeCustomScrollBar() {\r\n\r\n        if (this.scrollbar) {\r\n            this.scrollbar.destroy();\r\n            this.scrollbar = null;\r\n        }\r\n    }\r\n\r\n    _getSelectedOptions(select) {\r\n\r\n        return Array(...select.options).reduce((acc, option) => {\r\n            if (option.selected === true && option.value !== 'placeholder') {\r\n                acc.push(option.value);\r\n            }\r\n            return acc;\r\n        }, []);\r\n    }\r\n\r\n    _selectActive(len) {\r\n\r\n        if (len > 0)\r\n            this.container.classList.add('active');\r\n        else\r\n            this.container.classList.remove('active');\r\n    }\r\n\r\n    _updateApplyButton(num) {\r\n\r\n        if (this.applyBtn) {\r\n\r\n            if (num) {\r\n                this._enableApplyBtn(true,num);\r\n            } else {\r\n                if (!this.validated.length)\r\n                    this._resetApplyBtn();\r\n                else\r\n                    this._enableApplyBtn(true,'');\r\n            }\r\n        }\r\n    }\r\n\r\n    _enableApplyBtn(enable=true,label) {\r\n\r\n        let text = this.applyBtn.querySelector('span');\r\n\r\n        if (label !== undefined && label !== null)\r\n            text.textContent = label !== '' ? ` (${label})` : '';\r\n        \r\n        enable ? this.applyBtn.removeAttribute('disabled') : this.applyBtn.setAttribute('disabled','');\r\n        this.applyBtn.disabled = !enable;\r\n    }\r\n\r\n    _resetApplyBtn() {\r\n\r\n        this._enableApplyBtn(false,'');\r\n    }\r\n\r\n    _changeSelectLabel(selected) {\r\n\r\n        let selectLabel = this.container.querySelector('.custom-select__opener');\r\n        let placeholder = this.select.querySelector('option[value=\"placeholder\"]').textContent;\r\n        let newLabel = placeholder;\r\n\r\n        if (selected.length === 1) {\r\n            newLabel = this.select.querySelector(`option[value=\"${selected[0]}\"]`).textContent;;\r\n        } else if (selected.length > 1) {\r\n            newLabel = `${selected.length} ${placeholder} ${this.localizedLabels.selectedLabel}`;\r\n        }\r\n\r\n        if(selectLabel)\r\n            selectLabel.textContent = newLabel;\r\n    }\r\n\r\n    getSelectType() {\r\n        return this.type;\r\n    }\r\n\r\n    getValidatedFilters() {\r\n        return this.validated;\r\n    }\r\n\r\n    setValidatedFilters(data) {\r\n\r\n        this.resetSelect(true);\r\n\r\n        data.forEach((val) => {\r\n            let option = this.container.querySelector(`.custom-select__option[data-value=\"${val}\"]`);\r\n            if (option)\r\n                option.click();\r\n        });\r\n\r\n        this.applyValidatedFilters();\r\n        this._enableApplyBtn(false);\r\n    }\r\n\r\n    applyValidatedFilters() {\r\n        this.validated = this._getSelectedOptions(this.select);\r\n        this._selectActive(this.validated.length);\r\n        this._updateApplyButton(this.validated.length);\r\n        this._changeSelectLabel(this.validated);\r\n        return this.validated;\r\n    }\r\n\r\n    _resetValidatedValues() {\r\n\r\n        this.resetSelect(false);\r\n\r\n        if (this.validated.length > 0) {\r\n\r\n            this.validated.forEach((val) => {\r\n                const option = this.container.querySelector(`.custom-select__option[data-value=\"${val}\"]`);\r\n                if (option)\r\n                    option.click();\r\n            })\r\n\r\n            this._updateApplyButton(this.validated.length);\r\n            this._changeSelectLabel(this.validated);\r\n        }\r\n    }\r\n\r\n    _sendOpenEvent() {\r\n        const event = new CustomEvent('selectOpen', { bubbles: true });\r\n        this.container.dispatchEvent(event);\r\n    }\r\n\r\n    _sendCloseEvent() {\r\n        const event = new CustomEvent('selectClosed', { bubbles: true });\r\n        this.container.dispatchEvent(event);\r\n    }\r\n\r\n    _sendValidatedFiltersEvent(data) {\r\n        const event = new CustomEvent('filtersValidated', { bubbles: true, detail: { selectValidated: data } });\r\n        this.container.dispatchEvent(event);\r\n    }\r\n\r\n    _addScrollCloseMenu() {\r\n        addOneTimeEventListener(document,'scroll', () => {\r\n            this._closeSelect();\r\n        });\r\n    }\r\n\r\n    _closeSelect() {\r\n        if (this.container.querySelector('.custom-select--open'))\r\n            this.container.querySelector('.custom-select__opener').click();\r\n    }\r\n\r\n    _clean() {\r\n\r\n        if (this.selectCustom) {\r\n            this.selectCustom.destroy();\r\n            this.selectCustom = null;\r\n            this._removeCustomScrollBar();\r\n        }\r\n    }\r\n\r\n    resetSelect(hardreset=true) {\r\n\r\n        let selected = this.container.querySelectorAll('.custom-select__option--selected');\r\n\r\n        selected.forEach((el) => {\r\n            el.classList.remove('custom-select__option--selected');\r\n        });\r\n\r\n        if (hardreset)\r\n            this.validated = [];\r\n\r\n        this.select.selectedIndex = 0;\r\n        this.select.selectedValue = \"\";\r\n\r\n        let event = new CustomEvent('change', { bubbles: true });\r\n        this.select.dispatchEvent(event);\r\n    }\r\n\r\n    // Close Country select if click outside\r\n    _addClickOutside() {\r\n\r\n        let handler = ({target}) => {\r\n            if (!this.container.contains(target)) {\r\n                this._closeSelect();\r\n            }\r\n        };\r\n\r\n        document.body.addEventListener('mousedown', handler);\r\n    }\r\n\r\n    // Reset Country select, when is not visible in viewport, or close it if it's open\r\n    _scrollReset() {\r\n        \r\n        if(window.IntersectionObserver) {\r\n            let target = this.select;\r\n\r\n            let observer = new IntersectionObserver((entries) => {\r\n\r\n                this.validated = this._getSelectedOptions(this.select);\r\n\r\n                entries.forEach(entry => {\r\n                    if(entry.intersectionRatio!=1 && this.validated.length > 0){\r\n\r\n                        this.resetSelect();\r\n                        this._changeSelectLabel(this.validated);\r\n\r\n                    } else if (entry.intersectionRatio!=1 && this.container.querySelector('.custom-select--open') ) {\r\n                        this._closeSelect();\r\n                    }\r\n                });\r\n            }, {threshold: 1});\r\n            observer.observe(target) ;\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-custom-select', CustomSelect);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\nclass FilterTable extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-custom-select-filter-table');\r\n\r\n        this.container = container;\r\n        this.expanded = false;\r\n        this.box = container.querySelector(`${this._el('box', true)}`);\r\n        this.optionContainer = container.querySelector(`${this._el('select-options', true)}`);\r\n        this.optionsInputs = this.optionContainer.querySelectorAll('input');\r\n        this._init();\r\n    }\r\n\r\n    _init() {\r\n        this.box.addEventListener('click', () => {\r\n            this._toggleOptions()\r\n        });\r\n\r\n        document.body.addEventListener('click', event => {\r\n            if (!this.container.contains(event.target)) {\r\n                this.box.classList.remove('selected');\r\n                this.optionContainer.classList.remove('show');\r\n            }\r\n        });\r\n\r\n        this.optionsInputs.forEach(input => {\r\n            input.addEventListener('change', () => {\r\n                this._addFilters();\r\n            });\r\n        });\r\n\r\n        this._addCustomScrollbar();\r\n    }\r\n\r\n    _addFilters() {\r\n        let filters = this.optionContainer.querySelectorAll('input:checked');\r\n        let filtersList = [];\r\n        filters.forEach(filter => {\r\n            filtersList.push(filter.value);\r\n        });\r\n\r\n        if (filtersList.length > 0) {\r\n            this.container.dataset.filters = filtersList.toString();\r\n        } else {\r\n            this.container.dataset.filters = '';\r\n        }\r\n    }\r\n\r\n    _toggleOptions() {\r\n        this.box.classList.toggle('selected');\r\n        this.optionContainer.classList.toggle('show');\r\n    }\r\n\r\n\r\n    async _addCustomScrollbar() {\r\n\r\n        const scrollbar = this.container.querySelector('.elem-custom-select-filter-table__select-options-scroll-wrapper');\r\n\r\n        if (scrollbar) {\r\n            const PerfectScrollbar = await import('perfect-scrollbar');\r\n            this.scrollbar = new PerfectScrollbar.default(scrollbar, {\r\n                //scrollYMarginOffset: '11',\r\n                suppressScrollX: true,\r\n                wheelPropagation: false,\r\n                swipeEasing: true\r\n            });\r\n\r\n            this.scrollbar.update();\r\n\r\n            const scrollbarRail = scrollbar.querySelector('.ps__rail-y');\r\n            scrollbarRail.addEventListener('click', (ev) => {\r\n                ev.stopImmediatePropagation();  // Disable select closing on scrollbar click\r\n            });\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-custom-select-filter-table', FilterTable);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\n//import { triggerWhenVisible } from '../../libs/commons';\r\n\r\n\r\n\r\nclass QuickLinks extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-quick-links');\r\n\r\n        this.container = container.querySelector('.elem-quick-links__items');\r\n\r\n        document.addEventListener('bpMobileTablet', () => this._initSwiper() );\r\n        document.addEventListener('bpDesktop', () => this._destroySwiper() );\r\n\r\n        if (window.deviceBreakpoints.bpMobileTablet.matches === true)\r\n            this._initSwiper();\r\n    }\r\n\r\n    async _initSwiper() {\r\n\r\n        if (!this.swiper) {\r\n            const Swiper = await import('swiper');\r\n            this.swiper = new Swiper.default(this.container, {\r\n                slidesPerView: '1',\r\n                grabCursor: true,\r\n                observer: true,\r\n                watchOverflow: true,\r\n                spaceBetween: 32,\r\n                /*on: {\r\n                    slideChangeTransitionEnd: (swiper) => {\r\n                        const activeSlide = this.container.querySelector('.swiper-slide-active');\r\n                        const title = activeSlide.querySelector(`${this._el('item-title',true)}`);\r\n                        const cta = activeSlide.querySelector('a[href]');\r\n                        //console.log(swiper,activeSlide);\r\n                        this._sendAnalytics(\r\n                            'impression',\r\n                            title.textContent.trim(),\r\n                            cta.href,\r\n                            swiper.realIndex + 1,\r\n                        );\r\n                    }\r\n                }*/\r\n            });\r\n\r\n            /*const ctaList = this.container.querySelectorAll(`${this._el('items',true)} a[href]`);\r\n            ctaList.forEach((item) => {\r\n                item.addEventListener('click', ({target}) => {\r\n                    this._sendAnalytics(\r\n                        'click',\r\n                        target.textContent.trim(),\r\n                        target.href,\r\n                        this.swiper.realIndex + 1,\r\n                    );\r\n                });\r\n            });\r\n\r\n            triggerWhenVisible(this.container, () => {\r\n                const slides = this.container.querySelectorAll(`${this._el('item',true)}`);\r\n\r\n                if (slides) {\r\n                    const title = slides[0].querySelector(`${this._el('item-title',true)}`);\r\n                    const cta = slides[0].querySelector('a[href]');\r\n            \r\n                    this._sendAnalytics(\r\n                        'impression',\r\n                        title.textContent.trim(),\r\n                        cta.href,\r\n                        1,\r\n                    );\r\n                }\r\n            }, true);*/\r\n\r\n        } else {\r\n            this.swiper.update();\r\n        }\r\n    }\r\n\r\n    _destroySwiper() {\r\n\r\n        if (this.swiper) {\r\n            this.swiper.destroy();\r\n            this.swiper = undefined;\r\n        }\r\n    }\r\n\r\n    _sendAnalytics(action,label,url,position) {\r\n\r\n        analytics.sendData({\r\n            'event': 'slider',\r\n            'action': action,           // \"impression\" or \"click\"\r\n            'label': label,             // Product name\r\n            'click_url': url || '',     // Primary CTA href\r\n            'position': position        // Swiper slide position\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-quick-links', QuickLinks);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\n\r\nclass CtaModal extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-cta-modal');\r\n\r\n        this.cta = container;\r\n        this.modalId = container.dataset.target;\r\n        this.ctaId = container.id;\r\n        this.tabTarget = container.dataset.tabTarget;\r\n\r\n        this._init();\r\n    }\r\n\r\n    _init() {\r\n\r\n        this.cta.addEventListener('click', (ev) => {\r\n            ev.preventDefault();\r\n\r\n            try {\r\n                let modal = document.querySelector(`${this.modalId}`);\r\n                if(this.tabTarget){\r\n                    modal.objReference._openModal(this.tabTarget);\r\n                } else {\r\n                    modal.objReference._openModal(this.ctaId);\r\n                }\r\n\r\n\r\n            } catch(err) {\r\n                console.warn(`CTA Modal error on ${this.modalId}:`,err);\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-cta-modal', CtaModal);","import { getURLParams } from './utils';\r\n\r\n\r\n///////////////////////////////////////////////////\r\n//////////// TRIGGER WHEN VISIBLE\r\n//////////// Send event when a single element becomes visibile on viewport\r\n///////////////////////////////////////////////////\r\nexport const triggerWhenVisible = (element,callback,singleUse=false,visThreshold=100) => {\r\n\r\n    const observer = new IntersectionObserver((entries) => {\r\n        if (entries[0].isIntersecting === true) {\r\n            if (singleUse) observer.disconnect();\r\n            callback(entries,observer);\r\n        }\r\n    }, { threshold: [ visThreshold/100 ] });\r\n    \r\n    observer.observe(element);\r\n}\r\n\r\n///////////////////////////////////////////////////\r\n//////////// TRIGGER WHEN NOT VISIBLE\r\n//////////// Send event when a single element becomes not visibile anymore on viewport\r\n///////////////////////////////////////////////////\r\nexport const triggerWhenNotVisible = (element,callback,singleUse=false,visThreshold=100) => {\r\n\r\n    const observer = new IntersectionObserver((entries) => {\r\n        if (entries[0].isIntersecting === false) {\r\n            if (singleUse) observer.disconnect();\r\n            callback(entries,observer);\r\n        }\r\n    }, { threshold: [ visThreshold/100 ] });\r\n    \r\n    observer.observe(element);\r\n}\r\n\r\n\r\n\r\n///////////////////////////////////////////////////\r\n//////////// GET REDIRECT URL PARAMS\r\n//////////// Retrieve query string parameters for Redirect template\r\n///////////////////////////////////////////////////\r\nexport const getRedirectQueryUrlParams = () => {\r\n\r\n    const params = getURLParams();\r\n    const payload = {\r\n        abi: '',\r\n        abibancapartner: '',\r\n        affinity: '',\r\n        cpp: '',\r\n        circuito: '',\r\n        nomeprodottonexi: '',\r\n        idiniziativa: '',\r\n        idunivocoofferta: '',\r\n        procedure_id: '',\r\n        offer_id: '',\r\n        rd: ''\r\n    };\r\n    let counter = 0;\r\n\r\n    console.log('url params:',params);\r\n\r\n    for (let p in params) {\r\n        if (!params[p]) continue;\r\n\r\n        if (payload[p] != undefined) {\r\n            payload[p] = decodeURIComponent( params[p] );\r\n            counter++;\r\n        }\r\n    }\r\n\r\n    console.log('payload:',payload);\r\n\r\n    return counter > 0 ? payload : null;\r\n}\r\n\r\n///////////////////////////////////////////////////\r\n//////////// INJECT REDIRECT ANALYTICS MANDATORY DATA\r\n//////////// Inject mandatory data for Redirect template into analytics data\r\n///////////////////////////////////////////////////\r\nexport const injectMandatoryData = (originalData,mandatoryData) => {\r\n\r\n    const newData = {\r\n        language: document.documentElement.lang,\r\n        procedure_id: mandatoryData.procedure_id || null,\r\n        card: {\r\n            scheme: mandatoryData.circuito || null,\r\n            abi: mandatoryData.abi || null,\r\n            affinity: mandatoryData.affinity || null,\r\n            cpp: mandatoryData.cpp || null,\r\n        },\r\n        campaign_id: mandatoryData.idiniziativa || null,\r\n        offer_id: mandatoryData.offer_id || null\r\n    };\r\n\r\n    return {\r\n        ...originalData,\r\n        ...newData\r\n    };\r\n}\r\n\r\n\r\n\r\n///////////////////////////////////////////////////\r\n//////////// SHARING UTILS\r\n///////////////////////////////////////////////////\r\nexport const shareTwitter = (data) => {\r\n\r\n    let twitterData = '',\r\n        twitterUrl;\r\n\r\n    if (data.text) {\r\n        twitterData = data.title + ' / ' + data.text + \"&url=\" + data.url;\r\n    } else {\r\n        twitterData = data.title + \"&url=\" + data.url;\r\n    }\r\n\r\n    twitterUrl = \"https://twitter.com/intent/tweet?text=\" + twitterData;\r\n\r\n    window.open(twitterUrl,'share-twitter','width=650,height=500');\r\n}\r\n\r\nexport const shareFacebook = (data) => {\r\n\r\n    const appID = '382518490051185';\r\n    const facebookUrl = `https://www.facebook.com/dialog/share?app_id=${appID}&href=${data.url}&display=popup`;\r\n\r\n    window.open(facebookUrl,'share-facebook','width=650,height=500');\r\n}\r\n\r\nexport const shareLinkedin = (data) => {\r\n\r\n    const linkedinUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${data.url}`;\r\n\r\n    window.open(linkedinUrl,'share-linkedin');\r\n}\r\n\r\nexport const shareXing = (data) => {\r\n\r\n    const xingUrl = `https://www.xing.com/social/share/spi?url=${data.url}`;\r\n\r\n    window.open(xingUrl,'share-xing');\r\n}\r\n\r\nexport const shareEmail = (data) => {\r\n\r\n    let emailData = '',\r\n        emailUrl;\r\n\r\n    if (data.text) {\r\n        emailData = data.text + '%0D%0A%0D%0A';\r\n    }\r\n\r\n    // '%20' for cc and bbc is uqual as whitespace\r\n    emailData += \"&subject=\" + data.title + \"&body=\" + data.url;\r\n    emailUrl = \"mailto:?cc=%20&bcc=%20\" + emailData;\r\n\r\n    window.open(emailUrl,'share-email');\r\n}\r\n\r\nexport const copyToClipboard = async (data) => {\r\n\r\n    const clipboardText =  await import(\"clipboard-polyfill/text\");\r\n    let clipboardApi = navigator.clipboard || clipboardText;\r\n\r\n    try {\r\n        clipboardApi\r\n            .writeText( decodeURIComponent(data.url) )\r\n            .then(() => {\r\n                console.log('Card info successfully copied to clipboard!')\r\n                return true;\r\n            })\r\n            .catch(() => {\r\n                console.error('Card info NOT copied to clipboard!')\r\n            });\r\n            \r\n    } catch(err) {\r\n        console.log('Clipboard write not available!');\r\n    }\r\n\r\n    return false;\r\n}\r\n\r\n///////////////////////////////////////////////////\r\n//////////// OPEN AI CHATBOT\r\n///////////////////////////////////////////////////\r\nexport const openAiChatbot = () => {\r\n    const chatbotAppDiv = document.getElementById('chatbotApp');\r\n    if (chatbotAppDiv) {\r\n        const isChatbotOpen = !!chatbotAppDiv.querySelector('#chatbot-container');\r\n        if (isChatbotOpen) {\r\n            return;\r\n        }\r\n        const chatbotTriggerButton = chatbotAppDiv.querySelector('button.chatbot-closed');\r\n        if (chatbotTriggerButton) {\r\n            chatbotTriggerButton.click();\r\n        }\r\n        else {\r\n            console.error(\"Chatbot trigger button not found\");\r\n        }\r\n    } else {\r\n        console.error(\"Chatbot main div not found\");\r\n    }\r\n}","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport {\r\n    shareEmail,\r\n    shareTwitter,\r\n    shareLinkedin,\r\n    shareFacebook,\r\n    shareXing,\r\n    copyToClipboard\r\n} from '../../libs/commons';\r\n\r\n\r\n\r\nclass Card extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-card');\r\n        \r\n        this.container = container.querySelector(`${this._el('container',true)}`);\r\n        this.shareBtn = container.querySelector(`${this._el('open-share-panel',true)}`);\r\n        this.ctaCalendar = container.querySelector(`${this._el('cta',true)}.btn-calendar`);\r\n\r\n        if (this.shareBtn) {\r\n\r\n            let title = this.container.querySelector(`${this._el('title',true)}`) ||\r\n                        this.container.querySelector(`${this._el('name',true)}`),\r\n                text = this.container.querySelector(`${this._el('description',true)}`),\r\n                url = this.container.querySelector(`a${this._el('overlay',true)}`);\r\n            \r\n            this.shareBusy = false;\r\n            this.xingEnabled = Boolean(container.dataset.xingEnabled !== undefined);\r\n            this.cardTitle = title ? title.textContent.trim() : '',\r\n            this.cardText = text ? text.textContent.trim() : '',\r\n            this.cardUrl = url ? url.href : this.shareBtn.dataset.url ? window.location.origin + this.shareBtn.dataset.url : '';\r\n            this.content = container.querySelector(`${this._el('content',true)}`);\r\n\r\n            this.shareBtn.addEventListener('click', (ev) => this._openCloseSharePanel(ev));\r\n        }\r\n\r\n        if (this.ctaCalendar) { // Disabling calendar cta after click\r\n            this.ctaCalendar.addEventListener('click', (ev) => this._disableCta(ev));\r\n        }\r\n    }\r\n\r\n    _openCloseSharePanel(ev) {\r\n\r\n        if (!ev.target.classList.contains('active')) {\r\n\r\n            if (navigator.share && !window.deviceBreakpoints.bpDesktop.matches) {\r\n                this._shareContent({\r\n                    title: this.cardTitle,\r\n                    text: this.cardText,\r\n                    url: this.cardUrl\r\n                });\r\n            } else\r\n                this._openSharePanel();\r\n                \r\n        } else {\r\n            this._closeSharePanel();\r\n        }\r\n    }\r\n\r\n    _openSharePanel() {\r\n        this.content.classList.add('share-opened');\r\n        this.shareBtn.classList.add('active');\r\n        this._addClickOutside();\r\n        this._addShareButtons()\r\n    }\r\n\r\n    _closeSharePanel() {\r\n        this.content.classList.remove('share-opened');\r\n        this.shareBtn.classList.remove('active');\r\n        this._removeShareButtons();\r\n    }\r\n\r\n    _addShareButtons() {\r\n\r\n        let shareContainer = this.container.querySelector(`${this._el('share-container',true)}`),\r\n            overlay = this.container.querySelector(`${this._el('overlay',true)}`),\r\n            btnList = [\r\n                {\r\n                    class: `${this._el('email-share-btn')}`,\r\n                    icon: 'email'\r\n                },\r\n                {\r\n                    class: `${this._el('copy-share-btn')}`,\r\n                    icon: 'copy'\r\n                },\r\n                {\r\n                    class: `${this._el('twitter-share-btn')}`,\r\n                    icon: 'twitter'\r\n                },\r\n                {\r\n                    class: `${this._el('linkedin-share-btn')}`,\r\n                    icon: 'linkedin'\r\n                },\r\n                {\r\n                    class: `${this._el('facebook-share-btn')}`,\r\n                    icon: 'facebook'\r\n                },\r\n            ];\r\n\r\n        if (this.xingEnabled) {\r\n            btnList.push({\r\n                class: `${this._el('xing-share-btn')}`,\r\n                icon: 'xing'\r\n            });\r\n        }\r\n\r\n        if (!shareContainer) {\r\n            shareContainer = document.createElement(\"DIV\");\r\n            shareContainer.className = (`${this._el('share-container')}`);\r\n            shareContainer.addEventListener('click', (ev) => this._handleShareButton(ev));\r\n            this.container.insertBefore(shareContainer,overlay);\r\n        }\r\n\r\n        btnList.forEach((el) => {\r\n            let btn = document.createElement(\"BUTTON\");\r\n            let icon = document.createElement(\"EM\");\r\n            btn.className = `${this._el('share-btn')} ${el.class}`;\r\n            btn.dataset.type = el.icon;\r\n            icon.className = 'icon-' + el.icon;\r\n            btn.appendChild(icon);\r\n            shareContainer.appendChild(btn);\r\n        });\r\n    }\r\n\r\n    _handleShareButton({target: el}) {\r\n\r\n        let shareData = {\r\n            title: encodeURI(this.cardTitle),\r\n            text: encodeURI(this.cardText),\r\n            url: encodeURI(this.cardUrl)\r\n        }\r\n\r\n        switch(el.dataset.type) {\r\n            case 'email':\r\n                shareEmail(shareData);\r\n                break;\r\n            case 'twitter':\r\n                shareTwitter(shareData);\r\n                break;\r\n            case 'linkedin':\r\n                shareLinkedin(shareData);\r\n                break;\r\n            case 'facebook':\r\n                shareFacebook(shareData);\r\n                break;\r\n            case 'xing':\r\n                shareXing(shareData);\r\n                break;\r\n            case 'copy':\r\n                if (copyToClipboard(shareData)) {\r\n                    //show success message\r\n                } else {\r\n                    //show error message\r\n                }\r\n                break;\r\n        }\r\n    }\r\n\r\n    _shareContent(data) {\r\n\r\n        if (!this.shareBusy) {\r\n        \r\n            this.shareBusy = true;\r\n\r\n            try {\r\n                navigator.share({\r\n                    title: encodeURI(data.title),\r\n                    text: encodeURI(data.text),\r\n                    url: encodeURI(data.url)\r\n                }).then(() => {\r\n                    console.log('Thanks for sharing!');\r\n                    this.shareBusy = false;\r\n                })\r\n                .catch(() => {\r\n                    console.warn('Card share FAILED');\r\n                    this.shareBusy = false;\r\n                });\r\n\r\n            } catch(err) {\r\n                console.error('Card share FAILED',err);\r\n                this.shareBusy = false;\r\n            }\r\n        }\r\n    }\r\n\r\n    _removeShareButtons() {\r\n\r\n        let shareContainer = this.container.querySelector(`${this._el('share-container',true)}`);\r\n\r\n        if (shareContainer) {\r\n\r\n            while (shareContainer.firstChild) {\r\n                shareContainer.removeChild(shareContainer.firstChild);\r\n            }\r\n\r\n            this.container.removeChild(shareContainer);\r\n        }\r\n    }\r\n\r\n    _addClickOutside() {\r\n\r\n        let handler = ({target}) => {\r\n            if (!this.container.contains(target)) {\r\n                this._closeSharePanel();\r\n                document.body.removeEventListener('click', handler);\r\n            }\r\n        };\r\n\r\n        document.body.addEventListener('click', handler);\r\n    }\r\n\r\n    _disableCta(ev) {\r\n\r\n        ev.preventDefault();\r\n\r\n        if (!this.ctaTimer) {\r\n\r\n            this.ctaLink = this.ctaLink || ev.target.getAttribute('href');\r\n            ev.target.href = '#';\r\n            ev.target.setAttribute('disabled','true');\r\n            ev.target.setAttribute('aria-disabled','true');\r\n\r\n            this.ctaTimer = setTimeout(() => {\r\n                    ev.target.href = this.ctaLink;\r\n                    ev.target.removeAttribute('disabled');\r\n                    ev.target.removeAttribute('aria-disabled');\r\n                    this.ctaTimer = null;\r\n                }, 6000);\r\n\r\n            window.open(this.ctaLink,'_blank');\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-card', Card);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { getPrevSibling } from '../../libs/utils';\r\n\r\n\r\nclass Accordion extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-accordion');\r\n\r\n        this.accordion = container;\r\n        this.accordion.addEventListener('click', ({target}) => {\r\n            if (target.tagName != 'LABEL') return;\r\n            const checkbox = getPrevSibling(target, 'input[type=checkbox]:not(:checked)');\r\n            if (checkbox)\r\n                this.sendOpenAnalytics(target);\r\n        });\r\n\r\n        if (this.accordion.classList.contains(('selective-mode')))\r\n            this._initSelectiveMode();\r\n    }\r\n\r\n    _initSelectiveMode() {\r\n\r\n        this.accordion.addEventListener('click', ({target:label}) => {\r\n            if (label.tagName != 'LABEL') return;\r\n\r\n            const activeCheckboxes = this.accordion.querySelectorAll('input[type=checkbox]:checked');\r\n\r\n            activeCheckboxes.forEach((cb) => {\r\n                setTimeout(() => { cb.checked = false },0);\r\n            });\r\n        });\r\n    }\r\n\r\n    sendOpenAnalytics(acc) {\r\n\r\n        analytics.sendData({\r\n            event: 'accordion',\r\n            accordion: {\r\n                action: 'open',\r\n                title: acc.textContent.trim()\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\n\r\nregister.registerClass('.elem-accordion', Accordion);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\nexport class Searchbar extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-searchbar');\r\n\r\n        this.searchbar = container;\r\n        this.searchInput = this.searchbar.querySelector('.elem-searchbar__search');\r\n\r\n        this.searchInput.addEventListener('focusin', () => {\r\n            this._focusinSearchEvent(this.searchInput.id);\r\n        });\r\n        \r\n        this.searchInput.addEventListener('keyup', (ev) => {\r\n\r\n            if (this._checkTextLength()) {\r\n                this._enableSearchbar();\r\n                \r\n                if (ev.key === 'Enter') {\r\n                    this._sendSearchEvent( this.searchInput.value );\r\n                }\r\n            } else {\r\n                this._disableSearchbar();\r\n            }\r\n        })\r\n\r\n        this.buttonSearch = this.searchbar.querySelector('.elem-searchbar__icon');\r\n        this.buttonSearch.disabled = false;\r\n        this.buttonSearch.setAttribute('disabled','');\r\n        this.buttonSearch.addEventListener('click', () => {\r\n            if (this._checkTextLength())\r\n                this._sendSearchEvent( this.searchInput.value );\r\n        });\r\n\r\n        document.addEventListener('resetSearchbar', this._resetSearchbar.bind(this), false);\r\n        document.addEventListener('updateSearchValue', this._updateSearchbarValue.bind(this), false);\r\n    }\r\n\r\n    _checkTextLength() {\r\n        return this.searchInput.value.length >= 3;\r\n    }\r\n\r\n    _focusinSearchEvent(searchInputId) {\r\n        const event = new CustomEvent('focusinSearch', {\r\n            bubbles: true,\r\n            detail: {\r\n                searchInputId: searchInputId\r\n            }\r\n        });\r\n        document.dispatchEvent(event);\r\n    }\r\n\r\n    _sendSearchEvent(query) {\r\n        const event = new CustomEvent('sendSearch', {\r\n            bubbles: true,\r\n            detail: {\r\n                searchQuery: query\r\n            }\r\n        });\r\n        document.dispatchEvent(event);\r\n    }\r\n\r\n    _updateSearchbarValue({detail}) {\r\n        this.searchInput.value = detail.searchQuery;\r\n        this._enableSearchbar();\r\n    }\r\n\r\n    _resetSearchbar() {\r\n        this.searchInput.value = '';\r\n        this._disableSearchbar();\r\n    }\r\n\r\n    _enableSearchbar() {\r\n        this.buttonSearch.disabled = false;\r\n        this.buttonSearch.removeAttribute('disabled');\r\n    }\r\n\r\n    _disableSearchbar() {\r\n        this.buttonSearch.disabled = true;\r\n        this.buttonSearch.setAttribute('disabled','');\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-searchbar', Searchbar);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\n\r\nclass Iframe extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-iframe');\r\n\r\n        this.container = container;\r\n        this.iframe = this.container.querySelector('iframe');\r\n\r\n        switch (true) {\r\n            case window.deviceBreakpoints.bpMobile.matches:\r\n                this._setIframe('mobile');\r\n                break;\r\n            case window.deviceBreakpoints.bpTablet.matches:\r\n                this._setIframe('tablet');\r\n                break;\r\n            case window.deviceBreakpoints.bpDesktop.matches:\r\n                this._setIframe('desktop');\r\n                break;\r\n        }\r\n\r\n        window.addEventListener(\"message\",\r\n            (event) => {\r\n                if (!event.data) return;\r\n                if (!event.data.height) return;\r\n                this._setIframeHeight( parseInt(event.data.height) || 1600 );\r\n            },\r\n            false\r\n        );\r\n\r\n        document.addEventListener('bpDesktop', () => {\r\n            this._setIframe('desktop');\r\n        });\r\n\r\n        document.addEventListener('bpTablet', () => {\r\n            this._setIframe('tablet');\r\n        });\r\n\r\n        document.addEventListener('bpMobile', () => {\r\n            this._setIframe('mobile');\r\n        });\r\n\r\n        if (this.iframe.dataset.lazySrc)\r\n            this.iframe.setAttribute('src',this.iframe.dataset.lazySrc);  // Init lazy loading of iframe content\r\n    }\r\n\r\n    _setIframe(deviceType) {\r\n\r\n        const iframeWidth = this.iframe.dataset[deviceType + 'Width'] || this.iframe.dataset['desktopWidth'] || '100%';\r\n        const iframeScrolling = this.iframe.dataset[deviceType + 'Scrolling'] || this.iframe.dataset['desktopScrolling'] || 'no';\r\n\r\n        this.iframe.setAttribute('width',iframeWidth);\r\n        this.iframe.setAttribute('scrolling',iframeScrolling);\r\n        this._setIframeHeight(null,deviceType);\r\n    }\r\n\r\n    _setIframeHeight(height,deviceType) {\r\n\r\n        const iframeHeight = height || this.iframe.dataset[deviceType + 'Height'] || this.iframe.dataset['desktopHeight'] || '2000';\r\n\r\n        this.iframe.setAttribute('height',iframeHeight);\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-iframe', Iframe);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\nclass IconAnim extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-icon-anim');\r\n\r\n        if (window.deviceBreakpoints.bpDesktop.matches === false)\r\n            return;\r\n\r\n        this.el = container;\r\n        this.activation = container.dataset.activation || 'mouseover';\r\n        this.noCompletion = !!container.dataset.nocompletion;\r\n\r\n        this._init();\r\n    }\r\n\r\n    async _init() {\r\n\r\n        let iconName;\r\n\r\n        for (let cl of this.el.classList) {\r\n            if (cl.startsWith('icon-')) {\r\n                iconName = cl.replace('icon-', '');\r\n            }\r\n        }\r\n\r\n        if (!this.lottie && iconName) {\r\n            await this._loadIcons();\r\n\r\n            if (this.el.classList.contains('dark'))\r\n                iconName += 'Dark';\r\n\r\n            let params = {\r\n                container: this.el,\r\n                renderer: 'svg',\r\n                loop: false,\r\n                autoplay: false,\r\n                animationData: this.iconsData.get(iconName)\r\n            };\r\n\r\n            const Lottie = await import('lottie-web/build/player/lottie_light');\r\n            this.lottie = Lottie.loadAnimation(params);\r\n            this.lottie\r\n                .addEventListener('DOMLoaded', () => {\r\n\r\n                    this.el.classList.add(`${this._mod('init')}`);\r\n\r\n                    try {\r\n                        this.el.style.width = this.lottie.renderer.globalData.compSize.w + 'px';\r\n                        this.el.style.height = this.lottie.renderer.globalData.compSize.h + 'px';\r\n                    } catch (err) {\r\n                        console.log('Lottie set icon size FAILED', err);\r\n                    }\r\n\r\n                    // Go to last frame, play and stop\r\n                    this.lottie.goToAndPlay(this.lottie.getDuration(true), true);\r\n                });\r\n\r\n            this.el\r\n                .parentElement\r\n                .addEventListener(this.activation, () => this._play());\r\n        }\r\n    }\r\n\r\n    _play() {\r\n\r\n        if (!this.noCompletion)\r\n            if (!this.lottie.isPaused)\r\n                return;\r\n\r\n        if (this.lottie)\r\n            this.lottie.goToAndPlay(0, true);\r\n    }\r\n\r\n    async _loadIcons() {\r\n        this.iconsData = new Map();\r\n        this.iconsData.set('globe_closed', await import('../../assets/lottie/globe_closed.json'));\r\n        this.iconsData.set('letter', await import('../../assets/lottie/letter_light.json'));\r\n        this.iconsData.set('letterDark', await import('../../assets/lottie/letter_dark.json'));\r\n        this.iconsData.set('book', await import('../../assets/lottie/book_light.json'));\r\n        this.iconsData.set('bookDark', await import('../../assets/lottie/book_dark.json'));\r\n        this.iconsData.set('pdf', await import('../../assets/lottie/pdf_light.json'));\r\n        this.iconsData.set('pdfDark', await import('../../assets/lottie/pdf_dark.json'));\r\n        this.iconsData.set('play', await import('../../assets/lottie/play_light.json'));\r\n        this.iconsData.set('playDark', await import('../../assets/lottie/play_dark.json'));\r\n        this.iconsData.set('microphone', await import('../../assets/lottie/microphone_light.json'));\r\n        this.iconsData.set('microphoneDark', await import('../../assets/lottie/microphone_dark.json'));\r\n        this.iconsData.set('download', await import('../../assets/lottie/download_light.json'));\r\n        this.iconsData.set('downloadDark', await import('../../assets/lottie/download_dark.json'));\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-icon-anim', IconAnim);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\nclass FlipCard extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-flip-card');\r\n\r\n        this.container = container;\r\n        this.flipCardContainer = this.container.querySelector(`${this._el('container', true)}`);\r\n        this.flipCards = this.flipCardContainer.querySelectorAll(`${this._el('content', true)}`);\r\n        this.flipCardButtons = this.flipCardContainer.querySelectorAll(`${this._el('button', true)}`);\r\n\r\n        this.flipCardButtons.forEach((el) => {\r\n            el.addEventListener('click', () => {\r\n                this._flipY();\r\n            });\r\n        });\r\n    }\r\n\r\n    _flipY() {\r\n        this.flipCardContainer.classList.toggle('flip-y');\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-flip-card', FlipCard);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\nexport class LottieAnimation extends Component {\r\n\r\n    constructor(container) {\r\n        super('elem-lottie-animation');\r\n\r\n        this.container = container;\r\n        this.lottieAnimations = this.container.querySelectorAll('.lottie');\r\n\r\n        this.mobileClass = `${this._el('mobile',true)}`;\r\n        this.tabletClass = `${this._el('tablet',true)}`;\r\n        this.desktopClass = `${this._el('desktop',true)}`;\r\n\r\n        this.lottieAnimationMobile = this.container.querySelector(this.mobileClass);\r\n        this.lottieAnimationTablet = this.container.querySelector(this.tabletClass);\r\n        this.lottieAnimationDesktop = this.container.querySelector(this.desktopClass);\r\n\r\n        this.activeAnimation;\r\n        this.lottieAnimationPlayer;\r\n\r\n        this._init();\r\n    }\r\n\r\n    async _init() {\r\n        this.lottieAnimationPlayer = await import('lottie-web/build/player/lottie_light');\r\n\r\n        document.addEventListener('bpMobile', () => {\r\n            this._setActiveAnimation(this.lottieAnimationMobile, this.mobileClass);\r\n        });\r\n        document.addEventListener('bpTablet', () => {\r\n            this._setActiveAnimation(this.lottieAnimationTablet, this.tabletClass);\r\n        });\r\n        document.addEventListener('bpDesktop', () => {\r\n            this._setActiveAnimation(this.lottieAnimationDesktop);\r\n        });\r\n\r\n        this._setDeviceActiveAnimation();\r\n\r\n        document.addEventListener('scroll', () => {\r\n            this._checkActiveAnimationPlayState();\r\n        });\r\n    }\r\n\r\n    _setDeviceActiveAnimation() {\r\n        if (window.deviceBreakpoints.bpMobile.matches === true) {\r\n            this._setActiveAnimation(this.lottieAnimationMobile, this.mobileClass);\r\n            return;\r\n        }\r\n\r\n        if (window.deviceBreakpoints.bpTablet.matches === true) {\r\n            this._setActiveAnimation(this.lottieAnimationTablet, this.tabletClass);\r\n            return;\r\n        }\r\n\r\n        this._setActiveAnimation(this.lottieAnimationDesktop);\r\n        return;\r\n    }\r\n\r\n    _setActiveAnimation(animation, fallbackClass = null) {\r\n        if (!animation) {\r\n            // Fallback to Desktop Animation\r\n            animation = this.lottieAnimationDesktop;\r\n            if (!animation) {\r\n                return;\r\n            }\r\n\r\n            if (fallbackClass) {\r\n                animation.classList.add(fallbackClass.substring(1));\r\n            }\r\n        }\r\n\r\n        if (this.activeAnimation === animation) {\r\n            return;\r\n        }\r\n\r\n        if (this.activeAnimation) {\r\n            this.lottieAnimationPlayer.stop(this._getLottieAnimationName(this.activeAnimation));\r\n        }\r\n\r\n        this.activeAnimation = animation;\r\n        this._checkActiveAnimationPlayState();\r\n    }\r\n\r\n    _playActiveAnimation() {\r\n        this.lottieAnimationPlayer.play(this._getLottieAnimationName(this.activeAnimation));\r\n    }\r\n\r\n    _getLottieAnimationName(lottieAnimation) {\r\n        if (lottieAnimation) {\r\n            return lottieAnimation.getAttribute('data-name');\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    _checkActiveAnimationPlayState() {\r\n        if (!this.activeAnimation) {\r\n            return;\r\n        }\r\n\r\n        if (this._isInViewPort(this.activeAnimation)) {\r\n            this._playActiveAnimation();\r\n        }\r\n    }\r\n\r\n    _isInViewPort(element) {\r\n        return element.getBoundingClientRect().top < window.innerHeight;\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-lottie-animation', LottieAnimation);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\nclass MediaVideo extends Component {\r\n\r\n    constructor(container) {\r\n        super('media-video');\r\n\r\n        this.container = container;\r\n        this.iframe = this.container.querySelector('iframe');\r\n        this.button = this.container.querySelector(this._el('play-button',true));\r\n\r\n        if (this.button) {\r\n            if (this.iframe.dataset.src && this.iframe.dataset.src != '') {\r\n                this.button.classList.add('visible');\r\n                this.button.addEventListener('click', () => {\r\n                    this._loadVideo();\r\n                });\r\n            }\r\n        }\r\n    }\r\n\r\n    _loadVideo() {\r\n        this.iframe.src = this.iframe.dataset.src;\r\n        this.container.classList.add('video-playing');\r\n    }\r\n}\r\n\r\nregister.registerClass('.media-video', MediaVideo);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { setBlockScroll, removeBlockScroll } from '../base-page';\r\nclass Modal extends Component {\r\n    constructor(container) {\r\n        super('widget-modal');\r\n\r\n        this.modal = container;\r\n        this.modalId = container.id;\r\n        this.modalBody = this.modal.querySelector(this._el('body',true));\r\n        this.backdrop = container.querySelector(this._el('backdrop',true));\r\n        this.btnClose = container.querySelector(this._el('close',true));\r\n        this.filters = container.querySelector(this._el('filters',true));\r\n        this.modalType = container.dataset.modalType;\r\n\r\n        this._addCustomScrollBar = this.addCustomScrollBar.bind(this);\r\n        this._removeCustomScrollBar = this.removeCustomScrollBar.bind(this);\r\n\r\n        if (this.modalType == 'two-steps') {\r\n            this.firstStep = container.querySelector('#first-step');\r\n            this.secondStep = container.querySelector('#second-step');\r\n            this.btnBack = container.querySelector(this._el('back',true));\r\n        }\r\n\r\n        if (this.modalType == 'press') {\r\n            this.btnDownload = container.querySelector('.btn-download');\r\n        }\r\n\r\n        if (this.modalType == 'filters' && this.filters) {\r\n            this.filtersList = this.filters.querySelectorAll('.widget-accordion-select');\r\n            this.resetButton = container.querySelector(this._el('reset-filters',true));\r\n            this.applyBtn = this.modal.querySelector(this._el('apply-filters',true));\r\n        }\r\n\r\n        this._modalInit();\r\n    }\r\n\r\n    // Init Modal\r\n    _modalInit() {\r\n\r\n        this.modal\r\n            .querySelectorAll(`${this._el('cta',true)}, ${this._el('close',true)}, .elem-cta`)\r\n            .forEach((el) => {\r\n                el.addEventListener('click', (ev) => {\r\n                    this.sendAnalytics('click', ev.target.textContent.trim() || ev.target.getAttribute('aria-label'));\r\n                });\r\n            });\r\n\r\n        if (this.modalType != 'two-steps') {\r\n            this.btnClose\r\n                .addEventListener('click', (ev) => {\r\n                    ev.preventDefault();\r\n                    this._closeModal();\r\n                });\r\n        }\r\n\r\n        if (this.modalType == 'two-steps' || this.modalType == 'press') {\r\n            this.modal\r\n                .querySelector(`${this._el('footer',true)} .btn-close`)\r\n                .addEventListener('click', (ev) => {\r\n                    ev.preventDefault();\r\n                    this._closeModal();\r\n                });\r\n        }\r\n\r\n        if (this.modalType == 'two-steps') {\r\n\r\n            let modalsObj = JSON.parse(sessionStorage.getItem('modals')) || {};\r\n\r\n            if (!modalsObj[this.modalId]) { //if cookie is not present open the modal\r\n                this._openModalOnLoad();\r\n            }\r\n\r\n            this.firstStep\r\n                .querySelector(`${this._el('form-button',true)} button`)\r\n                .addEventListener('click', (ev) => {\r\n                    ev.preventDefault();\r\n                    this._nextStep();\r\n                });\r\n\r\n            this.btnBack.addEventListener('click', () => this._backStep());\r\n\r\n            this.modal\r\n                .querySelector(`${this._el('footer',true)} .btn-close`)\r\n                .addEventListener('click', () => {\r\n                    modalsObj[this.modalId] = true;\r\n                    sessionStorage.setItem(\"modals\", JSON.stringify(modalsObj));\r\n                });\r\n        }\r\n\r\n        if (this.modalType == 'press') {\r\n\r\n            let cta = document.querySelector(\"[data-target='\" + '#' + this.modalId + \"']\");\r\n            let ctaId = cta.id;\r\n\r\n            if (this.btnDownload)\r\n                this.btnDownload\r\n                    .addEventListener('click', (ev) => {\r\n\r\n                        let dataUrl = ev.target.getAttribute('href');\r\n                        this.sendDownloadAnalytics(dataUrl);\r\n                        \r\n                        let pressModal = JSON.parse(sessionStorage.getItem('pressId')) || {};\r\n                        pressModal[ctaId] = true;\r\n                        sessionStorage.setItem(\"pressId\", JSON.stringify(pressModal));\r\n\r\n                        this._closeModal();\r\n                    });\r\n        }\r\n\r\n        if (this.modalType == 'filters') {\r\n\r\n            if (this.filtersList)\r\n                this.filtersList.forEach((acc) => {\r\n                    acc.addEventListener('accordionItemSelected',() => {\r\n                        this._updateFilterApplyBtn();\r\n                    });\r\n                    acc.addEventListener('accordionOpening',() => {\r\n                        this._closeInactiveAccordions();\r\n                    });\r\n                });\r\n\r\n            if (this.applyBtn) {\r\n                this.applyBtn.disabled = true;\r\n                this.applyBtn.setAttribute('disabled','');\r\n\r\n                this.applyBtn.addEventListener('click',() => {\r\n\r\n                    let validatedCount = 0;\r\n                    this.validated = [];\r\n\r\n                    this.filtersList.forEach((fl) => {\r\n                        let validatedData = fl.objReference.applyValidatedFilters();\r\n                        validatedCount += validatedData.length;\r\n\r\n                        if (validatedData.length)\r\n                            this.validated.push({type: fl.objReference.type, validated: validatedData});\r\n                    });\r\n\r\n                    console.log('APPLY',this.validated,validatedCount);\r\n                    \r\n                    this._sendValidatedFiltersEvent(this.validated);\r\n                    this._enableApplyBtn(false);\r\n                    this._closeModal();\r\n                });\r\n            }\r\n            \r\n            if (this.resetButton) {\r\n\r\n                this.resetButton.addEventListener('click',() => {\r\n                    this.resetAccordionFilters();\r\n                    this._resetApplyBtn();\r\n                    this._sendFiltersResetEvent();\r\n                    this._closeModal();\r\n                });\r\n            }\r\n        }\r\n\r\n        if (this.modalType == 'lang-switcher') {\r\n            const buttonsContainer = this.modal.querySelector(this._el('buttons',true));\r\n            \r\n            if (buttonsContainer.children.length > 3)\r\n                buttonsContainer.classList.add('two-columns');\r\n        }\r\n\r\n        document.removeEventListener('bpMobileTablet', this._removeCustomScrollBar);\r\n        document.addEventListener('bpMobileTablet', this._removeCustomScrollBar);\r\n        document.removeEventListener('bpDesktop', this._addCustomScrollBar);\r\n        document.addEventListener('bpDesktop', this._addCustomScrollBar);\r\n        document.removeEventListener('orientLandscape', this._closeModal);\r\n        document.addEventListener('orientLandscape', this._closeModal);\r\n    }\r\n\r\n    // Optional cid = CTA ID\r\n    _openModal(cid) {\r\n\r\n        if (this.modalType == 'press') {\r\n\r\n            let pressModal = JSON.parse(sessionStorage.getItem('pressId')) || {};\r\n\r\n            if (pressModal[cid]) { // if a cookie is found download the file\r\n                this.btnDownload.click();\r\n                return; // do not open modal\r\n            }\r\n        }\r\n\r\n        setBlockScroll();\r\n        this.modalBody.scrollTo(0, 0);\r\n        this.modal.classList.remove('hide');\r\n        this.modal.classList.add(\"show\");\r\n        this._addClickBackdrop();\r\n\r\n        if (this.modalType == 'video')\r\n            this._loadVideo();\r\n\r\n        if (window.deviceBreakpoints.bpDesktop.matches === true)\r\n            this.addCustomScrollBar();\r\n\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n    _openModalOnLoad() {\r\n\r\n        setBlockScroll();\r\n        this.modal.classList.add(\"show\");\r\n        \r\n        if (window.deviceBreakpoints.bpDesktop.matches === true)\r\n            this.addCustomScrollBar();\r\n\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n    _closeModal() {\r\n\r\n        if (this.modal)\r\n            if (this.modal.classList.contains(\"show\")) {\r\n\r\n                this.modal.classList.remove('show');\r\n                this.modal.classList.add('hide');\r\n                removeBlockScroll();\r\n\r\n                this.removeCustomScrollBar();\r\n                this._removeClickBackdrop();\r\n\r\n                if (this.modalType == 'two-steps') {\r\n                    this._backStep();\r\n                }\r\n\r\n                if (this.modalType == 'video') {\r\n                    this._pauseVideo();\r\n                    // this._playCarousel();\r\n                }\r\n\r\n                if (this.modalType == 'filters') {\r\n                    this._closeInactiveAccordions();\r\n                    this._restoreValidatedFilters();\r\n                    this._updateFilterApplyBtn();\r\n                    this._enableApplyBtn(false);\r\n                }\r\n            }\r\n    }\r\n\r\n    _addClickBackdrop() {\r\n        this.backdrop.addEventListener('click', this._clickBackdrop);\r\n    }\r\n\r\n    _removeClickBackdrop() {\r\n        this.backdrop.removeEventListener('click', this._clickBackdrop);\r\n    }\r\n\r\n    _clickBackdrop({target}) {\r\n        console.log(target);\r\n        target\r\n            .parentElement\r\n            .objReference\r\n            ._closeModal();\r\n    }\r\n\r\n    async addCustomScrollBar() {\r\n\r\n        const modalBody = this.modal.querySelector(this._el('body',true));\r\n        const PerfectScrollbar = await import('perfect-scrollbar'); \r\n        this.scrollbar = new PerfectScrollbar.default(modalBody, {\r\n            suppressScrollX: true,\r\n            wheelPropagation: false,\r\n            swipeEasing: true\r\n        });\r\n\r\n        this.scrollbar.update();\r\n    }\r\n\r\n    removeCustomScrollBar() {\r\n\r\n        if (this.scrollbar) {\r\n            this.scrollbar.destroy();\r\n            this.scrollbar = null;\r\n        }\r\n    }\r\n\r\n    _nextStep() {\r\n        this.btnBack.classList.add('show');\r\n        this.firstStep.classList.remove('active');\r\n        this.secondStep.classList.add('active');\r\n    }\r\n\r\n    _backStep() {\r\n        this.btnBack.classList.remove('show');\r\n        this.firstStep.classList.add('active');\r\n        this.secondStep.classList.remove('active');\r\n    }\r\n\r\n    async _loadVideo() {\r\n        \r\n        let iframe = this.modal.querySelector('iframe');\r\n        if(iframe.src !== iframe.dataset.src) {\r\n            iframe.src = iframe.dataset.src;\r\n        }\r\n        \r\n\r\n        // this._stopCarousel();\r\n\r\n        // try {\r\n        //     const VimeoPlayer = await import('@vimeo/player');\r\n        //     this.videoPlayer = this.videoPlayer || new VimeoPlayer(iframe);\r\n        //     this.videoPlayer.play();\r\n        // } catch(err) {\r\n        //     // load the video iframe\r\n        //     iframe.src = iframe.dataset.src;\r\n        // }\r\n    }\r\n\r\n    async _pauseVideo() {\r\n\r\n        let iframe = this.modal.querySelector('iframe');\r\n\r\n        try {\r\n            const VimeoPlayer = await import('@vimeo/player');\r\n            this.videoPlayer = this.videoPlayer || new VimeoPlayer.default(iframe);\r\n            this.videoPlayer.pause();\r\n        } catch(err) {\r\n            console.warn('Pause video ERROR',err);\r\n        }\r\n    }\r\n\r\n    _stopCarousel() {\r\n        \r\n        let carousels = document.querySelectorAll('.widget-carousel');\r\n\r\n        carousels.forEach((el) => {\r\n            el.objReference._pauseSlideshow();\r\n        });\r\n    }\r\n\r\n    _playCarousel() {\r\n        \r\n        let carousels = document.querySelectorAll('.widget-carousel');\r\n\r\n        carousels.forEach((el) => {\r\n            el.objReference._playSlideshow();\r\n        });\r\n    }\r\n\r\n    _closeInactiveAccordions() {\r\n        this.filtersList.forEach((acc) => {\r\n            if (acc.objReference)\r\n                acc.objReference.closeAccordion();\r\n        });\r\n    }\r\n\r\n    _restoreValidatedFilters() {\r\n        this.filtersList.forEach((acc) => {\r\n            if (acc.objReference)\r\n                acc.objReference.resetValidatedValues();\r\n        });\r\n    }\r\n\r\n    _sendValidatedFiltersEvent(data) {\r\n        let event = new CustomEvent('filtersValidated', { bubbles: true, detail: { accordionValidated: data } });\r\n        this.modal.dispatchEvent(event);\r\n    }\r\n\r\n    _sendFiltersResetEvent() {\r\n        let event = new CustomEvent('filtersReset', { bubbles: true });\r\n        this.modal.dispatchEvent(event);\r\n    }\r\n\r\n    getValidatedFiltersCount() {\r\n\r\n        let validated = 0;\r\n\r\n        this.filtersList.forEach((acc) => {\r\n            if (acc.objReference)\r\n                validated += acc.objReference.getValidatedFiltersCount();\r\n        });\r\n\r\n        return validated;\r\n    }\r\n\r\n    setAccordionFilters(data) {\r\n        //console.log('updating accordions',data)\r\n        this.filtersList.forEach((acc) => {\r\n            if (acc.objReference)\r\n                if (data.type === acc.objReference.type)\r\n                    acc.objReference.setValidatedFilters(data.validated);\r\n        });\r\n\r\n        this._enableApplyBtn(false);\r\n    }\r\n\r\n    _updateFilterApplyBtn() {\r\n\r\n        if (this.applyBtn) {\r\n\r\n            let total = 0;\r\n            let validated = 0;\r\n\r\n            this.filtersList.forEach((fl) => {\r\n                let acc = fl.objReference;\r\n                total += acc.getSelectedFilters().length;\r\n                validated += acc.getValidatedFiltersCount();\r\n            });\r\n\r\n            if (total) {\r\n                this._enableApplyBtn(true,total);\r\n            } else {\r\n                if (!validated) this._resetApplyBtn();\r\n                else this._enableApplyBtn(true,'');\r\n            }\r\n        }\r\n    }\r\n\r\n    _enableApplyBtn(enable=true,label) {\r\n\r\n        let text = this.applyBtn.querySelector('span');\r\n\r\n        if (label !== undefined && label !== null)\r\n            text.textContent = label !== '' ? ` (${label})` : '';\r\n        \r\n        enable ? this.applyBtn.removeAttribute('disabled') : this.applyBtn.setAttribute('disabled','');\r\n        this.applyBtn.disabled = !enable;\r\n    }\r\n\r\n    _resetApplyBtn() {\r\n\r\n        this._enableApplyBtn(false,'');\r\n    }\r\n\r\n    showResetButton(show=true) {\r\n        if (show)\r\n            this.resetButton.classList.remove('hidden');\r\n        else\r\n            this.resetButton.classList.add('hidden');\r\n    }\r\n\r\n    resetAccordionFilters() {\r\n\r\n        this.filtersList.forEach((fl) => {\r\n            fl.objReference.resetAccordion();\r\n        });\r\n    \r\n        this._resetApplyBtn();\r\n    }\r\n\r\n    sendAnalytics(action,cta=null) {\r\n\r\n        const title = this.modal.querySelector(this._el('title',true)) || this.modal.querySelector(this._el('header-title',true)),\r\n            content = this.modal.querySelector(this._el('step.active',true)) || this.modal.querySelector(this._el('body',true));\r\n        let ctaList = null;\r\n\r\n        //if (!cta)    // Creating an array with cta labels\r\n        ctaList = [...this.modal.querySelectorAll(`${this._el('cta',true)}, .elem-cta`)]\r\n                        .filter((el) => {\r\n                            if (el.offsetParent !== null)\r\n                                return true;    // CTA is visible\r\n                            return false;\r\n                        })\r\n                        .map((el) => el.textContent.trim());\r\n\r\n        analytics.sendData({\r\n            'event': 'popup',\r\n            'language': document.documentElement.lang,\r\n            'type': null,\r\n            'popup': {\r\n                'action': action,\r\n                'elements': {\r\n                    'title': title ? title.textContent.trim() : null,\r\n                    'content': content ? content.textContent.replace(/[\\n\\r]+|[\\s]{2,}/g, ' ').trim() : null,\r\n                    'name': null,\r\n                    'cta': {\r\n                        'existing': ctaList || null,\r\n                        'clicked': cta\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    sendDownloadAnalytics(filepath) {\r\n\r\n        let fileName = filepath ? filepath.replace(/^.*[\\\\/]/, '').split('.')[0] : '',\r\n            fileExt = filepath ? filepath.split('.').pop() : '';\r\n\r\n        analytics.sendData({\r\n            'event': 'download',\r\n            'language': document.documentElement.lang,\r\n            'download': {\r\n                'action': 'completed',\r\n                'file': {\r\n                    'name': fileName,\r\n                    'category': '',\r\n                    'ext': fileExt\r\n                },\r\n                'isBulk': 'false'\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-modal', Modal);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { setBlockScroll, removeBlockScroll } from '../base-page';\r\n\r\nclass CircuitModal extends Component {\r\n    constructor(container) {\r\n        super('widget-modal-circuit');\r\n\r\n        this.modal = container;\r\n        this.modalId = container.id;\r\n        this.modalBody = this.modal.querySelector(this._el('body',true));\r\n        this.backdrop = container.querySelector(this._el('backdrop',true));\r\n        this.btnClose = container.querySelector(this._el('close',true));\r\n        this.ctaLink = container.querySelector(this._el('cta',true));\r\n\r\n        this.circuitParam = 'circuito';\r\n        this.dynamicCircuitRegex = new RegExp(this.circuitParam + '=(([^&]*)(?=&)|.*$)');\r\n\r\n        this._modalInit();\r\n    }\r\n\r\n    // Init Modal\r\n    _modalInit() {\r\n\r\n        this._initCircuitSelection();\r\n        this.modal\r\n            .querySelectorAll(`${this._el('cta',true)}, ${this._el('close',true)}, .elem-cta`)\r\n            .forEach((el) => {\r\n                el.addEventListener('click', (ev) => {\r\n                    this.sendAnalytics('click', ev.target.textContent.trim() || ev.target.getAttribute('aria-label'));\r\n                });\r\n            });\r\n\r\n\r\n        this.btnClose\r\n            .addEventListener('click', (ev) => {\r\n                ev.preventDefault();\r\n                this._closeModal();\r\n            });\r\n\r\n    }\r\n\r\n    _initCircuitSelection() {\r\n        const circuitOptions = this.modal.querySelectorAll('.widget-modal-circuit__option');\r\n        const changeColorButton = this.modal.querySelector('.widget-modal-circuit__cta');\r\n\r\n        circuitOptions.forEach(option => {\r\n            option.addEventListener('click', () => {\r\n                circuitOptions.forEach(opt => opt.classList.remove('active'));\r\n                option.classList.add('active');\r\n                const isOptionActive = [...circuitOptions].some(opt => opt.classList.contains('active'));\r\n                if (isOptionActive) {\r\n                    changeColorButton.classList.add('cta-change-color');\r\n                    this._appendDataCircuit(option);\r\n                } else {\r\n                    changeColorButton.classList.remove('cta-change-color');\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    _openModal(ctaHref) {\r\n        setBlockScroll();\r\n        this.modalBody.scrollTo(0, 0);\r\n        this.modal.classList.add(\"show\");\r\n        this.modal.classList.remove('hide');\r\n        this._addClickBackdrop();\r\n\r\n        if (ctaHref) {\r\n            this.ctaLink.href = ctaHref;\r\n        }\r\n\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n    _openModalOnLoad() {\r\n        setBlockScroll();\r\n        this.modal.classList.add(\"show\");\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n    _closeModal() {\r\n        this.modal.classList.remove('show');\r\n        this.modal.classList.add('hide');\r\n        this._resetCircuitSelection();\r\n        removeBlockScroll();\r\n    }\r\n\r\n    _resetCircuitSelection() {\r\n        const circuitOptions = this.modal.querySelectorAll('.widget-modal-circuit__option');\r\n        circuitOptions.forEach(option => option.classList.remove('active'));\r\n\r\n        const changeColorButton = this.modal.querySelector('.widget-modal-circuit__cta');\r\n        changeColorButton.classList.remove('cta-change-color');\r\n    }\r\n\r\n    _addClickBackdrop() {\r\n        this.backdrop.addEventListener('click', this._clickBackdrop);\r\n    }\r\n\r\n    _removeClickBackdrop() {\r\n        this.backdrop.removeEventListener('click', this._clickBackdrop);\r\n    }\r\n\r\n    _clickBackdrop({target}) {\r\n        console.log(target);\r\n        target\r\n            .parentElement\r\n            .objReference\r\n            ._closeModal();\r\n    }\r\n\r\n    _appendDataCircuit(option) {\r\n        let dataCircuit = option.getAttribute('data-circuit');\r\n        let ctaHref = this.ctaLink.href;\r\n        let paramDelimiter = ctaHref.includes('?') ? '&' : '?';\r\n\r\n        this.ctaLink.href = ctaHref.includes(this.circuitParam) ?\r\n            ctaHref.replace(ctaHref.match(this.dynamicCircuitRegex)[0], this.circuitParam + '=' + dataCircuit) :\r\n            ctaHref + paramDelimiter + this.circuitParam + '=' + dataCircuit;\r\n    }\r\n\r\n    sendAnalytics(action,cta=null) {\r\n\r\n        let title = this.modal.querySelector(this._el('title',true)) || this.modal.querySelector(this._el('header-title',true)),\r\n            content = this.modal.querySelector(this._el('step.active',true)) || this.modal.querySelector(this._el('body',true)),\r\n            ctaList = null;\r\n\r\n        //if (!cta)    // Creating an array with cta labels\r\n        ctaList = [...this.modal.querySelectorAll(`${this._el('cta',true)}, .elem-cta`)]\r\n                        .filter((el) => {\r\n                            if (el.offsetParent !== null)\r\n                                return true;    // CTA is visible\r\n                            return false;\r\n                        })\r\n                        .map((el) => el.textContent.trim());\r\n\r\n        analytics.sendData({\r\n            'event': 'popup',\r\n            'language': document.documentElement.lang,\r\n            'type': null,\r\n            'popup': {\r\n                'action': action,\r\n                'elements': {\r\n                    'title': title ? title.textContent.trim() : null,\r\n                    'content': content ? content.textContent.trim() : null,\r\n                    'name': null,\r\n                    'cta': {\r\n                        'existing': ctaList || null,\r\n                        'clicked': cta\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-modal-circuit', CircuitModal);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { setBlockScroll, removeBlockScroll } from '../base-page';\r\n\r\n\r\nclass GenericModal extends Component {\r\n    constructor(container) {\r\n        super('widget-modal-generic');\r\n\r\n        this.modal = container;\r\n        this.modalId = container.id;\r\n        this.modalBody = this.modal.querySelector(this._el('body',true));\r\n        this.backdrop = container.querySelector(this._el('backdrop',true));\r\n        this.btnClose = container.querySelector(this._el('close',true));\r\n\r\n        this._addCustomScrollBar = this.addCustomScrollBar.bind(this);\r\n        this._removeCustomScrollBar = this.removeCustomScrollBar.bind(this);\r\n\r\n        this._modalInit();\r\n    }\r\n\r\n    // Init Modal\r\n    _modalInit() {\r\n        this.modal\r\n            .querySelectorAll(`${this._el('cta',true)}, ${this._el('close',true)}, .elem-cta`)\r\n            .forEach((el) => {\r\n                el.addEventListener('click', (ev) => {\r\n                    this.sendAnalytics('click', ev.target.textContent.trim() || ev.target.getAttribute('aria-label'));\r\n                });\r\n            });\r\n\r\n\r\n        this.btnClose\r\n            .addEventListener('click', (ev) => {\r\n                ev.preventDefault();\r\n                this._closeModal();\r\n            });\r\n\r\n        document.removeEventListener('bpMobileTablet', this._removeCustomScrollBar);\r\n        document.addEventListener('bpMobileTablet', this._removeCustomScrollBar);\r\n        document.removeEventListener('bpDesktop', this._addCustomScrollBar);\r\n        document.addEventListener('bpDesktop', this._addCustomScrollBar);\r\n        document.removeEventListener('orientLandscape', this._closeModal);\r\n        document.addEventListener('orientLandscape', this._closeModal);\r\n    }\r\n\r\n    _openModal(tabTarget = null) {\r\n        setBlockScroll();\r\n        this.modalBody.scrollTo(0, 0);\r\n        this.modal.classList.add(\"show\");\r\n        this.modal.classList.remove('hide');\r\n        this._addClickBackdrop();\r\n\r\n        if (tabTarget) {\r\n            const tabContainer = this.modal.querySelector('.widget-tab');\r\n\r\n            if (tabContainer && tabContainer.objReference) {\r\n                tabContainer.objReference.openTabByIdFromModal(tabTarget);\r\n            }\r\n        }\r\n\r\n        if (window.deviceBreakpoints.bpDesktop.matches === true) {\r\n            this.addCustomScrollBar();\r\n        }\r\n\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n\r\n    _openModalOnLoad() {\r\n        setBlockScroll();\r\n        this.modal.classList.add(\"show\");\r\n\r\n        if (window.deviceBreakpoints.bpDesktop.matches === true) {\r\n            this.addCustomScrollBar();\r\n        }\r\n\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n    _closeModal() {\r\n        this.modal.classList.remove('show');\r\n        this.modal.classList.add('hide');\r\n\r\n        removeBlockScroll();\r\n        this.removeCustomScrollBar();\r\n    }\r\n\r\n    _addClickBackdrop() {\r\n        this.backdrop.addEventListener('click', this._clickBackdrop);\r\n    }\r\n\r\n    _removeClickBackdrop() {\r\n        this.backdrop.removeEventListener('click', this._clickBackdrop);\r\n    }\r\n\r\n    _clickBackdrop({target}) {\r\n        console.log(target);\r\n        target\r\n            .parentElement\r\n            .objReference\r\n            ._closeModal();\r\n    }\r\n\r\n    async addCustomScrollBar() {\r\n        const modalBody = this.modal.querySelector(this._el('body',true));\r\n        const PerfectScrollbar = await import('perfect-scrollbar');\r\n        this.scrollbar = new PerfectScrollbar.default(modalBody, {\r\n            suppressScrollX: true,\r\n            wheelPropagation: false,\r\n            swipeEasing: true\r\n        });\r\n\r\n        this.scrollbar.update();\r\n    }\r\n\r\n    removeCustomScrollBar() {\r\n\r\n        if (this.scrollbar) {\r\n            this.scrollbar.destroy();\r\n            this.scrollbar = null;\r\n        }\r\n    }\r\n\r\n    sendAnalytics(action,cta=null) {\r\n\r\n        let title = this.modal.querySelector(this._el('title',true)) || this.modal.querySelector(this._el('header-title',true)),\r\n            content = this.modal.querySelector(this._el('step.active',true)) || this.modal.querySelector(this._el('body',true)),\r\n            ctaList = null;\r\n\r\n        //if (!cta)    // Creating an array with cta labels\r\n        ctaList = [...this.modal.querySelectorAll(`${this._el('cta',true)}, .elem-cta`)]\r\n                        .filter((el) => {\r\n                            if (el.offsetParent !== null)\r\n                                return true;    // CTA is visible\r\n                            return false;\r\n                        })\r\n                        .map((el) => el.textContent.trim());\r\n\r\n        analytics.sendData({\r\n            'event': 'popup',\r\n            'language': document.documentElement.lang,\r\n            'type': null,\r\n            'popup': {\r\n                'action': action,\r\n                'elements': {\r\n                    'title': title ? title.textContent.trim() : null,\r\n                    'content': content ? content.textContent.trim() : null,\r\n                    'name': null,\r\n                    'cta': {\r\n                        'existing': ctaList || null,\r\n                        'clicked': cta\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-modal-generic', GenericModal);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { setBlockScroll, removeBlockScroll } from '../base-page';\r\n\r\n\r\nclass Comparisonmodal extends Component {\r\n    constructor(container) {\r\n        super('widget-modal-comparison');\r\n\r\n        this.modal = container;\r\n        this.modalId = container.id;\r\n        this.modalBody = this.modal.querySelector(this._el('body',true));\r\n        this.backdrop = container.querySelector(this._el('backdrop',true));\r\n        this.btnClose = container.querySelector(this._el('close',true));\r\n        this.filters = container.querySelector(this._el('filters',true));\r\n        this.modalType = container.dataset.modalType;\r\n\r\n        if (this.modalType == 'two-steps') {\r\n            this.firstStep = container.querySelector('#first-step');\r\n            this.secondStep = container.querySelector('#second-step');\r\n            this.btnBack = container.querySelector(this._el('back',true));\r\n        }\r\n\r\n        if (this.modalType == 'press') {\r\n            this.btnDownload = container.querySelector('.btn-download');\r\n        }\r\n\r\n        if (this.modalType == 'filters' && this.filters) {\r\n            this.filtersList = this.filters.querySelectorAll('.widget-accordion-select');\r\n            this.resetButton = container.querySelector(this._el('reset-filters',true));\r\n            this.applyBtn = this.modal.querySelector(this._el('apply-filters',true));\r\n        }\r\n\r\n        this._modalInit();\r\n    }\r\n\r\n    // Init Modal\r\n    _modalInit() {\r\n\r\n        this.modal\r\n            .querySelectorAll(`${this._el('cta',true)}, ${this._el('close',true)}, .elem-cta`)\r\n            .forEach((el) => {\r\n                el.addEventListener('click', (ev) => {\r\n                    this.sendAnalytics('click', ev.target.textContent.trim() || ev.target.getAttribute('aria-label'));\r\n                });\r\n            });\r\n\r\n        if (this.modalType != 'two-steps') {\r\n            this.btnClose\r\n                .addEventListener('click', (ev) => {\r\n                    ev.preventDefault();\r\n                    this._closeModal();\r\n                });\r\n        }\r\n\r\n        if (this.modalType == 'two-steps' || this.modalType == 'press') {\r\n            this.modal\r\n                .querySelector(`${this._el('footer',true)} .btn-close`)\r\n                .addEventListener('click', (ev) => {\r\n                    ev.preventDefault();\r\n                    this._closeModal();\r\n                });\r\n        }\r\n\r\n        if (this.modalType == 'two-steps') {\r\n\r\n            let modalsObj = JSON.parse(sessionStorage.getItem('modals')) || {};\r\n\r\n            if (!modalsObj[this.modalId]) { //if cookie is not present open the modal\r\n                this._openModalOnLoad();\r\n            }\r\n\r\n            this.firstStep\r\n                .querySelector(`${this._el('form-button',true)} button`)\r\n                .addEventListener('click', (ev) => {\r\n                    ev.preventDefault();\r\n                    this._nextStep();\r\n                });\r\n\r\n            this.btnBack.addEventListener('click', () => this._backStep());\r\n\r\n            this.modal\r\n                .querySelector(`${this._el('footer',true)} .btn-close`)\r\n                .addEventListener('click', () => {\r\n                    modalsObj[this.modalId] = true;\r\n                    sessionStorage.setItem(\"modals\", JSON.stringify(modalsObj));\r\n                });\r\n        }\r\n\r\n        if (this.modalType == 'press') {\r\n\r\n            let cta = document.querySelector(\"[data-target='\" + '#' + this.modalId + \"']\");\r\n            let ctaId = cta.id;\r\n\r\n            if (this.btnDownload)\r\n                this.btnDownload\r\n                    .addEventListener('click', (ev) => {\r\n\r\n                        let dataUrl = ev.target.getAttribute('href');\r\n                        this.sendDownloadAnalytics(dataUrl);\r\n                        \r\n                        let pressModal = JSON.parse(sessionStorage.getItem('pressId')) || {};\r\n                        pressModal[ctaId] = true;\r\n                        sessionStorage.setItem(\"pressId\", JSON.stringify(pressModal));\r\n\r\n                        this._closeModal();\r\n                    });\r\n        }\r\n\r\n        if (this.modalType == 'filters') {\r\n\r\n            if (this.filtersList)\r\n                this.filtersList.forEach((acc) => {\r\n                    acc.addEventListener('accordionItemSelected',() => {\r\n                        this._updateFilterApplyBtn();\r\n                    });\r\n                    acc.addEventListener('accordionOpening',() => {\r\n                        this._closeInactiveAccordions();\r\n                    });\r\n                });\r\n\r\n            if (this.applyBtn) {\r\n                this.applyBtn.disabled = true;\r\n                this.applyBtn.setAttribute('disabled','');\r\n\r\n                this.applyBtn.addEventListener('click',() => {\r\n\r\n                    let validatedCount = 0;\r\n                    this.validated = [];\r\n\r\n                    this.filtersList.forEach((fl) => {\r\n                        let validatedData = fl.objReference.applyValidatedFilters();\r\n                        validatedCount += validatedData.length;\r\n\r\n                        if (validatedData.length)\r\n                            this.validated.push({type: fl.objReference.type, validated: validatedData});\r\n                    });\r\n\r\n                    console.log('APPLY',this.validated,validatedCount);\r\n                    \r\n                    this._sendValidatedFiltersEvent(this.validated);\r\n                    this._enableApplyBtn(false);\r\n                    this._closeModal();\r\n                });\r\n            }\r\n            \r\n            if (this.resetButton) {\r\n\r\n                this.resetButton.addEventListener('click',() => {\r\n                    this.resetAccordionFilters();\r\n                    this._resetApplyBtn();\r\n                    this._sendFiltersResetEvent();\r\n                    this._closeModal();\r\n                });\r\n            }\r\n\r\n            let mobileRotation = window.matchMedia('(orientation: landscape)');\r\n\r\n            mobileRotation.addListener(() => {\r\n                if (this.modal.classList.contains(\"show\"))\r\n                    this._closeModal();\r\n            });\r\n        }\r\n    }\r\n\r\n    // Optional cid = CTA ID\r\n    _openModal(cid) {\r\n\r\n        if (this.modalType == 'press') {\r\n\r\n            let pressModal = JSON.parse(sessionStorage.getItem('pressId')) || {};\r\n\r\n            if (pressModal[cid]) { // if a cookie is found download the file\r\n                this.btnDownload.click();\r\n                return; // do not open modal\r\n            }\r\n        }\r\n        setBlockScroll();\r\n        this.modalBody.scrollTo(0, 0);\r\n        this.modal.classList.add(\"show\");\r\n        this.modal.classList.remove('hide');\r\n        this._addClickBackdrop();\r\n\r\n        if (this.modalType == 'video')\r\n            this._loadVideo();\r\n\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n    _openModalOnLoad() {\r\n        setBlockScroll();\r\n        this.modal.classList.add(\"show\");\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n    _closeModal() {\r\n        this.modal.classList.remove('show');\r\n        this.modal.classList.add('hide');\r\n        removeBlockScroll();\r\n\r\n        //this._removeClickBackdrop();\r\n\r\n        if (this.modalType == 'two-steps') {\r\n            this._backStep();\r\n        }\r\n\r\n        if (this.modalType == 'video') {\r\n            this._pauseVideo();\r\n            this._playCarousel();\r\n        }\r\n\r\n        if (this.modalType == 'filters') {\r\n            this._closeInactiveAccordions();\r\n            this._restoreValidatedFilters();\r\n            this._updateFilterApplyBtn();\r\n            this._enableApplyBtn(false);\r\n        }\r\n    }\r\n\r\n    _addClickBackdrop() {\r\n        this.backdrop.addEventListener('click', this._clickBackdrop);\r\n    }\r\n\r\n    _removeClickBackdrop() {\r\n        this.backdrop.removeEventListener('click', this._clickBackdrop);\r\n    }\r\n\r\n    _clickBackdrop({target}) {\r\n        console.log(target);\r\n        target\r\n            .parentElement\r\n            .objReference\r\n            ._closeModal();\r\n    }\r\n\r\n    _nextStep() {\r\n        this.btnBack.classList.add('show');\r\n        this.firstStep.classList.remove('active');\r\n        this.secondStep.classList.add('active');\r\n    }\r\n\r\n    _backStep() {\r\n        this.btnBack.classList.remove('show');\r\n        this.firstStep.classList.add('active');\r\n        this.secondStep.classList.remove('active');\r\n    }\r\n\r\n    async _loadVideo() {\r\n        \r\n        let iframe = this.modal.querySelector('iframe');\r\n\r\n        this._stopCarousel();\r\n\r\n        try {\r\n            const VimeoPlayer = await import('@vimeo/player');\r\n            this.videoPlayer = this.videoPlayer || new VimeoPlayer(iframe);\r\n            this.videoPlayer.play();\r\n        } catch(err) {\r\n            // load the video iframe\r\n            iframe.src = iframe.dataset.src;\r\n        }\r\n    }\r\n\r\n    async _pauseVideo() {\r\n\r\n        let iframe = this.modal.querySelector('iframe');\r\n\r\n        try {\r\n            const VimeoPlayer = await import('@vimeo/player');\r\n            this.videoPlayer = this.videoPlayer || new VimeoPlayer(iframe);\r\n            this.videoPlayer.pause();\r\n        } catch(err) {\r\n            console.warn('Pause video ERROR',err);\r\n        }\r\n    }\r\n\r\n    _stopCarousel() {\r\n        \r\n        let carousels = document.querySelectorAll('.widget-carousel');\r\n\r\n        carousels.forEach((el) => {\r\n            el.objReference._pauseSlideshow();\r\n        });\r\n    }\r\n\r\n    _playCarousel() {\r\n        \r\n        let carousels = document.querySelectorAll('.widget-carousel');\r\n\r\n        carousels.forEach((el) => {\r\n            el.objReference._playSlideshow();\r\n        });\r\n    }\r\n\r\n    _closeInactiveAccordions() {\r\n        this.filtersList.forEach((acc) => {\r\n            acc.objReference.closeAccordion();\r\n        });\r\n    }\r\n\r\n    _restoreValidatedFilters() {\r\n        this.filtersList.forEach((acc) => {\r\n            acc.objReference.resetValidatedValues();\r\n        });\r\n    }\r\n\r\n    _sendValidatedFiltersEvent(data) {\r\n        let event = new CustomEvent('filtersValidated', { bubbles: true, detail: { accordionValidated: data } });\r\n        this.modal.dispatchEvent(event);\r\n    }\r\n\r\n    _sendFiltersResetEvent() {\r\n        let event = new CustomEvent('filtersReset', { bubbles: true });\r\n        this.modal.dispatchEvent(event);\r\n    }\r\n\r\n    getValidatedFiltersCount() {\r\n\r\n        let validated = 0;\r\n\r\n        this.filtersList.forEach((acc) => {\r\n            validated += acc.objReference.getValidatedFiltersCount();\r\n        });\r\n\r\n        return validated;\r\n    }\r\n\r\n    setAccordionFilters(data) {\r\n\r\n        console.log('updating accordions',data)\r\n        this.filtersList.forEach((acc) => {\r\n            if (data.type === acc.objReference.type)\r\n                acc.objReference.setValidatedFilters(data.validated);\r\n        });\r\n\r\n        this._enableApplyBtn(false);\r\n    }\r\n\r\n    _updateFilterApplyBtn() {\r\n\r\n        if (this.applyBtn) {\r\n\r\n            let total = 0;\r\n            let validated = 0;\r\n\r\n            this.filtersList.forEach((fl) => {\r\n                let acc = fl.objReference;\r\n                total += acc.getSelectedFilters().length;\r\n                validated += acc.getValidatedFiltersCount();\r\n            });\r\n\r\n            if (total) {\r\n                this._enableApplyBtn(true,total);\r\n            } else {\r\n                if (!validated) this._resetApplyBtn();\r\n                else this._enableApplyBtn(true,'');\r\n            }\r\n        }\r\n    }\r\n\r\n    _enableApplyBtn(enable=true,label) {\r\n\r\n        let text = this.applyBtn.querySelector('span');\r\n\r\n        if (label !== undefined && label !== null)\r\n            text.textContent = label !== '' ? ` (${label})` : '';\r\n        \r\n        enable ? this.applyBtn.removeAttribute('disabled') : this.applyBtn.setAttribute('disabled','');\r\n        this.applyBtn.disabled = !enable;\r\n    }\r\n\r\n    _resetApplyBtn() {\r\n\r\n        this._enableApplyBtn(false,'');\r\n    }\r\n\r\n    showResetButton(show=true) {\r\n        if (show)\r\n            this.resetButton.classList.remove('hidden');\r\n        else\r\n            this.resetButton.classList.add('hidden');\r\n    }\r\n\r\n    resetAccordionFilters() {\r\n\r\n        this.filtersList.forEach((fl) => {\r\n            fl.objReference.resetAccordion();\r\n        });\r\n    \r\n        this._resetApplyBtn();\r\n    }\r\n\r\n    sendAnalytics(action,cta=null) {\r\n\r\n        let title = this.modal.querySelector(this._el('title',true)) || this.modal.querySelector(this._el('header-title',true)),\r\n            content = this.modal.querySelector(this._el('step.active',true)) || this.modal.querySelector(this._el('body',true)),\r\n            ctaList = null;\r\n\r\n        //if (!cta)    // Creating an array with cta labels\r\n        ctaList = [...this.modal.querySelectorAll(`${this._el('cta',true)}, .elem-cta`)]\r\n                        .filter((el) => {\r\n                            if (el.offsetParent !== null)\r\n                                return true;    // CTA is visible\r\n                            return false;\r\n                        })\r\n                        .map((el) => el.textContent.trim());\r\n\r\n        analytics.sendData({\r\n            'event': 'popup',\r\n            'language': document.documentElement.lang,\r\n            'type': null,\r\n            'popup': {\r\n                'action': action,\r\n                'elements': {\r\n                    'title': title ? title.textContent.trim() : null,\r\n                    'content': content ? content.textContent.trim() : null,\r\n                    'name': null,\r\n                    'cta': {\r\n                        'existing': ctaList || null,\r\n                        'clicked': cta\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    sendDownloadAnalytics(filepath) {\r\n\r\n        let fileName = filepath ? filepath.replace(/^.*[\\\\/]/, '').split('.')[0] : '',\r\n            fileExt = filepath ? filepath.split('.').pop() : '';\r\n\r\n        analytics.sendData({\r\n            'event': 'download',\r\n            'language': document.documentElement.lang,\r\n            'download': {\r\n                'action': 'completed',\r\n                'file': {\r\n                    'name': fileName,\r\n                    'category': '',\r\n                    'ext': fileExt\r\n                },\r\n                'isBulk': 'false'\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-modal-comparison', Comparisonmodal);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { setBlockScroll, removeBlockScroll } from '../base-page';\r\n\r\n\r\nclass FormModal extends Component {\r\n    constructor(container) {\r\n        super('widget-modal-form');\r\n\r\n        this.modal = container;\r\n        this.modalId = container.id;\r\n        this.modalBody = this.modal.querySelector(this._el('body',true));\r\n        this.modalForm = this.modal.querySelector('.widget-form-steps');\r\n        this.btnClose = container.querySelector(this._el('close',true));\r\n        this._closeModal = this.closeModal.bind(this);\r\n\r\n        this._modalInit();\r\n    }\r\n\r\n    // Init Modal\r\n    _modalInit() {\r\n\r\n        this.modal\r\n            .querySelectorAll(`${this._el('cta',true)}, ${this._el('close',true)}, .elem-cta`)\r\n            .forEach((el) => {\r\n                el.addEventListener('click', (ev) => {\r\n                    this.sendAnalytics('click', ev.target.textContent.trim() || ev.target.getAttribute('aria-label'));\r\n                });\r\n            });\r\n\r\n        this.btnClose\r\n            .addEventListener('click', (ev) => {\r\n                ev.preventDefault();\r\n                this._closeModal();\r\n            });\r\n    }\r\n\r\n    _openModal() {\r\n\r\n        setBlockScroll();\r\n        this.modalBody.scrollTo(0, 0);\r\n        this.modal.classList.add(\"show\");\r\n        this.modal.classList.remove('hide');\r\n        \r\n        if (this.modalForm) {\r\n            const event = new CustomEvent('formStepsInit', { bubbles: true });\r\n            this.modalForm.dispatchEvent(event);\r\n        }\r\n\r\n        document.body.addEventListener('modalFormClose', this._closeModal);\r\n        this.sendAnalytics('impression');\r\n    }\r\n\r\n    closeModal() {\r\n\r\n        this.modal.classList.remove('show');\r\n        this.modal.classList.add('hide');\r\n        removeBlockScroll();\r\n\r\n        document.body.removeEventListener('modalFormClose', this._closeModal);\r\n\r\n        if (this.modalForm) {\r\n            const event = new CustomEvent('formStepsReset', { bubbles: true });\r\n            this.modalForm.dispatchEvent(event);\r\n        }\r\n    }\r\n\r\n    sendAnalytics(action,cta=null) {\r\n\r\n        let title = this.modal.querySelector(this._el('title',true)) || this.modal.querySelector(this._el('header-title',true)),\r\n            content = this.modal.querySelector(this._el('step.active',true)) || this.modal.querySelector(this._el('body',true)),\r\n            ctaList = null;\r\n\r\n        //if (!cta)    // Creating an array with cta labels\r\n        ctaList = [...this.modal.querySelectorAll(`${this._el('cta',true)}, .elem-cta`)]\r\n                        .filter((el) => {\r\n                            if (el.offsetParent !== null)\r\n                                return true;    // CTA is visible\r\n                            return false;\r\n                        })\r\n                        .map((el) => el.textContent.trim());\r\n\r\n        analytics.sendData({\r\n            'event': 'popup',\r\n            'language': document.documentElement.lang,\r\n            'type': null,\r\n            'popup': {\r\n                'action': action,\r\n                'elements': {\r\n                    'title': title ? title.textContent.trim() : null,\r\n                    'content': content ? content.textContent.trim() : null,\r\n                    'name': null,\r\n                    'cta': {\r\n                        'existing': ctaList || null,\r\n                        'clicked': cta\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-modal-form', FormModal);","import Component from '../../libs/component';\r\nimport Pristine from '../../libs/vendor/pristine.min';\r\nimport { register } from '../../libs/register';\r\nimport { request } from '../../libs/utils';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { vatCodeCheck, fiscalCodeCheck } from '../../libs/validation';\r\n\r\nclass FormSteps extends Component {\r\n    constructor(container) {\r\n        super('widget-form-steps');\r\n\r\n        this.container = container;\r\n        this.form = container.querySelector('form');\r\n        this.formId = this.form.id;\r\n        this.formServletPath = this.form.dataset.url || '';\r\n        this.modal = this.container.closest('.widget-modal-form');\r\n        this.formType = container.dataset.type || 'client';\r\n\r\n        this.siteKey = window.nexinew ? window.nexinew.recaptchasitekey || '' : '';\r\n        this.recaptchaEnabled = this.siteKey ? Boolean(this.form.dataset.recaptchaEnabled) : false;\r\n        \r\n        this.stepsContainer = this.form.querySelector(`${this._el('steps-container',true)}`);\r\n        this.activeStep = this.stepsContainer.querySelector(`${this._el('step',true)}.active`);\r\n        this.activeStepIndex = 1;\r\n        this.stepsTotal = [...this.form.querySelectorAll(`${this._el('step',true)}`)].length;\r\n        this.formStepsTotal = [...this.form.querySelectorAll(`fieldset${this._el('step',true)}`)].length;\r\n        \r\n        this.progressBar = this.container.querySelector(`${this._el('progressbar',true)} progress`);\r\n        this.progressBar.setAttribute('max',this.stepsTotal);\r\n        this.progressBar.setAttribute('value',1);\r\n\r\n        this.btnBack = this.container.querySelector(`${this._el('form-btn',true)}[data-role=back]`);\r\n        this.btnNext = this.container.querySelector(`${this._el('form-btn',true)}[data-role=next]`);\r\n        this.btnSend = this.container.querySelector(`${this._el('form-btn',true)}[data-role=send]`);\r\n        this.btnClose = this.container.querySelector(`${this._el('form-btn',true)}[data-role=close]`);\r\n\r\n        this.container.addEventListener('formStepsInit', () => {\r\n            this._initForm();\r\n        });\r\n    }\r\n\r\n    async _importDateInputPolyfill() {\r\n        await import('configurable-date-input-polyfill');\r\n    }\r\n\r\n    _initForm() {\r\n        console.log('Opening',this.formType,'form');\r\n        this._importDateInputPolyfill();\r\n\r\n        if (!this.container.classList.contains('init')) {\r\n        \r\n            const formFooter = this.form.querySelector(`${this._el('form-footer',true)}`);\r\n\r\n            formFooter.addEventListener('click', ({target:btn}) => {\r\n\r\n                switch(btn.dataset.role) {\r\n                    case 'next':\r\n                        this._nextStep();\r\n                        break;\r\n                    case 'back':\r\n                        this._previousStep();\r\n                        break;\r\n                    case 'send':\r\n                        this._sendFormData();\r\n                        break;\r\n                    case 'close':\r\n                        this._closeModalForm();\r\n                        break;\r\n                }\r\n            });\r\n\r\n            this.container.addEventListener('formStepsReset', () => {\r\n                this._resetForm();\r\n            });\r\n\r\n            this._initValidation();\r\n            this._initRecaptcha();\r\n\r\n            this.container.classList.add('init');\r\n        }\r\n\r\n        this._showStep(this.activeStepIndex);\r\n        this._showProgressBar();\r\n        this._updateProgressBar(this.activeStepIndex);\r\n    }\r\n\r\n    _initValidation() {\r\n\r\n        const formOptions = {\r\n            classTo: 'widget-form-steps__input',\r\n            errorClass: 'error',\r\n            successClass: 'valid',\r\n            errorTextParent: 'widget-form-steps__input',\r\n            errorTextTag: 'div',\r\n            errorTextClass: 'error-text'\r\n        };\r\n        this.formValidate = new Pristine(this.form, formOptions, false);\r\n\r\n        const lettersFields = [...this.form.querySelectorAll(`[name=name],[name=surname],[name=businessname]`)];\r\n        lettersFields.forEach((item) => {\r\n            item.addEventListener('keydown', (ev) => {\r\n                if (!isNaN(parseFloat(ev.key)) && isFinite(ev.key)) // Checks if there is a numeric value\r\n                    ev.preventDefault();\r\n            });\r\n        });\r\n\r\n        const dateField = this.form.querySelector('input[type=date]');\r\n        if (dateField) {\r\n            dateField.addEventListener('focusout', ({target}) => {\r\n                this._validateFormInput(target);\r\n                this._checkInputError(target);\r\n            });\r\n        }\r\n\r\n        const numberFields = [...this.form.querySelectorAll(`input[type=tel]`)];\r\n        numberFields.forEach((item) => {\r\n            item.addEventListener('keydown', (ev) => {\r\n                if (isNaN(parseFloat(ev.key)) && !isFinite(ev.key)) // Checks if there is not a numeric value\r\n                    if (ev.key != \"Backspace\" && ev.key != \"Delete\" && ev.key != \"ArrowLeft\" && ev.key != \"ArrowRight\" && ev.key != \"Tab\")\r\n                        ev.preventDefault();\r\n            });\r\n        });\r\n\r\n        const vatcodeField = this.form.querySelector(`input[name=vatcode]`);\r\n\r\n        if (vatcodeField) {\r\n\r\n            vatcodeField.addEventListener('keyup', (ev) => {\r\n                ev.target.value = ev.target.value.toUpperCase();\r\n            });\r\n\r\n            vatcodeField.addEventListener('keydown', (ev) => {\r\n                if(!(ev.key >= '0' && ev.key <= '9') && !ev.key.match(/[a-zA-Z]/)) // Checks if there is not alphanumeric value\r\n                    if (ev.key != \"Backspace\" && ev.key != \"Delete\" && ev.key != \"ArrowLeft\" && ev.key != \"ArrowRight\" && ev.key != \"Tab\")\r\n                    ev.preventDefault();\r\n            });\r\n\r\n            this.formValidate.addValidator(vatcodeField, function(value) {\r\n                if (value.length == 11) {\r\n                    return vatCodeCheck(value);\r\n                } else if (value.length == 16) {\r\n                    return fiscalCodeCheck(value);\r\n                }else if (value.length > 11 && value.length < 16) {\r\n                    return false;\r\n                } else {\r\n                    return true;\r\n                }\r\n\r\n            }, vatcodeField.dataset.pristineVatcodeMessage, 1, true);\r\n        }\r\n\r\n        this.form.addEventListener('focusin', ({target}) => {\r\n            this._sendInteractionAnalytics(target,'focus');\r\n        });\r\n\r\n        this.form.addEventListener('change', ({target}) => {\r\n            if (target.type == 'date')\r\n                return;\r\n\r\n            this._validateFormInput(target);\r\n            this._checkInputError(target);\r\n        });\r\n    }\r\n\r\n    _validateFormInput(input) {\r\n\r\n        if (this.formValidate)\r\n            this.formValidate.validate(input);\r\n\r\n        this._handleButtonsForward( this._activeStepValid() );\r\n    }\r\n\r\n    _checkInputError(input) {\r\n        const inputContainer = input.closest(`${this._el('input',true)}.error`);\r\n        \r\n        if (inputContainer)\r\n            this._sendErrorAnalytics(input,'input');\r\n    }\r\n\r\n    _activeStepValid() {\r\n\r\n        const activeFieldset = this.form.querySelector(`fieldset.active ${this._el('form-fields-group',true)}.active`);\r\n        const merchantFieldset = this.form.querySelector(`fieldset ${this._el('form-fields-group',true)}.merchant.active`);\r\n\r\n\r\n        if (this.formValidate && activeFieldset) {\r\n            const stepFields = activeFieldset.querySelectorAll(`${this._el('input',true)} input, ${this._el('input',true)} textarea`);\r\n\r\n            if(activeFieldset === merchantFieldset) {\r\n                const vatcodeField = this.form.querySelector(`input[name=vatcode]`);\r\n                const merchantField = this.form.querySelector(`input[name=merchantcode]`);\r\n                \r\n                if (vatcodeField)\r\n                    if(vatcodeField.value == \"\" && merchantField.value == \"\") {\r\n                        return false;\r\n                    }\r\n            }\r\n           \r\n            //console.log(stepFields)\r\n            return this.formValidate.validate(stepFields,true);\r\n        }\r\n\r\n        return false;\r\n    }\r\n\r\n    _enableButton(btnRole, enable = true) {\r\n\r\n        const button = this.form.querySelector(`button[data-role=${btnRole}]`);\r\n\r\n        if (enable) {\r\n            button.removeAttribute('disabled');\r\n            button.classList.remove('disabled');\r\n        } else {\r\n            button.setAttribute('disabled','disabled');\r\n            button.classList.add('disabled');\r\n        }\r\n    }\r\n\r\n    _handleButtonsForward(formValid) {\r\n\r\n        if (formValid) {\r\n            this._enableButton('next', this.activeStepIndex < this.formStepsTotal);\r\n            this._enableButton('send', this.activeStepIndex == this.formStepsTotal);\r\n        } else {\r\n            this._enableButton('next',false);\r\n            this._enableButton('send',false);\r\n        }\r\n    }\r\n\r\n    _hideButtons(hide = true, btnRole = null) {\r\n\r\n        const buttons = [...this.form.querySelectorAll(`button[data-role${ btnRole ? '=' + btnRole : '' }]`)];\r\n\r\n        buttons.forEach((item) => {\r\n            hide ? item.classList.remove('active') : item.classList.add('active');\r\n        });\r\n    }\r\n\r\n    _nextStep(showResult=false) {\r\n\r\n        if (this.activeStepIndex < this.stepsTotal || showResult) {\r\n            this.activeStepIndex++;\r\n            this.stepsContainer.style.left = `-${(this.activeStepIndex - 1) * 100}%`;\r\n\r\n            this._showStep(this.activeStepIndex,showResult);\r\n            this._updateProgressBar();\r\n        }\r\n    }\r\n\r\n    _previousStep() {\r\n\r\n        if (this.activeStepIndex > 1) {\r\n            this.activeStepIndex--;\r\n            this.stepsContainer.style.left = this.activeStepIndex > 1 ? `-${(this.activeStepIndex - 1) * 100}%` : '0';\r\n\r\n            this._showStep(this.activeStepIndex);\r\n            this._updateProgressBar();\r\n        }\r\n    }\r\n\r\n    _showStep(stepNum,showResult=false) {\r\n\r\n        const steps = [...this.form.querySelectorAll(`${this._el('step',true)}`)];\r\n        const stepIndex = stepNum <= this.stepsTotal ? stepNum : this.stepsTotal;\r\n\r\n        steps.forEach((step,i) => {\r\n\r\n            step.classList.remove('active');\r\n\r\n            if (stepIndex == i+1) {\r\n\r\n                step.classList.add('active');\r\n\r\n                let fieldGroup = step.querySelector(`${this._el('form-fields-group',true)}.${this.formType}`);\r\n                if (!fieldGroup) {\r\n                    fieldGroup = step.querySelector(`${this._el('form-fields-group',true)}`);\r\n                }\r\n                if (fieldGroup)\r\n                    fieldGroup.classList.add('active');\r\n            }\r\n        });\r\n\r\n        this.form.scrollTo(0,0);\r\n\r\n        this._hideButtons( this.activeStepIndex == 1 || this.activeStepIndex == this.stepsTotal,'back');\r\n        this._hideButtons( this.activeStepIndex == this.formStepsTotal || this.activeStepIndex == this.stepsTotal,'next');\r\n        this._hideButtons( this.activeStepIndex != this.formStepsTotal || this.activeStepIndex == this.stepsTotal,'send');\r\n        this._hideButtons( this.activeStepIndex != this.stepsTotal,'close');\r\n\r\n        if (!showResult)\r\n            this._handleButtonsForward( this._activeStepValid() );\r\n        else {\r\n            this._hideProgressBar();\r\n        }\r\n    }\r\n\r\n    async _sendFormData() {\r\n\r\n        console.log('SENDING FORM DATA...')\r\n\r\n        const validatedFields = [...this.form.querySelectorAll(`${this._el('input',true)}.valid input, ${this._el('input',true)}.valid textarea`)];\r\n        const formData = new FormData();\r\n        let recaptchaResponse = true;\r\n\r\n        this._submitButtonSending();\r\n        this._enableButton('send',false);\r\n        this._enableButton('back',false);\r\n\r\n        if (this.recaptchaEnabled && window.grecaptcha)\r\n            recaptchaResponse = await this._checkRecaptcha(); // A returned Promise or False means rejected status\r\n\r\n        if (recaptchaResponse === true || typeof recaptchaResponse === 'string') {\r\n            formData.append('g-recaptcha-response',recaptchaResponse);\r\n\r\n            validatedFields.forEach((el) => {\r\n                //console.log(el.name, el.value);\r\n                let value;\r\n                if (el.type == 'date')\r\n                    value = this._getFormattedDate(el.value);\r\n                else if (el.type == 'checkbox')\r\n                    value = el.value == 'on';\r\n                else\r\n                    value = el.value;\r\n\r\n                formData.append(el.name, value);\r\n            });\r\n\r\n            const requestData = {\r\n                method: 'POST',\r\n                url: this.formServletPath,\r\n                body: formData\r\n            };\r\n            \r\n            request(requestData).\r\n                then((resolve) => {\r\n                    console.log('Send Form data SUCCESS',resolve.response);\r\n                    this._onFormDataSent('success');\r\n                    this._sendInteractionAnalytics(this.form,'send',true);\r\n                })\r\n                .catch((reject) => {\r\n                    console.log(`Send Form Error: ${reject.status} / ${reject.response}`);\r\n                    this._onFormDataSent('error');\r\n                    this._sendInteractionAnalytics(this.form,'send',false,`Send Form Error: ${reject.status} / ${reject.response}`);\r\n                    this._sendErrorAnalytics(this.form,'form',reject.status,'server',true);\r\n                });\r\n\r\n        } else {\r\n\r\n            console.log('Send FormData Recaptcha Error');\r\n            this._onFormDataSent('error');\r\n            this._sendInteractionAnalytics(this.form,'send',false,'Recaptcha Error');\r\n            this._sendErrorAnalytics(this.form,'form','','recaptcha',true);\r\n        }\r\n    }\r\n\r\n    _onFormDataSent(result) {\r\n        this._nextStep(true);\r\n        this._showResultStep(result);\r\n        this._submitButtonRevert();\r\n        this._enableButton('send',true);\r\n        this._enableButton('back',true);\r\n    }\r\n\r\n    _showResultStep(responseClass) {\r\n\r\n        let resultSteps = [...this.form.querySelectorAll(`${this._el('form-result',true)}`)];\r\n\r\n        resultSteps.forEach((el) => {\r\n            if (el.matches(`.${responseClass}`))\r\n                el.classList.add('active');\r\n            else\r\n                el.classList.remove('active');\r\n        });\r\n    }\r\n\r\n    _getFormattedDate(stringDate) {\r\n\r\n        function padTo2Digits(num) {\r\n            return num.toString().padStart(2, '0');\r\n        }\r\n          \r\n        function formatDate(date) {\r\n            return [\r\n                padTo2Digits(date.getDate()),\r\n                padTo2Digits(date.getMonth() + 1),\r\n                date.getFullYear(),\r\n            ].join('-');\r\n        }\r\n\r\n        return formatDate(new Date(stringDate));\r\n    }\r\n\r\n    _initRecaptcha() {\r\n\r\n        const recaptchaContainer = this.form.querySelector('.recaptcha-container .g-recaptcha');\r\n\r\n        if (this.siteKey && recaptchaContainer && window.grecaptcha)\r\n            window.grecaptcha.ready(() => {\r\n                this.gRecaptcha = window.grecaptcha.render(recaptchaContainer, {\r\n                    'sitekey': this.siteKey,\r\n                    //'badge': 'inline',\r\n                    //'size': 'invisible'\r\n                });\r\n            });\r\n    }\r\n\r\n    async _checkRecaptcha() {\r\n        console.log('FORM RECAPTCHA CHECK in progress...');\r\n\r\n        try {\r\n            return window.grecaptcha\r\n                .execute(this.siteKey, {action: 'submit'})\r\n                .then((token) => {\r\n                    console.log('FORM RECAPTCHA RESPONSE:', token);\r\n                    return token;\r\n                })\r\n                .catch((err) => console.warn(err));\r\n        } catch(err) {\r\n            console.warn(err);\r\n            return false;\r\n        }\r\n    }\r\n\r\n    _resetRecaptcha() {\r\n        try {\r\n            if (this.gRecaptcha !== null && this.gRecaptcha !== undefined)\r\n                window.grecaptcha.reset(this.gRecaptcha);\r\n            else\r\n                window.grecaptcha.reset();\r\n        } catch(err) {\r\n            console.warn(err);\r\n        }\r\n    }\r\n\r\n    _submitButtonSending() {\r\n        const submit = this.form.querySelector(`button[data-role=send]`);\r\n        submit.textContent = submit.dataset.sendingText;\r\n    }\r\n\r\n    _submitButtonRevert() {\r\n        const submit = this.form.querySelector(`button[data-role=send]`);\r\n        submit.textContent = submit.dataset.defaultText;\r\n    }\r\n\r\n    _showProgressBar() {\r\n        this.progressBar.classList.remove('hidden');\r\n    }\r\n\r\n    _hideProgressBar() {\r\n        this.progressBar.classList.add('hidden');\r\n    }\r\n\r\n    _updateProgressBar() {\r\n        this.progressBar.setAttribute('value',this.activeStepIndex);\r\n    }\r\n\r\n    _closeModalForm() {\r\n        const event = new CustomEvent('modalFormClose', { bubbles: true });\r\n        document.body.dispatchEvent(event);\r\n    }\r\n\r\n    _resetForm() {\r\n\r\n        this.activeStepIndex = 1;\r\n        this.stepsContainer.style.left = '0';\r\n\r\n        const fields = this.form.querySelectorAll(`input, textarea`);\r\n        fields.forEach((el) => {\r\n            el.value = '';\r\n            if (el.type == 'checkbox')\r\n                el.checked = false;\r\n        });\r\n\r\n        if (this.formValidate)\r\n            this.formValidate.reset();\r\n\r\n        this._resetRecaptcha();\r\n        this._submitButtonRevert();\r\n    }\r\n\r\n    _sendInteractionAnalytics(target,type,success=null,msg=null) {\r\n\r\n        if (target.nodeName === 'BUTTON') return;\r\n        \r\n        let payload = {\r\n            'event': 'form_interaction',\r\n            'form': {\r\n                'action': type,\r\n                'element': target.id,\r\n                'send': {\r\n                    'result': null,\r\n                    'message': null\r\n                }\r\n            }\r\n        };\r\n\r\n        if (success !== null) {\r\n            payload.form.send.result = success ? 1 : 0;\r\n            payload.form.send.message = msg;\r\n        }\r\n\r\n        analytics.sendData(payload);\r\n    }\r\n\r\n    _sendErrorAnalytics(target,type='input',code='',reason='',fatal=false) {\r\n\r\n        const payload = {\r\n            'event': 'custom_error',\r\n            'language': document.documentElement.lang,\r\n            'error': {\r\n                'type': type,\r\n                'code': code,\r\n                'description': '',\r\n                'message': null,\r\n                'field': '',\r\n                'isFatal': fatal\r\n            }\r\n        },\r\n        inputContainer = target.closest(`${this._el('input',true)}`);\r\n\r\n        if (type === 'input') {\r\n            payload.error.field = target.getAttribute('name') || target.getAttribute('id');\r\n            payload.error.message = inputContainer.querySelector('.error-text').textContent.trim() || null;\r\n        } else {\r\n            const errorResultBlock = target.querySelector(`${this._el('form-result',true)}.error`);\r\n            payload.error.message = errorResultBlock\r\n                                        .textContent\r\n                                        .replace(/[\\n\\r]+|[\\s]{2,}/g, ' ')\r\n                                        .trim();\r\n        }\r\n\r\n        if (reason)\r\n            if (reason == 'recaptcha')\r\n                payload.error.description = 'Recaptcha error';\r\n            else\r\n                payload.error.description = 'Server error';\r\n\r\n        analytics.sendData(payload);\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-form-steps', FormSteps);","\r\nexport const vatCodeCheck = function(vatCode) {\r\n\r\n    let s = 0;\r\n\r\n    for (let i = 0; i <= 9; i += 2 ) {\r\n        s += vatCode.charCodeAt(i) - '0'.charCodeAt(0);\r\n    }\r\n\r\n    for (let i = 1; i <= 9; i += 2 ) {\r\n        let c = 2 * ( vatCode.charCodeAt(i) - '0'.charCodeAt(0) );\r\n        if (c > 9)\r\n            c = c - 9;\r\n        s += c;\r\n    }\r\n\r\n    return ((10 - s%10) % 10 === vatCode.charCodeAt(10) - '0'.charCodeAt(0));\r\n}\r\n\r\nexport const fiscalCodeCheck = function(fiscalCode) {\r\n    let regex = /^(?=.*?\\d)(?=.*?[a-zA-Z])[a-zA-Z\\d]{16}$/g;\r\n\r\n    return regex.test(fiscalCode);\r\n}\r\n","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\n\r\nclass AccordionSelect extends Component {\r\n    constructor(container) {\r\n        super('widget-accordion-select');\r\n\r\n        this.container = container;\r\n        this.type = container.dataset.type;\r\n        this.btnAccordion =  container.querySelector(`${this._el('opener',true)} button`);\r\n        this.accordionCollapse = container.querySelector(`${this._el('collapse',true)}`);\r\n        this.list = [...container.getElementsByClassName(`${this._el('item')}`)];\r\n        this.accordionState = this.accordionCollapse.dataset.collapse;\r\n        this.localizedLabels = this.container.dataset.i18n ? JSON.parse(this.container.dataset.i18n) : { selectedLabel: 'selected' };\r\n        this.container.removeAttribute('i18n');\r\n        this.validated = [];\r\n\r\n        this._setAccordion();\r\n    }\r\n\r\n    _setAccordion() {\r\n         \r\n        this.btnAccordion.addEventListener('click', (ev) => {\r\n            ev.preventDefault();\r\n            this._expandAccordion(ev);\r\n        });\r\n\r\n        this.applyBtn = this.container.querySelector(`${this._el('apply-filters',true)}`);\r\n\r\n        this.list.forEach((item) => {\r\n            \r\n            let cbox = item.querySelector('input[type=checkbox]');\r\n\r\n            cbox.addEventListener('change',({target: box}) => {\r\n\r\n                if (box.checked) {\r\n                    item.classList.add('widget-accordion-select__item--selected');\r\n                    box.setAttribute('checked','');\r\n                } else {\r\n                    item.classList.remove('widget-accordion-select__item--selected');\r\n                    box.removeAttribute('checked');\r\n                }\r\n\r\n                let selectedOptions = this.getSelectedFilters();\r\n\r\n                this._changeAccordionLabel(selectedOptions);\r\n                this._sendItemSelectedEvent();\r\n            });\r\n        });\r\n    }\r\n\r\n    _expandAccordion() {\r\n        if (this.accordionState === \"true\") {\r\n            this.closeAccordion();\r\n        } else {\r\n            this.openAccordion();\r\n        }\r\n    }\r\n\r\n    // Open Accordion\r\n    openAccordion() {\r\n        let _height = this.accordionCollapse.querySelector('.widget-accordion-select__content').scrollHeight;\r\n\r\n        this._sendAccordionOpeningEvent();\r\n\r\n        this.accordionCollapse.style.height = _height + 'px';\r\n        this.accordionCollapse.classList.add('show');\r\n        this.accordionCollapse.setAttribute('data-collapse', 'true');\r\n        this.btnAccordion.setAttribute('aria-expanded', 'true');\r\n\r\n        this.accordionState = this.accordionCollapse.dataset.collapse;\r\n    }\r\n\r\n    // Close Accordion\r\n    closeAccordion() {\r\n\r\n        this.accordionCollapse.style.height = null ;\r\n        this.accordionCollapse.classList.remove('show');\r\n        this.accordionCollapse.setAttribute('data-collapse', 'false');\r\n        this.btnAccordion.setAttribute('aria-expanded', 'false');\r\n        this.accordionState = this.accordionCollapse.dataset.collapse;\r\n    }\r\n\r\n    _selectActive(len) {\r\n\r\n        if (len > 0)\r\n            this.container.classList.add('widget-accordion-select--active');\r\n        else\r\n            this.container.classList.remove('widget-accordion-select--active');\r\n    }\r\n\r\n    _changeAccordionLabel(selected) {\r\n\r\n        let accordionOpener = this.container.querySelector(`${this._el('opener',true)}`);\r\n        let accordionSelectedLabel = accordionOpener.querySelector('.selected');\r\n        let placeholder = accordionOpener.querySelector('.label').textContent;\r\n        let newLabel = '';\r\n\r\n        if (selected.length === 1) {\r\n            let selectedItem = Array.from(this.list).filter(item => item.querySelector(`input[value=\"${selected[0]}\"]`) ? true : false)[0];\r\n            newLabel = selectedItem.querySelector('label').textContent;\r\n        } else if (selected.length > 1) {\r\n            newLabel = `${selected.length} ${placeholder} ${this.localizedLabels.selectedLabel}`;\r\n        }\r\n\r\n        accordionSelectedLabel.textContent = newLabel;\r\n    }\r\n\r\n    applyValidatedFilters() {\r\n        this.validated = this.getSelectedFilters();\r\n        return this.validated;\r\n    }\r\n\r\n    getSelectedFilters() {\r\n\r\n        return Array(...this.list).reduce((acc, item) => {\r\n            let cbox = item.querySelector('input[type=checkbox]');\r\n            if (cbox.checked === true) {\r\n                acc.push(cbox.value);\r\n            }\r\n            return acc;\r\n        }, []);\r\n    }\r\n\r\n    getValidatedFilters() {\r\n        return this.validated;\r\n    }\r\n\r\n    getValidatedFiltersCount() {\r\n        return this.validated.length;\r\n    }\r\n\r\n    setValidatedFilters(data) {\r\n\r\n        this.resetAccordion();\r\n\r\n        data.forEach((val) => {\r\n            console.log(\"setting accordion filter\",val)\r\n            let item = Array.from(this.list).filter(item => item.querySelector(`input[value=\"${val}\"]`) ? true : false)[0];\r\n            if (item)\r\n                item.querySelector('input').click();\r\n        });\r\n\r\n        this.applyValidatedFilters();\r\n    }\r\n\r\n    _sendAccordionOpeningEvent() {\r\n        let event = new CustomEvent('accordionOpening', { bubbles: true });\r\n        this.container.dispatchEvent(event);\r\n    }\r\n\r\n    _sendItemSelectedEvent() {\r\n        let event = new CustomEvent('accordionItemSelected', { bubbles: true });\r\n        this.container.dispatchEvent(event);\r\n    }\r\n\r\n    resetValidatedValues() {\r\n\r\n        this.resetAccordion(false);\r\n\r\n        if (this.validated.length > 0) {\r\n\r\n            this.validated.forEach((val) => {\r\n                let cbox = this.container.querySelector(`.widget-accordion-select__item input[value=\"${val}\"]`);\r\n                if (cbox) {\r\n                    cbox.checked = true;\r\n                    cbox.setAttribute('checked','');\r\n                    cbox.parentElement.classList.add('widget-accordion-select__item--selected');\r\n                }\r\n            });\r\n\r\n            this._changeAccordionLabel(this.validated);\r\n            //this._sendItemSelectedEvent();\r\n        }\r\n    }\r\n\r\n    resetAccordion(hardReset=true) {\r\n\r\n        this._changeAccordionLabel(0);\r\n\r\n        this.list.forEach((item) => {\r\n            let cbox = item.querySelector('input[type=checkbox]');\r\n            if (cbox) {\r\n                cbox.checked = false;\r\n                cbox.removeAttribute('checked');\r\n                item.classList.remove('widget-accordion-select__item--selected');\r\n            }\r\n        });\r\n\r\n        if (hardReset) {\r\n            this.validated = [];\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-accordion-select', AccordionSelect);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\nclass Table extends Component {\r\n\r\n    constructor(container) {\r\n        super('widget-table');\r\n\r\n        this.container = container;\r\n        this.containerTable = container.querySelector(`${this._el('container', true)}`);\r\n        this.tableContainer = container.querySelector(`${this._el('table-container', true)}`);\r\n        this.loader = container.querySelector('.loader-table');\r\n        this.tablePath = container.dataset.tablePath;\r\n        this.tableJson;\r\n        this.loadMore = container.querySelector(`${this._el('showMore', true)}`);\r\n        this.searchBar = container.querySelector(this._el('search', true));\r\n        this.filters = container.querySelector(this._el('selects', true));\r\n        this.moreResults = parseInt(container.dataset.moreResults);\r\n        this.syncScroll = false;\r\n        this.heightOfHeadingFull = 0;\r\n        this.heightOfHeadingReduced = 0;\r\n        this.maxHeightOfHeadingTitle = 0;\r\n        this.paddingOfReducedForFullHeading = 0;\r\n        this.tableType = '';\r\n\r\n        this._init();\r\n    }\r\n\r\n    _init() {\r\n        if (this.container.classList.contains('widget-table--informative')) {\r\n            this.tableType = 'informative';\r\n            this._fetchResults();\r\n            if (this.loadMore) {\r\n                this.loadMore.addEventListener('click', (ev) => {\r\n                    ev.preventDefault();\r\n                    this._showMoreResults(this.moreResults);\r\n                });\r\n            }\r\n\r\n            if (this.searchBar) {\r\n                this.searchBar.addEventListener('keyup', () => {\r\n                    this._loadResultsInformativeTable(this.tableJson, this._getFilters(), this.moreResults);\r\n                });\r\n            }\r\n\r\n            if (this.filters) {\r\n                this.filterSelects = this.filters.querySelectorAll('.elem-custom-select-filter-table');\r\n\r\n                this.filterSelects.forEach((fl) => {\r\n                    fl.addEventListener('change', () => {\r\n                        this._loadResultsInformativeTable(this.tableJson, this._getFilters(), this.moreResults);\r\n                    });\r\n                });\r\n            }\r\n\r\n            this.tableContainer.addEventListener('scroll', () => {\r\n                if (this.tableContainer.scrollLeft > 0) {\r\n                    if (!this.tableContainer.classList.contains('scrolled')) {\r\n                        this.tableContainer.classList.add('scrolled');\r\n                    }\r\n                } else {\r\n                    this.tableContainer.classList.remove('scrolled');\r\n                }\r\n            });\r\n\r\n            document.addEventListener('bpDesktop', () => {\r\n                this.tableContainer.style.removeProperty('padding-top');\r\n            });\r\n\r\n            document.addEventListener('bpMobileTablet', () => {\r\n                let tooltips = this.tableContainer.querySelectorAll(`${this._el('tooltipText', true)}`);\r\n                if (tooltips.length > 0) {\r\n                    this._adjustPaddingForTooltip(tooltips);\r\n                }\r\n            });\r\n        } else if (this.container.classList.contains('widget-table--comparative')) {\r\n            this.tableType = 'comparative';\r\n\r\n            this._fetchResults();\r\n\r\n            this.tableContainer.addEventListener('scroll', () => {\r\n                if (this.heightOfHeadingReduced == 0) {\r\n                    this.maxHeightOfHeadingTitle = Math.max(\r\n                        ...Array.from(this.container.querySelectorAll('th h3')).map(item => item.offsetHeight)\r\n                    );\r\n                    let maxHeightOfHeadingCta = this.container.querySelector('th .widget-table__button-heading-container').offsetHeight;\r\n                    this.heightOfHeadingReduced = this.maxHeightOfHeadingTitle + maxHeightOfHeadingCta + 20;\r\n                    this.paddingOfReducedForFullHeading = this.heightOfHeadingFull - this.heightOfHeadingReduced;\r\n                }\r\n\r\n                if (this.tableContainer.scrollTop > 0) {\r\n                    if (!this.tableContainer.querySelector('thead').classList.contains('scrolled')) {\r\n                        this.tableContainer.querySelector('thead').style.paddingTop = '48px';\r\n                        this.container.querySelectorAll('th').forEach(element => {\r\n                            element.style.height = this.heightOfHeadingReduced + 'px';\r\n                            if (getComputedStyle(this.container.querySelectorAll('th > h5')[0]).display != 'none') {\r\n                                element.style.paddingTop = (this.paddingOfReducedForFullHeading - 10) + 'px';\r\n                            }\r\n                        });\r\n\r\n                        this.tableContainer.querySelector('thead > tr').style.maxHeight = this.heightOfHeadingReduced + this.paddingOfReducedForFullHeading + 'px';\r\n\r\n                        this.tableContainer.querySelector('thead').classList.add('scrolled');\r\n                    }\r\n                } else {\r\n                    this._setHeadElementsHeights();\r\n                    this.tableContainer.querySelector('thead').style.removeProperty('padding-top');\r\n                    this.tableContainer.querySelector('thead > tr').style.maxHeight = (this.heightOfHeadingFull + 48) + 'px';\r\n                    this.tableContainer.querySelector('thead').classList.remove('scrolled');\r\n                }\r\n            });\r\n        }\r\n\r\n    }\r\n\r\n    _fetchResults() {\r\n        let staticResource = '';\r\n\r\n        if (this.tableType == 'informative') {\r\n            staticResource = '/assets/files/table-informative-test.json';\r\n        } else if (this.tableType == 'comparative') {\r\n            staticResource = '/assets/files/table-comparative-test-7colspan.json';\r\n        }\r\n\r\n        let request = new XMLHttpRequest();\r\n        let resPath = this.tablePath ? document.location.origin + this.tablePath + \".table.json\" : staticResource;\r\n\r\n        request.open('GET', resPath, true);\r\n        request.timeout = 10000;\r\n        request.responseType = 'json';\r\n        request.onload = () => {\r\n\r\n            if (request.status === 200) {\r\n                try {\r\n                    let jsonResponse = (typeof request.response === 'string' || request.response instanceof String) ? JSON.parse(request.response) : request.response;\r\n                    this.tableJson = jsonResponse;\r\n                    if (this.tableType == 'informative') {\r\n                        this._loadResultsInformativeTable(jsonResponse, this._getFilters(), this.moreResults);\r\n                    } else if (this.tableType == 'comparative') {\r\n                        this._loadResultsComparativeTable(jsonResponse);\r\n                    }\r\n                } catch (err) {\r\n                    console.warn('Table ERROR:', err);\r\n                }\r\n            } else {\r\n                // show error message?\r\n                console.log(`Table Error ${request.status}: ${request.statusText}`);\r\n            }\r\n        };\r\n\r\n        request.onerror = () => {\r\n            console.warn('Table loading network ERROR');\r\n        };\r\n\r\n        request.send();\r\n    }\r\n\r\n    _loadResultsInformativeTable(jsonTable, filtersEnabled = [], moreResults = 0) {\r\n        if (!this.containerTable.classList.contains(`${this._el('container--hidden')}`)) {\r\n            this.containerTable.classList.add(`${this._el('container--hidden')}`);\r\n            this.loader.classList.remove('loader-table--hidden');\r\n        }\r\n\r\n        if (jsonTable) {\r\n            let resultsToShow = [];\r\n            let headingTable = this.container.querySelector('thead');\r\n            let bodyTable = this.container.querySelector('tbody');\r\n\r\n            if (!this.container.querySelector('thead tr')) {\r\n                let rowHeading = document.createElement('tr');\r\n\r\n                jsonTable.heading.forEach((headingColumn) => {\r\n                    let headingCell = document.createElement('th');\r\n                    if (headingColumn.tooltip_text && headingColumn.tooltip_text != '') {\r\n                        headingCell.innerHTML += '<div class=\"widget-table__tooltipContainer\">' + headingColumn.title + '<span class=\"icon-info\"></span><div class=\"widget-table__tooltipText\"></div></div>';\r\n                        headingCell.querySelector(this._el('tooltipText', true)).innerHTML = headingColumn.tooltip_text;\r\n                        headingCell.classList.add('widget-table__tooltipCell');\r\n                    } else {\r\n                        headingCell.innerHTML = headingColumn.title;\r\n                    }\r\n\r\n                    rowHeading.appendChild(headingCell);\r\n                });\r\n\r\n                headingTable.appendChild(rowHeading);\r\n            }\r\n\r\n            bodyTable.innerHTML = '';\r\n\r\n            if (filtersEnabled.length > 0) {\r\n                resultsToShow = jsonTable.rows.filter((row) => {\r\n                    return row.some(rowCell => {\r\n                        if (rowCell.filter && rowCell.filter.trim() != '') {\r\n                            const filtersOfCell = rowCell.filter.split(';');\r\n\r\n                            return filtersEnabled.every(filterSingleEnabled => {\r\n                                return filterSingleEnabled.validated.some(validatedItem => {\r\n                                    return filtersOfCell.includes('filter_true') || filtersOfCell.includes(validatedItem.trim());\r\n                                });\r\n                            });\r\n                        } else {\r\n                            return false;\r\n                        }\r\n                    });\r\n                });\r\n            } else {\r\n                resultsToShow = jsonTable.rows;\r\n            }\r\n\r\n            if (resultsToShow.length > 0) {\r\n                let ct = 0;\r\n                const searchBarText = this.searchBar ? this.searchBar.value.trim() : '';\r\n\r\n                resultsToShow.forEach((result) => {\r\n                    let row = document.createElement('tr');\r\n                    let cellToJump = 0;\r\n                    let hideRowForSearch = true;\r\n                    let ghostRow = false;\r\n\r\n                    if (jsonTable.ghost_rows[jsonTable.rows.indexOf(result)] == \"true\") {\r\n                        row.classList.add(`${this._el('ghost-row')}`);\r\n                        ghostRow = true;\r\n                    }\r\n\r\n                    result.forEach((cell, cellIndex) => {\r\n                        if (cellToJump > 0) {\r\n                            cellToJump--;\r\n                            return;\r\n                        }\r\n\r\n                        let cellElement = document.createElement('td');\r\n\r\n                        if (ghostRow && (cell.colspan == jsonTable.heading.length)) {\r\n                            row.innerHTML = '<td class=\"cell-ghost-mobile\"></td>';\r\n                            cellElement.classList.add(`${this._el('ghost-row-full-desktop')}`)\r\n                        }\r\n\r\n                        if (cell.colspan && parseInt(cell.colspan) > 1) {\r\n                            if (cell.colspan >= result.length - cellIndex) {\r\n                                cell.colspan = result.length - cellIndex;\r\n                            }\r\n\r\n                            cellElement.setAttribute('colspan', cell.colspan);\r\n                            cellElement.classList.add(\"text-center\");\r\n                            cellToJump = parseInt(cell.colspan - 1);\r\n                        }\r\n\r\n                        if (cell.image_src) {\r\n                            cellElement.innerHTML = `<img class=\"widget-table__icon-in-table\" src=\"${cell.image_src}\" alt=\"${cell.alt_aria_label}\" aria-label=\"${cell.alt_aria_label}\" />`;\r\n                        }\r\n\r\n                        if (cell.link) {\r\n                            cellElement.innerHTML += `<a href=\"${cell.link}\" aria-label=\"${cell.alt_aria_label}\">${cell.html_label || cell.label}</a>`;\r\n                        } else {\r\n                            cellElement.innerHTML += cell.html_label || cell.label || '';\r\n                        }\r\n\r\n                        if ((cell.html_label && (cell.html_label.includes('icon-line') || cell.html_label.includes('icon-check')))) {\r\n                            cellElement.classList.add('text-center');\r\n                        }\r\n\r\n                        if (searchBarText == '' || searchBarText.length <= 1) {\r\n                            hideRowForSearch = false;\r\n                        } else {\r\n                            if (cellElement.innerText.toLowerCase().includes(searchBarText.toLowerCase())) {\r\n                                hideRowForSearch = false;\r\n                            }\r\n                        }\r\n\r\n                        row.appendChild(cellElement);\r\n                    });\r\n\r\n                    if (ct >= moreResults) {\r\n                        row.classList.add('hide');\r\n                    } else {\r\n                        row.classList.add('show');\r\n                        if (ct == moreResults - 1) {\r\n                            row.classList.add('last-show-element');\r\n                        }\r\n\r\n                    }\r\n\r\n                    if (hideRowForSearch) {\r\n                        return;\r\n                    }\r\n\r\n                    bodyTable.appendChild(row);\r\n                    ct++;\r\n                });\r\n\r\n                if (ct > moreResults) {\r\n                    this.loadMore.classList.remove('hide');\r\n                } else {\r\n                    if (!this.loadMore.classList.contains('hide')) {\r\n                        this.loadMore.classList.add('hide');\r\n                    }\r\n                }\r\n\r\n                this.container.dataset.countResults = moreResults;\r\n\r\n                if (ct == 0) {\r\n                    this._printNoResult(jsonTable.heading.length);\r\n                }\r\n            } else {\r\n                this._printNoResult(jsonTable.heading.length);\r\n            }\r\n\r\n            let tooltips = this.tableContainer.querySelectorAll(`${this._el('tooltipText', true)}`);\r\n            if (tooltips.length > 0 && window.deviceBreakpoints.bpMobileTablet.matches === true) {\r\n                this._adjustPaddingForTooltip(tooltips);\r\n            }\r\n        }\r\n        this.containerTable.classList.remove(`${this._el('container--hidden')}`);\r\n        this.loader.classList.add('loader-table--hidden');\r\n    }\r\n\r\n    _loadResultsComparativeTable(jsonTable) {\r\n        if (!this.containerTable.classList.contains(`${this._el('container--hidden')}`)) {\r\n            this.containerTable.classList.add(`${this._el('container--hidden')}`);\r\n            this.loader.classList.remove('loader-table--hidden');\r\n        }\r\n\r\n        let headingTable = this.container.querySelector('thead');\r\n        let bodyTable = this.container.querySelector('tbody');\r\n\r\n        if (!this.container.querySelector('thead tr')) {\r\n            let rowHeading = document.createElement('tr');\r\n\r\n            if (jsonTable.heading.length > 4) {\r\n                this.container.classList.add('widget-table__more-items');\r\n                this.syncScroll = true;\r\n                headingTable.classList.add('sync-scroll-container');\r\n                rowHeading.classList.add('sync-scroll');\r\n            }\r\n\r\n            jsonTable.heading.forEach((headingColumn, index) => {\r\n                if (index == 0) {\r\n                    rowHeading.appendChild(document.createElement('th'));\r\n                } else {\r\n                    let headingCell = document.createElement('th');\r\n                    let iconElement = document.createElement('img');\r\n                    let titleElement = document.createElement('h3');\r\n                    let descriptionElement = document.createElement('h5');\r\n                    let buttonContainer = document.createElement('div');\r\n                    let buttonElement = document.createElement('a');\r\n\r\n                    iconElement.src = headingColumn.icon_resource;\r\n                    iconElement.alt = headingColumn.icon_alt;\r\n                    iconElement.width = 80;\r\n                    iconElement.height = 80;\r\n                    titleElement.innerHTML = headingColumn.title;\r\n                    descriptionElement.innerHTML = headingColumn.description;\r\n                    buttonElement.href = headingColumn.cta_link;\r\n                    buttonElement.innerHTML = headingColumn.cta_label;\r\n                    buttonElement.ariaLabel = headingColumn.cta_label;\r\n                    buttonElement.classList.add('btn-primary');\r\n                    buttonElement.classList.add('widget-table__buyCta');\r\n                    buttonContainer.classList.add('widget-table__button-heading-container');\r\n                    buttonContainer.append(buttonElement);\r\n\r\n\r\n                    headingCell.append(iconElement, titleElement, descriptionElement, buttonContainer);\r\n\r\n                    rowHeading.appendChild(headingCell);\r\n                }\r\n            });\r\n\r\n            headingTable.appendChild(rowHeading);\r\n            if (this.syncScroll) {\r\n                let bodyRowControls = document.createElement('tr');\r\n                bodyRowControls.classList.add('widget-table__row-controls');\r\n                bodyRowControls.innerHTML = '<td colspan=\"' + jsonTable.heading.length + '\" style=\"text-align: right;\"><div class=\"widget-table__arrowContainer\"><button class=\"widget-table__arrow widget-table__arrowDisabled widget-table__arrowBack  icon-arrow_left\"></button> <button class=\"widget-table__arrow widget-table__arrowNext icon-arrow_right\"></button></div></td>'\r\n                headingTable.appendChild(bodyRowControls);\r\n            }\r\n        }\r\n\r\n        bodyTable.innerHTML = '';\r\n\r\n        let collapseTableNeedToBeCreated = true;\r\n        let newRowInnerTable = false;\r\n        let skipToNextRow = false;\r\n\r\n        jsonTable.rows.forEach((row) => {\r\n            let rowElement, rowCellElement, iconElement;\r\n\r\n            if (collapseTableNeedToBeCreated) {\r\n                rowElement = document.createElement('tr');\r\n                rowCellElement = document.createElement('td');\r\n            } else {\r\n                rowElement = bodyTable.lastElementChild;\r\n                rowCellElement = rowElement.querySelector('td:last-child');\r\n            }\r\n\r\n            skipToNextRow = false;\r\n\r\n            row.forEach((cell, index) => {\r\n                if (cell.colspan && cell.colspan == jsonTable.heading.length) {\r\n                    collapseTableNeedToBeCreated = true;\r\n\r\n                    rowElement = document.createElement('tr');\r\n\r\n                    if (jsonTable.ghost_rows[jsonTable.rows.indexOf(row)] == 'true') {\r\n                        rowElement.classList.add('active');\r\n                    }\r\n\r\n                    rowCellElement = document.createElement('td');\r\n                    rowCellElement.setAttribute('colspan', parseInt(cell.colspan));\r\n\r\n                    let innerTableHtml = `<div class=\"widget-table__collapse-title\"><div class=\"widget-table__collapse-title-section-description\">${cell.html_label ? cell.html_label : cell.label}</div><div class=\"widget-table__icon icon-caret_down\"></div></div><div class=\"widget-table__inner-table-wrapper\"><table class=\"widget-table__inner-table\"><tbody></tbody></table></div>`;\r\n\r\n                    rowCellElement.innerHTML = innerTableHtml;\r\n\r\n                    if (cell.image_src) {\r\n                        iconElement = document.createElement('img');\r\n                        iconElement.src = cell.image_src;\r\n                        iconElement.alt = cell.alt_aria_label;\r\n                        iconElement.width = 32;\r\n                        rowCellElement.querySelector('.widget-table__collapse-title-section-description').prepend(iconElement);\r\n                    }\r\n\r\n                    if (this.syncScroll) {\r\n                        rowCellElement.querySelector('table').classList.add('sync-scroll');\r\n                    }\r\n\r\n                    skipToNextRow = true;\r\n                } else {\r\n                    if (!skipToNextRow) {\r\n                        if (index == 0) {\r\n                            newRowInnerTable = true;\r\n                        }\r\n                        let innerTableBody = rowCellElement.querySelector('tbody');\r\n                        let innerTableLatestRow = newRowInnerTable ? document.createElement('tr') : innerTableBody.querySelector('tr:last-child');\r\n                        let innerTableCell = document.createElement('td');\r\n\r\n                        if (index == 1) {\r\n                            innerTableCell.innerHTML = '<span class=\"widget-table__absolute-mobile-category\">' + (row[0].html_label ? row[0].html_label : (row[0].label ? row[0].label : \"\")) + '</span>' + (cell.html_label ? cell.html_label : (cell.label ? cell.label : \"\"));\r\n                        } else {\r\n                            innerTableCell.innerHTML = cell.html_label ? cell.html_label : (cell.label ? cell.label : \"\");\r\n                        }\r\n\r\n                        if ((cell.html_label && (cell.html_label.includes('icon-line') || cell.html_label.includes('icon-check')))) {\r\n                            innerTableCell.classList.add('text-center');\r\n                        }\r\n\r\n                        innerTableLatestRow.appendChild(innerTableCell);\r\n\r\n                        if (newRowInnerTable) {\r\n                            innerTableBody.appendChild(innerTableLatestRow);\r\n                            newRowInnerTable = false;\r\n                        }\r\n                    }\r\n                }\r\n\r\n                if (collapseTableNeedToBeCreated) {\r\n                    rowElement.appendChild(rowCellElement);\r\n                }\r\n            });\r\n\r\n            if (collapseTableNeedToBeCreated) {\r\n                rowElement.classList.add('widget-table__collapse');\r\n                bodyTable.appendChild(rowElement);\r\n                collapseTableNeedToBeCreated = false;\r\n            }\r\n        });\r\n        \r\n        let accordionsDefaultOpenTable = bodyTable.querySelectorAll('tr.widget-table__collapse.active');\r\n\r\n        if(accordionsDefaultOpenTable.length > 0) {\r\n            accordionsDefaultOpenTable.forEach(defaultAccordion => {\r\n                this._toggleAccordion(defaultAccordion);\r\n            })\r\n        }\r\n\r\n        \r\n\r\n        bodyTable.querySelectorAll('.widget-table__collapse-title').forEach((at) => {\r\n            at.addEventListener('click', (ev) => {\r\n                ev.target.closest('tr.widget-table__collapse').classList.toggle('active');\r\n                this._toggleAccordion(ev.target);\r\n            });\r\n        });\r\n\r\n        this.heightOfHeadingFull = Math.max(\r\n            ...Array.from(this.container.querySelectorAll('th')).map(item => item.offsetHeight)\r\n        )\r\n\r\n        this._setHeadElementsHeights();\r\n\r\n        if (this.syncScroll) {\r\n            let syncScrollElements = this.container.querySelectorAll('.sync-scroll');\r\n            let arrowButtons = this.container.querySelectorAll('.widget-table__arrow');\r\n\r\n            if (syncScrollElements.length > 0) {\r\n                this.container.querySelector('thead').style = 'width: ' + (bodyTable.querySelector(`${this._el('inner-table', true)}`).offsetWidth + 3) + 'px';\r\n                this.container.querySelector('thead > tr').style = 'width: ' + (bodyTable.querySelector(`${this._el('inner-table', true)}`).offsetWidth + 3) + 'px';\r\n\r\n                arrowButtons.forEach(button => button.addEventListener('click', (event) => {\r\n                    let scrollWidthTable = ((syncScrollElements[0].scrollWidth - syncScrollElements[0].clientWidth) / (jsonTable.heading.length - 4)) * 2;\r\n\r\n                    if (event.target.classList.contains('widget-table__arrowNext')) {\r\n                        syncScrollElements.forEach(div => div.scrollBy({\r\n                            left: scrollWidthTable,\r\n                            behavior: 'smooth'\r\n                        }));\r\n                    } else {\r\n                        syncScrollElements.forEach(div => div.scrollBy({\r\n                            left: -scrollWidthTable,\r\n                            behavior: 'smooth'\r\n                        }));\r\n                    }\r\n                }));\r\n\r\n                syncScrollElements.forEach(div => div.addEventListener('scroll', (e) => {\r\n                    if (window.innerWidth < 1280) {\r\n                        syncScrollElements.forEach(d => {\r\n                            d.scrollRight = div.scrollRight;\r\n                            d.scrollLeft = div.scrollLeft;\r\n                        });\r\n                    } else {\r\n                        if ((syncScrollElements[0].scrollWidth - syncScrollElements[0].clientWidth) == syncScrollElements[0].scrollLeft) {\r\n                            this.container.querySelector('.widget-table__arrowNext').classList.add('widget-table__arrowDisabled');\r\n                        } else {\r\n                            if (e.target.scrollLeft == 0) {\r\n                                this.container.querySelector('.widget-table__arrowBack').classList.add('widget-table__arrowDisabled');\r\n                                this.container.querySelector('.widget-table__arrowNext').classList.remove('widget-table__arrowDisabled');\r\n                            } else {\r\n                                this.container.querySelector('.widget-table__arrowNext').classList.remove('widget-table__arrowDisabled');\r\n                                this.container.querySelector('.widget-table__arrowBack').classList.remove('widget-table__arrowDisabled');\r\n                            }\r\n                        }\r\n                    }\r\n                    syncScrollElements.forEach(element => {\r\n                        if (element.scrollLeft > 0) {\r\n                            element.classList.add('scrolled');\r\n                        } else {\r\n                            element.classList.remove('scrolled');\r\n                        }\r\n                    });\r\n                }));\r\n            }\r\n        }\r\n\r\n        window.addEventListener('resize', () => {\r\n            this.container.querySelectorAll('th').forEach(element => {\r\n                element.style.height = null;\r\n            });\r\n\r\n            this._setHeadElementsHeights();\r\n\r\n            if (this.syncScroll) {\r\n                this.container.querySelector('thead').style = 'width: ' + (bodyTable.querySelector(`${this._el('inner-table', true)}`).offsetWidth + 3) + 'px';\r\n                this.container.querySelector('thead > tr').style = 'width: ' + (bodyTable.querySelector(`${this._el('inner-table', true)}`).offsetWidth + 3) + 'px';\r\n            }\r\n        });\r\n\r\n        this.containerTable.classList.remove(`${this._el('container--hidden')}`);\r\n        this.loader.classList.add('loader-table--hidden');\r\n    }\r\n\r\n    _showMoreResults(moreResults) {\r\n        if (parseInt(this.container.dataset.countResults) >= moreResults) {\r\n            let elementsHidden = this.container.querySelectorAll('tbody tr.hide');\r\n            let ctElementsShow = 0;\r\n\r\n            let lastElement = Math.min(moreResults, elementsHidden.length) - 1;\r\n\r\n            this.container.querySelector('.last-show-element').classList.remove('last-show-element');\r\n\r\n            for (ctElementsShow; ctElementsShow < moreResults; ctElementsShow++) {\r\n                if (elementsHidden[ctElementsShow]) {\r\n                    elementsHidden[ctElementsShow].classList.remove('hide');\r\n                    elementsHidden[ctElementsShow].classList.add('show');\r\n                    if (ctElementsShow == lastElement) {\r\n                        elementsHidden[ctElementsShow].classList.add('last-show-element');\r\n                    }\r\n                } else {\r\n                    this.loadMore.classList.add('hide');\r\n                    break;\r\n                }\r\n            }\r\n\r\n            this.container.dataset.countResults = ctElementsShow;\r\n        }\r\n    }\r\n\r\n    _getFilters() {\r\n\r\n        let filters = [];\r\n\r\n        if (!this.filterSelects)\r\n            this.filterSelects = this.filters.querySelectorAll('.elem-custom-select-filter-table');\r\n\r\n        this.filterSelects.forEach((sel) => {\r\n            if (sel.dataset.filters) {\r\n                filters.push({ type: sel.querySelector('.elem-custom-select-filter-table__box').innerText, validated: sel.dataset.filters.split(',') });\r\n            }\r\n        });\r\n\r\n        return filters;\r\n    }\r\n\r\n    _printNoResult(lengthTable) {\r\n        let noResultsLabel = this.container.dataset.labelNoResults;\r\n\r\n        if (noResultsLabel) {\r\n            let bodyTable = this.container.querySelector('tbody');\r\n            bodyTable.innerHTML = '<tr><td class=\"widget-table__noResultsLabel text-center\" colspan=\"' + lengthTable + '\">' + noResultsLabel + '</td></tr>';\r\n        }\r\n\r\n        if (!this.loadMore.classList.contains('hide')) {\r\n            this.loadMore.classList.add('hide');\r\n        }\r\n    }\r\n\r\n    _setHeadElementsHeights() {\r\n        this.container.querySelectorAll('thead > tr th').forEach(element => {\r\n            element.style.removeProperty('height');\r\n            element.style.removeProperty('padding-top');\r\n        });\r\n\r\n        this.container.querySelectorAll('th').forEach(element => {\r\n            element.style.height = (this.heightOfHeadingFull + 48) + 'px';\r\n        });\r\n    }\r\n\r\n    _toggleAccordion(accordion) {\r\n        let accordionElement = accordion.closest('tr.widget-table__collapse');\r\n        let accordionElementInnerTable = accordionElement.querySelector('.widget-table__inner-table-wrapper');\r\n\r\n        if (accordionElement) {\r\n            if (!accordionElementInnerTable.style.maxHeight) {\r\n                accordionElementInnerTable.style.maxHeight = accordionElement.querySelector('table').offsetHeight + 'px';\r\n            } else {\r\n                accordionElementInnerTable.style.removeProperty('max-height');\r\n            }\r\n\r\n        }\r\n    }\r\n\r\n    _adjustPaddingForTooltip(tooltipsArray) {\r\n        let maxPaddingTable = Math.max(\r\n            ...Array.from(tooltipsArray).map(item => item.offsetHeight)\r\n        );\r\n\r\n        this.tableContainer.style.paddingTop = maxPaddingTable + 'px';\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-table', Table);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport {\r\n    shareEmail,\r\n    shareTwitter,\r\n    shareFacebook,\r\n    shareLinkedin,\r\n    shareXing,\r\n    copyToClipboard\r\n} from '../../libs/commons';\r\n\r\n\r\n\r\nclass ShareButtons extends Component {\r\n\r\n    constructor(container) {\r\n        super('widget-share');\r\n        \r\n        this.container = container.querySelector(`${this._el('container',true)}`);\r\n        this.buttonsList = this.container.querySelectorAll(`${this._el('buttons',true)} ${this._el('share-btn',true)}`);\r\n\r\n        const title = document.querySelector('.widget-hero__title');\r\n        \r\n        this.shareTitle = title ? title.textContent.trim() : document.title,\r\n        this.shareUrl = window.location.href;\r\n\r\n        this.buttonsList.forEach((btn) => {\r\n            btn.addEventListener('click',(ev) => this._handleShareButton(ev));\r\n        });\r\n    }\r\n\r\n    _handleShareButton({target: el}) {\r\n\r\n        let shareData = {\r\n            title: encodeURI(this.shareTitle),\r\n            url: encodeURI(this.shareUrl)\r\n        }\r\n\r\n        switch(el.dataset.type) {\r\n            case 'email':\r\n                shareEmail(shareData);\r\n                break;\r\n            case 'twitter':\r\n                shareTwitter(shareData);\r\n                break;\r\n            case 'linkedin':\r\n                shareLinkedin(shareData);\r\n                break;\r\n            case 'facebook':\r\n                shareFacebook(shareData);\r\n                break;\r\n            case 'xing':\r\n                shareXing(shareData);\r\n                break;\r\n            case 'copy':\r\n                if (copyToClipboard(shareData)) {\r\n                    //show success message\r\n                } else {\r\n                    //show error message\r\n                }\r\n                break;\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-share', ShareButtons);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { triggerWhenVisible, triggerWhenNotVisible } from '../../libs/commons';\r\nimport { forceUpdateLazy, resetImageLazy } from '../../components/media-picture';\r\n\r\n\r\n\r\n\r\nclass Slideshow extends Component {\r\n\r\n    constructor(container) {\r\n        super('widget-slideshow');\r\n\r\n        this.isVisible = false;\r\n        this.swiperExternalDiv = container;\r\n        this.container = container.querySelector(`${this._el('container', true)}`);\r\n        this.autoHeightComponent = false;\r\n        this._initSwiper(container);\r\n    }\r\n\r\n    async _initSwiper() {\r\n        if (this.swiper) {\r\n            this.container.style.height = '';\r\n            this.container.classList.remove(`${this._el('container--fixedHeight', false)}`);\r\n            this._destroySwiper();\r\n        }\r\n\r\n        this.autoHeightComponent = !!this.container.querySelector('.widget-hero');\r\n        let desktopFixedHeight = this.swiperExternalDiv.dataset.heightDesktop;\r\n        let tabletFixedHeight = this.swiperExternalDiv.dataset.heightTablet;\r\n        let mobileFixedHeight = this.swiperExternalDiv.dataset.heightMobile;\r\n\r\n        if (window.deviceBreakpoints.bpDesktop.matches === true && (desktopFixedHeight && desktopFixedHeight != '')) {\r\n            this.container.style.height = parseInt(desktopFixedHeight) + 'px';\r\n            this.autoHeightComponent = false;\r\n            this.container.classList.add(`${this._el('container--fixedHeight', false)}`);\r\n        }\r\n\r\n        if (window.deviceBreakpoints.bpTablet.matches === true && (tabletFixedHeight && tabletFixedHeight != '')) {\r\n            this.container.style.height = parseInt(tabletFixedHeight) + 'px';\r\n            this.autoHeightComponent = false;\r\n            this.container.classList.add(`${this._el('container--fixedHeight', false)}`);\r\n        }\r\n\r\n        if (window.deviceBreakpoints.bpMobile.matches === true && (mobileFixedHeight && mobileFixedHeight != '')) {\r\n            this.container.style.height = parseInt(mobileFixedHeight) + 'px';\r\n            this.autoHeightComponent = false;\r\n            this.container.classList.add(`${this._el('container--fixedHeight', false)}`);\r\n\r\n        }\r\n\r\n\r\n        const Swiper = await import('swiper');\r\n\r\n        const userDelay = parseInt(this.container.dataset.delay);\r\n        const userSpeed = parseInt(this.container.dataset.speed);\r\n        let config = {\r\n            modules: [Swiper.Autoplay, Swiper.EffectFade, Swiper.Navigation, Swiper.Pagination],\r\n            slidesPerView: '1',\r\n            speed: userSpeed && userSpeed >= 300 && userSpeed <= 5000 ? userSpeed : 700,\r\n            effect: 'fade',\r\n            fadeEffect: {\r\n                crossFade: true\r\n            },\r\n            autoHeight: this.autoHeightComponent, // When an Hero is used as a slide enable autoHeight\r\n            roundLengths: true,\r\n            observer: true,\r\n            watchOverflow: true,\r\n            preventInteractionOnTransition: true,\r\n            simulateTouch: false,\r\n            nested: true,\r\n            loop: true,\r\n            navigation: {\r\n                nextEl: '.swiper-button-next',\r\n                prevEl: '.swiper-button-prev',\r\n            },\r\n            pagination: {\r\n                el: '.swiper-pagination',\r\n                type: 'bullets',\r\n                clickable: true\r\n            },\r\n            on: {\r\n                slideChange: (swiper) => {\r\n                    const slides = swiper.el.querySelectorAll('.swiper-slide:not(.swiper-slide-active)');\r\n                    const activeSlide = swiper.el.querySelector('.swiper-slide-active');\r\n\r\n                    if (activeSlide) {\r\n                        const buttons = activeSlide.querySelectorAll('.elem-cta-modal');\r\n                        buttons.forEach((el) => {\r\n                            if (!el.objReference)\r\n                                register.applyTo(el);\r\n                        });\r\n                    }\r\n\r\n                    slides.forEach((el) => {    // Resetting cloned images\r\n                        resetImageLazy(el.querySelector('.media-picture--lazy .media-picture__img'));\r\n                    });\r\n\r\n                    forceUpdateLazy();\r\n                },\r\n                slideChangeTransitionEnd: (swiper) => {\r\n                    if (this.isVisible)\r\n                        this._sendAnalytics(this._getDataForAnalytics(swiper.realIndex));\r\n                }\r\n            }\r\n        };\r\n\r\n        if (userDelay || userSpeed) // If both properties are not used autoplay will not be enabled\r\n            config.autoplay = {\r\n                delay: userDelay && userDelay >= 1 && userDelay <= 15 ? userDelay * 1000 : 7000,\r\n                disableOnInteraction: false\r\n            }\r\n\r\n\r\n        this.swiper = new Swiper.default(this.container, config);\r\n\r\n        const ctaList = this.container.querySelectorAll(`.widget-hero__cta, ${this._el('slide-cta', true)}`);\r\n        ctaList.forEach((item) => {\r\n            item.addEventListener('click', ({ target }) => {\r\n                const ctaUrl = target.href || null;\r\n                this._sendAnalytics(this._getDataForAnalytics(this.swiper.realIndex, ctaUrl));\r\n            });\r\n        });\r\n\r\n        triggerWhenVisible(this.container, () => {\r\n            this.isVisible = true;\r\n            this._sendAnalytics(this._getDataForAnalytics(this.swiper.realIndex));\r\n            triggerWhenNotVisible(this.container, () => this.isVisible = false, true, 30);\r\n        }, false, 70);\r\n\r\n        if(this.container.classList.contains(`${this._el('container--fixedHeight', false)}`)) {\r\n            this.container.style.removeProperty('min-height');\r\n        }\r\n\r\n        /*this.swiper.slides.forEach((el) => {\r\n            el.addEventListener('mediaPictureLoaded', () => {\r\n                console.log('Picture loaded');\r\n                this.swiper.updateSize(); });\r\n        });*/\r\n\r\n        document.addEventListener('bpDesktop', () => {\r\n            this._initSwiper();\r\n        });\r\n        document.addEventListener('bpTablet', () => {\r\n            this._initSwiper();\r\n        });\r\n\r\n        document.addEventListener('bpMobile', () => {\r\n            this._initSwiper();\r\n        });\r\n    }\r\n\r\n    _pauseSlideshow() {\r\n\r\n        if (this.swiper)\r\n            if (this.swiper.autoplay.running) {\r\n                this.swiper.autoplay.stop();\r\n                console.info('Carousel slideshow on PAUSE');\r\n            }\r\n    }\r\n\r\n    _playSlideshow() {\r\n\r\n        if (this.swiper)\r\n            if (!this.swiper.autoplay.running) {\r\n                this.swiper.autoplay.start();\r\n                console.info('Carousel slideshow STARTED');\r\n            }\r\n    }\r\n\r\n    _getDataForAnalytics(swiperIndex, ctaUrl = null) {\r\n\r\n        const activeSlide = this.container.querySelector('.swiper-slide-active');\r\n        const preTitle = activeSlide.querySelector('.widget-hero__pre-title');\r\n        const title = activeSlide.querySelector(`.widget-hero__title, ${this._el('slide-title', true)}`);\r\n        const cta = activeSlide.querySelector(`.widget-hero__cta, ${this._el('slide-cta', true)}`);\r\n\r\n        return {\r\n            action: ctaUrl ? 'click' : 'impression',\r\n            label: preTitle ? preTitle.textContent.trim() : title.textContent.trim(),\r\n            url: ctaUrl ? ctaUrl : cta ? cta.href : null,\r\n            index: swiperIndex + 1,\r\n        };\r\n    }\r\n\r\n    _sendAnalytics(data) {\r\n\r\n        analytics.sendData({\r\n            'event': 'slider',\r\n            'action': data.action,      // \"impression\" or \"click\"\r\n            'label': data.label,        // Product name\r\n            'click_url': data.url,      // Primary CTA href\r\n            'position': data.index      // Swiper slide position\r\n        });\r\n    }\r\n\r\n\r\n    _destroySwiper() {\r\n        if (this.swiper) {\r\n            this.swiper.destroy();\r\n            this.swiper = undefined;\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-slideshow', Slideshow);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\nimport { triggerWhenVisible } from '../../libs/commons';\r\n\r\n\r\n\r\n\r\nclass RoundImages extends Component {\r\n\r\n    constructor(container) {\r\n        super('widget-round-images');\r\n\r\n        this.container = container.querySelector(`${this._el('container',true)}`);\r\n        this.slideItems = container.querySelectorAll(`${this._el('slide',true)}`);\r\n        this.links = container.querySelectorAll(`${this._el('overlay-link',true)}`);\r\n\r\n        document.addEventListener('bpMobile', () => {\r\n            if (this.slideItems.length > 2)\r\n                this._initSwiper();\r\n        });\r\n        document.addEventListener('bpTablet', () => {\r\n            if (this.slideItems.length > 3)\r\n                this._initSwiper();\r\n        });\r\n        document.addEventListener('bpDesktop', () => this._destroySwiper() );\r\n        \r\n        this._init();\r\n    }\r\n\r\n    _init() {\r\n\r\n        this.links.forEach((el) => {\r\n\r\n            if (el.href) {\r\n                el.addEventListener('click', (ev) => { \r\n                    ev.preventDefault();\r\n                    ev.stopPropagation();\r\n\r\n                    if (window.deviceBreakpoints.bpDesktop.matches === false) {\r\n                        const title = ev.target.querySelector(`${this._el('label',true)}`);\r\n                        this._sendAnalytics(\r\n                            'click',\r\n                            title ? title.textContent.trim() : '',\r\n                            ev.target.href || null,\r\n                            this._getActiveSlideIndex(ev.target.parentNode) + 1\r\n                        );\r\n                    }\r\n\r\n                    this._scrollToSection(el);\r\n                });\r\n\r\n                //console.debug(el.href);\r\n            }\r\n        });\r\n\r\n        if ((window.deviceBreakpoints.bpMobile.matches === true \r\n            && this.slideItems.length > 2) ||\r\n            (window.deviceBreakpoints.bpTablet.matches === true\r\n            && this.slideItems.length > 3)) {\r\n            this._initSwiper();\r\n        }\r\n\r\n        triggerWhenVisible(this.container, () => {\r\n\r\n            if (window.deviceBreakpoints.bpDesktop.matches === false) {\r\n                const count = window.deviceBreakpoints.bpMobile.matches === true ? 2 : 3;\r\n                const slides = this.container.querySelectorAll(`${this._el('slide',true)}`);\r\n\r\n                for (let i = 0; i < count; i++) {\r\n                    const title = slides[i].querySelector(`${this._el('label',true)}`);\r\n                    const cta = slides[i].querySelector(`${this._el('overlay-link',true)}`);\r\n                    this._sendAnalytics(\r\n                        'impression',\r\n                        title.textContent.trim(),\r\n                        cta ? cta.href || '' : '',\r\n                        i + 1\r\n                    );\r\n                };\r\n            }\r\n        }, true);\r\n    }\r\n    \r\n    async _initSwiper() {\r\n\r\n        if (!this.swiper) {\r\n            const Swiper = await import('swiper');\r\n            let _swiperDefaults = {\r\n                modules: [Swiper.Autoplay, Swiper.EffectFade, Swiper.Navigation, Swiper.Pagination],\r\n                slidesPerView: '2',\r\n                spaceBetween: 15,\r\n                speed: 700,\r\n                roundLengths: true,\r\n                observer: true,\r\n                watchOverflow: true,\r\n                nested: true,\r\n                watchSlidesVisibility: true,\r\n                // centerInsufficientSlides: true,\r\n                grabCursor: true,\r\n                scrollbar: {\r\n                    el: \".swiper-scrollbar\",\r\n                },\r\n                breakpoints: {\r\n                    // when window width is >= 768px\r\n                    768: {\r\n                        slidesPerView: '3',\r\n                        spaceBetween: 15,\r\n                        grabCursor: true\r\n                    },\r\n                },\r\n                on: {\r\n                    slideChange: () => {\r\n                        this.slideChanged = true;\r\n                    },\r\n                    touchEnd: () => {\r\n                        this.touchEnded = true;\r\n                    },\r\n                    transitionEnd: () => {\r\n\r\n                        if (this.slideChanged && this.touchEnded) {\r\n\r\n                            this.slideChanged = false;\r\n                            this.touchEnded = false;\r\n\r\n                            const visibleSlides = [...this.container.querySelectorAll(`.swiper-slide.swiper-slide-visible`)];\r\n\r\n                            visibleSlides.forEach((item) => {\r\n                                const title = item.querySelector(`${this._el('label',true)}`);\r\n                                const cta = item.querySelector(`${this._el('overlay-link',true)}`);\r\n                                //console.log(swiper,item,title,cta);\r\n                                this._sendAnalytics(\r\n                                    'impression',\r\n                                    title.textContent.trim(),\r\n                                    cta? cta.href || '': '',\r\n                                    this._getActiveSlideIndex(item) + 1\r\n                                );\r\n                            });\r\n                        }\r\n                    }\r\n                }\r\n            };\r\n\r\n            this.swiper = new Swiper.default(this.container, _swiperDefaults);\r\n        } else {\r\n            this.swiper.update();\r\n        }\r\n    }\r\n\r\n    _destroySwiper() {\r\n\r\n        if (this.swiper) {\r\n            this.swiper.destroy();\r\n            this.swiper = undefined;\r\n        }\r\n    }\r\n\r\n    _scrollToSection(el) {\r\n        let value = el.getAttribute('href');\r\n\r\n        if (value) {\r\n            value = value.replace(\"#\", \"\");\r\n            let element = document.getElementById(value);\r\n\r\n            if (element) {\r\n                // Get the size and position of our element in the viewport\r\n                //const containerBox = element.getBoundingClientRect();\r\n                let offsetTop = element.offsetTop;\r\n\r\n                let scrollOptions = {\r\n                    left: 0,\r\n                    top: offsetTop,\r\n                    behavior: 'smooth'\r\n                }\r\n                \r\n                window.scrollTo(scrollOptions);\r\n            }\r\n        }\r\n    }\r\n\r\n    _getActiveSlideIndex(item) {\r\n        return Array.prototype.indexOf.call(item.parentNode.children, item);\r\n    }\r\n\r\n    _sendAnalytics(action,label,url,position) {\r\n\r\n        analytics.sendData({\r\n            'event': 'slider',\r\n            'action': action,           // \"impression\" or \"click\"\r\n            'label': label,             // Product name\r\n            'click_url': url || '',     // Primary CTA href\r\n            'position': position        // Swiper slide position\r\n        });\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-round-images', RoundImages);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\n\r\n\r\n\r\nclass LogosGrid extends Component {\r\n\r\n    constructor(container) {\r\n        super('widget-logos-grid');\r\n\r\n        this.grid = container;\r\n        this.items = container.querySelectorAll(this._el('item', true));\r\n        this.loadButton = container.querySelector('.elem-cta-load-more');\r\n\r\n        this._logosInit()\r\n        this._addCommonInit();\r\n    }\r\n\r\n    _addCommonInit() {\r\n\r\n        document.addEventListener('bpMobile', () => this._logosInit() );\r\n        document.addEventListener('bpTablet', () => this._logosInit() );\r\n        document.addEventListener('bpDesktop', () => this._logosInit() );\r\n\r\n        if (this.loadButton) {\r\n            \r\n            this.loadButton.addEventListener('click', (ev) => {\r\n                ev.preventDefault();\r\n                this._loadMore();\r\n            });\r\n        }\r\n    }\r\n\r\n    _logosInit() {\r\n        // When viewport changed, reset and hide the correct number of items\r\n        this._showAll();\r\n\r\n        this.itemsCount = window.deviceBreakpoints.bpMobile.matches === true ? 6 : 12;\r\n\r\n        if (this.items.length > this.itemsCount) {\r\n\r\n            this.items.forEach((item, index) => {\r\n                if (index >= this.itemsCount) {\r\n                    item.classList.remove('show');\r\n                    item.classList.add('hidden');\r\n                }\r\n            });\r\n\r\n            this.grid.classList.remove('show-all');\r\n            this.loadButton.classList.remove('cta-hidden');\r\n        } else {\r\n            this.loadButton.classList.add('cta-hidden');\r\n        }\r\n    }\r\n\r\n    _showAll() {\r\n        this.items.forEach((el) => {\r\n            el.classList.add('show');\r\n            el.classList.remove('hidden');\r\n        });\r\n\r\n        this.grid.classList.add('show-all');\r\n    }\r\n\r\n    _reset() {\r\n        this.grid.classList.remove('show-all');\r\n        this._logosInit();\r\n    }\r\n\r\n    _loadMore() {\r\n        const showAll = this.grid.classList.contains('show-all')\r\n        \r\n        if(showAll){\r\n           this._reset();\r\n        } else {\r\n            this._showAll();\r\n        }\r\n    }\r\n}\r\n\r\n/*const hideLogos = () => {\r\n    const logo = document.querySelectorAll('.widget-logos-grid__item');\r\n    const btn = document.querySelector('.elem-cta-load-more');\r\n    const itemsCount = 6;\r\n\r\n    if(logo.length > itemsCount) {\r\n        logo.forEach((item, index) => {\r\n            if (index >= itemsCount) {\r\n                item.classList.remove('show');\r\n                item.classList.add('hidden');\r\n            }\r\n        });\r\n\r\n        btn.classList.remove('cta-hidden');\r\n    }\r\n}\r\n\r\n(() => {\r\n\r\n    hideLogos();\r\n\r\n})();*/\r\n\r\nregister.registerClass('.widget-logos-grid', LogosGrid);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { analytics } from '../../libs/analytics';\r\n\r\n\r\n\r\nclass Chatbot extends Component {\r\n    constructor(container) {\r\n        super('widget-chatbot');\r\n\r\n        this.container = container;\r\n        this.chatbot = this.container.querySelector('.help-container');\r\n        this.btnOpen = this.container.querySelector('.help-label');\r\n        this.chatbotMinimized = this.container.querySelector('.help-minimized');\r\n        this.chatbotInner = this.chatbotMinimized.querySelectorAll('.help-inner');\r\n        this.chatSelectContainer = this.container.querySelector('.help-select-container');\r\n        this.chatSelect = container.querySelector('.help-select');\r\n\r\n        this.btnClose = this.chatbotMinimized.querySelector('.help-close');\r\n        this.chatList = this.container.querySelector('.help-list-items');\r\n        this.btnOpenChat = this.container.querySelector('.help-open-chat')\r\n\r\n        this.chatbotOpened = false;\r\n        this.chatbotDefaultSize = 60;\r\n\r\n        this.chatSelectConfig = {\r\n            panelItem: {\r\n                position: 'bottom',\r\n                item: '<span></span>'\r\n            }\r\n        };\r\n\r\n        this._addChatbot();\r\n\r\n        this._init();\r\n\r\n        this._initSelect();\r\n    }\r\n\r\n    _addChatbot() {\r\n        if (window.chatUtilities && window.chatUtilities.chatVisible) {\r\n\r\n            let retryCount = 5;\r\n            const dataLib = this.chatbot.dataset.lib || '/etc.clientlibs/nexinew/clientlibs/clientlib-chatbot/resources/chat.conf.js';\r\n\r\n            const cxbusSetup = () => {\r\n\r\n                if (CXBus) {\r\n\r\n                    CXBus.configure({\r\n                        debug: false,\r\n                        pluginsPath: 'https://apps.mypurecloud.com/widgets/9.0.017.06/plugins/'\r\n                    });\r\n\r\n                    CXBus\r\n                        .loadFile(dataLib)\r\n                        .done(() => {\r\n                            console.log('CXBus Chat plugin loading');\r\n                            CXBus.loadPlugin('widgets-core');\r\n                        })\r\n                        .fail(() => {\r\n                            throw Error('Loading \"chat.conf.js\" failed');\r\n                        });\r\n                } else {\r\n                    throw Error('No CXBus loaded yet.');\r\n                }\r\n            };\r\n\r\n            const onCXloaded = () => {\r\n                try {\r\n                    retryCount--;\r\n                    cxbusSetup()\r\n                } catch (err) {\r\n                    console.log('CXBus loading error:', err);\r\n\r\n                    if (retryCount > 0) {\r\n                        setTimeout(onCXloaded, 2000);\r\n                    } else {\r\n                        console.log('CXBus loading aborted!');\r\n                    }\r\n                }\r\n            }\r\n\r\n            const chat = document.createElement('script');\r\n            chat.src = 'https://apps.mypurecloud.ie/widgets/cxbus.min.js';\r\n            chat.id = 'hljs';\r\n            chat.async = true;\r\n            chat.onload = onCXloaded;\r\n\r\n            document.body.appendChild(chat);\r\n        }\r\n    }\r\n\r\n    async _init() {\r\n        this.anime = await import('animejs/lib/anime.es.js');\r\n\r\n        if (this.chatbot) {\r\n            this.btnOpen.addEventListener('click', (ev) => {\r\n                ev.stopPropagation();\r\n                this._openClickHandler();\r\n                this.sendAnalytics('click', 'Bubble assistenza');\r\n            });\r\n\r\n            this.btnClose.addEventListener('click', (ev) => {\r\n                ev.stopPropagation();\r\n                this._closeClickHandler();\r\n            });\r\n\r\n            this._addClickOutside();\r\n        }\r\n\r\n    }\r\n\r\n    // Initialize select\r\n    async _initSelect() {\r\n        const Select = await import('select-custom');\r\n\r\n        if (!this.selectCustom) {\r\n            const config = this.chatSelectConfig;\r\n\r\n            this.selectCustom = new Select.default(this.chatSelect, config);\r\n\r\n            this.selectCustom.onOpen = () => {\r\n\r\n                if (this.scrollbar)\r\n                    this.scrollbar.update();\r\n            };\r\n\r\n            this.selectCustom.init();\r\n\r\n            this._addCustomScrollbar();\r\n\r\n            this.chatSelectContainer.classList.add('active');\r\n\r\n        }\r\n\r\n        this._fetchHelpLinks();\r\n\r\n        // When chat assistance is opening, close help tool\r\n        this.btnOpenChat.addEventListener('click', () => {\r\n            this._closeClickHandler();\r\n        });\r\n    }\r\n\r\n    // Close select\r\n    _closeSelect() {\r\n        if (this.chatSelectContainer.querySelector('.custom-select--open'))\r\n            this.chatSelectContainer.querySelector('.custom-select__opener').click();\r\n    }\r\n\r\n    async _addCustomScrollbar() {\r\n        const scrollbar = this.container.querySelector('.custom-select__options');\r\n\r\n        if (scrollbar) {\r\n            const PerfectScrollbar = await import('perfect-scrollbar');\r\n            this.scrollbar = new PerfectScrollbar.default(scrollbar, {\r\n                //scrollYMarginOffset: '11',\r\n                suppressScrollX: true,\r\n                wheelPropagation: false,\r\n                swipeEasing: true\r\n            });\r\n\r\n            this.scrollbar.update();\r\n\r\n            const scrollbarRail = scrollbar.querySelector('.ps__rail-y');\r\n            scrollbarRail.addEventListener('click', (ev) => {\r\n                ev.stopImmediatePropagation();  // Disable select closing on scrollbar click\r\n            });\r\n        }\r\n    }\r\n\r\n    _detachClickHandler() {\r\n        this.btnClose.removeEventListener('click', this._openClickHandler);\r\n    }\r\n\r\n    _addClickOutside() {\r\n\r\n        let handler = (ev) => {\r\n            if (!this.container.contains(ev.target)) {\r\n                this._closeClickHandler(ev);\r\n            }\r\n        };\r\n\r\n        document.body.addEventListener('click', handler);\r\n    }\r\n\r\n\r\n    // Open Chatbot\r\n    _openClickHandler() {\r\n        if (!this.chatbotOpened) {\r\n            console.log('***HELP WIDGET OPENED');\r\n\r\n            let beforeWidth = this.chatbotMinimized.offsetWidth;\r\n            let beforeHeight = this.chatbotMinimized.offsetHeight;\r\n\r\n            this.chatbotMinimized.classList.add('is-opening');\r\n\r\n            let width = this.chatbotMinimized.querySelector('.help-content').offsetWidth;\r\n            let height = this.chatbotMinimized.querySelector('.help-content').offsetHeight;\r\n\r\n            this.chatbotMinimized.classList.remove('is-opening');\r\n\r\n            let chatbot = this;\r\n\r\n            this.anime.default({\r\n                targets: this.chatbotMinimized,\r\n                width: [beforeWidth, width],\r\n                height: [beforeHeight, height],\r\n                duration: 400,\r\n                easing: 'easeOutExpo',\r\n\r\n                begin: function () {\r\n                    chatbot.chatbotMinimized.classList.add('help-expanded');\r\n                },\r\n                complete: function () {\r\n\r\n                    chatbot.chatbotMinimized.style.width = \"\";\r\n                    chatbot.chatbotMinimized.style.height = \"\";\r\n\r\n                    chatbot.chatbotInner.forEach(element => {\r\n                        element.classList.add('active');\r\n                    });\r\n\r\n                    chatbot.sendAnalytics('impression', 'Bubble assistenza aperto');\r\n                }\r\n            });\r\n\r\n            this.chatbotOpened = true;\r\n        }\r\n    }\r\n\r\n\r\n    // Close Chatbot\r\n    _closeClickHandler() {\r\n        if (this.chatbotOpened) {\r\n            console.log('***HELP WIDGET CLOSED');\r\n\r\n            let beforeWidth = this.chatbotMinimized.offsetWidth;\r\n            let beforeHeight = this.chatbotMinimized.offsetHeight;\r\n\r\n            let width = this.chatbotDefaultSize;\r\n            let height = this.chatbotDefaultSize;\r\n\r\n            if (this.chatSelectContainer.querySelector('.custom-select--open')) {\r\n                this._closeSelect();\r\n            }\r\n\r\n            let chatbot = this;\r\n\r\n            this.anime.default({\r\n                targets: this.chatbotMinimized,\r\n                easing: 'easeOutExpo',\r\n                duration: 400,\r\n                width: [beforeWidth, width],\r\n                height: [beforeHeight, height],\r\n                begin: function () {\r\n                    chatbot.chatbotMinimized.classList.remove('help-expanded');\r\n                },\r\n                complete: function () {\r\n                    chatbot.chatbotMinimized.style.width = \"\";\r\n                    chatbot.chatbotMinimized.style.height = \"\";\r\n                }\r\n            });\r\n\r\n            this.chatbotInner.forEach(element => {\r\n                element.classList.remove('active');\r\n            });\r\n\r\n            this.chatbotOpened = false;\r\n        }\r\n    }\r\n\r\n    // Insert related help links \r\n    _changeItemList(data, ev) {\r\n        let path = ev.target.value;\r\n        let itemsList = data.find((elem) => elem.path === path);\r\n\r\n        this._insertHelpLinks(itemsList);\r\n    }\r\n\r\n    // Inserts help links\r\n    _insertHelpLinks(elem) {\r\n        console.debug(elem);\r\n\r\n        this.chatList.innerHTML = \"\";\r\n\r\n        elem.sublevel.forEach((item) => {\r\n\r\n            let helpItem = document.createElement('li');\r\n            this.chatList.appendChild(helpItem);\r\n\r\n            let helpItemLink = document.createElement('a');\r\n            helpItemLink.href = item.url;\r\n            helpItemLink.appendChild(document.createTextNode(item.title));\r\n\r\n            helpItem.appendChild(helpItemLink);\r\n\r\n        });\r\n    }\r\n\r\n    _fetchHelpLinks() {\r\n\r\n        let request = new XMLHttpRequest();\r\n        let data;\r\n        let dataUrl = this.chatbot.dataset.url;\r\n\r\n        let helpItemsList = [];\r\n        let currentPage = this.chatbot.getAttribute('data-current-page');\r\n\r\n        // console.debug(currentPage);\r\n\r\n        let resPath = this.endpoint ? this.endpoint : dataUrl; //'/assets/files/assist.json'; // window.resources.assistance\r\n\r\n        request.open('GET', resPath, true);\r\n\r\n        request.onload = () => {\r\n\r\n            if (request.status === 200) {\r\n                data = request.responseText;\r\n                helpItemsList = JSON.parse(data);\r\n\r\n                // Find if there is the same path inside data attribute\r\n                const currentTree = helpItemsList.find((elem) => currentPage.indexOf(elem.path) >= 0);\r\n                console.debug(currentTree, helpItemsList);\r\n\r\n                if (currentTree) {\r\n\r\n                    this.chatSelectContainer.remove();\r\n                    this._insertHelpLinks(currentTree);\r\n\r\n                } else {\r\n\r\n                    this.chatSelect.addEventListener('change', (ev) => {\r\n                        this._changeItemList(helpItemsList, ev);\r\n                    });\r\n\r\n                    let defaultPath = this.chatSelectContainer.querySelector('.custom-select__option--selected').dataset.value;\r\n\r\n                    if (defaultPath) {\r\n                        let defaultItemsList = helpItemsList.find((elem) => elem.path === defaultPath);\r\n                        this._insertHelpLinks(defaultItemsList);\r\n                    }\r\n                }\r\n\r\n            } else {\r\n                console.log(\"We reached our target server, but it returned an error\");\r\n            }\r\n        }\r\n\r\n        request.onerror = () => {\r\n            console.warn('*** ERROR: Help Assistant data not retrieved:', request);\r\n        };\r\n\r\n        request.send();\r\n\r\n    }\r\n\r\n    sendAnalytics(action, label) {\r\n        analytics.sendData({\r\n            'event': 'gaEvent_help',\r\n            'eventCategory': 'Help',\r\n            'eventAction': action,\r\n            'eventLabel': label\r\n        });\r\n    }\r\n\r\n}\r\n\r\nregister.registerClass('.widget-chatbot', Chatbot);","import Component from '../../libs/component';\r\nimport {register} from '../../libs/register';\r\n\r\n\r\nclass StickyBarDob extends Component {\r\n    \r\n    constructor(container) {\r\n        super('base-sticky-bar-dob');\r\n\r\n        this.sticky = container;\r\n        this.MENU_OFFSET_DESKTOP = window.innerHeight * 0.125;\r\n        this.MENU_OFFSET_TABLET = window.innerHeight * 0.20;\r\n        this.MENU_OFFSET_MOBILE = window.innerHeight * 0.20;\r\n\r\n        this._initScrollHide = this.initScrollHide.bind(this);\r\n        this._onScrollHide = this.onScrollHide.bind(this);\r\n        this._cleanScrollHide = this.cleanScrollHide.bind(this);\r\n        this._unhideStickyBar = this.unhideStickyBar.bind(this);\r\n        this._disableDesktopScrollHide = this.disableDesktopScrollHide.bind(this);\r\n        this.ticking = false;\r\n        this.scrolling = false;\r\n\r\n        this._addCommonInit();\r\n        this._initScrollHide();\r\n\r\n        document.body.classList.add('sticky-bar-dob-enabled');\r\n    }\r\n\r\n    _addCommonInit() {\r\n        console.log('INIT STICKY BAR');\r\n        switch (true) {\r\n            case window.deviceBreakpoints.bpMobile.matches:\r\n                this._addScrollListener(this.MENU_OFFSET_MOBILE);\r\n                break;\r\n            case window.deviceBreakpoints.bpTablet.matches:\r\n                this._addScrollListener(this.MENU_OFFSET_TABLET);\r\n                break;\r\n            case window.deviceBreakpoints.bpDesktop.matches:\r\n                this._addScrollListener(this.MENU_OFFSET_DESKTOP);\r\n                break;\r\n        }\r\n        document.addEventListener('bpMobile', () => { this._addScrollListener(this.MENU_OFFSET_MOBILE); });\r\n        document.addEventListener('bpTablet', () => { this._addScrollListener(this.MENU_OFFSET_TABLET); });\r\n        document.addEventListener('bpDesktop', () => { this._addScrollListener(this.MENU_OFFSET_DESKTOP); });\r\n    }\r\n\r\n    _addScrollListener(menuOffset) {\r\n        let sticky = false,\r\n            prevScrollPos = 0,\r\n            lastScrollPos = window.scrollY || window.pageYOffset;\r\n        this._checkScrollPosition(lastScrollPos,prevScrollPos,menuOffset);\r\n\r\n        const handleScroll = () => {\r\n            lastScrollPos = window.pageYOffset;\r\n            if (!sticky) {\r\n                window.requestAnimationFrame( () => {\r\n                    this._checkScrollPosition(lastScrollPos,prevScrollPos,menuOffset);\r\n                    prevScrollPos = lastScrollPos;\r\n                    sticky = false;\r\n                });\r\n                sticky = true;\r\n            }\r\n        }\r\n\r\n        document.removeEventListener('scroll', handleScroll);\r\n        document.addEventListener('scroll', handleScroll);\r\n    }\r\n\r\n    _checkScrollPosition(lastPos,prevPos,offset) {\r\n        if (lastPos > offset && lastPos > prevPos) {\r\n            document.body.classList.add('sticky-scrolled');\r\n        } else if (lastPos < offset) {\r\n            document.body.classList.remove('sticky-scrolled');\r\n        }\r\n    }\r\n\r\n    initScrollHide() {\r\n        this._cleanScrollHide();\r\n        document.addEventListener('bpDesktop', this._disableDesktopScrollHide);\r\n        document.addEventListener('bpTablet', this._initScrollHide);\r\n        document.addEventListener('bpMobile', this._initScrollHide);\r\n        if (window.deviceBreakpoints.bpDesktop.matches === false) {\r\n            document.addEventListener('scroll', this._onScrollHide);\r\n        }\r\n    }\r\n\r\n    cleanScrollHide() {\r\n        document.removeEventListener('bpDesktop', this._disableDesktopScrollHide);\r\n        document.removeEventListener('bpTablet', this._initScrollHide);\r\n        document.removeEventListener('bpMobile', this._initScrollHide);\r\n        this._disableDesktopScrollHide();\r\n    }\r\n\r\n    disableDesktopScrollHide() {\r\n        document.removeEventListener('scroll', this._onScrollHide);\r\n        this._unhideStickyBar();\r\n    }\r\n\r\n    onScrollHide() {\r\n        if (!this.ticking) {\r\n            window.requestAnimationFrame( () => {\r\n                this.ticking = false;\r\n            });\r\n            this.ticking = true;\r\n        }\r\n    }\r\n\r\n    unhideStickyBar() {\r\n        this.sticky.classList.remove(this._mod('hidden'));\r\n    }\r\n\r\n}\r\n\r\nregister.registerClass('.base-sticky-bar-dob', StickyBarDob);","import Component from '../../libs/component';\r\n\r\nexport default class DynamicComponent extends Component {\r\n    constructor(name) {\r\n        super(name);\r\n    }\r\n\r\n    _dynamicComponentConstructor(component, componentName) {\r\n        if (this._isDynamicComponent(component)) {\r\n            this.queryString;\r\n            this.lpDob;\r\n            this.lpDobJsonResponse;\r\n            this.componentName = componentName;\r\n\r\n            this.dynamicComponents = component.getAttribute('dynamic-components');\r\n            this.dynamicTextParam = component.getAttribute('dynamic-text-param');\r\n            this.dynamicImageParams = component.getAttribute('dynamic-image-params');\r\n\r\n            this.productParam = 'nomeprodottonexi';\r\n            this.circuitParam = 'circuito';\r\n\r\n            this._initDynamicComponent();\r\n        }\r\n    }\r\n\r\n    async _initDynamicComponent() {\r\n        this.dynamicComponents = this._stringToList(this.dynamicComponents, ',');\r\n        this.dynamicImageParams = this._stringToList(this.dynamicImageParams, ',');\r\n        this.lpDob = await import('../base-lp-dob');\r\n        this.queryString = this.lpDob.getDynamicPageQueryString();\r\n        this._loadDynamicParameters();\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        return;\r\n    }\r\n\r\n    _isDynamicComponent(component) {\r\n       return component.classList.contains('dynamic') || component.getAttribute('dynamic-components');\r\n    }\r\n\r\n    _hasDynamicComponent(componentName) {\r\n        return this.dynamicComponents && this.dynamicComponents.includes(componentName);\r\n    }\r\n\r\n    _setInnerHtml(htmlComponent, htmlText, lastChild = false) {\r\n        if (!htmlComponent || !htmlText) {\r\n            return;\r\n        }\r\n\r\n        let text = htmlComponent;\r\n        text.innerHTML = text.innerHTML.replace('<br>', '');\r\n\r\n        if (lastChild) {\r\n            while (text.lastElementChild) {\r\n                text = text.lastElementChild;\r\n            }\r\n        }\r\n\r\n        text.innerHTML = htmlText;\r\n    }\r\n\r\n    _stringToList(string, separator) {\r\n        if (string) {\r\n            string = string.split(separator).filter(p => p);\r\n        }\r\n\r\n        return string;\r\n    }\r\n}","import DynamicComponent from '../base-dynamic-component';\r\nimport { register } from '../../libs/register';\r\n\r\nclass FooterLpDob extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('base-footer-lp-dob');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'footer-lp-dob');\r\n        this.dynamicTextParam = 'nomeprodottonexi';\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        this.lpDobJsonResponse = await this.lpDob.getDynamicPageJsonResponse();\r\n\r\n        if (this.lpDobJsonResponse) {\r\n            this._setDynamicText();\r\n        }\r\n    }\r\n\r\n    _setDynamicText() {\r\n            let promoJson = this.lpDobJsonResponse[this.dynamicTextParam];\r\n            if (!promoJson || Object.keys(promoJson).length <= 0) {\r\n                return;\r\n            }\r\n\r\n            let dynamicComponentPrefix = 'Footer';\r\n\r\n            this._setInnerHtml(\r\n                this.container.querySelector('.elem-text'),\r\n                promoJson[dynamicComponentPrefix + 'RichText']\r\n            );\r\n        }\r\n}\r\n\r\nregister.registerClass('.base-footer-lp-dob', FooterLpDob);","import Component from '../../libs/component';\r\nimport { register } from '../../libs/register';\r\nimport { setBlockScroll, removeBlockScroll } from '../base-page';\r\nimport circles from '../../assets/lottie/circles.json';\r\n\r\nclass LpDobLoaderModal extends Component {\r\n    constructor(container) {\r\n        super('widget-lp-dob-modal-loader');\r\n\r\n        this.modal = container;\r\n        this.modalId = container.id;\r\n        this.modalBody = this.modal.querySelector(this._el('body',true));\r\n        this.backdrop = container.querySelector(this._el('backdrop',true));\r\n        this.animContainer = this.modal.querySelector(this._el('animation',true));\r\n        this.showOnLoad = !container.classList.contains('hidden');\r\n\r\n        this._modalInit();\r\n    }\r\n\r\n    // Init Modal\r\n    _modalInit() {\r\n        this._addAnimation();\r\n\r\n        if (this.showOnLoad)\r\n            this._openModalOnLoad();\r\n    }\r\n\r\n    _openModal() {\r\n\r\n        this._openModalOnLoad();\r\n        this.modalBody.scrollTo(0, 0);\r\n    }\r\n\r\n    _openModalOnLoad() {\r\n\r\n        setBlockScroll();\r\n        this.modal.classList.remove('hidden');\r\n        this.modal.classList.add(\"show\");\r\n\r\n        if (this.expiredCampaign)\r\n            this.showMessage('expired');\r\n    }\r\n\r\n    async _addAnimation() {\r\n\r\n        if (!this.lottie) {\r\n\r\n            const params = {\r\n                container: this.animContainer,\r\n                renderer: 'svg',\r\n                loop: true,\r\n                autoplay: true,\r\n                animationData: circles\r\n            };\r\n            const Lottie = await import('lottie-web/build/player/lottie_light');\r\n            this.lottie = Lottie.default.loadAnimation(params);\r\n            this.lottie\r\n                .addEventListener('DOMLoaded',() => {\r\n                    setTimeout(() => this._removeModal(), 2000);\r\n                });\r\n        }\r\n    }\r\n\r\n    _removeModal() {\r\n        removeBlockScroll();\r\n        this.modal.remove();\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-lp-dob-modal-loader', LpDobLoaderModal);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\n\r\nclass Image extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('elem-image');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'image');\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        this.lpDob.setDynamicComponentAssets(\r\n            this.container, this.componentName, this.componentName, this.dynamicImageParams\r\n        );\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-image', Image);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\n\r\nclass HighlightCard extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('elem-highlight-card');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'highlight-card');\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        if (this._hasDynamicComponent('background')) {\r\n            this.lpDob.setDynamicBackgroundColor(this.container.querySelector('.elem-highlight-card__container'));\r\n        }\r\n\r\n        let highlightCardImage = this.container.querySelector('.elem-highlight-card__image');\r\n        if (this._hasDynamicComponent('images') && highlightCardImage) {\r\n            this.lpDob.setDynamicComponentAssets(\r\n                highlightCardImage, this.componentName, this.componentName, this.dynamicImageParams\r\n            );\r\n        }\r\n\r\n        if (this._hasDynamicComponent('text')) {\r\n            this.lpDobJsonResponse = await this.lpDob.getDynamicPageJsonResponse();\r\n\r\n            if (this.lpDobJsonResponse && this.dynamicTextParam) {\r\n                this._setDynamicText();\r\n            }\r\n        }\r\n    }\r\n\r\n    _setDynamicText() {\r\n        let promoJson = this.lpDobJsonResponse[this.dynamicTextParam];\r\n        if (!promoJson || Object.keys(promoJson).length <= 0) {\r\n            return;\r\n        }\r\n\r\n        const dynamicId = 'dynamic_id_' + this.componentName;\r\n\r\n        if(!this.container.id.includes(dynamicId)) {\r\n            return;\r\n        }\r\n\r\n        let cardNumber = this.container.id.split(dynamicId)[1];\r\n        let dynamicComponentPrefix = 'HighlightCard' + cardNumber;\r\n\r\n        this._setInnerHtml(\r\n            this.container.querySelector('.elem-title'),\r\n            promoJson[dynamicComponentPrefix + 'Title'],\r\n            true\r\n        );\r\n\r\n        let description = this.container.querySelector('.elem-highlight-card__description');\r\n\r\n        if (description) {\r\n            description.innerHTML = '';\r\n            this._setInnerHtml(\r\n                description,\r\n                promoJson[dynamicComponentPrefix + 'Description']\r\n            );\r\n        }\r\n        else {\r\n            let descriptionDiv = document.createElement('div');\r\n            descriptionDiv.classList.add('elem-highlight-card__description');\r\n            descriptionDiv.innerHTML = promoJson[dynamicComponentPrefix + 'Description'];\r\n            this.container.querySelector('.elem-highlight-card__content').appendChild(descriptionDiv);\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-highlight-card', HighlightCard);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\n\r\nclass ServiceCard extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('elem-service-card');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'service-card');\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        if (this._hasDynamicComponent('background')) {\r\n            this.lpDob.setDynamicBackgroundColor(this.container.querySelector('.elem-service-card__container'));\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.elem-service-card', ServiceCard);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\nimport { ctaToModal } from '../../../libs/utils';\r\n\r\nclass FullSizeTile extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('widget-tile');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'full-size-tile');\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        let widgetTilePicture = this.container.querySelector('.widget-tile__picture');\r\n        if (this._hasDynamicComponent('images') && widgetTilePicture) {\r\n            this.lpDob.setDynamicComponentAssets(\r\n                this.container, this.componentName, this.componentName, this.dynamicImageParams, true\r\n            );\r\n        }\r\n\r\n        let ctaContainer = this.container.querySelector('.widget-tile__cta');\r\n        if(this._hasDynamicComponent('cta') && ctaContainer) {\r\n            let ctaLink = ctaContainer.querySelector('a');\r\n            this.lpDob.setDynamicOnboardingUrl(ctaLink);\r\n\r\n            let circuitModalId = ctaLink.getAttribute('circuit-modal-id');\r\n            if (circuitModalId && !ctaLink.href.includes(this.circuitParam)) {\r\n                ctaToModal(ctaLink, ctaContainer, circuitModalId, ctaLink.href);\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-tile', FullSizeTile);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\nimport { analytics } from '../../../libs/analytics';\r\nimport { getPrevSibling } from '../../../libs/utils';\r\n\r\nclass AccordionFaq extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('elem-accordion-faq');\r\n\r\n        this.accordion = container;\r\n        this.accordionContainer = this.accordion.querySelector('.elem-accordion-faq__faqs-container');\r\n        this.data = null;\r\n        this.loadItem = [];\r\n        this.searchArray = [];\r\n        this.itemToLoadIndex = 0;  // index for assign id to accordions for showMore function\r\n        this.initialTemplate = document.importNode(document.getElementById('elem-accordion__items'), true);\r\n        this.accordionResult = this.accordion.querySelector('.elem-accordion-faq__result-text');\r\n        this.labelFrequency = this.accordion.querySelector('.elem-accordion-faq__label-frequent-ask');\r\n        this.resultSingularText = this.accordionResult.querySelector('.elem-accordion-faq__result-singular');\r\n        this.resultPluralText = this.accordionResult.querySelector('.elem-accordion-faq__result-plural');\r\n\r\n        if (this.accordion.classList.contains(('selective-mode'))) {\r\n            this._initSelectiveMode();\r\n        }\r\n\r\n        this.fiveAccordionFaq = this.accordion.querySelector('.elem-accordion-faq__buttons-container');\r\n\r\n        if (this.fiveAccordionFaq) {\r\n            this._initFaqButtons();\r\n        }\r\n\r\n        this._dynamicComponentConstructor(this.accordion, 'accordion-faq');\r\n\r\n        if (!this.accordion.classList.contains('dynamic')) {\r\n            this._getFaq();\r\n        }\r\n\r\n        const deleteSearch = this.accordion.querySelector('.elem-accordion-faq__result-delete');\r\n        deleteSearch.addEventListener('click', (e) => {\r\n            e.preventDefault();\r\n            this._resetSearch();\r\n        });\r\n\r\n        this.accordion.addEventListener('click', ({target}) => {\r\n            if (target.tagName != 'LABEL') return;\r\n            const checkbox = getPrevSibling(target, 'input[type=checkbox]:not(:checked)');\r\n            if (checkbox)\r\n                this.sendOpenAnalytics(target);\r\n        });\r\n\r\n        document.addEventListener('sendSearch', ({detail}) => {\r\n            this._findKey(this.data, detail.searchQuery);\r\n        }, false);\r\n    }\r\n\r\n    _initSelectiveMode() {\r\n        this.accordion.addEventListener('click', ({ target: label }) => {\r\n            if (label.tagName != 'LABEL') return;\r\n\r\n            const activeCheckboxes = this.accordion.querySelectorAll('input[type=checkbox]:checked');\r\n\r\n            activeCheckboxes.forEach((cb) => {\r\n                setTimeout(() => { cb.checked = false }, 0);\r\n            });\r\n        });\r\n    }\r\n\r\n    _initFaqButtons() {\r\n        // load 5 accordion for click. loadItem contains loaded accordion\r\n        const showMoreButton = this.accordion.querySelector('.elem-accordion-faq__label-more');\r\n\r\n        showMoreButton.addEventListener('click', () => {\r\n            this._showMore();\r\n        });\r\n\r\n        // remove all items and load first 5. add to allAccordion loaded items\r\n        const showLessButton = this.accordion.querySelector('.elem-accordion-faq__label-less');\r\n\r\n        showLessButton.addEventListener('click', () => {\r\n            this._showLess();\r\n        });\r\n    }\r\n\r\n    _getFaq() {\r\n        let urlFaq = this.accordion.getAttribute('data-url');\r\n        urlFaq = !this.lpDob ? urlFaq : this._getDynamicFaqUrl(urlFaq);\r\n\r\n        if (!urlFaq) {\r\n            return;\r\n        }\r\n\r\n        fetch(urlFaq)\r\n            .then(this._handleErrors)\r\n            .then(response => response.json())\r\n            .then(data => { this.data = data.data; this._loadFaq(this.data) })\r\n            .catch(err => console.log('Failed request', err));\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        this.dynamicFaqUrlParameters;\r\n        this.dynamicFaqUrlMap = {\r\n            circuito: 'tags',\r\n            nomeprodottonexi: 'prod',\r\n            abi: 'abi',\r\n            promo: 'cat'\r\n        };\r\n\r\n        this._getFaq();\r\n    }\r\n\r\n    _getDynamicFaqUrl(urlFaq) {\r\n        if (!urlFaq) {\r\n            return;\r\n        }\r\n\r\n        if (!this.dynamicFaqUrlParameters) {\r\n            this.dynamicFaqUrlParameters = this._getDynamicFaqUrlParameters();\r\n        }\r\n\r\n        if (urlFaq.endsWith('/content')) {\r\n            return urlFaq + this.dynamicFaqUrlParameters;\r\n        }\r\n\r\n        return urlFaq.split('.faqs.')[0] + this.dynamicFaqUrlParameters;\r\n    }\r\n\r\n    _getDynamicFaqUrlParameters() {\r\n        if (!this.dynamicFaqUrlMap) {\r\n            return;\r\n        }\r\n\r\n        let faqParametersString = ['.faqs'];\r\n        let searchParams = new URLSearchParams(this.queryString);\r\n\r\n        let dynamicFaqParams = this.accordion.getAttribute('dynamic-faq-params');\r\n        if (dynamicFaqParams) {\r\n            dynamicFaqParams = this._stringToList(dynamicFaqParams, ',');\r\n        }\r\n\r\n        for (let parameter of dynamicFaqParams) {\r\n            if (searchParams.get(parameter)) {\r\n                faqParametersString.push('.', this.dynamicFaqUrlMap[parameter], '-', searchParams.get(parameter));\r\n            }\r\n        }\r\n\r\n        faqParametersString.push('.json');\r\n        faqParametersString = faqParametersString.join('');\r\n\r\n        return faqParametersString;\r\n    }\r\n\r\n    _handleErrors(response) {\r\n        if (!response.ok) {\r\n            throw Error(response.statusText);\r\n        }\r\n        return response;\r\n    }\r\n\r\n    _loadFaq(allAccordion) {\r\n        this.accordion.classList.remove('less-view');\r\n        this.loadItem = [];\r\n\r\n        if (!allAccordion.length) {\r\n            let noFaqsFoundLabel = this.accordion.getAttribute('no-faqs-found-label');\r\n            noFaqsFoundLabel = noFaqsFoundLabel ? noFaqsFoundLabel : 'No FAQs found';\r\n            this.accordion.querySelector('.elem-accordion-faq__label-frequent-ask').innerHTML = noFaqsFoundLabel;\r\n            return;\r\n        }\r\n\r\n        if (this.fiveAccordionFaq && allAccordion.length > 5) {\r\n            this.accordion.classList.add('more-view');\r\n            for (let i = 0; i < 5; i++) {\r\n                this.accordionContainer.append(this._renderAccordion(i, allAccordion[i]));\r\n                this.loadItem.push(allAccordion[i]);\r\n            }\r\n        } else {\r\n            allAccordion.forEach((singleItem, i) => {\r\n                this.accordionContainer.append(this._renderAccordion(i, singleItem));\r\n            });\r\n        }\r\n    }\r\n\r\n    _renderAccordion(id, { question, answer, category }) {\r\n        const template = document.getElementById('elem-accordion__items');\r\n        const dynamicTemplate = document.importNode(template.content, true);\r\n        dynamicTemplate.querySelector('.elem-accordion-faq__item').setAttribute('data-categories', `${category}`);\r\n        dynamicTemplate.querySelector('.elem-accordion-faq__header-checkbox').setAttribute('id', `${id}`);\r\n        dynamicTemplate.querySelector('.elem-accordion-faq__header').setAttribute('for', `${id}`);\r\n        dynamicTemplate.querySelector('.elem-accordion-faq__title-text').innerHTML = `${question}`;\r\n        dynamicTemplate.querySelector('.elem-accordion-faq__text').innerHTML = `${answer}`;\r\n\r\n        return dynamicTemplate;\r\n    }\r\n\r\n    _showMore() {\r\n        let accordionArray = null;\r\n        // accordionArray contains all items\r\n        this.accordionResult.classList.contains('result-text--show') ? accordionArray = this.searchArray : accordionArray = this.data;\r\n\r\n        // itemToLoad contains all items except loaded ones\r\n        const itemToLoad = accordionArray.slice(this.loadItem.length);\r\n\r\n        this.itemToLoadIndex += 5;\r\n        let index = 5;\r\n\r\n        if (itemToLoad.length < 5) {\r\n            index = itemToLoad.length;\r\n        }\r\n\r\n        // load 5 more items and pushe them into loadItem\r\n        for (let i = 0; i < index; i++) {\r\n            this.accordionContainer.append(this._renderAccordion(this.itemToLoadIndex + i, itemToLoad[i]));\r\n            this.loadItem.push(itemToLoad[i]);\r\n        }\r\n\r\n        // when all items are loaded, show 'show less' button and hide 'show more' button\r\n        if (this.loadItem.length === accordionArray.length) {\r\n            this.accordion.classList.remove('more-view');\r\n            this.accordion.classList.add('less-view');\r\n        }\r\n    }\r\n\r\n    _showLess() {\r\n        let accordionArray = null;\r\n        this.accordionResult.classList.contains('result-text--show') ? accordionArray = this.searchArray : accordionArray = this.data;\r\n        this.accordion.classList.add('more-view');\r\n        this.accordion.classList.remove('less-view');\r\n\r\n        // remove all items from loadItem and from DOM\r\n        this.loadItem = [];\r\n        this.itemToLoadIndex = 0;\r\n        this.accordionContainer.innerHTML = '';\r\n        this.accordionContainer.append(this.initialTemplate);\r\n\r\n        let index = 5;\r\n        if (accordionArray.length < 5) {\r\n            index = accordionArray.length;\r\n        }\r\n\r\n        //load first 5 accordions and push them into loadItem\r\n        for (let i = 0; i < index; i++) {\r\n            this.accordionContainer.append(this._renderAccordion(i, accordionArray[i]));\r\n            this.loadItem.push(accordionArray[i]);\r\n        }\r\n\r\n        const valueForScroll = 40; //random number for graphic reasons\r\n        const offsetTop = this.accordion.getBoundingClientRect().top + (window.scrollY || window.pageYOffset) - valueForScroll;\r\n        this._scrollToTop(0, offsetTop);\r\n    }\r\n\r\n    _findKey(allData, valueSearch) {\r\n        this.accordion.classList.remove('more-view');\r\n        this.accordionContainer.innerHTML = '';\r\n        this.accordionContainer.append(this.initialTemplate);\r\n        let countElementKey = 0;\r\n        let arrayCorrespondence = [];\r\n        const arrayWordsCheck = [];\r\n\r\n        allData.map((itemData) => {\r\n            const question = itemData.question;\r\n            const answer = itemData.answer;\r\n            const arrayWords = valueSearch.split(' ');\r\n            let countItemQuestion = 0;\r\n            let countItemAnswer = 0;\r\n            const arrayExclude = ['di', 'il', 'si', 'in', 'ad', 'ho', 'la', 'al', 'per', 'non', 'con'];\r\n\r\n            arrayWords.map((singleWord) => {\r\n                // loop through the array that contains all searched words except excluded words, then push them into arrayWordsCheck\r\n                if (arrayExclude.indexOf(singleWord.toString().toLowerCase()) == -1) {\r\n                    if (singleWord.trim()) {\r\n                        arrayWordsCheck.push(singleWord);\r\n                    }\r\n                }\r\n            });\r\n\r\n            if (arrayWordsCheck.length > 0) {\r\n                arrayWordsCheck.map((itemWord) => {\r\n                    const checkQuestionSingle = question.toString().toLowerCase().indexOf(itemWord.toString().toLowerCase());\r\n                    const answerQuestionSingle = answer.toString().toLowerCase().indexOf(itemWord.toString().toLowerCase());\r\n\r\n                    // if question contains searched string, increment countItemquestion\r\n                    if (checkQuestionSingle != -1) {\r\n                        countItemQuestion++;\r\n                    }\r\n\r\n                    // if question contains searched string, increment countItemAnswer\r\n                    if (answerQuestionSingle != -1) {\r\n                        countItemAnswer++;\r\n                    }\r\n                });\r\n\r\n                // if countItemQuestion or countItemAnswer is equal to arrayWordsCheck.length, increment countElementKey and push the item in arrayCorrespondence\r\n                if (countItemQuestion == arrayWordsCheck.length || countItemAnswer == arrayWordsCheck.length) {\r\n                    countElementKey++;\r\n                    arrayCorrespondence.push(itemData);\r\n                }\r\n            }\r\n        });\r\n\r\n        const number = this.accordionResult.querySelector('.elem-accordion-faq__result-label')\r\n        const value = this.accordionResult.querySelector('.elem-accordion-faq__result-label-text');\r\n        number.innerHTML = countElementKey;\r\n        value.innerHTML = valueSearch;\r\n        if (countElementKey === 1) {\r\n            this._showResultSingular();\r\n        } else {\r\n            this._showResultPlural();\r\n        }\r\n        this.accordionResult.classList.add('result-text--show');\r\n\r\n        if (arrayCorrespondence.length == 0) {\r\n            this.accordionResult.classList.add('result-text--no-result')\r\n        } else {\r\n            this.accordionResult.classList.remove('result-text--no-result')\r\n        }\r\n\r\n        if (this.labelFrequency) {\r\n            this.labelFrequency.classList.add('frequent-ask--hidden');\r\n        }\r\n\r\n        this._loadFaq(arrayCorrespondence);\r\n        this.searchArray = arrayCorrespondence;\r\n    }\r\n\r\n    _resetSearch() {\r\n        this.accordionResult.classList.remove('result-text--show');\r\n        this.accordionResult.classList.remove('result-text--no-result');\r\n        this.accordionContainer.innerHTML = '';\r\n        this.accordionContainer.append(this.initialTemplate);\r\n        this.accordion.classList.remove('less-view');\r\n\r\n        if (this.labelFrequency) {\r\n            this.labelFrequency.classList.remove('frequent-ask--hidden');\r\n        }\r\n\r\n        const event = new Event('resetSearchbar');\r\n        document.dispatchEvent(event);\r\n\r\n        this._getFaq();\r\n        this._scrollToTop(0, 0);\r\n    }\r\n\r\n    _scrollToTop(left, top) {\r\n        let scrollOptions = {\r\n            left: left,\r\n            top: top,\r\n            behavior: 'smooth'\r\n        }\r\n\r\n        window.scrollTo(scrollOptions);\r\n    }\r\n\r\n    _showResultSingular() {\r\n        this.resultSingularText.classList.remove('hidden');\r\n        this.resultPluralText.classList.add('hidden');\r\n    }\r\n\r\n    _showResultPlural() {\r\n        this.resultPluralText.classList.remove('hidden');\r\n        this.resultSingularText.classList.add('hidden');\r\n    }\r\n\r\n    sendOpenAnalytics(acc) {\r\n\r\n        analytics.sendData({\r\n            event: 'accordion',\r\n            accordion: {\r\n                action: 'open',\r\n                title: acc.textContent.trim()\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\n\r\nregister.registerClass('.elem-accordion-faq', AccordionFaq);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\nimport { ctaToModal } from '../../../libs/utils';\r\n\r\nclass HeroAppPayments extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('widget-app-payments');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'hero-app-payments');\r\n        this.dynamicIconParam = 'abi';\r\n        this.dynamicTextParam = 'nomeprodottonexi';\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        let heroAppPaymentsIcon = this.container.querySelector('.widget-app-payments__icon');\r\n        if (this._hasDynamicComponent('logo') && heroAppPaymentsIcon) {\r\n            this.lpDob.setDynamicComponentAssets(\r\n                heroAppPaymentsIcon.querySelector('.widget-app-payments__primary-icon'),\r\n                this.componentName,\r\n                this.componentName + '-icon',\r\n                [this.dynamicIconParam]\r\n            );\r\n\r\n            let secondaryIcon = heroAppPaymentsIcon.querySelector('.widget-app-payments__secondary-icon');\r\n            if (!secondaryIcon && window.location.search.includes(this.dynamicIconParam)) {\r\n                secondaryIcon = document.createElement('div');\r\n                secondaryIcon.classList.add('widget-app-payments__secondary-icon');\r\n                heroAppPaymentsIcon.appendChild(secondaryIcon);\r\n            }\r\n\r\n            this.lpDob.setDynamicComponentAssets(\r\n                secondaryIcon,\r\n                this.componentName,\r\n                this.componentName + '-secondary-icon',\r\n                [this.dynamicIconParam],\r\n                true\r\n            );\r\n        }\r\n\r\n        let heroAppPaymentsBackground = this.container.querySelector('.widget-app-payments__bg-picture');\r\n        if (this._hasDynamicComponent('images') && heroAppPaymentsBackground) {\r\n            this.lpDob.setDynamicComponentAssets(\r\n                heroAppPaymentsBackground,\r\n                this.componentName,\r\n                this.componentName,\r\n                this.dynamicImageParams\r\n            );\r\n        }\r\n\r\n        if (this._hasDynamicComponent('background')) {\r\n            this.lpDob.setDynamicBackgroundColor(this.container);\r\n        }\r\n\r\n        let ctaLink = this.container.querySelector('.widget-app-payments__cta');\r\n        if(this._hasDynamicComponent('cta') && ctaLink) {\r\n            this.lpDob.setDynamicOnboardingUrl(ctaLink);\r\n\r\n            let circuitModalId = ctaLink.getAttribute('circuit-modal-id');\r\n            if (circuitModalId && !ctaLink.href.includes(this.circuitParam)) {\r\n                ctaToModal(ctaLink, ctaLink.closest('div'), circuitModalId, ctaLink.href);\r\n            }\r\n        }\r\n\r\n        if (this._hasDynamicComponent('text')) {\r\n            this.lpDobJsonResponse = await this.lpDob.getDynamicPageJsonResponse();\r\n\r\n            if (this.lpDobJsonResponse) {\r\n                this._setDynamicText();\r\n            }\r\n        }\r\n    }\r\n\r\n    _setDynamicText() {\r\n            let promoJson = this.lpDobJsonResponse[this.dynamicTextParam];\r\n            if (!promoJson || Object.keys(promoJson).length <= 0) {\r\n                return;\r\n            }\r\n\r\n            let dynamicComponentPrefix = 'HeroAppPayments';\r\n\r\n            this._setInnerHtml(\r\n                this.container.querySelector('.widget-app-payments__pre-title'),\r\n                promoJson[dynamicComponentPrefix + 'IntroLabel'],\r\n                true\r\n            );\r\n        }\r\n}\r\n\r\nregister.registerClass('.widget-app-payments', HeroAppPayments);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\nimport { analytics } from '../../../libs/analytics';\r\n\r\nclass Tabs extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('widget-tab');\r\n\r\n        this.tabContainer = container;\r\n        this.tabGroup = this.tabContainer.querySelector('.widget-tab__tab-group');\r\n        this.dropdown = this.tabContainer.querySelector('.widget-tab__dropdown');\r\n        this.dropdownSelect = this.dropdown.querySelector('.widget-tab__dropdown-select');\r\n        this.tabItems = this.tabGroup.querySelectorAll('.widget-tab__btn');\r\n        this.tabContent = this.tabContainer.querySelector('.widget-tab__tab-content');\r\n        this.tabPane = this.tabContent.querySelectorAll('.widget-tab__tab-pane');\r\n\r\n        this.tabId = window.location.href.split('tabId=').pop().split('&')[0];\r\n        this.tabButtonPaneSelected = document.getElementById(this.tabId);\r\n        this.tabButtonSelected = document.querySelector('[data-target=\"#' + this.tabId + '\"]');\r\n\r\n        this.transformTabInDropdown = this.tabContainer.getAttribute('data-transform-tab-in-dropdown') === 'true';\r\n\r\n        if (!this.tabContainer.classList.contains('dynamic')) {\r\n            this._defaultInit();\r\n        }\r\n        else {\r\n            this._dynamicComponentConstructor(this.tabContainer, 'widget-tab');\r\n            this.dynamicTextParam = 'nomeprodottonexi';\r\n            this.dynamicTabPrefix = \"Tab\";\r\n            this.dynamicServiceCardPrefix = \"ServiceCard\";\r\n            this.maxTabs = 3;\r\n            this.maxServiceCards = 4;\r\n        }\r\n    }\r\n\r\n    _defaultInit() {\r\n        this._setTab();\r\n\r\n        this.tabItems.forEach((el) => {\r\n            el.addEventListener('click', (ev) => {\r\n                this._openTab(ev);\r\n            });\r\n        });\r\n        if (this.dropdownSelect) {\r\n            this.dropdownSelect.addEventListener('change', (ev) => this._openDropdownTab(ev));\r\n        }\r\n\r\n\r\n        this._setupSwiper();\r\n    }\r\n\r\n    _scrollToTab() {\r\n        if (this.tabButtonSelected) {\r\n            this.tabGroup.scrollIntoView();\r\n        }\r\n    }\r\n\r\n    _removeActiveTabs() {\r\n        this.tabPane.forEach((el) => {\r\n            el.classList.remove('active');\r\n        });\r\n\r\n        this.tabItems.forEach((el) => {\r\n            el.classList.remove('active');\r\n        });\r\n    }\r\n\r\n    _setTab() {\r\n        if (this.tabItems) {\r\n            this._removeActiveTabs();\r\n\r\n            if (this.tabButtonSelected) {\r\n                this.tabButtonPaneSelected.classList.add('active');\r\n                this.tabButtonSelected.classList.add('active');\r\n            }\r\n            else {\r\n                this.tabPane[0].classList.add('active');\r\n                this.tabItems[0].classList.add('active');\r\n            }\r\n        }\r\n    }\r\n\r\n    _addMobileInit() {\r\n        if (this.tabContainer.querySelector('.swiper-wrapper').scrollWidth > window.innerWidth) {\r\n            this._initSwiper();\r\n        }\r\n        if (this.transformTabInDropdown) {\r\n            this.tabGroup.classList.add('hidden-on-mobile');\r\n            this.dropdown.classList.add('visible-on-mobile');\r\n        }\r\n    }\r\n\r\n     _removeMobileBehavior() {\r\n        this._destroySwiper();\r\n        this.tabGroup.classList.remove('hidden-on-mobile');\r\n        this.dropdown.classList.remove('visible-on-mobile');\r\n     }\r\n\r\n    _openDropdownTab(ev) {\r\n        const _tabTarget = ev.target.value;\r\n        this._removeActiveTabs();\r\n        document.querySelector(_tabTarget).classList.add('active');\r\n        this.tabItems.forEach((btn) => {\r\n            if (btn.dataset.target === _tabTarget) {\r\n                btn.classList.add('active');\r\n            }\r\n        });\r\n    }\r\n\r\n    _openTab(el){\r\n\r\n        let _button = el.currentTarget;\r\n        let _tabTarget = _button.dataset.target;\r\n\r\n        this._removeActiveTabs();\r\n\r\n        document.querySelector(_tabTarget).classList.add(\"active\");\r\n\r\n        _button.classList.add(\"active\");\r\n    }\r\n\r\n    _setupSwiper() {\r\n        document.addEventListener('bpMobileTablet', () => this._addMobileInit() );\r\n        document.addEventListener('bpDesktop', () => {\r\n            this._removeMobileBehavior();\r\n            this._destroySwiper();\r\n        } );\r\n\r\n        window.addEventListener('load', () => this._scrollToTab() );\r\n        window.addEventListener('visibilitychange', () => this._scrollToTab() );\r\n\r\n\r\n        if (window.deviceBreakpoints.bpMobileTablet.matches === true) {\r\n            this._addMobileInit();\r\n        }else {\r\n            this._removeMobileBehavior();\r\n        }\r\n    }\r\n\r\n   openTabByIdFromModal(tabId) {\r\n\r\n        this._removeActiveTabs();\r\n\r\n        const tabPane = this.tabContainer.querySelector(`#${tabId}`);\r\n        const tabButton = this.tabContainer.querySelector(`[data-target=\"#${tabId}\"]`);\r\n\r\n\r\n        if (tabPane && tabButton) {\r\n            tabPane.classList.add('active');\r\n            tabButton.classList.add('active');\r\n\r\n\r\n            if (this.dropdownSelect) {\r\n                this.dropdownSelect.value = tabButton.dataset.target;\r\n\r\n                const selectedOption = this.dropdown.querySelector(`.custom-select__option[data-value=\"${tabButton.dataset.target}\"]`);\r\n\r\n                if (selectedOption) {\r\n                    selectedOption.classList.add('custom-select__option--selected');\r\n                }\r\n\r\n                this.dropdown.querySelectorAll('.custom-select__option').forEach((option) => {\r\n                    if (option !== selectedOption) {\r\n                        option.classList.remove('custom-select__option--selected');\r\n                    }\r\n                });\r\n\r\n                const opener = this.dropdown.querySelector('.custom-select__opener');\r\n                if (opener && selectedOption) {\r\n                    opener.textContent = selectedOption.textContent;\r\n                }\r\n            }\r\n        }\r\n   }\r\n\r\n    openTabByIdFromLink(tabId, scrollIntoView) {\r\n        const tabPane = this.tabContainer.querySelector(`#${tabId}`);\r\n        const tabButton = this.tabContainer.querySelector(`[data-target=\"#${tabId}\"]`);\r\n        if (tabPane && tabButton) {\r\n            this._removeActiveTabs();\r\n            tabPane.classList.add('active');\r\n            tabButton.classList.add('active');\r\n            if (scrollIntoView) {\r\n                this.tabGroup.scrollIntoView();\r\n            }\r\n        }\r\n    }\r\n\r\n    async _initSwiper() {\r\n        const Swiper = await import('swiper');\r\n        if (!this.swiper) {\r\n            this.swiper = new Swiper.default(this.tabGroup, {\r\n                slidesPerView: '2',\r\n                grabCursor: true,\r\n                observer: true,\r\n                observeParents: true,\r\n                observeSlideChildren: true,\r\n                watchOverflow: true,\r\n                scrollbar: {\r\n                    el: \".swiper-scrollbar\",\r\n                },\r\n            });\r\n\r\n        } else {\r\n            this.swiper.update();\r\n        }\r\n    }\r\n\r\n    _destroySwiper() {\r\n\r\n        if (this.swiper) {\r\n            this.swiper.destroy();\r\n            this.swiper = undefined;\r\n        }\r\n    }\r\n\r\n    _sendAnalytics(action,label,url,position) {\r\n\r\n        analytics.sendData({\r\n            'event': 'slider',\r\n            'action': action,           // \"impression\" or \"click\"\r\n            'label': label,             // Product name\r\n            'click_url': url || '',     // Primary CTA href\r\n            'position': position        // Swiper slide position\r\n        });\r\n    }\r\n\r\n\r\n    async _loadDynamicParameters() {\r\n        this.lpDobJsonResponse = await this.lpDob.getDynamicPageJsonResponse();\r\n\r\n        if (!this.lpDobJsonResponse || !Object.keys(this.lpDobJsonResponse).length) {\r\n            this._defaultInit();\r\n            return;\r\n        }\r\n\r\n        this._setDynamicText();\r\n    }\r\n\r\n    _setDynamicText() {\r\n        let responseJson = this.lpDobJsonResponse[this.dynamicTextParam];\r\n        if (!responseJson || Object.keys(responseJson).length <= 0) {\r\n            return;\r\n        }\r\n\r\n        let dynamicTabsJson = this._getDynamicTabsJson(responseJson);\r\n        this._createServiceCardTabs(dynamicTabsJson);\r\n    }\r\n\r\n    _getDynamicTabsJson(responseJson) {\r\n        let dynamicTabs = {}\r\n\r\n        for (let tabIndex = 1; tabIndex <= this.maxTabs; tabIndex++) {\r\n            let tab = this.dynamicTabPrefix + tabIndex;\r\n            let tabTitle = responseJson[tab + 'Title'];\r\n\r\n            if (!tabTitle) {\r\n                continue;\r\n            }\r\n\r\n            dynamicTabs[tabTitle] = {};\r\n\r\n            for (let serviceCardIndex = 1; serviceCardIndex <= this.maxServiceCards; serviceCardIndex++) {\r\n                let serviceCard = tab + this.dynamicServiceCardPrefix + serviceCardIndex;\r\n\r\n                let serviceCardTitle = responseJson[serviceCard + 'Title'];\r\n\r\n                if (!serviceCardTitle) {\r\n                    continue;\r\n                }\r\n\r\n                dynamicTabs[tabTitle][serviceCardTitle] = {};\r\n                dynamicTabs[tabTitle][serviceCardTitle].icon = responseJson[serviceCard + 'Icon'];\r\n                dynamicTabs[tabTitle][serviceCardTitle].description = responseJson[serviceCard + 'Description'];\r\n            }\r\n        }\r\n\r\n        return dynamicTabs;\r\n    }\r\n\r\n    _createServiceCardTabs(dynamicTabsJson) {\r\n        let swiperWrapper = this.tabContainer.querySelector('.swiper-wrapper');\r\n        swiperWrapper.innerHTML = '';\r\n\r\n        let tabContent = this.tabContainer.querySelector('.widget-tab__tab-content');\r\n        tabContent.innerHTML = '';\r\n\r\n        let dynamicTabsTitles = Object.keys(dynamicTabsJson);\r\n        for (let tabIndex = 0; tabIndex < dynamicTabsTitles.length; tabIndex++) {\r\n            let tabTitle = dynamicTabsTitles[tabIndex];\r\n            let tabId = this.dynamicTabPrefix + (tabIndex + 1);\r\n            let tabActive = tabIndex == 0;\r\n\r\n            swiperWrapper.appendChild(this._createTabItem(tabTitle, tabId, tabActive));\r\n\r\n            let dynamicCardTitles = Object.keys(dynamicTabsJson[tabTitle]);\r\n            let singleColumn = dynamicCardTitles.length == 1;\r\n\r\n            let tabPane = this._createTabPane(tabId, singleColumn, tabActive);\r\n            let cardsRow = tabPane.querySelector('.layout-cards__row');\r\n\r\n            for (let cardTitle of dynamicCardTitles) {\r\n                let cardDescription = dynamicTabsJson[tabTitle][cardTitle].description;\r\n\r\n                if (!cardDescription) {\r\n                    cardDescription = '';\r\n                }\r\n\r\n                let cardIcon = dynamicTabsJson[tabTitle][cardTitle].icon;\r\n\r\n                cardsRow.appendChild(this._createServiceCard(cardIcon, cardTitle, cardDescription));\r\n            }\r\n\r\n            tabContent.appendChild(tabPane);\r\n        }\r\n\r\n        this.tabItems = swiperWrapper.querySelectorAll('.widget-tab__btn');\r\n        this.tabPane = tabContent.querySelectorAll('.widget-tab__tab-pane');\r\n\r\n        this._setupSwiper();\r\n    }\r\n\r\n    _createTabItem(tabTitle, tabId, active = false) {\r\n        let tabItem = document.createElement('div');\r\n        tabItem.classList.add('widget-tab__tab-item', 'swiper-slide');\r\n\r\n        let tabButton = document.createElement('button');\r\n        tabButton.classList.add('widget-tab__btn');\r\n        if (active) {\r\n            tabButton.classList.add('active');\r\n        }\r\n\r\n        tabButton.setAttribute('data-target', '#dynamic' + tabId);\r\n\r\n        tabButton.innerHTML = tabTitle;\r\n        tabButton.addEventListener('click', (ev) => {\r\n            this._openTab(ev);\r\n        });\r\n\r\n        tabItem.appendChild(tabButton);\r\n\r\n        return tabItem;\r\n    }\r\n\r\n    _createTabPane(tabId, singleColumn = false, active = false) {\r\n        let tabPane = document.createElement('div');\r\n        tabPane.classList.add('widget-tab__tab-pane');\r\n        tabPane.id = 'dynamic' + tabId;\r\n\r\n        if (active) {\r\n            tabPane.classList.add('active');\r\n        }\r\n\r\n        let baseMainItem = document.createElement('section');\r\n        baseMainItem.classList.add('base-main__item');\r\n\r\n        let layoutCards = document.createElement('div');\r\n        layoutCards.classList.add(\r\n            'layout-cards', 'card__layout--horizontal', 'p-t-none', 'p-b-sm', 'panel-light-grey', 'row__spacing--small'\r\n        );\r\n\r\n        !singleColumn ? layoutCards.classList.add('card__medium') : layoutCards.classList.add('card__width--100');\r\n\r\n        let layoutCardsContainer = document.createElement('div');\r\n        layoutCardsContainer.classList.add('layout-cards__container');\r\n\r\n        let layoutCardsRow = document.createElement('div');\r\n        layoutCardsRow.classList.add('layout-cards__row');\r\n\r\n        layoutCardsContainer.appendChild(layoutCardsRow);\r\n        layoutCards.appendChild(layoutCardsContainer);\r\n        baseMainItem.appendChild(layoutCards);\r\n        tabPane.appendChild(baseMainItem);\r\n\r\n        return tabPane;\r\n    }\r\n\r\n    _createServiceCard(cardIcon, cardTitle, cardDescription) {\r\n        let serviceCard = document.createElement('div');\r\n        serviceCard.classList.add('elem-service-card');\r\n\r\n        let serviceCardContainer = document.createElement('div');\r\n        serviceCardContainer.classList.add('elem-service-card__container', 'border');\r\n        serviceCardContainer.setAttribute('style', 'background-color:rgb(255,255,255);');\r\n\r\n        let serviceCardContent = document.createElement('div');\r\n        serviceCardContent.classList.add('elem-service-card__content');\r\n\r\n        let serviceCardIcon = document.createElement('div');\r\n        serviceCardIcon.classList.add('elem-service-card__icon');\r\n\r\n        let icon = document.createElement('em');\r\n        icon.classList.add(cardIcon);\r\n        serviceCardIcon.appendChild(icon);\r\n\r\n        let serviceCardTitle = document.createElement('div');\r\n        serviceCardTitle.classList.add('elem-service-card__title');\r\n\r\n        let elemTitle = document.createElement('div');\r\n        elemTitle.classList.add('elem-title', 'elem-title__h4', 'elem-title__align-center');\r\n\r\n        let titleText = document.createElement('h3');\r\n        titleText.classList.add('p-b-def');\r\n        titleText.innerHTML = '<b>' + cardTitle + '</b>';\r\n\r\n        elemTitle.appendChild(titleText);\r\n        serviceCardTitle.appendChild(elemTitle);\r\n\r\n        let serviceCardDescription = document.createElement('div');\r\n        serviceCardDescription.classList.add('elem-service-card__description');\r\n        serviceCardDescription.innerHTML = cardDescription;\r\n\r\n        serviceCardContent.appendChild(serviceCardIcon);\r\n        serviceCardContent.appendChild(serviceCardTitle);\r\n        serviceCardContent.appendChild(serviceCardDescription);\r\n\r\n        serviceCardContainer.appendChild(serviceCardContent);\r\n        serviceCard.appendChild(serviceCardContainer);\r\n\r\n        return serviceCard;\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-tab', Tabs);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\nimport { analytics } from '../../../libs/analytics';\r\nimport { ctaToModal } from '../../../libs/utils';\r\n\r\nclass ProductsSlider extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('widget-products-slider');\r\n\r\n        this.container = container.querySelector(`${this._el('container',true)}`);\r\n        this.productCards;\r\n        this.dynamicProductCards;\r\n        this.dynamicProductRegex;\r\n        \r\n        this._initSwiper(container);\r\n        this._initDynamicProductCards();\r\n    }\r\n\r\n    async _initSwiper() {\r\n\r\n        if (this.swiper)\r\n            this._destroySwiper();\r\n\r\n        const Swiper = await import('swiper');\r\n        let _swiperDefaults = {\r\n            modules: [Swiper.Autoplay, Swiper.EffectFade, Swiper.Navigation, Swiper.Pagination],\r\n            slidesPerView: '1',\r\n            spaceBetween: 12,\r\n            speed: 700,\r\n            roundLengths: true,\r\n            observer: true,\r\n            watchOverflow: true,\r\n            preventInteractionOnTransition: true,\r\n            simulateTouch: false,\r\n            nested: true,\r\n            watchSlidesVisibility: true,\r\n            breakpoints: {\r\n                // when window width is >= 768px\r\n                768: {\r\n                  slidesPerView: 2,\r\n                  spaceBetween: 12\r\n                },\r\n                // when window width is >= 1024px\r\n                1024: {\r\n                  slidesPerView: 3,\r\n                  spaceBetween: 16\r\n                }\r\n            },\r\n            navigation: {\r\n                nextEl: '.swiper-button-next',\r\n                prevEl: '.swiper-button-prev',\r\n            }\r\n        };\r\n\r\n        \r\n        this.swiper = new Swiper.default(this.container, _swiperDefaults);\r\n    }\r\n\r\n    _sendAnalytics(action,label,url,position) {\r\n\r\n        analytics.sendData({\r\n            'event': 'slider',\r\n            'action': action,           // \"impression\" or \"click\"\r\n            'label': label,             // Product name\r\n            'click_url': url || '',     // Primary CTA href\r\n            'position': position        // Swiper slide position\r\n        });\r\n    }\r\n\r\n    async _initDynamicProductCards() {\r\n        this.productCards = this.container.querySelectorAll(`${this._el('slide',true)}`);\r\n        this.dynamicProductCards = this.container.querySelectorAll(`${this._el('slide',true)}` + '.dynamic');\r\n\r\n        this.container.classList.add('dynamic');\r\n        this._dynamicComponentConstructor(this.container, 'products-slider');\r\n        this.dynamicProductRegex = new RegExp(this.productParam + '=(([^&]*)(?=&)|.*$)');\r\n    }\r\n\r\n    _hasDynamicComponent(component, componentName) {\r\n        let dynamicComponents = component.getAttribute('dynamic-components');\r\n        return dynamicComponents.includes(componentName);\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        for (let dynamicProductCard of this.dynamicProductCards) {\r\n            if (this._hasDynamicComponent(dynamicProductCard, 'background')) {\r\n                this.lpDob.setDynamicBackgroundColor(\r\n                    dynamicProductCard.querySelector(`${this._el('slide-container',true)}`),\r\n                    dynamicProductCard.querySelector(`${this._el('slide-content',true)}`),\r\n                    'secondary'\r\n                );\r\n            }\r\n        }\r\n\r\n        for (let productCard of this.productCards) {\r\n            let ctaLink = productCard.querySelector(\r\n                `${this._el('slide-first-section', true)} ${this._el('slide-cta', true)}`\r\n            );\r\n\r\n            if (ctaLink) {\r\n                this.lpDob.setDynamicOnboardingUrl(ctaLink);\r\n            }\r\n\r\n            let dynamicProduct = ctaLink.getAttribute('dynamic-product');\r\n            if (dynamicProduct) {\r\n                let ctaHref = ctaLink.href;\r\n                let paramDelimiter = ctaHref.includes('?') ? '&' : '?';\r\n\r\n                ctaLink.href = ctaHref.includes(this.productParam) ?\r\n                    ctaHref.replace(ctaHref.match(this.dynamicProductRegex)[0], this.productParam + '=' + dynamicProduct) :\r\n                    ctaHref + paramDelimiter + this.productParam + '=' + dynamicProduct;\r\n            }\r\n\r\n            let circuitModalId = ctaLink.getAttribute('circuit-modal-id');\r\n            if (circuitModalId && !ctaLink.href.includes(this.circuitParam)) {\r\n                let ctaContainer = ctaLink.closest('.widget-products-slider__slide-cta-container');\r\n                ctaToModal(ctaLink, ctaContainer, circuitModalId, ctaLink.href);\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-products-slider', ProductsSlider);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\n\r\nclass ProductDetailCard extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('widget-products-detail-card');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'products-detail-card');\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        if (this._hasDynamicComponent('background')) {\r\n            this.lpDob.setDynamicBackgroundColor(\r\n                this.container.querySelector('.widget-products-detail-card__first-column'),\r\n                this.container.querySelector('.widget-products-detail-card__second-section')\r\n            );\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.widget-products-detail-card', ProductDetailCard);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\n\r\nclass LayoutPanel extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('layout-panel');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'layout-panel');\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        if (this._hasDynamicComponent('background')) {\r\n            this.lpDob.setDynamicBackgroundColor(this.container);\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.layout-panel', LayoutPanel);","import DynamicComponent from '../../base-dynamic-component';\r\nimport { register } from '../../../libs/register';\r\n\r\nclass LayoutCards extends DynamicComponent {\r\n\r\n    constructor(container) {\r\n        super('layout-cards');\r\n        this.container = container;\r\n        this._dynamicComponentConstructor(this.container, 'layout-cards');\r\n    }\r\n\r\n    async _loadDynamicParameters() {\r\n        if (this._hasDynamicComponent('background')) {\r\n            this.lpDob.setDynamicBackgroundColor(this.container);\r\n        }\r\n    }\r\n}\r\n\r\nregister.registerClass('.layout-cards', LayoutCards);","//////////////////////////////////// ANALYTICS\r\nimport './libs/analytics';\r\nimport 'loading-attribute-polyfill';\r\n\r\n//////////////////////////////////// STYLE\r\nimport './style.lp_dob.scss';\r\n\r\n//REGISTER\r\nimport { register } from './libs/register';\r\n\r\n////COMPONENTS\r\n// Base structure\r\nimport './components/base-page';\r\nimport './components/base-header';\r\nimport './components/base-header-lite';\r\nimport './components/base-sticky-menu';\r\n\r\n// // Layout\r\nimport './components/layout-masonry';\r\nimport './components/layout-prelogin';\r\n\r\n// // Elements\r\nimport './components/elem-custom-select';\r\nimport './components/elem-custom-select-filter-table';\r\nimport './components/elem-quick-links';\r\nimport './components/elem-cta-modal';\r\nimport './components/elem-card';\r\nimport './components/elem-accordion';\r\nimport './components/elem-searchbar';\r\nimport './components/elem-iframe';\r\nimport './components/elem-icon-anim';\r\nimport './components/elem-flip-card';\r\nimport './components/elem-lottie-animation';\r\n\r\n// // Media\r\nimport './components/media-picture';\r\nimport './components/media-video';\r\n\r\n// //Widget\r\nimport './components/widget-modal';\r\nimport './components/widget-modal-circuit';\r\nimport './components/widget-modal-generic';\r\nimport './components/widget-modal-comparison';\r\nimport './components/widget-modal-form';\r\nimport './components/widget-form-steps';\r\nimport './components/widget-accordion-select';\r\nimport './components/widget-table';\r\nimport './components/widget-share';\r\nimport './components/widget-slideshow';\r\nimport './components/widget-round-images';\r\nimport './components/widget-logos-grid';\r\nimport './components/widget-chatbot';\r\n\r\n// // LP DOB\r\nimport './components/base-sticky-bar-dob';\r\nimport './components/base-footer-lp-dob';\r\nimport './components/widget-lp-dob-loader-modal';\r\n\r\n// // DYNAMIC\r\nimport './components/elem-image/dynamic';\r\nimport './components/elem-highlight-card/dynamic';\r\nimport './components/elem-service-card/dynamic';\r\nimport './components/widget-tile/dynamic';\r\nimport './components/elem-accordion-faq/dynamic';\r\nimport './components/widget-app-payments/dynamic'\r\nimport './components/widget-tab/dynamic'\r\nimport './components/widget-products-slider/dynamic';\r\nimport './components/widget-product-detail-card/dynamic';\r\nimport './components/layout-panel/dynamic';\r\nimport './components/layout-cards/dynamic';\r\n\r\n\r\nregister.apply(document);"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","IS_PURE","store","module","exports","key","value","undefined","push","version","mode","copyright","license","source","$","iterate","aCallable","anObject","getIteratorDirect","target","proto","real","every","predicate","this","record","counter","stop","IS_RECORD","INTERRUPTED","stopped","check","it","Math","globalThis","window","self","g","Function","NATIVE_BIND","FunctionPrototype","prototype","call","uncurryThisWithBind","bind","fn","apply","arguments","DESCRIPTORS","global","getBuiltIn","uncurryThis","isCallable","isObject","isArray","hasOwn","toString","lengthOfArrayLike","createProperty","fails","parseJSONString","NATIVE_SYMBOL","JSON","Number","SyntaxError","nativeParse","parse","enumerableOwnProperties","getOwnPropertyDescriptor","Object","at","charAt","slice","exec","IS_DIGIT","IS_NON_ZERO_DIGIT","IS_NUMBER_START","IS_WHITESPACE","internalize","holder","name","reviver","node","elementRecordsLen","keys","len","i","P","val","unmodified","context","nodeIsArray","nodes","length","internalizeProperty","object","descriptor","configurable","Node","end","Context","index","fork","nextIndex","skip","chr","number","array","string","keyword","type","start","expectKeypair","until","result","expectElement","parsed","startIndex","endIndex","regex","j","NO_SOURCE_SUPPORT","unsafeInt","PROPER_BASE_PARSE","stat","forced","text","root","$parse","id","postfix","random","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","$TypeError","TypeError","TO_PRIMITIVE","input","pref","exoticToPrim","obj","iterator","next","done","arraySlice","getReplacerFunction","$String","String","$stringify","charCodeAt","replace","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","symbol","a","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","args","$replacer","fixIllFormed","match","offset","prev","arity","stringify","space","defineBuiltIn","validateArgumentsLength","$URLSearchParams","URLSearchParams","URLSearchParamsPrototype","getAll","$has","has","$value","values","enumerable","unsafe","classof","rawLength","element","keysLength","isNullOrUndefined","iteratorClose","ENTRIES","error","map","create","createNonEnumerableProperty","defineBuiltIns","InternalStateModule","IteratorPrototype","createIterResultObject","TO_STRING_TAG","ITERATOR_HELPER","WRAP_FOR_VALID_ITERATOR","setInternalState","set","createIteratorProxyPrototype","IS_ITERATOR","getInternalState","getterFor","state","nextHandler","returnMethod","inner","WrapForValidIteratorPrototype","IteratorHelperPrototype","IteratorProxy","shared","uid","USE_SYMBOL_AS_UID","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","defineGlobalProperty","copyConstructorProperties","isForced","options","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","dontCallGetSet","sham","internalObjectKeys","enumBugKeys","O","$SyntaxError","$parseInt","parseInt","fromCharCode","codePoints","IS_4_HEX_DIGITS","IS_C0_CONTROL_CODE","unterminated","twoChars","fourHexDigits","Iterators","ITERATOR","toPropertyKey","definePropertyModule","createPropertyDescriptor","propertyKey","f","getDescriptor","EXISTS","PROPER","CONFIGURABLE","V8_VERSION","getOwnPropertySymbols","isPrototypeOf","$Object","$Symbol","e","en","required","email","integer","url","tel","maxlength","minlength","min","max","pattern","equals","default","r","t","pristine","form","querySelectorAll","getAttribute","n","classTo","errorClass","successClass","errorTextParent","errorTextTag","errorTextClass","s","o","l","u","priority","c","split","unshift","p","validators","params","msg","messages","halt","errors","m","errorElements","parentElement","classList","contains","config","querySelector","document","createElement","className","appendChild","pristineDisplay","style","display","d","remove","add","innerHTML","join","h","setAttribute","live","fields","Array","from","forEach","attributes","test","substr","hasOwnProperty","indexOf","sort","addEventListener","validate","HTMLElement","NodeList","getErrors","tagName","toLowerCase","addValidator","console","warn","addError","reset","parentNode","removeChild","destroy","setGlobalConfig","isNaN","parseFloat","RegExp","addMessages","setLocale","find","requireObjectCoercible","argument","Component","constructor","_elMod","elName","modifier","_mod","_el","src","defineBuiltInAccessor","get","count","tryToString","isArrayIteratorMethod","getIterator","getIteratorMethod","Result","ResultPrototype","iterable","unboundFunction","iterFn","step","that","AS_ENTRIES","condition","callFn","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","activeXDocument","definePropertiesModule","hiddenKeys","html","documentCreateElement","sharedKey","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","contentWindow","open","F","Properties","toLength","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","writable","anInstance","NativeIterator","Iterator","FORCED","IteratorConstructor","toIntegerOrInfinity","setDeviceBreakpoints","breakpoints","breakpointsList","eventName","matchMedia","addListener","ev","matches","event","CustomEvent","bubbles","dispatchEvent","log","deviceBreakpoints","isIE","navigator","userAgent","buildWaitForEvent","func","Promise","resolve","reject","SVGElement","Error","handler","removeEventListener","requestAnimationFrame","request","xhr","XMLHttpRequest","method","headers","setRequestHeader","onload","status","response","statusText","onerror","send","body","getNextSibling","elem","selector","sibling","nextElementSibling","getPrevSibling","previousElementSibling","addOneTimeEventListener","eventType","callback","getURLParamsString","location","search","setCookie","cname","cvalue","exdays","expireDate","Date","setTime","getTime","expires","toUTCString","getCookieDomain","domainName","hostname","domainNameSplit","splice","cookieStr","cookie","getCookie","cookieName","cookieIdentifier","cookieArray","currentCookie","trim","substring","deleteCookie","ctaToModal","ctaLink","ctaContainer","modalId","ctaHref","pointerEvents","cursor","objReference","_openModal","ownKeys","getOwnPropertyDescriptorModule","exceptions","concat","getOwnPropertyNames","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","createIteratorProxy","callWithSafeIterationClosing","filter","Prototype","toIndexedObject","objectKeys","defineProperties","props","$documentAll","documentAll","all","IS_HTMLDDA","IndexedObject","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","toPrimitive","names","append","$delete","entries","v","k","entry","dindex","found","entriesLength","HTMLImageElement","HTMLIFrameElement","hasAttribute","removeAttribute","textContent","firstChild","observe","insertBefore","IntersectionObserver","intersectionRatio","unobserve","rootMargin","threshold","readyState","attachEvent","prepareElement","V","makeBuiltIn","getter","setter","toObject","namespace","passed","SILENT_ON_NON_WRITABLE_LENGTH_SET","bitmap","process","Deno","versions","v8","getPrototypeOf","simple","nonConfigurable","nonWritable","assign","devicePixelRatio","elements_selector","container","thresholds","data_src","data_srcset","data_sizes","data_bg","data_bg_hidpi","data_bg_multi","data_bg_multi_hidpi","data_bg_set","data_poster","class_applied","class_loading","class_loaded","class_error","class_entered","class_exited","unobserve_completed","unobserve_entered","cancel_on_exit","callback_enter","callback_exit","callback_applied","callback_loading","callback_loaded","callback_error","callback_finish","callback_cancel","use_native","restore_on_error","detail","instance","createEvent","initCustomEvent","_","b","y","w","A","L","x","C","N","M","z","llTempImage","T","_observer","R","loadingCount","G","toLoadCount","children","D","H","B","J","S","U","q","K","Q","W","X","Y","IMG","IFRAME","VIDEO","load","OBJECT","Z","nn","tn","llEvLisnrs","on","an","rn","cn","ln","backgroundImage","un","sn","dn","_n","gn","bn","pn","mn","hn","En","_settings","isIntersecting","vn","_onlineHandler","update","disconnect","loadAll","restoreAll","resetStatus","lazyLoadOptions","propertyIsEnumerableModule","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","CONFIGURABLE_FUNCTION_NAME","inspectSource","enforceInternalState","enforce","stringSlice","CONFIGURABLE_LENGTH","TEMPLATE","mapper","WeakMap","propertyIsEnumerable","setArrayLength","doesNotExceedSafeInteger","properErrorOnNonWritableLength","item","argCount","ArrayPrototype","Reflect","deletePropertyOrThrow","to","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","metadata","facade","STATE","TYPE","some","$propertyIsEnumerable","NASHORN_BUG","PrototypeOfArrayIteratorPrototype","arrayIterator","BUGGY_SAFARI_ITERATORS","SHARED","trunc","reduce","reducer","noInitial","accumulator","usingIterator","iteratorMethod","valueOf","ceil","floor","kind","innerResult","innerError","functionToString","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","__esModule","then","ns","def","definition","chunkId","promises","miniCssF","prop","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","clearTimeout","timeout","doneFns","setTimeout","head","toStringTag","installedChunks","installedChunkData","promise","errorType","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","analytics","dataLayer","sendData","jsonData","err","register","reg","registerClass","cl","rootEl","elements","info","applyTo","getClass","Page","page","super","documentElement","bpDesktop","bpDesktopNoTablet","bpTabletLandscape","bpTablet","bpMobileTablet","bpMobile","orientLandscape","orientPortrait","chatbotApp","trackedCtas","_sendAnalytics","_initSmootScroll","polyfill","metaTagDynamicEnv","sessionStorage","setItem","_ref","trackingData","dataset","tracking","_toggleBlockPageScroll","removeBlockScroll","setBlockScroll","_setBlockScroll","_removeBlockScroll","getPage","lazyLoad","LazyLoad","img","removeProperty","closest","adobe","CONTENT_RENDERING_SUCCEEDED","forceUpdateLazy","Header","SCROLLED_HIDDEN_MENU_SELECTOR","SCROLLED_MENU_SELECTOR","OPENED_MOBILE_MENU_SELECTOR","OPENED_DESKTOP_MENU_SELECTOR","CLOSING_DESKTOP_MENU_SELECTOR","ACTIVE_NAV_BUTTON_SELECTOR","NO_MENU_ANIMATION_SELECTOR","ACTIVE_FLYOUT_MENU_SELECTOR","FLYOUT_OPENED_SELECTOR","FLYOUT_CLOSING_SELECTOR","FLYOUT_COLUMNS_BALANCE","FLYOUT_HIGHLIGHT","FLYOUT_MAX_COLUMN_ITEMS","MENU_CLOSING_DELAY","MOBILE_SCROLL_OFFSET","getComputedStyle","getPropertyValue","MENU_DARK","MENU_DEFAULT","MENU_OPEN","MENU_STICKY","header","navMenu","navMenuItems","menuOpened","menuTimer","MENU_STICKY_OFFSET","innerHeight","_addCommonInit","_addDesktopInit","_addMobileInit","_closeMobileMenu","_cleanMobileMenu","_cleanDesktopMenu","_addScrollListener","_cookieInit","li","left","preventDefault","_openMobileMenu","replaceWith","cloneNode","_handleNavButton","_handleFlyoutButton","_handleFlyoutLink","animationName","menuAnimating","_resetMenu","_handleFlyoutPreview","_flyoutMenuClose","_closeFlyout","_addClickOutside","_addScrollCloseMenu","_openFlyout","_cleanFlyoutItems","_cleanNavButtons","_checkNavHeight","stopPropagation","_setFlyoutHeight","_hightlightItem","enable","flyoutItems","childElementCount","ticking","prevScrollPos","lastScrollPos","scrollY","pageYOffset","_checkScrollPosition","_scrollCloseMenu","menu","closeMenu","lastPos","prevPos","_setStyle","_resetStyle","stickyOffset","withDelay","navItem","_closeDelay","_removeClickOutside","activeFlyout","clearTimer","_clickOutside","flyout","langMenu","_cleanFlyoutHeight","flyoutContainer","screenHeight","containerHeight","offsetHeight","debug","items","itemHeight","getBoundingClientRect","height","minHeight","_checkColumnElements","loginCta","_checkLoginCookie","loginPage","HeaderLite","changeLogin","_init","MapShim","Map","getIndex","arr","class_1","__entries__","delete","clear","ctx","_i","_a","isBrowser","global$1","requestAnimationFrame$1","now","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","_b","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","styles","positions","size","position","isSVGGraphicsElement","SVGGraphicsElement","getBBox","getContentRect","bbox","width","getSVGContentRect","clientWidth","clientHeight","paddings","positions_1","getPaddings","horizPad","right","vertPad","top","bottom","boxSizing","round","isDocumentElement","vertScrollbar","horizScrollbar","abs","getHTMLElementContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","clearActive","_this","observation","ResizeObserver","StickyMenu","sticky","stickyItem","sections","MENU_OFFSET","_initScrollHide","initScrollHide","_onScrollHide","onScrollHide","_checkScrollHide","checkScrollHide","_cleanScrollHide","cleanScrollHide","_unhideStickyMenu","unhideStickyMenu","_disableDesktopScrollHide","disableDesktopScrollHide","_scrollToSection","scrollToSection","scrolling","_initSections","href","startsWith","sectionEl","getElementById","tabId","tabPane","tabContainer","openTabByIdFromLink","_addHeightListener","_highlightNavigation","_removeHeightListener","param","resizeObserver","_throttle","headerHeight","scrollOptions","offsetTop","behavior","scrollTo","interval","lastCall","timeoutId","currentSection","currentScroll","scrollTop","footer","LayoutMasonry","getElementsByClassName","Macy","masonry","waitForImages","mobileFirst","margin","columns","breakAt","addItems","updateLayout","newItems","removeItems","itemsCount","recalculate","Prelogin","prelogin","preloginMain","footerBtn","footerCollapse","footerState","collapse","_setFooter","_setLoginCookie","_expandFooter","_closeFooter","_openFooter","_height","scrollHeight","overflowY","path","CustomSelect","select","tabSelect","filterSelect","formSelect","localizedLabels","i18n","selectedLabel","applyButton","validated","defaultConfig","panelItem","filterConfig","changeOpenerText","multipleSelectionOnSingleClick","multipleSelectOpenerText","labels","selectedOptions","_getSelectedOptions","_selectActive","_updateApplyButton","_changeSelectLabel","_clean","Select","selectCustom","onOpen","_sendOpenEvent","scrollbar","onClose","_resetValidatedValues","_sendCloseEvent","init","applyBtn","disabled","_sendValidatedFiltersEvent","_closeSelect","_addCustomScrollbar","PerfectScrollbar","suppressScrollX","wheelPropagation","swipeEasing","stopImmediatePropagation","_removeCustomScrollBar","acc","option","selected","num","_enableApplyBtn","_resetApplyBtn","label","selectLabel","placeholder","newLabel","getSelectType","getValidatedFilters","setValidatedFilters","resetSelect","click","applyValidatedFilters","selectValidated","hardreset","selectedIndex","selectedValue","_scrollReset","FilterTable","expanded","box","optionContainer","optionsInputs","_toggleOptions","_addFilters","filters","filtersList","toggle","QuickLinks","_initSwiper","_destroySwiper","swiper","Swiper","slidesPerView","grabCursor","watchOverflow","spaceBetween","action","CtaModal","cta","ctaId","tabTarget","modal","triggerWhenVisible","singleUse","shareTwitter","twitterUrl","twitterData","title","shareFacebook","facebookUrl","shareLinkedin","linkedinUrl","shareXing","xingUrl","shareEmail","emailUrl","emailData","copyToClipboard","async","clipboardText","clipboardApi","clipboard","writeText","decodeURIComponent","catch","Card","shareBtn","ctaCalendar","shareBusy","xingEnabled","Boolean","cardTitle","cardText","cardUrl","origin","_openCloseSharePanel","_disableCta","_closeSharePanel","share","_shareContent","_openSharePanel","_addShareButtons","_removeShareButtons","shareContainer","overlay","btnList","class","icon","_handleShareButton","btn","shareData","encodeURI","_ref2","ctaTimer","Accordion","accordion","sendOpenAnalytics","_initSelectiveMode","cb","checked","Searchbar","searchbar","searchInput","_focusinSearchEvent","_checkTextLength","_enableSearchbar","_sendSearchEvent","_disableSearchbar","buttonSearch","_resetSearchbar","_updateSearchbarValue","searchInputId","query","searchQuery","Iframe","_setIframe","_setIframeHeight","lazySrc","deviceType","iframeWidth","iframeScrolling","iframeHeight","IconAnim","activation","noCompletion","nocompletion","iconName","lottie","_loadIcons","renderer","loop","autoplay","animationData","iconsData","Lottie","loadAnimation","globalData","compSize","goToAndPlay","getDuration","_play","isPaused","FlipCard","flipCardContainer","flipCards","flipCardButtons","_flipY","LottieAnimation","lottieAnimations","mobileClass","tabletClass","desktopClass","lottieAnimationMobile","lottieAnimationTablet","lottieAnimationDesktop","activeAnimation","lottieAnimationPlayer","_setActiveAnimation","_setDeviceActiveAnimation","_checkActiveAnimationPlayState","animation","fallbackClass","_getLottieAnimationName","_playActiveAnimation","play","lottieAnimation","_isInViewPort","MediaVideo","button","_loadVideo","Modal","modalBody","backdrop","btnClose","modalType","_addCustomScrollBar","addCustomScrollBar","removeCustomScrollBar","firstStep","secondStep","btnBack","btnDownload","resetButton","_modalInit","sendAnalytics","_closeModal","modalsObj","getItem","_openModalOnLoad","_nextStep","_backStep","dataUrl","sendDownloadAnalytics","pressModal","_updateFilterApplyBtn","_closeInactiveAccordions","validatedCount","fl","validatedData","resetAccordionFilters","_sendFiltersResetEvent","buttonsContainer","cid","_addClickBackdrop","_removeClickBackdrop","_pauseVideo","_restoreValidatedFilters","_clickBackdrop","VimeoPlayer","videoPlayer","pause","_stopCarousel","_pauseSlideshow","_playCarousel","_playSlideshow","closeAccordion","resetValidatedValues","accordionValidated","getValidatedFiltersCount","setAccordionFilters","total","getSelectedFilters","showResetButton","resetAccordion","ctaList","offsetParent","lang","filepath","fileName","fileExt","pop","CircuitModal","circuitParam","dynamicCircuitRegex","_initCircuitSelection","circuitOptions","changeColorButton","opt","_appendDataCircuit","_resetCircuitSelection","dataCircuit","paramDelimiter","GenericModal","openTabByIdFromModal","Comparisonmodal","FormModal","modalForm","closeModal","FormSteps","formId","formServletPath","formType","siteKey","nexinew","recaptchasitekey","recaptchaEnabled","stepsContainer","activeStep","activeStepIndex","stepsTotal","formStepsTotal","progressBar","btnNext","btnSend","_initForm","_importDateInputPolyfill","role","_previousStep","_sendFormData","_closeModalForm","_resetForm","_initValidation","_initRecaptcha","_showStep","_showProgressBar","_updateProgressBar","formValidate","Pristine","isFinite","dateField","_validateFormInput","_checkInputError","vatcodeField","toUpperCase","vatCode","vatCodeCheck","pristineVatcodeMessage","_ref3","_sendInteractionAnalytics","_ref4","_handleButtonsForward","_activeStepValid","_sendErrorAnalytics","activeFieldset","merchantFieldset","stepFields","merchantField","_enableButton","btnRole","formValid","_hideButtons","hide","showResult","stepNum","steps","stepIndex","fieldGroup","_hideProgressBar","validatedFields","formData","FormData","recaptchaResponse","_submitButtonSending","grecaptcha","_checkRecaptcha","_getFormattedDate","requestData","_onFormDataSent","_showResultStep","_submitButtonRevert","responseClass","stringDate","padTo2Digits","padStart","date","getDate","getMonth","getFullYear","recaptchaContainer","ready","gRecaptcha","render","execute","token","_resetRecaptcha","submit","sendingText","defaultText","success","nodeName","payload","code","reason","fatal","inputContainer","field","errorResultBlock","description","AccordionSelect","btnAccordion","accordionCollapse","list","accordionState","_setAccordion","_expandAccordion","_changeAccordionLabel","_sendItemSelectedEvent","openAccordion","_sendAccordionOpeningEvent","accordionOpener","accordionSelectedLabel","cbox","hardReset","Table","containerTable","tableContainer","loader","tablePath","tableJson","loadMore","searchBar","moreResults","syncScroll","heightOfHeadingFull","heightOfHeadingReduced","maxHeightOfHeadingTitle","paddingOfReducedForFullHeading","tableType","_fetchResults","_showMoreResults","_loadResultsInformativeTable","_getFilters","filterSelects","scrollLeft","tooltips","_adjustPaddingForTooltip","maxHeightOfHeadingCta","paddingTop","maxHeight","_setHeadElementsHeights","staticResource","resPath","responseType","jsonResponse","_loadResultsComparativeTable","jsonTable","filtersEnabled","resultsToShow","headingTable","bodyTable","rowHeading","heading","headingColumn","headingCell","tooltip_text","rows","row","rowCell","filtersOfCell","filterSingleEnabled","validatedItem","ct","searchBarText","cellToJump","hideRowForSearch","ghostRow","ghost_rows","cell","cellIndex","cellElement","colspan","image_src","alt_aria_label","link","html_label","innerText","countResults","_printNoResult","iconElement","titleElement","descriptionElement","buttonContainer","buttonElement","icon_resource","alt","icon_alt","cta_link","cta_label","ariaLabel","bodyRowControls","collapseTableNeedToBeCreated","newRowInnerTable","skipToNextRow","rowElement","rowCellElement","lastElementChild","innerTableHtml","prepend","innerTableBody","innerTableLatestRow","innerTableCell","accordionsDefaultOpenTable","defaultAccordion","_toggleAccordion","syncScrollElements","arrowButtons","offsetWidth","scrollWidthTable","scrollWidth","div","scrollBy","innerWidth","scrollRight","elementsHidden","ctElementsShow","lastElement","sel","lengthTable","noResultsLabel","labelNoResults","accordionElement","accordionElementInnerTable","tooltipsArray","maxPaddingTable","ShareButtons","buttonsList","shareTitle","shareUrl","Slideshow","isVisible","swiperExternalDiv","autoHeightComponent","desktopFixedHeight","heightDesktop","tabletFixedHeight","heightTablet","mobileFixedHeight","heightMobile","userDelay","delay","userSpeed","speed","modules","Autoplay","EffectFade","Navigation","Pagination","effect","fadeEffect","crossFade","autoHeight","roundLengths","preventInteractionOnTransition","simulateTouch","nested","navigation","nextEl","prevEl","pagination","clickable","slideChange","slides","activeSlide","llStatus","pic","srcset","resetImageLazy","slideChangeTransitionEnd","_getDataForAnalytics","realIndex","disableOnInteraction","ctaUrl","triggerWhenNotVisible","running","swiperIndex","preTitle","RoundImages","slideItems","links","_getActiveSlideIndex","_swiperDefaults","watchSlidesVisibility","slideChanged","touchEnd","touchEnded","transitionEnd","LogosGrid","grid","loadButton","_logosInit","_loadMore","_showAll","_reset","Chatbot","chatbot","btnOpen","chatbotMinimized","chatbotInner","chatSelectContainer","chatSelect","chatList","btnOpenChat","chatbotOpened","chatbotDefaultSize","chatSelectConfig","_addChatbot","_initSelect","chatUtilities","chatVisible","retryCount","dataLib","lib","cxbusSetup","CXBus","configure","pluginsPath","loadFile","loadPlugin","fail","onCXloaded","chat","anime","_openClickHandler","_closeClickHandler","_fetchHelpLinks","_detachClickHandler","beforeWidth","beforeHeight","targets","duration","easing","begin","complete","_changeItemList","itemsList","_insertHelpLinks","sublevel","helpItem","helpItemLink","createTextNode","helpItemsList","currentPage","endpoint","responseText","currentTree","defaultPath","defaultItemsList","StickyBarDob","MENU_OFFSET_DESKTOP","MENU_OFFSET_TABLET","MENU_OFFSET_MOBILE","_unhideStickyBar","unhideStickyBar","menuOffset","handleScroll","DynamicComponent","_dynamicComponentConstructor","component","componentName","_isDynamicComponent","queryString","lpDob","lpDobJsonResponse","dynamicComponents","dynamicTextParam","dynamicImageParams","productParam","_initDynamicComponent","_stringToList","getDynamicPageQueryString","_loadDynamicParameters","_hasDynamicComponent","_setInnerHtml","htmlComponent","htmlText","lastChild","separator","getDynamicPageJsonResponse","_setDynamicText","promoJson","LpDobLoaderModal","animContainer","showOnLoad","_addAnimation","expiredCampaign","showMessage","circles","_removeModal","setDynamicComponentAssets","setDynamicBackgroundColor","highlightCardImage","dynamicId","dynamicComponentPrefix","descriptionDiv","widgetTilePicture","setDynamicOnboardingUrl","circuitModalId","accordionContainer","loadItem","searchArray","itemToLoadIndex","initialTemplate","importNode","accordionResult","labelFrequency","resultSingularText","resultPluralText","fiveAccordionFaq","_initFaqButtons","_getFaq","_resetSearch","_findKey","_showMore","_showLess","urlFaq","_getDynamicFaqUrl","fetch","_handleErrors","json","_loadFaq","dynamicFaqUrlParameters","dynamicFaqUrlMap","circuito","nomeprodottonexi","abi","promo","_getDynamicFaqUrlParameters","endsWith","faqParametersString","searchParams","dynamicFaqParams","parameter","ok","allAccordion","noFaqsFoundLabel","_renderAccordion","singleItem","question","answer","category","template","dynamicTemplate","accordionArray","itemToLoad","_scrollToTop","allData","valueSearch","countElementKey","arrayCorrespondence","arrayWordsCheck","itemData","arrayWords","countItemQuestion","countItemAnswer","arrayExclude","singleWord","itemWord","checkQuestionSingle","answerQuestionSingle","_showResultSingular","_showResultPlural","Event","dynamicIconParam","heroAppPaymentsIcon","secondaryIcon","heroAppPaymentsBackground","tabGroup","dropdown","dropdownSelect","tabItems","tabContent","tabButtonPaneSelected","tabButtonSelected","transformTabInDropdown","dynamicTabPrefix","dynamicServiceCardPrefix","maxTabs","maxServiceCards","_defaultInit","_setTab","_openTab","_openDropdownTab","_setupSwiper","_scrollToTab","scrollIntoView","_removeActiveTabs","_removeMobileBehavior","_tabTarget","_button","currentTarget","tabButton","selectedOption","opener","observeParents","observeSlideChildren","responseJson","dynamicTabsJson","_getDynamicTabsJson","_createServiceCardTabs","dynamicTabs","tabIndex","tab","tabTitle","serviceCardIndex","serviceCard","serviceCardTitle","swiperWrapper","dynamicTabsTitles","tabActive","_createTabItem","dynamicCardTitles","singleColumn","_createTabPane","cardsRow","cardDescription","cardIcon","_createServiceCard","active","tabItem","baseMainItem","layoutCards","layoutCardsContainer","layoutCardsRow","serviceCardContainer","serviceCardContent","serviceCardIcon","elemTitle","titleText","serviceCardDescription","productCards","dynamicProductCards","dynamicProductRegex","_initDynamicProductCards","dynamicProductCard","productCard","dynamicProduct"],"ignoreList":[],"sourceRoot":""}