{ "version": 3, "sources": ["../../../node_modules/@n8tb1t/use-scroll-position/lib/useIsomorphicLayoutEffect.js", "../../../node_modules/@n8tb1t/use-scroll-position/lib/useScrollPosition.js", "../../../node_modules/@n8tb1t/use-scroll-position/lib/index.js", "../../../node_modules/react-slick/lib/initial-state.js", "../../../node_modules/lodash.debounce/index.js", "../../../node_modules/react-slick/lib/default-props.js", "../../../node_modules/react-slick/lib/utils/innerSliderUtils.js", "../../../node_modules/react-slick/lib/track.js", "../../../node_modules/react-slick/lib/dots.js", "../../../node_modules/react-slick/lib/arrows.js", "../../../node_modules/resize-observer-polyfill/dist/ResizeObserver.js", "../../../node_modules/react-slick/lib/inner-slider.js", "../../../node_modules/string-convert/camel2hyphen.js", "../../../node_modules/json2mq/index.js", "../../../node_modules/enquire.js/src/QueryHandler.js", "../../../node_modules/enquire.js/src/Util.js", "../../../node_modules/enquire.js/src/MediaQuery.js", "../../../node_modules/enquire.js/src/MediaQueryDispatch.js", "../../../node_modules/enquire.js/src/index.js", "../../../node_modules/react-slick/lib/slider.js", "../../../node_modules/react-slick/lib/index.js", "../javascripts/routes/item/item.tsx", "../javascripts/components/selected-article/index.tsx", "../javascripts/hooks/imbox.tsx", "../javascripts/routes/missing-item/index.tsx", "../javascripts/routes/missing-item/most-similar.tsx", "../javascripts/routes/missing-item/related-collection.tsx", "../javascripts/routes/item/accessories/index.tsx", "../javascripts/components/overflow-swipe/index.tsx", "../javascripts/routes/item/accessories/accessory.tsx", "../../../node_modules/react-hook-inview/dist/esm/useInView.js", "../../../node_modules/react-hook-inview/dist/esm/useObserver.js", "../javascripts/styled-components/components/AccessoryCard/index.tsx", "../javascripts/styled-components/components/AccessoryCard/wrapper.tsx", "../javascripts/routes/item/accessories/accessory-modal.tsx", "../javascripts/styled-components/components/Carousel/index.tsx", "../javascripts/styled-components/components/Carousel/wrapper.tsx", "../javascripts/routes/item/branch.tsx", "../javascripts/routes/item/branch-about.tsx", "../javascripts/components/extendable-group/extendable-group-auto.tsx", "../javascripts/routes/item/branch-address.tsx", "../javascripts/routes/item/branch-opening-hours.tsx", "../javascripts/routes/item/branch-telephone.tsx", "../javascripts/routes/item/branch-map.tsx", "../javascripts/routes/item/card.tsx", "../javascripts/routes/item/contact.tsx", "../javascripts/routes/item/contact-chat.tsx", "../javascripts/routes/item/email-button.tsx", "../javascripts/routes/item/message-button.tsx", "../javascripts/routes/item/phonenumber-button.tsx", "../javascripts/routes/item/insurance.tsx", "../javascripts/routes/item/insurance-header.tsx", "../javascripts/styled-components/components/Utilities/index.tsx", "../javascripts/routes/item/price.tsx", "../javascripts/routes/item/price-row.tsx", "../javascripts/routes/item/seller.tsx", "../javascripts/Data/Payments/usePayments.ts", "../javascripts/routes/item/BusinessLeasing.tsx", "../javascripts/routes/item/PrivateLeasing.tsx", "../javascripts/routes/item/central-storage.tsx", "../javascripts/routes/item/payment-options.tsx", "../javascripts/routes/item/payments/index.tsx", "../javascripts/styled-components/components/CreditorDisclaimer/index.tsx", "../javascripts/styled-components/components/CreditorDisclaimer/wrapper.tsx", "../javascripts/styled-components/components/Price/index.tsx", "../javascripts/routes/item/payments/payment-modal.tsx", "../javascripts/Data/Payments/useCalculatePayment.ts", "../javascripts/routes/item/payments/credit-application/index.tsx", "../../../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts", "../../../node_modules/react-hook-form/src/utils/isDateObject.ts", "../../../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts", "../../../node_modules/react-hook-form/src/utils/isObject.ts", "../../../node_modules/react-hook-form/src/logic/getEventValue.ts", "../../../node_modules/react-hook-form/src/logic/getNodeParentName.ts", "../../../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts", "../../../node_modules/react-hook-form/src/utils/isPlainObject.ts", "../../../node_modules/react-hook-form/src/utils/isWeb.ts", "../../../node_modules/react-hook-form/src/utils/cloneObject.ts", "../../../node_modules/react-hook-form/src/utils/compact.ts", "../../../node_modules/react-hook-form/src/utils/isUndefined.ts", "../../../node_modules/react-hook-form/src/utils/get.ts", "../../../node_modules/react-hook-form/src/utils/isBoolean.ts", "../../../node_modules/react-hook-form/src/utils/isKey.ts", "../../../node_modules/react-hook-form/src/utils/stringToPath.ts", "../../../node_modules/react-hook-form/src/utils/set.ts", "../../../node_modules/react-hook-form/src/constants.ts", "../../../node_modules/react-hook-form/src/useFormContext.tsx", "../../../node_modules/react-hook-form/src/logic/getProxyFormState.ts", "../../../node_modules/react-hook-form/src/utils/isEmptyObject.ts", "../../../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts", "../../../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts", "../../../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts", "../../../node_modules/react-hook-form/src/useSubscribe.ts", "../../../node_modules/react-hook-form/src/useFormState.ts", "../../../node_modules/react-hook-form/src/utils/isString.ts", "../../../node_modules/react-hook-form/src/logic/generateWatchOutput.ts", "../../../node_modules/react-hook-form/src/useWatch.ts", "../../../node_modules/react-hook-form/src/useController.ts", "../../../node_modules/react-hook-form/src/controller.tsx", "../../../node_modules/react-hook-form/src/utils/flatten.ts", "../../../node_modules/react-hook-form/src/form.tsx", "../../../node_modules/react-hook-form/src/logic/appendErrors.ts", "../../../node_modules/react-hook-form/src/logic/generateId.ts", "../../../node_modules/react-hook-form/src/logic/getFocusFieldName.ts", "../../../node_modules/react-hook-form/src/logic/getValidationModes.ts", "../../../node_modules/react-hook-form/src/logic/isWatched.ts", "../../../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts", "../../../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts", "../../../node_modules/react-hook-form/src/utils/isFileInput.ts", "../../../node_modules/react-hook-form/src/utils/isFunction.ts", "../../../node_modules/react-hook-form/src/utils/isHTMLElement.ts", "../../../node_modules/react-hook-form/src/utils/isMessage.ts", "../../../node_modules/react-hook-form/src/utils/isRadioInput.ts", "../../../node_modules/react-hook-form/src/utils/isRegex.ts", "../../../node_modules/react-hook-form/src/logic/getCheckboxValue.ts", "../../../node_modules/react-hook-form/src/logic/getRadioValue.ts", "../../../node_modules/react-hook-form/src/logic/getValidateError.ts", "../../../node_modules/react-hook-form/src/logic/getValueAndMessage.ts", "../../../node_modules/react-hook-form/src/logic/validateField.ts", "../../../node_modules/react-hook-form/src/utils/append.ts", "../../../node_modules/react-hook-form/src/utils/fillEmptyArray.ts", "../../../node_modules/react-hook-form/src/utils/insert.ts", "../../../node_modules/react-hook-form/src/utils/move.ts", "../../../node_modules/react-hook-form/src/utils/prepend.ts", "../../../node_modules/react-hook-form/src/utils/remove.ts", "../../../node_modules/react-hook-form/src/utils/swap.ts", "../../../node_modules/react-hook-form/src/utils/unset.ts", "../../../node_modules/react-hook-form/src/utils/update.ts", "../../../node_modules/react-hook-form/src/useFieldArray.ts", "../../../node_modules/react-hook-form/src/utils/createSubject.ts", "../../../node_modules/react-hook-form/src/utils/isPrimitive.ts", "../../../node_modules/react-hook-form/src/utils/deepEqual.ts", "../../../node_modules/react-hook-form/src/utils/isMultipleSelect.ts", "../../../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts", "../../../node_modules/react-hook-form/src/utils/live.ts", "../../../node_modules/react-hook-form/src/utils/objectHasFunction.ts", "../../../node_modules/react-hook-form/src/logic/getDirtyFields.ts", "../../../node_modules/react-hook-form/src/logic/getFieldValueAs.ts", "../../../node_modules/react-hook-form/src/logic/getFieldValue.ts", "../../../node_modules/react-hook-form/src/logic/getResolverOptions.ts", "../../../node_modules/react-hook-form/src/logic/getRuleValue.ts", "../../../node_modules/react-hook-form/src/logic/hasPromiseValidation.ts", "../../../node_modules/react-hook-form/src/logic/hasValidation.ts", "../../../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts", "../../../node_modules/react-hook-form/src/logic/skipValidation.ts", "../../../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts", "../../../node_modules/react-hook-form/src/logic/createFormControl.ts", "../../../node_modules/react-hook-form/src/useForm.ts", "../javascripts/Data/Payments/useCreditApplicationRedirectUrl.ts", "../javascripts/components/rhf/InputCheckbox.tsx", "../javascripts/components/rhf/InputSelect.tsx", "../javascripts/components/rhf/InputText.tsx", "../javascripts/routes/item/payments/credit-application/usePersistCreditApplicationState.ts", "../javascripts/routes/item/payments/credit-application/useTrackCreditApplication.ts", "../javascripts/routes/item/payments/credit-application/utils.ts", "../javascripts/routes/item/payments/details.tsx", "../javascripts/routes/item/payments/input-slider.tsx", "../javascripts/routes/item/payments/select-slider.tsx", "../javascripts/routes/item/charging-cost/index.tsx", "../javascripts/styled-components/components/CalculationBox/index.tsx", "../javascripts/styled-components/components/CalculationBox/wrapper.tsx", "../javascripts/Data/EvCalculation/useEvCharchingCostPerKilometer.ts", "../javascripts/Data/EvCalculation/QueryKeys.ts", "../javascripts/components/RangeSlider/RangeSliderSimple.tsx", "../javascripts/routes/item/charging-cost/ChargingCostModal.tsx", "../javascripts/styled-components/components/DetailBox/index.tsx", "../javascripts/styled-components/components/DetailBox/wrapper.tsx", "../javascripts/hooks/useDebounce.ts", "../javascripts/routes/item/documents.tsx", "../javascripts/styled-components/components/DataBox/index.tsx", "../javascripts/styled-components/components/DocumentList/index.tsx", "../javascripts/routes/item/equipment.tsx", "../javascripts/routes/item/floating-header.tsx", "../javascripts/routes/item/floating-action.tsx", "../javascripts/routes/item/gallery.tsx", "../javascripts/components/gallery/control-bar.tsx", "../javascripts/components/gallery/control-item.tsx", "../javascripts/components/gallery/gallery-factory.tsx", "../javascripts/components/gallery/embed-preview.tsx", "../javascripts/selectors/gallery.ts", "../javascripts/components/media-button/media-button.tsx", "../javascripts/components/gallery/helper.ts", "../javascripts/components/gallery/image-fullscreen.tsx", "../javascripts/components/gallery/image-preview.tsx", "../javascripts/components/gallery/sphere-fullscreen.tsx", "../javascripts/components/sphere/sphere-viewer.tsx", "../javascripts/components/gallery/sphere-preview.tsx", "../javascripts/components/gallery/three-sixty-fullscreen.tsx", "../javascripts/components/three-sixty/rotatable-gallery.tsx", "../javascripts/components/three-sixty/rotation.tsx", "../javascripts/components/gallery/three-sixty-preview.tsx", "../javascripts/components/gallery/modal-video-player.tsx", "../javascripts/models/media.ts", "../javascripts/selectors/media.ts", "../javascripts/routes/item/lightbox-shell.tsx", "../javascripts/components/lightbox/lightbox.tsx", "../javascripts/routes/item/save.tsx", "../javascripts/routes/item/save-modal.tsx", "../javascripts/routes/item/guarantee-package.tsx", "../javascripts/selectors/search-retailer.ts", "../javascripts/routes/item/guarantee-package-item.tsx", "../javascripts/routes/item/information.tsx", "../javascripts/styled-components/components/HStack/index.tsx", "../javascripts/routes/item/message-modal.tsx", "../javascripts/routes/item/message-to-retailer-modal.tsx", "../javascripts/routes/item/promos.tsx", "../javascripts/routes/item/promo.tsx", "../javascripts/routes/item/promo-modal.tsx", "../javascripts/routes/item/safety-data.tsx", "../javascripts/styled-components/components/TabBox/index.tsx", "../javascripts/styled-components/components/TabBox/wrapper.tsx"], "sourcesContent": ["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useIsomorphicLayoutEffect = void 0;\r\nconst react_1 = require(\"react\");\r\nexports.useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react_1.useLayoutEffect : react_1.useEffect;\r\n", "\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useScrollPosition = void 0;\r\nconst react_1 = require(\"react\");\r\nconst useIsomorphicLayoutEffect_1 = require(\"./useIsomorphicLayoutEffect\");\r\nconst isBrowser = typeof window !== `undefined`;\r\nconst zeroPosition = { x: 0, y: 0 };\r\nconst getClientRect = (element) => element === null || element === void 0 ? void 0 : element.getBoundingClientRect();\r\nconst getScrollPosition = ({ element, useWindow, boundingElement, }) => {\r\n if (!isBrowser) {\r\n return zeroPosition;\r\n }\r\n if (useWindow) {\r\n return { x: window.scrollX, y: window.scrollY };\r\n }\r\n const targetPosition = getClientRect((element === null || element === void 0 ? void 0 : element.current) || document.body);\r\n const containerPosition = getClientRect(boundingElement === null || boundingElement === void 0 ? void 0 : boundingElement.current);\r\n if (!targetPosition) {\r\n return zeroPosition;\r\n }\r\n return containerPosition\r\n ? {\r\n x: (containerPosition.x || 0) - (targetPosition.x || 0),\r\n y: (containerPosition.y || 0) - (targetPosition.y || 0),\r\n }\r\n : { x: targetPosition.left, y: targetPosition.top };\r\n};\r\nexports.useScrollPosition = (effect, deps, element, useWindow, wait, boundingElement) => {\r\n const position = react_1.useRef(getScrollPosition({ useWindow, boundingElement }));\r\n let throttleTimeout = null;\r\n const callBack = () => {\r\n const currPos = getScrollPosition({ element, useWindow, boundingElement });\r\n effect({ prevPos: position.current, currPos });\r\n position.current = currPos;\r\n throttleTimeout = null;\r\n };\r\n useIsomorphicLayoutEffect_1.useIsomorphicLayoutEffect(() => {\r\n var _a;\r\n if (!isBrowser) {\r\n return undefined;\r\n }\r\n const handleScroll = () => {\r\n if (wait) {\r\n if (throttleTimeout === null) {\r\n throttleTimeout = setTimeout(callBack, wait);\r\n }\r\n }\r\n else {\r\n callBack();\r\n }\r\n };\r\n if (boundingElement) {\r\n (_a = boundingElement.current) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', handleScroll, { passive: true });\r\n }\r\n else {\r\n window.addEventListener('scroll', handleScroll, { passive: true });\r\n }\r\n return () => {\r\n var _a;\r\n if (boundingElement) {\r\n (_a = boundingElement.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('scroll', handleScroll);\r\n }\r\n else {\r\n window.removeEventListener('scroll', handleScroll);\r\n }\r\n if (throttleTimeout) {\r\n clearTimeout(throttleTimeout);\r\n }\r\n };\r\n }, deps);\r\n};\r\nexports.useScrollPosition.defaultProps = {\r\n deps: [],\r\n element: false,\r\n useWindow: false,\r\n wait: null,\r\n boundingElement: false,\r\n};\r\n", "\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar useScrollPosition_1 = require(\"./useScrollPosition\");\r\nObject.defineProperty(exports, \"useScrollPosition\", { enumerable: true, get: function () { return useScrollPosition_1.useScrollPosition; } });\r\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = exports[\"default\"] = initialState;", "/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true,\n asNavFor: null,\n unslick: false\n};\nvar _default = exports[\"default\"] = defaultProps;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.extractObject = void 0;\nexports.filterSettings = filterSettings;\nexports.validSettings = exports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _defaultProps = _interopRequireDefault(require(\"../default-props\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nvar safePreventDefault = exports.safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nvar validSettings = exports.validSettings = Object.keys(_defaultProps[\"default\"]);\nfunction filterSettings(settings) {\n return validSettings.reduce(function (acc, settingName) {\n if (settings.hasOwnProperty(settingName)) {\n acc[settingName] = settings[settingName];\n }\n return acc;\n }, {});\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec)) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nvar Track = exports.Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(_react[\"default\"].PureComponent);", "\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nvar Dots = exports.Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(_react[\"default\"].PureComponent);", "\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar PrevArrow = exports.PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\nvar NextArrow = exports.NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(_react[\"default\"].PureComponent);", "(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.ResizeObserver = factory());\n}(this, (function () { 'use strict';\n\n /**\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\n var 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} 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\n var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n // Returns global object of a current environment.\r\n var 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\n var 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\n var 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\n function 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\n var 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\n var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n // Check if MutationObserver is available.\r\n var mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n /**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\n var 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}\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\n var 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\n var 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\n var 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\n function 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\n function 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\n function 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\n function 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\n function 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 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\n var 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 ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\n function 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\n function 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\n function 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\n function 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\n var 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\n var 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\n var 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}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\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\n var 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\n var 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\n var 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\n return index;\n\n})));\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nvar _track = require(\"./track\");\nvar _dots = require(\"./dots\");\nvar _arrows = require(\"./arrows\");\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar InnerSlider = exports.InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\" || isNaN(prevProps[key])) {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(_react[\"default\"].Component);", "var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;", "var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;", "/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n", "/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n", "var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n", "var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n", "var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _innerSlider = require(\"./inner-slider\");\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\nvar Slider = exports[\"default\"] = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n settings.unslick = true;\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, (0, _innerSliderUtils.filterSettings)(settings)), newChildren);\n }\n }]);\n return Slider;\n}(_react[\"default\"].Component);", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _slider = _interopRequireDefault(require(\"./slider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar _default = exports[\"default\"] = _slider[\"default\"];", "import { useScrollPosition } from '@n8tb1t/use-scroll-position';\nimport { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect, useRef, useState, lazy } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { useParams } from 'react-router-dom';\nimport { resetCurrentFinancialInformation } from '../../actions/current-financial-information';\nimport {\n getDefaultFinancialInformation,\n resetDefaultFinancialInformation,\n} from '../../actions/default-financial-information';\nimport { clear, find } from '../../actions/item';\nimport { clearLiveshoppingReference } from '../../actions/liveshopping';\nimport { clear as clearRetailer, find as getRetailer } from '../../actions/retailer';\nimport { trackViewEvent } from '../../actions/tracking';\nimport { RenderClientSide } from '../../components/render';\nimport SelectedArticle from '../../components/selected-article';\nimport { events, text } from '../../helpers';\nimport useImboxWithRetailer from '../../hooks/imbox';\nimport useTrackPageView from '../../hooks/useTrackPageView';\nimport { getMarket } from '../../i18n';\nimport type { RootState } from '../../reducers';\nimport { getItem, getItemBranch } from '../../selectors/item';\nimport { getRetailerDocument, getRetailerId } from '../../selectors/retailer';\nimport Loader from '../../styled-components/components/Loader';\nimport { Page } from '../../styled-components/components/Page';\nimport { Separator } from '../../styled-components/components/Separator';\nimport { getSelectedCentralStorageRetailer, isErrorPage } from '../../utils/reselectors';\nimport MissingItemView from '../missing-item';\nimport { resolveArticlesRoute } from '../utils';\nimport Accessories from './accessories';\nimport Branch from './branch';\nimport Card from './card';\nimport ChargingCost from './charging-cost';\nimport Documents from './documents';\nimport Equipment from './equipment';\nimport FloatingHeader from './floating-header';\nimport Gallery from './gallery';\nimport GuaranteePackage from './guarantee-package';\nimport Information from './information';\nimport MessageModal from './message-modal';\nimport Promos from './promos';\nimport Properties from './properties';\nimport SafetyData from './safety-data';\n\nconst VehicleList = lazy(() => import('../../components/vehicle-list'));\nconst ArticleList = lazy(() => import('../../components/article-list/ArticleListItem'));\n\nconst Item = () => {\n const urlParams = useParams();\n const id = urlParams.id!;\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const notFound = useSelector(isErrorPage);\n const item = useSelector(getItem);\n const retailerId = useSelector(getRetailerId);\n const retailer = useSelector(getRetailerDocument);\n const itemBranch = useSelector(getItemBranch);\n const centralStorageRetailer = useSelector(getSelectedCentralStorageRetailer);\n const showMessageModal = useSelector((s) => s.events.showMessageModal);\n const liveshoppingReference = useSelector(\n (s) => s.liveshopping.reference,\n );\n\n const actions = bindActionCreators(\n {\n find,\n clear,\n clearRetailer,\n trackViewEvent,\n getRetailer,\n getDefaultFinancialInformation,\n resetDefaultFinancialInformation,\n resetCurrentFinancialInformation,\n clearLiveshoppingReference,\n },\n dispatch,\n );\n const trackPageViewEvent = useTrackPageView();\n const marketCode = getMarket().marketCode;\n\n const liveshoppingReferenceRef = useRef(liveshoppingReference);\n liveshoppingReferenceRef.current = liveshoppingReference;\n\n useImboxWithRetailer(retailerId);\n const [showFloatingHeader, setShowFloatingHeader] = useState(false);\n\n const contactSectionRef = useRef(null);\n useScrollPosition(({ currPos }) => {\n if (contactSectionRef?.current?.offsetTop) {\n setShowFloatingHeader(Math.abs(currPos.y) > contactSectionRef.current.offsetTop);\n } else {\n setShowFloatingHeader(false);\n }\n });\n\n const onGetRetailer = () => {\n if (\n (!retailerId && centralStorageRetailer) ||\n (retailerId && centralStorageRetailer && retailerId !== centralStorageRetailer.id)\n ) {\n actions.getRetailer(centralStorageRetailer.id);\n } else if (!retailerId && itemBranch) {\n if (centralStorageRetailer) {\n actions.getRetailer(centralStorageRetailer.id);\n } else {\n actions.getRetailer(itemBranch.id);\n }\n }\n };\n\n useEffect(() => {\n const isCorrectItem = item && item.id === id;\n if (!isCorrectItem) return;\n\n if (!retailer) return;\n\n const hasFinancialOptions = item.financialOptions && item.financialOptions.length > 0;\n const hasBranch = item.branches && item.branches.length > 0;\n const hasConnectedBranches =\n hasBranch &&\n item.branches?.[0].connectedBranches &&\n item.branches[0].connectedBranches.length > 0;\n const connectedBranch = !!hasConnectedBranches\n ? item.branches?.[0].connectedBranches.filter((x) => x.id === retailer.id)[0]\n : undefined;\n const hasConnectedFinancialOptions =\n connectedBranch &&\n connectedBranch.financialOptions &&\n connectedBranch.financialOptions.length > 0;\n\n if (hasConnectedFinancialOptions) {\n actions.getDefaultFinancialInformation(id, retailer.id);\n } else if (hasFinancialOptions && hasBranch && item.branches?.[0]?.id) {\n actions.getDefaultFinancialInformation(id, item.branches?.[0]?.id);\n } else {\n actions.resetDefaultFinancialInformation();\n }\n\n actions.resetCurrentFinancialInformation();\n }, [id, item, retailer]);\n\n useEffect(() => {\n return () => {\n if (liveshoppingReferenceRef.current) {\n actions.clearLiveshoppingReference();\n }\n actions.resetDefaultFinancialInformation();\n actions.resetCurrentFinancialInformation();\n };\n }, []);\n\n useEffect(() => {\n if (item) {\n document.title = text.createPageTitle(\n item.registrationNumber,\n item.title,\n item.shortDescription,\n );\n const spreadable: {\n liveshoppingReference?: string;\n } = {};\n if (liveshoppingReferenceRef.current) {\n spreadable.liveshoppingReference = liveshoppingReferenceRef.current;\n }\n\n if (item.id === id) {\n trackPageViewEvent(item, spreadable);\n }\n } else {\n document.title = text.createPageTitle('Laddar...');\n }\n }, [item]);\n\n useEffect(() => {\n events.resetViewport();\n\n if (!item || (item && item.id !== id)) {\n actions.find(id);\n actions.clearRetailer();\n } else if (!process.env.SSR && item) {\n const spreadable: {\n liveshoppingReference?: string;\n } = {};\n if (liveshoppingReferenceRef.current) {\n spreadable.liveshoppingReference = liveshoppingReferenceRef.current;\n }\n\n actions.trackViewEvent(item, spreadable);\n onGetRetailer();\n }\n }, [id, item]);\n\n if (notFound) return ;\n\n if (!item)\n return (\n \n \n \n );\n\n const fuelTypesElectric = marketCode === 'NO' ? 'Elektrisitet' : 'El';\n\n return (\n <>\n {showMessageModal && }\n \n
\n
\n
\n \n \n \n \n \n \n \n {item._id === id && item.fuelTypes === fuelTypesElectric && (\n \n )}\n \n
\n
\n \n
\n \n \n {!!retailer && }\n }>\n <>\n {!!retailer && (\n
\n \n
\n )}\n
\n \n
\n
\n \n
\n \n \n
\n
\n
\n \n );\n};\n\nexport { Item as ItemComponent };\n\nexport default Item;\n", "import React, { useEffect } from 'react';\nimport useArticles from '../../Data/Article/useArticles';\nimport { getArticleUrl } from '../../helpers/articles';\nimport { getMarket } from '../../i18n';\nimport ArticleCard from '../../styled-components/components/ArticleCard';\nimport { readTime } from '../../utils/readTime';\n\ninterface ISelectedArticle {\n modelSeries: string;\n}\n\nconst SelectedArticle = ({ modelSeries }: ISelectedArticle) => {\n const marketCode = getMarket().marketCode;\n const category = marketCode === 'NO' ? 'Biltester fra Broom TV2' : 'V\u00E4lja bil';\n const [articleResponse, _, setSearchParams] = useArticles(\n new URLSearchParams(`categories=${category}&q=${modelSeries}`),\n );\n\n useEffect(() => {\n setSearchParams(new URLSearchParams(`categories=${category}&q=${modelSeries}`));\n }, [modelSeries]);\n\n if (\n !articleResponse ||\n articleResponse.response.documentList.documents.length === 0 ||\n articleResponse.response.documentList.documents[0].title.indexOf(modelSeries) < 0\n ) {\n return null;\n }\n\n const firstArticle = articleResponse.response.documentList.documents[0];\n\n return (\n cat.name).join(' / ')}\n date={firstArticle.publishDate}\n excerpt={firstArticle.excerpt}\n image={`${firstArticle.featuredMedia?.file.url}?w=867&h=503&q=60`}\n layout=\"large\"\n link={getArticleUrl(firstArticle)}\n readTime={readTime(firstArticle.contentBlocks.join(' '))}\n title={firstArticle.title}\n videoIcon={!!firstArticle.videoUrl || !!firstArticle.bambuserVideo}\n backplate\n />\n );\n};\n\nexport default SelectedArticle;\n", "import { useEffect } from 'react';\n\nlet _imboxInit = false;\nconst useImboxWithRetailer = (id: string | null = null) => {\n useEffect(() => {\n if (window.initImBox && !_imboxInit && id) {\n _imboxInit = true;\n window.initImBox(id);\n }\n\n return () => {\n _imboxInit = false;\n };\n }, [id]);\n\n return { isInitialized: _imboxInit };\n};\n\nexport default useImboxWithRetailer;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport type Item from '../../@types/item';\nimport type { RelatedItemCollection } from '../../@types/item';\nimport { getMissingItem } from '../../actions/missing-item';\nimport { createPageTitle } from '../../helpers/text';\nimport type { RootState } from '../../reducers';\nimport { Container } from '../../styled-components/components/Container';\nimport { H1 } from '../../styled-components/components/Heading';\nimport { RouterLink } from '../../styled-components/components/Link';\nimport Loader from '../../styled-components/components/Loader';\nimport { MaxWidth } from '../../styled-components/components/MaxWidth';\nimport { Page, PageSection } from '../../styled-components/components/Page';\nimport { Text } from '../../styled-components/components/Text';\nimport { VStack } from '../../styled-components/components/VStack';\nimport { TEXT_CONTENT_MAX_WIDTH } from '../../styled-components/layout/constants';\nimport MostSimilarItems from './most-similar';\nimport ItemCollection from './related-collection';\n\ninterface IRelatedItemsProps {\n mostSimilarItems: Item[];\n similarLink: string;\n itemCollections: RelatedItemCollection[];\n}\n\nconst RelatedItems = ({ mostSimilarItems, similarLink, itemCollections }: IRelatedItemsProps) => (\n <>\n {!!mostSimilarItems.length && (\n \n )}\n {itemCollections.map((collection, index) => (\n \n ))}\n \n);\n\ninterface IProps {\n id: string;\n}\n\nconst MissingItem = ({ id }: IProps) => {\n const { t } = useTranslation('error');\n const dispatch = useDispatch();\n const missingItemId = useSelector((s) => s.missingItem.id);\n const isFetching = useSelector((s) => s.missingItem.isFetching);\n const mostSimilarItems = useSelector((s) => s.missingItem.mostSimilarItems);\n const similarLink = useSelector((s) => s.missingItem.similarLink);\n const itemCollections = useSelector(\n (s) => s.missingItem.relatedItemsCollections,\n );\n const actions = bindActionCreators({ getMissingItem }, dispatch);\n\n useEffect(() => {\n document.title = createPageTitle(t('pageNotFound', { ns: 'common' }));\n }, []);\n\n useEffect(() => {\n if (!id) {\n return;\n }\n const shouldFetch = !isFetching && missingItemId !== id;\n if (shouldFetch) {\n actions.getMissingItem(id);\n }\n }, [id, missingItemId, isFetching]);\n\n const hasRelatedItems = !isFetching && missingItemId === id;\n\n return (\n \n \n \n \n \n

{t('weCanNotFindTheVehicle', { ns: 'error' })}

\n \n {t('presumablyTheCarHasBeenSoldOrRemoved', { ns: 'error' })}\n \n \n ,\n ]}\n />\n \n
\n
\n
\n
\n {isFetching && (\n \n \n \n \n \n )}\n {hasRelatedItems && (\n \n )}\n
\n );\n};\n\nexport default MissingItem;\n", "import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type Item from '../../@types/item';\n\nimport OverflowGrid from '../../components/overflow-grid';\nimport ProductCard from '../../components/product-card-v2';\nimport { Column, Columns } from '../../styled-components/components/Columns';\nimport { Container } from '../../styled-components/components/Container';\nimport { H3 } from '../../styled-components/components/Heading';\nimport { Link } from '../../styled-components/components/Link';\nimport { PageSection } from '../../styled-components/components/Page';\nimport { VStack } from '../../styled-components/components/VStack';\n\ninterface IProps {\n items: Item[];\n similarLink: string;\n}\n\nconst MostSimilarItems = ({ items, similarLink }: IProps) => {\n const { t } = useTranslation('error');\n\n return (\n \n \n \n \n \n

\n {t('similarCars', { ns: 'error' })}\n

\n
\n {!!similarLink && (\n \n \n {t('seeAllSimilarCars', { ns: 'error' })}\n \n \n )}\n
\n \n {items.slice(0, 3).map((item, index) => (\n
\n
\n \n
\n
\n ))}\n
\n
\n
\n
\n );\n};\n\nexport default MostSimilarItems;\n", "import React, { useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { RelatedItemCollection } from '../../@types/item';\n\nimport OverflowGrid from '../../components/overflow-grid';\nimport ProductCard from '../../components/product-card-v2';\nimport { Column, Columns } from '../../styled-components/components/Columns';\nimport { Container } from '../../styled-components/components/Container';\nimport { H3 } from '../../styled-components/components/Heading';\nimport { Link } from '../../styled-components/components/Link';\nimport { PageSection } from '../../styled-components/components/Page';\nimport { VStack } from '../../styled-components/components/VStack';\n\ninterface ItemCollectionProps {\n collection: RelatedItemCollection;\n}\n\nconst ItemCollection = ({ collection }: ItemCollectionProps) => {\n const { t } = useTranslation('error');\n const [visibleKey, setVisibleKey] = useState(0);\n const overflowGridRef = useRef(null);\n\n if (!collection.documents.length) {\n return null;\n }\n\n return (\n \n \n \n \n \n

\n {collection.title}\n

\n
\n \n \n {t('seeAllSimilarCars', { ns: 'error' })}\n \n \n
\n setVisibleKey(nextOffset)}\n >\n {collection.documents.map((document, index) => (\n
\n
\n \n
\n
\n ))}\n \n
\n
\n
\n );\n};\n\nexport default ItemCollection;\n", "import React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport type { Accessory } from '../../../@types/item';\nimport OverflowSwipe from '../../../components/overflow-swipe';\nimport Content from '../../../styled-components/components/Content';\nimport { H3 } from '../../../styled-components/components/Heading';\nimport { StackMedium } from '../../../styled-components/components/Stack';\nimport AccessoryItem from './accessory';\nimport AccessoryModal from './accessory-modal';\n\ninterface AccessoriesProps {\n accessories?: Accessory[];\n}\n\nconst Accessories = ({ accessories }: AccessoriesProps) => {\n const { t } = useTranslation(['item']);\n const [modal, setModal] = useState();\n const onOpenAccessoryModal = useCallback((accessory: Accessory) => setModal(accessory), []);\n const onCloseAccessoryModal = useCallback(() => setModal(undefined), []);\n\n if (!accessories?.length) return null;\n\n return (\n <>\n {modal && }\n
\n \n

\n {t('accessories.heading', { ns: 'item' })}\n

\n \n

{t('accessories.description', { ns: 'item' })}

\n
\n
\n \n \n {accessories.map((accessory) => (\n \n ))}\n \n \n
\n \n );\n};\n\nexport default Accessories;\n", "import React, { useCallback, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Sliderr from 'react-slick';\n\nconst Slider: typeof Sliderr = (Sliderr as unknown as { default: typeof Sliderr }).default;\n\ninterface OverflowSwipeProps {\n visibleItems: number;\n visibleItemsMobile: number;\n modifiers?: string;\n children?: React.ReactNode[];\n afterChange?: (index: number) => void;\n}\n\ninterface ArrowProps {\n className?: string;\n onClick?: (e: React.MouseEvent) => void;\n}\n\nconst PrevArrow = ({ className, onClick }: ArrowProps) => {\n const { t } = useTranslation(['common']);\n\n return (\n
\n \n \n \n
\n );\n};\n\nconst NextArrow = ({ className, onClick }: ArrowProps) => {\n const { t } = useTranslation(['common']);\n\n return (\n
\n \n \n \n
\n );\n};\n\nconst OverflowSwipe = ({\n children,\n visibleItems,\n visibleItemsMobile,\n modifiers,\n}: OverflowSwipeProps) => {\n const sliderRef = useRef(null);\n const dotsRef = useRef(null);\n\n const [slideCount, setSlideCount] = useState();\n const onSetSlideCount = (count: number): void => setSlideCount(count);\n\n if (!children || !children.length) return null;\n\n const onReInit = useCallback(() => {\n if (slideCount === undefined) {\n onSetSlideCount(dotsRef?.current?.childElementCount);\n }\n }, [slideCount]);\n\n const settings = {\n speed: 300,\n infinite: false,\n dots: true,\n nextArrow: ,\n prevArrow: ,\n arrows: true,\n appendDots: (dots: React.ReactNode) =>
    {dots}
,\n slidesToShow: visibleItems,\n responsive: [\n {\n breakpoint: 600,\n settings: {\n slidesToShow: visibleItemsMobile,\n arrows: false,\n },\n },\n {\n breakpoint: 900,\n settings: {\n arrows: false,\n },\n },\n ],\n draggable: false,\n onReInit,\n };\n\n return (\n
\n
\n \n {children}\n \n
\n
\n );\n};\n\nexport default OverflowSwipe;\n", "import React, { useCallback, useEffect, useRef } from 'react';\nimport { useInView } from 'react-hook-inview';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport type { Accessory } from '../../../@types/item';\nimport { track as _track, mapVehicleData } from '../../../actions/tracking';\nimport { prettify } from '../../../helpers/prices';\nimport { cdn } from '../../../helpers/urls';\n\nimport { bindActionCreators } from '@reduxjs/toolkit';\nimport { getItem } from '../../../selectors/item';\nimport AccessoryCard from '../../../styled-components/components/AccessoryCard';\n\nconst fallbackImage = '/images/placeholders/placeholder_product_card.jpg';\n\ninterface AccessoryItemProps {\n accessory: Accessory;\n onClick: (accessory: Accessory) => void;\n}\n\nconst AccessoryItem = ({ accessory, onClick }: AccessoryItemProps) => {\n const { t } = useTranslation(['common']);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const track = bindActionCreators(_track, dispatch);\n\n const spreadable: { [key: string]: undefined | string | { [key: string]: undefined | string } } =\n {\n information: {\n id: accessory.id,\n label: accessory.name,\n context: 'productOverview',\n },\n };\n\n const _onClick = useCallback(() => {\n onClick(accessory);\n\n track('accessoryInformationClick', {\n item: mapVehicleData(item),\n spreadable,\n });\n }, [accessory, onClick]);\n const trackLock = useRef(false);\n\n const [ref, isVisible] = useInView({\n threshold: 1,\n });\n\n useEffect(() => {\n if (isVisible && !trackLock.current) {\n trackLock.current = true;\n track('accessoryExposure', {\n item: mapVehicleData(item),\n spreadable,\n });\n }\n }, [isVisible]);\n return (\n \n );\n};\n\nexport default AccessoryItem;\n", "import { useEffect, useState, useCallback, } from \"react\";\nimport useObserver from \"./useObserver\";\n/**\n * useInView\n * @param options IntersectionObserverInit\n * @param externalState React.ComponentState[]\n */\nconst useInView = ({ root, rootMargin, threshold, unobserveOnEnter, target, onEnter, onLeave, defaultInView } = {}, externalState = []) => {\n const [state, setState] = useState({\n inView: defaultInView || false,\n entry: null,\n observer: null,\n });\n const callback = useCallback(([entry], observer) => {\n const inThreshold = observer.thresholds.some((t) => entry.intersectionRatio >= t);\n const inView = inThreshold && entry.isIntersecting;\n setState({\n inView,\n entry,\n observer,\n });\n // unobserveOnEnter\n if (inView && unobserveOnEnter) {\n observer.unobserve(entry.target);\n observer.disconnect();\n }\n // Legacy callbacks\n if (inView) {\n onEnter === null || onEnter === void 0 ? void 0 : onEnter(entry, observer);\n }\n else {\n onLeave === null || onLeave === void 0 ? void 0 : onLeave(entry, observer);\n }\n }, [onEnter, onLeave, unobserveOnEnter]);\n const setTarget = useObserver(callback, { root, rootMargin, threshold }, [unobserveOnEnter, ...externalState]);\n // Legacy 'target' option\n useEffect(() => {\n if (target === null || target === void 0 ? void 0 : target.current)\n setTarget(target.current);\n }, [target, setTarget]);\n return [setTarget, state.inView, state.entry, state.observer];\n};\nexport default useInView;\n", "import { useRef, useCallback, } from \"react\";\n/**\n * useObserver\n * @param callback IntersectionObserverCallback\n * @param options IntersectionObserverInit\n * @param externalState React.ComponentState[]\n */\nconst useObserver = (callback, { root, rootMargin, threshold } = {}, externalState = []) => {\n const target = useRef(null);\n const observer = useRef(null);\n const setTarget = useCallback((node) => {\n if (target.current && observer.current) {\n observer.current.unobserve(target.current);\n observer.current.disconnect();\n observer.current = null;\n }\n if (node) {\n observer.current = new IntersectionObserver(callback, { root, rootMargin, threshold });\n observer.current.observe(node);\n target.current = node;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [target, root, rootMargin, JSON.stringify(threshold), ...externalState]);\n return setTarget;\n};\nexport default useObserver;\n", "import React from 'react';\n\nimport { Image } from '../Image';\nimport { LinkButton } from '../LinkButton';\nimport { Text } from '../Text';\nimport {\n Body,\n BodyHeader,\n BodyHeaderContent,\n Footer,\n Header,\n HeaderImage,\n HeaderImageWrapper,\n Heading,\n LogoWrapper,\n SubHeading,\n Wrapper,\n} from './wrapper';\n\ninterface IIAccessoryCardImage {\n src: string;\n srcSet?: string;\n alt: string;\n}\n\ninterface IIAccessoryCardReadMoreBtn {\n label: string;\n title?: string;\n onClick: () => void;\n}\n\nexport interface IAccessoryCard {\n image?: IIAccessoryCardImage;\n heading: string;\n price?: string;\n salePrice?: string;\n preamble?: string;\n logo?: IIAccessoryCardImage;\n readMoreBtn?: IIAccessoryCardReadMoreBtn;\n}\n\nconst AccessoryCard = React.forwardRef(\n ({ image, heading, price, salePrice, preamble, logo, readMoreBtn }, ref) => (\n \n {image && (\n
\n \n \n \n
\n )}\n \n \n {heading}\n {price && (\n \n {salePrice ? (\n <>\n {salePrice}{' '}\n \n {price}\n \n \n ) : (\n price\n )}\n \n )}\n \n {logo && (\n \n {logo.alt}\n \n )}\n \n {preamble && {preamble}}\n {readMoreBtn && (\n
\n \n {readMoreBtn.label}\n \n
\n )}\n
\n ),\n);\n\nexport default AccessoryCard;\n", "import styled from 'styled-components';\n\nimport { size } from '../../layout/helpers';\n\nexport const Wrapper = styled.div.withConfig({ componentId: 'sc-16ofmh8-0' })`\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\nexport const Header = styled.div.withConfig({ componentId: 'sc-16ofmh8-1' })`\n margin-bottom: ${size(2)};\n`;\n\nexport const HeaderImageWrapper = styled.div.withConfig({ componentId: 'sc-16ofmh8-2' })`\n position: relative;\n height: 0;\n padding-bottom: 66.66666667%;\n background-color: var(--c-contrast-bg);\n`;\n\nexport const HeaderImage = styled.img.withConfig({ componentId: 'sc-16ofmh8-3' })`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n`;\n\nexport const BodyHeader = styled.div.withConfig({ componentId: 'sc-16ofmh8-4' })`\n display: flex;\n align-items: flex-start;\n`;\n\nexport const BodyHeaderContent = styled.div.withConfig({ componentId: 'sc-16ofmh8-5' })`\n flex: 1 1 auto;\n`;\n\nexport const LogoWrapper = styled.div.withConfig({ componentId: 'sc-16ofmh8-6' })`\n flex-shrink: 0;\n`;\n\nexport const Heading = styled.div.withConfig({ componentId: 'sc-16ofmh8-7' })`\n font-size: ${(props) => props.theme.font.size.large};\n font-weight: var(--font-weight-bold);\n\n ${(props) => props.theme.breakpoint.LtSm} {\n font-size: ${(props) => props.theme.font.size.regular};\n }\n`;\n\nexport const SubHeading = styled.div.withConfig({ componentId: 'sc-16ofmh8-8' })`\n font-weight: var(--font-weight-medium);\n\n ${(props) => props.theme.breakpoint.LtSm} {\n font-size: ${(props) => props.theme.font.size.small};\n }\n`;\n\nexport const Body = styled.div.withConfig({ componentId: 'sc-16ofmh8-9' })`\n margin-top: ${size(1)};\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n\n ${(props) => props.theme.breakpoint.LtSm} {\n font-size: ${(props) => props.theme.font.size.small};\n }\n`;\n\nexport const Footer = styled.div.withConfig({ componentId: 'sc-16ofmh8-10' })`\n margin-top: auto;\n padding-top: ${size(1)};\n font-size: ${(props) => props.theme.font.size.small};\n`;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport type { Accessory } from '../../../@types/item';\nimport { track as _track, mapVehicleData } from '../../../actions/tracking';\nimport { asHtml } from '../../../helpers/markdown';\nimport { prettify } from '../../../helpers/prices';\nimport { cdn } from '../../../helpers/urls';\nimport { getItem } from '../../../selectors/item';\nimport { Box } from '../../../styled-components/components/Box';\nimport Carousel from '../../../styled-components/components/Carousel';\nimport { Column, Columns } from '../../../styled-components/components/Columns';\nimport Content from '../../../styled-components/components/Content';\nimport { Grid, GridItem } from '../../../styled-components/components/Grid';\nimport { Image } from '../../../styled-components/components/Image';\nimport { Link } from '../../../styled-components/components/Link';\nimport Modal from '../../../styled-components/components/Modal';\nimport { StackMedium, StackSmall } from '../../../styled-components/components/Stack';\nimport { Text } from '../../../styled-components/components/Text';\n\ninterface AccessoryModalProps {\n accessory: Accessory;\n onClose: () => void;\n}\n\nconst AccessoryModal = ({ accessory, onClose }: AccessoryModalProps) => {\n const { t } = useTranslation(['common', 'item']);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const track = bindActionCreators(_track, dispatch);\n\n const onTrack = (parameter: string) => {\n track('accessoryShownInterest', {\n item: mapVehicleData(item),\n spreadable: {\n information: {\n id: accessory.id,\n label: accessory.name,\n context: 'productOverview',\n parameter,\n },\n },\n });\n };\n\n const onClickReadMore = () => onTrack('externalLinkClick');\n const onChangeImage = () => onTrack('imagePaging');\n\n return (\n \n {accessory.media?.[0]?.url && (\n \n {accessory.media.length > 1 ? (\n
\n ({\n src: `${x.url}?w=570`,\n alt: `${accessory.name} bild ${i + 1}`,\n }))}\n />\n
\n ) : (\n
\n {`${accessory.name}`}\n
\n )}\n
\n )}\n {accessory.logoUrl && (\n \n \n \n {false && (\n \n \n \n \n \n {t('accessories.originalAccessory', { ns: 'item' })}\n \n \n )}\n \n \n \n \n \n \n )}\n \n \n \n \n \n \n {t('priceLabel.cash', { ns: 'common' })}\n \n \n \n \n {prettify(accessory.salePrice ? accessory.salePrice : accessory.price, 'kr')}\n \n \n \n \n {accessory.salePrice && (\n \n \n \n \n {t('priceLabel.earlier', { ns: 'item' })}\n \n \n \n \n {prettify(accessory.price, 'kr')}\n \n \n \n \n )}\n {accessory.assemblyPrice && (\n \n \n \n \n {t('accessories.installationCost', { ns: 'item' })}\n \n \n \n \n {prettify(accessory.assemblyPrice, 'kr')}\n \n \n \n \n )}\n \n \n \n \n \n {(accessory.articleNumber || accessory.manufacturer) && (\n \n \n {accessory.articleNumber && (\n \n \n \n {t('accessories.articleNumberShort', { ns: 'item' })}\n \n \n {accessory.articleNumber}\n \n )}\n \n \n )}\n {accessory.productPageLink && (\n \n \n {accessory.productPageLinkText || t('readMore', { ns: 'common' })}\n \n \n )}\n
\n );\n};\n\nexport default AccessoryModal;\n", "import React, { useRef, useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ActionButton } from '../ActionButton';\nimport { IconChevronLeft, IconChevronRight } from '../Icon';\nimport { Image, Item, List, ListWrapper, NextBtn, PrevBtn, Wrapper } from './wrapper';\n\nexport interface ICarouselItem {\n src: string;\n srcSet?: string;\n alt: string;\n}\n\nexport interface ICarousel {\n items: ICarouselItem[];\n itemKeyBase?: string;\n onChangeImage?: () => void;\n}\n\nconst Carousel = ({ items, itemKeyBase, onChangeImage }: ICarousel) => {\n const { t } = useTranslation(['other']);\n const [scrollSnap, setScrollSnap] = useState(true);\n const overflowElement = useRef(null);\n\n const onPrev = useCallback(() => {\n const itemWidth = overflowElement.current?.children[0].clientWidth || 0;\n const scrollLeft = overflowElement.current?.scrollLeft || 0;\n\n if (scrollLeft > 0) {\n setScrollSnap(false);\n setTimeout(() => {\n setScrollSnap(true);\n }, 500);\n\n if (overflowElement?.current) {\n overflowElement.current.scroll({\n left: scrollLeft - itemWidth,\n behavior: 'smooth',\n });\n if (onChangeImage) {\n onChangeImage();\n }\n }\n }\n }, []);\n\n const onNext = useCallback(() => {\n const itemWidth = overflowElement.current?.children[0].clientWidth || 0;\n const scrollWidth = overflowElement.current?.scrollWidth || 0;\n const scrollLeft = overflowElement.current?.scrollLeft || 0;\n const overflowElementWidth = overflowElement.current?.offsetWidth || 0;\n const overflowElementScrollWidth = scrollWidth - overflowElementWidth;\n\n if (overflowElementScrollWidth !== scrollLeft) {\n setScrollSnap(false);\n setTimeout(() => {\n setScrollSnap(true);\n }, 500);\n\n if (overflowElement?.current) {\n overflowElement.current.scroll({\n left: scrollLeft + itemWidth,\n behavior: 'smooth',\n });\n if (onChangeImage) {\n onChangeImage();\n }\n }\n }\n }, []);\n\n return (\n \n \n \n {items.map((item, i) => (\n \n {item.alt}\n \n ))}\n \n \n {items.length > 1 && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default Carousel;\n", "import styled, { css } from 'styled-components';\n\nimport { size } from '../../layout/helpers';\n\nexport const Wrapper = styled.div.withConfig({ componentId: 'sc-td4xf9-0' })`\n position: relative;\n`;\n\nexport const ListWrapper = styled.div.withConfig({ componentId: 'sc-td4xf9-1' })`\n position: relative;\n overflow: hidden;\n`;\n\ninterface ListProps {\n $scrollSnap?: boolean; // Used to disable scroll snap while using NavBtn for smooth scrolling to work in Safari\n}\n\nexport const List = styled.ul.withConfig({ componentId: 'sc-td4xf9-2' })`\n display: flex;\n align-items: stretch;\n list-style: none;\n padding: 0;\n margin: 0;\n overflow: hidden;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n ${({ $scrollSnap }) =>\n $scrollSnap &&\n css`\n overflow: auto;\n scroll-snap-type: x mandatory;\n scroll-padding-left: 0;\n `}\n`;\n\nexport const Item = styled.li.withConfig({ componentId: 'sc-td4xf9-3' })`\n flex: 1 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n max-width: 100%;\n scroll-snap-align: start;\n background-color: var(--c-contrast-bg);\n aspect-ratio: 16 / 9;\n`;\n\nexport const Image = styled.img.withConfig({ componentId: 'sc-td4xf9-4' })`\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n`;\n\nconst NavBtn = styled.div.withConfig({ componentId: 'sc-td4xf9-5' })`\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n`;\n\nexport const PrevBtn = styled(NavBtn).withConfig({ componentId: 'sc-td4xf9-6' })`\n left: ${size(3)};\n`;\n\nexport const NextBtn = styled(NavBtn).withConfig({ componentId: 'sc-td4xf9-7' })`\n right: ${size(3)};\n`;\n", "import React from 'react';\nimport BranchAbout from './branch-about';\nimport BranchMap from './branch-map';\n\nconst Branch = () => (\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n);\n\nexport default Branch;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { trackSoftConversionEvent } from '../../actions/tracking';\nimport ExtendableGroupAuto from '../../components/extendable-group/extendable-group-auto';\nimport Link from '../../components/link';\nimport { asHtml } from '../../helpers/markdown';\nimport { getItem } from '../../selectors/item';\nimport { getRetailerAbout, getRetailerDocument } from '../../selectors/retailer';\nimport { softConversionEvents } from '../../shared/tracking';\nimport { H3 } from '../../styled-components/components/Heading';\nimport { Stack, StackMedium } from '../../styled-components/components/Stack';\nimport BranchAddress from './branch-address';\nimport OpeningHours from './branch-opening-hours';\nimport BranchTelephone from './branch-telephone';\n\nconst BranchAbout = () => {\n const { t } = useTranslation('common');\n const dispatch = useDispatch();\n const data = useSelector(getRetailerAbout);\n const retailer = useSelector(getRetailerDocument);\n const item = useSelector(getItem);\n const track = bindActionCreators(trackSoftConversionEvent, dispatch);\n\n const contentRef = useRef(null);\n const [trackingToggle, setTrackingToggle] = useState(false);\n\n if (!data || !retailer) return null;\n\n const { name, city, logo, description, link } = data;\n\n const onTrackToggle = () => {\n if (!trackingToggle) {\n track(item, softConversionEvents.SOFT_CONVERSIONS_ITEM_DEALER_READ_MORE_CLICK);\n setTrackingToggle(true);\n }\n };\n\n return (\n <>\n \n
\n
\n

\n {name}\n

\n
\n {logo && (\n
\n \n
\n )}\n
\n
\n \n \n
\n \n {city}\n
\n
\n {description && (\n \n \n \n \n \n )}\n \n \n track(item, softConversionEvents.SOFT_CONVERSIONS_ITEM_DEALER_PAGE_CLICK)\n }\n to={link}\n data-am-link=\"\"\n title={t('Read more about this', { ns: 'common', name })}\n >\n {t('Read more about this', { ns: 'common', name })}\n \n \n \n
\n
    \n \n \n \n
\n
\n
\n
\n \n );\n};\n\nexport default BranchAbout;\n", "import React, { useEffect, useState } from 'react';\n\nimport ExtendableGroup from './extendable-group';\n\ninterface ExtendableGroupAutoProps {\n label: string;\n children: React.ReactNode;\n childRef: React.RefObject;\n onToggle?: () => void;\n}\n\nconst ExtendableGroupAuto = ({ label, children, childRef, onToggle }: ExtendableGroupAutoProps) => {\n const [userInteracted, setUserInteracted] = useState(false);\n const [extended, setExtended] = useState(false);\n const expandableMaxHeight = 350; // Max height set in px\n\n useEffect(() => {\n if (!userInteracted && childRef && childRef.current) {\n if (expandableMaxHeight < childRef.current.clientHeight) {\n setExtended(false);\n } else {\n setExtended(true);\n }\n }\n }, [children]);\n\n const _onToggle = () => {\n setUserInteracted(true);\n\n if (onToggle) {\n onToggle();\n }\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default ExtendableGroupAuto;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { trackSoftConversionEvent } from '../../actions/tracking';\nimport { getItem } from '../../selectors/item';\nimport { getRetailerAddress } from '../../selectors/retailer';\nimport { softConversionEvents } from '../../shared/tracking';\n\nconst BranchAddress = () => {\n const dispatch = useDispatch();\n const address = useSelector(getRetailerAddress);\n const item = useSelector(getItem);\n const track = bindActionCreators(trackSoftConversionEvent, dispatch);\n const { t } = useTranslation('item');\n\n if (!address) return null;\n\n return (\n
  • \n
    \n
    {t('Address', { ns: 'item' })}
    \n
    \n
    \n
    \n \n track(item, softConversionEvents.SOFT_CONVERSIONS_ITEM_DEALER_ADDRESS_CLICK)\n }\n >\n {address}\n \n \n
    \n
    \n
  • \n );\n};\n\nexport default BranchAddress;\n", "import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nimport type { RetailerOpeningHours } from '../../@types/Retailer';\nimport { getRetailerOpeningHours } from '../../selectors/retailer';\n\nconst BranchOpeningHours = () => {\n const { t } = useTranslation(['glossary', 'item']);\n const openingHours = useSelector(getRetailerOpeningHours);\n\n const [isOpen, setIsOpen] = useState(false);\n if (!openingHours) return null;\n\n const dayNames: (keyof RetailerOpeningHours)[] = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n const translatedDayNames = [\n t('sundayShort', { ns: 'glossary' }),\n t('mondayShort', { ns: 'glossary' }),\n t('tuesdayShort', { ns: 'glossary' }),\n t('wednesdayShort', { ns: 'glossary' }),\n t('thursdayShort', { ns: 'glossary' }),\n t('fridayShort', { ns: 'glossary' }),\n t('saturdayShort', { ns: 'glossary' }),\n ];\n const dateIndex = [1, 2, 3, 4, 5, 6, 0];\n\n const todayNameKey = dayNames[new Date().getDay()];\n const today = openingHours[todayNameKey];\n\n const left = [];\n const right = [];\n\n if (today) {\n let title = t('Closed today', { ns: 'item' });\n let time = '';\n if (today.openFrom && today.openTo) {\n title = t('Open today', { ns: 'item' });\n time = `${today.openFrom} - ${today.openTo}`;\n }\n left.push(\n
    \n {title}\n
    ,\n );\n right.push(\n
    \n \n
    ,\n );\n }\n\n const mappedOpeningHours: { left: string; right: string }[] = [];\n dateIndex.forEach((x) => {\n const _current = openingHours[dayNames[x]];\n const current = {\n left: translatedDayNames[x],\n right:\n _current.openFrom && _current.openTo\n ? `${_current.openFrom} - ${_current.openTo}`\n : t('Closed', { ns: 'item' }),\n };\n\n const lastStored = mappedOpeningHours[mappedOpeningHours.length - 1];\n if (lastStored && lastStored.right === current.right) {\n const splittedDate = lastStored.left.toString().split(' -')[0];\n mappedOpeningHours[mappedOpeningHours.length - 1] = {\n ...lastStored,\n left: `${splittedDate} - ${translatedDayNames[x]}`,\n };\n } else {\n mappedOpeningHours.push(current);\n }\n });\n\n mappedOpeningHours.forEach((x) => {\n left.push(\n
    \n {x.left}\n
    ,\n );\n right.push(\n
    \n {x.right}\n
    ,\n );\n });\n\n return (\n
  • \n
    {left}
    \n
    {right}
    \n
  • \n );\n};\n\nexport default BranchOpeningHours;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { track as _track } from '../../actions/tracking';\n\nimport { parsers } from '../../helpers';\nimport { getItem } from '../../selectors/item';\nimport { getItemRetailerPhoneParams } from '../../selectors/item-retailer';\nimport { getRetailerTelephone, isRetailerUsingFreespee } from '../../selectors/retailer';\nimport { conversionEvents, eventTypes } from '../../shared/tracking';\nimport { phonenumbers } from '../../utils';\n\nconst BranchTelephone = () => {\n const dispatch = useDispatch();\n const telephoneNumber = useSelector(getRetailerTelephone);\n const item = useSelector(getItem);\n const phoneParams = useSelector(getItemRetailerPhoneParams);\n const usingPhoneNumberGeneration = useSelector(isRetailerUsingFreespee);\n const track = bindActionCreators(_track, dispatch);\n\n const [visiblePhoneNumber, setVisiblePhoneNumber] = useState();\n const [showTelephone, setShowTelephone] = useState(false);\n const { t } = useTranslation('item');\n\n if (!telephoneNumber) return null;\n\n const phonenumber = parsers.parsePhoneNumber(telephoneNumber);\n if (!phonenumber?.e164 || !phonenumber.international) return null;\n const phonenumberE164 = phonenumber.e164;\n const phonenumberInternational = phonenumber.international;\n\n const displayPhonenumber = () => {\n if (usingPhoneNumberGeneration) {\n phonenumbers.convert(phonenumberInternational, phoneParams, (generated) => {\n const parsed = parsers.parsePhoneNumber(generated);\n setVisiblePhoneNumber(parsed.e164);\n });\n } else {\n setVisiblePhoneNumber(phonenumberE164);\n }\n\n track(eventTypes.CONVERSION, {\n item,\n conversionType: conversionEvents.CONVERSION_PHONENUMBER_VISIBLE,\n information: { context: 'retailer' },\n });\n setShowTelephone(true);\n };\n\n const { e164, national } = parsers.parsePhoneNumber(visiblePhoneNumber);\n return (\n
  • \n
    \n
    {t('Phone number', { ns: 'item' })}
    \n
    \n
    \n
    \n {showTelephone ? (\n \n {national}\n \n ) : (\n \n {t('Show phone number', { ns: 'item' })}\n \n )}\n
    \n
    \n
  • \n );\n};\n\nexport default BranchTelephone;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { trackSoftConversionEvent } from '../../actions/tracking';\nimport { settings, urls } from '../../helpers';\nimport type { RootState } from '../../reducers';\nimport { getItem } from '../../selectors/item';\nimport { getRetailerLocaiton, getRetailerName } from '../../selectors/retailer';\nimport { softConversionEvents } from '../../shared/tracking';\n\nconst getLocalFile = (file: string): string => {\n if (!process.env.SSR) {\n return `${location.protocol}//${location.hostname}${file}`;\n }\n\n return '';\n};\n\nconst BranchMap = () => {\n const { t } = useTranslation('item');\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const name = useSelector(getRetailerName);\n const location = useSelector<\n RootState,\n { lat: number; lng: number } | { lat: number; lon: number; lng?: undefined } | null\n >((s) => getRetailerLocaiton(s, item));\n const track = bindActionCreators(trackSoftConversionEvent, dispatch);\n\n const [showMap, setShowMap] = useState(false);\n if (!location || !name) return null;\n\n const { lat, lng } = location;\n\n if (showMap) {\n return (\n \n \n \n );\n }\n\n const displayMap = () => {\n track(item, softConversionEvents.SOFT_CONVERSIONS_ITEM_DEALER_MAP_CLICK);\n setShowMap(true);\n };\n\n return (\n
    \n \n
    \n \n {t('Show map', { ns: 'item' })}\n
    \n \n
    \n );\n};\n\nexport default BranchMap;\n", "import React, { Suspense, useState, lazy } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nimport {\n getItem,\n getItemCommerce,\n itemIsAuctionItem,\n itemIsCentralStorage,\n} from '../../selectors/item';\nimport Contact from './contact';\nimport Insurance from './insurance';\nimport Price from './price';\nimport Seller from './seller';\n\nimport usePayments from '../../Data/Payments/usePayments';\nimport DateTime, { dateTimeFormat, type DateTimeFormats } from '../../components/date-time';\nimport { RenderClientSide } from '../../components/render';\nimport { getMarket } from '../../i18n';\nimport { StackTiny } from '../../styled-components/components/Stack';\nimport { Text } from '../../styled-components/components/Text';\nimport { VStack } from '../../styled-components/components/VStack';\nimport AssignmentWidget from '../assignments/CreateAssignment/Widget';\nimport BusinessLeasing from './BusinessLeasing';\nimport PrivateLeasing from './PrivateLeasing';\nimport CentralStorage from './central-storage';\nimport PaymentOptions from './payment-options';\nimport Payments from './payments';\n\nconst EcomButton = lazy(() => import('../../components/ecom-button-v2/EcomButtonV2'));\nconst FinancialModal = lazy(() => import('./financial-modal'));\nconst InsuranceModal = lazy(() => import('./insurance-modal'));\nconst CentralStorageModal = lazy(() => import('./central-storage-modal'));\n\nconst ConvertCardBanner = ({\n logo,\n title,\n}: { logo?: string; title: string }): React.ReactElement => (\n
    \n {logo && }\n {title}\n
    \n);\n\ninterface PropsType {\n id: string;\n contactSectionRef: React.Ref;\n}\n\nconst Card = ({ id, contactSectionRef }: PropsType) => {\n const { t } = useTranslation(['common', 'item']);\n const item = useSelector(getItem);\n const isCentralStorage = useSelector(itemIsCentralStorage);\n const isAuctionItem = useSelector(itemIsAuctionItem);\n const commerce = useSelector(getItemCommerce);\n // const financialInformation = useSelector(getFinancialInformation);\n const { marketCode } = getMarket();\n const [payments] = usePayments(id, item?.branches?.[0]?.id);\n\n const [modalFinancial, setModalFinancial] = useState(false);\n const [modalInsurance, setModalInsurances] = useState(false);\n const [modalCentralStorage, setCentralStorageModal] = useState(false);\n\n const shouldShowEcomButton = !!commerce?.enabled && !commerce.disabledOnWayke;\n const shouldShowEcomAsReserved = shouldShowEcomButton && commerce.reserved;\n\n const showAssignmentWidget = marketCode === 'SE';\n\n if (!item || item.id !== id) return null;\n\n const isCurrentYear = new Date().getFullYear() === new Date(item.itemPublished).getFullYear();\n const dateFormat = isCurrentYear ? (dateTimeFormat.DateTime as DateTimeFormats) : undefined;\n\n return (\n <>\n {modalFinancial && (\n \n setModalFinancial(false)} />\n \n )}\n {modalInsurance && (\n \n setModalInsurances(false)} />\n \n )}\n {modalCentralStorage && (\n \n setCentralStorageModal(false)} />\n \n )}\n
    \n
    \n
    \n {shouldShowEcomAsReserved && (\n \n )}\n {isCentralStorage && (\n \n )}\n {isAuctionItem && (\n \n )}\n
    \n \n
    \n \n {shouldShowEcomButton && (\n \n
    \n \n
    \n
    {t('Buy online', { ns: 'item' })}
    \n \n }\n >\n \n \n )}\n \n
    \n
    \n {(!!item.leasingPrice ||\n !!item.businessLeasingPrice ||\n //!!financialInformation ||\n !!payments?.length) && (\n
    \n \n \n {t('Financing and ownership options', { ns: 'item' })}\n \n \n \n \n \n {/* setModalFinancial(true)} />*/}\n {payments && item.branches?.[0]?.id && (\n \n )}\n \n
    \n )}\n
    \n setModalInsurances(true)} />\n
    \n {t('published', { ns: 'common' })}{' '}\n \n
    \n \n \n setCentralStorageModal(true)} />\n
    \n
    \n {showAssignmentWidget && (\n
    \n \n
    \n )}\n
    \n \n );\n};\n\nexport default Card;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { showMessageModal } from '../../actions/event';\nimport { trackConversionEvent } from '../../actions/tracking';\nimport { getItem, getItemAuctionUrl, getItemContact } from '../../selectors/item';\n\nimport { conversionEvents } from '../../shared/tracking';\n\nimport { getRetailerId } from '../../selectors/retailer';\nimport ContactChat from './contact-chat';\nimport EmailButton from './email-button';\nimport MessageButton from './message-button';\nimport PhonenumberButton from './phonenumber-button';\n\nconst Contact = () => {\n const { t } = useTranslation('item');\n const dispatch = useDispatch();\n const data = useSelector(getItemContact);\n const item = useSelector(getItem);\n const auctionUrl = useSelector(getItemAuctionUrl);\n const retailerId = useSelector(getRetailerId);\n\n const actions = bindActionCreators(\n {\n trackConversionEvent,\n showMessageModal,\n },\n dispatch,\n );\n if (!data) return null;\n\n const onAuctionClick = () =>\n actions.trackConversionEvent(item, conversionEvents.CONVERSION_ACTION_AUCTION_CLICK);\n\n return (\n <>\n {auctionUrl ? (\n \n
    \n \n
    \n
    {t('To auction', { ns: 'item' })}
    \n \n ) : (\n <>\n {!!retailerId && (\n \n )}\n \n \n \n \n )}\n \n );\n};\n\nexport default Contact;\n", "import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nimport { events } from '../../helpers';\nimport { getPipeMessage } from '../../selectors/events';\n\ninterface PipeMessage {\n name: string;\n callback?: () => void;\n}\n\ninterface ChatConfig {\n visible: boolean;\n callback: (() => void) | null;\n}\n\nconst getChatConfig = (\n pipeMessage: PipeMessage | null,\n currentState: ChatConfig | null = null,\n): ChatConfig => {\n if (\n pipeMessage &&\n pipeMessage.name === 'enable-chat' &&\n typeof pipeMessage.callback === 'function'\n ) {\n return { visible: true, callback: pipeMessage.callback };\n }\n if (pipeMessage && pipeMessage.name === 'disable-chat') {\n return { visible: false, callback: null };\n }\n\n return currentState || { visible: false, callback: null };\n};\n\ninterface ContactMessageProps {\n isLight?: boolean;\n}\n\nconst ContactMessage = ({ isLight }: ContactMessageProps) => {\n const pipeMessage = useSelector(getPipeMessage) as unknown as PipeMessage | null;\n const { t } = useTranslation('item');\n const [state, setState] = useState({ ...getChatConfig(pipeMessage) });\n\n useEffect(() => {\n setState({ ...getChatConfig(pipeMessage, state) });\n }, [pipeMessage]);\n\n const { visible, callback } = state;\n\n if (!visible) {\n return null;\n }\n\n return (\n \n \n {t('Chat', { ns: 'item' })}\n \n );\n};\n\nexport default ContactMessage;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { mapVehicleData, track, trackConversionEvent } from '../../actions/tracking';\nimport { LinkButton } from '../../components/button';\nimport { getItem, getItemId } from '../../selectors/item';\nimport { getItemRetailerContactOptions } from '../../selectors/item-retailer';\nimport ClickToViewState from '../../shared/click-to-view-states';\nimport { conversionEvents, eventTypes } from '../../shared/tracking';\n\nlet stored: null | {\n state: { currentState: typeof ClickToViewState.Hidden };\n id: string | null;\n} = null;\nconst getIntialState = (id: string | null) => {\n if (!stored || id !== stored.id) {\n return { currentState: ClickToViewState.Hidden };\n }\n return stored.state;\n};\n\ninterface IEmailButton {\n isLight?: boolean;\n isMedium?: boolean;\n label: string;\n}\n\nconst EmailButton = ({ isLight, isMedium, label }: IEmailButton) => {\n const { t } = useTranslation(['global', 'item']);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const id = useSelector(getItemId);\n const contactOptions = useSelector(getItemRetailerContactOptions);\n const actions = bindActionCreators(\n {\n trackConversionEvent,\n track,\n },\n dispatch,\n );\n\n const [state, setState] = useState(getIntialState(id));\n\n useEffect(() => {\n if (state.currentState === ClickToViewState.Visible) {\n stored = { state: { ...state }, id };\n }\n }, [state.currentState]);\n\n if (!item || !contactOptions || !contactOptions.email) return null;\n\n const { email } = contactOptions;\n\n const onClick = (e: React.MouseEvent) => {\n if (state.currentState === ClickToViewState.Hidden) {\n e.stopPropagation();\n e.preventDefault();\n actions.trackConversionEvent(item, conversionEvents.CONVERSION_MAIL_VISIBLE);\n }\n\n if (state.currentState === ClickToViewState.Visible) {\n actions.track(eventTypes.OTHER, {\n item: mapVehicleData(item, true),\n conversionType: conversionEvents.CONVERSION_MAIL_SENT,\n });\n }\n\n setState({ currentState: ClickToViewState.Visible });\n };\n\n const { currentState } = state;\n\n if (currentState === ClickToViewState.Visible) {\n const subject = encodeURIComponent(\n t('sendEmailSubject', {\n ns: 'item',\n brandName: t('brandName', { ns: 'global' }),\n item: `${item.registrationNumber}, ${item.manufacturer} ${item.modelSeries}`,\n }),\n );\n\n return (\n \n \n {email}\n \n );\n }\n\n return (\n \n \n {label}\n \n );\n};\n\nexport default EmailButton;\n", "import React, { useMemo } from 'react';\n\ntype PropsType = {\n label: string;\n onClick: () => void;\n isLight?: boolean;\n isMedium?: boolean;\n};\n\nconst MessageButton = ({ label, onClick, isLight, isMedium }: PropsType) => {\n const buttonStyleAttributes = useMemo(\n () => `${isLight ? 'action-light' : 'action'} full-width ${isMedium ? 'medium' : ''}`,\n [isMedium],\n );\n\n return (\n \n \n {label}\n \n );\n};\n\nexport default MessageButton;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { parsers } from '../../helpers';\nimport { phonenumbers } from '../../utils';\n\nimport { mapVehicleData, track } from '../../actions/tracking';\nimport { LinkButton } from '../../components/button';\nimport { SpinnerInline } from '../../components/spinner';\nimport { getItem, getItemId } from '../../selectors/item';\nimport {\n getItemRetailerContactOptions,\n getItemRetailerPhoneParams,\n} from '../../selectors/item-retailer';\nimport { isRetailerUsingFreespee } from '../../selectors/retailer';\nimport ClickToViewState from '../../shared/click-to-view-states';\nimport { conversionEvents, eventTypes } from '../../shared/tracking';\n\nlet stored: null | {\n state: {\n currentState: typeof ClickToViewState.Hidden;\n telephone: {\n national?: string;\n e164?: string;\n } | null;\n };\n id: string | null;\n} = null;\nconst getIntialState = (id: string | null) => {\n if (!stored || id !== stored.id) {\n return { currentState: ClickToViewState.Hidden, telephone: null };\n }\n return stored.state;\n};\n\ninterface IPhonenumberButton {\n isLight?: boolean;\n isMedium?: boolean;\n label: string;\n trackingContext?: string;\n}\n\nconst PhonenumberButton = ({ label, isMedium, isLight, trackingContext }: IPhonenumberButton) => {\n const { t } = useTranslation(['item']);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const id = useSelector(getItemId);\n const contactOptions = useSelector(getItemRetailerContactOptions);\n const getParams = useSelector(getItemRetailerPhoneParams);\n const isGenerationActive = useSelector(isRetailerUsingFreespee);\n const actions = bindActionCreators(\n {\n track,\n },\n dispatch,\n );\n\n const [state, setState] = useState(getIntialState(id));\n if (!contactOptions) return null;\n\n useEffect(() => {\n if (state.telephone) {\n stored = { state: { ...state }, id };\n }\n }, [state.telephone]);\n\n const trackVisible = () =>\n actions.track(eventTypes.CONVERSION, {\n item: mapVehicleData(item, true),\n conversionType: conversionEvents.CONVERSION_PHONENUMBER_VISIBLE,\n information: { context: trackingContext },\n });\n\n const onClick = (e: React.MouseEvent) => {\n if (state.currentState === ClickToViewState.Processing) {\n return false;\n }\n\n if (contactOptions?.telephone?.e164) {\n if (state.currentState === ClickToViewState.Hidden && isGenerationActive) {\n e.stopPropagation();\n e.preventDefault();\n\n trackVisible();\n\n phonenumbers.convert(\n contactOptions.telephone.international || '',\n getParams,\n (generated) => {\n const phonenumber = parsers.parsePhoneNumber(generated);\n setState({ currentState: ClickToViewState.Visible, telephone: phonenumber });\n },\n );\n } else if (state.currentState === ClickToViewState.Hidden) {\n e.stopPropagation();\n e.preventDefault();\n\n trackVisible();\n\n setState({ currentState: ClickToViewState.Visible, telephone: contactOptions.telephone });\n }\n }\n\n if (state.currentState === ClickToViewState.Visible) {\n actions.track(eventTypes.OTHER, {\n item: mapVehicleData(item, true),\n conversionType: conversionEvents.CONVERSION_PHONENUMBER_CALL,\n });\n }\n };\n\n if (!contactOptions?.telephone?.e164) return null;\n\n if (state.currentState === ClickToViewState.Visible && state.telephone) {\n const { e164, national } = state.telephone;\n return (\n \n \n {national}\n \n );\n }\n\n return (\n \n \n {state.currentState === ClickToViewState.Processing ? (\n \n ) : (\n label\n )}\n \n );\n};\n\nexport default PhonenumberButton;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { clear, getInsuranceProvider } from '../../actions/insurance';\nimport { asHtml } from '../../helpers/markdown';\nimport type { RootState } from '../../reducers';\nimport { getRetailerId } from '../../selectors/insurance';\nimport { getItem } from '../../selectors/item';\nimport InsuranceHeader from './insurance-header';\n\nimport type { InsuranceProviderResponse } from '../../@types/Insurance';\n\nimport { getMarket } from '../../i18n';\nimport { Align } from '../../styled-components/components/Align';\nimport { Box } from '../../styled-components/components/Box';\nimport Content from '../../styled-components/components/Content';\nimport { LinkButton } from '../../styled-components/components/LinkButton';\nimport { Stack, StackSmall, StackTiny } from '../../styled-components/components/Stack';\nimport { Text } from '../../styled-components/components/Text';\nimport { Img } from '../../styled-components/components/Utilities';\n\ninterface InsuranceProps {\n onClick: () => void;\n}\n\nconst Insurance = ({ onClick }: InsuranceProps) => {\n const { t } = useTranslation(['item']);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const retailerId = useSelector(getRetailerId);\n const provider = useSelector(\n (s) => s.insurances.provider,\n );\n const actions = bindActionCreators(\n { clearInsurance: clear, getProvider: getInsuranceProvider },\n dispatch,\n );\n const { marketCode } = getMarket();\n\n const [logo, setLogo] = useState(provider && provider.logo);\n\n useEffect(() => {\n return () => {\n actions.clearInsurance();\n };\n }, []);\n\n useEffect(() => {\n if (item?.id && retailerId) {\n actions.getProvider(item.id, retailerId);\n }\n }, [item?.id, retailerId]);\n\n useEffect(() => {\n if (provider) setLogo(provider.logo);\n }, [provider]);\n\n if (provider == null) return null;\n\n return (\n
    \n \n \n {t('insurance.addition', { ns: 'item' })}\n \n \n \n \n \n \n \n \n \n \n {provider?.description &&\n (marketCode === 'SE' ? provider?.institute !== 'IF' : true) && (\n \n )}\n {provider.requiresDistance &&\n provider.requiresPersonalNumber &&\n marketCode === 'SE' ? (\n \n {t('insurance.chooseYourInsurance', { ns: 'item' })}\n \n ) : (\n \n {t('insurance.readMore.text', { ns: 'item' })}\n \n )}\n \n \n \n {logo && (\n \n \n \n \n \n )}\n \n \n
    \n );\n};\n\nexport default Insurance;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport type { InsuranceProviderResponse } from '../../@types/Insurance';\nimport { inquiry } from '../../actions/insurance';\nimport { prices } from '../../helpers';\nimport { ExchangeTypes, useDataExchangeStatus } from '../../hooks/exchange-status';\nimport type { RootState } from '../../reducers';\nimport { getInsuranceList } from '../../selectors/insurance';\nimport { getItem } from '../../selectors/item';\nimport { getRetailerId } from '../../selectors/retailer';\nimport { Column, Columns } from '../../styled-components/components/Columns';\nimport { Text } from '../../styled-components/components/Text';\n\nconst InsuranceHeader = () => {\n const { t } = useTranslation(['item']);\n const dispatch = useDispatch();\n const requestStatus = useSelector((s) => s.insurances.requestStatus);\n const responseStatus = useSelector((s) => s.insurances.responseStatus);\n const insurances = useSelector(getInsuranceList);\n const personalNumber = useSelector(\n (s) => s.insurances.persisted.personalNumber,\n );\n const drivingRange = useSelector(\n (s) => s.insurances.persisted.drivingRange,\n );\n const item = useSelector(getItem);\n const branchId = useSelector(getRetailerId);\n const provider = useSelector(\n (s) => s.insurances.provider,\n );\n const actions = bindActionCreators({ inquiry }, dispatch);\n\n const { successful } = useDataExchangeStatus(ExchangeTypes.Fetching, [\n requestStatus,\n responseStatus,\n ]);\n useEffect(() => {\n if (personalNumber && provider && branchId && item) {\n actions.inquiry(item.id, branchId, personalNumber, drivingRange || '1');\n }\n }, [provider]);\n\n if (successful && (insurances || []).length > 0) {\n const { price, name, unit } = insurances.sort((a, b) => a.price - b.price)[0];\n\n return (\n \n \n \n {name}\n \n \n \n \n {price > 0 ? prices.prettify(price, unit) : `0 ${unit}`}\n \n \n \n );\n }\n\n if (provider?.requiresDistance && provider.requiresPersonalNumber)\n return (\n \n {t('insurance.heading', { ns: 'item' })}\n \n );\n\n return (\n \n {provider?.insuranceHeader || t('insurance.heading', { ns: 'item' })}\n \n );\n};\n\nexport default InsuranceHeader;\n", "import styled from 'styled-components';\n\nexport const Img = styled.img.withConfig({ componentId: 'sc-1hs9p02-0' })`\n display: block;\n max-width: 100%;\n`;\n\nexport const ImgFullWidth = styled.img.withConfig({ componentId: 'sc-1hs9p02-1' })`\n display: block;\n width: 100%;\n`;\n", "import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nimport type { InventoryStatusString } from '../../@types/ElasticVehicle';\nimport { prettify } from '../../helpers/prices';\nimport { getItemPrice } from '../../selectors/item';\nimport PriceRow from './price-row';\n\ninterface PriceProps {\n inventoryStatus?: InventoryStatusString;\n}\n\nconst Price = ({ inventoryStatus }: PriceProps) => {\n const { t } = useTranslation('common');\n const data = useSelector(getItemPrice);\n\n if (!data) return null;\n\n const { price, oldPrice, deductibleVat } = data;\n\n if (!price) {\n return null;\n }\n\n const shouldDisplayOldPrice = (oldPrice || 0) > price;\n\n return (\n
    \n
    \n \n {!!oldPrice && shouldDisplayOldPrice && (\n \n )}\n {deductibleVat && (\n \n )}\n
    \n
    \n );\n};\n\nexport default Price;\n", "import React from 'react';\n\ninterface PriceListRowProps {\n title: string;\n value: string;\n shouldIndicateReducedPrice: boolean;\n isReducedPrice: boolean;\n}\n\nconst PriceListRow = ({\n title,\n value,\n shouldIndicateReducedPrice,\n isReducedPrice,\n}: PriceListRowProps) => (\n
    \n
    {title}
    \n
    \n {shouldIndicateReducedPrice && }\n {value}\n
    \n
    \n);\n\nexport default PriceListRow;\n", "import React from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { useTranslation } from 'react-i18next';\nimport { getRetailerDocument } from '../../selectors/retailer';\nimport { resolveRouteRetailer } from '../../shared/resolve-routes';\nimport { RouterLink } from '../../styled-components/components/Link';\n\nconst Seller = () => {\n const { t } = useTranslation('common');\n const retailer = useSelector(getRetailerDocument);\n\n if (!retailer) return null;\n\n const { name, logo, position, slug } = retailer;\n const city = position ? position.city : null;\n\n const link = `${resolveRouteRetailer()}/${slug}`;\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n {name}\n \n
    \n \n {city}\n
    \n
    \n
    \n
    \n {logo && (\n \n )}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default Seller;\n", "import { useQuery } from '@tanstack/react-query';\n\nimport type { RequestStateQuery } from '../../@types/RequestStateQuery';\nimport type { ApiResponse } from '../../Http';\nimport { buildGetRequest } from '../../Http/requestTemplates';\nimport useHttp from '../../Http/useHttp';\nimport { settings } from '../../helpers';\n\nconst PAYMENTS_QUERY = 'EcomUri/payments/:id';\n\ninterface PayymentListItemSetting {\n max: number;\n min: number;\n step: number;\n default: number;\n current: number;\n fixed: boolean;\n}\n\nexport interface PaymentListItem {\n monthlyCost: number;\n interest: number;\n effectiveInterest: number;\n setupFee: number;\n registrationFee: number | null;\n administrationFee: number;\n totalCreditCost: number;\n totalResidualValue: number;\n totalVehicleCost: number;\n loanAmount: number;\n vehiclePrice: number;\n residual: PayymentListItemSetting | null;\n duration: PayymentListItemSetting;\n downPayment: PayymentListItemSetting;\n financialInstitution: string;\n financialOptionId: string;\n link: string;\n linkText: string;\n imageUrl: string;\n useCreditScoring: boolean;\n financialProductCode: string | null;\n privacyPolicyUrl: string | null;\n name: string;\n description: string | null;\n creditApplicationUrl: string | null;\n}\n\nconst usePayments = (\n id?: string,\n branchId?: string,\n): [PaymentListItem[] | undefined, RequestStateQuery] => {\n const { httpJson } = useHttp();\n\n const { data, isPending, isSuccess, isError } = useQuery>({\n queryKey: [PAYMENTS_QUERY, id, branchId],\n queryFn: () =>\n httpJson>(\n `${settings.get('EcomUri')}/payment/${id}/list?branchId=${branchId}`,\n buildGetRequest(),\n ),\n\n retry: false,\n refetchOnWindowFocus: false,\n gcTime: Number.POSITIVE_INFINITY,\n staleTime: Number.POSITIVE_INFINITY,\n enabled: !!id && !!branchId,\n });\n\n return [data?.response, { isLoading: isPending, isSuccess, isError }];\n};\n\nexport default usePayments;\n", "import React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nimport { getBusinessLeasingPromo, getItemPrice } from '../../selectors/item';\n\nimport { asHtml } from '../../helpers/markdown';\nimport { Box } from '../../styled-components/components/Box';\nimport Checklist from '../../styled-components/components/Checklist';\nimport { Column, Columns } from '../../styled-components/components/Columns';\nimport Content from '../../styled-components/components/Content';\nimport { LayoutGrid, LayoutGridItem } from '../../styled-components/components/LayoutGrid';\nimport { Link } from '../../styled-components/components/Link';\nimport { LinkButton } from '../../styled-components/components/LinkButton';\nimport Modal from '../../styled-components/components/Modal';\nimport { StackLarge, StackSmall, StackTiny } from '../../styled-components/components/Stack';\nimport { Text } from '../../styled-components/components/Text';\nimport { ImgFullWidth } from '../../styled-components/components/Utilities';\n\nconst BusinessLeasing = () => {\n const { t } = useTranslation(['common', 'item']);\n\n const data = useSelector(getItemPrice);\n const promo = useSelector(getBusinessLeasingPromo);\n\n const [modal, setModal] = useState(false);\n\n const businessLeasingPrice = data?.businessLeasingPrice;\n\n const onOpenModal = useCallback(() => setModal(true), []);\n const onCloseModal = useCallback(() => setModal(false), []);\n\n if (!businessLeasingPrice) return null;\n\n const checkListItems = [];\n\n if (promo?.insuranceIncluded) {\n checkListItems.push(t('Insurance included', { ns: 'item' }));\n }\n\n if (promo?.serviceIncluded) {\n checkListItems.push(t('Service included', { ns: 'item' }));\n }\n\n if (promo?.winterTiresIncluded) {\n checkListItems.push(t('Winter wheels included', { ns: 'item' }));\n }\n\n return (\n \n {modal && promo && (\n \n {promo.image && (\n \n \n \n )}\n \n \n {promo.title}\n \n {promo.description && (\n \n \n \n )}\n {promo.link && (\n \n \n {promo.link.name}\n \n \n )}\n \n {checkListItems.length > 0 && (\n \n \n \n )}\n \n \n \n \n \n {t('Montly cost', { ns: 'item' })}\n \n \n \n {t('Price per month', { ns: 'common', count: businessLeasingPrice })}\n \n \n \n \n \n {t('Binding', { ns: 'item' })}\n \n \n \n {t('Months count', { ns: 'item', count: promo.periodMonths })}\n \n \n \n \n \n {t('Annual mileage', { ns: 'item' })}\n \n \n \n {t('Miles per year', { ns: 'common', count: promo.mileagePerYear })}\n \n \n \n \n \n )}\n \n \n \n \n \n {t('priceLabel.businessLeasing', { ns: 'common' })}\n \n \n \n \n {t('Price per month', { ns: 'common', count: businessLeasingPrice })}\n \n \n \n \n {promo ? (\n \n \n {t('Including mileage in a specific period. Price excl. VAT.', {\n ns: 'item',\n mileage: promo.mileagePerYear,\n length: promo.periodMonths,\n })}\n \n {t('Read more', { ns: 'common' })}\n \n \n \n ) : (\n \n \n {t('Price excl. VAT.', { ns: 'item' })}\n \n \n )}\n \n \n );\n};\n\nexport default BusinessLeasing;\n", "import React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { prettify } from '../../helpers/prices';\nimport { getItemPrice, getPrivateLeasingPromo } from '../../selectors/item';\n\nimport { asHtml } from '../../helpers/markdown';\nimport { Box } from '../../styled-components/components/Box';\nimport Checklist from '../../styled-components/components/Checklist';\nimport Content from '../../styled-components/components/Content';\nimport { LayoutGrid, LayoutGridItem } from '../../styled-components/components/LayoutGrid';\nimport { Link } from '../../styled-components/components/Link';\nimport { LinkButton } from '../../styled-components/components/LinkButton';\nimport Modal from '../../styled-components/components/Modal';\nimport { StackLarge, StackSmall, StackTiny } from '../../styled-components/components/Stack';\nimport { Text } from '../../styled-components/components/Text';\nimport { ImgFullWidth } from '../../styled-components/components/Utilities';\nimport PriceRow from './price-row';\n\nconst PrivateLeasing = () => {\n const { t } = useTranslation(['common', 'item']);\n const data = useSelector(getItemPrice);\n const promo = useSelector(getPrivateLeasingPromo);\n\n const [modal, setModal] = useState(false);\n\n const leasingPrice = data?.leasingPrice;\n const leasingDeposit = data?.leasingDeposit;\n\n const onOpenModal = useCallback(() => setModal(true), []);\n const onCloseModal = useCallback(() => setModal(false), []);\n\n const checkListItems = [];\n\n if (promo?.insuranceIncluded) {\n checkListItems.push(t('privateLeasing.insuranceIncluded', { ns: 'item' }));\n }\n\n if (promo?.serviceIncluded) {\n checkListItems.push(t('privateLeasing.serviceIncluded', { ns: 'item' }));\n }\n\n if (promo?.winterTiresIncluded) {\n checkListItems.push(t('privateLeasing.winterTiresIncluded', { ns: 'item' }));\n }\n\n if (!leasingPrice) return null;\n\n return (\n \n {modal && promo && (\n \n {promo.image && (\n \n \n \n )}\n \n \n {promo.title}\n \n {promo.description && (\n \n \n \n )}\n {promo.link && (\n \n \n {promo.link.name}\n \n \n )}\n \n {checkListItems.length > 0 && (\n \n \n \n )}\n \n \n \n \n \n {t('privateLeasing.monthlyCost', { ns: 'item' })}\n \n \n {t('Price per month', { ns: 'common', count: leasingPrice })}\n \n \n \n \n {t('privateLeasing.binding', { ns: 'item' })}\n \n \n {prettify(promo.periodMonths, 'm\u00E5nader')}\n \n \n \n \n {t('privateLeasing.annualMileage', { ns: 'item' })}\n \n \n \n {t('Miles per year', { ns: 'common', count: promo.mileagePerYear })}\n \n \n \n \n \n )}\n \n \n
    \n \n {!!leasingDeposit && (\n \n )}\n
    \n
    \n {promo && (\n \n \n {t('privateLeasing.includingMileageInPeriod', {\n ns: 'item',\n mileage: promo.mileagePerYear,\n length: promo.periodMonths,\n })}\n \n {t('privateLeasing.readMore.text', { ns: 'item' })}\n \n \n \n )}\n
    \n
    \n );\n};\n\nexport default PrivateLeasing;\n", "import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nimport { getItemCentralStorageBranchesLocationSorted } from '../../selectors/item-retailer';\nimport { getRetailerDocument } from '../../selectors/retailer';\n\ninterface CentralStorageProps {\n onClick?: React.MouseEventHandler;\n}\n\nconst CentralStorage = ({ onClick }: CentralStorageProps) => {\n const { t } = useTranslation('item');\n const retailer = useSelector(getRetailerDocument);\n const centralStorageBranches = useSelector(getItemCentralStorageBranchesLocationSorted);\n\n if (!retailer || !centralStorageBranches || !centralStorageBranches.length) return null;\n\n return (\n
    \n
    \n
    \n
    {t('Central storage', { ns: 'item' })}
    \n
    \n
    \n \n {t('Change dealer', { ns: 'item' })}\n \n
    \n
    \n
    \n );\n};\n\nexport default CentralStorage;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport { createSelector } from '@reduxjs/toolkit';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { trackSoftConversionEvent } from '../../actions/tracking';\nimport type { RootState } from '../../reducers';\nimport { getItem } from '../../selectors/item';\nimport { softConversionEvents } from '../../shared/tracking';\nimport { Align } from '../../styled-components/components/Align';\nimport { Stack } from '../../styled-components/components/Stack';\n\ninterface Branding {\n id: string;\n description?: string;\n name: string;\n logo?: { file: { url: string } | null } | null;\n website?: string;\n}\n\ninterface PaymentOption {\n externalId: string;\n}\n\nconst selectBrandings = (state: RootState) => state.brandings.list;\n\nconst selectFilteredBrandings = createSelector([selectBrandings], (brandings) =>\n brandings?.filter((x) => x.category.includes('Credit card')),\n);\n\ninterface PaymentOptionsProps {\n options: PaymentOption[];\n}\n\nconst PaymentOptions = ({ options }: PaymentOptionsProps) => {\n const { t } = useTranslation(['item']);\n const dispatch = useDispatch();\n const brandings = useSelector(selectFilteredBrandings);\n const item = useSelector(getItem);\n const track = bindActionCreators(trackSoftConversionEvent, dispatch);\n\n // Early return if options are empty\n if (!options || options.length === 0) return null;\n\n // Memoize available payment options to avoid unnecessary recalculations\n const available = useMemo(\n () =>\n options\n .map((option) => brandings?.find((b) => b.id === option.externalId))\n .filter(Boolean) as Branding[],\n [options, brandings],\n );\n\n // Early return if no available payment options are found\n if (!available || available.length === 0) return null;\n\n return (\n <>\n {available.map((option) => {\n const { logo, name, description, website } = option;\n const logotype = logo?.file?.url || null;\n\n return (\n
    \n \n
    \n
    {name}
    \n
    {description}
    \n
    \n \n track(item, softConversionEvents.SOFT_CONVERSIONS_PAYMENT_OPTION, {\n paymentOptionName: name,\n })\n }\n data-am-link=\"\"\n href={website}\n title={t('applyForCreditCard', { ns: 'item' })}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n data-wayke-action=\"carpay-external-link\"\n >\n {t('applyForCreditCard', { ns: 'item' })}\n \n \n
    \n
    \n
    \n {logotype && (\n \n \n \n \n \n )}\n
    \n );\n })}\n \n );\n};\n\nexport default PaymentOptions;\n", "import React, { Fragment, useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport type Item from '../../../@types/item';\nimport type { PaymentListItem } from '../../../Data/Payments/usePayments';\nimport { numberSeparator } from '../../../helpers/formats';\nimport { getMarket } from '../../../i18n';\nimport { Align } from '../../../styled-components/components/Align';\nimport { Box } from '../../../styled-components/components/Box';\nimport { Column, Columns } from '../../../styled-components/components/Columns';\nimport { CreditorDisclaimer } from '../../../styled-components/components/CreditorDisclaimer';\nimport { LinkButton } from '../../../styled-components/components/LinkButton';\nimport { Price } from '../../../styled-components/components/Price';\nimport { Stack, StackSmall } from '../../../styled-components/components/Stack';\nimport { Text } from '../../../styled-components/components/Text';\nimport { Img } from '../../../styled-components/components/Utilities';\nimport { getPercentageFromFraction } from '../../../utils/finance';\nimport PaymentModal from './payment-modal';\n\ninterface PaymentsProps {\n id: string;\n item: Item;\n branchId: string;\n payments: PaymentListItem[];\n}\n\nconst Payments = ({ id, item, branchId, payments }: PaymentsProps) => {\n const { t } = useTranslation(['item', 'currency']);\n const [paymentModal, setPaymentModal] = useState();\n const marketCode = getMarket().marketCode;\n\n const onOpenPaymentModal = useCallback(\n (payment: PaymentListItem) => setPaymentModal(payment),\n [],\n );\n const onClosePaymentModal = useCallback(() => setPaymentModal(undefined), []);\n\n if (!payments?.length) return null;\n\n const imageUrl = payments?.[0].imageUrl;\n const financialInstitution = payments?.[0].financialInstitution;\n\n // List of financial institutions that should show the creditor disclaimer\n /*\n const disclaimerFinancialInstitutions = ['Volvofinans - en del av Ziklo Bank', 'Ziklo Bank'];\n\n const showCreditorDisclaimer =\n marketCode === 'SE' &&\n payments.some((payment) =>\n disclaimerFinancialInstitutions.includes(payment.financialInstitution),\n );\n */\n const showCreditorDisclaimer = marketCode === 'SE';\n\n return (\n <>\n {paymentModal && (\n \n )}\n \n \n {payments.map((payment, index) => (\n \n \n \n \n \n \n {payment.name}\n \n \n \n \n {t('monthlyCost', {\n ns: 'currency',\n price: payment.monthlyCost > 0 ? numberSeparator(payment.monthlyCost) : 0,\n })}\n \n \n \n \n \n \n {!!payment.residual?.current\n ? t('installmentsDisclaimerWithResidual', {\n ns: 'item',\n amount: payment.loanAmount > 0 ? numberSeparator(payment.loanAmount) : 0,\n duration: payment.duration.current,\n interest: getPercentageFromFraction(payment.interest),\n effectiveInterest: getPercentageFromFraction(payment.effectiveInterest),\n residual: getPercentageFromFraction(payment.residual.current),\n })\n : t('installmentsDisclaimer', {\n ns: 'item',\n amount: payment.loanAmount > 0 ? numberSeparator(payment.loanAmount) : 0,\n duration: payment.duration.current,\n interest: getPercentageFromFraction(payment.interest),\n effectiveInterest: getPercentageFromFraction(payment.effectiveInterest),\n })}\n onOpenPaymentModal(payment)}\n title={payment.financialInstitution}\n data-wayke-action=\"financial-read-more\"\n $block\n >\n {t('adjustDetails', { ns: 'common' })}\n \n \n \n \n \n ))}\n {imageUrl && (\n \n \n \n \n \n )}\n \n \n {showCreditorDisclaimer && (\n \n \n \n \n \n )}\n \n );\n};\n\nexport default Payments;\n", "import React from 'react';\nimport { Link } from '../Link';\nimport { Body, Heading, Icon, Wrapper } from './wrapper';\n\nexport const CreditorDisclaimer = () => (\n // biome-ignore lint/a11y/useSemanticElements: Output element is not suitable for this use case\n \n \n \n Varning\n \n \n \n \n Att l\u00E5na kostar pengar!\n

    \n Om du inte kan betala tillbaka skulden i tid riskerar du en betalningsanm\u00E4rkning. Det kan\n leda till sv\u00E5righeter att f\u00E5 hyra bostad, teckna abonnemang och f\u00E5 nya l\u00E5n. F\u00F6r st\u00F6d, v\u00E4nd\n dig till budget- och skuldr\u00E5dgivningen i din kommun. Kontaktuppgifter finns p\u00E5{' '}\n \n konsumentverket.se\n \n .\n

    \n \n
    \n);\n", "import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\n\nexport const Wrapper = styled.div.withConfig({ componentId: 'sc-wv52s5-0' })`\n display: flex;\n align-items: flex-start;\n flex-wrap: wrap;\n gap: ${size(2)};\n font-size: var(--font-size-small-static);\n line-height: 1.3;\n`;\n\nexport const Icon = styled.div.withConfig({ componentId: 'sc-wv52s5-1' })`\n flex-shrink: 0;\n\n svg {\n display: block;\n width: auto;\n height: 3lh;\n }\n`;\n\nexport const Body = styled.div.withConfig({ componentId: 'sc-wv52s5-2' })`\n flex: 1 1 20ch;\n display: flex;\n flex-direction: column;\n gap: ${size(0.25)};\n\n p {\n margin: 0;\n }\n`;\n\nexport const Heading = styled.div.withConfig({ componentId: 'sc-wv52s5-3' })`\n font-weight: var(--font-weight-bold);\n`;\n", "import styled from 'styled-components';\n\nexport const Price = styled.div.withConfig({ componentId: 'sc-1ajy5lv-0' })`\n font-size: var(--font-size-large);\n font-weight: var(--font-weight-bold);\n`;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport type Item from '../../../@types/item';\nimport useCalculatePayment from '../../../Data/Payments/useCalculatePayment';\nimport type { PaymentListItem } from '../../../Data/Payments/usePayments';\nimport { trackSoftConversionEvent as _trackSoftConversionEvent } from '../../../actions/tracking';\nimport { asHtml } from '../../../helpers/markdown';\nimport usePrevious from '../../../hooks/usePrevious';\nimport { softConversionEvents } from '../../../shared/tracking';\nimport Alert from '../../../styled-components/components/Alert';\nimport { Box } from '../../../styled-components/components/Box';\nimport { CreditorDisclaimer } from '../../../styled-components/components/CreditorDisclaimer';\nimport Modal from '../../../styled-components/components/Modal';\nimport { StackLarge, StackSmall } from '../../../styled-components/components/Stack';\nimport { Text } from '../../../styled-components/components/Text';\nimport CreditApplication from './credit-application';\nimport Details from './details';\nimport InputSlider from './input-slider';\nimport SelectSlider from './select-slider';\n\ninterface PaymentModalProps {\n id: string;\n branchId: string;\n item: Item;\n payment: PaymentListItem;\n showCreditorDisclaimer?: boolean;\n onClose: () => void;\n}\n\nconst PaymentModal = ({\n id,\n branchId,\n item,\n payment,\n showCreditorDisclaimer,\n onClose,\n}: PaymentModalProps) => {\n const { t } = useTranslation(['finance', 'validation', 'credit-application-vfs']);\n const [calculatePayment, request, calculatedPayment] = useCalculatePayment();\n const previousCalculatedPayment = usePrevious(calculatedPayment);\n const isPending = request.isLoading;\n const [creditApplicationView, setCreditApplicationView] = useState(false);\n\n const dispatch = useDispatch();\n const trackSoftConversionEvent = bindActionCreators(_trackSoftConversionEvent, dispatch);\n\n const activePayment = useMemo(\n () => calculatedPayment || previousCalculatedPayment || payment,\n [calculatedPayment, previousCalculatedPayment, payment],\n );\n\n const downPayment = activePayment.downPayment;\n const duration = activePayment.duration;\n const residual = activePayment.residual;\n\n const onOpenCreditApplicationView = () => setCreditApplicationView(true);\n const onCloseCreditApplicationView = () => setCreditApplicationView(false);\n\n const updateFinancialInformationIfNeeded = (\n durationValue: number,\n residualValue: number | undefined,\n downPaymentValue: number,\n ) => {\n const hasChanges =\n duration.current !== durationValue ||\n residual?.current !== residualValue ||\n downPayment.current !== downPaymentValue;\n\n if (!hasChanges) {\n return;\n }\n\n calculatePayment({\n id,\n data: {\n duration: durationValue,\n residual: residualValue,\n downPayment: downPaymentValue,\n branchId,\n financialOptionId: payment.financialOptionId,\n },\n });\n\n trackSoftConversionEvent(item, softConversionEvents.SOFT_CONVERSIONS_FINANCE, {\n financialInstitution: payment.financialInstitution,\n });\n };\n\n const onCashChange = (value: number) => {\n updateFinancialInformationIfNeeded(duration.current, residual?.current, value);\n };\n\n const onDurationChange = (value: number) => {\n updateFinancialInformationIfNeeded(value, residual?.current, downPayment.current);\n };\n\n const onResidualValueChange = (value: number) => {\n updateFinancialInformationIfNeeded(duration.current, value, downPayment.current);\n };\n\n return (\n \n {creditApplicationView ? (\n \n ) : (\n <>\n {payment.description && (\n \n \n \n )}\n \n {!payment.downPayment.fixed && (\n \n )}\n {!payment.duration.fixed && (\n \n )}\n {!payment.residual?.fixed && residual && (\n onResidualValueChange(value / 100)}\n rangeLabel={{\n min: (residual.min * 100).toFixed(0),\n max: (residual.max * 100).toFixed(0),\n unit: '%',\n }}\n />\n )}\n \n \n \n \n \n {showCreditorDisclaimer && (\n \n \n \n \n \n )}\n \n\n {request.isError && (\n \n {t('unknownError', { ns: 'validation' })}\n \n )}\n {payment.imageUrl && (\n \n
    \n \n
    \n
    \n )}\n {payment.creditApplicationUrl && payment.monthlyCost > 0 && (\n \n
    \n \n {t('applyForLoanPromise', { ns: 'finance' })}\n \n
    \n
    \n )}\n \n )}\n \n );\n};\n\nexport default PaymentModal;\n", "import { useMutation } from '@tanstack/react-query';\nimport type { RequestStateQuery } from '../../@types/RequestStateQuery';\nimport type { ApiResponse } from '../../Http';\nimport { buildPostRequest } from '../../Http/requestTemplates';\nimport useHttp from '../../Http/useHttp';\nimport { settings } from '../../helpers';\nimport type { PaymentListItem } from './usePayments';\n\ninterface Payload {\n id: string;\n data: {\n branchId: string;\n duration: number;\n downPayment: number;\n residual?: number;\n financialOptionId: string;\n };\n}\n\nconst useCalculatePayment = (): [\n (payload: Payload) => void,\n RequestStateQuery,\n PaymentListItem | undefined,\n] => {\n const { httpJson } = useHttp();\n\n const mutation = useMutation({\n mutationFn: (payload: Payload) => {\n return httpJson>(\n `${settings.get('EcomUri')}/payment/${payload.id}`,\n {\n ...buildPostRequest(payload.data),\n },\n );\n },\n });\n\n const { mutate, isPending, isSuccess, isError, data } = mutation;\n\n return [\n (payload: Payload) => mutate(payload),\n { isLoading: isPending, isSuccess, isError },\n data?.response,\n ];\n};\n\nexport default useCalculatePayment;\n", "import React, { useEffect, useMemo } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport useCreditApplicationRedirectUrl from '../../../../Data/Payments/useCreditApplicationRedirectUrl';\nimport InputCheckbox from '../../../../components/rhf/InputCheckbox';\nimport InputSelect from '../../../../components/rhf/InputSelect';\nimport InputText from '../../../../components/rhf/InputText';\nimport { getMarket } from '../../../../i18n';\nimport Alert from '../../../../styled-components/components/Alert';\nimport { Button } from '../../../../styled-components/components/Button';\nimport { Form, FormGroup } from '../../../../styled-components/components/Form';\nimport InputError from '../../../../styled-components/components/InputError';\nimport InputLabel from '../../../../styled-components/components/InputLabel';\nimport Loader from '../../../../styled-components/components/Loader';\nimport { StackMedium } from '../../../../styled-components/components/Stack';\nimport { Text } from '../../../../styled-components/components/Text';\nimport usePersistCreditApplicationState from './usePersistCreditApplicationState';\nimport useTrackCreditApplication from './useTrackCreditApplication';\nimport {\n type FormState,\n FormStateToPayload,\n FormStateToPersisted,\n createOptions,\n defaultState,\n validateTelephonenumber,\n} from './utils';\n\nconst ns = 'credit-application-vfs';\n\ninterface CreditApplicationProps {\n id: string;\n financialInstitution: string;\n downPayment: number;\n duration: number;\n residual?: number;\n}\n\nconst CreditApplication = ({\n id,\n financialInstitution,\n downPayment,\n duration,\n residual,\n}: CreditApplicationProps) => {\n const { marketCode } = getMarket();\n const { t } = useTranslation([ns, 'glossary', 'validation']);\n const [persisted, persistData] = usePersistCreditApplicationState();\n const track = useTrackCreditApplication({\n downPayment,\n duration,\n residual,\n financialInstitution,\n });\n const [createRedirectUrl, requestCreateRedirectUrl, redirectUrl] =\n useCreditApplicationRedirectUrl();\n\n const loading = requestCreateRedirectUrl.isLoading;\n\n useEffect(() => {\n track.trackInit();\n }, []);\n\n useEffect(() => {\n if (redirectUrl) {\n const el = document.createElement('a');\n el.href = redirectUrl;\n el.target = '_blank';\n el.rel = 'noopener noreferrer';\n el.click();\n }\n }, [redirectUrl]);\n\n const {\n formState: { errors },\n register,\n handleSubmit,\n } = useForm({\n defaultValues: defaultState({ id, downPayment, duration, persisted }),\n });\n\n const onSubmit = handleSubmit((data) => {\n const persistedPayload = FormStateToPersisted(data, marketCode);\n if (persistedPayload) {\n persistData(\n persistedPayload.ssn,\n persistedPayload.email,\n persistedPayload.estimatedMileage,\n persistedPayload.telephone,\n );\n } else {\n persistData();\n }\n\n const payload = FormStateToPayload(data, marketCode);\n createRedirectUrl(payload);\n track.trackSubmitted();\n });\n\n const options = useMemo(() => createOptions(marketCode), [marketCode]);\n\n return (\n <>\n \n {t('description', { ns })}\n \n \n
    \n \n {t('fields.ssn.displayName', { ns })}\n \n {errors.ssn && {t('errorWrongFormat', { ns: 'validation' })}}\n \n \n {t('fields.estimatedMileage.displayName', { ns })}\n \n {errors.estimatedMileage && (\n {t('fieldCanNotBeEmpty', { ns: 'validation' })}\n )}\n \n \n {t('fields.email.displayName', { ns })}\n \n {errors.email && {t('errorWrongFormat', { ns: 'validation' })}}\n \n \n {t('fields.telephone.displayName', { ns })}\n validateTelephonenumber(s, marketCode),\n },\n })}\n placeholder={t('phoneNumber', { ns: 'glossary' })}\n disabled={loading}\n />\n {errors.telephone && (\n {t('errorWrongFormatPhoneNumber', { ns: 'validation' })}\n )}\n \n \n \n {t('fields.persisted.displayName', {\n ns,\n brandName: t('brandName', { ns: 'global' }),\n })}\n \n \n \n \n \n
    \n
    \n {requestCreateRedirectUrl.isError && (\n \n {t('alerts.errorCreateRedirectUrl', { ns })}\n \n )}\n \n );\n};\n\nexport default CreditApplication;\n", "import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n", "export default (value: unknown): value is Date => value instanceof Date;\n", "export default (value: unknown): value is null | undefined => value == null;\n", "import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n", "import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n", "export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n", "import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n", "import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n", "export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n", "import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n const isFileListInstance =\n typeof FileList !== 'undefined' ? data instanceof FileList : false;\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || isFileListInstance)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n", "export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n", "export default (val: unknown): val is undefined => val === undefined;\n", "import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (\n object: T,\n path?: string | null,\n defaultValue?: unknown,\n): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n", "export default (value: unknown): value is boolean => typeof value === 'boolean';\n", "export default (value: string) => /^\\w*$/.test(value);\n", "import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n", "import { FieldPath, FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (\n object: FieldValues,\n path: FieldPath,\n value?: unknown,\n) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n", "export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n", "import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
    \n * \n * \n * \n *
    \n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TransformedValues extends FieldValues | undefined = undefined,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
    \n * \n * \n * \n *
    \n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {children}\n \n );\n};\n", "import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n control: Control,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n", "import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n", "import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default (\n formStateData: Partial> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n", "export default (value: T) => (Array.isArray(value) ? value : [value]);\n", "import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default (\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n", "import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n next: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n", "import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
    \n * \n * {dirtyFields.firstName &&

    Field is dirty.

    }\n * \n *
    \n * );\n * }\n * ```\n */\nfunction useFormState(\n props?: UseFormStateProps,\n): UseFormStateReturn {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) =>\n _mounted.current &&\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n value.name,\n exact,\n ) &&\n shouldRenderFormState(\n value,\n _localProxyFormState.current,\n control._updateFormState,\n ) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n\n return React.useMemo(\n () =>\n getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n ),\n [formState, control],\n );\n}\n\nexport { useFormState };\n", "export default (value: unknown): value is string => typeof value === 'string';\n", "import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n", "import React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport cloneObject from './utils/cloneObject';\nimport {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Subscribe to the entire form values change and re-render at the hook level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * defaultValue: {\n * name: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(props: {\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath = FieldPath,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValue;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends\n readonly FieldPath[] = readonly FieldPath[],\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValues;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * // can skip passing down the control into useWatch if the form is wrapped with the FormProvider\n * const values = useWatch()\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nexport function useWatch(\n props?: UseWatchProps,\n) {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n defaultValue,\n disabled,\n exact,\n } = props || {};\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState: { name?: InternalFieldName; values?: FieldValues }) => {\n if (\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n formState.name,\n exact,\n )\n ) {\n updateValue(\n cloneObject(\n generateWatchOutput(\n _name.current as InternalFieldName | InternalFieldName[],\n control._names,\n formState.values || control._formValues,\n false,\n defaultValue,\n ),\n ),\n );\n }\n },\n });\n\n const [value, updateValue] = React.useState(\n control._getWatch(\n name as InternalFieldName,\n defaultValue as DeepPartialSkipArrayKey,\n ),\n );\n\n React.useEffect(() => control._removeUnmounted());\n\n return value;\n}\n", "import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport cloneObject from './utils/cloneObject';\nimport get from './utils/get';\nimport isBoolean from './utils/isBoolean';\nimport isUndefined from './utils/isUndefined';\nimport set from './utils/set';\nimport { EVENTS } from './constants';\nimport {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
    \n * \n *

    {fieldState.isTouched && \"Touched\"}

    \n *

    {formState.isSubmitted ? \"submitted\" : \"\"}

    \n *
    \n * );\n * }\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: UseControllerProps,\n): UseControllerReturn {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(\n control._formValues,\n name,\n get(control._defaultValues, name, props.defaultValue),\n ),\n exact: true,\n }) as FieldPathValue;\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }),\n );\n\n const fieldState = React.useMemo(\n () =>\n Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n [formState, name],\n );\n\n const field = React.useMemo(\n () => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: (event: any) =>\n _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n }),\n onBlur: () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n ref: (elm: any) => {\n const field = get(control._fields, name);\n\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message: string) =>\n elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n }),\n [\n name,\n control._formValues,\n disabled,\n formState.disabled,\n value,\n control._fields,\n ],\n );\n\n React.useEffect(() => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n\n !isArrayField && control.register(name);\n\n return () => {\n (\n isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n React.useEffect(() => {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n });\n }, [disabled, name, control]);\n\n return React.useMemo(\n () => ({\n field,\n formState,\n fieldState,\n }),\n [field, formState, fieldState],\n );\n}\n", "import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
    \n * (\n * <>\n * \n *

    {formState.isSubmitted ? \"submitted\" : \"\"}

    \n *

    {fieldState.isTouched ? \"touched\" : \"\"}

    \n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n", "import { FieldValues } from '../types';\n\nimport { isObjectType } from './isObject';\n\nexport const flatten = (obj: FieldValues) => {\n const output: FieldValues = {};\n\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n } else {\n output[key] = obj[key];\n }\n }\n\n return output;\n};\n", "import React from 'react';\n\nimport { flatten } from './utils/flatten';\nimport { FieldValues, FormProps } from './types';\nimport { useFormContext } from './useFormContext';\n\nconst POST_REQUEST = 'post';\n\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n *
    \n * \n *

    {errors?.root?.server && 'Server error'}

    \n * \n *
    \n * );\n * }\n * ```\n */\nfunction Form<\n T extends FieldValues,\n U extends FieldValues | undefined = undefined,\n>(props: FormProps) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const {\n control = methods.control,\n onSubmit,\n children,\n action,\n method = POST_REQUEST,\n headers,\n encType,\n onError,\n render,\n onSuccess,\n validateStatus,\n ...rest\n } = props;\n\n const submit = async (event?: React.BaseSyntheticEvent) => {\n let hasError = false;\n let type = '';\n\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n\n try {\n formDataJson = JSON.stringify(data);\n } catch {}\n\n const flattenFormValues = flatten(control._formValues);\n\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n\n if (\n response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)\n ) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n } else {\n onSuccess && onSuccess({ response });\n }\n } catch (error: unknown) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n return render ? (\n <>\n {render({\n submit,\n })}\n \n ) : (\n \n {children}\n \n );\n}\n\nexport { Form };\n", "import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n", "export default () => {\n const d =\n typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n", "import { FieldArrayMethodProps, InternalFieldName } from '../types';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n name: InternalFieldName,\n index: number,\n options: FieldArrayMethodProps = {},\n): string =>\n options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n", "import { VALIDATION_MODE } from '../constants';\nimport { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n", "import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n", "import { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set | InternalFieldName[] | 0,\n abortEarly?: boolean,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n } else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n } else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField as FieldRefs, action)) {\n break;\n }\n }\n }\n }\n return;\n};\nexport default iterateFieldsByAction;\n", "import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n", "import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n", "export default (value: unknown): value is Function =>\n typeof value === 'function';\n", "import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n", "import { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message => isString(value);\n", "import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n", "export default (value: unknown): value is RegExp => value instanceof RegExp;\n", "import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n", "type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n", "import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n", "import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n", "import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n InternalNameSet,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n disabledFieldNames: InternalNameSet,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n", "import convertToArrayPayload from './convertToArrayPayload';\n\nexport default (data: T[], value: T | T[]): T[] => [\n ...data,\n ...convertToArrayPayload(value),\n];\n", "export default (value: T | T[]): undefined[] | undefined =>\n Array.isArray(value) ? value.map(() => undefined) : undefined;\n", "import convertToArrayPayload from './convertToArrayPayload';\n\nexport default function insert(data: T[], index: number): (T | undefined)[];\nexport default function insert(\n data: T[],\n index: number,\n value: T | T[],\n): T[];\nexport default function insert(\n data: T[],\n index: number,\n value?: T | T[],\n): (T | undefined)[] {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n", "import isUndefined from './isUndefined';\n\nexport default (\n data: (T | undefined)[],\n from: number,\n to: number,\n): (T | undefined)[] => {\n if (!Array.isArray(data)) {\n return [];\n }\n\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n\n return data;\n};\n", "import convertToArrayPayload from './convertToArrayPayload';\n\nexport default (data: T[], value: T | T[]): T[] => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n", "import compact from './compact';\nimport convertToArrayPayload from './convertToArrayPayload';\nimport isUndefined from './isUndefined';\n\nfunction removeAtIndexes(data: T[], indexes: number[]): T[] {\n let i = 0;\n const temp = [...data];\n\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n\n return compact(temp).length ? temp : [];\n}\n\nexport default (data: T[], index?: number | number[]): T[] =>\n isUndefined(index)\n ? []\n : removeAtIndexes(\n data,\n (convertToArrayPayload(index) as number[]).sort((a, b) => a - b),\n );\n", "export default (data: T[], indexA: number, indexB: number): void => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n", "import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n", "export default (fieldValues: T[], index: number, value: T) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n", "import React from 'react';\n\nimport generateId from './logic/generateId';\nimport getFocusFieldName from './logic/getFocusFieldName';\nimport getValidationModes from './logic/getValidationModes';\nimport isWatched from './logic/isWatched';\nimport iterateFieldsByAction from './logic/iterateFieldsByAction';\nimport updateFieldArrayRootError from './logic/updateFieldArrayRootError';\nimport validateField from './logic/validateField';\nimport appendAt from './utils/append';\nimport cloneObject from './utils/cloneObject';\nimport convertToArrayPayload from './utils/convertToArrayPayload';\nimport fillEmptyArray from './utils/fillEmptyArray';\nimport get from './utils/get';\nimport insertAt from './utils/insert';\nimport isEmptyObject from './utils/isEmptyObject';\nimport moveArrayAt from './utils/move';\nimport prependAt from './utils/prepend';\nimport removeArrayAt from './utils/remove';\nimport set from './utils/set';\nimport swapArrayAt from './utils/swap';\nimport unset from './utils/unset';\nimport updateAt from './utils/update';\nimport { VALIDATION_MODE } from './constants';\nimport {\n Control,\n Field,\n FieldArray,\n FieldArrayMethodProps,\n FieldArrayPath,\n FieldArrayWithId,\n FieldErrors,\n FieldPath,\n FieldValues,\n FormState,\n InternalFieldName,\n RegisterOptions,\n UseFieldArrayProps,\n UseFieldArrayReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n *
    console.log(data))}>\n * {fields.map((item, index) => (\n * \n * ))}\n * \n * \n *
    \n * );\n * }\n * ```\n */\nexport function useFieldArray<\n TFieldValues extends FieldValues = FieldValues,\n TFieldArrayName extends\n FieldArrayPath = FieldArrayPath,\n TKeyName extends string = 'id',\n>(\n props: UseFieldArrayProps,\n): UseFieldArrayReturn {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n keyName = 'id',\n shouldUnregister,\n rules,\n } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(\n control._getFieldArray(name).map(generateId),\n );\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n\n rules &&\n (control as Control).register(\n name as FieldPath,\n rules as RegisterOptions,\n );\n\n useSubscribe({\n next: ({\n values,\n name: fieldArrayName,\n }: {\n values?: FieldValues;\n name?: InternalFieldName;\n }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n\n const updateValues = React.useCallback(\n <\n T extends Partial<\n FieldArrayWithId\n >[],\n >(\n updatedFieldArrayValues: T,\n ) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n },\n [control, name],\n );\n\n const append = (\n value:\n | Partial>\n | Partial>[],\n options?: FieldArrayMethodProps,\n ) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(\n control._getFieldArray(name),\n appendValue,\n );\n control._names.focus = getFocusFieldName(\n name,\n updatedFieldArrayValues.length - 1,\n options,\n );\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n\n const prepend = (\n value:\n | Partial>\n | Partial>[],\n options?: FieldArrayMethodProps,\n ) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(\n control._getFieldArray(name),\n prependValue,\n );\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n\n const remove = (index?: number | number[]) => {\n const updatedFieldArrayValues: Partial<\n FieldArrayWithId\n >[] = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n\n const insert = (\n index: number,\n value:\n | Partial>\n | Partial>[],\n options?: FieldArrayMethodProps,\n ) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insertAt(\n control._getFieldArray(name),\n index,\n insertValue,\n );\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insertAt(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insertAt, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n\n const swap = (indexA: number, indexB: number) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(\n name,\n updatedFieldArrayValues,\n swapArrayAt,\n {\n argA: indexA,\n argB: indexB,\n },\n false,\n );\n };\n\n const move = (from: number, to: number) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(\n name,\n updatedFieldArrayValues,\n moveArrayAt,\n {\n argA: from,\n argB: to,\n },\n false,\n );\n };\n\n const update = (\n index: number,\n value: FieldArray,\n ) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(\n control._getFieldArray<\n FieldArrayWithId\n >(name),\n index,\n updateValue as FieldArrayWithId,\n );\n ids.current = [...updatedFieldArrayValues].map((item, i) =>\n !item || i === index ? generateId() : ids.current[i],\n );\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(\n name,\n updatedFieldArrayValues,\n updateAt,\n {\n argA: index,\n argB: updateValue,\n },\n true,\n false,\n );\n };\n\n const replace = (\n value:\n | Partial>\n | Partial>[],\n ) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(\n name,\n [...updatedFieldArrayValues],\n (data: T): T => data,\n {},\n true,\n false,\n );\n };\n\n React.useEffect(() => {\n control._state.action = false;\n\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n } as FormState);\n\n if (\n _actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)\n ) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n\n if (\n existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type\n ) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors as FieldErrors,\n });\n }\n });\n } else {\n const field: Field = get(control._fields, name);\n if (\n field &&\n field._f &&\n !(\n getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit\n )\n ) {\n validateField(\n field,\n control._names.disabled,\n control._formValues,\n control._options.criteriaMode === VALIDATION_MODE.all,\n control._options.shouldUseNativeValidation,\n true,\n ).then(\n (error) =>\n !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(\n control._formState.errors as FieldErrors,\n error,\n name,\n ) as FieldErrors,\n }),\n );\n }\n }\n }\n\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key: string) => {\n if (\n control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus\n ) {\n ref.focus();\n return 1;\n }\n return;\n });\n\n control._names.focus = '';\n\n control._updateValid();\n\n _actioned.current = false;\n }, [fields, name, control]);\n\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name as FieldPath);\n };\n }, [name, control, keyName, shouldUnregister]);\n\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(\n () =>\n fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })) as FieldArrayWithId[],\n [fields, keyName],\n ),\n };\n}\n", "import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default (): Subject => {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n", "import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n", "import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n", "import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n", "import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n", "import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n", "import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n", "import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: T, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: Record<\n Extract,\n ReturnType | boolean\n >,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n", "import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n", "import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n", "import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n", "import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n", "import { Field, Validate } from '../types';\nimport isFunction from '../utils/isFunction';\nimport isObject from '../utils/isObject';\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\n\nexport default (fieldReference: Field['_f']) =>\n !!fieldReference &&\n !!fieldReference.validate &&\n !!(\n (isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find(\n (validateFunction: Validate) =>\n validateFunction.constructor.name === ASYNC_FUNCTION,\n ))\n );\n", "import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n", "import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n", "import { ValidationModeFlags } from '../types';\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n", "import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n", "import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n PathValue,\n ReadFormState,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasPromiseValidation from './hasPromiseValidation';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState: ReadFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (!_options.disabled && (_proxyFormState.isValid || shouldUpdateValid)) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (names?: string[], isValidating?: boolean) => {\n if (\n !_options.disabled &&\n (_proxyFormState.isValidating || _proxyFormState.validatingFields)\n ) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n\n if (!_options.disabled) {\n const disabledField = !!(\n get(_fields, name) &&\n get(_fields, name)._f &&\n get(_fields, name)._f.disabled\n );\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine =\n disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n\n isPreviousDirty = !!(\n !disabledField && get(_formState.dirtyFields, name)\n );\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n _updateIsValidating(name);\n return result;\n };\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field as Field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction =\n field._f && hasPromiseValidation((field as Field)._f);\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name], true);\n }\n\n const fieldError = await validateField(\n field as Field,\n _names.disabled,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name]);\n }\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) =>\n !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n _options.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n\n const onChange: ChangeHandler = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name as string;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue: any): void => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid) {\n if (_options.mode === 'onBlur' && isBlurEvent) {\n _updateValid();\n } else if (!isBlurEvent) {\n _updateValid();\n }\n }\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n }\n } else {\n _updateIsValidating([name], true);\n error = (\n await validateField(\n field,\n _names.disabled,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(\n field._f.deps as\n | FieldPath\n | FieldPath[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.values.next({\n values: { ..._formValues },\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const _updateDisabledField: Control['_updateDisabledField'] = ({\n disabled,\n name,\n field,\n fields,\n }) => {\n if (\n (isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)\n ) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n\n updateTouchAndDirty(\n name,\n getFieldValue(field ? field._f : get(fields, name)._f),\n false,\n false,\n true,\n );\n }\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined =\n isBoolean(options.disabled) || isBoolean(_options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field) {\n _updateDisabledField({\n field,\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n const currentField: Field = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n },\n 0,\n false,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n\n let fieldValues = cloneObject(_formValues);\n\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n set(fieldValues, name, undefined);\n }\n }\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues as TFieldValues, e);\n } catch (error) {\n onValidError = error;\n }\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as PathValue<\n TFieldValues,\n FieldPath\n >,\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.values.next({\n values: { ...values },\n });\n }\n\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n\n _state.watch = !!_options.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? (formValues as Function)(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n (_options.defaultValues as Function)().then((values: TFieldValues) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n", "import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
    \n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
    \n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >(undefined);\n const _values = React.useRef(undefined);\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(\n () => control._disableForm(props.disabled),\n [control, props.disabled],\n );\n\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n", "import { useMutation } from '@tanstack/react-query';\nimport type { RequestStateQuery } from '../../@types/RequestStateQuery';\nimport { buildPostRequest } from '../../Http/requestTemplates';\nimport useHttp from '../../Http/useHttp';\nimport { settings } from '../../helpers';\n\ninterface CreditApplicationRedirectUrlResponse {\n redirectUrl: string;\n}\n\nexport interface CreditApplicationRedirectUrlPayload {\n id: string;\n ssn: string;\n estimatedMileage: string;\n email: string;\n telephone: string;\n downPayment: number;\n duration: number;\n}\n\nconst useCreditApplicationRedirectUrl = (): [\n (payload: CreditApplicationRedirectUrlPayload) => void,\n RequestStateQuery,\n string | undefined,\n] => {\n const { httpJson } = useHttp();\n\n const mutation = useMutation({\n mutationFn: (payload: CreditApplicationRedirectUrlPayload) => {\n return httpJson(\n `${settings.get('EcomUri')}/credit-application/vwfs`,\n {\n ...buildPostRequest(payload),\n },\n );\n },\n });\n\n const { mutate, isPending, isSuccess, isError, data } = mutation;\n\n return [\n (payload: CreditApplicationRedirectUrlPayload) => mutate(payload),\n { isLoading: isPending, isSuccess, isError },\n data?.redirectUrl,\n ];\n};\n\nexport default useCreditApplicationRedirectUrl;\n", "import React from 'react';\nimport type { UseFormRegisterReturn } from 'react-hook-form';\nimport InputCheckboxComponent, {\n type InputCheckboxProps as InputCheckboxComponentProps,\n} from '../../styled-components/components/InputCheckbox';\n\ntype InputCheckboxProps = Omit & {\n id?: string;\n register: UseFormRegisterReturn;\n};\nconst InputCheckbox = ({ id, ...props }: Omit) => {\n return ;\n};\n\nexport default InputCheckbox;\n", "import React from 'react';\nimport type { UseFormRegisterReturn } from 'react-hook-form';\nimport InputSelectComponent, {\n type Props,\n OptionProps,\n} from '../../styled-components/components/InputSelect';\n\nexport { OptionProps };\n\ntype InputSelectProps = Props & {\n register: UseFormRegisterReturn;\n};\nconst InputSelect = ({ id, ...props }: Omit) => {\n return ;\n};\n\nexport default InputSelect;\n", "import React from 'react';\nimport type { UseFormRegisterReturn } from 'react-hook-form';\nimport InputTextComponent, {\n type InputTextProps,\n} from '../../styled-components/components/InputText';\n\ntype InputProps = InputTextProps & {\n register?: UseFormRegisterReturn;\n};\nconst InputText = ({ id, ...props }: Omit) => {\n return (\n \n );\n};\n\nexport default InputText;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport { createSelector } from '@reduxjs/toolkit';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { save } from '../../../../actions/credit-application';\nimport type { RootState } from '../../../../reducers';\nimport type { Persisted } from '../../../../reducers/credit-application';\n\nconst persistedSelector = createSelector(\n (state: RootState) => state.creditApplication.persisted,\n (persisted) => persisted,\n);\n\ntype PersistedCallback = (\n ssn?: string | undefined,\n email?: string | undefined,\n estimatedMileage?: string | number | undefined,\n telephone?: string | undefined,\n) => void;\n\nconst usePersistCreditApplicationState = (): [Persisted, PersistedCallback] => {\n const persisted = useSelector(persistedSelector);\n const dispatch = useDispatch();\n const persistData = bindActionCreators(save, dispatch);\n\n return [persisted, persistData];\n};\n\nexport default usePersistCreditApplicationState;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { trackCreditApplicationEvent } from '../../../../actions/tracking';\nimport { creditApplicationEvents } from '../../../../shared/tracking';\nimport { getSearchDocument } from '../../../../utils/reselectors';\n\ninterface UseTrackCreditApplicationOptions {\n downPayment: number;\n residual?: number;\n duration: number;\n financialInstitution: string;\n}\n\nconst useTrackCreditApplication = (options: UseTrackCreditApplicationOptions) => {\n const dispatch = useDispatch();\n const track = bindActionCreators(trackCreditApplicationEvent, dispatch);\n\n const item = useSelector(getSearchDocument);\n\n const getTrackEventPayload = () => ({\n financialOptionsDetails: {\n deposit: options.downPayment,\n residualValuePercentage: options.residual,\n paybackTime: options.duration,\n financialInstitution: options.financialInstitution,\n },\n });\n\n const trackInit = () => track(creditApplicationEvents.INIT, item, getTrackEventPayload());\n\n const trackSubmitted = () =>\n track(creditApplicationEvents.SUBMITTED, item, getTrackEventPayload());\n\n return {\n trackInit,\n trackSubmitted,\n };\n};\n\nexport default useTrackCreditApplication;\n", "import i18next from 'i18next';\nimport type { MarketCode } from '../../../../@types/MarketCode';\nimport type { CreditApplicationRedirectUrlPayload } from '../../../../Data/Payments/useCreditApplicationRedirectUrl';\nimport type { Persisted } from '../../../../reducers/credit-application';\nimport { phonenumbers } from '../../../../utils';\n\nexport interface FormState {\n id: string;\n ssn: string;\n estimatedMileage: string;\n email: string;\n telephone: string;\n downPayment: number;\n duration: number;\n persisted?: boolean;\n}\n\nexport interface DefaultStateOptions {\n id: string;\n downPayment: number;\n duration: number;\n persisted: Persisted;\n}\n\nexport const defaultState = (options: DefaultStateOptions): FormState => ({\n id: options.id,\n ssn: options.persisted.ssn || '',\n estimatedMileage: options.persisted.estimatedMileage?.toString() || '',\n email: options.persisted.email || '',\n telephone: options.persisted.telephone || '',\n downPayment: options.downPayment,\n duration: options.duration,\n persisted: !!options.persisted.ssn,\n});\n\nconst Options = [\n {\n low: 0,\n high: 1500,\n },\n {\n low: 1500,\n high: 3000,\n },\n {\n low: 3000,\n high: 4500,\n },\n {\n low: 4500,\n high: 6000,\n },\n {\n low: 6000,\n high: 7500,\n },\n];\nconst ns = 'credit-application-vfs';\n\nexport const createOptions = (marketCode: MarketCode) => [\n {\n displayName: i18next.t('fields.estimatedMileage.options.default', { ns }),\n value: '',\n disabled: true,\n },\n ...Options.map((option) => ({\n displayName: i18next.t('fields.estimatedMileage.options.range', {\n ns,\n low: marketCode === 'SE' ? option.low : option.low / 10,\n high: marketCode === 'SE' ? option.high : option.high / 10,\n }),\n value: option.high,\n })),\n];\n\nconst transformEstimatedMileage = (estimated: string) => `UpTo${estimated}`;\n\nexport const validateTelephonenumber = (s: string, marketCode: MarketCode) => {\n const telephone = phonenumbers.parse(s, marketCode);\n return telephone?.isValid() || false;\n};\n\nexport const FormStateToPayload = (\n _data: FormState,\n marketCode: MarketCode,\n): CreditApplicationRedirectUrlPayload => {\n const cpy = { ..._data };\n delete cpy.persisted;\n\n const telephone = phonenumbers.parse(cpy.telephone, marketCode);\n const data: CreditApplicationRedirectUrlPayload = {\n ...cpy,\n estimatedMileage: transformEstimatedMileage(cpy.estimatedMileage),\n telephone: telephone?.getURI()?.replace(/\\s/g, '') || '',\n };\n\n return data;\n};\n\nexport const FormStateToPersisted = (_data: FormState, marketCode: MarketCode) => {\n if (!_data.persisted) return undefined;\n const telephone = phonenumbers.parse(_data.telephone, marketCode);\n const data: FormState = {\n ..._data,\n telephone: telephone?.formatNational()?.replace(/\\s/g, '') || '',\n };\n\n return data;\n};\n", "import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { SpinnerInline } from '../../../components/spinner';\nimport { numberSeparator } from '../../../helpers/formats';\nimport { getPercentageFromFraction } from '../../../utils/finance';\n\ninterface DetailsProps {\n id: string;\n downPayment?: number;\n duration?: number;\n residual?: number;\n interest: number;\n effectiveInterest: number;\n setupFee: number;\n registrationFee?: number | null;\n administrationFee: number;\n totalCreditCost: number;\n monthlyCost: number;\n financialInstitutionCtaUrl: string;\n financialInstitutionCtaName: string;\n financialInstitution: string;\n isPending: boolean;\n vehiclePrice: number;\n}\n\nconst Details = ({\n id,\n downPayment,\n duration,\n residual,\n interest,\n effectiveInterest,\n setupFee,\n registrationFee,\n administrationFee,\n totalCreditCost,\n monthlyCost,\n financialInstitutionCtaUrl,\n financialInstitutionCtaName,\n financialInstitution,\n isPending,\n vehiclePrice,\n}: DetailsProps) => {\n const { t } = useTranslation(['common', 'finance', 'currency']);\n\n const invalidCombination = monthlyCost === 0;\n\n const formattedInterest = getPercentageFromFraction(interest);\n const formattedEffectiveInterest = getPercentageFromFraction(effectiveInterest);\n const residualFormatted = getPercentageFromFraction(residual ?? 0);\n\n const getFormattedDownPaymentPercentage = () => {\n if (!downPayment) {\n return undefined;\n }\n\n const percentage = (downPayment / vehiclePrice) * 100;\n return Number.isInteger(percentage) ? percentage.toFixed(0) : percentage.toFixed(2);\n };\n\n const formattedDownPaymentPercentage = getFormattedDownPaymentPercentage();\n\n return (\n
    \n
    \n
    \n
    \n
    {t('monthlyCost', { ns: 'finance' })}
    \n
    \n {!isPending && (\n
    \n {t('monthlyCost', {\n ns: 'currency',\n price: monthlyCost > 0 ? numberSeparator(monthlyCost) : 0,\n })}\n
    \n )}\n {isPending && (\n
    \n \n
    \n )}\n
    \n
    \n
    \n\n
    \n {!!formattedDownPaymentPercentage && (\n
    \n
    {t('downPayment', { ns: 'finance' })}
    \n
    \n {t('currency', { ns: 'currency', price: numberSeparator(downPayment!) })} (\n {formattedDownPaymentPercentage}%)\n
    \n
    \n )}\n {residual !== undefined && residual > 0 && (\n
    \n
    {t('residual', { ns: 'finance' })}
    \n
    \n {t('currency', {\n ns: 'currency',\n price: numberSeparator(residual * vehiclePrice),\n })}{' '}\n ({residualFormatted}%)\n
    \n
    \n )}\n\n {!!duration && (\n
    \n
    {t('duration', { ns: 'finance' })}
    \n
    \n {duration} {t('monthsUnit', { ns: 'finance' })}\n
    \n
    \n )}\n\n
    \n
    {t('interest', { ns: 'finance' })}
    \n
    {formattedInterest}%
    \n
    \n
    \n
    {t('effectiveInterest', { ns: 'finance' })}
    \n
    {formattedEffectiveInterest}%
    \n
    \n
    \n
    {t('setupFee', { ns: 'finance' })}
    \n
    \n {t('currency', { ns: 'currency', price: numberSeparator(setupFee) })}\n
    \n
    \n {registrationFee !== undefined && registrationFee !== null && (\n
    \n
    {t('registrationFee', { ns: 'finance' })}
    \n
    \n {t('currency', { ns: 'currency', price: numberSeparator(registrationFee) })}\n
    \n
    \n )}\n
    \n
    {t('administrationFee', { ns: 'finance' })}
    \n\n
    \n {t('monthlyCost', { ns: 'currency', price: numberSeparator(administrationFee) })}\n
    \n
    \n
    \n
    {t('totalCreditCost', { ns: 'finance' })}
    \n
    \n {t('currency', { ns: 'currency', price: numberSeparator(totalCreditCost) })}\n
    \n
    \n\n {!!financialInstitutionCtaUrl && !!financialInstitutionCtaName && (\n
    \n \n {t('moreInformation', { ns: 'finance' })}\n \n \n
    \n )}\n
    \n
    \n
    \n );\n};\n\nexport default Details;\n", "import Slider from 'rc-slider';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Alert from '../../../styled-components/components/Alert';\n\ninterface InputSliderProps {\n title: string;\n min: number;\n max: number;\n step: number;\n defaultValue: number;\n current: number;\n unit: string;\n isPending: boolean;\n rangeLabel?: {\n min: string | number;\n max: string | number;\n unit: string;\n };\n onChange: (value: number) => void;\n}\n\nconst InputSlider = ({\n title,\n min,\n max,\n step,\n defaultValue,\n current,\n unit,\n isPending,\n rangeLabel,\n onChange,\n}: InputSliderProps) => {\n const { t } = useTranslation(['validation']);\n const [localValue, setLocalValue] = useState(() => current);\n const timeoutRef = useRef(undefined);\n const localValueRef = useRef(localValue);\n localValueRef.current = localValue;\n\n useEffect(() => {\n setLocalValue(current);\n }, [current]);\n\n const hasNoRange = min === 0 && max === 0;\n\n if (hasNoRange) {\n return
    ;\n }\n\n const isNotEditable = min === max;\n\n if (isNotEditable) {\n return (\n
    \n
    {title}
    \n
    \n {current}\n {unit}\n
    \n
    \n );\n }\n\n const onChangeSlider = (_value: number | number[]) => {\n const value = Array.isArray(_value) ? _value[0] : _value;\n setLocalValue(value);\n };\n\n const onChangeSliderComplete = () => {\n onChange(localValueRef.current);\n };\n\n const onInputChange = (e: React.ChangeEvent) => {\n const value = Number.parseInt(e.currentTarget.value, 10);\n setLocalValue(value);\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => {\n const isValid = localValueRef.current >= min && localValueRef.current <= max;\n if (isValid) {\n onChange(localValueRef.current);\n }\n }, 500);\n };\n\n const onBlur = () => {\n clearTimeout(timeoutRef.current);\n const isValid = localValueRef.current >= min && localValueRef.current <= max;\n if (isValid) {\n onChange(localValueRef.current);\n }\n };\n\n const isValidInput = !Number.isNaN(localValue) && localValue >= min && localValue <= max;\n\n return (\n
    \n
    {title}
    \n
    \n
    \n
    \n
    \n \n
    {unit}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {isValidInput && (\n \n )}\n
    \n {rangeLabel !== undefined && (\n
    \n
    \n {rangeLabel.min}\n {rangeLabel.unit}\n
    \n
    \n {rangeLabel.max}\n {rangeLabel.unit}\n
    \n
    \n )}\n
    \n
    \n
    \n\n {!isValidInput && (\n
    \n \n {t('errorValueBetweenTwoNumbers', { ns: 'validation', low: min, high: max })}\n \n
    \n )}\n
    \n
    \n );\n};\n\nexport default InputSlider;\n", "import Slider from 'rc-slider';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nconst getOptions = (min: number, max: number, stepSize: number) => {\n const difference = max - min;\n const numberOfSteps = difference / stepSize + 1;\n\n const options = [];\n\n for (let i = 0; i < numberOfSteps; i++) {\n options.push(min + stepSize * i);\n }\n\n return options;\n};\n\ninterface SelectSliderProsp {\n title: string;\n min: number;\n max: number;\n step: number;\n defaultValue: number;\n current: number;\n isPending: boolean;\n rangeLabel?: {\n min: string | number;\n max: string | number;\n unit: string;\n };\n onChange: (value: number) => void;\n}\n\nconst SelectSlider = ({\n title,\n min,\n max,\n step,\n defaultValue,\n current,\n isPending,\n rangeLabel,\n onChange,\n}: SelectSliderProsp) => {\n const { t } = useTranslation(['finance']);\n const [localValue, setLocalValue] = useState(current);\n const localRefValue = useRef(localValue);\n localRefValue.current = localValue;\n\n const hasNoRange = min === 0 && max === 0;\n\n if (hasNoRange) {\n return
    ;\n }\n\n const options = useMemo(() => getOptions(min, max, step), [min, max, step]);\n\n const onChangeInput = (e: React.ChangeEvent) => {\n const value = Number.parseInt(e.currentTarget.value, 10);\n setLocalValue(value);\n onChange(value);\n };\n\n const onChangeSlider = (_value: number | number[]) => {\n const value = Array.isArray(_value) ? _value[0] : _value;\n setLocalValue(value);\n };\n\n const handleAfterChange = () => {\n onChange(localRefValue.current);\n };\n\n return (\n
    \n
    {title}
    \n
    \n
    \n
    \n
    \n \n {options.map((option) => (\n \n ))}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n {rangeLabel !== undefined && (\n
    \n
    \n {rangeLabel.min}\n {rangeLabel.unit}\n
    \n
    \n {rangeLabel.max}\n {rangeLabel.unit}\n
    \n
    \n )}\n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default SelectSlider;\n", "import React, { useState, useCallback, useMemo, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box } from '../../../styled-components/components/Box';\nimport CalculationBox from '../../../styled-components/components/CalculationBox';\nimport { Column, Columns } from '../../../styled-components/components/Columns';\nimport Content from '../../../styled-components/components/Content';\nimport { H3 } from '../../../styled-components/components/Heading';\nimport { IconBulb, IconLightning } from '../../../styled-components/components/Icon';\nimport { IconBackdrop } from '../../../styled-components/components/IconBackdrop';\nimport InputLabel from '../../../styled-components/components/InputLabel';\nimport InputSelect from '../../../styled-components/components/InputSelect';\nimport { LinkButton } from '../../../styled-components/components/LinkButton';\nimport { Skeleton } from '../../../styled-components/components/Skeleton';\nimport { StackMedium, StackSmall, StackTiny } from '../../../styled-components/components/Stack';\nimport { Text } from '../../../styled-components/components/Text';\n\nimport { bindActionCreators } from '@reduxjs/toolkit';\nimport { useDispatch } from 'react-redux';\nimport type Item from '../../../@types/item';\nimport useEvCharchingCostPerKilometer from '../../../Data/EvCalculation/useEvCharchingCostPerKilometer';\nimport {\n trackChargingCostCustomizeClick as _trackChargingCostCustomizeClick,\n trackChargingCostParameterChange as _trackChargingCostParameterChange,\n} from '../../../actions/tracking';\nimport RangeSliderSimple from '../../../components/RangeSlider/RangeSliderSimple';\nimport { numberSeparator } from '../../../helpers/formats';\nimport { prettify } from '../../../helpers/prices';\nimport { getMarket } from '../../../i18n';\nimport Alert from '../../../styled-components/components/Alert';\nimport ChargingCostModal from './ChargingCostModal';\n\nconst calculateCostPerMonth = (costPerKilometer: number | undefined, distance: number) => {\n if (!costPerKilometer) return undefined;\n return (costPerKilometer * distance * 10) / 12;\n};\n\nconst DistanceOptions = [500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000];\n\ninterface ChargingCostProps {\n id: string;\n item: Item;\n}\n\nconst ChargingCost = ({ id, item }: ChargingCostProps) => {\n const { t } = useTranslation(['common', 'glossary', 'item']);\n const dispatch = useDispatch();\n const trackChargingCostParameterChange = bindActionCreators(\n _trackChargingCostParameterChange,\n dispatch,\n );\n const trackChargingCostCustomizeClick = bindActionCreators(\n _trackChargingCostCustomizeClick,\n dispatch,\n );\n\n const [distance, setDistance] = useState(1500);\n\n const [data, request] = useEvCharchingCostPerKilometer(id);\n const [modal, setModal] = useState(0);\n const onCloseModal = useCallback(() => setModal(0), []);\n const [initialRequestSuccessful, setInitialRequestSuccessful] = useState(\n !!data || undefined,\n );\n\n useEffect(() => {\n if (initialRequestSuccessful === undefined && !request.isLoading) {\n setInitialRequestSuccessful(request.isSuccess);\n }\n }, [request.isSuccess]);\n\n const costPerKilometer = data?.response.description.costPerKilometer.value;\n\n const costPerMonth = useMemo(\n () => calculateCostPerMonth(costPerKilometer, distance),\n [costPerKilometer, distance],\n );\n\n const costPerKwh = data?.response.description.costPerKwh;\n\n const onDistanceAfterChange = useCallback(\n (nextDistance: number) => {\n trackChargingCostParameterChange({\n item,\n information: {\n parameter: 'distance-slider',\n distance: `${nextDistance}`,\n context: 'inline',\n chargingCost: calculateCostPerMonth(costPerKilometer, nextDistance),\n },\n });\n },\n [costPerKilometer],\n );\n\n const onDistanceUpdate = useCallback((value: number) => setDistance(value), []);\n const onDistanceChangeSelect = useCallback(\n (e: React.ChangeEvent) => {\n const nextDistance = Number.parseInt(e.currentTarget.value, 10);\n trackChargingCostParameterChange({\n item,\n information: {\n parameter: 'distance-dropdown',\n distance: `${nextDistance}`,\n context: 'inline',\n chargingCost: calculateCostPerMonth(costPerKilometer, nextDistance),\n },\n });\n setDistance(nextDistance);\n },\n [costPerKilometer],\n );\n\n const onOpenModal = useCallback(\n (customPriceAsDefault = 1) => {\n trackChargingCostCustomizeClick({\n item,\n information: {\n label: customPriceAsDefault === 1 ? 'Visa detaljer' : '\u00D6ppna utr\u00E4knaren',\n distance: `${distance}`,\n context: 'inline',\n chargingCost: calculateCostPerMonth(costPerKilometer, distance),\n },\n });\n setModal(customPriceAsDefault);\n },\n [distance],\n );\n\n const marketCode = getMarket().marketCode;\n const mileageMultiplier = marketCode === 'NO' ? 10 : 1;\n\n if (!initialRequestSuccessful) return null;\n\n return (\n
    \n \n )\n }\n outputIcon={\n \n \n \n }\n disclaimer={t('chargingCost.disclaimer', {\n ns: 'item',\n standardCost: costPerKwh\n ? t('chargingCost.disclaimerCost', {\n ns: 'item',\n cost: numberSeparator(costPerKwh.value * 100),\n })\n : t('chargingCost.disclaimerStandardCostDefault', { ns: 'item' }),\n })}\n action={{\n text: t('chargingCost.showDetailsButton.text', { ns: 'item' }),\n title: t('chargingCost.showDetailsButton.title', { ns: 'item' }),\n onClick: onOpenModal,\n }}\n >\n \n

    \n {t('chargingCost.calculateChargingCost', { ns: 'item' })}\n

    \n \n

    {t('chargingCost.calculateChargingCostDescription', { ns: 'item' })}

    \n
    \n
    \n \n \n {t('chargingCost.yourAnnualMileage', { ns: 'item' })}\n \n \n ({\n value: d,\n displayName: prettify(\n d * mileageMultiplier,\n t('mileageUnit', { ns: 'glossary', count: 2 }),\n ),\n }))}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t('chargingCost.adjustAfterYourOwnElectricityPrice', { ns: 'item' })}\n \n \n \n onOpenModal(2)}\n title={t('chargingCost.openCalculator', { ns: 'item' })}\n >\n {t('chargingCost.openCalculator', { ns: 'item' })}\n \n \n \n \n \n \n {request.isError && (\n \n {t('chargingCost.couldNotFetchData', { ns: 'item' })}\n \n )}\n \n {!!modal && data && (\n \n )}\n
    \n );\n};\n\nexport default ChargingCost;\n", "import React from 'react';\n\nimport InputLabel from '../InputLabel';\nimport { LinkButton } from '../LinkButton';\nimport { WidgetBox } from '../WidgetBox';\nimport {\n Card,\n CardBody,\n CardFooter,\n Disclaimer,\n Main,\n Output,\n OutputIcon,\n OutputValue,\n Wrapper,\n} from './wrapper';\n\nexport interface CalculationBoxProps {\n children: React.ReactNode;\n label?: string;\n output: React.ReactNode;\n outputIcon?: React.ReactNode;\n outputFor?: string;\n disclaimer?: string;\n action?: {\n text: string;\n title: string;\n onClick: () => void;\n };\n}\n\nconst CalculationBox = ({\n children,\n label,\n output,\n outputIcon,\n outputFor,\n disclaimer,\n action,\n}: CalculationBoxProps) => (\n \n \n
    {children}
    \n \n \n {label && {label}}\n \n {outputIcon && {outputIcon}}\n {output}\n \n {disclaimer && {disclaimer}}\n \n {action && (\n \n \n {action.text}\n \n \n )}\n \n
    \n
    \n);\n\nexport default CalculationBox;\n", "import styled, { css } from 'styled-components';\n\nimport { size } from '../../layout/helpers';\n\ninterface WrapperProps {\n $tone?: 'positive' | 'accent';\n}\n\nexport const Wrapper = styled.div.withConfig({ componentId: 'sc-1soqver-0' })`\n ${(props) => props.theme.breakpoint.Lg} {\n display: flex;\n align-items: stretch;\n }\n`;\n\nexport const Main = styled.div.withConfig({ componentId: 'sc-1soqver-1' })`\n ${(props) => props.theme.breakpoint.Lg} {\n flex: 1 1 auto;\n }\n`;\n\nexport const Card = styled.div.withConfig({ componentId: 'sc-1soqver-2' })`\n display: flex;\n flex-direction: column;\n padding: ${size(2)};\n background-color: var(--c-bg-main);\n border: 1px solid var(--c-border-main);\n border-radius: ${size(2)};\n\n ${(props) => props.theme.breakpoint.LtLg} {\n margin-top: ${size(3)};\n }\n\n ${(props) => props.theme.breakpoint.Lg} {\n flex: 1 0 auto;\n width: 280px;\n max-width: 280px;\n padding: ${size(3)} ${size(2)};\n margin-left: ${size(3)};\n }\n`;\n\nexport const CardBody = styled.div.withConfig({ componentId: 'sc-1soqver-3' })``;\n\ninterface OutputProps {\n $hasDisclaimer?: boolean;\n}\n\nexport const Output = styled.div.withConfig({ componentId: 'sc-1soqver-4' })`\n font-size: ${(props) => props.theme.font.size.large};\n font-weight: var(--font-weight-bold);\n\n ${({ $hasDisclaimer }) =>\n $hasDisclaimer &&\n css`\n &::after {\n content: \"*\";\n }\n `}\n`;\n\nexport const OutputIcon = styled.span.attrs(() => ({\n 'aria-hidden': 'true',\n})).withConfig({ componentId: 'sc-1soqver-5' })`\n display: inline-block;\n vertical-align: middle;\n margin-right: 0.25em;\n`;\n\nexport const OutputValue = styled.output.withConfig({ componentId: 'sc-1soqver-6' })`\n vertical-align: middle;\n`;\n\nexport const Disclaimer = styled.div.withConfig({ componentId: 'sc-1soqver-7' })`\n margin-top: ${size(1)};\n font-size: ${(props) => props.theme.font.size.small};\n color: var(--c-text-muted);\n\n &::before {\n content: \"*\";\n }\n`;\n\nexport const CardFooter = styled.footer.withConfig({ componentId: 'sc-1soqver-8' })`\n margin-top: auto;\n padding-top: ${size(2)};\n`;\n", "import { useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useCallback } from 'react';\n\nimport type { EvCalculationChargingPerKilometer } from '../../@types/EvCalculation';\nimport type { RequestStateQuery } from '../../@types/RequestStateQuery';\nimport type { ApiResponse } from '../../Http';\nimport { buildGetRequest } from '../../Http/requestTemplates';\nimport useHttp from '../../Http/useHttp';\nimport { EV_CALCULATION_CHARGING_PER_KILOMETER } from './QueryKeys';\n\nconst useEvCharchingCostPerKilometer = (\n id: string,\n kwhCost?: number,\n disabled?: boolean,\n): [ApiResponse | undefined, RequestStateQuery] => {\n const { httpJson } = useHttp();\n const queryClient = useQueryClient();\n\n const get = useCallback(async () => {\n const response = await httpJson>(\n `/api/ev-calculation/vehicle/charging/${id}/costPerKilometer${kwhCost ? `?kwhCost=${kwhCost}` : ''}`,\n buildGetRequest(),\n );\n\n // Handle the onSuccess logic here\n const exist = queryClient.getQueryData>([\n EV_CALCULATION_CHARGING_PER_KILOMETER,\n id,\n kwhCost ? kwhCost : response.response.description.costPerKwh.value,\n ]);\n\n if (!exist) {\n queryClient.setQueryData>(\n [\n EV_CALCULATION_CHARGING_PER_KILOMETER,\n id,\n kwhCost ? kwhCost : response.response.description.costPerKwh.value,\n ],\n { ...response },\n );\n }\n\n return response;\n }, [kwhCost, httpJson, id, queryClient]);\n\n const { data, isPending, isSuccess, isError } = useQuery<\n ApiResponse\n >({\n queryKey: [EV_CALCULATION_CHARGING_PER_KILOMETER, id, kwhCost],\n queryFn: get,\n retry: false,\n refetchOnWindowFocus: false,\n gcTime: Number.POSITIVE_INFINITY,\n staleTime: Number.POSITIVE_INFINITY,\n enabled: !disabled,\n });\n\n return [data, { isLoading: isPending, isSuccess, isError }];\n};\n\nexport default useEvCharchingCostPerKilometer;\n", "export const EV_CALCULATION_CHARGING_PER_KILOMETER = 'ev-calculation/api/vehicle/charging';\n", "import React from 'react';\n\nimport Slider from 'rc-slider';\n\ninterface RangeSliderSimpleProps {\n value: number;\n min: number;\n max: number;\n step?: number;\n onChange?: (value: number) => void;\n onAfterChange?: (value: number) => void;\n}\n\nconst RangeSliderSimple = ({\n value,\n min,\n max,\n step,\n onChange,\n onAfterChange,\n}: RangeSliderSimpleProps) => {\n return (\n
    \n
    \n onChange(v as number) : undefined}\n onAfterChange={onAfterChange ? (v) => onAfterChange(v as number) : undefined}\n />\n
    \n
    \n );\n};\n\nexport default RangeSliderSimple;\n", "import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Content from '../../../styled-components/components/Content';\nimport DetailBox from '../../../styled-components/components/DetailBox';\nimport { H4 } from '../../../styled-components/components/Heading';\nimport InputGroup from '../../../styled-components/components/InputGroup';\nimport InputHelp from '../../../styled-components/components/InputHelp';\nimport InputLabel from '../../../styled-components/components/InputLabel';\nimport InputRadio from '../../../styled-components/components/InputRadio';\nimport InputSelect from '../../../styled-components/components/InputSelect';\nimport InputText from '../../../styled-components/components/InputText';\nimport {\n KeyValueList,\n KeyValueListItem,\n KeyValueListKey,\n KeyValueListValue,\n} from '../../../styled-components/components/KeyValueList';\nimport Modal from '../../../styled-components/components/Modal';\nimport { ModalAccentSection } from '../../../styled-components/components/Modal/wrapper';\nimport { Skeleton } from '../../../styled-components/components/Skeleton';\nimport { Stack, StackLarge, StackSmall } from '../../../styled-components/components/Stack';\nimport { Text } from '../../../styled-components/components/Text';\n\nimport { bindActionCreators } from '@reduxjs/toolkit';\nimport { useDispatch } from 'react-redux';\nimport type { EvCalculationChargingPerKilometer } from '../../../@types/EvCalculation';\nimport type Item from '../../../@types/item';\nimport useEvCharchingCostPerKilometer from '../../../Data/EvCalculation/useEvCharchingCostPerKilometer';\nimport type { ApiResponse } from '../../../Http';\nimport {\n trackChargingCostDetailsClick as _trackChargingCostDetailsClick,\n trackChargingCostParameterChange as _trackChargingCostParameterChange,\n} from '../../../actions/tracking';\nimport RangeSliderSimple from '../../../components/RangeSlider/RangeSliderSimple';\nimport { numberSeparator } from '../../../helpers/formats';\nimport { prettify } from '../../../helpers/prices';\nimport useDebounce from '../../../hooks/useDebounce';\nimport { getMarket } from '../../../i18n';\nimport Alert from '../../../styled-components/components/Alert';\n\nconst calculateCostPerMonth = (costPerKilometer: number | undefined, distance: number) => {\n if (!costPerKilometer) return undefined;\n return (costPerKilometer * distance * 10) / 12;\n};\n\ninterface ChargingCostModalProps {\n id: string;\n defaultData: ApiResponse;\n distance: number;\n costPerMonth?: number;\n distanceOptions: number[];\n item: Item;\n customPriceAsDefault?: boolean;\n onDistanceUpdate: (distance: number) => void;\n onDistanceChangeSelect: (e: React.ChangeEvent) => void;\n onClose: () => void;\n}\n\nconst ChargingCostModal = ({\n id,\n costPerMonth,\n defaultData,\n distance,\n distanceOptions,\n item,\n customPriceAsDefault,\n onDistanceUpdate,\n onDistanceChangeSelect,\n onClose,\n}: ChargingCostModalProps) => {\n const { t } = useTranslation(['common', 'glossary', 'item']);\n const [mounted, setHasMounted] = useState(false);\n const dispatch = useDispatch();\n const trackChargingCostParameterChange = bindActionCreators(\n _trackChargingCostParameterChange,\n dispatch,\n );\n const trackChargingCostDetailsClick = bindActionCreators(\n _trackChargingCostDetailsClick,\n dispatch,\n );\n const [kwh, kwhSearchInOre, setKwh] = useDebounce(\n 250,\n defaultData.response.description.costPerKwh.value * 100,\n );\n const [custom, setCustom] = useState(customPriceAsDefault || false);\n\n useEffect(() => {\n setHasMounted(true);\n }, []);\n\n const [customData, request] = useEvCharchingCostPerKilometer(\n id,\n kwhSearchInOre / 100,\n !custom || Number.isNaN(kwhSearchInOre),\n );\n\n const result = useMemo(\n () => (custom ? customData : defaultData)?.response,\n [defaultData, customData, custom, distance],\n );\n\n const costPerKilometer = result?.description.costPerKilometer.value;\n const costPerMonthCustom = useMemo(\n () => calculateCostPerMonth(costPerKilometer, distance),\n [costPerKilometer, distance],\n );\n\n const debounceLoading = kwh === kwhSearchInOre;\n\n const onDistanceAfterChange = useCallback(\n (nextDistance: number) => {\n trackChargingCostParameterChange({\n item,\n information: {\n parameter: 'distance-slider',\n distance: `${nextDistance}`,\n context: 'modal',\n chargingCost: calculateCostPerMonth(costPerKilometer, nextDistance),\n },\n });\n },\n [costPerKilometer],\n );\n\n useEffect(() => {\n if (mounted && custom && customData?.response) {\n const costPerKilometerCustom = customData.response?.description.costPerKilometer.value;\n trackChargingCostParameterChange({\n item,\n information: {\n parameter: 'distance-slider',\n distance: `${distance}`,\n context: 'modal',\n chargingCost: calculateCostPerMonth(costPerKilometerCustom, distance),\n electricityCost: kwhSearchInOre,\n },\n });\n }\n }, [customData]);\n\n const onChange = useCallback(\n (e: React.ChangeEvent) => setKwh(Number.parseInt(e.currentTarget.value, 10)),\n [],\n );\n\n const onRadioChange = useCallback(\n (e: React.ChangeEvent) => setCustom(e.currentTarget.value === '1'),\n [],\n );\n\n const onMoreInformation = useCallback((open: boolean) => {\n if (open) {\n trackChargingCostDetailsClick({\n information: {\n distance: `${distance}`,\n context: 'modal',\n chargingCost: calculateCostPerMonth(costPerKilometer, distance),\n },\n });\n }\n }, []);\n\n const marketCode = getMarket().marketCode;\n const mileageMultiplier = marketCode === 'NO' ? 10 : 1;\n\n return (\n \n \n \n

    {t('chargingCost.calculateChargingCostModalDescription', { ns: 'item' })}

    \n
    \n
    \n \n \n \n {t('chargingCost.yourAnnualMileage', { ns: 'item' })}\n \n \n ({\n value: d,\n displayName: prettify(\n d * mileageMultiplier,\n t('mileageUnit', { ns: 'glossary', count: 2 }),\n ),\n }))}\n />\n \n \n \n \n \n \n \n \n {t('chargingCost.standardPrice', { ns: 'item' })}\n \n \n {t('chargingCost.customPrice', { ns: 'item' })}\n \n \n \n {custom && (\n \n \n {t('chargingCost.yourPrice.label', { ns: 'item' })}\n \n \n {t('chargingCost.yourPrice.help', { ns: 'item' })}\n \n )}\n {request.isError && debounceLoading && (\n \n {t('chargingCost.couldNotFetchData', { ns: 'item' })}\n \n )}\n \n \n \n \n \n {t('chargingCost.vehicleBatteryCapacity', { ns: 'item' })}\n \n \n {defaultData.response.vehicle.batteryCapacity.value}{' '}\n {defaultData.response.vehicle.batteryCapacity.unit}\n \n \n \n {t('chargingCost.vehicleRange', { ns: 'item' })}\n \n {defaultData.response.vehicle.electricalRangeWLTP.value}{' '}\n {defaultData.response.vehicle.electricalRangeWLTP.unit}\n \n \n \n \n {t('chargingCost.indicatedAnnualMileage', { ns: 'item' })}\n \n \n {numberSeparator(distance)}{' '}\n {t('mileageUnit', { ns: 'glossary', count: distance })}\n \n \n {!custom && (\n <>\n \n \n {t('chargingCost.standardPriceIncludingTax', { ns: 'item' })}\n \n \n {result && debounceLoading\n ? prettify(\n result.description.costPerKwh.value * 100,\n t('chargingCost.electricPriceUnit', { ns: 'item' }),\n )\n : t('Loading...', { ns: 'common' })}\n \n \n \n \n {t('chargingCost.electricityCharge', { ns: 'item' })}\n \n \n {t('chargingCost.notIncludedInCalculation', { ns: 'item' })}\n \n \n \n )}\n \n }\n >\n \n

    \n {custom ? (\n kwh !== kwhSearchInOre ? (\n \n ) : costPerMonthCustom ? (\n t('Price per month', { ns: 'common', count: costPerMonthCustom })\n ) : (\n \n )\n ) : costPerMonth ? (\n t('Price per month', { ns: 'common', count: costPerMonth })\n ) : (\n \n )}\n *\n

    \n
    \n \n {custom ? (\n \n *{t('chargingCost.customPriceDisclaimer', { ns: 'item' })}\n \n ) : (\n \n *{t('chargingCost.standardPriceDisclaimer', { ns: 'item' })}\n \n )}\n \n \n
    \n
    \n );\n};\n\nexport default ChargingCostModal;\n", "import React, { useState, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { IconChevronDown, IconChevronUp } from '../Icon';\nimport { LinkButton } from '../LinkButton';\nimport { Action, Body, Details, Wrapper } from './wrapper';\n\ninterface DetailBoxProps {\n children: React.ReactNode;\n details: React.ReactNode;\n buttonTextDefault?: string;\n buttonTextExtended?: string;\n openDefault?: boolean;\n onClick?: (open: boolean) => void;\n}\n\nconst DetailBox = ({\n children,\n details,\n buttonTextDefault,\n buttonTextExtended,\n openDefault,\n onClick,\n}: DetailBoxProps) => {\n const { t } = useTranslation(['common']);\n const [extend, setExtend] = useState(openDefault ? openDefault : false);\n const onToggleExtend = useCallback(() => {\n if (onClick) {\n onClick(!extend);\n }\n setExtend(!extend);\n }, [extend]);\n\n return (\n \n {children}\n {extend &&
    {details}
    }\n \n \n {extend ? buttonTextExtended : buttonTextDefault}\n {extend ? : }\n \n \n
    \n );\n};\n\nexport default DetailBox;\n", "import styled from 'styled-components';\n\nimport { size } from '../../layout/helpers';\n\nexport const Wrapper = styled.div.withConfig({ componentId: 'sc-1qt6bb4-0' })`\n background-color: var(--c-bg-main);\n box-shadow: ${(props) => props.theme.boxShadow.strong};\n`;\n\nexport const Body = styled.div.withConfig({ componentId: 'sc-1qt6bb4-1' })`\n padding: ${size(2)};\n`;\n\nexport const Details = styled.div.withConfig({ componentId: 'sc-1qt6bb4-2' })`\n padding: ${size(2)};\n border-top: 1px solid var(--c-border-main);\n`;\n\nexport const Action = styled.div.withConfig({ componentId: 'sc-1qt6bb4-3' })`\n position: relative;\n display: flex;\n justify-content: center;\n padding: ${size(2)};\n border-top: 1px solid var(--c-border-main);\n`;\n", "import { useCallback, useEffect, useRef, useState } from 'react';\n\n/**\n *\n * @param timout in ms\n * @param initial\n * @returns [0] current value, [1] debounced value /settled value after timout, [2] set method\n */\nconst useDebounce = (_timout: number, initial: T): [T, T, (value: T) => void] => {\n const timeout = useRef(undefined);\n\n const [currentValue, setCurrentValue] = useState(initial);\n const [debouncedValue, setDebouncedValue] = useState(initial);\n\n const _setCurrentValue = useCallback((value: T) => setCurrentValue(value), []);\n\n useEffect(() => {\n if (timeout.current) {\n clearTimeout(timeout.current as unknown as number);\n }\n\n timeout.current = setTimeout(() => {\n setDebouncedValue(currentValue);\n }, 500);\n }, [currentValue]);\n\n return [currentValue, debouncedValue, _setCurrentValue];\n};\n\nexport default useDebounce;\n", "import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport type { FileDocument } from '../../@types/item';\nimport ExtendableGroup from '../../components/extendable-group/extendable-group';\nimport { getItem } from '../../selectors/item';\nimport {\n DocumentList,\n DocumentListFormat,\n DocumentListItem,\n DocumentListTitle,\n} from '../../styled-components/components/DocumentList';\nimport { H3, H5 } from '../../styled-components/components/Heading';\nimport { IconDownload } from '../../styled-components/components/Icon';\nimport { Stack, StackMedium } from '../../styled-components/components/Stack';\n\nconst getExtension = (document: FileDocument) => {\n switch (document.contentType) {\n case 'application/pdf':\n return 'PDF';\n default: {\n const formattedContentType =\n document.url && document.url.includes('.') ? document.url.split('.').pop() : '';\n return formattedContentType;\n }\n }\n};\n\ninterface SingleDocumentProps {\n document: FileDocument;\n}\n\nconst SingleDocument = ({ document }: SingleDocumentProps) => {\n if (!document.name || !document.url) {\n return null;\n }\n\n const extension = getExtension(document);\n\n return (\n \n \n {document.name}\n \n \n {extension}\n \n \n \n );\n};\n\ninterface DocumentCategory {\n category: string;\n sortOrder: number;\n documents: FileDocument[];\n}\n\nconst Documents = () => {\n const { t } = useTranslation(['item']);\n\n const Translation = {\n 'tyre-label': t('documentTypes.tyreEnergyDeclaration', { ns: 'item' }),\n 'content declaration': t('documentTypes.goodsDeclaration', { ns: 'item' }),\n other: t('documentTypes.other', { ns: 'item' }),\n };\n\n const SortOrder = {\n 'tyre-label': 2,\n 'content declaration': 1,\n other: 3,\n };\n\n type CategoryType = keyof typeof Translation;\n\n const documents = useSelector(getItem)?.documents || [];\n const categorised = documents\n .reduce((prev, curr) => {\n const index = prev.findIndex((x) => x.category === (curr.category || 'others'));\n if (index > -1) {\n prev[index].documents.push(curr);\n } else {\n const category = curr.category || 'others';\n prev.push({\n category,\n documents: [curr],\n sortOrder: SortOrder?.[category as CategoryType] ?? 99,\n });\n }\n\n return prev;\n }, [] as DocumentCategory[])\n .sort((a, b) => a.sortOrder - b.sortOrder);\n\n if (!documents.length) return null;\n\n const manyCategories = categorised.length > 1;\n\n return (\n
    \n \n

    \n {t('Documents', { ns: 'item' })}\n

    \n
    \n \n \n {categorised.map((group) => (\n \n {manyCategories && (\n
    \n {Translation?.[group.category as CategoryType] || Translation.other}\n
    \n )}\n \n {group.documents.map((document, index) => (\n \n ))}\n \n
    \n ))}\n
    \n
    \n
    \n );\n};\n\nexport default Documents;\n", "import styled from 'styled-components';\n\nimport { size } from '../../layout/helpers';\n\nexport const DataBox = styled.div.withConfig({ componentId: 'sc-1qeplx3-0' })`\n padding: ${size(1)} ${size(2)};\n background-color: var(--c-bg-alt);\n color: var(--_color);\n border-radius: ${(props) => props.theme.size.borderRadius};\n font-size: var(--font-size-small-static);\n`;\n", "import styled from 'styled-components';\n\nimport { size } from '../../layout/helpers';\nimport { DataBox } from '../DataBox';\nimport { Icon } from '../Icon';\nimport { Link } from '../Link';\n\nexport const DocumentList = styled.ul.withConfig({ componentId: 'sc-1dofano-0' })`\n --_color: var(--c-text-main);\n --_gap: ${size(1)};\n --_column-count: 2;\n --_min-width: 300px;\n --_gap-count: calc(var(--_column-count) - 1);\n --_total-gap-width: calc(var(--_gap-count) * var(--_gap));\n --_max-width: calc((100% - var(--_total-gap-width)) / var(--_column-count));\n\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(max(min(var(--_min-width), 100%), var(--_max-width)), 1fr));\n gap: var(--_gap);\n list-style: none;\n padding: 0;\n margin: 0;\n`;\n\nexport const DocumentListItem = styled(DataBox).attrs(() => ({\n as: 'li',\n})).withConfig({ componentId: 'sc-1dofano-1' })`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${size(2)};\n`;\n\nexport const DocumentListTitle = styled(Link).attrs(() => ({\n $noExternalIcon: true,\n $hoverGhost: true,\n $currentColor: true,\n})).withConfig({ componentId: 'sc-1dofano-2' })`\n font-weight: inherit;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const DocumentListFormat = styled.div.withConfig({ componentId: 'sc-1dofano-3' })`\n display: flex;\n align-items: center;\n gap: ${size(1)};\n color: var(--c-text-muted);\n text-transform: uppercase;\n\n ${Icon} {\n font-size: ${size(2.5)};\n color: var(--_color);\n }\n`;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport styled from 'styled-components';\nimport { trackEquipmentFilterSearch, trackSoftConversionEvent } from '../../actions/tracking';\nimport ExtendableGroupAuto from '../../components/extendable-group/extendable-group-auto';\nimport { getItem, getItemOptions } from '../../selectors/item';\nimport { softConversionEvents } from '../../shared/tracking';\nimport Alert from '../../styled-components/components/Alert';\nimport Content from '../../styled-components/components/Content';\nimport { DataBox } from '../../styled-components/components/DataBox';\nimport { H3 } from '../../styled-components/components/Heading';\nimport InputSearch from '../../styled-components/components/InputSearch';\nimport { StackMedium } from '../../styled-components/components/Stack';\nimport { size } from '../../styled-components/layout/helpers';\n\nconst InputSearchWrapper = styled.div.withConfig({ componentId: 'sc-d1hx05-0' })`\n margin-bottom: ${size(2)};\n`;\n\nconst DataBoxList = styled.div.withConfig({ componentId: 'sc-d1hx05-1' })`\n --_gap: ${size(1)};\n --_column-count: 2;\n --_min-width: ${size(35)};\n\n // Calculcated values\n --_gap-count: calc(var(--_column-count) - 1);\n --_total-gap-width: calc(var(--_gap-count) * var(--_gap));\n --_max-width: calc((100% - var(--_total-gap-width)) / var(--_column-count));\n\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(max(min(var(--_min-width), 100%), var(--_max-width)), 1fr));\n gap: ${size(1)};\n`;\n\nconst Equipment = () => {\n const { t } = useTranslation(['item']);\n const ref = useRef(-1);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const options = useSelector(getItemOptions);\n const actions = bindActionCreators(\n {\n trackSoftConversionEvent,\n trackEquipmentFilterSearch,\n },\n dispatch,\n );\n\n if (!options || !options.length || !item) return null;\n\n const contentRef = useRef(null);\n const [search, setSearch] = useState('');\n\n const onToggle = () =>\n actions.trackSoftConversionEvent(\n item,\n softConversionEvents.SOFT_CONVERSION_SHOW_VEHICLE_OPTIONS,\n );\n\n const filteredOptions = options.filter((option) =>\n option.toLowerCase().includes(search.toLowerCase()),\n );\n\n const onSearch = (event: React.ChangeEvent) => setSearch(event.target.value);\n\n // Track filter search\n useEffect(() => {\n clearTimeout(ref.current);\n ref.current = window.setTimeout(() => {\n if (search) {\n actions.trackEquipmentFilterSearch(item, {\n search,\n });\n }\n }, 1000);\n }, [search]);\n\n return (\n
    \n \n

    \n {t('Equipment', { ns: 'item' })}\n

    \n \n

    {t('Information about the car that the dealer supplemented with.', { ns: 'item' })}

    \n
    \n
    \n \n \n \n \n {!!filteredOptions.length ? (\n \n \n {filteredOptions.map((option, index) => (\n {option}\n ))}\n \n \n ) : (\n {t('equipmentSearch.noResults', { ns: 'item' })}\n )}\n \n
    \n );\n};\n\nexport default Equipment;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { lazy } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { showMessageModal } from '../../actions/event';\nimport { trackConversionEvent } from '../../actions/tracking';\nimport { getItem, getItemAuctionUrl, getItemCommerce } from '../../selectors/item';\nimport { getItemRetailerContactOptions } from '../../selectors/item-retailer';\nimport { conversionEvents } from '../../shared/tracking';\nimport EmailButton from './email-button';\nimport FloatingAction from './floating-action';\nimport MessageButton from './message-button';\nimport PhonenumberButton from './phonenumber-button';\nconst EcomButton = lazy(() => import('../../components/ecom-button-v2/EcomButtonV2'));\nimport { RenderClientSide } from '../../components/render';\nimport { getRetailerId } from '../../selectors/retailer';\n\ninterface IFloatingHeader {\n visible: boolean;\n}\n\nconst FloatingHeader = ({ visible }: IFloatingHeader) => {\n const { t } = useTranslation(['common', 'item']);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const commerce = useSelector(getItemCommerce);\n const contactOptions = useSelector(getItemRetailerContactOptions);\n const auctionUrl = useSelector(getItemAuctionUrl);\n const retailerId = useSelector(getRetailerId);\n const actions = bindActionCreators(\n {\n showMessageModal,\n trackConversionEvent,\n },\n dispatch,\n );\n\n const shouldShowEcomButton = commerce?.enabled && !commerce.disabledOnWayke;\n const objectIsReserved = shouldShowEcomButton && commerce.reserved;\n\n const onAuctionClick = () =>\n actions.trackConversionEvent(item, conversionEvents.CONVERSION_ACTION_AUCTION_CLICK);\n\n if (!item) {\n return null;\n }\n\n if (\n !auctionUrl &&\n !shouldShowEcomButton &&\n !retailerId &&\n !contactOptions?.telephone?.e164 &&\n !contactOptions?.email\n )\n return null;\n\n return (\n <>\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    {item.title}
    \n
    {item.shortDescription}
    \n
    \n
    \n
    \n
      \n {auctionUrl && (\n
    • \n \n
      \n \n
      \n
      {t('To auction', { ns: 'item' })}
      \n \n
    • \n )}\n\n {!auctionUrl && (\n <>\n {shouldShowEcomButton && (\n
    • \n \n
      \n \n
      \n
      {t('Buy online', { ns: 'item' })}
      \n \n }\n >\n \n \n
    • \n )}\n {retailerId && (\n
    • \n \n
    • \n )}\n {contactOptions?.telephone?.e164 && (\n
    • \n \n
    • \n )}\n {contactOptions?.email && (\n
    • \n \n
    • \n )}\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default FloatingHeader;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useState, lazy } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { showEcomModal, showMessageModal } from '../../actions/event';\nimport {\n mapVehicleData,\n track,\n trackConversionEvent,\n trackEcomEvent,\n} from '../../actions/tracking';\nimport { parsers } from '../../helpers';\nimport { getItem, getItemAuctionUrl, getItemCommerce } from '../../selectors/item';\nimport {\n getItemRetailerContactOptions,\n getItemRetailerPhoneParams,\n} from '../../selectors/item-retailer';\nimport { getRetailerId, isRetailerUsingFreespee } from '../../selectors/retailer';\nimport { EcomEvents, conversionEvents, eventTypes } from '../../shared/tracking';\nimport { phonenumbers } from '../../utils';\nconst EcomButton = lazy(() => import('../../components/ecom-button-v2/EcomButtonV2'));\nimport { RenderClientSide } from '../../components/render';\n\nconst FloatingAction = () => {\n const { t } = useTranslation(['global', 'item']);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const commerce = useSelector(getItemCommerce);\n const contactOptions = useSelector(getItemRetailerContactOptions);\n const auctionUrl = useSelector(getItemAuctionUrl);\n const retailerId = useSelector(getRetailerId);\n const phoneParams = useSelector(getItemRetailerPhoneParams);\n const usingPhoneNumberGeneration = useSelector(isRetailerUsingFreespee);\n const actions = bindActionCreators(\n {\n showMessageModal,\n trackConversionEvent,\n showEcomModal,\n trackEcomEvent,\n track,\n },\n dispatch,\n );\n\n const [email, setEmail] = useState();\n const [phoneNumber, setPhoneNumber] = useState();\n\n const handleEcomButtonClick = () => {\n actions.trackEcomEvent(EcomEvents.ECOM_BUTTON_CLICK, null, item);\n actions.showEcomModal();\n };\n\n const shouldShowEcomButton = commerce?.enabled && !commerce.disabledOnWayke;\n const objectIsReserved = shouldShowEcomButton && commerce.reserved;\n\n const handleEmailClick = (e: React.MouseEvent) => {\n const elem = e.currentTarget;\n if (elem.getAttribute('href') === '#') {\n const subject = encodeURIComponent(\n t('sendEmailSubject', {\n ns: 'item',\n brandName: t('brandName', { ns: 'global' }),\n item: `${item?.registrationNumber}, ${item?.manufacturer} ${item?.modelSeries}`,\n }),\n );\n elem.href = `mailto:${contactOptions?.email}?subject=${subject}`;\n elem.click();\n e.preventDefault();\n setEmail(`mailto:${contactOptions?.email}?subject=${subject}`);\n } else {\n actions.track(eventTypes.CONVERSION, {\n item: mapVehicleData(item, true),\n conversionType: conversionEvents.CONVERSION_MAIL_SENT,\n });\n }\n };\n\n const handlePhoneClick = (e: React.MouseEvent) => {\n const elem = e.currentTarget;\n if (elem.getAttribute('href') === '#') {\n e.preventDefault();\n if (usingPhoneNumberGeneration) {\n phonenumbers.convert(\n contactOptions?.telephone?.international || '',\n phoneParams!,\n (generated) => {\n const parsed = parsers.parsePhoneNumber(generated);\n elem.href = parsed.e164 || '';\n elem.click();\n setPhoneNumber(parsed.e164);\n },\n );\n } else {\n elem.href = contactOptions?.telephone?.e164 || '';\n elem.click();\n setPhoneNumber(contactOptions?.telephone?.e164);\n }\n } else {\n actions.track(eventTypes.CONVERSION, {\n item: mapVehicleData(item, true),\n conversionType: conversionEvents.CONVERSION_PHONENUMBER_CALL,\n });\n }\n };\n\n return (\n
    \n {auctionUrl ? (\n \n
    \n \n
    \n
    {t('To auction', { ns: 'item' })}
    \n \n ) : (\n <>\n {shouldShowEcomButton && item?.id && (\n \n
    \n \n
    \n
    {t('Buy online', { ns: 'item' })}
    \n \n }\n >\n \n \n )}\n {retailerId && (\n \n
    \n \n
    \n
    {t('sendMessageShort', { ns: 'item' })}
    \n \n )}\n {contactOptions?.telephone?.e164 && (\n \n
    \n \n
    \n
    {t('callShort', { ns: 'item' })}
    \n \n )}\n {contactOptions?.email && (\n \n
    \n \n
    \n
    {t('emailShort', { ns: 'item' })}
    \n \n )}\n \n )}\n
    \n );\n};\n\nexport default FloatingAction;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Sliderr from 'react-slick';\n\nconst Slider: typeof Sliderr = (Sliderr as unknown as { default: typeof Sliderr }).default;\n\nimport { trackSoftConversionEvent } from '../../actions/tracking';\nimport ControlBar from '../../components/gallery/control-bar';\nimport DefaultGalleryFactory from '../../components/gallery/gallery-factory';\nimport ModalVideoPlayer from '../../components/gallery/modal-video-player';\nimport { cdn } from '../../helpers/urls';\nimport { getItem } from '../../selectors/item';\nimport { getControlMenu, getFirstMedia, getMedia } from '../../selectors/media';\nimport { softConversionEvents } from '../../shared/tracking';\nimport ShareButton from '../../styled-components/structures/ShareButton';\nimport LightboxShell from './lightbox-shell';\nimport Save from './save';\nimport SaveModal from './save-modal';\n\nconst Placeholder = () => {\n const { t } = useTranslation('item');\n\n return (\n
    \n
    \n \n
    \n
    \n );\n};\n\ninterface GalleryArrowType {\n onClick?: () => void;\n currentSlide?: number;\n slideCount?: number;\n}\n\nconst PrevArrow = (props: GalleryArrowType | undefined) => {\n const { t } = useTranslation('item');\n\n if (!props) return null;\n const arrowProps = { ...props };\n delete arrowProps.currentSlide;\n delete arrowProps.slideCount;\n return (\n \n \n \n );\n};\nconst NextArrow = (props: GalleryArrowType | undefined) => {\n const { t } = useTranslation('item');\n\n if (!props) return null;\n const arrowProps = { ...props };\n delete arrowProps.currentSlide;\n delete arrowProps.slideCount;\n return (\n \n \n \n );\n};\n\nlet block = false;\nconst Gallery = () => {\n const { t } = useTranslation('common');\n const dispatch = useDispatch();\n const media = useSelector(getMedia);\n const item = useSelector(getItem);\n const firstMedia = useSelector(getFirstMedia);\n const controlMenu = useSelector(getControlMenu);\n const track = bindActionCreators(\n trackSoftConversionEvent,\n\n dispatch,\n );\n\n const galleryRef = useRef(null);\n const [modalSave, setModalSave] = useState('');\n const sliderRef = useRef(null);\n const [hasInitializedDots, setHasInitializedDots] = useState(false);\n const [state, setState] = useState({\n index: 0,\n lightbox: false,\n proportions: 0,\n displayMediaInModal: null as string | null,\n navigationDisabled: false,\n isDragging: false,\n scrollIntoIndex: 0,\n init: false,\n });\n\n const dotHandler = (index: number) => {\n if (galleryRef.current) {\n const container = galleryRef.current.querySelector('.slick-dots') as HTMLStyleElement;\n\n if (container && container.children.length > 7) {\n container.style.transform = `translateX(${(15 + 16) * -index}px)`;\n container.style.transition = '300ms ease';\n for (let i = 0; i < container.children.length; i++) {\n const dot = container.children[i] as HTMLStyleElement;\n\n if (i === index) {\n dot.className = 'slick-active';\n dot.style.transform = `translateX(${15 * index}px)`;\n } else if (i === index - 1 || i === index + 1) {\n dot.className = '';\n dot.style.transform = `translateX(${15 * index}px)`;\n } else if (i === index - 2 || i === index + 2) {\n dot.className = 'is-medium';\n dot.style.transform = `translateX(${15 * index}px) scale(0.75)`;\n } else if (i === index - 3 || i === index + 3) {\n dot.className = 'is-small';\n dot.style.transform = `translateX(${15 * index}px) scale(0.5)`;\n } else {\n dot.className = 'is-hidden';\n dot.style.transform = `translateX(${15 * index}px) scale(0.00001)`;\n }\n }\n } else if (!!container) {\n container.style.transform = 'translateX(-50%)';\n }\n\n setHasInitializedDots(true);\n }\n };\n\n useEffect(() => {\n if (!state.navigationDisabled) dotHandler(state.index);\n }, [state.navigationDisabled]);\n\n useEffect(() => {\n block = false;\n if (firstMedia) {\n const image = new Image();\n image.src = firstMedia;\n image.onload = () => {\n if (!block) setState((s) => ({ ...s, proportions: (image.height / image.width) * 100 }));\n };\n }\n\n return () => {\n block = true;\n };\n }, [firstMedia]);\n\n const onTrack = () => track(item, softConversionEvents.SOFT_CONVERSION_SHOW_IMAGES);\n\n const onToggleLightboxGallery = (index: number) => {\n if (!state.isDragging) {\n setState({ ...state, lightbox: !state.lightbox, scrollIntoIndex: index });\n }\n };\n\n const onFullscreen = () => {\n track(item, softConversionEvents.SOFT_CONVERSION_FULLSCREEN_IMAGES);\n setState({ ...state, lightbox: true, scrollIntoIndex: 0 });\n };\n const onCloseFullscreen = () => setState({ ...state, lightbox: false });\n\n const onBeforeChange = (_: number, index: number) => {\n onTrack();\n setState({ ...state, index });\n dotHandler(index);\n };\n\n const onSwipeToIndex = (index: number) => {\n if (!sliderRef || !sliderRef.current) return;\n sliderRef.current.slickGoTo(index);\n };\n const onMouseDown = () => {\n if (state.isDragging) setState({ ...state, isDragging: false });\n };\n const onMouseMove = () => {\n if (!state.isDragging) setState({ ...state, isDragging: true });\n };\n\n const onDisplayMediaInModal = (displayMediaInModal: string) => {\n if (!state.isDragging) setState({ ...state, displayMediaInModal });\n };\n const onCloseMediaInModal = (): void => setState({ ...state, displayMediaInModal: null });\n const onDisableNavigation = () => {\n if (!state.isDragging) setState({ ...state, navigationDisabled: true });\n };\n const onEnableNavigation = () => {\n setState({ ...state, navigationDisabled: false, isDragging: false });\n };\n\n const additional = {\n proportions: state.proportions,\n onDisableNavigation,\n navigationDisabled: state.navigationDisabled,\n imageAlt: '',\n onFullscreen: onToggleLightboxGallery,\n onDisplayMediaInModal,\n };\n\n const imgs = (media || []).map((m: any, index: number) =>\n DefaultGalleryFactory.parse(m, { ...additional, index, visible: index === state.index }),\n );\n\n const infinite = imgs.length < 2;\n const navigationDisabled = infinite ? false : !state.navigationDisabled;\n\n const settings = {\n swipe: navigationDisabled,\n touchMove: navigationDisabled,\n swipeToSlide: navigationDisabled,\n speed: 300,\n dots: navigationDisabled,\n arrows: navigationDisabled,\n prevArrow: ,\n nextArrow: ,\n beforeChange: onBeforeChange,\n infinite: navigationDisabled,\n };\n\n let button: any = null;\n if (imgs && imgs.length > 0 && state.navigationDisabled) {\n button = (\n \n {t('close', { ns: 'common' })}\n \n );\n }\n\n let countImg = 0;\n let countSphere = 0;\n let countVideo = 0;\n\n media.map((m) => {\n if (m.type === 'Image' && m.files.length < 2) {\n countImg += 1;\n } else if (m.type === 'Image' && m.files.length > 1) {\n countSphere += 1;\n } else if (m.type === 'Sphere') {\n countSphere += 1;\n } else if (m.type === 'Embedded') {\n countVideo += 1;\n }\n });\n\n return (\n <>\n
    \n {!hasInitializedDots && (\n li {\n display: none !important;\n }\n `,\n }}\n />\n )}\n {state.displayMediaInModal && (\n \n )}\n {state.lightbox && (\n \n {imgs.length ? (\n imgs.map((x: any, index: number) => (\n
    \n {x.fullscreen()}\n
    \n ))\n ) : (\n \n )}\n
    \n )}\n
    \n
    \n
    \n \n \n {imgs.length ? imgs.map((x: any) => x.default()) : }\n \n
    \n {button}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
      \n
    • \n \n
    • \n
    • \n \n
    • \n
    \n
    \n
    \n
    \n {modalSave && setModalSave('')} modalType={modalSave} />}\n \n );\n};\n\nexport default Gallery;\n", "import React from 'react';\nimport ControlItem from './control-item';\n\ninterface ControlBarProps {\n controlMenu: {\n image: number;\n threesixtyAndSphere: number;\n embedAndVideo: number;\n };\n onSwipeToIndex: (index: number) => void;\n onFullscreen: () => void;\n countImg: number;\n countSphere: number;\n countVideo: number;\n}\n\nconst ControlBar = ({\n controlMenu,\n onSwipeToIndex,\n onFullscreen,\n countImg,\n countSphere,\n countVideo,\n}: ControlBarProps) => {\n const { image, threesixtyAndSphere, embedAndVideo } = controlMenu;\n return (\n
    \n \n \n \n \n \n \n \n \n
    \n );\n};\n\nexport default ControlBar;\n", "import React from 'react';\n\ninterface ControlItemProps {\n title: string;\n icon: string;\n count?: number;\n disabled?: boolean;\n index: number;\n onClick: (index: number) => void;\n}\n\nconst ControlItem = ({ title, icon, count, disabled, onClick, index }: ControlItemProps) => (\n onClick(index)}\n disabled={disabled}\n >\n \n \n \n {count}\n \n);\n\nexport default ControlItem;\n", "import React from 'react';\n\nimport type { MediaContainer, MediaContainerDataItem } from '../../@types/item';\nimport VideoPlayer from '../video-player/video-player-selector';\nimport EmbedPreview from './embed-preview';\nimport ImageFullscreen from './image-fullscreen';\nimport ImagePreview from './image-preview';\nimport SphereFullscreen from './sphere-fullscreen';\nimport SpherePreview from './sphere-preview';\nimport ThreeSixtyFullscreen from './three-sixty-fullscreen';\nimport ThreeSixtyPreview from './three-sixty-preview';\n\nconst DEFAULT_FORMAT = '800x';\nconst FULLSCREEN_FORMAT = '1170x';\nconst SPHERE_LARGE_FORMAT = '1170x';\nconst SPHERE_PREVIEW_FORMAT = '800x800';\n\nconst sortOrder = (a: MediaContainerDataItem, b: MediaContainerDataItem) =>\n a.sortOrder - b.sortOrder;\n\nconst getFormatUrl = (file: MediaContainerDataItem, keyFormat: string) =>\n file.formats\n .filter((format) => format.format === keyFormat)\n .map((format) => format.url)\n .pop() || file.url;\n\nconst getFormatUrlWebp = (file: MediaContainerDataItem, keyFormat: string) =>\n file.formats\n .filter((format) => format.format === keyFormat)\n .map((format) => format.webp)\n .pop() || file.webp;\n\nconst getUrls = (files: MediaContainerDataItem[], keyFormat: string) =>\n (files || []).sort(sortOrder).map((file) => ({\n webp: getFormatUrlWebp(file, keyFormat),\n url: getFormatUrl(file, keyFormat),\n }));\n\nconst EmbedBuilder = (\n files: MediaContainerDataItem[],\n { proportions, imageAlt, onDisplayMediaInModal, index }: MediaAdditionals,\n) => ({\n default: () => (\n \n ),\n fullscreen: () => ,\n});\n\nconst SphereBuilder = (\n files: MediaContainerDataItem[],\n { proportions, visible, onDisableNavigation, navigationDisabled, index }: MediaAdditionals,\n) => ({\n default: () => (\n \n ),\n fullscreen: () => (\n \n ),\n});\n\nconst ImageBuilder = (\n files: MediaContainerDataItem[],\n {\n proportions,\n visible,\n imageAlt,\n onDisableNavigation,\n navigationDisabled,\n onFullscreen,\n index,\n }: MediaAdditionals,\n) => ({\n default: () =>\n files.length > 1 ? (\n \n ) : (\n \n ),\n fullscreen: () =>\n files.length > 1 ? (\n \n ) : (\n \n ),\n});\n\nconst DefaultImageBuilder = () => ({\n default: () => null,\n fullscreen: () => null,\n});\n\nconst ParseMedia = (\n files: MediaContainerDataItem[],\n type: string,\n additional: MediaAdditionals,\n) => {\n switch (type) {\n case 'Embedded':\n return EmbedBuilder(files, additional);\n case 'Sphere':\n return SphereBuilder(files, additional);\n case 'Image':\n return ImageBuilder(files, additional);\n default:\n return DefaultImageBuilder();\n }\n};\n\ninterface MediaAdditionals {\n proportions: number;\n navigationDisabled: boolean;\n imageAlt: string;\n index: number;\n visible?: boolean;\n onDisableNavigation: () => void;\n onFullscreen: (index: number) => void;\n onDisplayMediaInModal: (displayMediaInModal: string) => void;\n}\n\nexport class DefaultGalleryFactory {\n static parse = ({ files, type }: MediaContainer, additional: MediaAdditionals) =>\n ParseMedia(files, type, additional);\n}\n\nexport default DefaultGalleryFactory;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useRef, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getThumbnail } from '../../actions/vimeo';\nimport { getEmbededThumbnail, getEmbededThumbnailSafe } from '../../selectors/gallery';\nimport { MediaButton } from '../media-button';\nimport { getVimeoId } from '../video-player/video-util';\n\nimport { cdn } from '../../helpers/urls';\nimport type { RootState } from '../../reducers';\nimport { getStyle } from './helper';\n\ninterface EmbedPreviewProps {\n url: string;\n imageAlt?: string;\n proportions: number;\n onDisplayMediaInModal: (url: string) => void;\n}\n\nconst EmbedPreview = ({ url, imageAlt, proportions, onDisplayMediaInModal }: EmbedPreviewProps) => {\n const dispatch = useDispatch();\n\n const thumbnail = useSelector((s) =>\n getEmbededThumbnail(s, { url }),\n );\n const thumbnailSafe = useSelector((s) =>\n getEmbededThumbnailSafe(s, { url }),\n );\n\n const actions = bindActionCreators(\n {\n getThumbnail,\n },\n dispatch,\n );\n\n const timesLoadedRef = useRef(0);\n const timesFailedRef = useRef(0);\n\n useEffect(() => {\n vimeoThumbnailAction();\n }, [thumbnail, thumbnailSafe, url]);\n\n const vimeoThumbnailAction = () => {\n if (url.includes('vimeo')) {\n const id = getVimeoId(url);\n if (id && !thumbnail) {\n actions.getThumbnail(id);\n }\n }\n };\n\n const onImageError = (e: React.SyntheticEvent) => {\n timesFailedRef.current = timesFailedRef.current + 1;\n if (\n timesLoadedRef.current < 3 &&\n timesFailedRef.current < 3 &&\n thumbnailSafe &&\n e.currentTarget.src.localeCompare(thumbnailSafe) !== 0\n ) {\n e.currentTarget.src = thumbnailSafe;\n } else {\n e.currentTarget.src = cdn('/images/placeholders/placeholder_product_card.jpg');\n }\n };\n\n const onImageLoad = (e: React.SyntheticEvent) => {\n timesLoadedRef.current = timesLoadedRef.current + 1;\n if (timesLoadedRef.current < 3) {\n if (\n e &&\n e.currentTarget &&\n e.currentTarget.naturalHeight === 90 &&\n e.currentTarget.naturalWidth === 120\n ) {\n e.persist();\n onImageError(e);\n }\n }\n };\n\n if (url.toLowerCase().endsWith('.mp4')) {\n return (\n
    \n
    \n
    \n
    \n );\n }\n\n return (\n
    \n
    \n onDisplayMediaInModal(url)}\n className=\"slick-slide-image\"\n style={{ backgroundColor: '#000' }}\n />\n onDisplayMediaInModal(url)} icon=\"play\" />\n
    \n
    \n );\n};\n\nexport default EmbedPreview;\n", "import { createSelector } from '@reduxjs/toolkit';\nimport {\n getVimeoId,\n getYoutubeThumbnail,\n getYoutubeThumbnailSafe,\n} from '../components/video-player/video-util';\nimport type { RootState } from '../reducers';\n\nconst getVimeoThumbnail = (vimeoId: string, thumbnails: { [key: string]: string | undefined }) => {\n const match = thumbnails[vimeoId];\n if (match && match.indexOf('_') >= 0) {\n return `${match.substring(0, match.indexOf('_'))}_820x.jpg`;\n } else if (thumbnails[vimeoId]) {\n return thumbnails[vimeoId];\n }\n return '';\n};\n\nconst getVimeoThumbnailSafe = (\n vimeoId: string,\n thumbnails: { [key: string]: string | undefined },\n) => {\n if (Object.hasOwn(thumbnails, vimeoId) && thumbnails[vimeoId]) {\n return thumbnails[vimeoId];\n }\n\n return '';\n};\n\nexport const getEmbededThumbnail = createSelector(\n (state: RootState) => state.vimeo.thumbnails,\n (_: RootState, ownProps: { url?: string }) => ownProps.url,\n (thumbnails, url) => {\n if (url) {\n const vimeoId = getVimeoId(url);\n if (vimeoId) {\n return getVimeoThumbnail(vimeoId, thumbnails);\n } else if (getYoutubeThumbnail(url)) {\n return getYoutubeThumbnail(url);\n }\n }\n return null;\n },\n);\n\nexport const getEmbededThumbnailSafe = createSelector(\n (state: RootState) => state.vimeo.thumbnails,\n (_: RootState, ownProps: { url?: string }) => ownProps.url,\n (thumbnails, url) => {\n if (url) {\n const vimeoId = getVimeoId(url);\n if (vimeoId) {\n return getVimeoThumbnailSafe(vimeoId, thumbnails);\n } else if (getYoutubeThumbnailSafe(url)) {\n return getYoutubeThumbnailSafe(url);\n }\n }\n return null;\n },\n);\n", "import React from 'react';\n\ninterface MediaButtonProps {\n text: string;\n className?: string;\n ariaLabel?: string;\n icon: string;\n style?: React.CSSProperties;\n onClick: (e: React.MouseEvent) => void;\n}\n\nconst MediaButton = ({ text, className, ariaLabel, icon, style, onClick }: MediaButtonProps) => (\n \n
    \n \n \n \n {text}\n
    \n \n);\n\nexport default MediaButton;\n", "export const getStyle = (proportions?: number) =>\n (proportions && { paddingBottom: `${proportions}%` }) || {};\n\nexport const getProportionUrl = (url: string, proportions: number) =>\n `${url}?w=${820}&h=${Number.parseInt(Math.ceil(820 * (proportions / 100)).toString(), 10)}&crop=true`;\n", "import React from 'react';\n\ninterface ImageFullscreenProps {\n url: string;\n webp?: string;\n imageAlt?: string;\n}\n\nconst ImageFullscreen = ({ url, webp, imageAlt }: ImageFullscreenProps) => (\n \n {webp && }\n {imageAlt}\n \n);\n\nexport default ImageFullscreen;\n", "import React from 'react';\nimport { CONTAINER_MAX_WIDTH, MEDIA_QUERY_MIN_MD } from '../../styled-components/layout/constants';\nimport { getStyle } from './helper';\n\ninterface ImagePreviewProps {\n image: string;\n imageLarge: string;\n webp?: string;\n webpLarge?: string;\n imageAlt?: string;\n proportions: number;\n index: number;\n onFullscreen?: (index: number) => void;\n}\n\nconst ImagePreview = ({\n image,\n imageLarge,\n webp,\n webpLarge,\n imageAlt,\n proportions,\n onFullscreen,\n index,\n}: ImagePreviewProps) => {\n const imageSizes = `\n (min-widht: ${CONTAINER_MAX_WIDTH}) 837px,\n (min-width: ${MEDIA_QUERY_MIN_MD}) calc(66.66667vw - 112px),\n 100vw\n `;\n\n return (\n onFullscreen(index) : undefined}\n >\n
    \n \n {webp && webpLarge && (\n \n )}\n \n \n
    \n
    \n );\n};\n\nexport default ImagePreview;\n", "import React from 'react';\nimport RenderClientSide from '../render/render-client-side';\nimport SphereViewer from '../sphere/sphere-viewer';\n\ninterface SphereFullscreenProps {\n url: string;\n webp?: string;\n}\n\nconst SphereFullscreen = ({ url, webp }: SphereFullscreenProps) => {\n return (\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n \n \n \n
    \n );\n};\n\nexport default SphereFullscreen;\n", "import React, { Suspense, useEffect, lazy } from 'react';\nimport { SpinnerElement } from '../spinner';\n\n// Skip loading pannellum with video\nconst Pannellum = lazy(() => import('pannellum-react/es/elements/Pannellum'));\n\ninterface SphereViewerProps {\n fullscreen: boolean;\n id: string;\n src: string;\n preview?: string;\n autoLoad?: boolean;\n modifiers?: string;\n onStart?: () => void;\n}\n\nconst SphereViewer = ({\n fullscreen,\n id,\n src,\n preview,\n autoLoad,\n modifiers,\n onStart,\n}: SphereViewerProps) => {\n const [number] = React.useState(Math.floor(100000000 + Math.random() * 900000000));\n useEffect(() => {\n setTimeout(() => {\n const node = !fullscreen && document.querySelector(`#a-${id}-${number}`);\n if (node) {\n node.classList.add('slide-image');\n }\n\n if (onStart) {\n const startBtn = document.querySelector('.pnlm-load-button');\n if (startBtn) startBtn.addEventListener('click', onStart);\n }\n }, 100);\n }, []);\n\n return (\n
    \n }>\n \n \n
    \n );\n};\n\nexport default SphereViewer;\n", "import React from 'react';\n\nimport { MediaButton } from '../media-button';\nimport RenderClientSide from '../render/render-client-side';\nimport SphereViewer from '../sphere/sphere-viewer';\nimport { getProportionUrl, getStyle } from './helper';\n\nconst onMediaClick = (e: React.MouseEvent, func: () => void) => {\n e.stopPropagation();\n e.preventDefault();\n func();\n};\n\ninterface SpherePreviewProps {\n url: string;\n preview: string;\n previewWebp?: string;\n visible?: boolean;\n proportions: number;\n navigationDisabled?: boolean;\n onDisableNavigation: () => void;\n}\n\nconst SpherePreview = ({\n url,\n preview,\n previewWebp,\n visible,\n proportions,\n navigationDisabled,\n onDisableNavigation,\n}: SpherePreviewProps) => {\n if (!visible || (!navigationDisabled && visible)) {\n return (\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n
    \n
    \n \n {previewWebp && (\n \n )}\n \n \n onMediaClick(e, onDisableNavigation)}\n icon=\"360\"\n />\n
    \n
    \n
    \n );\n }\n if (navigationDisabled && visible) {\n return (\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n
    \n
    \n \n \n \n
    \n
    \n \n );\n }\n return null;\n};\n\nexport default SpherePreview;\n", "import React, { useState } from 'react';\nimport { MediaButton } from '../media-button';\nimport RotatableGallery from '../three-sixty/rotatable-gallery';\n\ninterface ThreeSixtyFullscreenProps {\n urls: {\n webp?: string | undefined;\n url: string;\n }[];\n imageAlt?: string;\n}\n\nconst ThreeSixtyFullscreen = ({ urls, imageAlt }: ThreeSixtyFullscreenProps) => {\n const [initiated, setInitiated] = useState(false);\n\n const initiate = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setInitiated(true);\n };\n\n if (initiated) {\n return (\n
    \n \n
    \n );\n }\n\n return (\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n \n {urls[0].webp && }\n {imageAlt}\n \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default ThreeSixtyFullscreen;\n", "import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Rotation from './rotation';\n\ninterface RotatableGalleryProps {\n images: { webp?: string; url: string }[];\n imageAlt?: string;\n fullscreen?: boolean;\n}\n\nconst RotatableGallery = ({ images, imageAlt, fullscreen }: RotatableGalleryProps) => {\n const { t } = useTranslation(['other']);\n\n return (\n {\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n \n {images.map((image) => (\n \n {image.webp && }\n {imageAlt}\n \n ))}\n \n \n );\n};\n\nexport default RotatableGallery;\n", "import React, { useRef, useEffect, useState, type CSSProperties, type ReactElement } from 'react';\n\nconst calculateCurrentFrame = (\n reverse: boolean,\n startFrame: number,\n delta: number,\n length: number,\n) => {\n const frame = (reverse ? startFrame - delta : startFrame + delta) % length;\n if (frame < 0) {\n return frame + length;\n }\n\n return frame;\n};\n\ntype ChildProps = {\n style?: CSSProperties;\n // or more props you expect the child to have\n};\n\ninterface RotationProps {\n vertical?: boolean;\n reverse?: boolean;\n className?: string;\n onChange?: (current: number) => void;\n children: React.ReactNode;\n}\n\nconst Rotation = ({ vertical, reverse, className, onChange, children }: RotationProps) => {\n const startFrameRef = useRef(0);\n const pointerPositionRef = useRef(null);\n const maxRef = useRef(0);\n\n const [state, setState] = useState({\n current: 0,\n outsideMouseMove: false,\n });\n\n useEffect(() => {\n document.addEventListener('mouseup', (e) =>\n touchEnd(e as unknown as React.TouchEvent),\n );\n\n return () => {\n window.document.removeEventListener('mouseup', (e) =>\n touchEnd(e as unknown as React.TouchEvent),\n );\n window.document.body.removeEventListener('mousemove', (e) =>\n mouseMove(e as unknown as React.MouseEvent),\n );\n window.document.body.removeEventListener('mouseup', mouseUp);\n };\n }, []);\n\n const touchMove = (\n event: React.TouchEvent | React.MouseEvent,\n ) => {\n const notTouched = typeof pointerPositionRef.current !== 'number';\n event.preventDefault();\n if (notTouched) {\n return;\n }\n\n const childCount = React.Children.count(children);\n\n const { offsetWidth, offsetHeight } = event.currentTarget;\n const pointer = calculatePointerPosition(event);\n const max = vertical ? offsetHeight : offsetWidth;\n const offset = pointer - (pointerPositionRef.current || 0);\n const delta = Math.floor((offset / max) * childCount);\n setCurrentFrame(calculateCurrentFrame(!!reverse, startFrameRef.current, delta, childCount));\n };\n\n const mouseMove = (event: React.MouseEvent) => {\n const notTouched = typeof pointerPositionRef.current !== 'number';\n event.preventDefault();\n if (notTouched || !state.outsideMouseMove) return;\n\n const childCount = React.Children.count(children);\n\n const pointer = calculatePointerPosition(event);\n const offset = pointer - (pointerPositionRef.current || 0);\n const delta = Math.floor((offset / maxRef.current) * childCount);\n setCurrentFrame(calculateCurrentFrame(!!reverse, startFrameRef.current, delta, childCount));\n };\n\n const mouseUp = () => {\n window.document.body.removeEventListener('mousemove', (e) =>\n mouseMove(e as unknown as React.MouseEvent),\n );\n window.document.body.removeEventListener('mouseup', mouseUp);\n\n pointerPositionRef.current = null;\n startFrameRef.current = 0;\n };\n\n const touchStart = (\n event: React.TouchEvent | React.MouseEvent,\n ) => {\n event.preventDefault();\n pointerPositionRef.current = calculatePointerPosition(event);\n startFrameRef.current = state.current;\n\n const { offsetWidth, offsetHeight } = event.currentTarget;\n maxRef.current = vertical ? offsetHeight : offsetWidth;\n\n window.document.body.addEventListener('mousemove', (e) =>\n mouseMove(e as unknown as React.MouseEvent),\n );\n window.document.body.addEventListener('mouseup', mouseUp);\n };\n\n const touchEnd = (event: React.TouchEvent) => {\n event.preventDefault();\n pointerPositionRef.current = null;\n startFrameRef.current = 0;\n };\n\n const onMouseEnter = () => {\n if (state.outsideMouseMove) setState({ ...state, outsideMouseMove: false });\n };\n\n const onMouseLeave = () => {\n if (!state.outsideMouseMove) setState({ ...state, outsideMouseMove: true });\n };\n\n const setCurrentFrame = (current: number) => {\n if (current !== state.current) {\n setState({ ...state, current });\n if (onChange) {\n onChange(current);\n }\n }\n };\n\n const calculatePointerPosition = (\n event: React.TouchEvent | React.MouseEvent,\n ) => {\n const { clientX, clientY } =\n event.type.indexOf('touch') === 0\n ? (event as React.TouchEvent).changedTouches[0]\n : (event as React.MouseEvent);\n const { offsetTop, offsetLeft } = event.currentTarget;\n return vertical ? clientY - offsetTop : clientX - offsetLeft;\n };\n\n const { current } = state;\n\n return (\n \n {React.Children.map(children, (child, i) =>\n React.cloneElement(child as ReactElement, {\n style: {\n width: '100%',\n display: current === i ? 'block' : 'none',\n },\n }),\n )}\n \n );\n};\n\nexport default Rotation;\n", "import React from 'react';\n\nimport { MediaButton } from '../media-button';\nimport RotatableGallery from '../three-sixty/rotatable-gallery';\nimport { getProportionUrl, getStyle } from './helper';\n\nconst onMediaClick = (e: React.MouseEvent, func: () => void) => {\n e.stopPropagation();\n e.preventDefault();\n func();\n};\n\ninterface ThreeSixtyPreviewRotationProps {\n urls: {\n webp?: string | undefined;\n url: string;\n }[];\n imageAlt?: string;\n proportions: number;\n}\n\nconst ThreeSixtyPreviewRotation = ({\n urls,\n imageAlt,\n proportions,\n}: ThreeSixtyPreviewRotationProps) => (\n
    \n
    \n \n
    \n
    \n);\n\ninterface ImageProps {\n image: {\n webp?: string | undefined;\n url: string;\n };\n proportions: number;\n onDisableNavigation: () => void;\n}\n\nconst Image = ({ image, proportions, onDisableNavigation }: ImageProps) => (\n
    \n
    \n \n {image.webp && }\n \n \n onMediaClick(e, onDisableNavigation)}\n icon=\"360\"\n />\n
    \n
    \n);\n\ninterface ThreeSixtyPreviewProps {\n urls: {\n webp?: string | undefined;\n url: string;\n }[];\n visible?: boolean;\n proportions: number;\n imageAlt?: string;\n navigationDisabled: boolean;\n onDisableNavigation: () => void;\n}\n\nconst ThreeSixtyPreview = ({\n urls,\n visible,\n proportions,\n imageAlt,\n navigationDisabled,\n onDisableNavigation,\n}: ThreeSixtyPreviewProps) => (\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {navigationDisabled && visible && (\n \n )}\n {(!visible || (!navigationDisabled && visible)) && (\n \n )}\n \n);\n\nexport default ThreeSixtyPreview;\n", "import React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Modal from '../../styled-components/components/Modal';\nimport VideoPlayer from '../video-player/video-player-selector';\n\nconst KEY_CODE_ESC = 27;\n\nconst ToggleClassName = 'reset-webkit-overflow-scrolling';\n\ninterface ModalVideoPlayerProps {\n url: string;\n onClose: () => void;\n}\n\nconst ModalVideoPlayer = ({ url, onClose }: ModalVideoPlayerProps) => {\n const { t } = useTranslation('article');\n\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.keyCode === KEY_CODE_ESC) onClose();\n };\n\n window.focus();\n window.addEventListener('keydown', onKeyDown);\n if (document && document.body) document.body.className += ` ${ToggleClassName}`;\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n if (document && document.body)\n document.body.className = document.body.className\n ? document.body.className.replace(ToggleClassName, '').trim()\n : '';\n };\n }, []);\n\n return (\n \n \n \n );\n};\n\nexport default ModalVideoPlayer;\n", "import type { MediaContainer, MediaContainerDataItem } from '../@types/item';\n\nexport interface ParsedMedia {\n files: MediaContainerDataItem[];\n id: string;\n sortOrder: number;\n type: string;\n}\n\nexport const parseMedia = ({ files, id, sortOrder, type }: MediaContainer): ParsedMedia => ({\n files: (files || []).slice(),\n id,\n sortOrder,\n type,\n});\n", "import { createSelector } from '@reduxjs/toolkit';\n\nimport { parseMedia } from '../models/media';\nimport type { RootState } from '../reducers';\n\nconst IMAGE = 'Image';\nconst SPHERE = 'Sphere';\nconst EMBEDDED = 'Embedded';\nconst VIDEO = 'Video';\n\nconst getSearchDocument = createSelector(\n (state: RootState) => state.item.current,\n (documentList) =>\n documentList && documentList.documents && documentList.documents.length === 1\n ? documentList.documents[0]\n : null,\n);\n\nconst getAdvertisementMedia = createSelector(getSearchDocument, (item) => {\n if (!item || !item.media || !item.media.length) return [];\n\n return item.media.map((media) => parseMedia(media));\n});\n\nexport const getFirstMedia = createSelector(getAdvertisementMedia, (mediaList) => {\n if (!mediaList.length) return null;\n\n return mediaList[0].files[0].url;\n});\n\nconst getImages = createSelector(getAdvertisementMedia, (mediaList) =>\n mediaList.filter((media) => media.files.length === 1 && media.type === IMAGE),\n);\n\nconst get360Images = createSelector(getAdvertisementMedia, (mediaList) =>\n mediaList\n .filter((media) => media.files.length > 1 || media.type === '360')\n .map((media) => ({\n ...media,\n files: media.files.sort((a, b) => a.sortOrder - b.sortOrder),\n })),\n);\n\nconst getSphereImages = createSelector(getAdvertisementMedia, (mediaList) =>\n mediaList.filter((media) => media.type === SPHERE),\n);\n\nconst getVideos = createSelector(getAdvertisementMedia, (mediaList) =>\n mediaList.filter((media) => media.type === VIDEO),\n);\n\nconst getEmbeddedVideos = createSelector(getAdvertisementMedia, (mediaList) =>\n mediaList.filter((media) => media.type === EMBEDDED),\n);\n\nexport const getMedia = createSelector(\n getEmbeddedVideos,\n getVideos,\n getImages,\n get360Images,\n getSphereImages,\n (embedded, videos, images, threesixtys, spheres) =>\n [...embedded, ...videos, ...images, ...threesixtys, ...spheres].map((media, index) => ({\n ...media,\n sortOrder: index + 1,\n })),\n);\n\nconst getFirstImageIndex = createSelector(getMedia, (mediaList) =>\n mediaList.findIndex((media) => media.files.length === 1 && media.type === IMAGE),\n);\n\nconst getFirst360Index = createSelector(getMedia, (mediaList) =>\n mediaList.findIndex((media) => media.files.length > 1),\n);\n\nconst getFirstSphereIndex = createSelector(getMedia, (mediaList) =>\n mediaList.findIndex((media) => media.type === SPHERE),\n);\n\nconst getFirstEmbedIndex = createSelector(getMedia, (mediaList) =>\n mediaList.findIndex((media) => media.type === EMBEDDED),\n);\n\nconst getFirstVideoIndex = createSelector(getMedia, (mediaList) =>\n mediaList.findIndex((media) => media.type === VIDEO),\n);\n\nexport const getControlMenu = createSelector(\n getFirstImageIndex,\n getFirst360Index,\n getFirstSphereIndex,\n getFirstEmbedIndex,\n getFirstVideoIndex,\n (image, threesixty, sphere, embed, video) => ({\n image,\n threesixtyAndSphere: threesixty > -1 ? threesixty : sphere,\n embedAndVideo: embed > -1 ? embed : video,\n }),\n);\n", "import React from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { getItem } from '../../selectors/item';\nimport { getControlMenu } from '../../selectors/media';\n\nimport type Item from '../../@types/item';\nimport { Lightbox } from '../../components/lightbox';\nimport { getConvertedMileage, getMarketOdometer } from '../../utils/market';\n\nconst getItemData = (item: Item) => {\n if (!item) return null;\n\n const odometer = item.odometerReading\n ? getMarketOdometer(item.odometerReading)\n : getConvertedMileage(item.mileage);\n\n return {\n price: item.price,\n privateLeasing: item.leasingPrice,\n businessLeasing: item.businessLeasingPrice,\n usps: [\n {\n icon: 'icon-mileage',\n value: odometer || '-',\n },\n {\n icon: 'icon-calendar',\n value: item.modelYear || '-',\n },\n {\n icon: 'icon-fuel',\n value: item.fuelTypes || '-',\n },\n {\n icon: 'icon-gearbox',\n value: item.gearboxType || '-',\n },\n ],\n };\n};\n\ntype PropsType = {\n onClose: () => void;\n startIndex: number;\n children?: React.ReactNode | React.ReactNode[];\n};\n\nconst LightboxShell: React.FunctionComponent = ({ onClose, startIndex, children }) => {\n const item = useSelector(getItem);\n const controlMenu = useSelector(getControlMenu);\n\n const scrollInto = (index: number) => {\n setTimeout(() => {\n const node: HTMLElement | null = document.querySelector(`#lightbox-item-${index}`);\n const containerMobile = document.querySelector('.lightbox-media-container');\n const containerDesktop = document.querySelector('[data-am-lightbox]');\n\n if (node && containerMobile && containerDesktop) {\n containerMobile.scrollTop = containerMobile.scrollTop = node.offsetTop;\n containerDesktop.scrollTop = containerDesktop.scrollTop = node.offsetTop;\n }\n }, 200);\n };\n\n React.useEffect(() => {\n scrollInto(startIndex);\n }, []);\n\n if (!item) return null;\n\n return (\n \n {children || []}\n \n );\n};\nexport default LightboxShell;\n", "import React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { prettify } from '../../helpers/prices';\n\nconst KEY_CODE_ESC = 'Escape';\n\ninterface NavItemProps {\n text: string;\n icon: string;\n onClick: () => void;\n current: boolean;\n}\n\nconst NavItem = ({ text, onClick, current, icon }: NavItemProps) => (\n
  • \n \n
  • \n);\n\nconst embedAndVideoVisible = ({ embedAndVideo }: { embedAndVideo: number }, index: number) =>\n embedAndVideo >= 0 ? embedAndVideo <= index : false;\n\nconst threesixtyAndSphereVisible = (\n { threesixtyAndSphere, embedAndVideo }: { threesixtyAndSphere: number; embedAndVideo: number },\n index: number,\n) =>\n threesixtyAndSphere >= 0\n ? !embedAndVideoVisible({ embedAndVideo }, index) && threesixtyAndSphere <= index\n : false;\n\nconst imageVisible = ({ image, threesixtyAndSphere, embedAndVideo }: ControlMenu, index: number) =>\n image >= 0\n ? !threesixtyAndSphereVisible({ threesixtyAndSphere, embedAndVideo }, index) &&\n !embedAndVideoVisible({ embedAndVideo }, index) &&\n image <= index\n : false;\n\ninterface ControlMenu {\n image: number;\n threesixtyAndSphere: number;\n embedAndVideo: number;\n}\n\ninterface LightboxDataUpsItem {\n icon: string;\n value: string | number;\n}\n\ninterface LightboxData {\n price: number | string;\n privateLeasing: number;\n businessLeasing: number;\n usps: LightboxDataUpsItem[];\n}\n\ninterface LightboxProps {\n className?: string;\n data: LightboxData | null;\n controlMenu: ControlMenu;\n startIndex?: number;\n children: React.ReactNode | React.ReactNode[];\n modifiers?: string;\n isOrder?: boolean;\n onClose: () => void;\n}\n\nconst Lightbox = ({\n startIndex,\n modifiers = '',\n className,\n controlMenu,\n data,\n children,\n isOrder,\n onClose,\n}: LightboxProps) => {\n const { t } = useTranslation(['common']);\n const [visibleIndex, setVisibleIndex] = useState(0);\n const ref = useRef(null);\n\n useEffect(() => {\n window.addEventListener('keydown', onKeyDown as unknown as (e: Event) => void);\n\n if (startIndex !== undefined && startIndex > -1) {\n const node = document.querySelector(`#lightbox-item-${startIndex}`);\n const containerMobile = document.querySelector('.lightbox-media-container');\n const containerDesktop = document.querySelector('[data-am-lightbox]');\n\n if (node && containerMobile && containerDesktop) {\n containerMobile.scrollTop = containerMobile.scrollTop = node.offsetTop;\n containerDesktop.scrollTop = containerDesktop.scrollTop = node.offsetTop;\n }\n }\n\n return () => {\n window.removeEventListener('keydown', onKeyDown as unknown as (e: Event) => void);\n };\n }, []);\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === KEY_CODE_ESC) {\n onClose();\n }\n };\n\n const indexIsVisible = (index: number) => {\n const node = document.querySelector(`#lightbox-item-${index}`);\n\n if (node && ref.current) {\n const bounds = node.getBoundingClientRect();\n const inViewport =\n bounds.top >= -1 * (bounds.height / 2) &&\n bounds.left >= -1 * (bounds.width / 2) &&\n bounds.bottom <= ref.current.clientHeight + bounds.height / 2 &&\n bounds.right <= ref.current.clientWidth;\n\n return inViewport;\n }\n };\n\n const onPageScroll = (e: React.UIEvent) => {\n if (\n e &&\n e.currentTarget &&\n e.currentTarget.scrollTop === e.currentTarget.scrollHeight - e.currentTarget.offsetHeight\n ) {\n setVisibleIndex(Array.isArray(children) ? children?.length || 0 : 0);\n } else {\n for (let i = 0; i < (Array.isArray(children) ? children?.length : 0); i++) {\n if (indexIsVisible(i)) {\n setVisibleIndex(i);\n break;\n }\n }\n }\n };\n\n const scrollInto = (index: number) => {\n const node = document.querySelector(`#lightbox-item-${index}`);\n const containerMobile = document.querySelector('.lightbox-media-container');\n const containerDesktop = document.querySelector('[data-am-lightbox]');\n\n if (node && containerMobile && containerDesktop) {\n containerMobile.scrollTop = containerMobile.scrollTop = node.offsetTop - 70;\n containerDesktop.scrollTop = containerDesktop.scrollTop = node.offsetTop;\n }\n };\n\n let price = null;\n let privateLeasing = null;\n let businessLeasing = null;\n\n if (data) {\n if (data.price) {\n price = (\n
    \n
    \n {isOrder\n ? t('priceLabel.recommendedRetailPrice', {\n ns: 'common',\n })\n : t('priceLabel.cash', { ns: 'common' })}\n
    \n
    \n {typeof data.price === 'number' ? prettify(data.price) : data.price}\n
    \n
    \n );\n }\n if (data.privateLeasing) {\n privateLeasing = (\n
    \n
    \n {t('priceLabel.privateLeasing', { ns: 'common' })}\n
    \n
    \n {t('Price per month', {\n ns: 'common',\n count: data.privateLeasing,\n })}\n
    \n
    \n );\n }\n if (data.businessLeasing) {\n businessLeasing = (\n
    \n
    \n {t('priceLabel.businessLeasing', { ns: 'common' })}\n
    \n
    \n {t('Price per month', {\n ns: 'common',\n count: data.businessLeasing,\n })}\n
    \n
    \n );\n }\n }\n\n let menu;\n if (controlMenu) {\n menu = (\n \n );\n }\n\n return (\n \n
    \n
    \n
    \n
    \n \n
    {t('close', { ns: 'common' })}
    \n
    \n \n
    \n \n
    \n {menu}\n
    \n {(price || privateLeasing || businessLeasing || data?.usps) && (\n
    \n
    \n {price}\n {privateLeasing}\n {businessLeasing}\n
    \n {data?.usps?.map((usp) => (\n
    \n \n {usp.value}\n
    \n ))}\n
    \n )}\n
    \n
    \n {children}\n
    \n
    \n \n );\n};\n\nexport default Lightbox;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport type { SubscriptionAdvertisement } from '../../@types/AdvertismentSubscription';\nimport { all as getSearchSubscriptions } from '../../actions/ad-subscription';\nimport { trackSoftConversionEvent } from '../../actions/tracking';\nimport type { RootState } from '../../reducers';\nimport { isAuthenticated as _isAuthenticated } from '../../selectors/auth';\nimport { getItem, getItemId } from '../../selectors/item';\nimport {\n getAdvertisementSubscriptionById,\n isAdvertiesementSubscriptionsSynced,\n} from '../../selectors/subscriptions';\nimport { softConversionEvents } from '../../shared/tracking';\nimport { Button } from '../../styled-components/components/Button';\nimport { IconHeart, IconHeartFilled } from '../../styled-components/components/Icon';\nimport { Text } from '../../styled-components/components/Text';\n\ninterface SaveProps {\n onClick: (modalType: string) => void;\n}\n\nconst Save = ({ onClick }: SaveProps) => {\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const isAuthenticated = useSelector(_isAuthenticated);\n const isSubscriptionSynced = useSelector(isAdvertiesementSubscriptionsSynced);\n const id = useSelector(getItemId);\n const subscription = useSelector((s) =>\n getAdvertisementSubscriptionById(s, id),\n );\n const actions = bindActionCreators(\n {\n get: getSearchSubscriptions,\n track: trackSoftConversionEvent,\n },\n dispatch,\n );\n const { t } = useTranslation(['common', 'item']);\n const onSaveClick = () => {\n actions.track(item, softConversionEvents.SOFT_CONVERSIONS_SAVE_INIT);\n\n if (!isAuthenticated) {\n onClick('SIGN_IN');\n return;\n }\n\n onClick('SUBSCRIBE');\n };\n\n useEffect(() => {\n if (!isSubscriptionSynced && isAuthenticated) actions.get();\n }, [isAuthenticated]);\n\n return (\n <>\n {subscription ? (\n onClick('REMOVE')}\n >\n \n \n \n {t('Saved', { ns: 'common' })}\n \n ) : (\n \n \n \n \n {t('save', { ns: 'common' })}\n \n )}\n \n );\n};\n\nexport default Save;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport type { SubscriptionAdvertisement } from '../../@types/AdvertismentSubscription';\nimport {\n trackLoginModuleClickLoginSaveObject,\n trackLoginModuleInViewportSaveObject,\n} from '../../actions/tracking';\nimport SubscriptionCreateModal from '../../components/subscriptions/ad-subscription-create-modal';\nimport SubscriptionRemoveModal from '../../components/subscriptions/ad-subscription-remove-modal';\nimport type { RootState } from '../../reducers';\nimport SignInModal from '../../styled-components/structures/Modals/SignInModal';\nimport { getAdvertisementSubscription, getSearchDocument } from '../../utils/reselectors';\n\ninterface PropsType {\n modalType?: string;\n onClose: () => void;\n}\n\nconst SaveModal = ({ onClose, modalType }: PropsType) => {\n const { t } = useTranslation('item');\n const dispatch = useDispatch();\n\n const subscription = useSelector((s) =>\n getAdvertisementSubscription(s, getSearchDocument(s)),\n );\n\n const actions = bindActionCreators(\n {\n trackLoginModuleInViewportSaveObject,\n trackLoginModuleClickLoginSaveObject,\n },\n dispatch,\n );\n\n useEffect(() => {\n if (modalType === 'SIGN_IN') {\n actions.trackLoginModuleInViewportSaveObject();\n }\n }, [modalType]);\n\n switch (modalType) {\n case 'SUBSCRIBE':\n return ;\n case 'REMOVE':\n return ;\n case 'SIGN_IN':\n return (\n actions.trackLoginModuleClickLoginSaveObject()}\n />\n );\n default:\n return null;\n }\n};\n\nexport default SaveModal;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useCallback, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { all } from '../../actions/branding';\nimport { track } from '../../actions/tracking';\nimport OverflowSwipe from '../../components/overflow-swipe';\nimport type { RootState } from '../../reducers';\nimport {\n getManufacturePackagingForCurrentItem,\n getMrfPackagingForCurrentItem,\n shouldFetchBrandings as shouldFetchBrandingsSelector,\n} from '../../selectors/branding';\nimport { getItem } from '../../selectors/item';\nimport { getRetailerAbout } from '../../selectors/retailer';\nimport {\n type ResellerPackagingAsPromo,\n getItemResellerPackagingsAsPromo,\n} from '../../selectors/search-retailer';\nimport { GuaranteeEvents, conversionType } from '../../shared/tracking';\nimport { H3 } from '../../styled-components/components/Heading';\nimport GuaranteePackageItem from './guarantee-package-item';\n\nconst GuaranteePackage = () => {\n const { t } = useTranslation(['common', 'item']);\n const dispatch = useDispatch();\n const item = useSelector(getItem);\n const shouldFetchBrandings = useSelector(shouldFetchBrandingsSelector);\n const manufacturerPackaging = useSelector(getManufacturePackagingForCurrentItem);\n const resellerPackagings = useSelector((s) =>\n getItemResellerPackagingsAsPromo(s, item),\n );\n const mrfPackagings = useSelector(getMrfPackagingForCurrentItem);\n const retailerAbout = useSelector(getRetailerAbout);\n const actions = bindActionCreators(\n {\n getBrandings: all,\n track,\n },\n dispatch,\n );\n\n useEffect(() => {\n if (shouldFetchBrandings) {\n actions.getBrandings();\n }\n }, [shouldFetchBrandings]);\n\n const onTrackClick = useCallback((cardType: string, name: string, position: number) => {\n actions.track(GuaranteeEvents.GUARANTEE_INTERACTION, {\n conversionType: conversionType.LINK_CLICK,\n spreadable: {\n interaction: {\n cardType,\n name,\n position,\n },\n },\n });\n }, []);\n\n const onTrackOutboundLinkClick = useCallback(\n (cardType: string, name: string, position: number) => {\n actions.track(GuaranteeEvents.GUARANTEE_INTERACTION, {\n conversionType: conversionType.OUTBOUND_CLICK,\n spreadable: {\n interaction: {\n cardType,\n name,\n position,\n },\n },\n });\n },\n [],\n );\n\n if (!manufacturerPackaging && resellerPackagings.length === 0 && !mrfPackagings.length)\n return null;\n\n const overflowList = [];\n\n if (manufacturerPackaging) {\n overflowList.push(\n ,\n );\n }\n\n resellerPackagings?.forEach((resellerPackage, index) => {\n overflowList.push(\n ,\n );\n });\n\n mrfPackagings?.forEach((mrfPackage, index) => {\n overflowList.push(\n ,\n );\n });\n\n return (\n
    \n

    \n {t('guaranteePackage.heading', { ns: 'item' })}\n

    \n
    \n
    \n

    {t('guaranteePackage.description', { ns: 'item' })}

    \n
    \n
    \n
    \n \n {overflowList}\n \n
    \n
    \n );\n};\n\nexport default GuaranteePackage;\n", "import { createSelector } from '@reduxjs/toolkit';\nimport { getItemResellerPackagings } from '../utils/reselectors';\n\nexport interface ResellerPackagingAsPromo {\n id: string;\n title: string;\n description: string;\n image: string;\n link: {\n name: string;\n url: string;\n };\n}\n\nexport const getItemResellerPackagingsAsPromo = createSelector(\n getItemResellerPackagings,\n (resellerPackagings): ResellerPackagingAsPromo[] => {\n if (!resellerPackagings || resellerPackagings.length === 0) {\n return [];\n }\n\n return resellerPackagings.map((packaging) => ({\n id: packaging.id,\n description: packaging.description,\n image: packaging.imageUrl,\n link: {\n name: packaging.ctaName,\n url: packaging.ctaUrl,\n },\n title: packaging.title,\n }));\n },\n);\n", "import React, { useState, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { asHtml } from '../../helpers/markdown';\nimport Content from '../../styled-components/components/Content';\nimport { Image } from '../../styled-components/components/Image';\nimport { Link } from '../../styled-components/components/Link';\nimport Modal from '../../styled-components/components/Modal';\nimport { StackMedium } from '../../styled-components/components/Stack';\n\ninterface GuaranteePackageItemProps {\n title: string;\n image?: string;\n logo?: string;\n description?: string;\n linkUrl?: string;\n linkName?: string;\n cardType: string;\n index: number;\n onTrackClick: (cardType: string, name: string, position: number) => void;\n onTrackOutboundLinkClick: (cardType: string, name: string, position: number) => void;\n dangerousHtml?: boolean;\n}\n\nconst GuaranteePackageItem = ({\n title,\n image,\n logo,\n description,\n linkUrl,\n linkName,\n cardType,\n index,\n onTrackClick,\n onTrackOutboundLinkClick,\n dangerousHtml,\n}: GuaranteePackageItemProps) => {\n const { t } = useTranslation(['common']);\n const [tracked, setTracked] = useState(false);\n const [outboundTracked, setOutboundTracked] = useState(false);\n const [modal, setModal] = useState(false);\n const onToggleModal = useCallback(() => {\n setModal(!modal);\n if (!modal && !tracked) {\n setTracked(true);\n onTrackClick(cardType, title, index + 1);\n }\n }, [modal, tracked]);\n\n const _onTrackOutboundLinkClick = useCallback(() => {\n if (!outboundTracked) {\n setOutboundTracked(true);\n onTrackOutboundLinkClick(cardType, title, index + 1);\n }\n }, [outboundTracked]);\n\n return (\n
    \n
    \n
    {title}
    \n {logo && (\n
    \n \n
    \n )}\n
    \n
    \n {description && dangerousHtml && (\n
    \n \n
    \n )}\n {description && !dangerousHtml && (\n
    \n
    \n

    {description}

    \n
    \n
    \n )}\n
    \n \n {t('Read more', { ns: 'common' })}\n \n
    \n
    \n {modal && (\n \n {image && (\n \n {title}\n \n )}\n {description && dangerousHtml && (\n \n \n \n )}\n {description && !dangerousHtml && (\n \n \n

    {description}

    \n
    \n
    \n )}\n {linkUrl && (\n \n \n {linkName || linkUrl}\n \n \n )}\n
    \n )}\n
    \n );\n};\n\nexport default GuaranteePackageItem;\n", "import { format } from 'date-fns';\nimport { sv } from 'date-fns/locale';\nimport React, { useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport UspItem from './usp-item';\n\nimport { Clock, Cube } from '@phosphor-icons/react';\nimport ExtendableGroupAuto from '../../components/extendable-group/extendable-group-auto';\nimport { asHtml } from '../../helpers/markdown';\nimport { getItemInformation } from '../../selectors/item';\nimport Content from '../../styled-components/components/Content';\nimport { HStack } from '../../styled-components/components/HStack';\nimport { StatusBadge } from '../../styled-components/components/ProductCard/wrapper';\nimport { Text } from '../../styled-components/components/Text';\nimport { getConvertedMileage, getMarketOdometer } from '../../utils/market';\n\nconst preBlurred = (s: string) => s.replaceAll('******', '\\\\_\\\\_SANITIZED\\\\_\\\\_');\nconst blurred = (s: string) =>\n s.replaceAll('__SANITIZED__', '******');\n\nconst Information = () => {\n const { t } = useTranslation(['common', 'glossary']);\n const item = useSelector(getItemInformation);\n const contentRef = useRef(null);\n\n if (!item) return null;\n\n const {\n title,\n shortDescription,\n description,\n fuelTypes,\n gearboxType,\n modelYear,\n isDemoVersion,\n mileage,\n odometerReading,\n } = item;\n\n const odometer = odometerReading\n ? getMarketOdometer(odometerReading)\n : getConvertedMileage(mileage);\n\n const expectedDeliveryUnit = (unit: string, count: number) => {\n switch (unit) {\n case 'day':\n return t('deliveryTimeRange.unitDay', { ns: 'item', count });\n case 'week':\n return t('deliveryTimeRange.unitWeek', { ns: 'item', count });\n case 'month':\n return t('deliveryTimeRange.unitMonth', { ns: 'item', count });\n default:\n return '';\n }\n };\n\n return (\n
    \n
    \n \n {item?.inventoryStatusString === 'InStock' && (\n \n {t('inStock', { ns: 'common' })}\n \n \n )}\n {item?.inventoryStatusString === 'Incoming' && (\n <>\n \n {t('incoming', { ns: 'common' })}\n \n \n {item.availableFrom && (\n \n {t('availableFromDate', {\n ns: 'item',\n date: format(new Date(item.availableFrom), 'dd MMM yyyy', {\n locale: sv,\n }),\n })}\n \n )}\n \n )}\n {item?.inventoryStatusString === 'Order' && (\n <>\n \n {t('forOrder', { ns: 'common' })}\n \n \n {item.expectedDelivery && (\n \n {t('deliveryTimeRange.label', {\n ns: 'item',\n from: item.expectedDelivery.from,\n to: item.expectedDelivery.to,\n unit: expectedDeliveryUnit(\n item.expectedDelivery.unit,\n item.expectedDelivery.to,\n ),\n })}\n \n )}\n \n )}\n \n
    \n

    \n {title} {shortDescription}\n

    \n\n
    \n
    \n \n \n \n \n
    \n
    \n {description && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n );\n};\n\nexport default Information;\n", "import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\n\ninterface HStackProps {\n $spacing?: number;\n $valign?: 'top' | 'center' | 'bottom' | 'baseline';\n}\n\nexport const HStack = styled.div.withConfig({ componentId: 'sc-cuiqel-0' })`\n display: flex;\n\n ${({ $spacing }) =>\n $spacing &&\n css`\n gap: ${size($spacing)};\n `}\n\n ${({ $valign }) =>\n $valign === 'top'\n ? css`\n align-items: start;\n `\n : $valign === 'center'\n ? css`\n align-items: center;\n `\n : $valign === 'bottom'\n ? css`\n align-items: end;\n `\n : $valign === 'baseline'\n ? css`\n align-items: baseline;\n `\n : undefined}\n`;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { eventTypes, otherEvents } from '../../shared/tracking';\n\nimport { getItem } from '../../selectors/item';\n\nimport MessageToRetailerModal from './message-to-retailer-modal';\n\nimport { hideMessageModal } from '../../actions/event';\nimport { mapVehicleData, track } from '../../actions/tracking';\n\nconst MessageModal = () => {\n const item = useSelector(getItem);\n const dispatch = useDispatch();\n\n const actions = bindActionCreators(\n {\n track,\n hideMessageModal,\n },\n dispatch,\n );\n\n useEffect(() => {\n actions.track(eventTypes.OTHER, {\n item: mapVehicleData(item, true),\n conversionType: otherEvents.MESSAGE_INITATED,\n });\n\n return () => {\n actions.track(eventTypes.OTHER, {\n item: mapVehicleData(item, true),\n conversionType: otherEvents.MESSAGE_MODAL_CLOSE,\n });\n };\n }, []);\n\n return ;\n};\n\nexport default MessageModal;\n", "import { bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { create } from '../../actions/conversation';\nimport {\n trackLoginModuleClickLoginMessageDealer as _trackLoginModuleClickLoginMessageDealer,\n trackLoginModuleInViewportMessageDealer as _trackLoginModuleInViewportMessageDealer,\n trackConversionEvent,\n} from '../../actions/tracking';\nimport ReCaptcha from '../../components/re-captcha/re-captcha';\nimport { ExchangeTypes, useDataExchangeStatus } from '../../hooks/exchange-status';\nimport type { RootState } from '../../reducers';\nimport { isAuthenticated } from '../../selectors/auth';\nimport { conversionEvents } from '../../shared/tracking';\nimport { getRetailerDocument, getSearchDocument } from '../../utils/reselectors';\n\nimport Alert from '../../styled-components/components/Alert';\nimport { Box } from '../../styled-components/components/Box';\nimport { Button } from '../../styled-components/components/Button';\nimport { Column, Columns } from '../../styled-components/components/Columns';\nimport Content from '../../styled-components/components/Content';\nimport InputCheckbox from '../../styled-components/components/InputCheckbox';\nimport InputError from '../../styled-components/components/InputError';\nimport InputHelp from '../../styled-components/components/InputHelp';\nimport InputLabel from '../../styled-components/components/InputLabel';\nimport InputText from '../../styled-components/components/InputText';\nimport InputTextarea from '../../styled-components/components/InputTextarea';\nimport Loader from '../../styled-components/components/Loader';\nimport Modal from '../../styled-components/components/Modal';\nimport { StackLarge, StackMedium } from '../../styled-components/components/Stack';\nimport Switch from '../../styled-components/components/Switch';\nimport { Text } from '../../styled-components/components/Text';\n\nimport { urls } from '../../helpers';\nimport { getMarket } from '../../i18n';\nimport InputGroup from '../../styled-components/components/InputGroup';\nimport SignInModal from '../../styled-components/structures/Modals/SignInModal';\n\nconst validate = (state: State) => {\n const marketCode = getMarket().marketCode;\n const regisstrationNumberLength = marketCode === 'NO' ? 7 : 6;\n\n if (!state.message || state.message.length < 5) {\n return false;\n }\n if (\n state.hasExchangeCar &&\n (!state.registrationNumber || state.registrationNumber.length !== regisstrationNumberLength)\n ) {\n return false;\n }\n if (state.hasExchangeCar && (!state.mileage || Number.parseInt(state.mileage || '0', 10) < 1)) {\n return false;\n }\n\n if (!state.captcha) {\n return false;\n }\n\n return true;\n};\n\nconst toCamelCase = (input: string) =>\n input.toLowerCase().replace(/-(.)/g, (_, group1) => group1.toUpperCase());\n\ninterface State {\n message: string;\n hasExchangeCar: boolean;\n financialAid: boolean;\n insuranceAid: boolean;\n registrationNumber: string;\n mileage: string;\n carDescription: string;\n offers: any[];\n captcha?: string;\n valid: boolean;\n messageError: boolean;\n}\n\ntype Keys = 'message' | 'registrationNumber' | 'mileage' | 'carDescription';\n\ninterface MessageToRetailerModalProps {\n onClose: () => void;\n}\n\nconst MessageToRetailerModal = ({ onClose }: MessageToRetailerModalProps) => {\n const { t } = useTranslation(['glossary', 'item', 'validation']);\n const dispatch = useDispatch();\n\n const requestStatus = useSelector((s) => s.conversations.requestStatus);\n const responseStatus = useSelector((s) => s.conversations.responseStatus);\n const authenticated = useSelector(isAuthenticated);\n const item = useSelector(getSearchDocument);\n const retailer = useSelector(getRetailerDocument);\n\n const actions = bindActionCreators(\n {\n create,\n trackConversionEvent,\n trackLoginModuleInViewportMessageDealer: _trackLoginModuleInViewportMessageDealer,\n trackLoginModuleClickLoginMessageDealer: _trackLoginModuleClickLoginMessageDealer,\n },\n dispatch,\n );\n\n const requestCreate = useDataExchangeStatus(ExchangeTypes.Creating, [\n requestStatus,\n responseStatus,\n ]);\n\n const [state, setState] = useState({\n message: '',\n hasExchangeCar: false,\n financialAid: false,\n insuranceAid: false,\n registrationNumber: '',\n mileage: '',\n carDescription: '',\n offers: [],\n valid: false,\n messageError: false,\n });\n\n useEffect(() => {\n document.body.className += ' overflow-hidden';\n\n return () => {\n document.body.className = document.body.className.replace('overflow-hidden', '');\n };\n }, []);\n\n useEffect(() => {\n if (state.message.length >= 5) {\n setState((s) => {\n const state = { ...s };\n state.messageError = false;\n return state;\n });\n }\n }, [state.message]);\n\n const onReCaptchaChange = (captcha: string | null) => {\n const nextState = { ...state };\n nextState.captcha = captcha || undefined;\n nextState.valid = validate(nextState);\n setState(nextState);\n };\n\n const onCheckboxChange = (e: React.ChangeEvent) => {\n const nextState = { ...state };\n\n nextState[e.currentTarget.name as 'financialAid' | 'insuranceAid' | 'hasExchangeCar'] =\n e.currentTarget.checked;\n\n setState(nextState);\n };\n\n const onChange = (e: React.ChangeEvent) => {\n const nextState = { ...state };\n nextState[e.currentTarget.name as Keys] = e.currentTarget.value;\n nextState.valid = validate(nextState);\n setState(nextState);\n };\n\n const onMessageBlur = () => {\n if (state.message.length < 5) {\n setState((s) => {\n const state = { ...s };\n state.messageError = true;\n return state;\n });\n }\n };\n\n const onSend = () => {\n if (retailer && item) {\n const { marketCode } = getMarket();\n const information: { [key: string]: string | boolean | undefined } = {};\n const metaData: { key: string; value: string }[] = [];\n\n if (state.hasExchangeCar) {\n metaData.push({\n key: 'exchange-car-regnr',\n value: state.registrationNumber,\n });\n\n metaData.push({\n key: 'exchange-car-odometer-reading-value',\n value: state.mileage,\n });\n metaData.push({\n key: 'exchange-car-odometer-reading-unit',\n value: marketCode === 'NO' ? 'Kilometer' : 'ScandinavianMile',\n });\n\n metaData.push({\n key: 'exchange-car-info',\n value: state.carDescription,\n });\n }\n\n metaData.forEach((i) => {\n information[toCamelCase(i.key)] = i.value;\n });\n\n if (state.financialAid) {\n metaData.push({\n key: 'financial-aid',\n value: 'Jag \u00E4r intresserad av finansiering',\n });\n }\n information.financialAid = !!state.financialAid;\n\n if (state.insuranceAid) {\n metaData.push({\n key: 'insurance-aid',\n value: 'Jag \u00E4r intresserad av f\u00F6rs\u00E4kring',\n });\n }\n information.insuranceAid = !!state.insuranceAid;\n\n actions.trackConversionEvent(item, conversionEvents.CONVERSION_MESSAGE_SENT, {\n information,\n });\n actions.create({\n branchId: retailer.id,\n itemId: item.id,\n messageText: state.message,\n metaData,\n captcha: state.captcha,\n });\n }\n };\n\n if (requestCreate.pending) {\n return (\n \n \n \n );\n }\n\n if (requestCreate.successful) {\n return (\n \n \n

    {t('sendMessageModal.messageSent', { ns: 'item', name: retailer?.name })}

    \n
    \n
    \n );\n }\n\n if (authenticated) {\n let alert = null;\n\n if (requestCreate.failed) {\n alert = (\n \n {t('sendMessageModal.couldNotSendMessage', { ns: 'item' })}\n \n );\n }\n\n return (\n \n \n \n

    \n {t('sendMessageModal.description', {\n ns: 'item',\n name: retailer?.name,\n item: item?.title,\n })}\n

    \n
    \n
    \n {alert}\n \n \n \n {t('sendMessageModal.messageInput.label', { ns: 'item' })}\n \n \n {state.messageError && (\n \n {t('errorValueNeedMoreThanNumberOfCharacters', { ns: 'validation', count: 5 })}\n \n )}\n \n \n \n \n {t('sendMessageModal.interestedInFinancialAid', { ns: 'item' })}\n \n \n {t('sendMessageModal.interestedInInsurance', { ns: 'item' })}\n \n \n \n \n \n \n \n \n \n {t('sendMessageModal.tradeInCar.label', { ns: 'item' })}\n \n \n \n \n \n \n \n {state.hasExchangeCar && (\n <>\n \n \n {t('registrationNumber', { ns: 'glossary' })}\n \n \n \n \n \n {t('odometer', { ns: 'glossary' })}\n \n \n \n \n \n {t('sendMessageModal.tradeInCar.descriptionInput.label', { ns: 'item' })}\n \n \n \n {t('sendMessageModal.tradeInCar.descriptionInput.help', { ns: 'item' })}\n \n \n \n )}\n \n {t('sendMessageModal.tradeInCar.help', { ns: 'item' })}\n \n \n \n \n \n \n \n {t('sendMessageModal.sendMessageButton.text', { ns: 'item' })}\n \n \n
    \n );\n }\n\n return (\n \n );\n};\n\nexport default MessageToRetailerModal;\n", "import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { getPromos } from '../../selectors/item-retailer';\n\nimport type { RetailerPromo } from '../../@types/Retailer';\nimport OverflowGrid from '../../components/overflow-grid';\nimport { H3 } from '../../styled-components/components/Heading';\nimport { StackMedium } from '../../styled-components/components/Stack';\nimport Promo from './promo';\nimport PromoModal from './promo-modal';\n\nconst Promos = () => {\n const { t } = useTranslation(['item']);\n const promos = useSelector(getPromos);\n const [modal, setModal] = useState(null);\n if (!promos) return null;\n\n const hasNoItems = promos.length === 0;\n\n if (hasNoItems) return null;\n\n const onClick = (promo: RetailerPromo) => setModal(promo);\n\n return (\n <>\n {modal && setModal(null)} />}\n
    \n \n

    \n {t('Offers', { ns: 'item' })}\n

    \n
    \n \n \n {promos.map((promo, index) => (\n onClick(promo)}\n />\n ))}\n \n \n
    \n \n );\n};\n\nexport default Promos;\n", "import React from 'react';\nimport type { RetailerPromo } from '../../@types/Retailer';\n\ninterface PromoProps {\n promo: RetailerPromo;\n onClick: () => void;\n}\n\nconst Promo = ({ promo, onClick }: PromoProps) => (\n
    \n
    \n
    \n {promo.image && (\n
    \n \"\"\n
    \n )}\n
    \n
    {promo.title}
    \n
    \n
    \n
    \n
    \n);\n\nexport default Promo;\n", "import React from 'react';\n\nimport type { RetailerPromo } from '../../@types/Retailer';\nimport { asHtml } from '../../helpers/markdown';\nimport Content from '../../styled-components/components/Content';\nimport { Image } from '../../styled-components/components/Image';\nimport { Link } from '../../styled-components/components/Link';\nimport Modal from '../../styled-components/components/Modal';\nimport { StackMedium } from '../../styled-components/components/Stack';\n\ninterface PromoModalProps {\n promo: RetailerPromo;\n onClose: () => void;\n}\n\nconst PromoModal = ({ promo, onClose }: PromoModalProps) => (\n \n {promo.image && (\n \n {promo.title}\n \n )}\n \n \n \n {promo.link && (\n \n \n {promo.link.name}\n \n \n )}\n \n);\n\nexport default PromoModal;\n", "import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport type Item from '../../@types/item';\nimport { urls } from '../../helpers';\nimport { getMarket } from '../../i18n';\nimport { getRetailerDocument } from '../../selectors/retailer';\nimport Checklist from '../../styled-components/components/Checklist';\nimport Content from '../../styled-components/components/Content';\nimport { IconCheck } from '../../styled-components/components/Icon';\nimport { Image } from '../../styled-components/components/Image';\nimport { Link } from '../../styled-components/components/Link';\nimport TabBox from '../../styled-components/components/TabBox';\nimport { getAutomotiveAssociationName } from '../../utils/market';\nimport { dateMonthYear } from '../../utils/ts/date';\n\ninterface SafetyDataProps {\n item: Item;\n}\n\nconst SafetyData = ({ item }: SafetyDataProps) => {\n const { t } = useTranslation(['common', 'item']);\n const automotiveAssociation = getAutomotiveAssociationName();\n const marketCode = getMarket().marketCode;\n const retailer = useSelector(getRetailerDocument);\n\n // Automotive association\n const automotiveAssociationLinkUrl =\n marketCode === 'NO' ? 'https://www.nbf.no/om-oss/handle-trygt/' : 'https://mrf.se';\n const automotiveAssociationLogoMaxWidth = marketCode === 'NO' ? '80px' : '40px';\n\n // Condition Report\n const conditionReport = item.documents.find((doc) => doc.category === 'content declaration');\n\n const itemsList = [\n {\n faded: !retailer?.isConnectedToMrf,\n heading: t('safetyData.automotiveAssociation.heading', { ns: 'item' }),\n body: (\n <>\n {retailer?.isConnectedToMrf ? (\n <>\n \n \n

    {t('safetyData.automotiveAssociation.body', { ns: 'item' })}

    \n
    \n \n {t('safetyData.automotiveAssociation.link.text', { ns: 'item' })}\n \n \n ) : (\n \n

    {t('safetyData.automotiveAssociation.noInformation', { ns: 'item' })}

    \n
    \n )}\n \n ),\n },\n ];\n\n // Condition Report\n const showConditionReport = marketCode === 'NO';\n if (showConditionReport) {\n itemsList.push({\n faded: !conditionReport,\n heading: t('safetyData.conditionReport.heading', { ns: 'item' }),\n body: (\n <>\n {conditionReport ? (\n <>\n \n

    {t('safetyData.conditionReport.body', { ns: 'item' })}

    \n
    \n \n {t('safetyData.conditionReport.link.text', { ns: 'item' })} (PDF)\n \n \n ) : (\n \n

    {t('safetyData.conditionReport.noInformation', { ns: 'item' })}

    \n
    \n )}\n \n ),\n });\n }\n\n // Warranty\n const showWarranty = marketCode === 'NO';\n if (showWarranty) {\n itemsList.push({\n faded: !item.warranty,\n heading: t('safetyData.warranty.heading', { ns: 'item' }),\n body: (\n <>\n {item.warranty ? (\n \n

    \n {item.warranty.durationStartAt !== '0001-01-01T00:00:00'\n ? t('safetyData.warranty.bodyDurationStartAt', {\n ns: 'item',\n maxDuration: t('safetyData.warranty.duration', {\n ns: 'item',\n count: item.warranty.maxDuration.value,\n unit:\n item.warranty.maxDuration.unit === 'Month'\n ? t('unitMonth', {\n ns: 'common',\n count: item.warranty.maxDuration.value,\n }).toLowerCase()\n : t('unitYear', {\n ns: 'common',\n count: item.warranty.maxDuration.value,\n }).toLowerCase(),\n }),\n maxDistance: t('safetyData.warranty.distance', {\n ns: 'item',\n count: item.warranty.maxDistance.value,\n unit:\n item.warranty.maxDistance.unit === 'Kilometer'\n ? t('km', { ns: 'common' })\n : t('mil', { ns: 'common' }),\n }),\n durationStartAt: dateMonthYear(item.warranty.durationStartAt),\n })\n : t('safetyData.warranty.bodyDefault', {\n ns: 'item',\n maxDuration: t('safetyData.warranty.duration', {\n ns: 'item',\n count: item.warranty.maxDuration.value,\n unit:\n item.warranty.maxDuration.unit === 'Month'\n ? t('unitMonth', {\n ns: 'common',\n count: item.warranty.maxDuration.value,\n }).toLowerCase()\n : t('unitYear', {\n ns: 'common',\n count: item.warranty.maxDuration.value,\n }).toLowerCase(),\n }),\n maxDistance: t('safetyData.warranty.distance', {\n ns: 'item',\n count: item.warranty.maxDistance.value,\n unit:\n item.warranty.maxDistance.unit === 'Kilometer'\n ? t('km', { ns: 'common' })\n : t('mil', { ns: 'common' }),\n }),\n })}\n

    \n
    \n ) : (\n \n

    {t('safetyData.warranty.noInformation', { ns: 'item' })}

    \n
    \n )}\n \n ),\n });\n }\n\n // Service History\n const showServiceHistory = marketCode === 'NO';\n if (showServiceHistory) {\n itemsList.push({\n faded:\n !item.serviceHistory?.isServiceHistoryAvailable &&\n !item.serviceHistory?.isServicePlanFollowed,\n heading: t('safetyData.service.heading', { ns: 'item' }),\n body: (\n <>\n {item.serviceHistory?.isServiceHistoryAvailable ||\n item.serviceHistory?.isServicePlanFollowed ? (\n \n

    \n {item.serviceHistory.isServiceHistoryAvailable\n ? t('safetyData.service.historyAvailable', { ns: 'item' })\n : undefined}\n {item.serviceHistory.isServiceHistoryAvailable &&\n item.serviceHistory.isServicePlanFollowed &&\n ' '}\n {item.serviceHistory.isServicePlanFollowed\n ? t('safetyData.service.servicePlanFollowed', { ns: 'item' })\n : undefined}\n

    \n
    \n ) : (\n \n

    {t('safetyData.service.noInformation', { ns: 'item' })}

    \n
    \n )}\n \n ),\n });\n }\n\n // Right to exchange\n const showRightToExchange = marketCode === 'NO';\n if (showRightToExchange) {\n itemsList.push({\n faded: !item.rightToExchange,\n heading: t('safetyData.rightOfExchange.heading', { ns: 'item' }),\n body: (\n <>\n {item.rightToExchange ? (\n \n

    {t('safetyData.rightOfExchange.body', { ns: 'item' })}

    \n
    \n ) : (\n \n

    {t('safetyData.rightOfExchange.noInformation', { ns: 'item' })}

    \n
    \n )}\n \n ),\n });\n }\n\n // Carfax\n const showCarfax = marketCode === 'SE';\n const carfaxUsps: string[] = t('safetyData.carfax.usps', {\n ns: 'item',\n returnObjects: true,\n }) as string[];\n const isVirtualCar = item.inventoryStatusString?.toLowerCase() === 'order';\n\n if (showCarfax) {\n itemsList.unshift({\n faded: isVirtualCar,\n heading: t('safetyData.carfax.heading', { ns: 'item' }),\n body: (\n <>\n \n\n {isVirtualCar ? (\n \n

    {t('safetyData.carfax.virtualCar', { ns: 'item' })}

    \n
    \n ) : (\n <>\n \n

    {t('safetyData.carfax.body', { ns: 'item' })}

    \n
    \n {carfaxUsps && } spacing=\"small\" items={carfaxUsps} />}\n \n )}\n \n ),\n });\n }\n\n // Place disabled items last\n const sortedItemsList = itemsList.sort((a, b) => {\n if (a.faded && !b.faded) {\n return 1;\n } else if (!a.faded && b.faded) {\n return -1;\n }\n return 0;\n });\n\n return (\n
    \n \n
    \n );\n};\n\nexport default SafetyData;\n", "import React, { useState } from 'react';\n\nimport { IconCheck, IconChevronDown, IconDot } from '../Icon';\nimport {\n TabButton,\n TabButtonIcon,\n TabButtonMain,\n TabButtonMainText,\n TabList,\n TabPanel,\n Wrapper,\n} from './wrapper';\n\ninterface TabBoxItemProps {\n heading: string;\n body: React.ReactNode;\n disabled?: boolean;\n faded?: boolean;\n}\n\ninterface TabBoxProps {\n items: TabBoxItemProps[];\n ariaLabel?: string;\n idBase: string;\n}\n\nconst TabBox = ({ items, ariaLabel, idBase }: TabBoxProps) => {\n const [activeTab, setActiveTab] = useState(0);\n\n return (\n \n \n {items.map((tab, tabIndex) => (\n setActiveTab(tabIndex)}\n $mobileOrder={tabIndex * 2}\n $isFaded={tab.faded}\n disabled={tab.disabled}\n >\n \n {tab.faded ? : }\n {tab.heading}\n \n \n \n \n \n ))}\n \n {items.map((panel, panelIndex) => (\n \n {panel.body}\n \n ))}\n \n );\n};\n\nexport default TabBox;\n", "import styled, { css } from 'styled-components';\n\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../../layout/reset';\nimport { Icon } from '../Icon';\n\nexport const Wrapper = styled.div.withConfig({ componentId: 'sc-7df4te-0' })`\n --_bg: var(--c-bg-alt);\n --_br: ${(props) => props.theme.size.borderRadius};\n\n ${(props) => props.theme.breakpoint.LtMd} {\n display: flex;\n flex-direction: column;\n }\n`;\n\nexport const TabList = styled.div.attrs(() => ({\n role: 'tablist',\n})).withConfig({ componentId: 'sc-7df4te-1' })`\n ${(props) => props.theme.breakpoint.LtMd} {\n display: contents;\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n display: flex;\n align-items: flex-end;\n overflow: hidden;\n }\n`;\n\ninterface TabButtonProps {\n $isActive?: boolean;\n $mobileOrder?: number;\n $isFaded?: boolean;\n}\n\nexport const TabButton = styled(ButtonReset).attrs(() => ({\n role: 'tab',\n})).withConfig({ componentId: 'sc-7df4te-2' })`\n --_padding: ${size(1.5)} ${size(2)};\n\n padding: var(--_padding);\n font-weight: var(--font-weight-medium);\n font-size: var(--font-size-small-static);\n\n &[disabled] {\n opacity: 0.37;\n cursor: not-allowed;\n }\n\n ${(props) => props.theme.breakpoint.LtMd} {\n --_padding: ${size(2)};\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--_padding);\n background-color: var(--_bg);\n\n &:not(:first-child) {\n position: relative;\n\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: var(--_padding);\n right: var(--_padding);\n display: block;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.2);\n }\n }\n\n ${({ $mobileOrder }) =>\n $mobileOrder &&\n css`\n order: ${$mobileOrder};\n `}\n\n ${({ $isFaded }) =>\n $isFaded &&\n css`\n color: var(--c-text-muted);\n `}\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n flex: 0 1 auto;\n min-width: 0;\n border-top-left-radius: var(--_br);\n border-top-right-radius: var(--_br);\n\n ${({ $isActive }) =>\n $isActive\n ? css`\n background-color: var(--_bg);\n `\n : css`\n &:hover {\n text-decoration: underline;\n }\n `}\n\n ${({ $isFaded, $isActive }) =>\n $isFaded &&\n !$isActive &&\n css`\n opacity: 0.37;\n `}\n }\n`;\n\nexport const TabButtonMain = styled.div.withConfig({ componentId: 'sc-7df4te-3' })`\n display: flex;\n align-items: center;\n gap: ${size(0.75)};\n\n ${Icon} {\n flex-shrink: 0;\n }\n\n ${(props) => props.theme.breakpoint.LtMd} {\n min-width: 0;\n }\n`;\n\nexport const TabButtonMainText = styled.div.withConfig({ componentId: 'sc-7df4te-4' })`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\ninterface TabButtonIconProps {\n $isActive?: boolean;\n}\n\nexport const TabButtonIcon = styled.div.withConfig({ componentId: 'sc-7df4te-5' })`\n font-size: 1.25em;\n margin: -0.625em 0;\n\n ${(props) => props.theme.breakpoint.Md} {\n display: none;\n }\n\n ${({ $isActive }) =>\n $isActive &&\n css`\n transform: rotate(180deg);\n `}\n`;\n\ninterface TabPanelProps {\n $isActive?: boolean;\n $firstInactive?: boolean;\n $mobileOrder?: number;\n}\n\nexport const TabPanel = styled.div.attrs(() => ({\n role: 'tabpanel',\n})).withConfig({ componentId: 'sc-7df4te-6' })`\n --_padding: ${size(3)};\n\n display: none;\n padding: var(--_padding);\n background-color: var(--_bg);\n border-top-right-radius: var(--_br);\n border-bottom-left-radius: var(--_br);\n border-bottom-right-radius: var(--_br);\n\n ${(props) => props.theme.breakpoint.LtMd} {\n --_padding: ${size(2)};\n\n padding-top: 0;\n\n ${({ $mobileOrder }) =>\n $mobileOrder &&\n css`\n order: ${$mobileOrder};\n `}\n }\n\n ${({ $isActive }) =>\n $isActive &&\n css`\n display: flex;\n flex-direction: column;\n gap: ${size(2)};\n `}\n\n ${({ $firstInactive }) =>\n $firstInactive &&\n css`\n border-top-left-radius: var(--_br);\n `}\n`;\n"], "mappings": "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", "names": ["require_useIsomorphicLayoutEffect", "__commonJSMin", "exports", "react_1", "require_useScrollPosition", "__commonJSMin", "exports", "react_1", "useIsomorphicLayoutEffect_1", "isBrowser", "zeroPosition", "getClientRect", "element", "getScrollPosition", "useWindow", "boundingElement", "targetPosition", "containerPosition", "effect", "deps", "wait", "position", "throttleTimeout", "callBack", "currPos", "_a", "handleScroll", "require_lib", "__commonJSMin", "exports", "useScrollPosition_1", "require_initial_state", "__commonJSMin", "exports", "initialState", "_default", "require_lodash", "__commonJSMin", "exports", "module", "FUNC_ERROR_TEXT", "NAN", "symbolTag", "reTrim", "reIsBadHex", "reIsBinary", "reIsOctal", "freeParseInt", "freeGlobal", "freeSelf", "root", "objectProto", "objectToString", "nativeMax", "nativeMin", "now", "debounce", "func", "wait", "options", "lastArgs", "lastThis", "maxWait", "result", "timerId", "lastCallTime", "lastInvokeTime", "leading", "maxing", "trailing", "toNumber", "isObject", "invokeFunc", "time", "args", "thisArg", "leadingEdge", "timerExpired", "remainingWait", "timeSinceLastCall", "timeSinceLastInvoke", "shouldInvoke", "trailingEdge", "cancel", "flush", "debounced", "isInvoking", "value", "type", "isObjectLike", "isSymbol", "other", "isBinary", "require_default_props", "__commonJSMin", "exports", "_react", "_interopRequireDefault", "obj", "defaultProps", "dots", "i", "_default", "require_innerSliderUtils", "__commonJSMin", "exports", "clamp", "filterSettings", "_react", "_interopRequireDefault", "_defaultProps", "obj", "_typeof", "o", "ownKeys", "r", "t", "_objectSpread", "_defineProperty", "key", "value", "_toPropertyKey", "i", "_toPrimitive", "e", "number", "lowerBound", "upperBound", "safePreventDefault", "event", "passiveEvents", "getOnDemandLazySlides", "spec", "onDemandSlides", "startIndex", "lazyStartIndex", "endIndex", "lazyEndIndex", "slideIndex", "getRequiredLazySlides", "requiredSlides", "lazySlidesOnLeft", "lazySlidesOnRight", "getWidth", "elem", "getHeight", "getSwipeDirection", "touchObject", "verticalSwiping", "xDist", "yDist", "swipeAngle", "canGoNext", "canGo", "extractObject", "keys", "newObject", "initializedState", "slideCount", "listNode", "listWidth", "trackNode", "trackWidth", "slideWidth", "centerPaddingAdj", "slideHeight", "listHeight", "currentSlide", "lazyLoadedList", "slidesToLoad", "state", "slideHandler", "waitForAnimate", "animating", "fade", "infinite", "index", "lazyLoad", "centerMode", "slidesToScroll", "slidesToShow", "useCSS", "animationSlide", "finalSlide", "animationLeft", "finalLeft", "nextState", "targetSlide", "getTrackLeft", "getTrackAnimateCSS", "getTrackCSS", "changeSlide", "options", "indexOffset", "previousInt", "slideOffset", "unevenOffset", "previousTargetSlide", "direction", "siblingDirection", "keyHandler", "accessibility", "rtl", "swipeStart", "swipe", "draggable", "swipeMove", "scrolling", "vertical", "swipeToSlide", "edgeFriction", "edgeDragged", "onEdge", "swiped", "swiping", "swipeEvent", "swipeLeft", "curLeft", "verticalSwipeLength", "positionOffset", "dotCount", "swipeDirection", "touchSwipeLength", "swipeEnd", "dragging", "touchThreshold", "onSwipe", "minSwipe", "newSlide", "activeSlide", "getSlideCount", "checkNavigable", "currentLeft", "getNavigableIndexes", "max", "breakpoint", "counter", "indexes", "navigables", "prevNavigable", "n", "centerOffset", "swipedSlide", "slickList", "slides", "slide", "currentIndex", "slidesTraversed", "checkSpecKeys", "keysArray", "trackHeight", "trackChildren", "getTotalSlides", "style", "WebkitTransform", "transform", "msTransform", "trackRef", "variableWidth", "targetLeft", "verticalOffset", "slidesToOffset", "getPreClones", "targetSlideIndex", "trackElem", "getPostClones", "slidesOnRight", "slidesOnLeft", "_ref", "centerPadding", "right", "_ref2", "left", "canUseDOM", "validSettings", "settings", "acc", "settingName", "require_track", "__commonJSMin", "exports", "_react", "_interopRequireDefault", "_classnames", "_innerSliderUtils", "obj", "_typeof", "o", "_extends", "target", "i", "source", "key", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "descriptor", "_toPropertyKey", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "t", "ownKeys", "r", "_objectSpread", "_defineProperty", "value", "_toPrimitive", "e", "getSlideClasses", "spec", "slickActive", "slickCenter", "slickCloned", "centerOffset", "index", "focusedSlide", "slickCurrent", "getSlideStyle", "style", "getKey", "child", "fallbackKey", "renderSlides", "slides", "preCloneSlides", "postCloneSlides", "childrenCount", "startIndex", "endIndex", "elem", "childOnClickOptions", "childStyle", "slideClass", "slideClasses", "preCloneNo", "Track", "_React$PureComponent", "_super", "_this", "_len", "args", "_key", "ref", "_this$props", "onMouseEnter", "onMouseOver", "onMouseLeave", "mouseEvents", "require_dots", "__commonJSMin", "exports", "_typeof", "o", "_react", "_interopRequireDefault", "_classnames", "_innerSliderUtils", "obj", "ownKeys", "r", "t", "_objectSpread", "_defineProperty", "key", "value", "_toPropertyKey", "_classCallCheck", "instance", "Constructor", "_defineProperties", "target", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_toPrimitive", "e", "_inherits", "subClass", "superClass", "_setPrototypeOf", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "getDotCount", "spec", "dots", "Dots", "_React$PureComponent", "_super", "options", "_this$props", "onMouseEnter", "onMouseOver", "onMouseLeave", "infinite", "slidesToScroll", "slidesToShow", "slideCount", "currentSlide", "dotCount", "mouseEvents", "_rightBound", "rightBound", "_leftBound", "leftBound", "className", "dotOptions", "onClick", "require_arrows", "__commonJSMin", "exports", "_typeof", "o", "_react", "_interopRequireDefault", "_classnames", "_innerSliderUtils", "obj", "_extends", "target", "i", "source", "key", "ownKeys", "r", "t", "_objectSpread", "_defineProperty", "value", "_toPropertyKey", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "descriptor", "_createClass", "protoProps", "staticProps", "_toPrimitive", "e", "_inherits", "subClass", "superClass", "_setPrototypeOf", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "PrevArrow", "_React$PureComponent", "_super", "options", "prevClasses", "prevHandler", "prevArrowProps", "customProps", "prevArrow", "NextArrow", "_React$PureComponent2", "_super2", "nextClasses", "nextHandler", "nextArrowProps", "nextArrow", "require_ResizeObserver", "__commonJSMin", "exports", "module", "global", "factory", "MapShim", "getIndex", "arr", "key", "result", "entry", "index", "class_1", "value", "entries", "callback", "ctx", "_i", "_a", "isBrowser", "global$1", "requestAnimationFrame$1", "trailingTimeout", "throttle", "delay", "leadingCall", "trailingCall", "lastCallTime", "resolvePending", "proxy", "timeoutCallback", "timeStamp", "REFRESH_DELAY", "transitionKeys", "mutationObserverSupported", "ResizeObserverController", "observer", "observers", "changesDetected", "activeObservers", "_b", "propertyName", "isReflowProperty", "defineConfigurable", "target", "props", "getWindowOf", "ownerGlobal", "emptyRect", "createRectInit", "toFloat", "getBordersSize", "styles", "positions", "size", "position", "getPaddings", "paddings", "positions_1", "getSVGContentRect", "bbox", "getHTMLElementContentRect", "clientWidth", "clientHeight", "horizPad", "vertPad", "width", "height", "isDocumentElement", "vertScrollbar", "horizScrollbar", "isSVGGraphicsElement", "getContentRect", "createReadOnlyRect", "x", "y", "Constr", "rect", "ResizeObservation", "ResizeObserverEntry", "rectInit", "contentRect", "ResizeObserverSPI", "controller", "callbackCtx", "observations", "_this", "observation", "ResizeObserver", "method", "require_inner_slider", "__commonJSMin", "exports", "_react", "_interopRequireDefault", "_initialState", "_lodash", "_classnames", "_innerSliderUtils", "_track", "_dots", "_arrows", "_resizeObserverPolyfill", "obj", "_typeof", "o", "_extends", "target", "i", "source", "key", "_objectWithoutProperties", "excluded", "_objectWithoutPropertiesLoose", "sourceSymbolKeys", "sourceKeys", "ownKeys", "r", "t", "_objectSpread", "_defineProperty", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "descriptor", "_toPropertyKey", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "value", "_toPrimitive", "e", "InnerSlider", "_React$Component", "_super", "_this", "ref", "elem", "slidesToLoad", "prevState", "spec", "slide", "timer", "prevProps", "setTrackStyle", "isTrackMounted", "callback", "updatedState", "targetLeft", "trackStyle", "_trackWidth", "_trackLeft", "childrenWidths", "preClones", "postClones", "child", "_i", "_i2", "_trackStyle", "currentWidth", "childrenCount", "slideCount", "trackWidth", "slideWidth", "trackLeft", "images", "imagesCount", "loadedCount", "image", "handler", "prevClickHandler", "index", "_index", "state", "dontAnimate", "_this$props", "asNavFor", "beforeChange", "onLazyLoad", "speed", "afterChange", "currentSlide", "_slideHandler", "nextState", "animating", "firstBatch", "options", "targetSlide", "nodes", "dir", "preventDefault", "triggerSlideHandler", "nextIndex", "playType", "autoplaying", "pauseType", "className", "trackProps", "pauseOnHover", "dots", "dotProps", "pauseOnDotsHover", "prevArrow", "nextArrow", "arrowProps", "verticalHeightStyle", "centerPaddingStyle", "listStyle", "touchMove", "listProps", "innerSliderProps", "ssrState", "_i3", "_Object$keys", "require_camel2hyphen", "__commonJSMin", "exports", "module", "camel2hyphen", "str", "match", "require_json2mq", "__commonJSMin", "exports", "module", "camel2hyphen", "isDimension", "feature", "re", "obj2mq", "obj", "mq", "features", "index", "value", "json2mq", "query", "q", "require_QueryHandler", "__commonJSMin", "exports", "module", "QueryHandler", "options", "target", "require_Util", "__commonJSMin", "exports", "module", "each", "collection", "fn", "i", "length", "cont", "isArray", "target", "isFunction", "require_MediaQuery", "__commonJSMin", "exports", "module", "QueryHandler", "each", "MediaQuery", "query", "isUnconditional", "self", "mql", "handler", "qh", "handlers", "h", "action", "require_MediaQueryDispatch", "__commonJSMin", "exports", "module", "MediaQuery", "Util", "each", "isFunction", "isArray", "MediaQueryDispatch", "q", "options", "shouldDegrade", "queries", "isUnconditional", "handler", "query", "require_src", "__commonJSMin", "exports", "module", "MediaQueryDispatch", "require_slider", "__commonJSMin", "exports", "_react", "_interopRequireDefault", "_innerSlider", "_json2mq", "_defaultProps", "_innerSliderUtils", "obj", "_typeof", "o", "_extends", "target", "i", "source", "key", "ownKeys", "r", "t", "_objectSpread", "_defineProperty", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "descriptor", "_toPropertyKey", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "value", "_toPrimitive", "e", "enquire", "Slider", "_React$Component", "_super", "_this", "ref", "slide", "dontAnimate", "query", "handler", "_this2", "breakpoints", "breakpt", "x", "y", "breakpoint", "index", "bQuery", "_this3", "settings", "newProps", "resp", "children", "child", "newChildren", "currentWidth", "newSlide", "j", "row", "k", "className", "require_lib", "__commonJSMin", "exports", "_slider", "_interopRequireDefault", "obj", "_default", "import_use_scroll_position", "import_react", "import_react", "SelectedArticle", "modelSeries", "category", "getMarket", "articleResponse", "_", "setSearchParams", "useArticles_default", "firstArticle", "React", "ArticleCard_default", "cat", "getArticleUrl", "readTime", "selected_article_default", "import_react", "_imboxInit", "useImboxWithRetailer", "id", "imbox_default", "import_react", "import_react", "MostSimilarItems", "items", "similarLink", "t", "useTranslation", "React", "PageSection", "Container", "VStack", "Columns", "Column", "H3", "Link", "overflow_grid_default", "item", "index", "product_card_v2_default", "most_similar_default", "import_react", "ItemCollection", "collection", "useTranslation", "visibleKey", "setVisibleKey", "overflowGridRef", "React", "PageSection", "Container", "VStack", "Columns", "Column", "H3", "Link", "overflow_grid_default", "nextOffset", "document", "index", "product_card_v2_default", "related_collection_default", "RelatedItems", "mostSimilarItems", "similarLink", "itemCollections", "React", "most_similar_default", "collection", "index", "related_collection_default", "MissingItem", "id", "useTranslation", "dispatch", "useDispatch", "missingItemId", "useSelector", "s", "isFetching", "actions", "bindActionCreators", "getMissingItem", "createPageTitle", "hasRelatedItems", "Page", "PageSection", "Container", "MaxWidth", "TEXT_CONTENT_MAX_WIDTH", "VStack", "H1", "Text", "Trans", "RouterLink", "Loader_default", "missing_item_default", "import_react", "import_react", "import_react_slick", "Slider", "Sliderr", "PrevArrow", "className", "onClick", "t", "useTranslation", "React", "NextArrow", "OverflowSwipe", "children", "visibleItems", "visibleItemsMobile", "modifiers", "sliderRef", "dotsRef", "slideCount", "setSlideCount", "onSetSlideCount", "count", "onReInit", "dots", "overflow_swipe_default", "import_react", "import_react", "import_react", "useObserver", "callback", "root", "rootMargin", "threshold", "externalState", "target", "observer", "node", "useObserver_default", "useInView", "root", "rootMargin", "threshold", "unobserveOnEnter", "target", "onEnter", "onLeave", "defaultInView", "externalState", "state", "setState", "callback", "entry", "observer", "inView", "t", "setTarget", "useObserver_default", "useInView_default", "import_react", "Wrapper", "dt", "Header", "size", "HeaderImageWrapper", "HeaderImage", "BodyHeader", "BodyHeaderContent", "LogoWrapper", "Heading", "props", "SubHeading", "Body", "Footer", "AccessoryCard", "React", "image", "heading", "price", "salePrice", "preamble", "logo", "readMoreBtn", "ref", "Wrapper", "Header", "HeaderImageWrapper", "HeaderImage", "BodyHeader", "BodyHeaderContent", "Heading", "SubHeading", "Text", "LogoWrapper", "Image", "Body", "Footer", "LinkButton", "AccessoryCard_default", "fallbackImage", "AccessoryItem", "accessory", "onClick", "t", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "track", "bindActionCreators", "spreadable", "_onClick", "mapVehicleData", "trackLock", "ref", "isVisible", "useInView_default", "React", "AccessoryCard_default", "cdn", "prettify", "accessory_default", "import_react", "import_react", "Wrapper", "dt", "ListWrapper", "List", "$scrollSnap", "lt", "Item", "Image", "NavBtn", "PrevBtn", "size", "NextBtn", "Carousel", "items", "itemKeyBase", "onChangeImage", "t", "useTranslation", "scrollSnap", "setScrollSnap", "overflowElement", "onPrev", "itemWidth", "scrollLeft", "onNext", "scrollWidth", "overflowElementWidth", "React", "Wrapper", "ListWrapper", "List", "item", "i", "Item", "Image", "PrevBtn", "ActionButton", "IconChevronLeft", "NextBtn", "IconChevronRight", "Carousel_default", "AccessoryModal", "accessory", "onClose", "t", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "track", "bindActionCreators", "onTrack", "parameter", "mapVehicleData", "onClickReadMore", "onChangeImage", "React", "Modal_default", "StackMedium", "Carousel_default", "x", "i", "Image", "Columns", "Column", "cdn", "Box", "StackSmall", "Text", "prettify", "Content_default", "asHtml", "Grid", "GridItem", "Link", "accessory_modal_default", "Accessories", "accessories", "useTranslation", "modal", "setModal", "onOpenAccessoryModal", "accessory", "onCloseAccessoryModal", "React", "accessory_modal_default", "StackMedium", "H3", "Content_default", "overflow_swipe_default", "accessory_default", "accessories_default", "import_react", "import_react", "import_react", "ExtendableGroupAuto", "label", "children", "childRef", "onToggle", "userInteracted", "setUserInteracted", "extended", "setExtended", "expandableMaxHeight", "React", "extendable_group_default", "extendable_group_auto_default", "import_react", "BranchAddress", "dispatch", "useDispatch", "address", "useSelector", "getRetailerAddress", "item", "getItem", "track", "bindActionCreators", "trackSoftConversionEvent", "t", "useTranslation", "React", "softConversionEvents", "branch_address_default", "import_react", "BranchOpeningHours", "t", "useTranslation", "openingHours", "useSelector", "getRetailerOpeningHours", "isOpen", "setIsOpen", "dayNames", "translatedDayNames", "dateIndex", "todayNameKey", "today", "left", "right", "title", "time", "React", "mappedOpeningHours", "x", "_current", "current", "lastStored", "splittedDate", "branch_opening_hours_default", "import_react", "BranchTelephone", "dispatch", "useDispatch", "telephoneNumber", "useSelector", "getRetailerTelephone", "item", "getItem", "phoneParams", "getItemRetailerPhoneParams", "usingPhoneNumberGeneration", "isRetailerUsingFreespee", "track", "bindActionCreators", "visiblePhoneNumber", "setVisiblePhoneNumber", "showTelephone", "setShowTelephone", "t", "useTranslation", "phonenumber", "parsers_exports", "phonenumberE164", "phonenumberInternational", "displayPhonenumber", "phonenumbers_exports", "generated", "parsed", "eventTypes", "conversionEvents", "e164", "national", "React", "branch_telephone_default", "BranchAbout", "t", "useTranslation", "dispatch", "useDispatch", "data", "useSelector", "getRetailerAbout", "retailer", "getRetailerDocument", "item", "getItem", "track", "bindActionCreators", "trackSoftConversionEvent", "contentRef", "trackingToggle", "setTrackingToggle", "name", "city", "logo", "description", "link", "onTrackToggle", "softConversionEvents", "React", "StackMedium", "H3", "Stack", "extendable_group_auto_default", "asHtml", "link_default", "branch_address_default", "branch_opening_hours_default", "branch_telephone_default", "branch_about_default", "import_react", "getLocalFile", "file", "BranchMap", "t", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "name", "getRetailerName", "location", "s", "getRetailerLocaiton", "track", "bindActionCreators", "trackSoftConversionEvent", "showMap", "setShowMap", "lat", "lng", "React", "settings_exports", "displayMap", "softConversionEvents", "urls_exports", "branch_map_default", "Branch", "React", "branch_about_default", "branch_map_default", "branch_default", "import_react", "import_react", "import_react", "getChatConfig", "pipeMessage", "currentState", "ContactMessage", "isLight", "useSelector", "getPipeMessage", "t", "useTranslation", "state", "setState", "visible", "callback", "React", "events_exports", "contact_chat_default", "import_react", "stored", "getIntialState", "id", "click_to_view_states_default", "EmailButton", "isLight", "isMedium", "label", "t", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "getItemId", "contactOptions", "getItemRetailerContactOptions", "actions", "bindActionCreators", "trackConversionEvent", "track", "state", "setState", "email", "onClick", "e", "conversionEvents", "eventTypes", "mapVehicleData", "currentState", "subject", "React", "link_button_default", "email_button_default", "import_react", "MessageButton", "label", "onClick", "isLight", "isMedium", "buttonStyleAttributes", "React", "message_button_default", "import_react", "stored", "getIntialState", "id", "click_to_view_states_default", "PhonenumberButton", "label", "isMedium", "isLight", "trackingContext", "t", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "getItemId", "contactOptions", "getItemRetailerContactOptions", "getParams", "getItemRetailerPhoneParams", "isGenerationActive", "isRetailerUsingFreespee", "actions", "bindActionCreators", "track", "state", "setState", "trackVisible", "eventTypes", "mapVehicleData", "conversionEvents", "onClick", "e", "phonenumbers_exports", "generated", "phonenumber", "parsers_exports", "e164", "national", "React", "link_button_default", "spinner_inline_default", "phonenumber_button_default", "Contact", "t", "useTranslation", "dispatch", "useDispatch", "data", "useSelector", "getItemContact", "item", "getItem", "auctionUrl", "getItemAuctionUrl", "retailerId", "getRetailerId", "actions", "bindActionCreators", "trackConversionEvent", "showMessageModal", "onAuctionClick", "conversionEvents", "React", "message_button_default", "phonenumber_button_default", "email_button_default", "contact_chat_default", "contact_default", "import_react", "import_react", "InsuranceHeader", "t", "useTranslation", "dispatch", "useDispatch", "requestStatus", "useSelector", "s", "responseStatus", "insurances", "getInsuranceList", "personalNumber", "drivingRange", "item", "getItem", "branchId", "getRetailerId", "provider", "actions", "bindActionCreators", "inquiry", "successful", "useDataExchangeStatus", "price", "name", "unit", "a", "b", "React", "Columns", "Column", "Text", "prices_exports", "insurance_header_default", "Img", "dt", "ImgFullWidth", "Insurance", "onClick", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "retailerId", "getRetailerId", "provider", "s", "actions", "bindActionCreators", "clear", "getInsuranceProvider", "marketCode", "getMarket", "logo", "setLogo", "React", "StackTiny", "Text", "Box", "Stack", "StackSmall", "insurance_header_default", "Content_default", "asHtml", "LinkButton", "Align", "Img", "insurance_default", "import_react", "import_react", "PriceListRow", "title", "value", "shouldIndicateReducedPrice", "isReducedPrice", "React", "price_row_default", "Price", "inventoryStatus", "useTranslation", "data", "useSelector", "getItemPrice", "price", "oldPrice", "deductibleVat", "shouldDisplayOldPrice", "React", "price_row_default", "prettify", "price_default", "import_react", "Seller", "t", "useTranslation", "retailer", "useSelector", "getRetailerDocument", "name", "logo", "position", "slug", "city", "link", "resolveRouteRetailer", "React", "RouterLink", "seller_default", "PAYMENTS_QUERY", "usePayments", "id", "branchId", "httpJson", "useHttp_default", "data", "isPending", "isSuccess", "isError", "useQuery", "settings_exports", "buildGetRequest", "usePayments_default", "import_react", "BusinessLeasing", "t", "useTranslation", "data", "useSelector", "getItemPrice", "promo", "getBusinessLeasingPromo", "modal", "setModal", "businessLeasingPrice", "onOpenModal", "onCloseModal", "checkListItems", "React", "StackSmall", "Modal_default", "StackLarge", "ImgFullWidth", "Text", "Content_default", "asHtml", "Link", "Checklist_default", "LayoutGrid", "LayoutGridItem", "StackTiny", "Box", "Columns", "Column", "LinkButton", "BusinessLeasing_default", "import_react", "PrivateLeasing", "t", "useTranslation", "data", "useSelector", "getItemPrice", "promo", "getPrivateLeasingPromo", "modal", "setModal", "leasingPrice", "leasingDeposit", "onOpenModal", "onCloseModal", "checkListItems", "React", "StackSmall", "Modal_default", "StackLarge", "ImgFullWidth", "Text", "Content_default", "asHtml", "Link", "Checklist_default", "LayoutGrid", "LayoutGridItem", "StackTiny", "prettify", "Box", "price_row_default", "LinkButton", "PrivateLeasing_default", "import_react", "CentralStorage", "onClick", "useTranslation", "retailer", "useSelector", "getRetailerDocument", "centralStorageBranches", "getItemCentralStorageBranchesLocationSorted", "React", "central_storage_default", "import_react", "selectBrandings", "state", "selectFilteredBrandings", "createSelector", "brandings", "x", "PaymentOptions", "options", "useTranslation", "dispatch", "useDispatch", "useSelector", "item", "getItem", "track", "bindActionCreators", "trackSoftConversionEvent", "available", "option", "b", "React", "logo", "name", "description", "website", "logotype", "Stack", "softConversionEvents", "Align", "payment_options_default", "import_react", "import_react", "Wrapper", "dt", "size", "Icon", "Body", "Heading", "CreditorDisclaimer", "React", "Wrapper", "Icon", "Body", "Heading", "Link", "Price", "dt", "import_react", "useCalculatePayment", "httpJson", "useHttp_default", "mutation", "useMutation", "payload", "settings_exports", "buildPostRequest", "mutate", "isPending", "isSuccess", "isError", "data", "useCalculatePayment_default", "import_react", "isCheckBoxInput", "element", "isDateObject", "value", "isNullOrUndefined", "isObjectType", "isObject", "getEventValue", "event", "getNodeParentName", "name", "isNameInFieldArray", "names", "isPlainObject", "tempObject", "prototypeCopy", "isWeb", "cloneObject", "data", "copy", "isArray", "isFileListInstance", "key", "compact", "isUndefined", "val", "get", "object", "path", "defaultValue", "result", "isBoolean", "isKey", "stringToPath", "input", "set", "index", "tempPath", "length", "lastIndex", "newValue", "objValue", "EVENTS", "VALIDATION_MODE", "INPUT_VALIDATION_RULES", "HookFormContext", "React", "getProxyFormState", "formState", "control", "localProxyFormState", "isRoot", "result", "key", "_key", "VALIDATION_MODE", "isEmptyObject", "value", "isObject", "shouldRenderFormState", "formStateData", "_proxyFormState", "updateFormState", "name", "convertToArrayPayload", "useSubscribe", "props", "_props", "React", "subscription", "isString", "value", "generateWatchOutput", "names", "_names", "formValues", "isGlobal", "defaultValue", "get", "fieldName", "appendErrors", "name", "validateAllFieldCriteria", "errors", "type", "message", "getValidationModes", "mode", "VALIDATION_MODE", "isWatched", "name", "_names", "isBlurEvent", "watchName", "iterateFieldsByAction", "fields", "action", "fieldsNames", "abortEarly", "key", "field", "get", "_f", "currentField", "isObject", "updateFieldArrayRootError", "errors", "error", "fieldArrayErrors", "convertToArrayPayload", "set", "isFileInput", "element", "isFunction", "value", "isHTMLElement", "isWeb", "owner", "isMessage", "isString", "isRadioInput", "isRegex", "defaultResult", "validResult", "getCheckboxValue", "options", "values", "option", "isUndefined", "defaultReturn", "getRadioValue", "previous", "getValidateError", "result", "ref", "type", "isBoolean", "getValueAndMessage", "validationData", "validateField", "disabledFieldNames", "formValues", "validateAllFieldCriteria", "shouldUseNativeValidation", "isFieldArray", "refs", "required", "maxLength", "minLength", "min", "max", "pattern", "validate", "valueAsNumber", "mount", "inputValue", "inputRef", "setCustomValidity", "message", "isRadio", "isCheckBox", "isCheckBoxInput", "isRadioOrCheckbox", "isEmpty", "appendErrorsCurry", "appendErrors", "getMinMaxMessage", "exceedMax", "maxLengthMessage", "minLengthMessage", "maxType", "INPUT_VALIDATION_RULES", "minType", "isNullOrUndefined", "exceedMin", "maxOutput", "minOutput", "valueNumber", "valueDate", "convertTimeToDate", "time", "isTime", "isWeek", "maxLengthOutput", "minLengthOutput", "patternValue", "validateError", "validationResult", "isEmptyObject", "baseGet", "object", "updatePath", "length", "index", "isUndefined", "isEmptyArray", "obj", "key", "unset", "path", "paths", "isKey", "stringToPath", "childObject", "isObject", "isEmptyObject", "createSubject", "_observers", "value", "observer", "isPrimitive", "isNullOrUndefined", "isObjectType", "deepEqual", "object1", "object2", "isDateObject", "keys1", "keys2", "key", "val1", "val2", "isObject", "isMultipleSelect", "element", "isRadioOrCheckbox", "ref", "isRadioInput", "isCheckBoxInput", "live", "isHTMLElement", "objectHasFunction", "data", "isFunction", "markFieldsDirty", "fields", "isParentNodeArray", "getDirtyFieldsFromDefaultValues", "formValues", "dirtyFieldsFromValues", "isUndefined", "getDirtyFields", "defaultValues", "getFieldValueAs", "valueAsNumber", "valueAsDate", "setValueAs", "isString", "getFieldValue", "_f", "isFileInput", "getRadioValue", "isCheckBox", "getCheckboxValue", "getResolverOptions", "fieldsNames", "_fields", "criteriaMode", "shouldUseNativeValidation", "name", "field", "get", "set", "getRuleValue", "rule", "isRegex", "ASYNC_FUNCTION", "hasPromiseValidation", "fieldReference", "validateFunction", "hasValidation", "options", "schemaErrorLookup", "errors", "error", "isKey", "names", "fieldName", "foundError", "skipValidation", "isBlurEvent", "isTouched", "isSubmitted", "reValidateMode", "mode", "unsetEmptyArray", "compact", "unset", "defaultOptions", "VALIDATION_MODE", "createFormControl", "props", "_options", "_formState", "_defaultValues", "cloneObject", "_formValues", "_state", "_names", "delayErrorCallback", "timer", "_proxyFormState", "_subjects", "validationModeBeforeSubmit", "getValidationModes", "validationModeAfterSubmit", "shouldDisplayAllAssociatedErrors", "debounce", "callback", "wait", "_updateValid", "shouldUpdateValid", "isValid", "isEmptyObject", "_executeSchema", "executeBuiltInValidation", "_updateIsValidating", "isValidating", "_updateFieldArray", "values", "method", "args", "shouldSetValues", "shouldUpdateFieldsAndState", "fieldValues", "touchedFields", "_getDirty", "updateErrors", "_setErrors", "updateValidAndValue", "shouldSkipSetValueAs", "defaultValue", "setFieldValue", "updateTouchAndDirty", "fieldValue", "shouldDirty", "shouldRender", "shouldUpdateField", "isPreviousDirty", "output", "disabledField", "isCurrentFieldPristine", "isPreviousFieldTouched", "shouldRenderByError", "fieldState", "previousFieldError", "isBoolean", "updatedFormState", "result", "executeSchemaAndUpdateState", "shouldOnlyCheckValid", "context", "isFieldArrayRoot", "isPromiseFunction", "fieldError", "validateField", "updateFieldArrayRootError", "_removeUnmounted", "unregister", "getValues", "_getWatch", "isGlobal", "generateWatchOutput", "_getFieldArray", "optionRef", "checkboxRef", "radioRef", "trigger", "setValues", "fieldKey", "setValue", "isFieldArray", "cloneValue", "isWatched", "onChange", "event", "target", "isFieldValueUpdated", "getCurrentFieldValue", "getEventValue", "_updateIsFieldValueUpdated", "EVENTS", "shouldSkipValidation", "watched", "previousErrorLookupResult", "errorLookupResult", "_focusInput", "validationResult", "fieldNames", "convertToArrayPayload", "iterateFieldsByAction", "getFieldState", "formState", "clearErrors", "inputName", "setError", "currentError", "currentRef", "message", "type", "restOfErrorTree", "watch", "payload", "_updateDisabledField", "disabled", "register", "disabledIsDefined", "fieldRef", "radioOrCheckbox", "refs", "option", "isNameInFieldArray", "_focusError", "_disableForm", "currentField", "inputRef", "handleSubmit", "onValid", "onInvalid", "e", "onValidError", "resetField", "_reset", "keepStateOptions", "updatedValues", "cloneUpdatedValues", "isEmptyResetValues", "fieldsToCheck", "isWeb", "form", "reset", "useForm", "_formControl", "React", "_values", "updateFormState", "control", "useSubscribe", "shouldRenderFormState", "isDirty", "state", "getProxyFormState", "useCreditApplicationRedirectUrl", "httpJson", "useHttp_default", "mutation", "useMutation", "payload", "settings_exports", "buildPostRequest", "mutate", "isPending", "isSuccess", "isError", "data", "useCreditApplicationRedirectUrl_default", "import_react", "InputCheckbox", "id", "props", "React", "InputCheckbox_default", "import_react", "InputSelect", "id", "props", "React", "InputSelect_default", "import_react", "InputText", "id", "props", "React", "InputText_default", "persistedSelector", "createSelector", "state", "persisted", "usePersistCreditApplicationState", "useSelector", "dispatch", "useDispatch", "persistData", "bindActionCreators", "save", "usePersistCreditApplicationState_default", "useTrackCreditApplication", "options", "dispatch", "useDispatch", "track", "bindActionCreators", "trackCreditApplicationEvent", "item", "useSelector", "getSearchDocument", "getTrackEventPayload", "creditApplicationEvents", "useTrackCreditApplication_default", "defaultState", "options", "Options", "ns", "createOptions", "marketCode", "instance", "option", "transformEstimatedMileage", "estimated", "validateTelephonenumber", "s", "phonenumbers_exports", "FormStateToPayload", "_data", "cpy", "telephone", "FormStateToPersisted", "ns", "CreditApplication", "id", "financialInstitution", "downPayment", "duration", "residual", "marketCode", "getMarket", "t", "useTranslation", "persisted", "persistData", "usePersistCreditApplicationState_default", "track", "useTrackCreditApplication_default", "createRedirectUrl", "requestCreateRedirectUrl", "redirectUrl", "useCreditApplicationRedirectUrl_default", "loading", "el", "errors", "register", "handleSubmit", "useForm", "defaultState", "onSubmit", "data", "persistedPayload", "FormStateToPersisted", "payload", "FormStateToPayload", "options", "createOptions", "React", "StackMedium", "Text", "Form", "FormGroup", "InputLabel_default", "InputText_default", "InputError_default", "InputSelect_default", "s", "validateTelephonenumber", "InputCheckbox_default", "Button", "Loader_default", "Alert_default", "credit_application_default", "import_react", "Details", "id", "downPayment", "duration", "residual", "interest", "effectiveInterest", "setupFee", "registrationFee", "administrationFee", "totalCreditCost", "monthlyCost", "financialInstitutionCtaUrl", "financialInstitutionCtaName", "financialInstitution", "isPending", "vehiclePrice", "t", "useTranslation", "invalidCombination", "formattedInterest", "getPercentageFromFraction", "formattedEffectiveInterest", "residualFormatted", "formattedDownPaymentPercentage", "percentage", "React", "numberSeparator", "spinner_inline_default", "details_default", "import_react", "InputSlider", "title", "min", "max", "step", "defaultValue", "current", "unit", "isPending", "rangeLabel", "onChange", "t", "useTranslation", "localValue", "setLocalValue", "timeoutRef", "localValueRef", "React", "onChangeSlider", "_value", "value", "onChangeSliderComplete", "onInputChange", "e", "onBlur", "isValidInput", "es_default", "Alert_default", "input_slider_default", "import_react", "getOptions", "min", "max", "stepSize", "numberOfSteps", "options", "i", "SelectSlider", "title", "step", "defaultValue", "current", "isPending", "rangeLabel", "onChange", "t", "useTranslation", "localValue", "setLocalValue", "localRefValue", "React", "onChangeInput", "e", "value", "onChangeSlider", "_value", "handleAfterChange", "option", "es_default", "select_slider_default", "PaymentModal", "id", "branchId", "item", "payment", "showCreditorDisclaimer", "onClose", "t", "useTranslation", "calculatePayment", "request", "calculatedPayment", "useCalculatePayment_default", "previousCalculatedPayment", "usePrevious_default", "isPending", "creditApplicationView", "setCreditApplicationView", "dispatch", "useDispatch", "trackSoftConversionEvent", "bindActionCreators", "activePayment", "downPayment", "duration", "residual", "onOpenCreditApplicationView", "onCloseCreditApplicationView", "updateFinancialInformationIfNeeded", "durationValue", "residualValue", "downPaymentValue", "softConversionEvents", "onCashChange", "value", "onDurationChange", "onResidualValueChange", "React", "Modal_default", "credit_application_default", "StackLarge", "Text", "asHtml", "input_slider_default", "select_slider_default", "StackSmall", "details_default", "Box", "CreditorDisclaimer", "Alert_default", "payment_modal_default", "Payments", "id", "item", "branchId", "payments", "t", "useTranslation", "paymentModal", "setPaymentModal", "marketCode", "getMarket", "onOpenPaymentModal", "payment", "onClosePaymentModal", "imageUrl", "financialInstitution", "showCreditorDisclaimer", "React", "payment_modal_default", "StackSmall", "Box", "index", "Stack", "Columns", "Column", "Text", "Price", "numberSeparator", "getPercentageFromFraction", "LinkButton", "Align", "Img", "CreditorDisclaimer", "payments_default", "EcomButton", "FinancialModal", "InsuranceModal", "CentralStorageModal", "ConvertCardBanner", "logo", "title", "React", "Card", "id", "contactSectionRef", "t", "useTranslation", "item", "useSelector", "getItem", "isCentralStorage", "itemIsCentralStorage", "isAuctionItem", "itemIsAuctionItem", "commerce", "getItemCommerce", "marketCode", "getMarket", "payments", "usePayments_default", "modalFinancial", "setModalFinancial", "modalInsurance", "setModalInsurances", "modalCentralStorage", "setCentralStorageModal", "shouldShowEcomButton", "shouldShowEcomAsReserved", "showAssignmentWidget", "dateFormat", "dateTimeFormat", "price_default", "VStack", "render_client_side_default", "contact_default", "StackTiny", "Text", "PrivateLeasing_default", "BusinessLeasing_default", "payments_default", "insurance_default", "date_time_default", "seller_default", "payment_options_default", "central_storage_default", "Widget_default", "card_default", "import_react", "import_react", "Wrapper", "dt", "props", "Main", "Card", "size", "CardBody", "Output", "$hasDisclaimer", "lt", "OutputIcon", "OutputValue", "Disclaimer", "CardFooter", "CalculationBox", "children", "label", "output", "outputIcon", "outputFor", "disclaimer", "action", "React", "WidgetBox", "Wrapper", "Main", "Card", "CardBody", "InputLabel_default", "Output", "OutputIcon", "OutputValue", "Disclaimer", "CardFooter", "LinkButton", "CalculationBox_default", "import_react", "EV_CALCULATION_CHARGING_PER_KILOMETER", "useEvCharchingCostPerKilometer", "id", "kwhCost", "disabled", "httpJson", "useHttp_default", "queryClient", "useQueryClient", "get", "response", "buildGetRequest", "EV_CALCULATION_CHARGING_PER_KILOMETER", "data", "isPending", "isSuccess", "isError", "useQuery", "useEvCharchingCostPerKilometer_default", "import_react", "RangeSliderSimple", "value", "min", "max", "step", "onChange", "onAfterChange", "React", "es_default", "v", "RangeSliderSimple_default", "import_react", "import_react", "Wrapper", "dt", "props", "Body", "size", "Details", "Action", "DetailBox", "children", "details", "buttonTextDefault", "buttonTextExtended", "openDefault", "onClick", "t", "useTranslation", "extend", "setExtend", "onToggleExtend", "React", "Wrapper", "Body", "Details", "Action", "LinkButton", "IconChevronUp", "IconChevronDown", "DetailBox_default", "import_react", "useDebounce", "_timout", "initial", "timeout", "currentValue", "setCurrentValue", "debouncedValue", "setDebouncedValue", "_setCurrentValue", "value", "useDebounce_default", "calculateCostPerMonth", "costPerKilometer", "distance", "ChargingCostModal", "id", "costPerMonth", "defaultData", "distanceOptions", "item", "customPriceAsDefault", "onDistanceUpdate", "onDistanceChangeSelect", "onClose", "t", "useTranslation", "mounted", "setHasMounted", "dispatch", "useDispatch", "trackChargingCostParameterChange", "bindActionCreators", "trackChargingCostDetailsClick", "kwh", "kwhSearchInOre", "setKwh", "useDebounce_default", "custom", "setCustom", "customData", "request", "useEvCharchingCostPerKilometer_default", "result", "costPerMonthCustom", "debounceLoading", "onDistanceAfterChange", "nextDistance", "costPerKilometerCustom", "onChange", "e", "onRadioChange", "onMoreInformation", "open", "mileageMultiplier", "getMarket", "React", "Modal_default", "StackLarge", "Content_default", "Stack", "InputLabel_default", "StackSmall", "InputSelect_default", "d", "prettify", "RangeSliderSimple_default", "InputGroup_default", "InputRadio_default", "InputText_default", "InputHelp_default", "Alert_default", "ModalAccentSection", "DetailBox_default", "KeyValueList", "KeyValueListItem", "KeyValueListKey", "KeyValueListValue", "numberSeparator", "H4", "Skeleton", "Text", "ChargingCostModal_default", "calculateCostPerMonth", "costPerKilometer", "distance", "DistanceOptions", "ChargingCost", "id", "item", "t", "useTranslation", "dispatch", "useDispatch", "trackChargingCostParameterChange", "bindActionCreators", "trackChargingCostCustomizeClick", "setDistance", "data", "request", "useEvCharchingCostPerKilometer_default", "modal", "setModal", "onCloseModal", "initialRequestSuccessful", "setInitialRequestSuccessful", "costPerMonth", "costPerKwh", "onDistanceAfterChange", "nextDistance", "onDistanceUpdate", "value", "onDistanceChangeSelect", "e", "onOpenModal", "customPriceAsDefault", "mileageMultiplier", "getMarket", "React", "CalculationBox_default", "Skeleton", "Text", "IconLightning", "numberSeparator", "StackMedium", "H3", "Content_default", "InputLabel_default", "StackSmall", "InputSelect_default", "d", "prettify", "RangeSliderSimple_default", "Box", "Columns", "Column", "IconBackdrop", "IconBulb", "StackTiny", "LinkButton", "Alert_default", "ChargingCostModal_default", "charging_cost_default", "import_react", "DataBox", "dt", "size", "props", "DocumentList", "dt", "size", "DocumentListItem", "DataBox", "DocumentListTitle", "Link", "DocumentListFormat", "Icon", "getExtension", "document", "SingleDocument", "extension", "React", "DocumentListItem", "DocumentListTitle", "DocumentListFormat", "IconDownload", "Documents", "t", "useTranslation", "Translation", "SortOrder", "documents", "useSelector", "getItem", "categorised", "prev", "curr", "index", "x", "category", "a", "b", "manyCategories", "StackMedium", "H3", "extendable_group_default", "group", "Stack", "H5", "DocumentList", "documents_default", "import_react", "InputSearchWrapper", "dt", "size", "DataBoxList", "Equipment", "t", "useTranslation", "ref", "dispatch", "useDispatch", "item", "useSelector", "getItem", "options", "getItemOptions", "actions", "bindActionCreators", "trackSoftConversionEvent", "trackEquipmentFilterSearch", "contentRef", "search", "setSearch", "onToggle", "softConversionEvents", "filteredOptions", "option", "onSearch", "event", "React", "StackMedium", "H3", "Content_default", "InputSearch_default", "extendable_group_auto_default", "index", "DataBox", "Alert_default", "equipment_default", "import_react", "import_react", "EcomButton", "FloatingAction", "t", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "commerce", "getItemCommerce", "contactOptions", "getItemRetailerContactOptions", "auctionUrl", "getItemAuctionUrl", "retailerId", "getRetailerId", "phoneParams", "getItemRetailerPhoneParams", "usingPhoneNumberGeneration", "isRetailerUsingFreespee", "actions", "bindActionCreators", "showMessageModal", "trackConversionEvent", "showEcomModal", "trackEcomEvent", "track", "email", "setEmail", "phoneNumber", "setPhoneNumber", "handleEcomButtonClick", "EcomEvents", "shouldShowEcomButton", "objectIsReserved", "handleEmailClick", "e", "elem", "subject", "eventTypes", "mapVehicleData", "conversionEvents", "handlePhoneClick", "phonenumbers_exports", "generated", "parsed", "parsers_exports", "React", "render_client_side_default", "floating_action_default", "EcomButton", "FloatingHeader", "visible", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "commerce", "getItemCommerce", "contactOptions", "getItemRetailerContactOptions", "auctionUrl", "getItemAuctionUrl", "retailerId", "getRetailerId", "actions", "bindActionCreators", "showMessageModal", "trackConversionEvent", "shouldShowEcomButton", "objectIsReserved", "onAuctionClick", "conversionEvents", "React", "floating_action_default", "render_client_side_default", "message_button_default", "phonenumber_button_default", "email_button_default", "floating_header_default", "import_react", "import_react_slick", "import_react", "import_react", "ControlItem", "title", "icon", "count", "disabled", "onClick", "index", "React", "control_item_default", "ControlBar", "controlMenu", "onSwipeToIndex", "onFullscreen", "countImg", "countSphere", "countVideo", "image", "threesixtyAndSphere", "embedAndVideo", "React", "control_item_default", "control_bar_default", "import_react", "import_react", "getVimeoThumbnail", "vimeoId", "thumbnails", "match", "getVimeoThumbnailSafe", "getEmbededThumbnail", "createSelector", "state", "_", "ownProps", "url", "getVimeoId", "getYoutubeThumbnail", "getEmbededThumbnailSafe", "getYoutubeThumbnailSafe", "import_react", "MediaButton", "text", "className", "ariaLabel", "icon", "style", "onClick", "React", "media_button_default", "getStyle", "proportions", "getProportionUrl", "url", "EmbedPreview", "url", "imageAlt", "proportions", "onDisplayMediaInModal", "dispatch", "useDispatch", "thumbnail", "useSelector", "s", "getEmbededThumbnail", "thumbnailSafe", "getEmbededThumbnailSafe", "actions", "bindActionCreators", "getThumbnail", "timesLoadedRef", "timesFailedRef", "vimeoThumbnailAction", "id", "getVimeoId", "onImageError", "e", "cdn", "onImageLoad", "React", "getStyle", "media_button_default", "embed_preview_default", "import_react", "ImageFullscreen", "url", "webp", "imageAlt", "React", "image_fullscreen_default", "import_react", "ImagePreview", "image", "imageLarge", "webp", "webpLarge", "imageAlt", "proportions", "onFullscreen", "index", "imageSizes", "CONTAINER_MAX_WIDTH", "MEDIA_QUERY_MIN_MD", "React", "getStyle", "image_preview_default", "import_react", "import_react", "Pannellum", "SphereViewer", "fullscreen", "id", "src", "preview", "autoLoad", "modifiers", "onStart", "number", "React", "node", "startBtn", "spinner_element_default", "sphere_viewer_default", "SphereFullscreen", "url", "webp", "React", "e", "render_client_side_default", "sphere_viewer_default", "sphere_fullscreen_default", "import_react", "onMediaClick", "func", "SpherePreview", "url", "preview", "previewWebp", "visible", "proportions", "navigationDisabled", "onDisableNavigation", "React", "e", "getStyle", "getProportionUrl", "media_button_default", "render_client_side_default", "sphere_viewer_default", "sphere_preview_default", "import_react", "import_react", "import_react", "calculateCurrentFrame", "reverse", "startFrame", "delta", "length", "frame", "Rotation", "vertical", "className", "onChange", "children", "startFrameRef", "pointerPositionRef", "maxRef", "state", "setState", "e", "touchEnd", "mouseMove", "mouseUp", "touchMove", "event", "notTouched", "childCount", "React", "offsetWidth", "offsetHeight", "pointer", "calculatePointerPosition", "max", "offset", "setCurrentFrame", "touchStart", "onMouseEnter", "onMouseLeave", "current", "clientX", "clientY", "offsetTop", "offsetLeft", "child", "i", "rotation_default", "RotatableGallery", "images", "imageAlt", "fullscreen", "t", "useTranslation", "React", "e", "rotation_default", "image", "rotatable_gallery_default", "ThreeSixtyFullscreen", "urls", "imageAlt", "initiated", "setInitiated", "initiate", "e", "React", "rotatable_gallery_default", "media_button_default", "three_sixty_fullscreen_default", "import_react", "onMediaClick", "func", "ThreeSixtyPreviewRotation", "urls", "imageAlt", "proportions", "React", "getStyle", "rotatable_gallery_default", "Image", "image", "onDisableNavigation", "getProportionUrl", "media_button_default", "e", "ThreeSixtyPreview", "visible", "navigationDisabled", "three_sixty_preview_default", "DEFAULT_FORMAT", "FULLSCREEN_FORMAT", "SPHERE_LARGE_FORMAT", "SPHERE_PREVIEW_FORMAT", "sortOrder", "a", "b", "getFormatUrl", "file", "keyFormat", "format", "getFormatUrlWebp", "getUrls", "files", "EmbedBuilder", "proportions", "imageAlt", "onDisplayMediaInModal", "index", "React", "embed_preview_default", "video_player_selector_default", "SphereBuilder", "visible", "onDisableNavigation", "navigationDisabled", "sphere_preview_default", "sphere_fullscreen_default", "ImageBuilder", "onFullscreen", "three_sixty_preview_default", "image_preview_default", "three_sixty_fullscreen_default", "image_fullscreen_default", "DefaultImageBuilder", "ParseMedia", "type", "additional", "DefaultGalleryFactory", "gallery_factory_default", "import_react", "KEY_CODE_ESC", "ToggleClassName", "ModalVideoPlayer", "url", "onClose", "t", "useTranslation", "onKeyDown", "e", "React", "Modal_default", "video_player_selector_default", "modal_video_player_default", "parseMedia", "files", "id", "sortOrder", "type", "IMAGE", "SPHERE", "EMBEDDED", "VIDEO", "getSearchDocument", "createSelector", "state", "documentList", "getAdvertisementMedia", "item", "media", "parseMedia", "getFirstMedia", "mediaList", "getImages", "get360Images", "a", "b", "getSphereImages", "getVideos", "getEmbeddedVideos", "getMedia", "embedded", "videos", "images", "threesixtys", "spheres", "index", "getFirstImageIndex", "getFirst360Index", "getFirstSphereIndex", "getFirstEmbedIndex", "getFirstVideoIndex", "getControlMenu", "image", "threesixty", "sphere", "embed", "video", "import_react", "import_react", "KEY_CODE_ESC", "NavItem", "text", "onClick", "current", "icon", "React", "embedAndVideoVisible", "embedAndVideo", "index", "threesixtyAndSphereVisible", "threesixtyAndSphere", "imageVisible", "image", "Lightbox", "startIndex", "modifiers", "className", "controlMenu", "data", "children", "isOrder", "onClose", "t", "useTranslation", "visibleIndex", "setVisibleIndex", "ref", "onKeyDown", "node", "containerMobile", "containerDesktop", "e", "indexIsVisible", "bounds", "onPageScroll", "i", "scrollInto", "price", "privateLeasing", "businessLeasing", "prettify", "menu", "usp", "lightbox_default", "getItemData", "item", "odometer", "getMarketOdometer", "getConvertedMileage", "LightboxShell", "onClose", "startIndex", "children", "useSelector", "getItem", "controlMenu", "getControlMenu", "scrollInto", "index", "node", "containerMobile", "containerDesktop", "React", "lightbox_default", "lightbox_shell_default", "import_react", "Save", "onClick", "dispatch", "useDispatch", "item", "useSelector", "getItem", "isAuthenticated", "isSubscriptionSynced", "isAdvertiesementSubscriptionsSynced", "id", "getItemId", "subscription", "s", "getAdvertisementSubscriptionById", "actions", "bindActionCreators", "all", "trackSoftConversionEvent", "t", "useTranslation", "onSaveClick", "softConversionEvents", "React", "Button", "Text", "IconHeartFilled", "IconHeart", "save_default", "import_react", "SaveModal", "onClose", "modalType", "t", "useTranslation", "dispatch", "useDispatch", "subscription", "useSelector", "getAdvertisementSubscription", "getSearchDocument", "actions", "bindActionCreators", "trackLoginModuleInViewportSaveObject", "trackLoginModuleClickLoginSaveObject", "React", "ad_subscription_create_modal_default", "ad_subscription_remove_modal_default", "SignInModal_default", "save_modal_default", "Slider", "Sliderr", "Placeholder", "t", "useTranslation", "React", "cdn", "PrevArrow", "props", "arrowProps", "NextArrow", "block", "Gallery", "dispatch", "useDispatch", "media", "useSelector", "getMedia", "item", "getItem", "firstMedia", "getFirstMedia", "controlMenu", "getControlMenu", "track", "bindActionCreators", "trackSoftConversionEvent", "galleryRef", "modalSave", "setModalSave", "sliderRef", "hasInitializedDots", "setHasInitializedDots", "state", "setState", "dotHandler", "index", "container", "i", "dot", "image", "s", "onTrack", "softConversionEvents", "onToggleLightboxGallery", "onFullscreen", "onCloseFullscreen", "onBeforeChange", "_", "onSwipeToIndex", "onMouseDown", "onMouseMove", "onDisplayMediaInModal", "displayMediaInModal", "onCloseMediaInModal", "onDisableNavigation", "onEnableNavigation", "additional", "imgs", "m", "gallery_factory_default", "navigationDisabled", "settings", "button", "countImg", "countSphere", "countVideo", "modal_video_player_default", "lightbox_shell_default", "x", "control_bar_default", "ShareButton_default", "save_default", "save_modal_default", "gallery_default", "import_react", "getItemResellerPackagingsAsPromo", "createSelector", "getItemResellerPackagings", "resellerPackagings", "packaging", "import_react", "GuaranteePackageItem", "title", "image", "logo", "description", "linkUrl", "linkName", "cardType", "index", "onTrackClick", "onTrackOutboundLinkClick", "dangerousHtml", "t", "useTranslation", "tracked", "setTracked", "outboundTracked", "setOutboundTracked", "modal", "setModal", "onToggleModal", "_onTrackOutboundLinkClick", "React", "asHtml", "Modal_default", "StackMedium", "Image", "Content_default", "Link", "guarantee_package_item_default", "GuaranteePackage", "t", "useTranslation", "dispatch", "useDispatch", "item", "useSelector", "getItem", "shouldFetchBrandings", "manufacturerPackaging", "getManufacturePackagingForCurrentItem", "resellerPackagings", "s", "getItemResellerPackagingsAsPromo", "mrfPackagings", "getMrfPackagingForCurrentItem", "retailerAbout", "getRetailerAbout", "actions", "bindActionCreators", "all", "track", "onTrackClick", "cardType", "name", "position", "GuaranteeEvents", "conversionType", "onTrackOutboundLinkClick", "overflowList", "React", "guarantee_package_item_default", "resellerPackage", "index", "mrfPackage", "H3", "overflow_swipe_default", "guarantee_package_default", "import_react", "HStack", "dt", "$spacing", "lt", "size", "$valign", "preBlurred", "s", "blurred", "Information", "t", "useTranslation", "item", "useSelector", "getItemInformation", "contentRef", "title", "shortDescription", "description", "fuelTypes", "gearboxType", "modelYear", "isDemoVersion", "mileage", "odometerReading", "odometer", "getMarketOdometer", "getConvertedMileage", "expectedDeliveryUnit", "unit", "count", "React", "HStack", "StatusBadge", "w", "C", "Text", "format", "sv", "usp_item_default", "extendable_group_auto_default", "Content_default", "asHtml", "information_default", "import_react", "import_react", "validate", "state", "regisstrationNumberLength", "getMarket", "toCamelCase", "input", "_", "group1", "MessageToRetailerModal", "onClose", "useTranslation", "dispatch", "useDispatch", "requestStatus", "useSelector", "s", "responseStatus", "authenticated", "isAuthenticated", "item", "getSearchDocument", "retailer", "getRetailerDocument", "actions", "bindActionCreators", "create", "trackConversionEvent", "trackLoginModuleInViewportMessageDealer", "trackLoginModuleClickLoginMessageDealer", "requestCreate", "useDataExchangeStatus", "setState", "onReCaptchaChange", "captcha", "nextState", "onCheckboxChange", "e", "onChange", "onMessageBlur", "onSend", "marketCode", "information", "metaData", "i", "conversionEvents", "React", "Modal_default", "Loader_default", "Content_default", "alert", "StackLarge", "Alert_default", "StackMedium", "InputLabel_default", "InputTextarea_default", "InputError_default", "InputGroup_default", "InputCheckbox_default", "Box", "Columns", "Column", "Text", "Switch_default", "InputText_default", "InputHelp_default", "re_captcha_default", "Button", "SignInModal_default", "urls_exports", "message_to_retailer_modal_default", "MessageModal", "item", "useSelector", "getItem", "dispatch", "useDispatch", "actions", "bindActionCreators", "track", "hideMessageModal", "eventTypes", "mapVehicleData", "otherEvents", "React", "message_to_retailer_modal_default", "message_modal_default", "import_react", "import_react", "Promo", "promo", "onClick", "React", "promo_default", "import_react", "PromoModal", "promo", "onClose", "React", "Modal_default", "StackMedium", "Image", "Content_default", "asHtml", "Link", "promo_modal_default", "Promos", "t", "useTranslation", "promos", "useSelector", "getPromos", "modal", "setModal", "onClick", "promo", "React", "promo_modal_default", "StackMedium", "H3", "overflow_grid_default", "index", "promo_default", "promos_default", "import_react", "import_react", "Wrapper", "dt", "props", "TabList", "TabButton", "ButtonReset", "size", "$mobileOrder", "lt", "$isFaded", "$isActive", "TabButtonMain", "Icon", "TabButtonMainText", "TabButtonIcon", "TabPanel", "$firstInactive", "TabBox", "items", "ariaLabel", "idBase", "activeTab", "setActiveTab", "React", "Wrapper", "TabList", "tab", "tabIndex", "TabButton", "TabButtonMain", "IconDot", "IconCheck", "TabButtonMainText", "TabButtonIcon", "IconChevronDown", "panel", "panelIndex", "TabPanel", "TabBox_default", "SafetyData", "item", "useTranslation", "automotiveAssociation", "getAutomotiveAssociationName", "marketCode", "getMarket", "retailer", "useSelector", "getRetailerDocument", "automotiveAssociationLinkUrl", "automotiveAssociationLogoMaxWidth", "conditionReport", "doc", "itemsList", "React", "Image", "Content_default", "Link", "dateMonthYear", "showCarfax", "carfaxUsps", "isVirtualCar", "urls_exports", "Checklist_default", "IconCheck", "sortedItemsList", "a", "b", "TabBox_default", "safety_data_default", "VehicleList", "ArticleList", "Item", "id", "useParams", "t", "useTranslation", "dispatch", "useDispatch", "notFound", "useSelector", "isErrorPage", "item", "getItem", "retailerId", "getRetailerId", "retailer", "getRetailerDocument", "itemBranch", "getItemBranch", "centralStorageRetailer", "getSelectedCentralStorageRetailer", "showMessageModal", "s", "liveshoppingReference", "actions", "bindActionCreators", "find", "clear", "trackViewEvent", "getDefaultFinancialInformation", "resetDefaultFinancialInformation", "resetCurrentFinancialInformation", "clearLiveshoppingReference", "trackPageViewEvent", "useTrackPageView_default", "marketCode", "getMarket", "liveshoppingReferenceRef", "imbox_default", "showFloatingHeader", "setShowFloatingHeader", "contactSectionRef", "currPos", "onGetRetailer", "hasFinancialOptions", "hasBranch", "connectedBranch", "x", "text_exports", "spreadable", "events_exports", "React", "missing_item_default", "Page", "Loader_default", "fuelTypesElectric", "message_modal_default", "floating_header_default", "gallery_default", "information_default", "card_default", "safety_data_default", "guarantee_package_default", "properties_default", "equipment_default", "charging_cost_default", "documents_default", "Separator", "accessories_default", "promos_default", "branch_default", "render_client_side_default", "selected_article_default", "resolveArticlesRoute", "item_default", "Item"] }