{"version":3,"file":"js/component-faqsearch.chunk.js","mappings":"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","sources":["webpack:///./assets/common/src/components/common/ErrorBox.tsx","webpack:///./assets/common/src/ui/accordion/Accordion.tsx","webpack:///./assets/common/src/ui/accordion/AccordionItem.tsx","webpack:///./assets/common/src/ui/button/Button.tsx","webpack:///./assets/common/src/ui/modal/ModalDialog.tsx","webpack:///./assets/common/src/utils/brandDiffsUtils.ts","webpack:///./assets/common/src/utils/ui.ts","webpack:///./assets/common/src/utils/useQueryStringBoolean.ts","webpack:///./assets/moncler/src/components/clientService/FaqResults.tsx","webpack:///./assets/moncler/src/components/clientService/GiftcardBalanceFAQ.tsx","webpack:///./assets/moncler/src/components/product/GiftCardBalanceModal.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport React from 'react';\nconst ErrorBox = (props) => {\n if (!props.errors || props.errors.length === 0 || props.errors.every((err) => err === '')) {\n return React.createElement(React.Fragment, null);\n }\n return (React.createElement(\"div\", { className: classNames('globalerrors', 'invalid-feedback', props.className), role: \"alert\" }, props.errors.map((e, i) => (React.createElement(\"div\", { key: i }, (e || '').toString())))));\n};\nexport default ErrorBox;\n","import React, { cloneElement, useEffect, useMemo, useState, createElement } from 'react';\nimport { isInViewport, scrollToPx } from '../../utils/ui';\nimport classNames from 'classnames';\nlet timeoutId;\nconst Accordion = (props) => {\n const [expandedCard, setExpandedCard] = useState();\n const [height, setHeight] = useState(0);\n const groupRef = React.createRef();\n const setOpen = (i) => {\n setExpandedCard(i);\n };\n const isOpen = (i) => {\n return expandedCard === i;\n };\n const onChildSelect = (i) => {\n setOpen(isOpen(i) ? null : i);\n };\n // OE-14667 set the accordion close if there is a new result in the search input\n useEffect(() => {\n if (props.results && props.results.length > 0) {\n setOpen(-1);\n }\n }, [props.results]);\n const scrollToElement = (container, opener) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n if (!isInViewport(opener)) {\n const scrollPosition = window.scrollY;\n const containerScrollPosition = container.getBoundingClientRect().top;\n let header = document.querySelector('header');\n const headerHeight = header && header.offsetHeight;\n const gap = 100;\n const scrollPositionFinal = scrollPosition + containerScrollPosition - headerHeight - gap;\n scrollToPx(scrollPositionFinal);\n }\n }, 500);\n };\n useEffect(() => {\n let defaultOpen;\n React.Children.forEach(props.children, (c, i) => {\n if (!!c) {\n if (React.isValidElement(c)) {\n if (c.props.isInitialOpen) {\n defaultOpen = c.key || i;\n }\n }\n else {\n console.warn('Element is not an accordion item.', c);\n }\n }\n });\n setOpen(defaultOpen);\n }, []);\n useEffect(() => {\n console.log('set accordion height');\n setHeight(groupRef.current.clientHeight);\n }, []);\n const childrenLength = useMemo(() => {\n let counter = 0;\n React.Children.map(props.children, () => {\n counter += 1;\n });\n return counter;\n }, []);\n // causava sfarfallamenti\n // const disableScroll = () => {\n // if (timeout) {\n // clearTimeout(timeout);\n // }\n // document.documentElement.classList.add('initial-scroll');\n // const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n // const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n // window.onscroll = () => {\n // window.scrollTo(scrollLeft, scrollTop);\n // };\n // };\n // const enableScroll = () => {\n // document.documentElement.classList.remove('initial-scroll');\n // window.onscroll = () => {};\n // };\n return createElement(props.type, {\n className: classNames('accordion__group', { 'accordion__group--flex': props.flex, 'accordion__group--list': props.type === 'ul' }),\n ref: groupRef,\n style: { gap: props.gap || 0 },\n }, React.Children.map(props.children, (child, i) => {\n if (React.isValidElement(child)) {\n return cloneElement(child, Object.assign({ onSelect: () => onChildSelect(child.key || i), expanded: isOpen(child.key || i), loading: isOpen(child.key || i) && child.props.initiallyClosed, scrollToElement: scrollToElement, flex: props.flex, gap: props.gap, parentHeight: height, childrenLength: childrenLength, type: (props.type === 'ul' && 'li') || 'div' }, child.props));\n }\n }));\n};\nAccordion.defaultProps = {\n type: 'div',\n};\nexport default Accordion;\n","import classNames from 'classnames';\nimport React, { useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nconst AccordionItem = (props) => {\n const { t } = useTranslation();\n const accordionPanel = useRef();\n const container = useRef();\n const opener = useRef();\n // const firstChildMargin = window.getComputedStyle(props?.parentRef?.firstChild as Element).getPropertyValue('margin-bottom');\n // useEffect(() => {\n // let heightForFlex;\n // if (props.flex && props.gap && props.parentHeight) {\n // heightForFlex =\n // console.log('children total height', heightForFlex);\n // }\n // }, [props.parentHeight]);\n useEffect(() => {\n console.log('Update Height: ', props.accordionId, props.updateHeight);\n // actual animation\n if (props.flex && props.gap && props.parentHeight) {\n accordionPanel.current.style.height = props.expanded\n ? props.autoHeight\n ? 'auto'\n : `${(props === null || props === void 0 ? void 0 : props.parentHeight) - (container.current.clientHeight * props.childrenLength + props.gap * (props.childrenLength - 1))}px`\n : '0px';\n }\n else {\n accordionPanel.current.style.height = props.expanded ? (props.autoHeight ? 'auto' : `${accordionPanel.current.firstElementChild.scrollHeight}px`) : '0px';\n }\n }, [props.expanded, props.children, props.updateHeight, props.parentHeight]);\n return (React.createElement(\"div\", { ref: container, className: (!props.miniAccordion ? 'accordion__item' : '') + (props.itemClass ? ' ' + props.itemClass : '') },\n React.createElement(\"button\", { ref: opener, type: \"button\", id: props.accordionId, onClick: () => {\n props.onClick && props.onClick();\n props.onSelect();\n if (props.callbackOnOpen && !props.expanded) {\n props.callbackOnOpen();\n }\n if (props.scrollToElement) {\n props.scrollToElement(container.current, opener.current);\n }\n }, className: classNames(props.miniAccordion ? 'accordion__header--mini' : 'accordion__header', { accordion__panel_open: props.expanded, 'header--selected': props.elementActive }, props.headerClass ? props.headerClass : ''), \"aria-expanded\": props.expanded, \"aria-controls\": props.accordionId + '-panel', tabIndex: props.tabIndex || null },\n props.isTitleMarkup ? props.title : React.createElement(\"span\", { className: \"primary-s\" + (props.miniAccordion ? ' accordion__header--underline' : '') }, props.title),\n !props.hideToggleButtons && !props.miniAccordion && (React.createElement(React.Fragment, null,\n React.createElement(\"i\", { className: \"header__open\" },\n React.createElement(\"span\", { className: \"text\" }, t('button.show'))),\n React.createElement(\"i\", { className: \"header__close\" },\n React.createElement(\"span\", { className: \"text\" }, t('button.hide'))))),\n props.miniAccordion &&\n React.createElement(React.Fragment, null,\n !props.expanded && React.createElement(\"div\", { className: \"accordion__header--arrow-down\" }),\n props.expanded && React.createElement(\"div\", { className: \"accordion__header--arrow-up\" }))),\n React.createElement(\"div\", { ref: accordionPanel, className: classNames(`accordion__panel${!!props.contentClass ? ' ' + props.contentClass : ''}`, { accordion__panel_open: props.expanded }), role: \"region\", id: props.accordionId + '-panel', \"aria-labelledby\": props.accordionId },\n React.createElement(\"div\", null,\n React.createElement(React.Fragment, null,\n props.loading && React.createElement(\"p\", { className: \"pb-12\" }, t('label.loading')),\n props.children)))));\n};\nAccordionItem.defaultProps = {\n isTitleMarkup: false,\n type: 'div',\n};\nexport default AccordionItem;\n","import classNames from 'classnames';\nimport React from 'react';\nconst Button = (props) => {\n const handleClick = (e) => {\n if (props.usesDefault != undefined && !props.usesDefault && props.onClick) {\n e.preventDefault();\n }\n props.onClick && props.onClick.call(this, e);\n };\n const handleKeyDown = (e) => {\n if (props.usesDefault != undefined && !props.usesDefault && props.onKeyDown) {\n e.preventDefault();\n }\n props.onKeyDown && props.onKeyDown.call(this, e);\n };\n return (React.createElement(\"button\", Object.assign({ ref: props.reference, onClick: handleClick, onKeyDown: handleKeyDown, disabled: props.disabled, className: classNames('button', props.cls, props.className, { loading: props.isLoading }), type: props.type, \"aria-label\": props.ariaLabel, \"aria-current\": props.ariaCurrent, \"aria-expanded\": props.ariaExpanded, \"aria-haspopup\": props.ariaHaspopup, \"aria-controls\": props.ariaControls }, (props.tabIndex ? { tabIndex: props.tabIndex } : {})), props.isLoading ? (React.createElement(React.Fragment, null,\n React.createElement(\"div\", null))) : (React.createElement(\"span\", null, props.children))));\n};\nButton.defaultProps = {\n cls: ['button--primary'],\n className: '',\n};\nexport default Button;\n","import React, { Suspense } from 'react';\nimport { autoChooseComponent } from '@common/utils/brandDiffsUtils';\nconst StoneModalDialog = React.lazy(() => import('@stone/components/modal/ModalDialog'));\nconst MocnclerModalDialog = React.lazy(() => import('@moncler/components/modal/ModalDialog'));\nconst ModalDialog = (props) => {\n return (React.createElement(Suspense, { fallback: React.createElement(React.Fragment, null) }, autoChooseComponent({\n MO: React.createElement(MocnclerModalDialog, Object.assign({}, props)),\n ST: React.createElement(StoneModalDialog, Object.assign({}, props, { isLegacy: true })),\n })));\n};\nexport default ModalDialog;\n","import classNames from 'classnames';\nconst gridClassMultiplier = {\n MO: 1,\n ST: 2,\n};\nconst getGridColNumber = (colnumnber) => {\n return colnumnber * (gridClassMultiplier[getId()] || gridClassMultiplier.MO);\n};\nconst getId = () => {\n return window.brandId;\n};\nconst getName = () => {\n return window.brand;\n};\nconst is = (brandId) => {\n return getId() === brandId;\n};\nconst nameIs = (brand) => {\n return getName() === brand;\n};\nconst autoChooseClassnames = (classesObj, commonclasses) => {\n return classNames(classesObj[getId()], commonclasses);\n};\nconst gridClassname = (monclerColumn = 12, brackpoint, type, commonclasses) => {\n let result = [(type || 'col')];\n brackpoint && result.push(brackpoint);\n result.push(getGridColNumber(monclerColumn) + '');\n return result.join('-');\n};\nconst gridClassnames = (configs, commonclasses) => {\n return (configs\n .map((args) => {\n return gridClassname.apply(this, [...args]);\n })\n .join(' ') + (commonclasses ? ' ' + commonclasses : ''));\n};\nconst autoChooseComponent = (componentsObj) => {\n return componentsObj[getId()];\n};\nconst autoChooseProps = (props) => {\n return props[getId()];\n};\nexport { autoChooseClassnames, autoChooseComponent, autoChooseProps, getGridColNumber, getId, getName, gridClassname, gridClassnames, is, nameIs };\n","/**\n *\n * check if given element is in viewpot\n * @param elem - element to check\n *\n * @returns return true if is in viewport\n */\nexport const isInViewport = (elem) => {\n const bounding = elem.getBoundingClientRect();\n return (bounding.top >= 0 &&\n bounding.left >= 0 &&\n bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.right <= (window.innerWidth || document.documentElement.clientWidth));\n};\nexport const scrollToPx = (endPosition) => {\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n top: endPosition,\n left: 0,\n behavior: 'smooth',\n });\n }\n else {\n let gap = window.scrollY;\n const direction = gap > endPosition ? 'up' : 'down';\n const int = setInterval(function () {\n if (direction === 'up') {\n gap -= 10;\n if (gap <= endPosition)\n clearInterval(int);\n }\n else {\n gap += 10;\n if (gap >= endPosition)\n clearInterval(int);\n }\n window.scrollTo(0, gap);\n }, 10);\n }\n};\n// for PLP tiles check\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst findDuplicates = () => {\n const tiles = new Map();\n document.querySelectorAll('[data-id]').forEach((tile) => {\n // @ts-ignore\n let currentId = tile.dataset.id;\n if (tiles.has(currentId)) {\n tiles.set(currentId, Number(tiles.get(currentId)) + 1);\n }\n else {\n tiles.set(currentId, 1);\n }\n });\n let duplicateCounter = 0;\n for (const [key, value] of tiles) {\n if (value > 1) {\n duplicateCounter++;\n console.info(`found ${value} duplicates for ${key}`);\n }\n }\n console.info(`%cfound a total of ${duplicateCounter} duplicates!`, 'color:purple;background-color:white;font-weight:bold;');\n};\n","import qs from 'query-string';\nimport { useCallback, useState } from 'react';\nfunction useQueryStringBoolean(key, initialValue) {\n const setQueryStringWithoutPageReload = (qsValue) => {\n const newurl = window.location.protocol + '//' + window.location.host + window.location.pathname + (qsValue ? '?' + qsValue : '');\n window.history.pushState({ path: newurl }, '', newurl);\n };\n const getQueryStringValue = (key) => {\n const values = qs.parse(window.location.search);\n let value = values[key];\n return !!value;\n };\n function setQueryStringValue(key, value) {\n const values = qs.parse(window.location.search);\n const newvalues = Object.assign(Object.assign({}, values), { [key]: value });\n if (!value) {\n delete newvalues[key];\n }\n const newQsValue = qs.stringify(newvalues);\n setQueryStringWithoutPageReload(newQsValue);\n }\n const onSetValue = useCallback((newValue) => {\n setValue(newValue);\n setQueryStringValue(key, newValue);\n }, [key]);\n const [value, setValue] = useState(getQueryStringValue(key) || initialValue);\n return [value, onSetValue];\n}\nexport default useQueryStringBoolean;\n","import Accordion from '@ui/accordion/Accordion';\nimport AccordionItem from '@ui/accordion/AccordionItem';\nimport analytics from '@utils/analytics';\nimport api from '@utils/api';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport customEventBus from '@common/scripts/libs/eventBus';\nimport GiftcardBalanceFAQ from './GiftcardBalanceFAQ';\n//.hero-search class is for new faq search in CS Landing, .client-service-search class is for the old CS Landing search\nconst searchSelector = '.hero-search, .client-service-search';\nconst FaqResults = (props) => {\n const { t } = useTranslation();\n const [results, setResults] = useState([]);\n const [emptyPrevious, setEmptyPrevious] = useState(false);\n const emptyQuery = useRef(true);\n const [query, setQuery] = useState('');\n // inizializzo i ref per gli elementi del dom fuori react\n const searchBlock = useRef(document.querySelector(searchSelector));\n // add listener from outside via CustomEventBus\n useEffect(() => {\n customEventBus.on('faqSearch:update', (data) => {\n setResults(data.results);\n });\n customEventBus.on('query:update', (data) => {\n setQuery(data.query);\n });\n }, []);\n useEffect(() => {\n var _a;\n emptyQuery.current = query.length === 0;\n if (query.length >= 1) {\n api.searchFaqs(query).then((data) => {\n if (emptyQuery.current) {\n return false;\n }\n else if (data.results.length > 0) {\n searchBlock.current.dataset.searchActive = 'res';\n }\n else {\n searchBlock.current.dataset.searchActive = 'sugg';\n }\n setResults(data.results || []);\n setEmptyPrevious(false);\n });\n }\n else {\n setEmptyPrevious(true);\n (_a = searchBlock.current) === null || _a === void 0 ? void 0 : _a.removeAttribute('data-search-active');\n setResults([]);\n }\n }, [query]);\n const getHtmlContent = (str) => {\n return React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: str } });\n };\n const thirdLevelFaqs = document.querySelector('.cs-detail-page');\n useEffect(() => {\n // OE-14763 - hide contact details on FAQ detail pages\n const contactDetailsAlternate = document.querySelector('.experience-contacts');\n if (contactDetailsAlternate && thirdLevelFaqs) {\n contactDetailsAlternate.style.display = 'none';\n }\n }, [thirdLevelFaqs]);\n return (React.createElement(\"div\", { className: \"faq-results container\" },\n React.createElement(\"div\", { className: \"faq-component row justify-center\" }, query.length >= 1 && !emptyPrevious && (React.createElement(\"div\", { className: \"col-sm-10 col-md-8 col-lg-6 faq-component__container\" },\n React.createElement(\"div\", { className: \"title\" }, t('faqsearch.results').toUpperCase()),\n React.createElement(\"button\", { className: \"button button--tertiary button--arrow-left\", onClick: () => {\n setResults([]);\n setQuery('');\n customEventBus.emit('faqSearch:back', {});\n } }, t('button.back')),\n results.length === 0 && (React.createElement(\"div\", { className: \"row justify-center\" },\n React.createElement(\"div\", { className: \"col-lg-10 subtitle\" }, t('faqsearch.noresults', { text: query })))),\n results.length > 0 && (React.createElement(\"div\", { className: \"details\" },\n React.createElement(Accordion, { results: results }, results === null || results === void 0 ? void 0 : results.map((result, i) => (React.createElement(AccordionItem, { callbackOnOpen: () => analytics.selectedElement(query), key: i, title: getHtmlContent(result.name), accordionId: i + '', itemClass: \"faq--card\", headerClass: \"accordion__header--lc\" },\n React.createElement(\"div\", { className: \"faq--card-body\" }, getHtmlContent(result.body))))))))))),\n React.createElement(GiftcardBalanceFAQ, { results: results })));\n};\nexport default FaqResults;\n","import useQueryStringBoolean from '@common/utils/useQueryStringBoolean';\nimport React, { useEffect } from \"react\";\nimport GiftCardBalanceModal from '../product/GiftCardBalanceModal';\nimport { appPostStructuredMessage } from '@common/utils/appUtils';\nconst GiftcardBalanceFAQ = (props) => {\n const { results } = props;\n const [checkBalance, setCheckBalance] = useQueryStringBoolean('checkBalance');\n useEffect(() => {\n document.querySelectorAll('.gc-balance-show').forEach(item => {\n item.addEventListener('click', (e) => {\n e.preventDefault();\n setCheckBalance(true);\n });\n });\n }, [results]);\n useEffect(() => {\n if (checkBalance && window.appmode) {\n appPostStructuredMessage('gc_check_balance', {});\n }\n }, [checkBalance]);\n return React.createElement(React.Fragment, null,\n React.createElement(GiftCardBalanceModal, { isOpen: checkBalance, onRequestClose: () => setCheckBalance(false) }));\n};\nexport default GiftcardBalanceFAQ;\n","import React, { useEffect, useState } from 'react';\nimport ModalDialog from '@common/ui/modal/ModalDialog';\nimport createDecorator from 'final-form-focus';\nimport { Form } from 'react-final-form';\nimport { useTranslation } from 'react-i18next';\nimport formutils from '@utils/formutils';\nimport api from '@common/utils/api';\nimport DwFormField from '@common/ui/formfield/DwFormField';\nimport Button from '@common/ui/button/Button';\nimport Accordion from '@common/ui/accordion/Accordion';\nimport AccordionItem from '@common/ui/accordion/AccordionItem';\nimport ErrorBox from '@components/common/ErrorBox';\nimport analytics from '@utils/analytics';\nconst focusOnError = createDecorator(); // must be outside the component\n/**\n * A modal which allows the user to check the remaining balance of a gift card\n */\nconst GiftCardBalanceModal = ({ isOpen = false, onRequestClose, pid }) => {\n // States\n const [modalOpen, setModalOpen] = useState(false); // *true* opens the modal\n const [errors, setErrors] = useState([]); // Form errors\n const [formdef, setFormdef] = useState(); // Form definition\n const [initialValues, setInitialValues] = useState(); // Form initial values\n const [step, setStep] = useState('form'); // Define the step to show on the page\n const [cardNumber, setCardNumber] = useState(''); // Card number\n const [pin, setPin] = useState(''); // PIN code - currently not used\n const [expirationDate, setExpirationDate] = useState(''); // Card expiration\n const [balance, setBalance] = useState(''); // Remaining balance\n // Hooks\n const { t } = useTranslation();\n // Boot\n useEffect(() => {\n // In order to allow editorial uses of this component, we need an event listener\n // on a class that can open and close the modal. This is indipendent from `isOpen` prop\n document.querySelectorAll('.gc-balance-show').forEach(a => {\n loadForm();\n a.addEventListener('click', () => setModalOpen(true), false);\n });\n }, []);\n useEffect(() => {\n if (isOpen) {\n loadForm();\n }\n // This is necessary since we have to open and close the modal with a state variable\n setModalOpen(isOpen);\n }, [isOpen]);\n /**\n * [API] Load the form definition\n */\n const loadForm = () => {\n let val = {};\n api.getForm('checkGCBalance', val, true).then(data => {\n setInitialValues(val);\n setFormdef(data);\n });\n };\n /**\n * Validate the form\n */\n const validate = async (values) => {\n return await formutils.validateForm(values, formdef, 'checkGCBalance');\n };\n /**\n * Handle submit errors\n */\n const clearInputError = (formErrors) => {\n var _a, _b;\n const cardNumberInput = (_a = document.getElementsByName('cardNumber')) === null || _a === void 0 ? void 0 : _a[0];\n const pinInput = (_b = document.getElementsByName('pin')) === null || _b === void 0 ? void 0 : _b[0];\n const clearCardNumber = !(formErrors === null || formErrors === void 0 ? void 0 : formErrors.cardNumber) || (formErrors === null || formErrors === void 0 ? void 0 : formErrors.all);\n const clearPin = !(formErrors === null || formErrors === void 0 ? void 0 : formErrors.pin) || (formErrors === null || formErrors === void 0 ? void 0 : formErrors.all);\n clearCardNumber && (cardNumberInput === null || cardNumberInput === void 0 ? void 0 : cardNumberInput.setAttribute('aria-invalid', 'false'));\n clearPin && (pinInput === null || pinInput === void 0 ? void 0 : pinInput.setAttribute('aria-invalid', 'false'));\n if (clearCardNumber && clearPin) {\n setErrors([]);\n }\n };\n /**\n * [API] send a request to the server and check the balance of the gift card\n */\n const checkBalance = async (values) => {\n clearInputError({ all: true });\n let errors = await validate(values);\n if (errors && Object.keys(errors).length > 0) {\n return errors;\n }\n return api\n .checkGiftCardBalance(values, formdef)\n .then(data => {\n var _a, _b;\n if (data.serverErrors) {\n setStep('serverError');\n return;\n }\n if (!data.success && data.fields && data.fields.length > 0) {\n let dataErrors = data.fields.map(err => Object.values(err)[0]);\n // style the inputs as invalid\n const cardNumberInput = (_a = document.getElementsByName('cardNumber')) === null || _a === void 0 ? void 0 : _a[0];\n const pinInput = (_b = document.getElementsByName('pin')) === null || _b === void 0 ? void 0 : _b[0];\n cardNumberInput === null || cardNumberInput === void 0 ? void 0 : cardNumberInput.setAttribute('aria-invalid', 'true');\n pinInput === null || pinInput === void 0 ? void 0 : pinInput.setAttribute('aria-invalid', 'true');\n setErrors(dataErrors);\n return;\n }\n if (!formutils.checkValidationAfterSubmit(data, errors)) {\n return errors;\n }\n if (data.success) {\n setExpirationDate(data.expDate);\n setBalance(data.balance);\n setStep('balance');\n }\n })\n .catch(e => {\n console.log(\"Error in GiftCardBalanceModal.checkBalance:\", e);\n setStep('serverError');\n });\n };\n if (!formdef) {\n return React.createElement(React.Fragment, null);\n }\n /**\n * Step 1: Render the form that asks for the numer and PIN\n */\n const renderForm = () => (React.createElement(React.Fragment, null,\n React.createElement(\"p\", { className: 'mb-32' }, t('gc.check.balancedescription')),\n React.createElement(Form, { onSubmit: checkBalance, initialValues: initialValues, validate: validate, decorators: [focusOnError], render: ({ handleSubmit, form, submitting, pristine, errors: formErrors, values }) => {\n setCardNumber(values.cardNumber);\n setPin(values.pin);\n return (React.createElement(\"form\", { onSubmit: handleSubmit },\n React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"row\" },\n React.createElement(\"div\", { className: \"col-8\" },\n \" \",\n React.createElement(DwFormField, { onChange: e => setCardNumber(e.target.value), onFocus: () => clearInputError(formErrors), def: formdef, name: 'cardNumber', type: 'text', autocomplete: 'off' })),\n React.createElement(\"div\", { className: \"col-4\" },\n React.createElement(DwFormField, { onChange: e => setPin(e.target.value), onFocus: () => clearInputError(formErrors), def: formdef, name: 'pin', type: 'text', autocomplete: 'off' }))),\n React.createElement(\"div\", { className: \"pw-error\" },\n React.createElement(ErrorBox, { errors: !(formErrors === null || formErrors === void 0 ? void 0 : formErrors.cardNumber) && !(formErrors === null || formErrors === void 0 ? void 0 : formErrors.pin) ? errors : [], className: 'gc-error-box' })),\n React.createElement(\"div\", { className: \"col-12\" },\n React.createElement(Accordion, null,\n React.createElement(AccordionItem, { accordionId: 'gc-accordion-link', title: t('gc.where.info'), miniAccordion: true },\n React.createElement(\"div\", { className: \"card-placeholder-container\" },\n React.createElement(\"p\", { className: 'card-placeholder-desc' }, t('gc.where.infodescription')),\n React.createElement(\"div\", { className: \"card-placeholder\" }))))),\n React.createElement(\"div\", { className: \"row button-row\" },\n React.createElement(\"div\", { className: \"col-12\" },\n React.createElement(Button, { onClick: () => {\n analytics.checkGiftcardBalance(pid || 'giftcard');\n }, type: \"submit\", disabled: submitting, cls: ['button--primary'] }, t('gc.check.button')))))));\n } })));\n /**\n * Step 2: if card data are correct, show the retrieved info\n */\n const renderBalance = () => (React.createElement(React.Fragment, null,\n React.createElement(\"p\", { className: 'mb-32' }, t('gc.balance.checkinfo')),\n React.createElement(\"div\", { className: 'balance-container' },\n React.createElement(\"div\", { className: \"row mb-16\" },\n React.createElement(\"div\", { className: \"col-12\" },\n React.createElement(\"p\", null,\n t('gc.cardnumber'),\n \": \",\n cardNumber,\n \"\\u00A0\\u00A0\\u00A0\\u00A0\\u00A0\",\n t('gc.pin'),\n \": ****\"))),\n React.createElement(\"div\", { className: \"row mb-16\" },\n React.createElement(\"div\", { className: \"col-12\" },\n t('gc.balance.term'),\n \": \",\n balance)),\n React.createElement(\"div\", { className: \"row\" },\n React.createElement(\"div\", { className: \"col-12\" },\n React.createElement(Button, { type: 'button', className: 'check-another', cls: ['button--secondary'], onClick: () => {\n setInitialValues({ cardNumber: '', pin: '' }); // We need to reset the previous data in order to prevent some loop errors\n setStep('form');\n } }, t('gc.checkanother')))))));\n /**\n * Step 3: if server error, show the error message\n */\n const renderServerError = () => (React.createElement(\"div\", { className: \"gc-error-modal\" },\n React.createElement(\"h2\", null, t('gc.errorunavailable', 'SERVICE NOT AVAILABLE')),\n React.createElement(\"p\", null, t('gc.errorunavailablemsg', 'We’re sorry the Check Balance service is currently unavailable, please try again later.'))));\n return (React.createElement(ModalDialog, { className: 'modal--small modal--bottom-small modal--fixed delete-account', overlayClassName: \"overlay-visible\", isOpen: modalOpen, onRequestClose: () => {\n setModalOpen(false);\n setErrors([]);\n onRequestClose();\n setStep('form');\n }, contentLabel: step == 'form' ? t('gc.check.balance') : step == 'balance' ? t('gc.your.balance', 'Your Gift Card') : '' }, step == 'form' ?\n renderForm()\n : step == 'balance' ?\n renderBalance()\n : step == 'serverError' ?\n renderServerError()\n : React.createElement(React.Fragment, null)));\n};\nexport default GiftCardBalanceModal;\n"],"names":["props","errors","length","every","err","className","role","map","e","i","key","toString","timeoutId","Accordion","expandedCard","setExpandedCard","useState","height","setHeight","groupRef","setOpen","isOpen","useEffect","results","scrollToElement","container","opener","clearTimeout","setTimeout","scrollPosition","window","scrollY","containerScrollPosition","getBoundingClientRect","top","header","document","querySelector","scrollPositionFinal","offsetHeight","defaultOpen","children","c","isInitialOpen","console","warn","log","current","clientHeight","childrenLength","useMemo","counter","createElement","type","flex","ref","style","gap","child","cloneElement","Object","assign","onSelect","onChildSelect","expanded","loading","initiallyClosed","parentHeight","defaultProps","AccordionItem","t","accordionPanel","useRef","accordionId","updateHeight","autoHeight","firstElementChild","scrollHeight","miniAccordion","itemClass","id","onClick","callbackOnOpen","accordion__panel_open","elementActive","headerClass","tabIndex","isTitleMarkup","title","hideToggleButtons","contentClass","Button","reference","undefined","usesDefault","preventDefault","call","onKeyDown","disabled","cls","isLoading","ariaLabel","ariaCurrent","ariaExpanded","ariaHaspopup","ariaControls","StoneModalDialog","MocnclerModalDialog","Suspense","fallback","MO","ST","isLegacy","gridClassMultiplier","getId","brandId","is","autoChooseClassnames","classesObj","commonclasses","gridClassname","monclerColumn","brackpoint","result","push","join","gridClassnames","configs","args","apply","autoChooseComponent","componentsObj","autoChooseProps","isInViewport","elem","bounding","left","bottom","innerHeight","documentElement","right","innerWidth","clientWidth","scrollToPx","endPosition","scrollTo","behavior","direction","int","setInterval","clearInterval","initialValue","setQueryStringValue","value","values","location","search","newvalues","qsValue","newurl","protocol","host","pathname","history","pushState","path","setQueryStringWithoutPageReload","onSetValue","useCallback","newValue","setValue","getQueryStringValue","setResults","emptyPrevious","setEmptyPrevious","emptyQuery","query","setQuery","searchBlock","data","_a","then","dataset","searchActive","removeAttribute","getHtmlContent","str","dangerouslySetInnerHTML","__html","thirdLevelFaqs","contactDetailsAlternate","display","toUpperCase","text","name","body","checkBalance","setCheckBalance","querySelectorAll","forEach","item","addEventListener","appmode","onRequestClose","focusOnError","pid","modalOpen","setModalOpen","setErrors","formdef","setFormdef","initialValues","setInitialValues","step","setStep","cardNumber","setCardNumber","pin","setPin","expirationDate","setExpirationDate","balance","setBalance","a","loadForm","val","validate","async","clearInputError","formErrors","_b","cardNumberInput","getElementsByName","pinInput","clearCardNumber","all","clearPin","setAttribute","keys","serverErrors","success","fields","dataErrors","expDate","catch","overlayClassName","contentLabel","onSubmit","decorators","render","handleSubmit","form","submitting","pristine","onChange","target","onFocus","def","autocomplete"],"sourceRoot":""}