{"version":3,"file":"assets/js/chunks/929.476017571e1db17707d5.js","mappings":"qOAkCA,MAAMA,EAAkB,aA2GxB,QAAc,yBAzG8C,IAAgB,IAAf,QAAEC,GAAa,GACxE,QAAc,MAEd,QAAiC,2CAA4C,CACzEC,GAAI,iBAER,QAAiC,8CAA+C,CAC5EA,GAAI,mBAER,MAAMC,GAAY,QAA8B,yCAA0C,CACtFD,GAAI,eAGR,QAAyC,0BAA2B,CAChEA,GAAI,WAGR,QAAUC,EAAW,SAAS,IAAMF,EAAQG,MAAMC,UAAU,YAE5D,MAAMC,GAAW,QAA8B,CAAEC,UAAW,MA2B5DC,eAAeC,WAAWC,GACa,UAA/BA,GAASC,oBAA+B,UAE5C,MAAMC,QAAc,gBACd,QAAyCA,SAMnDJ,eAAeK,iBAAiBD,GAC5B,MAAM,OAAEE,GAAWF,EACnB,IAAKE,EAAQ,OAGG,wCAAXA,GACc,4CAAXA,GACHb,EAAQG,MAAMA,MAAMW,OAIrBd,EAAQe,UAAUC,OAAOjB,GAFzBC,EAAQe,UAAUE,IAAIlB,GAK1B,MAAMmB,QAAmB,QAAuBL,GAChD,IAAKK,EAAY,OAEjBA,EAAWC,cAAgBnB,EAAQmB,YAAYC,UAAYF,EAAWC,aACtED,EAAWG,iBAAmBrB,EAAQqB,eAAeC,UAAYJ,EAAWG,gBAC5EH,EAAWhB,YAAa,OAAeF,EAAQE,UAAWgB,EAAWhB,WAvB/DU,CAAiBD,SA0B3BJ,eAAegB,gBACXZ,EACAF,GAEIT,EAAQG,MAAMA,MAAMW,aACdd,EAAQG,MAAMqB,kBAAkBb,EAAOF,SAEvCT,EAAQG,MAAMsB,oBAAoBd,GAhCtCY,CAAgBZ,EAAOF,IAjCjC,SAAUF,UACN,MAAM,YAAEmB,SAAsB,UAEH,SAAvBA,EAAYb,QAKkC,OAA9Cb,EAAQG,MAAMwB,aAAa,sBACrB3B,EAAQG,MAAMyB,yBAGlBpB,aACNH,EAASwB,KAAK,CAAEC,QAAQ,KATpBzB,EAASwB,KAAK,CAAEC,QAAQ,OAYhC,gBACI,SAASvB,eAAkBC,WAAW,CAAEE,kBAAmB,YAAa,KACxE,CAAC,cAAe,gBAAiB,kBAGrC,gBACIH,eAAkBC,WAAW,CAAEE,kBAAmB,WAClD,CAAC,4BAuDL,QAAc,mBATuCH,UACjDE,EAAQsB,uBAAuBC,SAASC,IACpC,QAA2BA,GAAW,KAGtCxB,EAAQL,iBAAiBJ,EAAQG,MAAMC,UAAUK,EAAQyB,QACzDzB,EAAQ0B,qBAAqBnC,EAAQG,MAAMiC,mBAOnD,OAAO,kCAAyBC,aAFX,IAAM7B,WAAW,CAAEE,kBAAmB,gB,iECrI3D4B,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,wxKAAyxK,KAEl0K,QAAeH,EAAwBI","sources":["webpack://frontend-setup/./src/features/area-subscription/area-subscription.tsx","webpack://frontend-setup/./src/features/area-subscription/area-subscription.scss"],"sourcesContent":["import {\n defineElement,\n FC,\n onDidLoad,\n useBindMethod,\n useElement,\n useEvent,\n useListen,\n} from '@atomify/hooks';\nimport { h } from '@atomify/jsx';\nimport { setButtonLabel } from '@atoms/button/utilities';\nimport { debounce } from '@bpd-library/utilities';\nimport {\n resetAreaSubscriptionState,\n toggleProjectPhaseSelected,\n updateAreaSubscriptionState,\n} from '@features/area-subscription/store';\nimport {\n AreaSubscriptionFooterElement,\n AreaSubscriptionInitializer,\n AreaSubscriptionModalElement,\n AreaSubscriptionModalUpdateAction,\n ExtendedAreaSubscriptionState\n} from \"@features/area-subscription/types\";\nimport {\n getFooterDataForStatus,\n updateAreaSubscriptionTranslationOptions,\n} from '@features/area-subscription/utilities';\nimport { subscriptionStore } from '@store/subscription/store';\nimport { useAreaData, useStylesheet } from '@utilities/hooks';\n\nimport style from './area-subscription.scss';\nimport { AREA_SUBSCRIPTION_LOADED_EVENT } from './constants';\n\nconst INVISIBLE_CLASS = 'u-sr-only';\n\nconst AreaSubscription: FC = ({ element }) => {\n useStylesheet(style);\n\n useElement('[js-hook-area-subscription-footer-title]', {\n as: 'footerTitle',\n });\n useElement('[js-hook-area-subscription-footer-subtitle]', {\n as: 'footerSubtitle',\n });\n const footerCta = useElement('[js-hook-area-subscription-footer-cta]', {\n as: 'footerCta',\n });\n\n useElement('area-subscription-modal', {\n as: 'modal',\n });\n\n useListen(footerCta, 'click', () => element.modal.openModal(\"footer\"));\n\n const onLoaded = useEvent<{ loaded: boolean }>({ eventName: AREA_SUBSCRIPTION_LOADED_EVENT });\n onDidLoad(async () => {\n const { areaProject } = await useAreaData();\n\n if (areaProject.status === 'Sold') {\n onLoaded.emit({ loaded: false });\n return;\n }\n\n if (element.modal.getAttribute('initialized') === null) {\n await element.modal.componentOnReady();\n }\n\n await updateData();\n onLoaded.emit({ loaded: true });\n });\n\n subscriptionStore.subscribe(\n debounce(async () => await updateData({ modalActiveAction: 'submit' }), 500),\n ['areaProject', 'projectPhases', 'propertyTypes'],\n );\n\n subscriptionStore.subscribe(\n async () => await updateData({ modalActiveAction: 'login' }),\n ['isUpdatedFromUserStore'],\n );\n\n async function updateData(options?: { modalActiveAction?: AreaSubscriptionModalUpdateAction }) {\n if (options?.modalActiveAction === 'close') resetAreaSubscriptionState();\n\n const state = await updateAreaSubscriptionState();\n await updateAreaSubscriptionTranslationOptions(state);\n\n await updateFooterData(state);\n await updateModalData(state, options);\n }\n\n async function updateFooterData(state: ExtendedAreaSubscriptionState) {\n const { status } = state;\n if (!status) return;\n\n if (\n (status === 'subscribedToAreaNoProjectsAvailable' ||\n status === 'subscribedToAreaSubscribedToAllProjects') &&\n !element.modal.modal.active\n ) {\n element.classList.add(INVISIBLE_CLASS);\n } else {\n element.classList.remove(INVISIBLE_CLASS);\n }\n\n const footerData = await getFooterDataForStatus(status);\n if (!footerData) return;\n\n footerData.footerTitle && (element.footerTitle.innerText = footerData.footerTitle);\n footerData.footerSubtitle && (element.footerSubtitle.innerHTML = footerData.footerSubtitle);\n footerData.footerCta && setButtonLabel(element.footerCta, footerData.footerCta);\n }\n\n async function updateModalData(\n state: ExtendedAreaSubscriptionState,\n options?: { modalActiveAction?: AreaSubscriptionModalUpdateAction },\n ) {\n if (element.modal.modal.active) {\n await element.modal.updateModalActive(state, options);\n } else {\n await element.modal.updateModalInactive(state);\n }\n }\n\n const openInitialized: AreaSubscriptionInitializer = async (options) => {\n options.selectedProjectPhases?.forEach((projectId) =>\n toggleProjectPhaseSelected(projectId, true),\n );\n\n if (options.openModal) await element.modal.openModal(options.source!);\n if (options.autoSubscribe) await element.modal.nextStepClick();\n };\n\n useBindMethod('openInitialized', openInitialized);\n\n const onModalClose = () => updateData({ modalActiveAction: 'close' });\n\n return ;\n};\n\ndefineElement('bpd-area-subscription', AreaSubscription);\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".area-subscription-form{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.area-subscription-form--reversed{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.area-subscription-form__description{margin:.8rem 0 1.6rem}.c-area-subscription-list-card{pointer-events:none;text-align:start}.area-subscription-list-card--selectable{pointer-events:inherit}.area-subscription-list-card__inner{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%}.area-subscription-list-card__image{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0;height:auto;margin-bottom:1.6rem;width:100%}.area-subscription-list-card__details{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-pack:justify;-ms-flex-pack:justify;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;-webkit-justify-content:space-between;justify-content:space-between}.area-subscription-list-card--selectable.area-subscription-list-card--project-phase .area-subscription-list-card__details{min-height:12rem}.area-subscription-list-card--selectable.area-subscription-list-card--property-type .area-subscription-list-card__details{min-height:15rem}.area-subscription-list-card__checkbox{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0;pointer-events:none}.c-area-subscription-navigation-bar{background-color:var(--color-white);padding:1.2rem 2.8rem;width:100%}.area-subscription-modal__container{-webkit-box-orient:vertical;-webkit-box-direction:normal;color:var(--color-black);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100vh;position:relative;text-align:start;width:100vw}.area-subscription-modal__container .disabled{opacity:.5;pointer-events:none}.area-subscription-modal__close-button{height:4rem;position:absolute;right:.8rem;top:.8rem;width:4rem;z-index:3}.area-subscription-modal__close-confirmation{position:absolute;right:.8rem;top:.8rem;width:calc(100% - 1.6rem);z-index:4}.area-subscription-modal__pages-wrapper{-webkit-box-flex:1;-ms-flex-positive:1;background-color:var(--color-grey-5);-webkit-flex-grow:1;flex-grow:1;position:relative;width:100%}.area-subscription-modal__page{height:100%;overflow:auto;width:100%}.area-subscription-modal__navigation{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0;z-index:3}.c-area-subscription-list{display:block;height:auto;width:100%}.area-subscription-list--disabled{opacity:.5;pointer-events:none}.area-subscription-list__header{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.8rem;-webkit-justify-content:space-between;justify-content:space-between;padding-bottom:.8rem;width:100%}.area-subscription-list__header,.area-subscription-list__section-header{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.area-subscription-list__section-header{gap:.8rem 0}.area-subscription-list__section-header-item-counter{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;background-color:var(--color-grey-10);border-radius:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:1.2rem;font-weight:500;height:4.5rem;-webkit-justify-content:center;justify-content:center;letter-spacing:.5px;line-height:1.33;margin-right:.8rem;width:4.5rem}.area-subscription__checkbox .checkbox__label,.area-subscription__checkbox .form__item{margin-bottom:0}@media only screen and (min-width:48em){.area-subscription-list-card__inner{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.area-subscription-list-card__image{margin-bottom:0;margin-right:3.2rem}.area-subscription-list-card--project-phase:not(.area-subscription-list-card--selectable) .area-subscription-list-card__image{width:12rem}.area-subscription-list-card--project-phase .area-subscription-list-card__image{width:16rem}.area-subscription-list-card--property-type .area-subscription-list-card__image{width:20rem}.c-area-subscription-navigation-bar{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;padding:1.6rem 4.8rem}.area-subscription-modal__container{height:90vh;max-height:82rem;max-width:108rem;width:100vw}.area-subscription-modal__close-button{right:2.4rem;top:2.4rem}.area-subscription-modal__close-confirmation{right:2.4rem;top:2.4rem;width:24rem}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["INVISIBLE_CLASS","element","as","footerCta","modal","openModal","onLoaded","eventName","async","updateData","options","modalActiveAction","state","updateFooterData","status","active","classList","remove","add","footerData","footerTitle","innerText","footerSubtitle","innerHTML","updateModalData","updateModalActive","updateModalInactive","areaProject","getAttribute","componentOnReady","emit","loaded","selectedProjectPhases","forEach","projectId","source","autoSubscribe","nextStepClick","onModalClose","___CSS_LOADER_EXPORT___","push","module","id","toString"],"sourceRoot":""}