{"version":3,"sources":["webpack:///./node_modules/@irishlifedigitalhub/ds.organisms.investment-calculator/node_modules/@irishlifedigitalhub/ds.molecules.input/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/string-trim.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.mjs","webpack:///./node_modules/lodash/isEmpty.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.molecules.alert/dist/index.js","webpack:///./node_modules/xstate/es/index.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.table/dist/tablerowsdesktop.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/number-parse-int.js","webpack:///./node_modules/@irishlifedigitalhub/ds.molecules.menu-card/node_modules/@irishlifedigitalhub/ds.atoms.card/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.parse-int.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.table/dist/rendertablerows.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.molecules.accordion/dist/accordion.js","webpack:///./node_modules/@babel/runtime/helpers/esm/get.js","webpack:///./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.table/dist/mobileheader.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.array.flat-map.js","webpack:///./node_modules/@irishlifedigitalhub/ds.molecules.breadcrumb/index.js","webpack:///./node_modules/@irishlifedigitalhub/ds.organisms.jumbotron/node_modules/@irishlifedigitalhub/ds.atoms.button/index.js","webpack:///./node_modules/@irishlifedigitalhub/ds.molecules.jumbotron-contact/index.js","webpack:///./node_modules/@irishlifedigitalhub/ds.organisms.jumbotron/index.js","webpack:///./src/common/components/organisms/AdvisorBlockV4/formatButtons.ts","webpack:///./src/common/components/molecules/BulletWithIcon/BulletWithIcon.tsx","webpack:///./src/common/components/organisms/AdvisorBlockV4/AdvisorBlockV4.tsx","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/react/utils.js","webpack:///./node_modules/swiper/esm/react/params-list.js","webpack:///./node_modules/swiper/esm/react/loop.js","webpack:///./node_modules/swiper/esm/react/get-children.js","webpack:///./node_modules/swiper/esm/react/update-swiper.js","webpack:///./node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/esm/react/swiper.js","webpack:///./node_modules/swiper/esm/react/get-params.js","webpack:///./node_modules/swiper/esm/react/init-swiper.js","webpack:///./node_modules/swiper/esm/react/get-changed-params.js","webpack:///./node_modules/swiper/esm/react/virtual.js","webpack:///./node_modules/swiper/esm/react/swiper-slide.js","webpack:///./src/common/components/organisms/InvestmentHub/InvestmentHubCategories/TabGroup.tsx","webpack:///./src/common/components/organisms/InvestmentHub/InvestmentHubCategories/InvestmentHubCategoriesCard.tsx","webpack:///./src/common/components/organisms/InvestmentHub/InvestmentHubCategories/InvestmentHubPagination/InvestmentHubPagination.tsx","webpack:///./src/common/components/organisms/InvestmentHub/InvestmentHubCategories/InvestmentHubCategoriesCategoryListing.tsx","webpack:///./src/common/components/organisms/InvestmentHub/InvestmentHubCategories/InvestmentHubCategoriesAllListing.tsx","webpack:///./src/common/components/organisms/InvestmentHub/InvestmentHubFeatured/FeaturedCard.tsx","webpack:///./src/common/components/organisms/templateSections/AccordionSection/AccordionSection.tsx","webpack:///./src/common/components/organisms/AccordionInfoPanel/AccordionInfoPanel.tsx","webpack:///./src/common/components/organisms/Calculator/utils/machine.tsx","webpack:///./src/common/components/organisms/templateSections/AccordionInfoPanelPage/AccordionInfoPanelPage.tsx","webpack:///./src/common/components/molecules/Banner/Banner.tsx","webpack:///./src/common/components/organisms/templateSections/BannerCta/BannerCta.tsx","webpack:///./src/common/components/organisms/templateSections/BasicTable/BasicTable.tsx","webpack:///./src/common/components/organisms/templateSections/BodyOfText/BodyOfText.tsx","webpack:///./node_modules/@material-ui/icons/esm/AddBox.js","webpack:///./src/common/components/organisms/templateSections/BulletsWithImage/Bullet.tsx","webpack:///./src/common/components/organisms/templateSections/BulletsWithImage/Bullets.tsx","webpack:///./src/common/components/organisms/templateSections/BulletsWithImage/BulletsWithImage.tsx","webpack:///./src/common/components/organisms/Calculator/utils/progressIndicatorSteps.ts","webpack:///./src/common/components/organisms/Calculator/config/analytics.ts","webpack:///./src/common/components/organisms/Calculator/config/APIrequests.ts","webpack:///./src/common/components/organisms/Calculator/config/pensions.ts","webpack:///./src/common/components/organisms/Calculator/config/investment.ts","webpack:///./src/common/components/organisms/Calculator/config/incomeProtection.ts","webpack:///./src/common/components/organisms/Calculator/config/termLife.ts","webpack:///./src/common/components/organisms/Calculator/config/mortgageProtection.ts","webpack:///./src/common/components/organisms/Calculator/config/onePlan.ts","webpack:///./src/common/components/organisms/Calculator/config/index.ts","webpack:///./src/common/components/organisms/Calculator/utils/context.tsx","webpack:///./src/common/components/organisms/Calculator/components/footerNotes/FooterCommon.tsx","webpack:///./src/common/components/organisms/Calculator/components/footerNotes/pensionsFooterNotes.tsx","webpack:///./src/common/components/organisms/Calculator/components/footerNotes/footerNotesMapper.tsx","webpack:///./src/common/components/organisms/Calculator/components/footerNotes/IncomeProtectionFooterNotes.tsx","webpack:///./src/common/components/organisms/Calculator/components/Heading.tsx","webpack:///./src/common/components/organisms/Calculator/components/ProgressIndicator.tsx","webpack:///./src/common/components/organisms/Calculator/utils/viewSelector.ts","webpack:///./src/common/components/organisms/Calculator/components/views/RestrictionScreen.tsx","webpack:///./src/common/components/organisms/Calculator/components/views/ErrorScreen.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/config.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/AssumptionsCard.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/BenefitsCard.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/NextStepsCard.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/Loading.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/components/AdjustmentControls.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/utils/usePensionCalculator.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/components/IncomeProjectionText.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/components/MonthlyIncomeDisplay.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/legend.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/utils/pattern.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/components/LegendDisplay.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/components/RetirementBarChart.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/utils/getNextContribution.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/components/PensionCalculatorOutput/PensionCalculatorOutput.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/WarningAlerts.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/InvestmentCalculatorOutput/components/Result.tsx","webpack:///./node_modules/react-chartjs-2/dist/index.js","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/InvestmentCalculatorOutput/utils/get-investment-value.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/InvestmentCalculatorOutput/utils/get-data-points.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/InvestmentCalculatorOutput/components/Chart.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/InvestmentCalculatorOutput/components/Results.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/InvestmentCalculatorOutput/InvestmentCalculatorOutput.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/InvestmentCalculatorOutput/utils/getCalculatorReturns.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/config.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/Warnings.tsx","webpack:///./src/common/components/organisms/Calculator/utils/modifySteps.ts","webpack:///./src/common/components/organisms/Calculator/components/steps/CalculatorStepBinaryChoice.tsx","webpack:///./src/common/components/organisms/Calculator/styles/getStyles.ts","webpack:///./src/common/components/organisms/Calculator/components/inputs/utils.ts","webpack:///./src/common/components/organisms/Calculator/components/inputs/PhoneNumberInput.tsx","webpack:///./src/common/components/organisms/Calculator/components/inputs/EmailInput.tsx","webpack:///./src/common/components/organisms/Calculator/components/inputs/CurrencyInput.tsx","webpack:///./src/common/components/organisms/Calculator/components/inputs/DefaultInput.tsx","webpack:///./src/common/components/organisms/Calculator/components/inputs/DatePicker.tsx","webpack:///./src/common/components/organisms/Calculator/components/steps/HelperText.tsx","webpack:///./src/common/components/organisms/Calculator/components/steps/CalculatorStepInput.tsx","webpack:///./src/common/components/organisms/Calculator/components/steps/CalculatorStepMultipleChoice.tsx","webpack:///./src/common/components/organisms/Calculator/components/steps/CalculatorStepText.tsx","webpack:///./src/common/components/organisms/Calculator/components/steps/CalculatorStepDropdown.tsx","webpack:///./src/common/components/organisms/Calculator/components/steps/CalculatorStepAdjustmentControls.tsx","webpack:///./src/common/components/organisms/Calculator/components/steps/utils/stepsUtils.ts","webpack:///./src/common/components/organisms/Calculator/components/steps/CalculatorStep.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/components/AdjustmentForm.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/IncomeProtectionQuote/components/IncomeProtectionCalculatorOutput/utils/useIncomeProtectionCalculator.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/IncomeProtectionQuote/components/IncomeProtectionCalculatorOutput/components/charts.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/IncomeProtectionQuote/config.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/IncomeProtectionQuote/components/IncomeProtectionCalculatorOutput/components/AssumptionsCard.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/IncomeProtectionQuote/components/IncomeProtectionCalculatorOutput/components/YourDetailsCard.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/GetStarted.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/AddCircle.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/MoreInfo.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/IncomeProtectionQuote/components/IncomeProtectionCalculatorOutput/IncomeProtectionCalculatorOutput.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/IncomeProtectionQuote/components/ValidityCard.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/QuoteBreakdown.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/AdjustmentForm.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/CalculatorQuoteDisplay.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/TermLifeQuote/TermLifeCalculatorOutput/TermLifeCalculatorOutput.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/ValidityCard.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/common/HaveAQuestion.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/MortgageProtectionQuote/MortgageProtectionOutput/MortgageProtectionOutput.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/OnePlanProtectionQuote/OnePlanProtectionOutput/utils/helperFunctions.ts","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/OnePlanProtectionQuote/OnePlanProtectionOutput/components/CoverRequirements.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/OnePlanProtectionQuote/OnePlanProtectionOutput/components/QuoteCardheaders.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/OnePlanProtectionQuote/OnePlanProtectionOutput/components/QuoteCard.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/OnePlanProtectionQuote/OnePlanProtectionOutput/OnePlanProtectionOutput.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/QuoteComponentMapper.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/PensionCalculatorQuote/PensionCalculatorQuote.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/InvestmentCalculatorQuote/InvestmentCalculatorQuote.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/IncomeProtectionQuote/IncomeProtectionQuote.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/TermLifeQuote/TermLifeQuote.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/MortgageProtectionQuote/MortgageProtectionQuote.tsx","webpack:///./src/common/components/organisms/Calculator/components/quoteComponents/OnePlanProtectionQuote/OnePlanProtectionQuote.tsx","webpack:///./src/common/components/organisms/Calculator/components/steps/CalculatorStepCommon.tsx","webpack:///./src/common/components/organisms/Calculator/components/views/ViewSelector.tsx","webpack:///./src/common/components/organisms/Calculator/components/container/container-right.tsx","webpack:///./src/common/components/organisms/Calculator/components/container/container.tsx","webpack:///./src/common/components/organisms/Calculator/Calculator.tsx","webpack:///./src/common/components/organisms/templateSections/Calculator/Calculator.tsx","webpack:///./src/common/components/molecules/StepperWithArrows/ChevronLeftIcon.svg","webpack:///./src/common/components/molecules/StepperWithArrows/Stepper.tsx","webpack:///./src/common/components/molecules/StepperWithArrows/ChevronRightIcon.svg","webpack:///./src/common/components/organisms/Campaign3DSlideshow/Campaign3DSlideshow.tsx","webpack:///./src/common/components/organisms/templateSections/Campaign3DSlideshowPage/Campaign3DSlideshowPage.tsx","webpack:///./src/common/components/organisms/templateSections/CardGrid/CardGrid.tsx","webpack:///./src/common/components/organisms/templateSections/Cards/Cards.tsx","webpack:///./src/common/components/organisms/templateSections/CardsCarousel/CardsCarousel.tsx","webpack:///./src/common/components/organisms/CenteredText/CenteredText.tsx","webpack:///./src/common/components/organisms/templateSections/CenteredTextPage/CenteredTextPage.tsx","webpack:///./src/common/components/organisms/CountingCardsWithPagination/Card.tsx","webpack:///./src/common/components/molecules/Pagination/Pagination.tsx","webpack:///./src/common/components/organisms/CountingCardsWithPagination/CountingCardsWithPagination.tsx","webpack:///./src/common/components/organisms/templateSections/CountingCardsWithPaginationPage/CountingCardsWithPaginationPage.tsx","webpack:///./src/common/components/organisms/templateSections/Cta/Cta.tsx","webpack:///./src/common/components/organisms/DocumentDownloadPanel/DocumentDownloadPanel.tsx","webpack:///./src/common/components/organisms/templateSections/DocumentDownloadPage/DocumentDownloadPage.tsx","webpack:///./src/common/components/organisms/CampaignFeature/CampaignFeature.tsx","webpack:///./src/common/components/organisms/templateSections/Featured/Featured.tsx","webpack:///./src/common/components/organisms/templateSections/Iframe/Iframe.tsx","webpack:///./src/common/components/organisms/ImageWithParagraph/ImageWithParagraph.tsx","webpack:///./src/common/components/organisms/templateSections/ImageWithParagraphPage/ImageWithParagraphPage.tsx","webpack:///./src/common/components/organisms/templateSections/InvestmentCalculator/InvestmentCalculatorSection.tsx","webpack:///./src/common/components/organisms/MediaCard/MediaCard.tsx","webpack:///./src/common/components/organisms/templateSections/MediaCardPage/MediaCardPage.tsx","webpack:///./node_modules/@irishlifedigitalhub/ds.organisms.grid/index.js","webpack:///./src/common/components/atoms/UniversalLink/UniversalLink.tsx","webpack:///./src/common/components/organisms/templateSections/MenuCardGrid/MenuCardGrid.tsx","webpack:///./src/common/components/molecules/MetamoCard/MetamoCard.tsx","webpack:///./src/common/components/organisms/templateSections/Metamo/Metamo.tsx","webpack:///./src/common/components/organisms/MiniFooter/MiniFooter.tsx","webpack:///./src/common/components/organisms/templateSections/MiniFooterPage/MiniFooterPage.tsx","webpack:///./src/common/components/organisms/MultiCampaignFeature/MultiCampaignFeature.tsx","webpack:///./src/common/components/organisms/templateSections/MultiCampaignFeaturePage/MultiCampaignFeaturePage.tsx","webpack:///./src/common/components/organisms/MultiCardGalleryWithStepper/MultiCardGalleryWithStepper.tsx","webpack:///./src/common/components/organisms/templateSections/MultiCardGalleryWithStepperPage/MultiCardGalleryWithStepperPage.tsx","webpack:///./src/common/components/organisms/MultiFeatureList/MultiFeatureList.tsx","webpack:///./src/common/components/organisms/templateSections/MultiFeatureListPage/MultiFeatureListPage.tsx","webpack:///./src/common/components/molecules/PaginatedCards/PaginatedCards.tsx","webpack:///./src/common/components/organisms/MultiPaginatedCards/MultiPaginatedCards.tsx","webpack:///./src/common/components/organisms/templateSections/MultiPaginatedCardsPage/MultiPaginatedCardsPage.tsx","webpack:///./src/common/components/organisms/templateSections/Notices/Notices.tsx","webpack:///./node_modules/@irishlifedigitalhub/ds.atoms.pillar-icon/index.js","webpack:///./src/common/components/organisms/Pillars/PillarCard.tsx","webpack:///./src/common/components/organisms/Pillars/Pillars.tsx","webpack:///./src/common/components/organisms/templateSections/Pillars/Pillars.tsx","webpack:///./src/common/components/molecules/ProductListCard/ProductListingCTA.tsx","webpack:///./src/common/components/molecules/ProductListCard/ProductListCard.tsx","webpack:///./src/common/components/organisms/ProductRowLists/ProductRowLists.tsx","webpack:///./src/common/components/organisms/templateSections/ProductListing/ProductListing.tsx","webpack:///./src/common/components/organisms/ProofPoints/ProofPoints.tsx","webpack:///./src/common/components/organisms/templateSections/ProofPointsSection/ProofPointsSection.tsx","webpack:///./src/common/components/molecules/CustomPoplink/CustomPoplink.tsx","webpack:///./src/common/components/organisms/ResourcesWithLinks/ResourcesWithLinks.tsx","webpack:///./src/common/components/organisms/templateSections/ResourcesWithLinksPage/ResourcesWithLinksPage.tsx","webpack:///./src/common/components/organisms/templateSections/ShardCard/ShardCard.tsx","webpack:///./src/common/components/organisms/KnowledgeBase/SupportCenter.tsx","webpack:///./src/common/components/organisms/templateSections/Table/Table.tsx","webpack:///./src/common/components/design-system/atoms/select/index.tsx","webpack:///./src/common/components/design-system/molecules/selectDropdown/index.tsx","webpack:///./src/common/components/organisms/TeamGridFilter/TeamGridFilter.tsx","webpack:///./src/common/components/organisms/templateSections/TeamGridFilterPage/TeamGridFilterPage.tsx","webpack:///./node_modules/@irishlifedigitalhub/ds.organisms.testimonial-section/node_modules/@irishlifedigitalhub/ds.atoms.button/index.js","webpack:///./node_modules/@irishlifedigitalhub/ds.organisms.testimonial-section/index.js","webpack:///./src/common/components/organisms/templateSections/Testimonials/Testimonials.tsx","webpack:///./src/common/components/organisms/templateSections/TextWithImage/TextWithImage.tsx","webpack:///./src/common/components/organisms/templateSections/Timeline/Timeline.tsx","webpack:///./src/common/components/organisms/TrapeziumBanner/TrapeziumBanner.tsx","webpack:///./src/common/components/organisms/templateSections/TrapeziumBannerPage/TrapeziumBannerPage.tsx","webpack:///./src/common/components/organisms/templateSections/VideoWithText/VideoWithText.tsx","webpack:///./src/common/components/organisms/templateSections/Warnings/Warnings.tsx","webpack:///./src/common/components/templates/Generic/templateSectionMapper.tsx","webpack:///./src/common/components/organisms/templateSections/CollegeCostsCalculator/CollegeCostsCalculator.tsx","webpack:///./src/common/components/organisms/templateSections/Resources/Resources.tsx","webpack:///./src/common/components/organisms/templateSections/SupportCenter/SupportCenter.tsx","webpack:///./src/common/components/organisms/templateSections/TextWithTitle/TextWithTitle.tsx","webpack:///./src/common/components/organisms/AppointeddWidget/AppointeddWidget.tsx","webpack:///./src/common/components/organisms/templateSections/CanonicalTag/CanonicalTag.tsx","webpack:///./src/common/components/organisms/InvestmentHub/InvestmentHubFeatured/InvestmentHubFeatured.tsx","webpack:///./src/common/components/organisms/InvestmentHub/InvestmentHubCategories/InvestmentHubCategories.tsx","webpack:///./src/common/utils/getCmsTypesToReceiveBlogPostsProp.ts","webpack:///./src/common/components/templates/Generic/Generic.tsx","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///./node_modules/react-animated-number/build/AnimatedNumber.js","webpack:///./src/common/components/atoms/Video/Video.tsx","webpack:///./node_modules/react-hook-reading-time/dist/react-hook-reading-time.es.js","webpack:///./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack:///./src/common/components/organisms/ProductList/ProductList.tsx","webpack:///./node_modules/@irishlifedigitalhub/ds.atoms.avatar/index.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.molecules.alert/dist/alert.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.molecules.accordion/dist/index.js","webpack:///./node_modules/lodash/orderBy.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.table/dist/index.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.table/dist/table.js","webpack:///./node_modules/react-animated-number/build/index.js","webpack:///./node_modules/@irishlifedigitalhub/ds.organisms.jumbotron/node_modules/@irishlifedigitalhub/ds.theme/index.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.table/node_modules/@irishlife/ilgroupdesignsystem.atoms.button/dist/index.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.table/node_modules/@irishlife/ilgroupdesignsystem.atoms.button/dist/button.js","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.table/dist/tablemobile.js","webpack:///./node_modules/@irishlifedigitalhub/ds.molecules.menu-card/index.js","webpack:///./src/common/components/organisms/FeatureList/Feature.tsx","webpack:///./src/common/components/organisms/FeatureList/Features.tsx","webpack:///./src/common/components/organisms/FeatureList/FeatureListLeft.tsx","webpack:///./src/common/components/organisms/FeatureList/FeatureListRight.tsx","webpack:///./src/common/components/organisms/FeatureList/FeatureListTop.tsx","webpack:///./src/common/components/organisms/FeatureList/FeatureList.tsx"],"names":["Input","forwardRef","props","ref","isInvalid","helperText","label","isValid","isDisabled","id","leftIcon","noX","rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__rest","createElement","color","htmlFor","assign","fontSize","sx","requireObjectCoercible","whitespace","ltrim","RegExp","rtrim","createMethod","TYPE","$this","string","String","replace","module","exports","start","end","trim","originalModule","webpackPolyfill","create","children","defineProperty","enumerable","get","l","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","F","done","value","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","noop","uid","isNullOrUndef","type","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","endsWith","parseFloat","toDimension","callback","fn","args","thisArg","apply","each","loopable","reverse","keys","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone$1","source","map","target","klen","k","isValidKey","key","_merger","options","tval","sval","merge","sources","merger","mergeIf","_mergerIf","keyResolvers","v","x","y","resolveObjectKey","obj","_step2","parts","split","tmp","_iterator2","part","push","_splitKey","_step","_iterator","_getKeyResolver","_capitalize","str","charAt","toUpperCase","defined","isFunction","setsEqual","a","b","size","_step3","_iterator3","item","has","_isClickEvent","PI","Math","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","roundedRange","round","almostEquals","niceRange","pow","floor","fraction","_factorize","result","sqrt","sort","pop","isNumber","isNaN","epsilon","abs","almostWhole","rounded","_setMinAndMaxByKey","array","property","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","arguments","undefined","_lookup","table","cmp","mid","hi","lo","_lookupByKey","last","_rlookupByKey","_filterBetween","values","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","forEach","method","base","_len","_key","res","this","object","unlistenArrayEvents","stub","splice","_arrayUnique","items","set","Set","add","requestAnimFrame","window","requestAnimationFrame","throttled","updateFn","updateArgs","ticking","_len2","_key2","debounce","delay","timeout","_len3","_key3","clearTimeout","setTimeout","_toLeftRightCenter","align","_alignStartEnd","_textX","left","right","rtl","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","count","_sorted","iScale","_parsed","axis","_iScale$getUserBounds","getUserBounds","minDefined","maxDefined","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","atEdge","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","m","d","easeInOutBounce","lim","h","p2b","n2b","b2n","n2p","map$1","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","c","hex","h1","h2","eq","_hexString","r","g","isShort","alpha","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","exec","p1","p2","hwb2rgb","hsv2rgb","names","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","j","ok","nk","unpacked","tkeys","parseInt","unpack","transparent","toLowerCase","RGB_RE","to","modHSL","ratio","clone","proto","fromObject","input","functionParse","rgbParse","Color","ret","_rgb","_valid","concat","_hslString","weight","w2","c1","c2","w1","rgb1","rgb2","_interpolate","val","deg","_rotate","index_esm","isPatternOrGradient","getHoverColor","saturate","darken","hexString","overrides","descriptors","getScope$1","node","_set","root","scope","defaults","Defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","style","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","_Object$definePropert","scopeObject","targetScopeObject","privateName","defineProperties","writable","local","_scriptable","startsWith","_indexable","_fallback","_measureText","data","gc","longest","textWidth","measureText","width","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","rotate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","top","bottom","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","line","opts","lines","strokeWidth","strokeColor","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","translation","fillStyle","textAlign","textBaseline","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","matches","match","_readValueToProps","_step4","objProps","read","prop","_iterator4","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","warn","toFontString","resolve","inputs","info","cacheable","_addGrace","minmax","grace","beginAtZero","change","keepZero","createContext","parentContext","_createResolver","scopes","_cache","prefixes","rootScopes","getTarget","_resolve","toStringTag","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","_scopes","getPrototypeOf","getKeysFromAllScopes","includes","ownKeys","storage","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","receiver","isScriptable","Error","join","delete","needsSubResolver","createSubResolver","_resolveScriptable","isIndexable","filter","_step5","_iterator5","resolver","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_proxy$_scriptable","_proxy$_indexable","_proxy$_allKeys","_allKeys","readKey","prefix","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_step6","_iterator6","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","_step7","_iterator7","_step8","_iterator8","_step9","_iterator9","_step10","_iterator10","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_this$_parsing$key","_parsing","parsed","parse","EPSILON","getPoint","skip","getValueAxis","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","delta","pointBefore","valueAxis","iPixel","vPixel","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","firstPoint","middlePoint","afterPoint","current","d01","d12","s01","s12","fa","fb","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","document","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","positions","getPositionedStyle","styles","suffix","pos","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","_getCanvasPosition","touches","offsetX","offsetY","box","shadowRoot","useOffsetPos","getBoundingClientRect","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","addEventListener","removeEventListener","readUsedSize","el","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","formatNumber","num","locale","cacheKey","JSON","stringify","formatter","Intl","NumberFormat","getNumberFormat","format","getRtlAdapter","rectX","_x","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_x2","_itemWidth","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_ref","_boundSegment","segment","bounds","prevValue","startBound","endBound","_propertyFn2","_getSegment","_propertyFn","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","_computeSegments","segmentOptions","_loop","_findStartAndEnd","findStartAndEnd","splitByStyles","cur","stop","solidSegments","_fullLoop","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","dir","_step11","_iterator11","styleChanged","p0","p0DataIndex","p1DataIndex","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","baseKeys","getTag","isArguments","isArrayLike","isBuffer","isPrototype","isTypedArray","tag","Alert","alert_1","actions","raise","send","sendParent","sendUpdate","log","cancel","after","respond","forwardTo","escalate","choose","pure","_slicedToArray","__importDefault","mod","__esModule","TableRowsDesktop","react_1","react_2","ilgroupdesignsystem_atoms_text_1","ilgroupdesignsystem_icons_1","rendertablerows_1","RenderTableRowHeaders","rowGroupItem","showIcon","handleToggle","default","Box","px","py","Text","variant","rowGroupTitle","as","Collapsible","columns","column","rowgroup","isSmallScreen","initialState","isExpanded","_react_1$default$useS","useState","_react_1$default$useS2","showIndex","setShowIndex","tempState","itemIndex","ChevronUpIcon","ChevronDownIcon","Fragment","Table","alignItems","padding","Tbody","RenderedTableRows","Collapse","in","animateOpacity","global","whitespaces","$parseInt","FORCED","radix","borderColorMap","life","investments","health","pensions","smartinvest","wellbeing","general","lapsed","surrendered","proposal","borderDisabledColorMap","Card","_props$src","src","borderTop","borderLeft","borderBottom","borderRight","imgHeight","borderStyles","useMemo","_ref2","entries","find","_ref4","_ref5","_value","_ref3","borderDisabledColor","borderTopColor","borderTopWidth","borderLeftColor","borderLeftWidth","borderBottomColor","borderBottomWidth","borderRightColor","borderRightWidth","getVariantBorderStyles","commonProps","spacing","shadow","overflow","bg","position","objectFit","$","parseIntImplementation","forced","columnIndex","rows","row","rowIndex","Tr","rowTitle","Td","cellValues","cellValue","CheckIcon","MinusIcon","columnTitle","__createBinding","k2","desc","__setModuleDefault","__importStar","Accordion","Icons","AccordionItem","header","_props$icon","icon","iconElement","Image","display","boxSize","pr","IconComponent","AccordionButton","_hover","flex","AccordionIcon","AccordionPanel","pb","img","mr","ml","mb","mt","defaultIndex","allowToggle","allowMultiple","MobileHeader","handleHeaderClick","columnClass","HStack","flexDirection","gap","background","borderRadius","order","flexGrow","isSelected","whiteSpace","flattenIntoArray","toObject","toLength","aFunction","arraySpeciesCreate","flatMap","callbackfn","sourceLen","displayName","viewBox","path","Button","_a","contactTitle","contactText","contactIcon","flexWrap","marginTop","marginBottom","marginRight","alt","href","Jumbotron","_props$variant","_props$leftContentMax","leftContentMaxWidth","buttonText","secondaryButtonText","_props$buttonProps","buttonProps","_props$secondaryButto","secondaryButtonProps","title","subtitle","paragraph","renderBreadcrumb","contactOnClick","hasPrimaryCta","hasSecondaryCta","hasCta","hasContact","secondaryCtaVariant","md","overflowY","maxW","zIndex","pl","lg","rightIcon","minH","ComponentImage","BackgroundSvg","transform","bgImage","backgroundPosition","backgroundRepeat","backgroundSize","formatIconPosition","iconPosition","BulletWithIcon","bullet","titleProps","textProps","iconProps","mainDivProps","RichText","html","StyledRichText","styled","StyledRichTextMobile","extend","ssrDocument","body","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","hostname","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","Date","screen","matchMedia","cancelAnimationFrame","getWindow","win","_getPrototypeOf","setPrototypeOf","__proto__","_setPrototypeOf","_isNativeReflectConstruct","construct","sham","_construct","Parent","Class","instance","Function","bind","_wrapNativeSuper","Wrapper","Dom7","_Array","subClass","superClass","_this","self","ReferenceError","_assertThisInitialized","arrayFlat","arrayFilter","selector","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","trigger","on","Methods","addClass","classes","classNames","_el$classList","classList","removeClass","_el$classList2","remove","hasClass","_len4","_key4","className","contains","toggleClass","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transition","duration","transitionDuration","_len5","_key5","eventType","targetSelector","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","handleEvent","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","_len9","_key9","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","offsetWidth","outerHeight","_styles2","offsetHeight","offset","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","css","_prop","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","_next","previousElementSibling","prevAll","prevEls","_prev","_parent","closest","foundElements","found","removeChild","methodName","browser","nextTick","now","getTranslate","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","HTMLElement","noExtend","nextSource","keysArray","nextIndex","nextKey","__swiper__","bindModuleMethods","subKey","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","gestures","calcSupport","getDevice","_temp","support","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","swiper","resize","createObserver","destroyed","initialized","ResizeObserver","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","emit","orientationChangeHandler","init","params","resizeObserver","destroy","_extends","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","onTouchStart","touchEventsData","enabled","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","which","button","isTouched","isMoved","noSwipingClass","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","diffX","diffY","touchAngle","isHorizontal","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","time","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","velocityEvent","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","createElements","url","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","descriptor","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","update","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","ceil","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","_slide$","swiperSlideSize","_i","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","_","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","slideFound","clickedSlide","clickedIndex","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","initial","indexAsNumber","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","move","passive","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","minRatio","substr","_points$i","wasLocked","lastSlidePosition","addClasses","resultClasses","suffixes","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","moduleParamName","auto","desktop","swiperParams","passedParams","eventName","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","setProgress","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","Navigation","toggleEl","disabled","disabledClass","tagName","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","$container","checkProps","createElementIfNotDefined","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","_swiper$navigation3","click","_swiper$navigation4","targetEl","pagination","clickable","isHidden","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","getChildren","slots","Children","toArray","slot","foundSlides","processChildren","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","thumbs","controller","control","newValue","lazy","load","render","useIsomorphicLayoutEffect","deps","_excluded","externalElRef","_ref$tag","Tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","excluded","sourceKeys","_objectWithoutPropertiesLoose","eventsAssigned","_useState","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","_useState3","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","allowedParams","getParams","restProps","_getChildren","onBeforeBreakpoint","_containerClasses","initSwiper","extendWith","renderExternal","renderExternalUpdate","mountSwiper","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","parallax","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","SwiperSlide","externalRef","slideData","_ref$className","zoom","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","tabFilterItem","boxShadow","wordWrap","tabFilterActiveItem","tabSwipeNextButton","tabSwipePrevButton","TabGroup","tabs","SwiperCore","sliderSettings","tab","justifyContent","fontWeight","cardVariants","hidden","opacity","visible","exit","InvestmentHubCategoriesCard","isDesktop","useDesktop","formatReadTime","readTime","category","metaData","handleClick","navigate","motion","div","custom","animate","variants","textTransform","buttonLabel","useStyles","makeStyles","theme","border","outline","paginationHidden","paginationButton","down","paginationArrowButton","InvestmentHubPagination","totalItems","pageSize","currentPage","setCurrentPage","pages","totalPages","isDotAlreadyAdded","data-testid","getPaginationComponent","InvestmentHubCategoriesCategoryListing","blogCardsPaginated","setBlogCardsPaginated","useEffect","generateBlogCardsPaginated","blogGroup","blogPosts","_blogsPaginated","gridTemplateColumns","AnimatePresence","blog","codename","scrollToListing","InvestmentHubCategoriesAllListing","groups","group","FeaturedCard","FeaturedCardDesktop","description","noCallback","imageSrc","TagFeaturedDesktop","paddingTop","paddingBottom","FeaturedCardMobile","newCategory","isTruncated","TagFeaturedMobile","StyledAccordion","AccordionSection","titleStyle","getAccordionSectionData","accordion_section__title","accordion_section__text","accordion_section__items","random","heading","children_test","AccordionInfoPanel","templateColumns","alignContent","justifyItems","paragraphTitle","getProps","breakoutStyles","Banner","callToAction","isPhoneNumber","BasicButton","analyticsId","analyticsEventName","getBannerCtaData","card_cta_0396ba7__cta_analytics_id","card_cta_0396ba7__cta_label","card_cta_0396ba7__cta_url","minHeight","phoneRegex","mailRegex","tableIndex","getBodyOfTextData","content","body_of_text__body","createSvgIcon","Bullet","AddBox","Bullets","bullets","useTheme","Spacer","component","rowGap","columnGap","getBulletsWithImageData","imagePlacement","image_placement","stepperSteps","Investment","Pensions","IncomeProtection","TermLife","MortgageProtection","OnePlanWithPartner","OnePlan","quoteScreenAnalytics","analyticsName","fireAnalyticsEvent","properties","clickToCall","clickURL","clickID","clickText","analyticsService","onInteracted","isInteracted","interacted","onCompleted","onButtonClicked","calc_type","transformedQuestions","stepName","handleOtherAnalytics","formValues","screenNo","employmentStatus","currentPension","APIrequestOnePlan","URL","paramsStandard","paramsEssential","paramsComprehensive","Promise","all","Axios","standard","essential","comprehensive","error","standardQuoteData","qs","replaceAll","essentialQuoteData","comprehensiveQuoteData","APIrequest","paramaters","request","quoteData","statePension","toFixed","pensionAPI","API_URL","onSubmit","age","income","contributionValue","currentPensionValue","retirementAge","totalContribution","contribution1","jobContribution","contribution2","calculateTotalContribution","salary","pensionValue","APItype5","then","response","annualPensionValue","statePensionValue","userContributedPensionProjection","annualPension","isStatePension","projection","barChart","userContributedPensionProjectionChartVal","statePensionValueChartVal","pensionsTool","setScreen","stepsTransformation","steps","firstSteps","currentPensionTransformation","secondSteps","employmentStatusTransformation","employeeJobContributionTransformation","transformedSteps","pensionThroughWork","investmentTool","API","incomeProtectionTool","getApiConstants","getOccupationClass","occupation","occupationClass","occupations","quickQuoteId","productId","currentDate","incomeAmount","amountToProtect","calculateIncomeAmount","coverTypeCd","jointLife","indexation","frequencyCd","dateOfBirth1Day","getDate","dateOfBirth1Month","getMonth","dateOfBirth1Year","getFullYear","dateOfBirth","sexCd1","smokerCd1","isSmoker","incomeIncreaseRate","BillPayOccupationClass","incomeAmt","deferredWeeks","endAge","termLifeTool","lifeCoverAmt","coverNeeded","conversion","firstName","lastName","phone","email","term","maxAge","age1","mortgageProtectionTool","twoPeopleTransformation","coverFor","dateOfBirth2Day","dateOfBirth2Month","dateOfBirth2Year","age2","smokerCd2","isSmoker2","onePlanProtectionTool","childNumTransformation","jointTransformation","thirdSteps","mortgageOrRentTransformation","fourthSteps","additionalCoverTransformation","fifthSteps","SICTransformation","AdditionalLifeCoverTransformation","isAdditionalLifeCover","isAdditionalLifeCover2","isSpecifiedIllnessCover","isSpecifiedIllnessCover2","otherCoverRentNeither","isOtherCover","otherCoverRentNeither2","isOtherCover2","codeName","childNum","mortgageOrRent","onePlanParamsStandard","getApiParamsOnePlan","onePlanParamsEssential","onePlanParamsComprehensive","apiConstants","config","CalculatorMachine","createMachine","initialQuestions","isRestarted","createCrmLead","user","calculatorType","schema","states","Calculate","OnFormUpdate","Interacted","payload","Back","Pristine","Initialise","invoke","onDone","cond","onError","restartCalculatorOnError","onNeedHelpClicked","updateQuoteData","setInitialQuestions","updateFormValues","restartCalculator","updateTransformedQuestions","updateCounter","createCRMLead","services","getQuoteDetails","CalculatorMachineContext","calculatorService","CalculatorMachineProvider","useInterpret","Provider","useCalculatorMachine","globalServices","useContext","useActor","state","FooterContactNotes","textDecoration","FooterCommonNotes","PensionFooterNotes","footerNotesMapper","Heading","justify","wrap","ProgressIndicator","calcType","setCalcType","currentStep","checkOccupationClass","RestrictionScreen","ErrorScreen","checkIfOccupationRestriction","quoteCardData","taxRelief","assumptions","AssumptionsCard","BenefitsCard","benefits","benefit","NextStepsCard","Loading","AdjustmentControls","onDecrease","onIncrease","onReset","isAttached","aria-label","minW","formatValue","numeral","pensionCalculatorState","atom","userContribution","usePensionCalculator","useRecoilState","calcState","setCalcState","debouncedUpdate","useCallback","changeUserContribution","setContribution","contribution","oldState","setRetirementAge","replacementPercentage","IncomeProjectionText","MonthlyIncomeDisplay","Legend","Grid","xs","bgRepeat","pattern","encodeURIComponent","LegendDisplay","RetirementBarChart","isRefetching","total","ResponsiveContainer","BarChart","layout","patternUnits","patternTransform","XAxis","hide","YAxis","dataKey","Bar","stackId","getNextContribution","increase","stepSize","PensionCalculatorOutput","WarningAlerts","Result","note","highlighted","enumerableOnly","symbols","sym","_objectSpread","getOwnPropertyDescriptors","reforwardRef","setLabels","currentData","nextLabels","labels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","dataset","cloneData","nextData","ChartComponent","_param$height","_param$width","_param$redraw","redraw","_param$plugins","fallbackContent","updateMode","canvasRef","chartRef","renderChart","destroyChart","nextOptions","setOptions","role","Chart","createTypedChart","registerables","register","Line","getInvestmentValue","principal","regular","rate","getDataPoints","dataPoints","currentYear","year","ChartJS","CategoryScale","LinearScale","PointElement","LineElement","Title","Tooltip","Filler","grid","ticks","autoSkipPadding","maxRotation","legend","boxWidth","LineChart","cashDataPoints","investmentDataPoints","dataPoint","INVESTMENT_RATE","Results","results","returnOnCash","returnOnInvestment","my","InvestmentCalculatorOutput","lumpSum","initialAmount","monthlyAmount","noOfYears","calculatorReturns","getCalculatorReturns","Warnings","modifySteps","calculatorSteps","cardCaption","cardcaptionnew","card_caption","buttonCaption","button_caption","tooltipicon","getCalcalutorSteps","fieldName","calculatordata__field_name","helpertext","new_helper_text","inputtype","input_type","isOptional","optional","calculatorstepheader__title","multiple_choice_options","placeholder","stepsize","defaultvalue","errorMessage","error_message","minvalue","maxvalue","CalculatorStepBinaryChoice","onChange","defaultSelected","isSecondary","isBinary","getStyles","_placeholder","amountPercentageToProtect","isPhoneValid","phoneNumber","isValidPhoneNumber","PhoneNumberInput","setIsTouched","rules","required","minLength","message","validate","onBlur","initialValueFormat","defaultCountry","EmailInput","CurrencyInput","thousandSeparator","onValueChange","DefaultInput","onWheel","DatePicker","HelperText","errors","dynamicHelperText","CalculatorStepInput","childProps","CalculatorStepMultipleChoice","option","option_label","CalculatorStepText","createStyles","disableUnderline","borderStyle","CalculatorStepDropdown","Autocomplete","renderInput","TextField","autoComplete","InputProps","getOptionLabel","CalculatorStepAdjustmentControls","CalculatorStep","handleOnChange","updateData","AdjustmentForm","useForm","shouldUnregister","handleSubmit","watch","formState","questions","updatedValues","calculatorStep","incomeProtectionCalculatorState","premium","coveredIncome","stateCover","useIncomeProtectionCalculatorCalculator","prem","setYearlyIncome","setAmountToProtect","getStarted","bodyText","secondaryCTALabel","secondaryCTALink","link","linkLabel","moreInfoProps","modalContent","imgAltText","Charts","amountNotCovered","heightOfNotCovered","heightOfCovered","heightOfStateCovered","toLocaleString","YourDetailsCard","GetStarted","getAnalyticsParams","AddCircleIcon","createIcon","clipRule","strokeLinecap","strokeLinejoin","MoreInfo","useDisclosure","isOpen","onOpen","onClose","finalRef","React","useRef","AddCircle","finalFocusRef","colorScheme","IncomeProtectionCalculatorOutput","orientation","ValidityCard","QuoteBreakdown","costOfQuote","premInclLevy","fee","levy","peopleCovered","CalculatorQuoteDisplay","adjustmentFormProps","TermLifeCalculatorOutput","quoteDisplayProps","validity","HaveAQuestionCard","MortgageProtectionOutput","findIfApplicable","FormValues","cover1","cover2","ifBillCoverApplicable","isAddtionalProtectionBillCover","isAddtionalProtectionBillCover2","addValues","val2","getOnePlanColumns","funeralCover","covers","getOnePlanCovers","billCoverAmount","billCoverAmountMax","income2","income1","billCoverAmountTotal","mortgagePayment","getBillCoverAmount","isMarried","getModelContent","price","isApplicable","decreasingLifeCover1","StandardPlan","decreasingLifeCover2","yourCover","partnerCover","billCover1","billCover2","specifiedIllness1","specifiedIllness2","EssentialPlan","ComprehensivePlan","lifeCoverPrem1","lifeCoverPrem2","billPayPrem1","billPayPrem2","sicCoverPrem1","sicCoverPrem2","RiskCard","coverRequirements","CoverRequirement","QuoteCardHeaders","QuoteCard","coverDetails","moreInfo","coverDetail","OnePlanProtectionOutput","activeStyles","setColumn","initialColumnState","setcolumnClass","columnState","QuoteComponentMapper","CalculatorStepCommon","isDirty","isFetching","formValuestoCheck","question","isFormComplete","every","isSubmit","isEmpty","_disabled","isLoading","loadingText","_loading","ViewSelector","QuoteComponent","ContainerRight","backgroundImage","Container","FooterNotes","tool_label","imagetext","tool_caption","colSpan","Calculator","Stepper","defaultStep","leftIndicator","rightIndicator","vertically","setIndex","number","Campaign3DSlideshow","cards","sliderImages","card","setImages","tempArray","shiftArrayToLast","mx","perspective","transformStyle","srcSet","subtitle2","untitled_linked_items","subtitle_2","description_b57cf5a","file","button_c9ad60e__text","button_c9ad60e__url","card_cta_0396ba7__cta_variant","fullWidthWrapperStyles","getCardGridData","cardgrid__heading","products","cardgrid__products","product","cardgrid__text","cardgrid__title","getCardsData","threecards__heading","threecards__title","threecards__subtitle","threecards__cards","ctaLabel","threecards__cta_label","ctaUrl","threecards__cta_url","noWrap","threecards__wrap_cards","alignTextLeft","threecards__align_text_left","getCardsCarouselData","cardscarousel__label","list","blogpostselector__blog_posts","getArticleData","CenteredText","isMobile","useMediaQuery","bgColor","getCareersCenteredTextData","centered_text","untitled_multiple_choice","counter","Pagination","itemsPerPage","showControls","callBack","startIndex","endIndex","visibleItems","progressBarValue","progressValue","Infinity","CountingCardsWithPagination","setVisibleItems","calculateCounter","fontStyle","paginationData","mini_cards","getCtaData","call_to_action__analytics_id","call_to_action__label","call_to_action__iconlocation","call_to_action__icon","call_to_action__text","call_to_action__url","call_to_action__variant","DocumentDownloadPanel","sm","colStart","colEnd","fileSize","Link","open","downloadPath","documents","CampaignFeature","dpr","useDpr","Hidden","CardCta","getFeaturedData","call_to_action__title","getIframeData","iframe__src","iframe__title","iframe__width","iframe__height","mobileHeight","iframe__mobile_height","scrolling","iframe__scrolling","iframe__heading","iframe__text","ImageWithParagraph","button_c9ad60e__analytics_id","endIcon","card_cta_0396ba7__cta_icon","getCtaConfig","bookingUrl","bookingAnalyticsId","booking_cta_analytics_id","calculateAnalyticsId","calculate_cta_analytics_id","MediaCard","_useMediaQuery","spacingY","spacingX","UniversalLink","getMenuCardGridProps","getMenuCards","menucard","menuCards","menuCard","getMenuCardsProps","menu_card__cta","menu_card__icon","largeTitle","menu_card__maintitle","linkComponent","menu_card__image","menu_card__subtitle","menu_card__title","selectedCard","MetamoCard","branchName","getPreScreen","isAdvisorView","selectedBranch","metamoVariant","sourceBranchName","getBranchList","metamo_branch_list","branch_name","branchId","branch_id","MiniFooter","loginLink","login_link","MultiCampaignFeature","imageLeft","image_left","MultiCardGalleryWithStepper","selectedCardIndex","setSelectedCardIndex","cardStyle","currentCard","career_card_with_pagination","MultiFeatureList","caption","paginationItems","FeatureList","textwithimages","featureTitle","featurelist__bullets_title","featureSubtitle","featurelist__bullets_subtitle","features","featurelist__features","featurelist__image","featurelist__subtitle","featurelist__title","featurelist__variant","cta","featurelist__cta","secondaryTitle","secondary_title","featurelist__cta_analyticsid","featurelist__cta_label","featurelist__cta_icon","featurelist__cta_url","featurelist__cta_variant","noSpacer","PaginatedCards","idx","MultiPaginatedCards","subTitle","secondSubtitle","secondTitle","cardTitle","secondtitle","secondsubtitle","getNotices","notices","notice","noticeVariant","dict","inforce","rgba","financialplan","fontSizes","xsm","xxsm","msm","PillarIcon","_props$size","_props$isDisabled","_props$planStatus","planStatus","pillarIcon","HealthIcon","LifeIcon","PensionsIcon","InvestmentsIcon","FinancialPlan","WellbeingIcon","ProposalIcon","filled","Circle","_props$variant2","_props$size2","_props$isDisabled2","_props$planStatus2","showCount","Count","fillOpacity","vectorEffect","fillRule","contentPropsMap","PillarCard","primaryCta","secondaryCta","pillarName","isMobileExtraSmall","_focus","hide_cta","Pillars","pillars","subtitle___color","title___color","pillar","getPillarProps","life_insurance_text","life_insurance_ctas","cta__label","cta__url","cta__analytics_id","hide_primary_ctas","health_insurance_text","health_insurance_ctas","pensions_text","pensions_ctas","investments_text","investments_ctas","ProductListingCTA","ishighlighted","TagManager","dataLayer","iconSizeList","ProductListCard","iconSize","ProductRowLists","productRowLists","templateRows","productRowList","productListing","getProductRowListingProps","product_lists","ProofPoints","isDark","palette","VIBRANT_700","lightStyles","BRAND_900","darkStyles","getProofPointsData","proof_points__heading","proof_points__variant","proof_points__items","CustomPoplink","ResourcesWithLinks","poplink","imageUrl","getSharedCardProps","sharedCard","templatesection___shardcard__title","templatesection___shardcard__text","handleCallBack","templatesection___shardcard__cta","callbackLabel","callbackVariant","callbackSize","templatesection___shardcard__image","imageBottom","SupportCenter","getTableData","getTableColumns","table_columns","getTableRowGroup","table_rows","rowGroup","rowValues","row_title","rowgroup_title","is_collapsible","is_expanded","column_cell_values","column_boolean_values","column_text_values","column_title","columnSubtitle","column_subtitle","columnCTALabel","columnCTAVariant","formControl","selectEmpty","empty","NEUTRAL_300","dropdownStyle","WHITE","menuItem","VIBRANT_100_SECONDARY","NEUTRAL_900","iconDisabled","inputStyles","BRAND_100","fontFamily","BRAND_200","withStyles","INPUT_BASE","DefaultInputWhite","PlaceholderInput","PlaceholderInputWhite","SimpleSelect","isWhiteBackground","showOptional","selectedValue","setValue","FormControl","labelId","displayEmpty","MenuProps","paper","EXPAND_MORE","inputProps","MenuItem","darkBackground","letterSpacing","NEUTRAL_700","Dropdown","isDarkBackground","TeamGridFilter","showFilters","members_card_style","cardStore","setCardStore","filterValues","setFilterValues","companyFilterOptions","setCompanyFilterOptions","idIterator","company","companyName","applyFilters","inputName","filtered","department","prevValues","jobTitle","buttonUrl","_focusVisible","buttonIcon","team_members","full_name","job_title","show_filters","button_c9ad60e__icon","openingTagRegex","closingTagRegex","_props$type","quote","_props$name","avatarSrc","nameString","defaultTitle","defaultRole","xmlns","Testimonials","getTestimonialProps","testimonial","testimonials","testimonialcustomer__location","getTextWithImageData","featurelist__cta_icon_position","getTimelineData","timeline__steps","TrapeziumBanner","clipPath","getVideoWithTextData","video__height","video__width","video__url","video__video","video__title","video__heading","video__text","getWarningsData","alerts","alerts__alerts","alert","TemplateSectionComponent","templatesection___accordionsection","templatesection___banner_cta","templatesection___bodyoftext","templatesection___bulletswithimage","FeatureListImage","templatesection___card_grid","ProductList","generic","templatesection___cards","Benefits","templatesection___cardscarousel","LatestNews","templatesection___collegecostscalculator","digitalAdviceUrl","COLLEGE_COSTS_CALCULATOR_DIGITAL_ADVICE_URL","graphQLEndpoint","COLLEGE_COSTS_CALCULATOR_GRAPHQL_ENDPOINT","templatesection___cta","JumbotronCallToAction","templatesection___featured","templatesection___iframe","expanded","setExpanded","handleIframeMessage","collapsed","templatesection___investmentcalculatorsection","ctaConfig","onBook","scrollIntoView","onCalculate","templatesection___metamo","branchList","isadvisorview","setSelectedBranch","showAdvisorbooking","setShowAdvisorbooking","AdvisorBooking","preScreen","slim","templatesection___notices","displayTitle","displaytitle","Notice","templatesection___productlisting","templatesection___proofpoints","templatesection___resources","getResourcesData","templatesection___supportcenter","templatesection___table","templatesection___testimonials","templatesection___textwithimage","templatesection___textwithtitle","templatesection___timeline","TimelineSteps","templatesection___videowithtext","Video","templatesection___warnings","Alerts","templatesection___centeredtext","processedProps","templatesection___resourceswithlinks","templatesection___minifooter","templatesection___multicampaignfeature","templatesection___imagewithparagraph","templatesection___multicardgallerywithstepper","templatesection___countingcardswithpagination","templatesection___documentdownloadpanel","templatesection___trapeziumbanner","templatesection___shardcard_c08e77b","templatesection___campaign3dslideshow","templatesection___mediacard","templatesection___multifeaturelist","templatesection___accordioninfopanel","templatesection___teamgridfilter","templatesection___multipaginatedcards","calculator","templatesection___menucardgrid","templatesection___pillars","templatesection___basic_table","tables","footer_text","templatesection___appointeddwidget","script1","script2","lang","template_section___book_an_appointment_v4","BookAnAppointmentV4","template_section___advisor_block_v4","jumbotronLabel","call_to_action__jumbotron_label","labelMobile","call_to_action__label_mobile","titleMobile","call_to_action__title_mobile","jumbotronUrl","call_to_action__jumbotron_url","customcampaignId","custom_campaignid_to_booking_appointment_form","secondaryCallToAction","call_to_action2__icon_location","call_to_action2__analytics_id","call_to_action2__label","call_to_action2__icon","call_to_action2__url","call_to_action2__variant","getSecondaryCallToActionData","left_subtitle","html_tag","left_title","left_body_text","left_regulatory_information","right_subtitle","bullet_points","advisor_image","advisor_message","advisor_name","advisor_role","template_section___canonical_tag","full_url","Helmet","rel","template_section___investment_hub___featured","blog_page_featured","minutes","useReadingTime","blogPageOld","blogPageV2","blog_post_category","summary","button_label","feature_image","main_image","excerpt","read_time","template_section___investment_hub___categories","categories","setCategories","groupedBlogPosts","setGroupedBlogPosts","insertAllCategories","groupCategories","newCategories","_blogPostsOld","_blogPostsV2","_groupBlogPosts","oldBlogPosts","groupOldBlogPosts","newBlogPosts","groupNewBlogPosts","mergeBlogPosts","date","date_created","some","date_published","setActiveIndex","findIndex","enabledTypesToReceiveBlogPosts","Generic","jumbotron","sections","newLayout","customNavigationMenu","Layout","ifJumbotron","getTemplateJumbotron","getSections","breadcrumbs","shouldNotBeWrapped","templatesection_common__extra_space_above_and_bottom","templatesection_common__spacer","templatesection_common__background_color","bgColors","Component","aboveAndBottomBackground","defaultColor","getBackgroundColor","condition","ExtraSpaceBox","enabledType","isTypeAllowedToReceiveBlogPosts","getSectionId","white","common","lightBlue","deepBlue","addToUnscopables","_createClass","_react","_react2","_interopRequireDefault","_propTypes2","_raf2","AnimatedNumber","_Component","_classCallCheck","_possibleConstructorReturn","currentValue","initialValue","_inherits","prepareTween","nextProps","tweenHandle","endTween","_this2","timestamp","tweenValue","setState","currentTime","ensureSixtyFps","_props","startTime","fromValue","_props2","frameStyle","stepPrecision","_state","adjustedValue","currStyle","filterKnownProps","sanitized","propNames","validProps","propTypes","any","func","defaultProps","videoTitle","videoHeading","videoResponsive","controls","data-src","data-cookiescript","data-cookiecategory","data-alt-img","allow","_t","formattedText","characters","otherLanguageTime","words","_taggedTemplateLiteral","strings","raw","freeze","singleColumn","filteredProducts","setfilteredProducts","setCount","LeftIntro","slicedPosts","commonjsGlobal","globalThis","check","global$b","objectGetOwnPropertyDescriptor","fails$9","functionBindNative","NATIVE_BIND$1","call$5","functionCall","objectPropertyIsEnumerable","$propertyIsEnumerable","getOwnPropertyDescriptor$1","NASHORN_BUG","version","createPropertyDescriptor$2","bitmap","NATIVE_BIND","FunctionPrototype$1","call$4","uncurryThisWithBind","functionUncurryThis","uncurryThis$9","toString$1","stringSlice$1","fails$6","classof","$Object$2","indexedObject","isNullOrUndefined$2","isNullOrUndefined$1","$TypeError$5","requireObjectCoercible$2","IndexedObject$1","requireObjectCoercible$1","toIndexedObject$3","documentAll$2","documentAll_1","IS_HTMLDDA","documentAll$1","isCallable$a","argument","isCallable$9","documentAll","isObject$5","global$a","isCallable$8","getBuiltIn$2","namespace","objectIsPrototypeOf","isPrototypeOf","global$9","process","Deno","versions","v8","V8_VERSION","fails$5","$String$3","symbolConstructorDetection","symbol","useSymbolAsUid","getBuiltIn$1","isCallable$7","$Object$1","isSymbol$2","$Symbol","$String$2","isCallable$6","tryToString","$TypeError$4","aCallable","isNullOrUndefined","call$3","isCallable$5","isObject$4","$TypeError$3","shared$3","global$7","defineProperty$2","defineGlobalProperty$3","defineGlobalProperty$2","sharedStore","store$2","copyright","license","$Object","toObject$2","toObject$1","hasOwnProperty_1","hasOwn","uncurryThis$5","postfix","uid$2","global$5","shared$2","hasOwn$6","uid$1","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","Symbol$1","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","call$2","isObject$3","isSymbol$1","getMethod","ordinaryToPrimitive","pref","valueOf","$TypeError$2","TO_PRIMITIVE","wellKnownSymbol","toPrimitive","exoticToPrim","isSymbol","toPropertyKey$2","isObject$2","document$1","EXISTS$1","ie8DomDefine","DESCRIPTORS$6","call$1","propertyIsEnumerableModule$1","createPropertyDescriptor$1","toIndexedObject$2","toPropertyKey$1","hasOwn$5","IE8_DOM_DEFINE$1","$getOwnPropertyDescriptor$1","objectDefineProperty","v8PrototypeDefineBug","isObject$1","$String$1","$TypeError$1","anObject$2","DESCRIPTORS$4","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject$1","toPropertyKey","$TypeError","$defineProperty","$getOwnPropertyDescriptor","Attributes","definePropertyModule$2","createPropertyDescriptor","createNonEnumerableProperty$2","makeBuiltIn$2","DESCRIPTORS$2","hasOwn$4","FunctionPrototype","getDescriptor","EXISTS","functionName","PROPER","CONFIGURABLE","isCallable$4","store$1","functionToString","inspectSource","inspectSource$1","isCallable$3","WeakMap$1","WeakMap","weakMapBasicDetection","shared$1","hiddenKeys$3","NATIVE_WEAK_MAP","global$2","createNonEnumerableProperty$1","hasOwn$3","shared","sharedKey","hiddenKeys$2","TypeError$1","store","metadata","facade","STATE","internalState","enforce","getterFor","uncurryThis$3","fails$2","isCallable$2","hasOwn$2","DESCRIPTORS$1","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","$String","defineProperty$1","stringSlice","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn$1","getter","setter","arity","isCallable$1","definePropertyModule$1","makeBuiltIn","defineGlobalProperty$1","objectGetOwnPropertyNames","trunc","toIntegerOrInfinity$2","toIntegerOrInfinity$1","min$1","toIntegerOrInfinity","toIndexedObject$1","toAbsoluteIndex","integer","lengthOfArrayLike","IS_INCLUDES","fromIndex","arrayIncludes","hasOwn$1","toIndexedObject","hiddenKeys$1","objectKeysInternal","enumBugKeys$2","internalObjectKeys$1","hiddenKeys","getOwnPropertyNames","objectGetOwnPropertySymbols","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule$1","anObject","concat$1","ownKeys$1","getOwnPropertyDescriptorModule","definePropertyModule","fails$1","isCallable","replacement","isForced$1","feature","detection","POLYFILL","NATIVE","isForced_1","global$1","createNonEnumerableProperty","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","defineGlobalProperty","copyConstructorProperties","exceptions","isForced","internalObjectKeys","enumBugKeys","objectKeys$1","DESCRIPTORS","uncurryThis","fails","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","IndexedObject","$assign","chr","argumentsLength","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","defaultImage","light","Avatar","responsiveSize","styleMap","success","warning","_props$status","status","accordion_1","baseOrderBy","collection","iteratees","orders","guard","ComparisonTable","table_1","ilgroupdesignsystem_atoms_button_1","router_1","tablerowsdesktop_1","media_query_1","tablemobile_1","ilgroupdesignsystem_molecules_alert_1","_b","returnValue","totalRows","checkTableStructure","ComparisonTableMobile","Thead","Th","_AnimatedNumber","_AnimatedNumber2","_active","primary","vibrant","outlineOffset","outlineWidth","outlineStyle","outlineColor","secondary","ghost","inverse","choice","choiceBlue","unstyled","Form","linkStyles","dark","_pressed","textStyles","footer","proseTheme","h3","h4","transitionProperty","transitionTimingFunction","hr","_dark","blockquote","paddingStart","borderStartWidth","borderStartColor","pre","code","figure","figcaption","ul","listStyleType","ol","li","thead","th","td","verticalAlign","tbody","tr","tfoot","_c","themeOverride","h5","h6","strong","span","fonts","mono","colors","brand","50","100","200","300","400","500","600","700","800","900","monochrome","accent","neutral","highlight","skyblue","havelockblue","shadows","components","field","errorBorderColor","overridenProseTheme","Prose","button_1","mobileheader_1","getDefaultExportFromCjs","reactIs","reactIs_production_min","for","k$1","q","z","u","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","propIsEnumerable","test1","test2","fromCharCode","test3","letter","shouldUseNative","checkPropTypes$1","typeSpecs","componentName","getStack","resetWarningCache","emptyFunction","emptyFunctionWithReset","shim","propName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","invariant_1","argIndex","framesToPop","lib","implementation","gud","warning_1","_gud2","createEventEmitter","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","emitter","getChildContext","componentWillReceiveProps","oldValue","objectIs","childContextTypes","Consumer","_Component2","_temp2","getValue","onUpdate","observedBits","componentDidMount","componentWillUnmount","contextTypes","_implementation2","componentWillMount","getDerivedStateFromProps","prevState","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","__suppressDeprecationWarning","transitioning","resolveTransition","_to$split","toPathname","toQuery","basePathname","toSegments","segmentize","baseSegments","addQuery","allSegments","insertParams","_path$split","pathBase","_path$split$","query","constructedPath","paramRe","_params$location","_params$location$sear","searchSplit","isDynamic","isSplat","rankRoute","route","score","reduce","isRootSegment","SEGMENT_POINTS","rankRoutes","routes","uri","reservedNames","_extends$1","getLocation","_source$location","port","canUseDOM","encodeURI","decodeURI","globalHistory","initialPath","searchIndex","initialLocation","stack","_uri$split","_uri$split$","_uri$split2","_uri$split2$","createMemorySource","_onTransitionComplete","listen","popstateListener","action","_ref$replace","_objectWithoutProperties","createNamedContext","Ctx","LocationContext","Location","LocationProvider","_React$Component","refs","unlisten","_props$history","componentDidCatch","isRedirect","_navigate","componentDidUpdate","unmounted","BaseContext","baseuri","basepath","Router","baseContext","locationContext","RouterImpl","_React$PureComponent","_navigate2","_props$component","domProps","default_","uriPathname","uriSegments","isRootUri","ranked","missed","routeSegments","routeSegment","uriSegment","decodeURIComponent","dynamicMatch","pick","createRoute","FocusWrapper","FocusHandler","wrapperProps","PureComponent","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_this4","shouldFocus","focus","myURIChanged","navigatedUpToMe","_this5","_props2$component","Comp","tabIndex","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","snapshot","polyfill","innerRef","_ref6","_props$getProps","anchorProps","encodedHref","isCurrent","isPartiallyCurrent","shouldNavigate","shouldReplace","_location$state","restState","obj1","obj2","obj1Keys","RedirectRequest","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","redirectTo","Redirect","_ref7","stripSlashes","elementPath","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","MenuCard","iconPlus","_props$linkComponent","Feature","noBullets","show_bullets","Features","spacerVariant","FeatureListLeft","featureListStyles","FeatureListRight","FeatureListTop","bulletsTitle"],"mappings":"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","file":"32ca024df3a3de53994c008afbf845ec70959f00-dd4616ae1a22dbe2d797.js","sourcesContent":["import 'core-js/modules/es.object.assign.js';\nimport { FormControl, InputGroup, InputLeftElement, Input as Input$1, InputRightElement, FormHelperText } from '@chakra-ui/react';\nimport { FormLabel } from '@irishlifedigitalhub/ds.atoms.form-label';\nimport { CheckIcon, CloseIcon } from '@irishlifedigitalhub/ds.icons';\nimport React from 'react';\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nvar Input = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var isInvalid = props.isInvalid,\n helperText = props.helperText,\n label = props.label,\n isValid = props.isValid,\n isDisabled = props.isDisabled,\n id = props.id,\n leftIcon = props.leftIcon,\n noX = props.noX,\n rest = __rest(props, [\"isInvalid\", \"helperText\", \"label\", \"isValid\", \"isDisabled\", \"id\", \"leftIcon\", \"noX\"]);\n\n return /*#__PURE__*/React.createElement(FormControl, {\n \"data-testid\": 'Input',\n isDisabled: isDisabled\n }, label && /*#__PURE__*/React.createElement(FormLabel, {\n color: 'monochrome.800',\n htmlFor: id\n }, label), /*#__PURE__*/React.createElement(InputGroup, null, leftIcon && /*#__PURE__*/React.createElement(InputLeftElement, null, leftIcon), /*#__PURE__*/React.createElement(Input$1, Object.assign({\n id: id,\n ref: ref\n }, rest, {\n isInvalid: isInvalid\n })), isValid && /*#__PURE__*/React.createElement(InputRightElement, null, /*#__PURE__*/React.createElement(CheckIcon, {\n color: 'success'\n })), isInvalid && /*#__PURE__*/React.createElement(InputRightElement, null, !noX && /*#__PURE__*/React.createElement(CloseIcon, {\n color: 'error'\n }))), helperText && /*#__PURE__*/React.createElement(FormHelperText, {\n fontSize: '16px',\n sx: {\n color: isInvalid && 'error'\n }\n }, helperText));\n});\nexport { Input };","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import _defineProperty from \"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport _toConsumableArray from \"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction noop() {}\n\nvar uid = function () {\n var id = 0;\n return function () {\n return id++;\n };\n}();\n\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n\n var type = Object.prototype.toString.call(value);\n\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n\n return false;\n}\n\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\nvar isNumberFinite = function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n};\n\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nvar toPercentage = function toPercentage(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : value / dimension;\n};\n\nvar toDimension = function toDimension(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n};\n\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\nfunction each(loopable, fn, thisArg, reverse) {\n var i, len, keys;\n\n if (isArray(loopable)) {\n len = loopable.length;\n\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\nfunction _elementsEqual(a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n\n if (isObject(source)) {\n var target = Object.create(null);\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\n\nfunction merge(target, source, options) {\n var sources = isArray(source) ? source : [source];\n var ilen = sources.length;\n\n if (!isObject(target)) {\n return target;\n }\n\n options = options || {};\n var merger = options.merger || _merger;\n\n for (var i = 0; i < ilen; ++i) {\n source = sources[i];\n\n if (!isObject(source)) {\n continue;\n }\n\n var keys = Object.keys(source);\n\n for (var k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n\n return target;\n}\n\nfunction mergeIf(target, source) {\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\n\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\nvar keyResolvers = {\n '': function _(v) {\n return v;\n },\n x: function x(o) {\n return o.x;\n },\n y: function y(o) {\n return o.y;\n }\n};\n\nfunction resolveObjectKey(obj, key) {\n var resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n\n return resolver(obj);\n}\n\nfunction _getKeyResolver(key) {\n var keys = _splitKey(key);\n\n return function (obj) {\n var _iterator = _createForOfIteratorHelper(keys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var k = _step.value;\n\n if (k === '') {\n break;\n }\n\n obj = obj && obj[k];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n };\n}\n\nfunction _splitKey(key) {\n var parts = key.split('.');\n var keys = [];\n var tmp = '';\n\n var _iterator2 = _createForOfIteratorHelper(parts),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var part = _step2.value;\n tmp += part;\n\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return keys;\n}\n\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nvar defined = function defined(value) {\n return typeof value !== 'undefined';\n};\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n\nvar setsEqual = function setsEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n\n var _iterator3 = _createForOfIteratorHelper(a),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n\n if (!b.has(item)) {\n return false;\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return true;\n};\n\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nvar PI = Math.PI;\nvar TAU = 2 * PI;\nvar PITAU = TAU + PI;\nvar INFINITY = Number.POSITIVE_INFINITY;\nvar RAD_PER_DEG = PI / 180;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\nvar log10 = Math.log10;\nvar sign = Math.sign;\n\nfunction niceNum(range) {\n var roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n var niceRange = Math.pow(10, Math.floor(log10(range)));\n var fraction = range / niceRange;\n var niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\nfunction _factorize(value) {\n var result = [];\n var sqrt = Math.sqrt(value);\n var i;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n\n result.sort(function (a, b) {\n return a - b;\n }).pop();\n return result;\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n\nfunction almostWhole(x, epsilon) {\n var rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n\nfunction _setMinAndMaxByKey(array, target, property) {\n var i, ilen, value;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\n\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n\n var e = 1;\n var p = 0;\n\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n var distanceFromXCenter = anglePoint.x - centrePoint.x;\n var distanceFromYCenter = anglePoint.y - centrePoint.y;\n var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < -0.5 * PI) {\n angle += TAU;\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\n}\n\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n var a = _normalizeAngle(angle);\n\n var s = _normalizeAngle(start);\n\n var e = _normalizeAngle(end);\n\n var angleToStart = _normalizeAngle(s - a);\n\n var angleToEnd = _normalizeAngle(e - a);\n\n var startToAngle = _normalizeAngle(a - s);\n\n var endToAngle = _normalizeAngle(a - e);\n\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nfunction _isBetween(value, start, end) {\n var epsilon = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1e-6;\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || function (index) {\n return table[index] < value;\n };\n\n var hi = table.length - 1;\n var lo = 0;\n var mid;\n\n while (hi - lo > 1) {\n mid = lo + hi >> 1;\n\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {\n lo: lo,\n hi: hi\n };\n}\n\nvar _lookupByKey = function _lookupByKey(table, key, value, last) {\n return _lookup(table, value, last ? function (index) {\n return table[index][key] <= value;\n } : function (index) {\n return table[index][key] < value;\n });\n};\n\nvar _rlookupByKey = function _rlookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] >= value;\n });\n};\n\nfunction _filterBetween(values, min, max) {\n var start = 0;\n var end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(function (key) {\n var method = '_onData' + _capitalize(key);\n\n var base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function value() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = base.apply(this, args);\n\n array._chartjs.listeners.forEach(function (object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\nfunction unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function (key) {\n delete array[key];\n });\n delete array._chartjs;\n}\n\nfunction _arrayUnique(items) {\n var set = new Set();\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n\n if (set.size === ilen) {\n return items;\n }\n\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\nvar requestAnimFrame = function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n return callback();\n };\n }\n\n return window.requestAnimationFrame;\n}();\n\nfunction throttled(fn, thisArg, updateFn) {\n var updateArgs = updateFn || function (args) {\n return Array.prototype.slice.call(args);\n };\n\n var ticking = false;\n var args = [];\n return function () {\n for (var _len2 = arguments.length, rest = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n rest[_key2] = arguments[_key2];\n }\n\n args = updateArgs(rest);\n\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\n\nfunction debounce(fn, delay) {\n var timeout;\n return function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n\n return delay;\n };\n}\n\nvar _toLeftRightCenter = function _toLeftRightCenter(align) {\n return align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n};\n\nvar _alignStartEnd = function _alignStartEnd(align, start, end) {\n return align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n};\n\nvar _textX = function _textX(align, left, right, rtl) {\n var check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n var pointCount = points.length;\n var start = 0;\n var count = pointCount;\n\n if (meta._sorted) {\n var iScale = meta.iScale,\n _parsed = meta._parsed;\n var axis = iScale.axis;\n\n var _iScale$getUserBounds = iScale.getUserBounds(),\n min = _iScale$getUserBounds.min,\n max = _iScale$getUserBounds.max,\n minDefined = _iScale$getUserBounds.minDefined,\n maxDefined = _iScale$getUserBounds.maxDefined;\n\n if (minDefined) {\n start = _limitValue(Math.min(_lookupByKey(_parsed, iScale.axis, min).lo, animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n\n if (maxDefined) {\n count = _limitValue(Math.max(_lookupByKey(_parsed, iScale.axis, max, true).hi + 1, animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {\n start: start,\n count: count\n };\n}\n\nfunction _scaleRangesChanged(meta) {\n var xScale = meta.xScale,\n yScale = meta.yScale,\n _scaleRanges = meta._scaleRanges;\n var newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n\n var changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nvar atEdge = function atEdge(t) {\n return t === 0 || t === 1;\n};\n\nvar elasticIn = function elasticIn(t, s, p) {\n return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\n};\n\nvar elasticOut = function elasticOut(t, s, p) {\n return Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n};\n\nvar effects = {\n linear: function linear(t) {\n return t;\n },\n easeInQuad: function easeInQuad(t) {\n return t * t;\n },\n easeOutQuad: function easeOutQuad(t) {\n return -t * (t - 2);\n },\n easeInOutQuad: function easeInOutQuad(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);\n },\n easeInCubic: function easeInCubic(t) {\n return t * t * t;\n },\n easeOutCubic: function easeOutCubic(t) {\n return (t -= 1) * t * t + 1;\n },\n easeInOutCubic: function easeInOutCubic(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2);\n },\n easeInQuart: function easeInQuart(t) {\n return t * t * t * t;\n },\n easeOutQuart: function easeOutQuart(t) {\n return -((t -= 1) * t * t * t - 1);\n },\n easeInOutQuart: function easeInOutQuart(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);\n },\n easeInQuint: function easeInQuint(t) {\n return t * t * t * t * t;\n },\n easeOutQuint: function easeOutQuint(t) {\n return (t -= 1) * t * t * t * t + 1;\n },\n easeInOutQuint: function easeInOutQuint(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n easeInSine: function easeInSine(t) {\n return -Math.cos(t * HALF_PI) + 1;\n },\n easeOutSine: function easeOutSine(t) {\n return Math.sin(t * HALF_PI);\n },\n easeInOutSine: function easeInOutSine(t) {\n return -0.5 * (Math.cos(PI * t) - 1);\n },\n easeInExpo: function easeInExpo(t) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n },\n easeOutExpo: function easeOutExpo(t) {\n return t === 1 ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n easeInOutExpo: function easeInOutExpo(t) {\n return atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2);\n },\n easeInCirc: function easeInCirc(t) {\n return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1);\n },\n easeOutCirc: function easeOutCirc(t) {\n return Math.sqrt(1 - (t -= 1) * t);\n },\n easeInOutCirc: function easeInOutCirc(t) {\n return (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n easeInElastic: function easeInElastic(t) {\n return atEdge(t) ? t : elasticIn(t, 0.075, 0.3);\n },\n easeOutElastic: function easeOutElastic(t) {\n return atEdge(t) ? t : elasticOut(t, 0.075, 0.3);\n },\n easeInOutElastic: function easeInOutElastic(t) {\n var s = 0.1125;\n var p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack: function easeInBack(t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack: function easeOutBack(t) {\n var s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack: function easeInOutBack(t) {\n var s = 1.70158;\n\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: function easeInBounce(t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n easeOutBounce: function easeOutBounce(t) {\n var m = 7.5625;\n var d = 2.75;\n\n if (t < 1 / d) {\n return m * t * t;\n }\n\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: function easeInOutBounce(t) {\n return t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n};\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\n\nfunction round(v) {\n return v + 0.5 | 0;\n}\n\nvar lim = function lim(v, l, h) {\n return Math.max(Math.min(v, h), l);\n};\n\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\n\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\n\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\n\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nvar map$1 = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15\n};\n\nvar hex = _toConsumableArray('0123456789ABCDEF');\n\nvar h1 = function h1(b) {\n return hex[b & 0xF];\n};\n\nvar h2 = function h2(b) {\n return hex[(b & 0xF0) >> 4] + hex[b & 0xF];\n};\n\nvar eq = function eq(b) {\n return (b & 0xF0) >> 4 === (b & 0xF);\n};\n\nvar isShort = function isShort(v) {\n return eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n};\n\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? map$1[str[7]] << 4 | map$1[str[8]] : 255\n };\n }\n }\n\n return ret;\n}\n\nvar alpha = function alpha(a, f) {\n return a < 255 ? f(a) : '';\n};\n\nfunction _hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f) : undefined;\n}\n\nvar HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction hsl2rgbn(h, s, l) {\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n return [f(0), f(8), f(4)];\n}\n\nfunction hsv2rgbn(h, s, v) {\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n\n return [f(5), f(3), f(1)];\n}\n\nfunction hwb2rgbn(h, w, b) {\n var rgb = hsl2rgbn(h, 1, 0.5);\n var i;\n\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n\n return rgb;\n}\n\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return (g - b) / d + (g < b ? 6 : 0);\n }\n\n if (g === max) {\n return (b - r) / d + 2;\n }\n\n return (r - g) / d + 4;\n}\n\nfunction rgb2hsl(v) {\n var range = 255;\n var r = v.r / range;\n var g = v.g / range;\n var b = v.b / range;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var l = (max + min) / 2;\n var h, s, d;\n\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n\n return [h | 0, s || 0, l];\n}\n\nfunction calln(f, a, b, c) {\n return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\n\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\n\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\n\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\n\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\n\nfunction hueParse(str) {\n var m = HUE_RE.exec(str);\n var a = 255;\n var v;\n\n if (!m) {\n return;\n }\n\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n\n var h = hue(+m[2]);\n var p1 = +m[3] / 100;\n var p2 = +m[4] / 100;\n\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\n\nfunction _rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\n\nfunction _hslString(v) {\n if (!v) {\n return;\n }\n\n var a = rgb2hsl(v);\n var h = a[0];\n var s = n2p(a[1]);\n var l = n2p(a[2]);\n return v.a < 255 ? \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(b2n(v.a), \")\") : \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\");\n}\n\nvar map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nvar names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\n\nfunction unpack() {\n var unpacked = {};\n var keys = Object.keys(names$1);\n var tkeys = Object.keys(map);\n var i, j, k, ok, nk;\n\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n\n return unpacked;\n}\n\nvar names;\n\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n\n var a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nvar RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction rgbParse(str) {\n var m = RGB_RE.exec(str);\n var a = 255;\n var r, g, b;\n\n if (!m) {\n return;\n }\n\n if (m[7] !== r) {\n var v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\n\nfunction _rgbString(v) {\n return v && (v.a < 255 ? \"rgba(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \", \").concat(b2n(v.a), \")\") : \"rgb(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \")\"));\n}\n\nvar to = function to(v) {\n return v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\n};\n\nvar from = function from(v) {\n return v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\n};\n\nfunction _interpolate(rgb1, rgb2, t) {\n var r = from(b2n(rgb1.r));\n var g = from(b2n(rgb1.g));\n var b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n var tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\n\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\n\nfunction fromObject(input) {\n var v = {\n r: 0,\n g: 0,\n b: 0,\n a: 255\n };\n\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {\n r: input[0],\n g: input[1],\n b: input[2],\n a: 255\n };\n\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n });\n v.a = n2b(v.a);\n }\n\n return v;\n}\n\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n\n return hueParse(str);\n}\n\nvar Color = /*#__PURE__*/function () {\n function Color(input) {\n _classCallCheck(this, Color);\n\n if (input instanceof Color) {\n return input;\n }\n\n var type = typeof input;\n var v;\n\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n\n this._rgb = v;\n this._valid = !!v;\n }\n\n _createClass(Color, [{\n key: \"rgbString\",\n value: function rgbString() {\n return this._valid ? _rgbString(this._rgb) : undefined;\n }\n }, {\n key: \"hexString\",\n value: function hexString() {\n return this._valid ? _hexString(this._rgb) : undefined;\n }\n }, {\n key: \"hslString\",\n value: function hslString() {\n return this._valid ? _hslString(this._rgb) : undefined;\n }\n }, {\n key: \"mix\",\n value: function mix(color, weight) {\n if (color) {\n var c1 = this.rgb;\n var c2 = color.rgb;\n var w2;\n var p = weight === w2 ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = c1.a - c2.a;\n var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n\n return this;\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(color, t) {\n if (color) {\n this._rgb = _interpolate(this._rgb, color._rgb, t);\n }\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Color(this.rgb);\n }\n }, {\n key: \"alpha\",\n value: function alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n }, {\n key: \"clearer\",\n value: function clearer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n }, {\n key: \"greyscale\",\n value: function greyscale() {\n var rgb = this._rgb;\n var val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n }, {\n key: \"opaquer\",\n value: function opaquer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n }, {\n key: \"lighten\",\n value: function lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n }, {\n key: \"darken\",\n value: function darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n }, {\n key: \"saturate\",\n value: function saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n }, {\n key: \"desaturate\",\n value: function desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(deg) {\n _rotate(this._rgb, deg);\n\n return this;\n }\n }, {\n key: \"valid\",\n get: function get() {\n return this._valid;\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var v = clone(this._rgb);\n\n if (v) {\n v.a = b2n(v.a);\n }\n\n return v;\n },\n set: function set(obj) {\n this._rgb = fromObject(obj);\n }\n }]);\n\n return Color;\n}();\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n var type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n\n return false;\n}\n\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\n\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nvar overrides = Object.create(null);\nvar descriptors = Object.create(null);\n\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n\n var keys = key.split('.');\n\n for (var i = 0, n = keys.length; i < n; ++i) {\n var k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n\n return node;\n}\n\nfunction _set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n\n return merge(getScope$1(root, ''), scope);\n}\n\nvar Defaults = /*#__PURE__*/function () {\n function Defaults(_descriptors) {\n _classCallCheck(this, Defaults);\n\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n\n this.devicePixelRatio = function (context) {\n return context.chart.platform.getDevicePixelRatio();\n };\n\n this.elements = {};\n this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n\n this.hoverBackgroundColor = function (ctx, options) {\n return getHoverColor(options.backgroundColor);\n };\n\n this.hoverBorderColor = function (ctx, options) {\n return getHoverColor(options.borderColor);\n };\n\n this.hoverColor = function (ctx, options) {\n return getHoverColor(options.color);\n };\n\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n\n _createClass(Defaults, [{\n key: \"set\",\n value: function set(scope, values) {\n return _set(this, scope, values);\n }\n }, {\n key: \"get\",\n value: function get(scope) {\n return getScope$1(this, scope);\n }\n }, {\n key: \"describe\",\n value: function describe(scope, values) {\n return _set(descriptors, scope, values);\n }\n }, {\n key: \"override\",\n value: function override(scope, values) {\n return _set(overrides, scope, values);\n }\n }, {\n key: \"route\",\n value: function route(scope, name, targetScope, targetName) {\n var _Object$definePropert;\n\n var scopeObject = getScope$1(this, scope);\n var targetScopeObject = getScope$1(this, targetScope);\n var privateName = '_' + name;\n Object.defineProperties(scopeObject, (_Object$definePropert = {}, _defineProperty(_Object$definePropert, privateName, {\n value: scopeObject[name],\n writable: true\n }), _defineProperty(_Object$definePropert, name, {\n enumerable: true,\n get: function get() {\n var local = this[privateName];\n var target = targetScopeObject[targetName];\n\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n\n return valueOrDefault(local, target);\n },\n set: function set(value) {\n this[privateName] = value;\n }\n }), _Object$definePropert));\n }\n }]);\n\n return Defaults;\n}();\n\nvar defaults = new Defaults({\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n _indexable: function _indexable(name) {\n return name !== 'events';\n },\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n\nfunction _measureText(ctx, data, gc, longest, string) {\n var textWidth = data[string];\n\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n\n if (textWidth > longest) {\n longest = textWidth;\n }\n\n return longest;\n}\n\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n var data = cache.data = cache.data || {};\n var gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n ctx.font = font;\n var longest = 0;\n var ilen = arrayOfThings.length;\n var i, j, jlen, thing, nestedThing;\n\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n var gcLen = gc.length / 2;\n\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n\n return longest;\n}\n\nfunction _alignPixel(chart, pixel, width) {\n var devicePixelRatio = chart.currentDevicePixelRatio;\n var halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\n\nfunction drawPointLegend(ctx, options, x, y, w) {\n var type, xOffset, yOffset, size, cornerRadius, width;\n var style = options.pointStyle;\n var rotation = options.rotation;\n var radius = options.radius;\n var rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n\n ctx.closePath();\n break;\n\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n\n rad += QUARTER_PI;\n\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n\n case 'crossRot':\n rad += QUARTER_PI;\n\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\n\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n if (mode === 'middle') {\n var midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n\n ctx.lineTo(target.x, target.y);\n}\n\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\n\nfunction renderText(ctx, text, x, y, font) {\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var lines = isArray(text) ? text : [text];\n var stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n var i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n\n ctx.restore();\n}\n\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n var metrics = ctx.measureText(line);\n var left = x - metrics.actualBoundingBoxLeft;\n var right = x + metrics.actualBoundingBoxRight;\n var top = y - metrics.actualBoundingBoxAscent;\n var bottom = y + metrics.actualBoundingBoxDescent;\n var yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction addRoundedRectPath(ctx, rect) {\n var x = rect.x,\n y = rect.y,\n w = rect.w,\n h = rect.h,\n radius = rect.radius;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nvar LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nvar FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\n\nfunction toLineHeight(value, size) {\n var matches = ('' + value).match(LINE_HEIGHT);\n\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n\n case '%':\n value /= 100;\n break;\n }\n\n return size * value;\n}\n\nvar numberOrZero = function numberOrZero(v) {\n return +v || 0;\n};\n\nfunction _readValueToProps(value, props) {\n var ret = {};\n var objProps = isObject(props);\n var keys = objProps ? Object.keys(props) : props;\n var read = isObject(value) ? objProps ? function (prop) {\n return valueOrDefault(value[prop], value[props[prop]]);\n } : function (prop) {\n return value[prop];\n } : function () {\n return value;\n };\n\n var _iterator4 = _createForOfIteratorHelper(keys),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var prop = _step4.value;\n ret[prop] = numberOrZero(read(prop));\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return ret;\n}\n\nfunction toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\nfunction toPadding(value) {\n var obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n var size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n var style = valueOrDefault(options.style, fallback.style);\n\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n\n var font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size: size,\n style: style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n\nfunction resolve(inputs, context, index, info) {\n var cacheable = true;\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n\n if (value === undefined) {\n continue;\n }\n\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n\n return value;\n }\n }\n}\n\nfunction _addGrace(minmax, grace, beginAtZero) {\n var min = minmax.min,\n max = minmax.max;\n var change = toDimension(grace, (max - min) / 2);\n\n var keepZero = function keepZero(value, add) {\n return beginAtZero && value === 0 ? 0 : value + add;\n };\n\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _createResolver(scopes) {\n var _cache;\n\n var prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n var rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;\n var fallback = arguments.length > 3 ? arguments[3] : undefined;\n var getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {\n return scopes[0];\n };\n\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n\n var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, \"_cacheable\", true), _defineProperty(_cache, \"_scopes\", scopes), _defineProperty(_cache, \"_rootScopes\", rootScopes), _defineProperty(_cache, \"_fallback\", fallback), _defineProperty(_cache, \"_getTarget\", getTarget), _defineProperty(_cache, \"override\", function override(scope) {\n return _createResolver([scope].concat(_toConsumableArray(scopes)), prefixes, rootScopes, fallback);\n }), _cache);\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get: function get(target, prop) {\n return _cached(target, prop, function () {\n return _resolveWithPrefixes(prop, prefixes, scopes, target);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has: function has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys: function ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set: function set(target, prop, value) {\n var storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\n\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n var cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: function setContext(ctx) {\n return _attachContext(proxy, ctx, subProxy, descriptorDefaults);\n },\n override: function override(scope) {\n return _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults);\n }\n };\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get: function get(target, prop, receiver) {\n return _cached(target, prop, function () {\n return _resolveWithContext(target, prop, receiver);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has: function has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys: function ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set: function set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\n\nfunction _descriptors(proxy) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n scriptable: true,\n indexable: true\n };\n\n var _proxy$_scriptable = proxy._scriptable,\n _scriptable = _proxy$_scriptable === void 0 ? defaults.scriptable : _proxy$_scriptable,\n _proxy$_indexable = proxy._indexable,\n _indexable = _proxy$_indexable === void 0 ? defaults.indexable : _proxy$_indexable,\n _proxy$_allKeys = proxy._allKeys,\n _allKeys = _proxy$_allKeys === void 0 ? defaults.allKeys : _proxy$_allKeys;\n\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : function () {\n return _scriptable;\n },\n isIndexable: isFunction(_indexable) ? _indexable : function () {\n return _indexable;\n }\n };\n}\n\nvar readKey = function readKey(prefix, name) {\n return prefix ? prefix + _capitalize(name) : name;\n};\n\nvar needsSubResolver = function needsSubResolver(prop, value) {\n return isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\n};\n\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n\n var value = resolve();\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(target, prop, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n var value = _proxy[prop];\n\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n\n return value;\n}\n\nfunction _resolveScriptable(prop, value, target, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n _stack = target._stack;\n\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n\n _stack.add(prop);\n\n value = value(_context, _subProxy || receiver);\n\n _stack.delete(prop);\n\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n\n return value;\n}\n\nfunction _resolveArray(prop, value, target, isIndexable) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n var arr = value;\n\n var scopes = _proxy._scopes.filter(function (s) {\n return s !== arr;\n });\n\n value = [];\n\n var _iterator5 = _createForOfIteratorHelper(arr),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var item = _step5.value;\n var resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n\n return value;\n}\n\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nvar getScope = function getScope(key, parent) {\n return key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n};\n\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n var _iterator6 = _createForOfIteratorHelper(parentScopes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var parent = _step6.value;\n var scope = getScope(key, parent);\n\n if (scope) {\n set.add(scope);\n var fallback = resolveFallback(scope._fallback, key, value);\n\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return false;\n}\n\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n var rootScopes = resolver._rootScopes;\n var fallback = resolveFallback(resolver._fallback, prop, value);\n var allScopes = [].concat(_toConsumableArray(parentScopes), _toConsumableArray(rootScopes));\n var set = new Set();\n set.add(value);\n var key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n\n if (key === null) {\n return false;\n }\n\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n\n if (key === null) {\n return false;\n }\n }\n\n return _createResolver(Array.from(set), [''], rootScopes, fallback, function () {\n return subGetTarget(resolver, prop, value);\n });\n}\n\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n\n return key;\n}\n\nfunction subGetTarget(resolver, prop, value) {\n var parent = resolver._getTarget();\n\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n\n var target = parent[prop];\n\n if (isArray(target) && isObject(value)) {\n return value;\n }\n\n return target;\n}\n\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n var value;\n\n var _iterator7 = _createForOfIteratorHelper(prefixes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var prefix = _step7.value;\n value = _resolve(readKey(prefix, prop), scopes);\n\n if (defined(value)) {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n}\n\nfunction _resolve(key, scopes) {\n var _iterator8 = _createForOfIteratorHelper(scopes),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var scope = _step8.value;\n\n if (!scope) {\n continue;\n }\n\n var value = scope[key];\n\n if (defined(value)) {\n return value;\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n}\n\nfunction getKeysFromAllScopes(target) {\n var keys = target._keys;\n\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes) {\n var set = new Set();\n\n var _iterator9 = _createForOfIteratorHelper(scopes),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var scope = _step9.value;\n\n var _iterator10 = _createForOfIteratorHelper(Object.keys(scope).filter(function (k) {\n return !k.startsWith('_');\n })),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var key = _step10.value;\n set.add(key);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return Array.from(set);\n}\n\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n var iScale = meta.iScale;\n var _this$_parsing$key = this._parsing.key,\n key = _this$_parsing$key === void 0 ? 'r' : _this$_parsing$key;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n\n return parsed;\n}\n\nvar EPSILON = Number.EPSILON || 1e-14;\n\nvar getPoint = function getPoint(points, i) {\n return i < points.length && !points[i].skip && points[i];\n};\n\nvar getValueAxis = function getValueAxis(indexAxis) {\n return indexAxis === 'x' ? 'y' : 'x';\n};\n\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n var d01 = distanceBetweenPoints(current, previous);\n var d12 = distanceBetweenPoints(next, current);\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n var fa = t * s01;\n var fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\nfunction monotoneAdjust(points, deltaK, mK) {\n var pointsLen = points.length;\n var alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points, mK) {\n var indexAxis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var delta, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n var iPixel = pointCurrent[indexAxis];\n var vPixel = pointCurrent[valueAxis];\n\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[\"cp1\".concat(indexAxis)] = iPixel - delta;\n pointCurrent[\"cp1\".concat(valueAxis)] = vPixel - delta * mK[i];\n }\n\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[\"cp2\".concat(indexAxis)] = iPixel + delta;\n pointCurrent[\"cp2\".concat(valueAxis)] = vPixel + delta * mK[i];\n }\n }\n}\n\nfunction splineCurveMonotone(points) {\n var indexAxis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var deltaK = Array(pointsLen).fill(0);\n var mK = Array(pointsLen);\n var i, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n var slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points, area) {\n var i, ilen, point, inArea, inAreaPrev;\n\n var inAreaNext = _isPointInArea(points[0], area);\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n\n if (!inArea) {\n continue;\n }\n\n point = points[i];\n\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n var i, ilen, point, controlPoints;\n\n if (options.spanGaps) {\n points = points.filter(function (pt) {\n return !pt.skip;\n });\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n var prev = loop ? points[points.length - 1] : points[0];\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction _getParentNode(domNode) {\n var parent = domNode.parentNode;\n\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n\n return parent;\n}\n\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nvar getComputedStyle = function getComputedStyle(element) {\n return window.getComputedStyle(element, null);\n};\n\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nfunction getPositionedStyle(styles, style, suffix) {\n var result = {};\n suffix = suffix ? '-' + suffix : '';\n\n for (var i = 0; i < 4; i++) {\n var pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nvar useOffsetPos = function useOffsetPos(x, y, target) {\n return (x > 0 || y > 0) && (!target || !target.shadowRoot);\n};\n\nfunction getCanvasPosition(e, canvas) {\n var touches = e.touches;\n var source = touches && touches.length ? touches[0] : e;\n var offsetX = source.offsetX,\n offsetY = source.offsetY;\n var box = false;\n var x, y;\n\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n var rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n\n return {\n x: x,\n y: y,\n box: box\n };\n}\n\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n\n var canvas = chart.canvas,\n currentDevicePixelRatio = chart.currentDevicePixelRatio;\n var style = getComputedStyle(canvas);\n var borderBox = style.boxSizing === 'border-box';\n var paddings = getPositionedStyle(style, 'padding');\n var borders = getPositionedStyle(style, 'border', 'width');\n\n var _getCanvasPosition = getCanvasPosition(evt, canvas),\n x = _getCanvasPosition.x,\n y = _getCanvasPosition.y,\n box = _getCanvasPosition.box;\n\n var xOffset = paddings.left + (box && borders.left);\n var yOffset = paddings.top + (box && borders.top);\n var width = chart.width,\n height = chart.height;\n\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas, width, height) {\n var maxWidth, maxHeight;\n\n if (width === undefined || height === undefined) {\n var container = _getParentNode(canvas);\n\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n var rect = container.getBoundingClientRect();\n var containerStyle = getComputedStyle(container);\n var containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n var containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n\n return {\n width: width,\n height: height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nvar round1 = function round1(v) {\n return Math.round(v * 10) / 10;\n};\n\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n var style = getComputedStyle(canvas);\n var margins = getPositionedStyle(style, 'margin');\n var maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n var maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n var containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n var width = containerSize.width,\n height = containerSize.height;\n\n if (style.boxSizing === 'content-box') {\n var borders = getPositionedStyle(style, 'border', 'width');\n var paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n\n if (width && !height) {\n height = round1(width / 2);\n }\n\n return {\n width: width,\n height: height\n };\n}\n\nfunction retinaScale(chart, forceRatio, forceStyle) {\n var pixelRatio = forceRatio || 1;\n var deviceHeight = Math.floor(chart.height * pixelRatio);\n var deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n var canvas = chart.canvas;\n\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = \"\".concat(chart.height, \"px\");\n canvas.style.width = \"\".concat(chart.width, \"px\");\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n\n return false;\n}\n\nvar supportsEventListenerOptions = function () {\n var passiveSupported = false;\n\n try {\n var options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n\n return passiveSupported;\n}();\n\nfunction readUsedSize(element, property) {\n var value = getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n\nfunction _bezierInterpolation(p1, p2, t, mode) {\n var cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n var cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n\n var a = _pointInLine(p1, cp1, t);\n\n var b = _pointInLine(cp1, cp2, t);\n\n var c = _pointInLine(cp2, p2, t);\n\n var d = _pointInLine(a, b, t);\n\n var e = _pointInLine(b, c, t);\n\n return _pointInLine(d, e, t);\n}\n\nvar intlCache = new Map();\n\nfunction getNumberFormat(locale, options) {\n options = options || {};\n var cacheKey = locale + JSON.stringify(options);\n var formatter = intlCache.get(cacheKey);\n\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n\n return formatter;\n}\n\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nvar getRightToLeftAdapter = function getRightToLeftAdapter(rectX, width) {\n return {\n x: function x(_x) {\n return rectX + rectX + width - _x;\n },\n setWidth: function setWidth(w) {\n width = w;\n },\n textAlign: function textAlign(align) {\n if (align === 'center') {\n return align;\n }\n\n return align === 'right' ? 'left' : 'right';\n },\n xPlus: function xPlus(x, value) {\n return x - value;\n },\n leftForLtr: function leftForLtr(x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\n\nvar getLeftToRightAdapter = function getLeftToRightAdapter() {\n return {\n x: function x(_x2) {\n return _x2;\n },\n setWidth: function setWidth(w) {},\n textAlign: function textAlign(align) {\n return align;\n },\n xPlus: function xPlus(x, value) {\n return x + value;\n },\n leftForLtr: function leftForLtr(x, _itemWidth) {\n return x;\n }\n };\n};\n\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nfunction overrideTextDirection(ctx, direction) {\n var style, original;\n\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\n\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n\n return {\n between: _isBetween,\n compare: function compare(a, b) {\n return a - b;\n },\n normalize: function normalize(x) {\n return x;\n }\n };\n}\n\nfunction normalizeSegment(_ref) {\n var start = _ref.start,\n end = _ref.end,\n count = _ref.count,\n loop = _ref.loop,\n style = _ref.style;\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style: style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n\n var _propertyFn = propertyFn(property),\n between = _propertyFn.between,\n normalize = _propertyFn.normalize;\n\n var count = points.length;\n var start = segment.start,\n end = segment.end,\n loop = segment.loop;\n var i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n\n start--;\n end--;\n }\n\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n\n return {\n start: start,\n end: end,\n loop: loop,\n style: segment.style\n };\n}\n\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n var count = points.length;\n\n var _propertyFn2 = propertyFn(property),\n compare = _propertyFn2.compare,\n between = _propertyFn2.between,\n normalize = _propertyFn2.normalize;\n\n var _getSegment = getSegment(segment, points, bounds),\n start = _getSegment.start,\n end = _getSegment.end,\n loop = _getSegment.loop,\n style = _getSegment.style;\n\n var result = [];\n var inside = false;\n var subStart = null;\n var value, point, prevValue;\n\n var startIsBefore = function startIsBefore() {\n return between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n };\n\n var endIsBefore = function endIsBefore() {\n return compare(endBound, value) === 0 || between(endBound, prevValue, value);\n };\n\n var shouldStart = function shouldStart() {\n return inside || startIsBefore();\n };\n\n var shouldStop = function shouldStop() {\n return !inside || endIsBefore();\n };\n\n for (var i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop: loop,\n count: count,\n style: style\n }));\n subStart = null;\n }\n\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end: end,\n loop: loop,\n count: count,\n style: style\n }));\n }\n\n return result;\n}\n\nfunction _boundSegments(line, bounds) {\n var result = [];\n var segments = line.segments;\n\n for (var i = 0; i < segments.length; i++) {\n var sub = _boundSegment(segments[i], line.points, bounds);\n\n if (sub.length) {\n result.push.apply(result, _toConsumableArray(sub));\n }\n }\n\n return result;\n}\n\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n var start = 0;\n var end = count - 1;\n\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n while (start < count && points[start].skip) {\n start++;\n }\n\n start %= count;\n\n if (loop) {\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n end %= count;\n return {\n start: start,\n end: end\n };\n}\n\nfunction solidSegments(points, start, max, loop) {\n var count = points.length;\n var result = [];\n var last = start;\n var prev = points[start];\n var end;\n\n for (end = start + 1; end <= max; ++end) {\n var cur = points[end % count];\n\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop: loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n\n if (prev.skip) {\n start = end;\n }\n }\n\n prev = cur;\n }\n\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop: loop\n });\n }\n\n return result;\n}\n\nfunction _computeSegments(line, segmentOptions) {\n var points = line.points;\n var spanGaps = line.options.spanGaps;\n var count = points.length;\n\n if (!count) {\n return [];\n }\n\n var loop = !!line._loop;\n\n var _findStartAndEnd = findStartAndEnd(points, count, loop, spanGaps),\n start = _findStartAndEnd.start,\n end = _findStartAndEnd.end;\n\n if (spanGaps === true) {\n return splitByStyles(line, [{\n start: start,\n end: end,\n loop: loop\n }], points, segmentOptions);\n }\n\n var max = end < start ? end + count : end;\n var completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n var chartContext = line._chart.getContext();\n\n var baseStyle = readStyle(line.options);\n var datasetIndex = line._datasetIndex,\n spanGaps = line.options.spanGaps;\n var count = points.length;\n var result = [];\n var prevStyle = baseStyle;\n var start = segments[0].start;\n var i = start;\n\n function addStyle(s, e, l, st) {\n var dir = spanGaps ? -1 : 1;\n\n if (s === e) {\n return;\n }\n\n s += count;\n\n while (points[s % count].skip) {\n s -= dir;\n }\n\n while (points[e % count].skip) {\n e += dir;\n }\n\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n\n var _iterator11 = _createForOfIteratorHelper(segments),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var segment = _step11.value;\n start = spanGaps ? start : segment.start;\n var prev = points[start % count];\n var style = void 0;\n\n for (i = start + 1; i <= segment.end; i++) {\n var pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex: datasetIndex\n })));\n\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n\n prev = pt;\n prevStyle = style;\n }\n\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _isPointInArea as $, _factorize as A, finiteOrDefault as B, callback as C, _addGrace as D, _limitValue as E, toDegrees as F, _measureText as G, HALF_PI as H, _int16Range as I, _alignPixel as J, toPadding as K, clipArea as L, renderText as M, unclipArea as N, toFont as O, PI as P, each as Q, _toLeftRightCenter as R, _alignStartEnd as S, TAU as T, overrides as U, merge as V, _capitalize as W, getRelativePosition as X, _rlookupByKey as Y, _lookupByKey as Z, _arrayUnique as _, resolve as a, toLineHeight as a$, getAngleFromPoint as a0, getMaximumSize as a1, _getParentNode as a2, readUsedSize as a3, throttled as a4, supportsEventListenerOptions as a5, _isDomSupported as a6, descriptors as a7, isFunction as a8, _attachContext as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, noop as aF, distanceBetweenPoints as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, _longestText as aM, _filterBetween as aN, _lookup as aO, isPatternOrGradient as aP, getHoverColor as aQ, clone$1 as aR, _merger as aS, _mergerIf as aT, _deprecated as aU, _splitKey as aV, toFontString as aW, splineCurve as aX, splineCurveMonotone as aY, getStyle as aZ, fontString as a_, _createResolver as aa, _descriptors as ab, mergeIf as ac, uid as ad, debounce as ae, retinaScale as af, clearCanvas as ag, setsEqual as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _readValueToProps as al, _updateBezierControlPoints as am, _computeSegments as an, _boundSegments as ao, _steppedInterpolation as ap, _bezierInterpolation as aq, _pointInLine as ar, _steppedLineTo as as, _bezierCurveTo as at, drawPoint as au, addRoundedRectPath as av, toTRBL as aw, toTRBLCorners as ax, _boundSegment as ay, _normalizeAngle as az, isArray as b, PITAU as b0, INFINITY as b1, RAD_PER_DEG as b2, QUARTER_PI as b3, TWO_THIRDS_PI as b4, _angleDiff as b5, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, log10 as z };","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Alert = void 0;\n\nvar alert_1 = require(\"./alert\");\n\nObject.defineProperty(exports, \"Alert\", {\n enumerable: true,\n get: function get() {\n return alert_1.Alert;\n }\n});","export { matchesState } from './utils.js';\nexport { mapState } from './mapState.js';\nexport { ActionTypes, SpecialTargets } from './types.js';\nimport { raise, send, sendParent, sendUpdate, log, cancel, start, stop, assign, after, done, respond, forwardTo, escalate, choose, pure } from './actions.js';\nexport { assign, doneInvoke, forwardTo, send, sendParent, sendUpdate } from './actions.js';\nexport { State } from './State.js';\nexport { StateNode } from './StateNode.js';\nexport { Machine, createMachine } from './Machine.js';\nexport { Interpreter, InterpreterStatus, interpret, spawn } from './interpreter.js';\nexport { matchState } from './match.js';\nexport { createSchema } from './schema.js';\nvar actions = {\n raise: raise,\n send: send,\n sendParent: sendParent,\n sendUpdate: sendUpdate,\n log: log,\n cancel: cancel,\n start: start,\n stop: stop,\n assign: assign,\n after: after,\n done: done,\n respond: respond,\n forwardTo: forwardTo,\n escalate: escalate,\n choose: choose,\n pure: pure\n};\nexport { actions };","\"use strict\";\n\nvar _slicedToArray = require(\"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/slicedToArray\");\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TableRowsDesktop = void 0;\n\nvar react_1 = __importDefault(require(\"react\"));\n\nvar react_2 = require(\"@chakra-ui/react\");\n\nvar ilgroupdesignsystem_atoms_text_1 = require(\"@irishlife/ilgroupdesignsystem.atoms.text\");\n\nvar ilgroupdesignsystem_icons_1 = require(\"@irishlife/ilgroupdesignsystem.icons\");\n\nvar rendertablerows_1 = require(\"./rendertablerows\");\n\nfunction TableRowsDesktop(props) {\n var columns = props.columns,\n column = props.column,\n rowgroup = props.rowgroup,\n isSmallScreen = props.isSmallScreen;\n var initialState = rowgroup === null || rowgroup === void 0 ? void 0 : rowgroup.map(function (item) {\n return {\n isExpanded: item.isExpanded\n };\n });\n\n var _react_1$default$useS = react_1.default.useState(initialState),\n _react_1$default$useS2 = _slicedToArray(_react_1$default$useS, 2),\n showIndex = _react_1$default$useS2[0],\n setShowIndex = _react_1$default$useS2[1];\n\n var handleToggle = function handleToggle(index) {\n var tempState = showIndex.map(function (item, itemIndex) {\n return itemIndex === index ? Object.assign(Object.assign({}, item), {\n isExpanded: !item.isExpanded\n }) : Object.assign({}, item);\n });\n setShowIndex(tempState);\n };\n\n if (!isSmallScreen) {\n return rowgroup === null || rowgroup === void 0 ? void 0 : rowgroup.map(function (rowGroupItem, index) {\n var showIcon = showIndex[index].isExpanded ? react_1.default.createElement(ilgroupdesignsystem_icons_1.ChevronUpIcon, null) : react_1.default.createElement(ilgroupdesignsystem_icons_1.ChevronDownIcon, null);\n return react_1.default.createElement(react_1.default.Fragment, {\n key: rowGroupItem.rowGroupTitle\n }, react_1.default.createElement(RenderTableRowHeaders, {\n rowGroupItem: rowGroupItem,\n showIcon: showIcon,\n handleToggle: handleToggle,\n index: index\n }), !rowGroupItem.Collapsible && react_1.default.createElement(react_2.Table, null, react_1.default.createElement(react_2.Tbody, null, react_1.default.createElement(rendertablerows_1.RenderedTableRows, {\n isSmallScreen: isSmallScreen,\n index: index,\n rowgroup: rowgroup,\n rowGroupItem: rowGroupItem,\n columns: columns\n }))), rowGroupItem.Collapsible && react_1.default.createElement(react_2.Collapse, {\n in: showIndex[index].isExpanded,\n animateOpacity: true\n }, react_1.default.createElement(react_2.Table, null, react_1.default.createElement(react_2.Tbody, null, react_1.default.createElement(rendertablerows_1.RenderedTableRows, {\n isSmallScreen: isSmallScreen,\n index: index,\n rowgroup: rowgroup,\n rowGroupItem: rowGroupItem,\n columns: columns\n })))));\n });\n }\n\n return rowgroup === null || rowgroup === void 0 ? void 0 : rowgroup.map(function (rowGroupItem, index) {\n var showIcon = showIndex[index].isExpanded ? react_1.default.createElement(ilgroupdesignsystem_icons_1.ChevronUpIcon, null) : react_1.default.createElement(ilgroupdesignsystem_icons_1.ChevronDownIcon, null);\n return react_1.default.createElement(react_1.default.Fragment, {\n key: rowGroupItem.rowGroupTitle\n }, react_1.default.createElement(RenderTableRowHeaders, {\n rowGroupItem: rowGroupItem,\n showIcon: showIcon,\n handleToggle: handleToggle,\n index: index\n }), react_1.default.createElement(react_2.Table, {\n sx: {\n alignItems: 'flex-start',\n padding: '0px'\n }\n }, react_1.default.createElement(react_2.Tbody, null, !rowGroupItem.Collapsible && react_1.default.createElement(rendertablerows_1.RenderedTableRows, {\n isSmallScreen: isSmallScreen,\n index: index,\n rowGroupItem: rowGroupItem,\n columns: column\n }), rowGroupItem.Collapsible && react_1.default.createElement(react_2.Collapse, {\n in: showIndex[index].isExpanded,\n animateOpacity: true\n }, react_1.default.createElement(rendertablerows_1.RenderedTableRows, {\n isSmallScreen: isSmallScreen,\n rowgroup: rowgroup,\n index: index,\n rowGroupItem: rowGroupItem,\n columns: column\n })))));\n });\n}\n\nexports.TableRowsDesktop = TableRowsDesktop;\n\nfunction RenderTableRowHeaders(props) {\n var rowGroupItem = props.rowGroupItem,\n showIcon = props.showIcon,\n handleToggle = props.handleToggle,\n index = props.index;\n return react_1.default.createElement(react_2.Box, {\n sx: {\n backgroundColor: 'brand.200',\n px: 6,\n py: 5,\n textAlign: 'start'\n },\n onClick: function onClick() {\n return handleToggle(index);\n }\n }, react_1.default.createElement(ilgroupdesignsystem_atoms_text_1.Text, {\n variant: \"caption-xl\"\n }, rowGroupItem.rowGroupTitle, react_1.default.createElement(react_2.Box, {\n as: \"span\",\n sx: {\n px: 2,\n width: 2,\n height: 2\n }\n }, rowGroupItem.Collapsible && showIcon)));\n}","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","import _slicedToArray from \"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport 'core-js/modules/es.object.assign.js';\nimport { Box, Image } from '@chakra-ui/react';\nimport React from 'react';\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nvar borderColorMap = {\n life: 'pillar.life',\n investments: 'pillar.investments',\n health: 'pillar.health',\n pensions: 'highlight.havelockblue',\n smartinvest: 'pillar.investments',\n wellbeing: 'pillar.wellbeing',\n general: 'pillar.general',\n lapsed: 'pillar.lapsed',\n surrendered: 'pillar.surrendered',\n proposal: 'pillar.proposal'\n};\nvar borderDisabledColorMap = {\n life: '#BCDCF9',\n investments: '#DEC7E8',\n health: '#B3E0EA',\n pensions: '#D8DBF7',\n smartinvest: '#DEC7E8',\n wellbeing: '#cfd4fa',\n general: '#cfd4fa',\n lapsed: '#cfd4fa',\n surrendered: '#cfd4fa',\n proposal: '#cfd4fa'\n};\n\nfunction getVariantBorderStyles(_ref) {\n var isDisabled = _ref.isDisabled,\n key = _ref.key,\n value = _ref.value;\n var borderColor = borderColorMap[value];\n var borderDisabledColor = borderDisabledColorMap[value];\n var styles = {\n borderTop: {\n borderTopColor: isDisabled ? borderDisabledColor : borderColor,\n borderTopWidth: '6px'\n },\n borderLeft: {\n borderLeftColor: isDisabled ? borderDisabledColor : borderColor,\n borderLeftWidth: '6px'\n },\n borderBottom: {\n borderBottomColor: isDisabled ? borderDisabledColor : borderColor,\n borderBottomWidth: '6px'\n },\n borderRight: {\n borderRightColor: isDisabled ? borderDisabledColor : borderColor,\n borderRightWidth: '6px'\n }\n };\n return styles[key];\n}\n\nfunction Card(props) {\n var _props$src = props.src,\n src = _props$src === void 0 ? '' : _props$src,\n isDisabled = props.isDisabled,\n borderTop = props.borderTop,\n borderLeft = props.borderLeft,\n borderBottom = props.borderBottom,\n borderRight = props.borderRight,\n children = props.children,\n imgHeight = props.imgHeight,\n rest = __rest(props, [\"src\", \"isDisabled\", \"borderTop\", \"borderLeft\", \"borderBottom\", \"borderRight\", \"children\", \"imgHeight\"]);\n\n var borderStyles = React.useMemo(function () {\n var _ref2 = Object.entries({\n borderTop: borderTop,\n borderRight: borderRight,\n borderBottom: borderBottom,\n borderLeft: borderLeft\n }).find(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n _key = _ref5[0],\n _value = _ref5[1];\n\n return !!_key && !!_value;\n }) || ['', ''],\n _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n value = _ref3[1];\n\n return getVariantBorderStyles({\n isDisabled: isDisabled,\n key: key,\n value: value\n });\n }, [borderTop, borderLeft, borderBottom, borderRight, isDisabled]);\n var commonProps = {\n 'data-testid': 'Card',\n width: 'full',\n spacing: 0,\n shadow: 2,\n rounded: 'xl',\n overflow: 'hidden',\n bg: isDisabled ? '#F7F8FB' : 'white',\n position: 'relative'\n };\n\n if (src) {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(Box, Object.assign({}, commonProps, rest), /*#__PURE__*/React.createElement(Image, {\n src: src,\n height: imgHeight ? imgHeight : '205px',\n objectFit: 'cover',\n width: 'full'\n }), /*#__PURE__*/React.createElement(Box, {\n p: ['20px', '40px'],\n width: 'full'\n }, children))\n );\n }\n\n return /*#__PURE__*/React.createElement(Box, Object.assign({}, commonProps, {\n p: ['20px', '40px']\n }, borderStyles, rest), children);\n}\n\nexport { Card };","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RenderedTableRows = void 0;\n\nvar react_1 = __importDefault(require(\"react\"));\n\nvar react_2 = require(\"@chakra-ui/react\");\n\nvar ilgroupdesignsystem_icons_1 = require(\"@irishlife/ilgroupdesignsystem.icons\");\n\nfunction RenderedTableRows(props) {\n var rowGroupItem = props.rowGroupItem,\n columns = props.columns,\n rowgroup = props.rowgroup,\n index = props.index,\n isSmallScreen = props.isSmallScreen;\n var columnIndex = 0;\n return rowGroupItem === null || rowGroupItem === void 0 ? void 0 : rowGroupItem.rows.map(function (row, rowIndex) {\n if (index < 1) {\n columnIndex = rowIndex;\n } else {\n columnIndex = rowgroup[index - 1].rows.length + rowIndex;\n }\n\n if (isSmallScreen) {\n return react_1.default.createElement(react_2.Tr, {\n key: row.rowTitle,\n sx: {\n backgroundColor: '#FFFFFF'\n }\n }, react_1.default.createElement(react_2.Td, {\n sx: {\n width: '275px'\n }\n }, \" \", row.rowTitle), react_1.default.createElement(react_2.Td, null, react_1.default.createElement(react_2.Box, {\n textAlign: 'center'\n }, columns.cellValues[columnIndex].cellValue === 'Yes' && react_1.default.createElement(ilgroupdesignsystem_icons_1.CheckIcon, {\n color: \"vibrant.700\"\n }), columns.cellValues[columnIndex].cellValue === 'No' && react_1.default.createElement(ilgroupdesignsystem_icons_1.MinusIcon, {\n color: \"monochrome.500\"\n }), columns.cellValues[columnIndex].cellValue != 'No' && columns.cellValues[columnIndex].cellValue != 'Yes' && react_1.default.createElement(react_1.default.Fragment, null, columns.cellValues[columnIndex].cellValue))));\n }\n\n return react_1.default.createElement(react_2.Tr, {\n key: row.rowTitle,\n sx: {\n backgroundColor: '#FFFFFF'\n }\n }, react_1.default.createElement(react_2.Td, {\n sx: {\n width: '306px'\n }\n }, \" \", row.rowTitle), columns.map(function (column) {\n return react_1.default.createElement(react_2.Td, {\n key: column.columnTitle\n }, react_1.default.createElement(react_2.Box, {\n textAlign: 'center'\n }, column.cellValues[columnIndex].cellValue === 'Yes' && react_1.default.createElement(ilgroupdesignsystem_icons_1.CheckIcon, {\n color: \"vibrant.700\"\n }), column.cellValues[columnIndex].cellValue === 'No' && react_1.default.createElement(ilgroupdesignsystem_icons_1.MinusIcon, {\n color: \"monochrome.500\"\n }), column.cellValues[columnIndex].cellValue != 'No' && column.cellValues[columnIndex].cellValue != 'Yes' && react_1.default.createElement(react_1.default.Fragment, null, column.cellValues[columnIndex].cellValue)));\n }));\n });\n}\n\nexports.RenderedTableRows = RenderedTableRows;","\"use strict\";\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Accordion = void 0;\n\nvar react_1 = __importDefault(require(\"react\"));\n\nvar react_2 = require(\"@chakra-ui/react\");\n\nvar ilgroupdesignsystem_atoms_text_1 = require(\"@irishlife/ilgroupdesignsystem.atoms.text\");\n\nvar Icons = __importStar(require(\"@irishlife/ilgroupdesignsystem.icons\"));\n\nfunction Accordion(props) {\n var defaultIndex = props.defaultIndex,\n items = props.items;\n return react_1.default.createElement(react_2.Accordion, {\n \"data-testid\": \"Accordion\",\n defaultIndex: defaultIndex,\n allowToggle: true,\n allowMultiple: true\n }, items === null || items === void 0 ? void 0 : items.map(function (item) {\n return react_1.default.createElement(AccordionItem, Object.assign({\n key: item.id\n }, item));\n }));\n}\n\nexports.Accordion = Accordion;\n\nfunction AccordionItem(props) {\n var header = props.header,\n children = props.children,\n _props$icon = props.icon,\n icon = _props$icon === void 0 ? '' : _props$icon;\n var iconElement = react_1.default.useMemo(function () {\n if (!icon) return null;\n if (icon.includes('http')) return react_1.default.createElement(react_2.Image, {\n display: 'inline',\n src: icon,\n boxSize: '32px',\n pr: 1,\n objectFit: \"contain\"\n }); // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n\n var IconComponent = Icons[icon];\n return react_1.default.createElement(IconComponent, {\n display: 'inline',\n fontSize: '32px',\n pr: 1,\n color: \"accent.600\"\n });\n }, [icon]);\n return react_1.default.createElement(react_2.AccordionItem, {\n borderColor: \"brand.300\"\n }, react_1.default.createElement(\"h2\", null, react_1.default.createElement(react_2.AccordionButton, {\n height: \"87px\",\n _hover: {\n bg: 'brand.50'\n }\n }, react_1.default.createElement(react_2.Box, {\n flex: \"1\",\n textAlign: \"left\"\n }, react_1.default.createElement(ilgroupdesignsystem_atoms_text_1.Text, {\n variant: \"subtitle-md\",\n color: \"brand.600\"\n }, react_1.default.createElement(react_2.Box, {\n display: 'flex',\n alignItems: \"center\"\n }, iconElement, header))), react_1.default.createElement(react_2.AccordionIcon, {\n color: \"black\"\n }))), react_1.default.createElement(react_2.AccordionPanel, {\n pb: 4\n }, react_1.default.createElement(ilgroupdesignsystem_atoms_text_1.Text, {\n as: \"html\",\n sx: {\n img: {\n height: '424px',\n width: '294px',\n display: 'block',\n mr: 'auto',\n ml: 'auto',\n mb: '44px',\n mt: '45px'\n }\n }\n }, children)));\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MobileHeader = void 0;\n\nvar react_1 = require(\"@chakra-ui/react\");\n\nvar react_2 = __importDefault(require(\"react\"));\n\nvar ilgroupdesignsystem_atoms_text_1 = require(\"@irishlife/ilgroupdesignsystem.atoms.text\");\n\nfunction MobileHeader(props) {\n var columns = props.columns,\n handleHeaderClick = props.handleHeaderClick,\n columnClass = props.columnClass;\n return react_2.default.createElement(react_1.HStack, {\n sx: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n padding: '0px',\n gap: '12px',\n position: 'absolute',\n width: '343px',\n height: '72px',\n left: 'calc(50% - 343px/2)',\n top: '31px'\n }\n }, columns.map(function (column, index) {\n return react_2.default.createElement(react_1.Box, {\n as: \"button\",\n key: column.columnTitle,\n sx: Object.assign({\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n padding: '12px 6px',\n gap: '6px',\n width: '102px',\n height: '72px',\n background: '#FFFFFF',\n borderRadius: '12px',\n flex: 'none',\n order: '1',\n flexGrow: '0'\n }, columnClass[index].isSelected),\n onClick: function onClick() {\n return handleHeaderClick(column, index);\n }\n }, react_2.default.createElement(ilgroupdesignsystem_atoms_text_1.Text, {\n sx: {\n color: 'brand.700',\n whiteSpace: 'pre-line'\n },\n variant: \"body-md\"\n }, column.columnTitle));\n }));\n}\n\nexports.MobileHeader = MobileHeader;","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","import { createIcon, Breadcrumb as Breadcrumb$1, BreadcrumbItem, BreadcrumbLink } from '@chakra-ui/react';\nimport React from 'react';\nvar RightIcon = createIcon({\n displayName: 'RightIcon',\n viewBox: '0 0 24 24',\n path: /*#__PURE__*/React.createElement(\"path\", {\n d: 'm14.606 11.256-3.25-3.385c-.308-.322-.835-.094-.835.36v6.771c0 .455.527.682.835.361l3.25-3.385a.525.525 0 0 0 0-.722Z',\n fill: '#C1C7E1'\n })\n});\n\nfunction Breadcrumb(props) {\n var items = props.items,\n onItemClick = props.onItemClick;\n var handleClick = React.useCallback(function (value) {\n if (onItemClick) onItemClick(value);\n }, [onItemClick]);\n return /*#__PURE__*/React.createElement(Breadcrumb$1, {\n \"data-testid\": 'Breadcrumb',\n fontSize: '14px',\n color: 'brand.600',\n fontWeight: 'medium',\n lineHeight: '16px',\n separator: /*#__PURE__*/React.createElement(RightIcon, {\n fontSize: 24,\n key: 'RightIcon'\n })\n }, items === null || items === void 0 ? void 0 : items.map(function (_ref) {\n var id = _ref.id,\n label = _ref.label,\n value = _ref.value,\n isActive = _ref.isActive;\n return /*#__PURE__*/React.createElement(BreadcrumbItem, {\n key: value || id\n }, /*#__PURE__*/React.createElement(BreadcrumbLink, {\n role: 'link',\n isCurrentPage: isActive,\n onClick: function onClick() {\n return handleClick(value);\n },\n tabIndex: 0,\n color: isActive ? 'monochrome.700' : 'brand.600',\n _focus: {\n color: 'brand.900'\n }\n }, label));\n }));\n}\n\nexport { Breadcrumb };","import 'core-js/modules/es.object.assign.js';\nimport { Button as Button$1 } from '@chakra-ui/react';\nimport React from 'react';\nvar Button = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Button$1, Object.assign({\n \"data-testid\": 'Button',\n ref: ref\n }, props));\n});\nexport { Button };","import { Box } from '@chakra-ui/react';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\nimport React from 'react';\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nvar JumbotronContact = function JumbotronContact(_a) {\n var props = __rest(_a, []);\n\n var contactTitle = props.contactTitle,\n contactText = props.contactText,\n contactIcon = props.contactIcon,\n onClick = props.onClick;\n return /*#__PURE__*/React.createElement(Box, {\n display: 'flex',\n flexWrap: 'wrap',\n marginTop: [4, 6],\n marginBottom: [4, 6],\n width: '75%'\n }, /*#__PURE__*/React.createElement(Box, null, contactIcon && /*#__PURE__*/React.createElement(\"img\", {\n style: {\n width: '28px',\n height: '28px',\n maxWidth: '56px',\n marginRight: '1rem'\n },\n alt: 'icon',\n src: contactIcon\n })), /*#__PURE__*/React.createElement(Box, {\n flexGrow: 3\n }, typeof contactTitle === 'string' && /*#__PURE__*/React.createElement(\"a\", {\n href: \"tel:\".concat(contactTitle),\n onClick: onClick\n }, /*#__PURE__*/React.createElement(Text, {\n variant: 'title-sm',\n color: 'brand.500'\n }, contactTitle))), /*#__PURE__*/React.createElement(Box, {\n flexGrow: 1,\n maxWidth: '20em',\n mt: [4, 2]\n }, typeof contactText === 'string' && /*#__PURE__*/React.createElement(Text, {\n variant: 'body-md'\n }, contactText)));\n};\n\nexport { JumbotronContact };","import 'core-js/modules/es.object.assign.js';\nimport { createIcon, useBreakpointValue, Stack, HStack, Box, Image } from '@chakra-ui/react';\nimport { Button } from '@irishlifedigitalhub/ds.atoms.button';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\nimport { ArrowRightCircleIcon, ArrowRightIcon } from '@irishlifedigitalhub/ds.icons';\nimport { JumbotronContact } from '@irishlifedigitalhub/ds.molecules.jumbotron-contact';\nimport React from 'react';\n\nfunction Jumbotron(props) {\n var _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'hero' : _props$variant,\n _props$leftContentMax = props.leftContentMaxWidth,\n leftContentMaxWidth = _props$leftContentMax === void 0 ? 'xl' : _props$leftContentMax,\n buttonText = props.buttonText,\n secondaryButtonText = props.secondaryButtonText,\n _props$buttonProps = props.buttonProps,\n buttonProps = _props$buttonProps === void 0 ? {} : _props$buttonProps,\n _props$secondaryButto = props.secondaryButtonProps,\n secondaryButtonProps = _props$secondaryButto === void 0 ? {} : _props$secondaryButto,\n src = props.src,\n title = props.title,\n subtitle = props.subtitle,\n paragraph = props.paragraph,\n renderBreadcrumb = props.renderBreadcrumb,\n contactTitle = props.contactTitle,\n contactText = props.contactText,\n contactIcon = props.contactIcon,\n contactOnClick = props.contactOnClick;\n var hasPrimaryCta = !!buttonText;\n var hasSecondaryCta = !!secondaryButtonText;\n var hasCta = hasPrimaryCta || hasSecondaryCta;\n var hasContact = !!contactTitle;\n var bg = variant === 'hero' ? '#F7F8FB' : ['#F7F8FB', '#F7F8FB', 'white'];\n var secondaryCtaVariant = useBreakpointValue({\n base: 'secondary',\n md: 'ghost'\n });\n return /*#__PURE__*/React.createElement(Stack, {\n \"data-testid\": 'Jumbotron',\n width: 'full',\n overflowY: 'hidden',\n direction: ['column-reverse', 'column-reverse', 'row'],\n spacing: 0,\n position: 'relative',\n bg: bg\n }, /*#__PURE__*/React.createElement(HStack, {\n maxW: ['full', 'full', src ? '50%' : 'full'],\n w: 'full',\n pt: 8,\n pb: [12, 12, 8],\n position: 'relative',\n zIndex: 10\n }, /*#__PURE__*/React.createElement(Box, {\n maxW: ['full', 'full', leftContentMaxWidth],\n w: 'full',\n ml: 'auto'\n }, /*#__PURE__*/React.createElement(Stack, {\n pl: 4,\n pr: [4, 4, 4, 0],\n maxW: ['full', 'full', '744px'],\n width: 'full',\n spacing: [3, 3, 6]\n }, renderBreadcrumb && /*#__PURE__*/React.createElement(Box, {\n pb: 2\n }, renderBreadcrumb), title && /*#__PURE__*/React.createElement(Text, {\n variant: ['title-xl', 'title-xl', 'title-2xl']\n }, title), subtitle && /*#__PURE__*/React.createElement(Text, {\n variant: ['title-sm', 'title-sm', 'title-md']\n }, subtitle), hasContact && /*#__PURE__*/React.createElement(JumbotronContact, {\n contactIcon: contactIcon,\n contactTitle: contactTitle,\n contactText: contactText,\n onClick: contactOnClick\n }), paragraph && /*#__PURE__*/React.createElement(Text, {\n color: 'monochrome.800',\n variant: 'subtitle-md'\n }, paragraph), hasCta && /*#__PURE__*/React.createElement(Box, {\n pt: [6, 6, 2]\n }, /*#__PURE__*/React.createElement(Stack, {\n align: {\n base: 'flex-start'\n },\n direction: {\n base: 'column',\n lg: 'row'\n }\n }, hasPrimaryCta && /*#__PURE__*/React.createElement(Button, Object.assign({\n size: 'lg',\n rightIcon: /*#__PURE__*/React.createElement(ArrowRightCircleIcon, {\n fontSize: 28\n })\n }, buttonProps), buttonText), hasSecondaryCta && /*#__PURE__*/React.createElement(Box, {\n sx: {\n pl: {\n base: 0,\n lg: '24px'\n },\n pt: {\n base: '24px',\n lg: 0\n }\n }\n }, /*#__PURE__*/React.createElement(Button, Object.assign({\n variant: secondaryCtaVariant,\n size: 'lg',\n rightIcon: /*#__PURE__*/React.createElement(ArrowRightIcon, null)\n }, secondaryButtonProps), secondaryButtonText))))))), src && /*#__PURE__*/React.createElement(Box, {\n w: 'full',\n minH: ['292px', '292px', '512px'],\n \"data-testid\": 'image-container',\n overflow: 'hidden'\n }, /*#__PURE__*/React.createElement(ComponentImage, {\n src: src,\n variant: variant\n })), variant === 'campaign' && /*#__PURE__*/React.createElement(BackgroundSvg, {\n display: ['none', 'none', 'block'],\n width: '900px',\n height: '770px',\n position: 'absolute',\n right: 0,\n bottom: -32\n }));\n}\n\nfunction ComponentImage(props) {\n var src = props.src,\n variant = props.variant;\n\n if (variant === 'campaign') {\n return /*#__PURE__*/React.createElement(Box, {\n pt: [0, 0, 16],\n position: 'relative',\n zIndex: 10,\n h: 'full'\n }, /*#__PURE__*/React.createElement(Image, {\n src: src,\n height: 'full',\n objectFit: 'cover',\n width: 'full'\n }));\n }\n\n if (variant === 'hero') {\n return /*#__PURE__*/React.createElement(Box, {\n height: 'full',\n overflow: 'hidden',\n position: ['static', 'static', 'relative'],\n transform: ['skew(0deg)', 'skew(0deg)', 'skew(-7deg)'],\n ml: [0, 0, '50px'],\n width: 'full'\n }, /*#__PURE__*/React.createElement(Box, {\n transform: ['skew(0deg)', 'skew(0deg)', 'skew(7deg)'],\n top: 0,\n right: [0, 0, '50px'],\n position: ['static', 'static', 'absolute'],\n width: 'full',\n height: ['292px', '292px', 'full'],\n bgImage: \"url(\\\"\".concat(src, \"?auto=format\\\")\"),\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover'\n }));\n }\n\n return null;\n}\n\nvar BackgroundSvg = createIcon({\n displayName: 'BackgroundSvg',\n viewBox: '0 0 900 770',\n path: /*#__PURE__*/React.createElement(\"path\", {\n d: 'M577 0h323v770H0L577 0Z',\n fill: '#F7F8FB'\n })\n});\nexport { Jumbotron };","const formatIconPosition = (iconPosition?: string) => {\n if(iconPosition === 'start') return 'leftIcon';\n if(iconPosition === 'end') return 'rightIcon';\n return ''\n}\n\nexport const getCallToActionData = (data: any) => {\n let iconPosition = formatIconPosition(data?.call_to_action__iconlocation);\n \n return {\n analyticsId: data?.call_to_action__analytics_id,\n label: data?.call_to_action__label,\n jumbotronLabel: data?.call_to_action__jumbotron_label,\n labelMobile: data?.call_to_action__label_mobile,\n [iconPosition]:\n data?.call_to_action__icon,\n text: data?.call_to_action__text,\n title: data?.call_to_action__title,\n titleMobile: data?.call_to_action__title_mobile,\n url: data?.call_to_action__url,\n jumbotronUrl: data?.call_to_action__jumbotron_url,\n variant: data?.call_to_action__variant,\n }\n}\n\nexport const getSecondaryCallToActionData = (data: any) => {\n let iconPosition = formatIconPosition(data?.call_to_action2__icon_location);\n return {\n analyticsId: data?.call_to_action2__analytics_id,\n label: data?.call_to_action2__label,\n [iconPosition]:\n data?.call_to_action2__icon,\n url: data?.call_to_action2__url,\n variant: data?.call_to_action2__variant,\n }\n}","import React from 'react';\nimport { IBulletWithIcon } from './BulletWithIcon.interface';\nimport { Box, Image } from '@chakra-ui/react';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\nimport { RichText } from '../RichText';\n\nconst BulletWithIcon = ({\n bullet,\n titleProps,\n textProps,\n iconProps,\n mainDivProps,\n}: IBulletWithIcon) => {\n return (\n \n \n {bullet.icon && (\n \n )}\n \n \n {bullet.title && {bullet.title}}\n {bullet.text && }\n \n \n );\n};\n\nexport { BulletWithIcon };\n","import { Box, Image } from '@chakra-ui/react';\nimport React from 'react';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\nimport { Button } from '@irishlifedigitalhub/ds.atoms.button';\nimport {\n getCallToActionData,\n getSecondaryCallToActionData,\n} from './formatButtons';\nimport { BulletWithIcon } from 'common/components/molecules/BulletWithIcon';\nimport { RichText } from 'common/components/molecules/RichText';\nimport styled from 'styled-components';\nimport { useDesktop } from 'common/hooks/useDesktop';\nimport { fireAnalyticsEvent } from 'common/utils/fireAnalyticsEvent';\nimport { navigate } from '@reach/router';\nimport { IAdvisorBlockV4 } from './AdvisorBlockV4.interface';\n\nconst StyledRichText = styled(RichText)`\n font-weight: 400;\n font-size: 18px;\n line-height: 28px;\n letter-spacing: 0%;\n color: #4e4670;\n`;\n\nconst StyledRichTextMobile = styled(RichText)`\n font-weight: 500;\n font-size: 16px;\n line-height: 24px;\n letter-spacing: 0%;\n color: #4e4670;\n`;\n\nconst AdvisorBlockV4: React.FC = (props: IAdvisorBlockV4) => {\n const isDesktop = useDesktop();\n const callToAction = getCallToActionData(props);\n const customcampaignId = props.custom_campaignid_to_booking_appointment_form\n ? `?campaignIdAdvisorBlock=${props.custom_campaignid_to_booking_appointment_form}`\n : '';\n const secondaryCallToAction = getSecondaryCallToActionData(props);\n\n return (\n \n \n \n {props.left_subtitle && props.left_subtitle.length > 0 && (\n \n {props.left_subtitle[0].text}\n \n )}\n\n \n {props.left_title && props.left_title.length > 0 && (\n \n {props.left_title[0].text}\n \n )}\n {props.left_body_text && (\n <>\n {isDesktop && (\n \n )}\n\n {!isDesktop && (\n \n )}\n \n )}\n \n \n\n \n {callToAction?.url && (\n }\n rightIcon={\"\"}\n onClick={(e) => {\n e.preventDefault();\n fireAnalyticsEvent({\n name: 'primaryCtaAdvisorBlockV4',\n properties: {\n clickText: callToAction.label,\n clickURL: callToAction.url,\n clickID: callToAction.analyticsId,\n },\n });\n navigate(`${callToAction.url}${customcampaignId}`);\n }}\n >\n {callToAction.label}\n \n )}\n {secondaryCallToAction?.url && (\n }\n rightIcon={\"\"}\n onClick={(e) => {\n e.preventDefault();\n fireAnalyticsEvent({\n name: 'secondaryCtaAdvisorBlockV4',\n properties: {\n clickText: secondaryCallToAction.label,\n clickURL: secondaryCallToAction.url,\n clickID: secondaryCallToAction.analyticsId,\n },\n });\n navigate(secondaryCallToAction.url);\n }}\n >\n {secondaryCallToAction.label}\n \n )}\n \n {props.left_regulatory_information && isDesktop && (\n \n {props.left_regulatory_information}\n \n )}\n \n \n {props.right_subtitle && props.right_subtitle.length > 0 && (\n \n {props.right_subtitle[0].text}\n \n )}\n {props.bullet_points &&\n props.bullet_points.length > 0 &&\n props.bullet_points.map((bullet) => (\n \n ))}\n {props.advisor_image &&\n props.advisor_message &&\n props.advisor_name &&\n props.advisor_role && (\n \n \n {props.advisor_message}\n \n \n \n \n \n {props.advisor_name}\n \n \n {props.advisor_role}\n \n \n \n \n )}\n \n {props.left_regulatory_information && !isDesktop && (\n \n {props.left_regulatory_information}\n \n )}\n \n );\n};\n\nexport { AdvisorBlockV4 };\n","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n/* eslint-disable no-proto */\n\n\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n };\n\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n };\n\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n }).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react'; // eslint-disable-next-line\n\nimport Swiper from '../../core';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","import React from 'react';\n\nfunction processChildren(c) {\n var slides = [];\n React.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(function (slide) {\n return slides.push(slide);\n });\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n var foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(function (slide) {\n return slides.push(slide);\n });\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides: slides,\n slots: slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils';\n\nfunction updateSwiper(_ref) {\n var swiper = _ref.swiper,\n slides = _ref.slides,\n passedParams = _ref.passedParams,\n changedParams = _ref.changedParams,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n scrollbarEl = _ref.scrollbarEl,\n paginationEl = _ref.paginationEl;\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n var destroyModule = function destroyModule(mod) {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n var newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","var _excluded = [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"];\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper, mountSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var eventsAssigned = false;\n\n var _useState = useState('swiper-container'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n\n var _useState2 = useState(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n\n var _useState3 = useState(false),\n breakpointChanged = _useState3[0],\n setBreakpointChanged = _useState3[1];\n\n var initializedRef = useRef(false);\n var swiperElRef = useRef(null);\n var swiperRef = useRef(null);\n var oldPassedParamsRef = useRef(null);\n var oldSlides = useRef(null);\n var nextElRef = useRef(null);\n var prevElRef = useRef(null);\n var paginationElRef = useRef(null);\n var scrollbarElRef = useRef(null);\n\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest,\n events = _getParams.events;\n\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n\n if (!swiperElRef.current) {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = initSwiper(swiperParams);\n\n swiperRef.current.loopCreate = function () {};\n\n swiperRef.current.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n var extendWith = {\n cache: false,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n var attachEvents = function attachEvents() {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n var detachEvents = function detachEvents() {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(function () {\n return function () {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n attachEvents();\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides: slides,\n passedParams: passedParams,\n changedParams: changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return function () {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var params = {\n on: {}\n };\n var events = {};\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(function (key) {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest,\n events: events\n };\n}\n\nexport { getParams };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\n\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl,\n swiper = _ref.swiper;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { initSwiper, mountSwiper };","import { paramsList } from './params-list';\nimport { isObject } from './utils';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n var _ref;\n\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? (_ref = {}, _ref[swiper.rtlTranslate ? 'right' : 'left'] = virtualData.offset + \"px\", _ref) : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","var _excluded = [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\", \"virtualIndex\"];\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n virtualIndex = _ref.virtualIndex,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var slideElRef = useRef(null);\n\n var _useState = useState('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(function () {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n var slideData;\n\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n }\n\n var renderChildren = function renderChildren() {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : '')),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","import React from 'react';\nimport { Box, Text, HStack } from '@chakra-ui/react';\nimport {\n ChevronRightIcon,\n ChevronLeftIcon,\n} from '@irishlifedigitalhub/ds.icons';\n\n// Swiper Imports\nimport SwiperCore, { Navigation } from 'swiper';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/swiper-bundle.min.css';\nimport 'swiper/swiper.min.css';\n\nexport interface TabGroupProps {\n tabs?: TabItem[];\n size?: 'sm' | 'md';\n callback?: (index: number) => void;\n activeIndex?: number;\n swiperRef?: any;\n}\n\ntype TabItem = {\n name: string;\n icon?: JSX.Element;\n};\n\nconst classes = {\n tabFilterItem: {\n textAlign: 'center',\n borderRadius: '50px',\n width: 'unset',\n transition: 'all 0.35s',\n '&:hover': {\n backgroundColor: 'vibrant.50',\n boxShadow: '0px 0px 20px 0px rgba(113, 127, 226, 0.24)',\n },\n '& p': {\n color: 'black',\n wordWrap: 'normal',\n transition: 'all 0.35s',\n },\n },\n tabFilterActiveItem: {\n backgroundColor: 'white',\n boxShadow: '0px 0px 20px 0px rgba(113, 127, 226, 0.24)',\n '&:hover': {\n backgroundColor: 'white',\n boxShadow: '0px 0px 20px 0px rgba(113, 127, 226, 0.24)',\n },\n },\n tabSwipeNextButton: {\n right: '0 !important',\n top: '22px !important',\n width: '36px !important',\n height: '100% !important',\n backgroundColor: 'vibrant.100',\n boxShadow: '0px 0px 20px 0px rgba(113, 127, 226, 0.24)',\n '&::after': {\n display: 'none !important',\n },\n '&.swiper-button-disabled': {\n display: 'none !important',\n },\n '& svg': {\n width: '1em !important',\n height: '1em !important',\n },\n },\n tabSwipePrevButton: {\n left: '0 !important',\n top: '22px !important',\n width: '36px !important',\n height: '100% !important',\n backgroundColor: 'vibrant.100',\n boxShadow: '0px 0px 20px 0px rgba(113, 127, 226, 0.24)',\n '&::after': {\n display: 'none !important',\n },\n '&.swiper-button-disabled': {\n display: 'none !important',\n },\n '& svg': {\n width: '1em !important',\n height: '1em !important',\n },\n },\n};\n\nexport const TabGroup = (props: TabGroupProps) => {\n const {\n tabs = [],\n callback,\n activeIndex = 0,\n size = 'md',\n swiperRef,\n } = props;\n\n SwiperCore.use([Navigation]);\n\n const sliderSettings = {\n spaceBetween: 0,\n grabCursor: true,\n observer: true,\n observeParents: true,\n observeSlideChildren: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n onSwiper: (swiper: SwiperCore) => {\n if (swiperRef) swiperRef.current = swiper;\n },\n };\n\n return (\n \n \n {tabs?.map((tab, index) => (\n \n {\n // Pass back index to parent component\n callback?.(index);\n }}\n >\n \n {tab?.icon}\n \n {tab?.name}\n \n \n \n \n ))}\n \n \n \n \n \n \n \n \n );\n};\n\nexport default TabGroup;\n","import React from 'react';\nimport { Box, Image } from '@chakra-ui/react';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\nimport { Button } from '@irishlifedigitalhub/ds.atoms.button';\nimport { BrandChevronRightIcon } from '@irishlifedigitalhub/ds.icons';\nimport { navigate } from '@reach/router';\nimport { motion } from 'framer-motion';\nimport { useDesktop } from 'common/hooks/useDesktop';\n\ninterface IInvestmentHubCategories {\n category: string;\n readTime?: number;\n title: string;\n buttonLabel: string;\n image: string;\n url: string;\n index: number;\n}\n\nconst cardVariants = {\n hidden: (index: number) => ({\n opacity: 0,\n y: -20,\n transition: { delay: index * 0.05 },\n }),\n visible: (index: number) => ({\n opacity: 1,\n y: 0,\n transition: { delay: index * 0.05, duration: 0.3 },\n }),\n exit: (index: number) => ({\n opacity: 0,\n y: 20,\n transition: { duration: 0.2 },\n }),\n};\n\nconst InvestmentHubCategoriesCard = (props: IInvestmentHubCategories) => {\n const isDesktop = useDesktop();\n const formatReadTime = `${props.readTime} Min Read`;\n const category = Array.isArray(props.category)\n ? props.category[0].name\n : props.category;\n const metaData = `${category}\\xa0\\xa0•\\xa0\\xa0${formatReadTime}`;\n\n const handleClick = () => {\n navigate(`/blog/${props.url}`);\n };\n\n return (\n (!isDesktop ? handleClick() : undefined)}\n initial=\"hidden\"\n animate={'visible'}\n exit=\"exit\"\n variants={cardVariants}\n style={{\n display: 'flex',\n flexDirection: 'column',\n padding: '16px',\n backgroundColor: isDesktop ? 'white' : 'transparent',\n boxShadow: isDesktop ? '4px 0px 24px 0px #5261AC14' : 'none',\n borderRadius: isDesktop ? '12px' : '0px',\n gap: '16px',\n justifyContent: 'space-between',\n }}\n >\n \n \n\n \n \n {props.readTime ? metaData : category}\n \n \n {props.title}\n \n \n \n {isDesktop && (\n handleClick()}\n >\n \n {props.buttonLabel}\n \n \n \n )}\n \n );\n};\n\nexport { InvestmentHubCategoriesCard };\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { Button } from '@irishlifedigitalhub/ds.atoms.button';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n} from '@irishlifedigitalhub/ds.icons';\n\nconst useStyles = makeStyles((theme) => ({\n pagination: {\n border: `1px solid ${'#E3E5F9'}`,\n backgroundColor: '#FFFFFF',\n borderRadius: 20,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 'fit-content',\n height: 44,\n\n '& button:focus': {\n outline: `2px solid ${'#0C1E68'}`,\n backgroundColor: '#FFFFFF',\n color: '#0C1E68',\n },\n },\n paginationHidden: {\n width: 0,\n height: 0,\n overflow: 'hidden',\n },\n paginationButton: {\n width: '36px !important',\n height: 36,\n padding: 0,\n '&:hover': {\n backgroundColor: `${'#F7F8FB'} !important`,\n color: '#424FCF',\n },\n [theme.breakpoints.down(895)]: {\n width: '36px !important',\n },\n },\n paginationArrowButton: {\n width: `36px !important`,\n height: `36px !important`,\n padding: `0px !important`,\n '& span': {\n margin: `0px !important`,\n },\n '& path': {\n strokeWidth: `2px !important`,\n },\n '&:hover': {\n backgroundColor: '#F7F8FB',\n color: '#424FCF',\n },\n },\n}));\n\ninterface IInvestmentHubPagination {\n totalItems: number;\n pageSize: number;\n currentPage: number;\n setCurrentPage: any;\n}\n\nexport const InvestmentHubPagination = ({\n totalItems = 0,\n pageSize,\n currentPage,\n setCurrentPage,\n}: IInvestmentHubPagination) => {\n const classes = useStyles();\n\n const getPaginationComponent = () => {\n const pages = [];\n const totalPages = Math.ceil(totalItems / pageSize);\n const maxPages = 7;\n\n let isDotAlreadyAdded = false;\n pages.push(\n {\n setCurrentPage(currentPage - 1);\n }\n }\n leftIcon={}\n disabled={currentPage === 0}\n data-testid=\"paginationButton\"\n >\n );\n for (let index = 0; index < totalPages; index++) {\n if (\n (currentPage <= 2 && index <= 4) ||\n (totalPages - 1 - currentPage <= 2 && totalPages - 1 - index <= 4) ||\n Math.abs(index - currentPage) <= 1 ||\n (Math.abs(index - currentPage) <= 2 &&\n (index === 1 || index === totalPages - 2)) ||\n totalPages <= maxPages ||\n index === 0 ||\n index === totalPages - 1\n ) {\n isDotAlreadyAdded = false;\n pages.push(\n {\n setCurrentPage(index);\n }\n }\n >\n {index + 1}\n \n );\n } else {\n if (!isDotAlreadyAdded) {\n isDotAlreadyAdded = true;\n\n pages.push(\n {\n setCurrentPage(index);\n }\n }\n disabled\n >\n ...\n \n );\n }\n }\n }\n pages.push(\n {\n setCurrentPage(currentPage + 1);\n }\n }\n disabled={currentPage === totalPages - 1}\n rightIcon={}\n >\n );\n return pages;\n };\n\n return (\n pageSize ? '' : classes.paginationHidden\n }`}\n >\n {getPaginationComponent()}\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { BlogCard, GroupedBlogPosts } from './InvestmentHubCategories';\nimport { Box, Stack } from '@chakra-ui/react';\nimport { InvestmentHubCategoriesCard } from './InvestmentHubCategoriesCard';\nimport { AnimatePresence } from 'framer-motion';\nimport { InvestmentHubPagination } from './InvestmentHubPagination/InvestmentHubPagination';\nimport { useDesktop } from 'common/hooks/useDesktop';\n\ninterface IInvestmentHubCategoriesCategoryListing {\n blogGroup?: GroupedBlogPosts;\n scrollToListing: () => void;\n}\n\nconst InvestmentHubCategoriesCategoryListing = (\n props: IInvestmentHubCategoriesCategoryListing\n) => {\n const isDesktop = useDesktop();\n const pageSize = 9;\n const [currentPage, setCurrentPage] = useState(0);\n const [blogCardsPaginated, setBlogCardsPaginated] = useState(\n []\n );\n\n useEffect(() => {\n generateBlogCardsPaginated();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.blogGroup?.blogPosts]);\n\n const generateBlogCardsPaginated = () => {\n setCurrentPage(0);\n setBlogCardsPaginated([]);\n if (props.blogGroup?.blogPosts && props.blogGroup?.blogPosts.length > 0) {\n const _blogsPaginated: BlogCard[][] = [];\n for (\n let index = 0;\n index < props.blogGroup.blogPosts.length;\n index += pageSize\n ) {\n _blogsPaginated.push(\n props.blogGroup.blogPosts.slice(index, index + pageSize)\n );\n }\n setBlogCardsPaginated(_blogsPaginated);\n }\n };\n\n const handlePagination = (e: any) => {\n setCurrentPage(e);\n props.scrollToListing();\n };\n\n return (\n <>\n {blogCardsPaginated && blogCardsPaginated.length > 0 && (\n <>\n \n \n {blogCardsPaginated[currentPage].map((blog, index) => {\n return (\n \n );\n })}\n \n \n \n \n \n \n )}\n \n );\n};\n\nexport { InvestmentHubCategoriesCategoryListing };\n","import React from 'react';\nimport { GroupedBlogPosts } from './InvestmentHubCategories';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\nimport { InvestmentHubCategoriesCard } from './InvestmentHubCategoriesCard';\nimport { Box } from '@chakra-ui/react';\nimport { Button } from '@irishlifedigitalhub/ds.atoms.button';\nimport { BrandChevronRightIcon } from '@irishlifedigitalhub/ds.icons';\nimport { useDesktop } from 'common/hooks/useDesktop';\n\ninterface IInvestmentHubCategoriesAllListing {\n groups?: GroupedBlogPosts[];\n callback: (e: any) => void;\n}\n\nconst InvestmentHubCategoriesAllListing = (\n props: IInvestmentHubCategoriesAllListing\n) => {\n const isDesktop = useDesktop();\n return (\n <>\n {props.groups && props.groups?.length > 0 && (\n \n {props.groups?.map((group) => {\n return (\n \n {group.blogPosts.length > 0 && (\n \n \n {group.type}\n \n\n \n {group.blogPosts.slice(0, 3).map((blog, index) => {\n return (\n \n );\n })}\n \n props.callback(group.type)}\n >\n \n See all {group.type}\n \n \n \n \n )}\n \n );\n })}\n \n )}\n \n );\n};\n\nexport { InvestmentHubCategoriesAllListing };\n","import React from 'react';\nimport { ShardCard } from '@irishlifedigitalhub/ds.molecules.shard-card';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\nimport { Box, Image } from '@chakra-ui/react';\nimport { Button } from '@irishlifedigitalhub/ds.atoms.button';\nimport { BrandChevronRightIcon } from '@irishlifedigitalhub/ds.icons';\nimport { navigate } from '@reach/router';\nimport { useDesktop } from 'common/hooks/useDesktop';\nimport { BlogV2Category } from 'common/pages/BlogV2PagePage';\n\ninterface IFeaturedCard {\n readTime?: number;\n category: BlogV2Category[];\n image: string;\n title?: string;\n description?: string;\n buttonLabel?: string;\n url: string;\n}\n\nconst FeaturedCard = (props: IFeaturedCard) => {\n const isDesktop = useDesktop();\n\n return isDesktop ? (\n \n ) : (\n \n );\n};\n\nconst FeaturedCardDesktop = ({\n readTime,\n category,\n image,\n title,\n description,\n buttonLabel = 'Read more',\n url,\n}: IFeaturedCard) => {\n const formatReadTime = `${readTime} Min Read`;\n const newCategory = Array.isArray(category) ? category[0].name : category;\n const metaData = `${newCategory}\\xa0\\xa0•\\xa0\\xa0${formatReadTime}`;\n return (\n {}} imageSrc={image}>\n \n \n {title && (\n \n {title}\n \n )}\n {readTime && (\n \n {metaData}\n \n )}\n {description && (\n \n {description}\n \n )}\n navigate(`/blog/${url}`)}\n >\n \n {buttonLabel}\n \n \n \n \n \n );\n};\nconst TagFeaturedDesktop = () => {\n return (\n \n \n Featured\n \n \n );\n};\n\nconst FeaturedCardMobile = ({\n readTime,\n category,\n image,\n title,\n description,\n buttonLabel = 'Read more',\n url,\n}: IFeaturedCard) => {\n const formatReadTime = `${readTime} Min Read`;\n const newCategory = Array.isArray(category) ? category[0].name : category;\n const metaData = `${newCategory}\\xa0\\xa0•\\xa0\\xa0${formatReadTime}`;\n return (\n \n \n \n \n\n \n \n {readTime ? metaData : newCategory}\n \n \n {title}\n \n \n \n navigate(`/blog/${url}`)}\n >\n \n {buttonLabel}\n \n \n \n \n );\n};\nconst TagFeaturedMobile = () => {\n return (\n \n \n Featured\n \n \n );\n};\n\nexport { FeaturedCard };\n","import React from 'react'\nimport {\n Accordion,\n AccordionProps,\n} from '@irishlife/ilgroupdesignsystem.molecules.accordion'\nimport { Text, TextProps } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport styled from 'styled-components'\nimport { Box } from '@chakra-ui/react'\n\ninterface AccordionSectionProps extends AccordionProps {\n title?: string\n text?: string\n titleStyle?: TextProps['variant']\n}\n\nconst StyledAccordion = styled(Box)`\n & ul {\n list-style-position: inside;\n }\n`\n\nexport const AccordionSection: React.FC = (props) => {\n const { titleStyle } = props\n const data = getAccordionSectionData(props)\n return (\n <>\n \n {data.title}\n \n \n {data.text}\n \n \n \n \n \n )\n}\n\nexport const getAccordionSectionData = (data: any): AccordionSectionProps => {\n return {\n title: data.accordion_section__title,\n text: data.accordion_section__text,\n items: data.accordion_section__items.map((item: any) => {\n return {\n id: getRandomInt(100),\n header: item.heading,\n icon: item.icon,\n children: item.children_test,\n }\n }),\n }\n}\n\nfunction getRandomInt(max: number) {\n return Math.floor(Math.random() * max)\n}\n","import { AccordionProps } from '@irishlife/ilgroupdesignsystem.molecules.accordion'\nimport { Wrapper } from 'common/components/molecules/Wrapper'\nimport React from 'react'\nimport { AccordionSection } from 'common/components/organisms/templateSections/AccordionSection/AccordionSection'\nimport { Box, Grid } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\n\ninterface AccordionInfoPanelProps extends AccordionProps {\n description: string\n subtitle: string\n paragraphTitle: string\n}\n\nexport const AccordionInfoPanel: React.FC = (\n props\n) => {\n const data = props\n\n return (\n \n \n \n \n {data.paragraphTitle}\n \n \n {data.subtitle}\n \n {data.description && (\n \n {data.description}\n \n )}\n \n \n \n \n \n \n \n )\n}\n","import { assign, createMachine, actions } from 'xstate'\nimport {\n PensionFormType,\n InitialQuestionType,\n InvestmentFormType,\n IncomeProtectionFormType,\n TermLifeFormType,\n MortgageProtectionFormType,\n OnePlanFormType,\n} from './interfaces'\n\nconst { choose } = actions\n\nexport const CalculatorMachine =\n /** @xstate-layout N4IgpgJg5mDOIC5QGECGAbAxgV3agLgPYBOAsqpgBYCWAdmAHQCixxJAxGlrgWAAQBBKKjoBtAAwBdRKAAOhWNXzVCtGSAAeiAIwBmAGz6GATlPGATAHYAHAFZtty-usAaEAE9EtgCy2G+3Vtda2DrS0DjfQBfKLcuHDwiMgoaegZ4nnwwdgB5WgAxEgBbAFVZCF4JaSQQeUVlVXUtBG9rcX9I6299c28bc3EnN08EIO0GXWNbENt9Yz054xi4jASCEnIqOkYMxOyASVos4gosiCr1OqUVNRrm23NzCd1LX29W3oHbYcRvQIZ3lZxNpDNZHgFdMsQLt1sktmkYVl2ABxMD4PgARWwhCyFxqVwat1AzRsugY4l02gGVIGlN0PwQhiMwSCs2senE4misWhq0yGxS23SfL27AAcmBIHwABJgdCyPFyBTXRp3LziJ7iKbmYzWNraYy+cwM3STAHWSLmRxzP5hKGIgXwnYi3jisAadEAZSyCqkl2VhKaXgc-n0tlsFhB1kMswZvTJQX0fwM5gNk0hPIdcNSjCxOP4nswxEltBRaMEEAAVthYGdMdjcX78QGbkGEOZdO1xN09ZTgRrZvSPDpXgCxuI9Qa+t3uStuIlHTmGHmsnxC8WwKWAEIUADWitqLdVxMQHa7PZC2n7VoCDOm7UsVp781MlMs9pdSU2S5XBaLJc4T9+CEERaAPAlWzVdtO3JC8+yvG8hxGAJxkeHxHwtcM2m8D951hb8hQABWIaha22dhDmuDBSMgcCjyJTRTxgmdeyvBDBwZeZrAYbQbH0LkuMfHDM0-RchVRfBlFoKB63zPgABE0REdBYHYCBVEYOgADdCF3RgYHwX9FPwZTYDo+pIJPBBSXJSlqUeCk9AZSwnAYAZ3P44xLCvWxcLWL9BTSCSpJk38FKU6gVPYMBWBIBhZESAAzYoGAMoyIpU8yVQY5o9AMckHAjA0pm7cNnJCAqDSCYxdGpXi-P5bMhQAJTARK0XhUKG34YzTLUjSGG03T9LRdKTMisymyVCzj0Y6Dz2cS9rw44cEHZBhbE5Tkgm23sMznfyxLSVr2vwTrZNXXqJui2LiHipKUrS7qrsyqbDxmnLEBsxz7NpJzVpBJ5E0mLbe28DUYh5WhCAgOB1CzAj6H9D62wAWn0Bl0fJLacdx1MGoXJq0hYNhiGR7K2wcP4GAtcRZgw-RtG0O9uh4wJautTsKXfES8ICp1hT5sBycDKDWQYfobG7LpOT+Bkw24toBkZ2ZDECbQCfwwLc26td-03EXLLm7xjVWmw-AsaMHm7cwk0MTX+aXYjSKk4XmxRqC7H8WZUyw8NvG0C1OIDgE6aZ4JA6Z8MHaOxhgroLq5Je+B3YpqDTCeXpTGcAdTBCZzpg2pnDQNbRum8LyY6JxgTo61JE8ujKU+mtOrL+Yw3LDAIgksH3A4xgHglsgIXNMMvvKWSGgA */\n createMachine(\n {\n context: {\n initialQuestions: {} as InitialQuestionType[],\n transformedQuestions: {} as InitialQuestionType[],\n formValues: {} as\n | PensionFormType\n | InvestmentFormType\n | IncomeProtectionFormType\n | TermLifeFormType\n | MortgageProtectionFormType\n | OnePlanFormType,\n isRestarted: false,\n screenNo: 0,\n calc_type: '',\n interacted: false,\n actions: {\n onSubmit: async (args: any) => { },\n analyticsService: {\n onInteracted: (\n name: string,\n event?: string,\n isInteracted?: string\n ) => { },\n onCompleted: (name: string, event: string) => { },\n onButtonClicked: (\n name: string,\n step: number,\n event: string,\n context: any\n ) => { },\n handleOtherAnalytics: (\n analyticsName: string,\n formValues: any,\n screenNo: number\n ) => { },\n },\n createCrmLead: async (\n args: any,\n calc_type: string,\n data: any\n ) => { },\n },\n quoteData: {} as any,\n user: null,\n calculatorType: '',\n analyticsName: '',\n },\n schema: {},\n id: 'CalculatorMachine',\n initial: 'Pristine',\n states: {\n Error: {\n on: {\n 'Calculate Again': {\n target: 'Calculate',\n actions: ['restartCalculatorOnError'],\n },\n },\n },\n Calculate: {\n on: {\n OnFormUpdate: {\n target: 'Calculate',\n internal: true,\n actions: ['updateFormValues'],\n },\n Interacted: {\n target: 'Calculate',\n internal: true,\n actions: ['onInteracted'],\n },\n\n 'Get Quote': {\n target: 'Getting Quote Details',\n actions: [\n 'updateFormValues',\n assign({\n user: (context, event: any) =>\n event.payload.user,\n calculatorType: (context, event: any) =>\n event.payload.calc_type,\n analyticsName: (context, event: any) =>\n event.payload.name,\n }),\n ],\n },\n 'Need Help': {\n target: 'Calculate',\n internal: true,\n actions: ['onNeedHelpClicked'],\n },\n\n 'Next Step': {\n target: 'Calculate',\n internal: true,\n actions: [\n 'updateCounter',\n 'updateTransformedQuestions',\n ],\n },\n },\n },\n\n 'Quote Screen': {\n on: {\n 'Get Adjusted Quote': {\n target: 'Refetching Quote Details',\n actions: ['updateFormValues'],\n },\n Back: 'Calculate',\n 'Calculate Again': {\n target: 'Calculate',\n actions: ['restartCalculator'],\n },\n 'ERROR OCCURED': {\n target: 'Error',\n },\n },\n },\n\n Pristine: {\n on: {\n Initialise: {\n target: 'Calculate',\n actions: ['setInitialQuestions'],\n },\n },\n },\n\n 'Getting Quote Details': {\n invoke: {\n src: 'getQuoteDetails',\n id: 'getQuoteDetails',\n onDone: {\n target: 'Quote Screen',\n actions: [\n 'updateQuoteData',\n choose([\n {\n cond: (context: any) =>\n !context.isRestarted,\n actions: ['createCRMLead', 'fireAnalyticsEvent'],\n },\n {\n cond: (context) => context.isRestarted,\n actions: () => { }, // Do nothing if isRestarted is true\n },\n ]),\n ],\n },\n onError: {\n target: 'Error',\n },\n },\n // entry: choose([\n // {\n // cond: (context: any) => !context.isRestarted,\n // actions: ['createCRMLead'],\n // },\n // {\n // actions: () => {}, // Do nothing if isRestarted is true\n // },\n // ]),\n },\n\n 'Refetching Quote Details': {\n invoke: {\n src: 'getQuoteDetails',\n id: 'getQuoteDetails',\n onDone: {\n target: 'Quote Screen',\n actions: ['updateQuoteData'],\n },\n onError: {\n target: 'Error',\n },\n },\n },\n },\n },\n {\n actions: {\n restartCalculatorOnError: assign((context, event: any) => {\n return {\n screenNo: 0,\n }\n }),\n\n onNeedHelpClicked: assign((context, event: any) => {\n context.actions?.analyticsService?.onButtonClicked?.(\n event?.payload?.name,\n context.screenNo,\n event?.payload?.event,\n context\n )\n return {}\n }),\n onInteracted: assign((context, event: any) => {\n if (!context.interacted) {\n context.actions?.analyticsService?.onInteracted?.(\n event?.payload?.name,\n event?.payload?.event,\n event?.payload?.isInteracted\n )\n return {\n interacted: true,\n }\n }\n return {}\n }),\n updateQuoteData: assign({\n quoteData: (context, event: any) => {\n return event?.data\n },\n }),\n setInitialQuestions: assign({\n initialQuestions: (context, event: any) => {\n return event?.payload?.props.steps\n },\n calc_type: (context, event: any) => {\n return event?.payload?.props?.calc_type\n },\n actions: (context, event: any) => {\n return event?.payload?.actions\n },\n }),\n updateFormValues: assign({\n formValues: (context, event: any) => {\n return event?.payload?.user\n },\n }),\n restartCalculator: assign((context, event: any) => {\n return {\n screenNo: 0,\n isRestarted: true,\n }\n }),\n updateTransformedQuestions: assign((context, event: any) => {\n return {\n transformedQuestions:\n event?.payload?.transformedQuestions,\n }\n }),\n updateCounter: assign((context, event: any) => {\n context.actions?.analyticsService?.onButtonClicked?.(\n event?.payload?.name,\n context.screenNo,\n event?.payload?.event,\n context\n )\n context.actions?.analyticsService?.handleOtherAnalytics?.(\n event?.payload?.name,\n event?.payload?.user,\n context.screenNo\n )\n return { screenNo: context.screenNo + 1 }\n }),\n createCRMLead: (context, event: any) => {\n context.actions?.createCrmLead(\n context.user,\n context.calculatorType,\n event.data\n )\n },\n fireAnalyticsEvent: (context, event: any) => {\n context.actions?.analyticsService?.onCompleted?.(\n context.analyticsName,\n 'completed'\n )\n }\n },\n services: {\n getQuoteDetails: async (context, event: any) => {\n return await context.actions.onSubmit(event?.payload?.user)\n },\n },\n }\n )\n","import React, { FC } from 'react'\nimport { AccordionInfoPanel } from 'common/components/organisms/AccordionInfoPanel/AccordionInfoPanel'\n\nexport const AccordionInfoPanelWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { AccordionInfoPanelWrapper as AccordionInfoPanel }\n\nexport const getProps = (data: any) => {\n return {\n paragraphTitle: data.title,\n description: data.description,\n subtitle: data.subtitle,\n ...data,\n }\n}\n","import { Box } from '@chakra-ui/react'\nimport { BasicButton } from 'common/components/atoms/BasicButton'\nimport { Text } from 'common/components/molecules/Text'\nimport { CtaProps } from 'common/components/organisms/templateSections/Cta'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\n\nexport interface BannerProps {\n title: string\n subtitle?: string\n text?: string\n callToAction: CtaProps\n}\n\nconst breakoutStyles = {\n backgroundColor: '#5261ac',\n marginRight: '-50vw',\n width: '100vw',\n marginLeft: '-50vw',\n left: '50%',\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n right: '50%',\n alignItems: 'center',\n zIndex: '2',\n}\n\nexport const Banner: React.FC = ({\n title,\n subtitle,\n text,\n callToAction,\n}) => {\n const desktop = useDesktop()\n const phoneNumberRegex = /^tel:/\n const isPhoneNumber = callToAction.url\n ? phoneNumberRegex.test(callToAction.url)\n : false\n\n return (\n \n \n {subtitle && (\n \n )}\n {text && (\n \n )}\n {isPhoneNumber ? (\n \n \n \n ) : (\n // Otherwise, render the regular button\n \n )}\n \n )\n}\n","import { Banner, BannerProps } from 'common/components/molecules/Banner'\nimport React from 'react'\n\nexport interface BannerCtaProps extends BannerProps {}\n\nexport const BannerCta: React.FC = props => {\n return \n}\n\nconst getBannerCtaData = (data: any): BannerProps => {\n return {\n title: data.title,\n subtitle: data.subtitle,\n text: data.text,\n callToAction: {\n analyticsId: data?.card_cta_0396ba7__cta_analytics_id,\n label: data?.card_cta_0396ba7__cta_label,\n url: data?.card_cta_0396ba7__cta_url || ''\n }\n }\n}\n","import React from \"react\";\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { Box } from '@chakra-ui/react'\nimport { RichText } from \"common/components/molecules/RichText\";\n\ninterface ITable {\n icon?: string;\n title: string;\n rows: IRow[];\n}\n\ninterface IRow {\n icon?: string;\n text: string;\n}\n\nexport interface IBasicTable {\n title?: string;\n subtitle?: string;\n tables?: ITable[];\n footer_text?: string;\n}\n\nconst BasicTable: React.FC = (props: IBasicTable) => {\n \n return \n \n {(props.title || props.subtitle) &&\n \n\n {props.title &&\n \n { props.title }\n \n }\n\n {props.subtitle &&\n \n { props.subtitle }\n \n }\n \n }\n\n {props.tables && props.tables.length > 0 &&\n \n { props.tables.map((table, index) => ( )) }\n \n }\n\n {props.footer_text &&\n \n { props.footer_text }\n \n }\n ;\n}\n\nconst Table = (table: ITable & {tableIndex: number}) => {\n\n const normalizePhoneAndMailHyperlink = (text: string) => {\n const phoneUrl = '\n {/* Header */}\n \n \n {table.icon &&\n \"Icon\"\n }\n \n \n \n { table.title }\n \n \n \n {/* Header */}\n\n {/* Content */}\n {table.rows && table.rows.length > 0 && table.rows.map((row, index) => (\n \n \n {row.icon &&\n \"Icon\"\n }\n \n \n \n \n \n ))\n }\n {/* Content */}\n \n}\n\nexport { BasicTable };","import { Grid } from '@material-ui/core'\nimport { Text } from 'common/components/molecules/Text'\nimport React from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BodyOfTextProps {\n content: string\n}\n\nexport const BodyOfText: React.FC = props => {\n const { content } = getBodyOfTextData(props)\n return (\n \n \n \n \n \n )\n}\n\nexport const getBodyOfTextData = (data: any): BodyOfTextProps => {\n return {\n content: data.body_of_text__body\n }\n}\n","import React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon(React.createElement(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\"\n}), 'AddBox');","import { Box } from '@material-ui/core'\nimport { AddBox } from '@material-ui/icons'\nimport { Text } from 'common/components/molecules/Text'\nimport React from 'react'\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BulletProps {\n icon?: string\n text: string\n title: string\n}\n\nexport const Bullet: React.FC = ({ title }) => {\n return (\n \n \n \n \n )\n}\n","import { Box, useTheme } from '@material-ui/core'\nimport { Spacer } from 'common/components/molecules/Spacer'\nimport { Text } from 'common/components/molecules/Text'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\nimport { Bullet, BulletProps } from './Bullet'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BulletsProps {\n bullets: BulletProps[]\n title: string\n subtitle?: string\n}\n\nexport const Bullets: React.FC = ({\n bullets = [],\n title,\n subtitle\n}) => {\n const desktop = useDesktop()\n const theme = useTheme()\n\n return (\n <>\n \n \n \n \n \n {bullets.map(bullet => (\n \n ))}\n \n \n \n )\n}\n","import { Grid, GridSize } from '@material-ui/core'\nimport { FeatureListImage } from 'common/components/organisms/FeatureList/FeatureListImage'\nimport React from 'react'\nimport { Bullets, BulletsProps } from './Bullets'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BulletsWithImageProps extends BulletsProps {\n imagePlacement: 'left' | 'right'\n}\n\nexport const BulletsWithImage: React.FC = props => {\n const data = getBulletsWithImageData(props)\n const layout = data.imagePlacement === 'left' ? [5, 6] : [6, 5]\n const left =\n data.imagePlacement === 'left' ? (\n \n ) : (\n \n )\n const right =\n data.imagePlacement === 'left' ? (\n \n ) : (\n \n )\n return (\n \n \n {left}\n \n \n \n {right}\n \n \n )\n}\n\nexport const getBulletsWithImageData = (data: any): BulletsWithImageProps => {\n return {\n ...data,\n imagePlacement: data.image_placement\n }\n}\n","import { ProgressBarStepperStepsType } from './interfaces'\n\nexport const stepperSteps: ProgressBarStepperStepsType = {\n Investment: [\n {\n title: 'Starting amount',\n },\n {\n title: 'About you',\n },\n {\n title: 'Calculation',\n },\n ],\n Pensions: [\n {\n title: 'Status',\n },\n {\n title: 'Calculate',\n },\n {\n title: 'About you',\n },\n {\n title: 'Pension',\n },\n ],\n IncomeProtection: [\n {\n title: 'Start',\n },\n {\n title: 'Status',\n },\n {\n title: 'About you',\n },\n {\n title: 'Quote',\n },\n ],\n TermLife: [\n {\n title: 'Cover',\n },\n {\n title: 'About you',\n },\n {\n title: 'Your Quote',\n },\n ],\n MortgageProtection: [\n {\n title: 'Cover',\n },\n {\n title: 'Applicants',\n },\n {\n title: 'About you',\n },\n {\n title: 'Your Quote',\n },\n ],\n OnePlanWithPartner: [\n {\n title: 'You',\n },\n {\n title: 'Cover',\n },\n {\n title: 'Partner',\n },\n {\n title: 'Details',\n },\n {\n title: 'Quote',\n },\n ],\n OnePlan: [\n {\n title: 'You',\n },\n {\n title: 'Cover',\n },\n {\n title: 'Details',\n },\n {\n title: 'Quote',\n },\n ],\n}\n","import { fireAnalyticsEvent } from 'common/utils/fireAnalyticsEvent'\nimport { stepperSteps } from '../utils/progressIndicatorSteps'\nimport { ProgressBarStepperStepsType } from '../utils/interfaces'\n\nexport const onInteracted = (\n name: string,\n event: string,\n isInteracted: string\n) => {\n fireAnalyticsEvent({\n name: name,\n properties: {\n step: event,\n event: name,\n interacted: isInteracted,\n },\n })\n}\n\nexport const onButtonClicked = (\n name: string,\n step: number,\n event: string,\n context: any\n) => {\n let calc_type: keyof ProgressBarStepperStepsType = context.calc_type\n if (calc_type === 'OnePlan' && context.transformedQuestions.length === 4) {\n calc_type = 'OnePlanWithPartner'\n }\n const stepName = stepperSteps[calc_type][step].title\n fireAnalyticsEvent({\n name: name,\n properties: {\n step: stepName.toString() + '_details_' + event,\n event: name,\n },\n })\n}\n\nexport const onCompleted = (name: string, event: string) => {\n fireAnalyticsEvent({\n name: name,\n properties: {\n event: name,\n step: event,\n },\n })\n}\n\nexport const handleOtherAnalytics = (\n analyticsName: string,\n formValues: any,\n screenNo: number\n) => {\n const calculatorType = analyticsName.split('_')[0]\n if (calculatorType === 'Pensions' && screenNo === 0) {\n fireAnalyticsEvent({\n name: analyticsName,\n properties: {\n event: analyticsName,\n step: 'employment status',\n value: formValues.employmentStatus,\n },\n })\n fireAnalyticsEvent({\n name: analyticsName,\n properties: {\n event: analyticsName,\n step: 'current pension',\n value: formValues.currentPension ?? 'N',\n },\n })\n }\n}\n\nexport const quoteScreenAnalytics = (\n analyticsName: string,\n callToAction: {\n text: string\n url: string,\n analyticsId: string\n },\n isPhoneNumber = false\n) => {\n if (isPhoneNumber) {\n fireAnalyticsEvent({\n name: analyticsName,\n properties: {\n event: analyticsName,\n clickToCall: callToAction.text,\n clickURL: callToAction.url || '',\n clickID: callToAction.analyticsId || ''\n }\n })\n } else {\n fireAnalyticsEvent({\n name: analyticsName,\n properties: {\n event: analyticsName,\n clickText: callToAction.text,\n clickURL: callToAction.url || '',\n clickID: callToAction.analyticsId || ''\n }\n })\n }\n}\n\nexport const analyticsService = {\n onInteracted: onInteracted,\n onCompleted: onCompleted,\n onButtonClicked: onButtonClicked,\n handleOtherAnalytics: handleOtherAnalytics,\n}\n","import Axios from 'axios'\nimport qs from 'qs'\n\nexport const APIrequestOnePlan = async (URL: string, params: any) => {\n const { paramsStandard, paramsEssential, paramsComprehensive } = params\n const [standard, essential, comprehensive] = await Promise.all([\n Axios.get(`${URL}?${paramsStandard}`),\n Axios.get(`${URL}?${paramsEssential}`),\n Axios.get(`${URL}?${paramsComprehensive}`),\n ])\n\n let standardQuoteData\n let essentialQuoteData\n let comprehensiveQuoteData\n let data\n if (\n standard.data === 'Error' ||\n essential.data === 'Error' ||\n comprehensive.data === 'Error'\n ) {\n data = { error: true }\n } else {\n standardQuoteData = qs.parse(\n standard.data\n .replace('var result = ', '')\n .replace(';', '')\n .replaceAll(\"'\", '')\n )\n essentialQuoteData = qs.parse(\n essential.data\n .replace('var result = ', '')\n .replace(';', '')\n .replaceAll(\"'\", '')\n )\n comprehensiveQuoteData = qs.parse(\n comprehensive.data\n .replace('var result = ', '')\n .replace(';', '')\n .replaceAll(\"'\", '')\n )\n data = {\n standardQuoteData,\n essentialQuoteData,\n comprehensiveQuoteData,\n error: false,\n }\n }\n return data\n}\nexport const APIrequest = async (URL: string, paramaters: string) => {\n const request = await Axios.get(`${URL}?${paramaters}`)\n\n let quoteData\n let data\n if (request.data === 'Error') {\n data = { error: true }\n } else {\n quoteData = qs.parse(\n request.data\n .replace('var result = ', '')\n .replace(';', '')\n .replaceAll(\"'\", '')\n )\n data = {\n quoteData,\n error: false,\n }\n }\n return data\n}\n","import { API_URL } from 'core'\nimport { APIrequest } from './APIrequests'\nconst statePension = (14470 / 12).toFixed(2)\nconst pensionAPI: string = `${API_URL}/myonlineservices/servlet/submitPensionQuote`\n\nexport const user = {\n startPensionAge: 30,\n income: 30000,\n salaryContribution: 500,\n employerContribution: 230,\n currentPensionValue: 0,\n statePension: 500,\n yearlyPaymentTargetValue: 20000,\n retirementAge: 66,\n}\nexport interface API {\n type5year: string\n}\nexport const getQuote = (\n annualPensionValue: any,\n statePensionValue: number\n) => {\n const userContributedPensionProjection = Number(annualPensionValue)\n\n const quote: Quote = {\n projection: userContributedPensionProjection + statePensionValue,\n barChart: [\n {\n userContributedPensionProjection,\n statePensionValue,\n userContributedPensionProjectionChartVal:\n Number(\n (\n userContributedPensionProjection /\n (userContributedPensionProjection +\n statePensionValue)\n ).toFixed(2)\n ) * 100,\n statePensionValueChartVal:\n Number(\n (\n statePensionValue /\n (userContributedPensionProjection +\n statePensionValue)\n ).toFixed(2)\n ) * 100,\n },\n ],\n }\n return quote\n}\nexport interface Quote {\n projection: number\n barChart: [\n {\n statePensionValue: number\n userContributedPensionProjection: number\n userContributedPensionProjectionChartVal: number\n statePensionValueChartVal: number\n }\n ]\n}\nexport const setScreen = (data: any) => {\n if (data.currentPension && data.currentPension === 'Y') {\n return 1\n }\n if (!data.currentPension || data.currentPension === 'N') {\n return 2\n }\n}\nconst APItype5 = (\n age: number,\n income: number,\n contributionValue: number,\n currentPension: number,\n retirementAge: number\n) => {\n return (\n 'type=5&age=' +\n age +\n '&income=' +\n income +\n '&ret=' +\n retirementAge +\n '&ap=' +\n contributionValue +\n '&sp=' +\n (currentPension >= 0 ? currentPension : 0)\n )\n}\nconst getAPIparamaters = (\n age: number,\n income: number,\n contributionValue: number,\n currentPensionValue: number,\n retirementAge: number\n) => {\n return APItype5(\n age,\n income,\n contributionValue,\n currentPensionValue,\n retirementAge\n )\n}\n\nexport const calculateTotalContribution = (data: any) => {\n if (data.contribution1) {\n if (data.jobContribution) {\n return Number(data.contribution1) + Number(data.jobContribution)\n } else {\n return Number(data.contribution1)\n }\n } else if (data.jobContribution) {\n return Number(data.contribution2) + Number(data.jobContribution)\n } else {\n return Number(data.contribution2)\n }\n}\n\nexport const onSubmit = (data: any): Promise => {\n const totalContribution = calculateTotalContribution(data)\n return APIrequest(\n pensionAPI,\n getAPIparamaters(\n Number(data.age),\n Number(data.salary),\n totalContribution, // contribution = contributionValue, jobContribution = employerContribution\n Number(data.pensionValue), // currentPensionValue\n data.retirementAge\n )\n ).then((response: any) => {\n if (response.quoteData !== undefined) {\n const monthResponse = getQuote(\n Number(\n (Number(response.quoteData.annualPension) / 12).toFixed(2)\n ),\n // statePension,\n data.isStatePension === 'Y' ? Number(statePension) : 0\n )\n return monthResponse\n }\n })\n}\n\nexport const pensionsTool = {\n setScreen: (data: any) => setScreen(data),\n onSubmit: (data: any) => onSubmit(data),\n stepsTransformation: (steps: any, data: any) => {\n const firstSteps = currentPensionTransformation(steps, data)\n const secondSteps = employmentStatusTransformation(firstSteps, data)\n const thirdSteps = employeeJobContributionTransformation(\n secondSteps,\n data\n )\n return thirdSteps\n },\n}\n\nexport const employeeJobContributionTransformation = (\n steps: any,\n data: any\n) => {\n let transformedSteps = steps\n if (!data.pensionThroughWork || data.pensionThroughWork === 'N') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter(\n (step: any) =>\n step.codename !== 'jobcontribution_pensiongeneric'\n ),\n }))\n }\n return transformedSteps\n}\n\nexport const currentPensionTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (!data.currentPension || data.currentPension === 'N') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter(\n (step: any) =>\n step.codename !==\n 'pension_with_irishlife___pensionsgeneric' &&\n step.codename !== 'pension_value___pension' &&\n step.codename !== 'contribution2___pension' &&\n step.codename !== 'pensionthroughwork___pension' &&\n step.codename !== 'jobcontribution_pensiongeneric' &&\n step.codename !== 'age___pensiongeneric' &&\n step.codename !== 'salary___pensiongeneric'\n ),\n }))\n }\n if (data.currentPension && data.currentPension === 'Y') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter(\n (step: any) =>\n step.codename !== 'contribution1__pension' &&\n step.codename !== 'age___pensiongeneric__copy_' &&\n step.codename !== 'salary___pensiongeneric__copy_'\n ),\n }))\n }\n transformedSteps = transformedSteps.filter(\n (item: any) => item.steps.length > 0\n )\n return transformedSteps\n}\n\nexport const employmentStatusTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (!data.employmentStatus || data.employmentStatus !== 'Employed') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter(\n (step: any) => step.codename !== 'pensionthroughwork___pension'\n ),\n }))\n }\n return transformedSteps\n}\n","export const investmentTool = {\n onSubmit: (data: any) => onSubmit(data),\n stepsTransformation: (steps: any, data?: any) => {\n return steps\n },\n}\n\nconst onSubmit = (data: any) => {\n console.log('data on Submit')\n}\n","import { APIrequest } from './APIrequests'\nimport { API_URL } from 'core'\nimport qs from 'qs'\nimport { occupations } from 'common/components/design-system/organisms/CalculatorCms/steps/CalculatorStepDropdown/occupations'\n// const API_URL = 'https://apps.irishlife.ie'\nconst API: string = `${API_URL}/myonlineservices/servlet/LifeCoverQuote`\nconst stateCover = 12732\nexport const incomeProtectionTool = {\n onSubmit: (data: any) => onSubmit(data),\n stepsTransformation: (steps: any, data?: any) => {\n return steps\n },\n}\n\nexport const onSubmit = (data: any): Promise => {\n return APIrequest(API, getApiConstants('incomeProtection', 102, data)).then(\n (response: any) => {\n if (response !== undefined) {\n return response\n }\n }\n )\n}\nconst calculateIncomeAmount = (data: any) => {\n return (\n (Number(data.income) * Number(data.amountToProtect)) / 100 - stateCover\n )\n}\nexport const getOccupationClass = (occupation: string) => {\n const occupationClass = occupations.find(\n (item) => item.value === occupation\n )\n return occupationClass ? occupationClass : undefined\n}\n// export const getDateOfBith = (dateOfBirth: string) => {\n// const date = new Date(dateOfBirth)\n// return {\n// day: date.getDate(),\n// month: date.getMonth() + 1,\n// year: date.getFullYear(),\n// }\n// }\nexport const getApiConstants: any = (\n quickQuoteId: string,\n productId: number,\n data: any\n) => {\n const currentDate = new Date();\n const incomeAmount = calculateIncomeAmount(data)\n const occupationClass = getOccupationClass(data.occupation)\n return qs.stringify({\n quickQuoteId: quickQuoteId,\n productId: productId,\n coverTypeCd: 'L',\n jointLife: 'False',\n indexation: 'False',\n frequencyCd: 'M',\n dateOfBirth1Day: currentDate.getDate(),\n dateOfBirth1Month: currentDate.getMonth() + 1, // Months are 0-indexed,\n dateOfBirth1Year: currentDate.getFullYear() - +data.dateOfBirth,\n sexCd1: 'M',\n smokerCd1: data.isSmoker === 'Y' ? 'Y' : 'N',\n incomeIncreaseRate: 5,\n occupationClass: occupationClass?.BillPayOccupationClass,\n incomeAmt: incomeAmount,\n deferredWeeks: 26,\n endAge: data.retirementAge,\n })\n}\n","import { APIrequest } from './APIrequests'\nimport qs from 'qs'\nimport { API_URL } from 'core'\n\n// const API_URL = 'https://apps.irishlife.ie'\nconst API: string = `${API_URL}/myonlineservices/servlet/LifeCoverQuote`\nexport const termLifeTool = {\n onSubmit: (data: any) => onSubmit(data),\n stepsTransformation: (steps: any, data?: any) => {\n return steps\n },\n}\n\nexport const onSubmit = (data: any): Promise => {\n return APIrequest(API, getApiConstants('lifeTermSum', 19, data)).then(\n (response: any) => {\n if (response !== undefined) {\n return response\n }\n }\n )\n}\n\nexport const getApiConstants: any = (\n quickQuoteId: string,\n productId: number,\n data: any\n) => {\n return qs.stringify({\n quickQuoteId: quickQuoteId,\n productId: productId,\n lifeCoverAmt: data.coverNeeded,\n conversion: 'FALSE',\n coverTypeCd: 'L',\n indexation: 'FALSE',\n frequencyCd: 'M',\n dateOfBirth1Day: 18,\n dateOfBirth1Month: 9,\n dateOfBirth1Year: new Date().getFullYear() - +data.age, ///need to logic here\n firstName: data.firstName,\n lastName: data.lastName,\n phone: data.phone,\n email: data.email,\n term: +data.maxAge - +data.age,\n age1: data.age,\n smokerCd1: data.isSmoker === 'Y' ? 'Y' : 'N',\n })\n}\n","import { APIrequest } from './APIrequests'\nimport qs from 'qs'\nimport { API_URL } from 'core'\n\n// const API_URL = 'https://apps.irishlife.ie'\nconst API: string = `${API_URL}/myonlineservices/servlet/LifeCoverQuote`\n\nexport const mortgageProtectionTool = {\n onSubmit: (data: any) => onSubmit(data),\n stepsTransformation: (steps: any, data: any) => {\n const firstSteps = twoPeopleTransformation(steps, data)\n\n return firstSteps\n },\n}\n\nexport const twoPeopleTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (data.coverFor === '1') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter(\n (step: any) =>\n step.codename !== 'age2___mp_calc' &&\n step.codename !== 'smoker2___mp_calc'\n ),\n }))\n }\n return transformedSteps\n}\n\nexport const onSubmit = (data: any): Promise => {\n return APIrequest(API, getApiConstants('lifeMortgage', 38, data)).then(\n (response: any) => {\n if (response !== undefined) {\n return response\n }\n }\n )\n}\n\nexport const getApiConstants: any = (\n quickQuoteId: string,\n productId: number,\n data: any\n) => {\n return qs.stringify({\n quickQuoteId: quickQuoteId,\n productId: productId,\n coverTypeCd: 'L',\n indexation: 'FALSE',\n frequencyCd: 'M',\n conversion: 'FALSE',\n dateOfBirth1Day: 14,\n dateOfBirth1Month: 10,\n dateOfBirth2Day: 14,\n dateOfBirth2Month: 10,\n dateOfBirth1Year: new Date().getFullYear() - +data.age1, ///need to logic here\n dateOfBirth2Year: new Date().getFullYear() - +data.age2,\n firstName: data.firstName,\n lastName: data.lastName,\n phone: data.phone,\n email: data.email,\n lifeCoverAmt: data.coverNeeded,\n term: data.term,\n jointLife: data.coverFor === '2' ? 'TRUE' : 'FALSE',\n age1: data.age1,\n age2: data.age2 ?? undefined,\n smokerCd1: data.isSmoker === 'Y' ? 'Y' : 'N',\n smokerCd2: data.isSmoker2\n ? data.isSmoker2 === 'Y'\n ? 'Y'\n : 'N'\n : undefined,\n })\n}\n","import { APIrequestOnePlan } from './APIrequests'\nimport qs from 'qs'\nimport { API_URL } from 'core'\nimport { getApiParamsOnePlan } from './../utils/onePlanConfig'\nimport { occupations } from 'common/components/design-system/organisms/CalculatorCms/steps/CalculatorStepDropdown/occupations'\n// const API_URL = 'https://apps.irishlife.ie'\nconst API: string = `${API_URL}/myonlineservices/servlet/LifeCoverQuote`\n\nexport const onePlanProtectionTool = {\n onSubmit: (data: any) => onSubmit(data),\n stepsTransformation: (steps: any, data: any) => {\n const firstSteps = childNumTransformation(steps, data)\n const secondSteps = jointTransformation(firstSteps, data)\n const thirdSteps = mortgageOrRentTransformation(secondSteps, data)\n const fourthSteps = additionalCoverTransformation(thirdSteps, data)\n const fifthSteps = SICTransformation(fourthSteps, data)\n const sixthSteps = AdditionalLifeCoverTransformation(fifthSteps, data)\n return sixthSteps\n },\n}\nexport const AdditionalLifeCoverTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (!data.isAdditionalLifeCover || data.isAdditionalLifeCover === 'N') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return step.codename !== 'lifecoveramount___oneplan'\n }),\n }))\n }\n //partner\n if (!data.isAdditionalLifeCover2 || data.isAdditionalLifeCover2 === 'N') {\n transformedSteps = transformedSteps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return step.codename !== 'partnerlifecoveramount___oneplan'\n }),\n }))\n }\n return transformedSteps\n}\nexport const SICTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (!data.isSpecifiedIllnessCover || data.isSpecifiedIllnessCover === 'N') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return step.codename !== 'specifiedillnesscoveramount___oneplan'\n }),\n }))\n }\n //partner\n if (\n !data.isSpecifiedIllnessCover2 ||\n data.isSpecifiedIllnessCover2 === 'N'\n ) {\n transformedSteps = transformedSteps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return (\n step.codename !==\n 'partnerspecifiedillnesscoveramount___oneplan'\n )\n }),\n }))\n }\n return transformedSteps\n}\nexport const additionalCoverTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (\n (!data.otherCoverRentNeither && !data.isOtherCover) ||\n (data.isOtherCover && data.isOtherCover === 'N') ||\n (data.otherCoverRentNeither && data.otherCoverRentNeither === 'N')\n ) {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return (\n step.codename !== 'lifecoveramount___oneplan' &&\n step.codename !== 'incomeprotectionorbillcover___oneplan' &&\n step.codename !== 'specifiedillnesscover___oneplan' &&\n step.codename !== 'specifiedillnesscoveramount___oneplan' &&\n step.codename !== 'additionallifecover___oneplan'\n )\n }),\n }))\n }\n //partner\n if (\n (!data.otherCoverRentNeither2 && !data.isOtherCover2) ||\n (data.isOtherCover2 && data.isOtherCover2 === 'N') ||\n (data.otherCoverRentNeither2 && data.otherCoverRentNeither2 === 'N')\n ) {\n transformedSteps = transformedSteps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return (\n step.codename !== 'partnerlifecoveramount___oneplan' &&\n step.codename !==\n 'partnerincomeprotectionorbillcover___oneplan' &&\n step.codename !==\n 'partnerspecifiedillnesscover___oneplan' &&\n step.codename !==\n 'partnerspecifiedillnesscoveramount___oneplan' &&\n step.codename !== 'partneradditionallifecover___oneplan'\n )\n }),\n }))\n }\n return transformedSteps\n}\nexport const jointTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (data.jointLife === 'N') {\n transformedSteps = steps.filter((step: any) => {\n return step.codeName !== 'step_parnter_details___oneplan'\n })\n }\n return transformedSteps\n}\nexport const childNumTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (data.childNum === 0) {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return step.codename !== 'youngestchildage___one_plan'\n }),\n }))\n }\n return transformedSteps\n}\n\nexport const mortgageOrRentTransformation = (steps: any, data: any) => {\n let transformedSteps = steps\n if (data.mortgageOrRent === 'Mortgage') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return (\n step.codename !== 'rentamount___oneplan' &&\n step.codename !== 'addcoverrentneither___oneplan' &&\n step.codename !== 'partneraddcoverrentneither___oneplan'\n )\n }),\n }))\n }\n if (data.mortgageOrRent === 'Rent' || data.mortgageOrRent === 'Neither') {\n transformedSteps = steps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return (\n step.codename !== 'mortgagepayment___oneplan' &&\n step.codename !== 'repaymentterm___oneplan' &&\n step.codename !== 'mortgagecoverondeath___one_plan' &&\n step.codename !== 'mortgagecoveronillness___oneplan' &&\n step.codename !== 'othercover___oneplan' &&\n step.codename !==\n 'partnermortgagecoverondeath___one_plan' &&\n step.codename !==\n 'partnermortgagecoveronillness___oneplan' &&\n step.codename !== 'partnerothercover___oneplan'\n )\n }),\n }))\n if (data.mortgageOrRent === 'Neither') {\n transformedSteps = transformedSteps.map((item: any) => ({\n ...item,\n steps: item.steps.filter((step: any) => {\n return step.codename !== 'rentamount___oneplan'\n }),\n }))\n }\n }\n return transformedSteps\n}\n\nexport const onSubmit = (data: any): Promise => {\n const onePlanParamsStandard = getApiParamsOnePlan(\n data,\n 'standard',\n occupations\n )\n const onePlanParamsEssential = getApiParamsOnePlan(\n data,\n 'essential',\n occupations\n )\n const onePlanParamsComprehensive = getApiParamsOnePlan(\n data,\n 'comprehensive',\n occupations\n )\n let apiConstants = getApiConstants('lifeOnePlan', 104)\n const paramsStandard = qs.stringify({\n ...apiConstants,\n ...onePlanParamsStandard,\n })\n const paramsEssential = qs.stringify({\n ...apiConstants,\n ...onePlanParamsEssential,\n })\n const paramsComprehensive = qs.stringify({\n ...apiConstants,\n ...onePlanParamsComprehensive,\n })\n\n const params = { paramsStandard, paramsEssential, paramsComprehensive }\n return APIrequestOnePlan(API, params).then((response: any) => {\n if (response !== undefined) {\n return response\n }\n })\n}\nexport const getApiConstants: any = (\n quickQuoteId: string,\n productId: number\n) => {\n return {\n quickQuoteId: quickQuoteId,\n productId: productId,\n coverTypeCd: 'L',\n indexation: 'FALSE',\n frequencyCd: 'M',\n conversion: 'FALSE',\n dateOfBirth1Day: new Date().getDate(),\n dateOfBirth1Month: new Date().getMonth() + 1,\n dateOfBirth2Day: new Date().getDate(),\n dateOfBirth2Month: new Date().getMonth() + 1,\n }\n}\n","import { pensionsTool } from './pensions'\nimport { investmentTool } from './investment'\nimport { incomeProtectionTool } from './incomeProtection'\nimport { termLifeTool } from './termLife'\nimport { mortgageProtectionTool } from './mortgageProtection'\nimport { onePlanProtectionTool } from './onePlan'\nexport const config: { [key: string]: any } = {\n Pensions: pensionsTool,\n Investment: investmentTool,\n IncomeProtection: incomeProtectionTool,\n TermLife: termLifeTool,\n MortgageProtection: mortgageProtectionTool,\n OnePlan: onePlanProtectionTool,\n}\n","import { useActor, useInterpret } from '@xstate/react'\nimport React, { createContext, useContext } from 'react'\nimport { InterpreterFrom } from 'xstate'\nimport { CalculatorMachine } from './machine'\n\nexport const CalculatorMachineContext = createContext({\n calculatorService: {} as InterpreterFrom,\n})\n\nexport const CalculatorMachineProvider = (props: any) => {\n const calculatorService = useInterpret(CalculatorMachine)\n return (\n \n {props.children}\n \n )\n}\n\nexport const useCalculatorMachine = () => {\n const globalServices = useContext(CalculatorMachineContext)\n const [state, send] = useActor(globalServices.calculatorService)\n return { state, send }\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport React from 'react'\nexport const FooterContactNotes: React.FC = () => {\n return (\n \n \n For help getting a quote please call:{' '}\n \n {' '}\n +353(0)1 704 1104\n \n \n \n )\n}\n\nexport const FooterCommonNotes: React.FC = () => {\n return (\n <>\n
  • \n \n Your personal details will only be used to deal with your\n request. See the{' '}\n \n ILFS privacy notice\n {' '}\n for your rights and how your information is used. See also\n the Irish Life Financial Service Terms of Business{' '}\n \n here\n \n .\n \n
  • \n
  • \n \n Before you complete your quote, please note that we may\n contact you to discuss your quote and answer any questions\n you may have.\n \n
  • \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport React from 'react'\nimport { FooterCommonNotes, FooterContactNotes } from './FooterCommon'\nexport const PensionFooterNotes: React.FC = () => {\n return (\n <>\n \n
      \n \n
    \n
    \n \n \n )\n}\n","import { PensionFooterNotes } from './pensionsFooterNotes'\nimport { IncomeProtectionFooterNotes } from './IncomeProtectionFooterNotes'\nexport const FooterNotesMapper = () => {}\n\nexport type TemplateSectionType = 'Pensions' | 'mortgage-protection'\n\nexport const footerNotesMapper: { [key: string]: any } = {\n Pensions: PensionFooterNotes,\n Investment: PensionFooterNotes,\n IncomeProtection: IncomeProtectionFooterNotes,\n TermLife: PensionFooterNotes,\n MortgageProtection: PensionFooterNotes,\n OnePlan: PensionFooterNotes,\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport React from 'react'\nimport { FooterCommonNotes, FooterContactNotes } from './FooterCommon'\nexport const IncomeProtectionFooterNotes: React.FC = () => {\n return (\n <>\n \n
      \n \n
    • \n \n {`*In general, the most cover you can have at any one\n time (including that provided under other income\n protection plans and continuing income from your job\n or pension) is: €250,000 a year; or 75% of your\n total yearly earnings; less any state benefits for\n disability (except benefits for children) and other\n forms of income you may have. Provides you with a\n replacement income if you cannot work as a result of\n an illness or injury after a certain period of time.\n It does not cover you if you become unemployed.`}\n \n
    • \n
    \n
    \n\n \n \n )\n}\n","import { Box, Flex, Image } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\nimport { useCalculatorMachine } from '../utils/context'\n\nexport interface HeadingProps {\n title: string\n subtitle: string\n description: string\n icon: string\n}\n\nexport const Heading: React.FC = ({\n title,\n subtitle,\n description,\n icon,\n}) => {\n const isDesktop = useDesktop()\n const { state } = useCalculatorMachine()\n return (\n <>\n \n \n \n \n {title}\n \n \n {subtitle}\n \n \n \n {state.context.screenNo === 0 && description ? (\n \n {description}\n \n ) : (\n \n )}\n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { HotStepper } from '@irishlifedigitalhub/ds.molecules.hot-stepper'\nimport React, { useState, useEffect } from 'react'\nimport { useCalculatorMachine } from '../utils/context'\nimport { ProgressBarStepperStepsType } from '../utils/interfaces'\nimport { stepperSteps } from '../utils/progressIndicatorSteps'\n\nexport interface ProgressIndicatorProps {\n calculatorType: keyof ProgressBarStepperStepsType\n}\n\nexport const ProgressIndicator: React.FC = ({\n calculatorType,\n}) => {\n const [calcType, setCalcType] = useState(calculatorType)\n const { state } = useCalculatorMachine()\n let currentStep = 1\n useEffect(() => {\n if (\n calculatorType === 'OnePlan' &&\n state.context.transformedQuestions.length === 4\n ) {\n setCalcType('OnePlanWithPartner')\n }\n }, [calculatorType, state.context.transformedQuestions.length])\n\n switch (true) {\n case (state.context.quoteData as any)?.projection > 0 ||\n state.matches('Quote Screen') ||\n state.matches('Refetching Quote Details'):\n currentStep = stepperSteps[calcType].length\n break\n default:\n currentStep = state.context.screenNo + 1\n }\n return (\n \n \n \n )\n}\n\nexport default ProgressIndicator\n","import { getOccupationClass } from \"../config/incomeProtection\"\nimport { IncomeProtectionFormType } from \"./interfaces\"\n\nexport const checkIfOccupationRestriction = (state: any) => {\n if (state.context.calc_type === 'IncomeProtection') {\n return checkOccupationClass((state.context.formValues as IncomeProtectionFormType).occupation)\n }\n}\n\nconst checkOccupationClass = (occupation: string) => {\n const occupationClass = getOccupationClass(occupation)\n return occupationClass && occupationClass.BillPayOccupationClass === 'D'\n}","import { Box, Flex } from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { InfoIcon, TickIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport React from 'react'\nimport { fireAnalyticsEvent } from 'common/utils/fireAnalyticsEvent'\nimport { ChevronRightIcon } from '@irishlife/ilgroupdesignsystem.icons'\n\nexport const RestrictionScreen: React.FC = () => {\n return (\n \n \n \n \n Sorry, we were unable to complete your quote\n \n \n\n \n \n Based on your occupation, you might not qualify for income protection. You might still qualify for other forms of protection, therefore it would be best that you speak with one of our financial advisors.\n \n \n \n \n You can still continue\n An advisor can assess your situation and see if you qualify for income protection.\n\n \n \n \n \n \n You may qualify for other protection\n An advisor can see if you qualify for alternative protection such as bill cover.\n\n \n \n \n\n fireAnalyticsEvent({\n name: 'IncomeProtection',\n properties: {\n event: 'IncomeProtection',\n clickText: 'Book an appointment',\n clickURL: '/book-an-appointment-page?campaignIdAdvisorBlock=income_protection_calc_quotescreen',\n clickID: 'primary_cta_click'\n }\n })}>\n }\n width={'100%'}\n variant='primary'\n size='md'\n >\n Book an appointment\n \n\n \n\n \n )\n}\n","import { Box, Flex } from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { FraudIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { CalculatorMachineEvent } from '../../utils/interfaces'\nimport React from 'react'\nimport { checkIfOccupationRestriction } from '../../utils/viewSelector'\nimport { RestrictionScreen } from './RestrictionScreen'\nexport const ErrorScreen: React.FC = () => {\n const { state, send } = useCalculatorMachine()\n const isRestrictionScreen = checkIfOccupationRestriction(state)\n const restartQuote = () => {\n send({\n type: 'Calculate Again',\n payload: {\n screenNo: 0,\n },\n } as CalculatorMachineEvent)\n }\n if (isRestrictionScreen) {\n return < RestrictionScreen />\n }\n return (\n \n \n \n \n Sorry, we were unable to complete your quote\n \n \n\n \n \n We’ve encountered a technical issue. Please return to the\n first step and try again.\n \n\n \n Alternatively,\n \n \n {' '}\n call (0)1 704 1104\n \n {' '}\n to speak with an Irish Life Financial Services Advisor or\n contact us via Webchat.\n \n \n \n \n Restart quote\n \n \n \n \n )\n}","export const quoteCardData = {\n taxRelief: {\n id: 2,\n props: {\n label: `Tax Relief`,\n data: [\n ` Tax relief is not guaranteed. Rates are current as of January 2024.`,\n `To claim tax relief you can apply to your inspector of taxes to adjust your tax credits. Contributions deducted from salary will receive immediate tax relief. To be eligible to claim income tax relief, your income must be taxable either Schedule E or Schedule D (Case l or ll).`,\n ` If you are self-employed, you must include your pension contributions in your self-assessment tax returns in order to obtain income tax relief. Any employer contributions will receive tax relief in the year the contribution is made.`,\n `Pension income in retirement is subject to income tax at your highest rate on withdrawal, Universal Social Charge, PRSI (if applicable) and any other charges or levies (“tax”) applicable at this time.`,\n ],\n },\n },\n assumptions: {\n id: 1,\n props: {\n label: `Assumptions`,\n data: [\n `Pensions projection based on a retirement age of 66`,\n `Regular contributions go up by 3% each year over the term of your plan. Contributions are invested in a standard PRSA product, which has a fund management charge of 1.00% per annum and a contribution charge of up to 5% of each contribution.`,\n `The projected values assume an investment return before retirement of 4.86% per annum. This rate is for illustrative purposes only and is not guaranteed. Actual investment growth will depend on the performance of the underlying investments and may be more or less than illustrated.`,\n `An inflation rate of 2% per annum is used to express future values in today's terms.`,\n `The estimated annuities quoted are payable monthly in advance. The guaranteed period is 5 years, so in the event of early death during these five years, the income will continue to be paid for the balance of this period.`,\n `Annuity payments increase by 2% per annum.`,\n `The annuity rate at your retirement date will depend on long-term interest rates and life expectancy assumptions at that time and is likely to be different from the annuity rate used in the illustration. Different annuity options can be chosen at retirement.`,\n `Under the Finance Act 2012, the age at which people qualify for the state pension is 66 years of age.`,\n `The state pension (Contributory) for a single person is €14,470 per annum as of January 2024.`,\n ],\n },\n },\n}\n","import { Box } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React from 'react'\nimport { quoteCardData } from '../config'\n\nexport interface AssumptionsCardProps {}\n\nexport const AssumptionsCard: React.FC = () => {\n return (\n <>\n \n \n \n {quoteCardData.assumptions.props.label}\n \n
      \n {quoteCardData.assumptions.props.data.map((item) => (\n
    • \n {item}\n
    • \n ))}\n
    \n
    \n
    \n \n )\n}\n","import { Box, Stack } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { TickIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport React from 'react'\nexport interface BenefitsCardProps {\n benefits: string[]\n title: string\n}\n\nexport const BenefitsCard: React.FC = ({\n benefits,\n title,\n}) => {\n return (\n \n \n \n \n {title}\n \n {benefits.map((benefit, index) => (\n \n \n {benefit}\n \n ))}\n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport React from 'react'\n\nexport interface NextStepsCardProps {}\n\nexport const NextStepsCard: React.FC = () => {\n const { send } = useCalculatorMachine()\n const restartQuote = () => {\n send({\n type: 'Calculate Again',\n })\n }\n return (\n <>\n \n \n \n Next Steps\n \n \n Speak to a Irish Life Financial Services advisor about\n your pension options.\n \n \n \n \n \n \n \n Restart Calculator\n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { Spinner } from '@irishlifedigitalhub/ds.atoms.spinner'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\n\nexport interface LoadingProps {\n value: string\n}\n\nexport const Loading: React.FC = ({ value }) => {\n const isDesktop = useDesktop()\n return (\n \n \n \n {`Calculating your ${value}`}\n \n This may take a few seconds\n
    \n )\n}\n\nexport default Loading\n","import { Box, Button, ButtonGroup, IconButton } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { MinusIcon, PlusIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport numeral from 'numeral'\nimport React from 'react'\nimport AnimatedNumber from 'react-animated-number'\n\nexport interface AdjustmentControlsProps {\n isDisabled?: boolean\n label: string\n value: number\n onDecrease: () => void\n onIncrease: () => void\n onReset?: () => void\n min?: number\n max?: number\n}\n\nexport const AdjustmentControls: React.FC = ({\n isDisabled,\n label,\n value,\n onDecrease,\n onIncrease,\n onReset,\n min,\n max,\n}) => {\n return (\n \n {label}\n \n }\n onClick={onDecrease}\n >\n -\n \n onReset?.()}\n >\n \n numeral(value).format('0')\n }\n value={value}\n />\n \n = max : false}\n aria-label='Increase'\n icon={}\n onClick={onIncrease}\n >\n +\n \n \n \n )\n}\n","import { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { debounce } from 'lodash'\nimport { useCallback, useEffect } from 'react'\nimport { atom, useRecoilState } from 'recoil'\nimport {\n CalculatorMachineEvent,\n PensionFormType,\n} from 'common/components/organisms/Calculator/utils/interfaces'\n\nexport const pensionCalculatorState = atom({\n key: 'pensionCalculatorState',\n default: {\n userContribution: 0,\n retirementAge: 0,\n projection: 0,\n statePension: 0,\n salary: 0,\n },\n})\n\nexport function usePensionCalculator() {\n const [calcState, setCalcState] = useRecoilState(pensionCalculatorState)\n const { state, send } = useCalculatorMachine()\n\n useEffect(() => {\n if (state.context?.formValues) {\n const userContribution = Number(\n (state.context.formValues as PensionFormType).contribution1 ||\n (state.context.formValues as PensionFormType)\n .contribution2 ||\n 0\n )\n\n setCalcState({\n userContribution,\n retirementAge: (state.context.formValues as PensionFormType).retirementAge || 66,\n projection:\n (state.context.quoteData as any)?.barChart[0]\n .userContributedPensionProjection || 0,\n statePension:\n (state.context.quoteData as any)?.barChart[0]\n .statePensionValue || 0,\n salary: Number(\n (state.context.formValues as PensionFormType).salary\n ),\n })\n }\n }, [state.context, setCalcState])\n\n const debouncedUpdate = useCallback(\n debounce((userContribution, retirementAge) => {\n let user = {}\n if ((state.context.formValues as PensionFormType)?.contribution2) {\n user = {\n ...state?.context?.formValues,\n contribution2: userContribution,\n retirementAge: retirementAge,\n isStatePension:\n retirementAge >= 66 &&\n (state.context.formValues as PensionFormType)\n ?.isStatePension === 'Y'\n ? 'Y'\n : 'N',\n }\n } else {\n user = {\n ...state?.context?.formValues,\n contribution1: userContribution,\n retirementAge: retirementAge,\n isStatePension:\n retirementAge >= 66 &&\n (state.context.formValues as PensionFormType)\n ?.isStatePension === 'Y'\n ? 'Y'\n : 'N',\n }\n }\n send({\n type: 'Get Adjusted Quote',\n payload: { user },\n } as CalculatorMachineEvent)\n }, 1500),\n []\n )\n\n const changeUserContribution = useCallback(\n (userContribution, retirementAge) => {\n debouncedUpdate(userContribution, retirementAge)\n },\n [debouncedUpdate]\n )\n\n const setContribution = useCallback(\n (contribution) => {\n setCalcState((oldState) => ({\n ...oldState,\n userContribution: contribution,\n }))\n changeUserContribution(contribution, calcState.retirementAge)\n },\n [setCalcState, calcState.retirementAge, changeUserContribution]\n )\n\n const setRetirementAge = useCallback(\n (age) => {\n setCalcState((oldState) => ({ ...oldState, retirementAge: age }))\n changeUserContribution(calcState.userContribution, age)\n },\n [setCalcState, calcState.userContribution, changeUserContribution]\n )\n\n return {\n state: calcState,\n actions: {\n setContribution,\n setRetirementAge,\n },\n }\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport numeral from 'numeral'\nimport React from 'react'\nimport { usePensionCalculator } from '../utils/usePensionCalculator'\n\nexport interface IncomeProjectionTextProps {}\n\nconst replacementPercentage = (projection: number, salary: number) =>\n Number(((projection / (Number(salary) / 12)) * 100).toFixed(0))\n\nexport const IncomeProjectionText: React.FC = () => {\n const {\n state: { projection, retirementAge, salary, statePension },\n } = usePensionCalculator()\n return (\n <>\n \n Based on a number of assumptions this will give you a retirement\n income of €{numeral(projection + statePension).format('0,000')}{' '}\n per month from your {retirementAge}th birthday. This will\n replace{' '}\n {replacementPercentage(projection + statePension, salary)}% of\n your current yearly salary.{' '}\n \n \n \n Warning: These figures are estimates only. They are not a\n reliable guide to future performance of your investment.\n \n \n \n )\n}\n","import { Flex } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport numeral from 'numeral'\nimport React from 'react'\nimport { usePensionCalculator } from '../utils/usePensionCalculator'\n\nexport interface MonthlyIncomeDisplayProps {}\n\nexport const MonthlyIncomeDisplay: React.FC = () => {\n const {\n state: { projection, retirementAge, statePension },\n } = usePensionCalculator()\n\n return (\n \n \n €{numeral(projection + statePension).format('0,000')}\n \n \n {`from your ${retirementAge}th birthday`}\n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { Grid } from '@material-ui/core'\nimport React from 'react'\n\nexport interface LegendProps {\n label: string\n value: string\n color?: string\n fill?: string\n}\n\nexport const Legend: React.FC = ({\n label,\n color,\n value,\n fill,\n}) => {\n return (\n \n \n \n \n \n \n {value}\n \n {label} \n \n \n \n \n )\n}\n","const svg = ``\nconst encodedSvg = encodeURIComponent(svg)\nexport const pattern = `url(\"data:image/svg+xml;utf8,${encodedSvg}\")`\n","import { Grid } from '@material-ui/core'\nimport numeral from 'numeral'\nimport React from 'react'\nimport { Legend } from '../../../legend'\nimport { pattern } from '../utils/pattern'\n\nexport interface LegendDisplayProps {\n projection: number\n statePension: number\n}\n\nexport const LegendDisplay: React.FC = ({\n projection,\n statePension,\n}) => {\n return (\n <>\n \n \n \n \n \n )\n}\n","import { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport React from 'react'\nimport { Bar, BarChart, ResponsiveContainer, XAxis, YAxis } from 'recharts'\nimport { usePensionCalculator } from '../utils/usePensionCalculator'\nimport { LegendDisplay } from './LegendDisplay'\n\nexport interface RetirementBarChartProps {}\n\nexport const RetirementBarChart: React.FC = () => {\n const { state } = useCalculatorMachine()\n const isRefetching = state.matches('Refetching Quote Details')\n\n const {\n state: { projection, statePension },\n } = usePensionCalculator()\n\n const total = projection + statePension\n const data = [\n { projection: projection / total, statePension: statePension / total },\n ]\n\n if (isRefetching) {\n return null\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n )\n}\n","export const getStepSize = (contribution: number) => {\n if (contribution < 500) {\n return 50 // Step size for contributions between €201 and €500\n } else if (contribution < 1000) {\n return 100 // Step size for contributions between €501 and €1000\n } else if (contribution < 2500) {\n return 250 // Step size for contributions between €1001 and €2500\n } else if (contribution < 5000) {\n return 500 // Step size for contributions between €2501 and €5000\n } else if (contribution < 10000) {\n return 1000 // Step size for contributions between €5001 and €10000\n } else {\n return 2000 // Step size for contributions above €10000\n }\n}\n\nexport const getNextContribution = (\n current: number,\n increase: boolean\n): number => {\n // Determine the step size based on the current contribution\n const stepSize = getStepSize(current)\n\n if (increase) {\n // Calculate next higher threshold by rounding up to the nearest step size\n return Math.ceil((current + 1) / stepSize) * stepSize\n } else {\n // Calculate next lower threshold by rounding down to the nearest step size\n return Math.floor((current - 1) / stepSize) * stepSize\n }\n}\n","import { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport React from 'react'\nimport Loading from '../../../Loading'\nimport { AdjustmentControls } from './components/AdjustmentControls'\nimport { IncomeProjectionText } from './components/IncomeProjectionText'\nimport { MonthlyIncomeDisplay } from './components/MonthlyIncomeDisplay'\nimport { RetirementBarChart } from './components/RetirementBarChart'\nimport { getNextContribution } from './utils/getNextContribution'\nimport { usePensionCalculator } from './utils/usePensionCalculator'\n\nexport interface PensionCalculatorOutputProps {}\n\nexport const PensionCalculatorOutput: React.FC =\n () => {\n const { state } = useCalculatorMachine()\n const isRefetching = state.matches('Refetching Quote Details')\n\n const {\n state: { userContribution, retirementAge },\n actions: { setContribution, setRetirementAge },\n } = usePensionCalculator()\n\n return (\n <>\n \n \n Monthly retirement income\n \n {isRefetching ? (\n \n ) : (\n <>\n \n \n \n )}\n \n setContribution(\n getNextContribution(userContribution, false)\n )\n }\n onIncrease={() =>\n setContribution(\n getNextContribution(userContribution, true)\n )\n }\n />\n setRetirementAge(retirementAge - 1)}\n onIncrease={() => setRetirementAge(retirementAge + 1)}\n />\n \n \n \n )\n }\n","import { Box } from '@chakra-ui/react'\nimport { Alert } from '@irishlifedigitalhub/ds.molecules.alert'\nimport React from 'react'\n\nexport interface WarningAlertsProps {}\n\nexport const WarningAlerts: React.FC = () => {\n return (\n <>\n \n \n \n Warning: The value of your investment may go down as\n well as up.\n \n \n \n \n Warning: If you invest in this product you may lose some\n or all of the money you invest.\n \n \n \n \n Warning: If you invest in this product you will not have\n any access to your money until age 60 and/or you retire.\n \n \n \n \n )\n}\n","import React from 'react'\nimport { Stack } from '@chakra-ui/react'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport AnimatedNumber from 'react-animated-number'\nimport numeral from 'numeral'\n\nexport interface ResultProps {\n subtitle: string\n heading: string\n value: number\n note: string\n highlighted?: boolean\n}\nexport const Result: React.FC = ({\n heading,\n value,\n note,\n highlighted,\n subtitle,\n}) => {\n return (\n <>\n \n \n {heading}\n \n \n €\n numeral(n).format('0,0')}\n />\n \n {subtitle} \n \n {note}\n \n \n \n )\n}\n","import _objectWithoutProperties from \"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React, { forwardRef, useRef, useEffect } from 'react';\nimport { Chart as Chart$1, LineController, BarController, RadarController, DoughnutController, PolarAreaController, BubbleController, PieController, ScatterController } from 'chart.js';\nvar defaultDatasetIdKey = 'label';\n\nfunction reforwardRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nfunction setOptions(chart, nextOptions) {\n Object.assign(chart.options, nextOptions);\n}\n\nfunction setLabels(currentData, nextLabels) {\n currentData.labels = nextLabels;\n}\n\nfunction setDatasets(currentData, nextDatasets) {\n var datasetIdKey = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : defaultDatasetIdKey;\n var addedDatasets = [];\n currentData.datasets = nextDatasets.map(function (nextDataset) {\n // given the new set, find it's current match\n var currentDataset = currentData.datasets.find(function (dataset) {\n return dataset[datasetIdKey] === nextDataset[datasetIdKey];\n }); // There is no original to update, so simply add new one\n\n if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n return _objectSpread({}, nextDataset);\n }\n\n addedDatasets.push(currentDataset);\n Object.assign(currentDataset, nextDataset);\n return currentDataset;\n });\n}\n\nfunction cloneData(data) {\n var datasetIdKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultDatasetIdKey;\n var nextData = {\n labels: [],\n datasets: []\n };\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n return nextData;\n}\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\n\n\nfunction getDatasetAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event.nativeEvent, 'dataset', {\n intersect: true\n }, false);\n}\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\n\n\nfunction getElementAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event.nativeEvent, 'nearest', {\n intersect: true\n }, false);\n}\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\n\n\nfunction getElementsAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event.nativeEvent, 'index', {\n intersect: true\n }, false);\n}\n\nfunction ChartComponent(param, ref) {\n var _param$height = param.height,\n height = _param$height === void 0 ? 150 : _param$height,\n _param$width = param.width,\n width = _param$width === void 0 ? 300 : _param$width,\n _param$redraw = param.redraw,\n redraw = _param$redraw === void 0 ? false : _param$redraw,\n datasetIdKey = param.datasetIdKey,\n type = param.type,\n data = param.data,\n options = param.options,\n _param$plugins = param.plugins,\n plugins = _param$plugins === void 0 ? [] : _param$plugins,\n fallbackContent = param.fallbackContent,\n updateMode = param.updateMode,\n props = _objectWithoutProperties(param, [\"height\", \"width\", \"redraw\", \"datasetIdKey\", \"type\", \"data\", \"options\", \"plugins\", \"fallbackContent\", \"updateMode\"]);\n\n var canvasRef = useRef(null);\n var chartRef = useRef();\n\n var renderChart = function renderChart() {\n if (!canvasRef.current) return;\n chartRef.current = new Chart$1(canvasRef.current, {\n type: type,\n data: cloneData(data, datasetIdKey),\n options: options && _objectSpread({}, options),\n plugins: plugins\n });\n reforwardRef(ref, chartRef.current);\n };\n\n var destroyChart = function destroyChart() {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(function () {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n useEffect(function () {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n useEffect(function () {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n useEffect(function () {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n useEffect(function () {\n if (!chartRef.current) return;\n destroyChart();\n setTimeout(renderChart);\n }, [type]);\n useEffect(function () {\n renderChart();\n return function () {\n return destroyChart();\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"canvas\", Object.assign({\n ref: canvasRef,\n role: \"img\",\n height: height,\n width: width\n }, props), fallbackContent);\n}\n\nvar Chart = /*#__PURE__*/forwardRef(ChartComponent);\n\nfunction createTypedChart(type, registerables) {\n Chart$1.register(registerables);\n return /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Chart, Object.assign({}, props, {\n ref: ref,\n type: type\n }));\n });\n}\n\nvar Line = /* #__PURE__ */createTypedChart('line', LineController);\nvar Bar = /* #__PURE__ */createTypedChart('bar', BarController);\nvar Radar = /* #__PURE__ */createTypedChart('radar', RadarController);\nvar Doughnut = /* #__PURE__ */createTypedChart('doughnut', DoughnutController);\nvar PolarArea = /* #__PURE__ */createTypedChart('polarArea', PolarAreaController);\nvar Bubble = /* #__PURE__ */createTypedChart('bubble', BubbleController);\nvar Pie = /* #__PURE__ */createTypedChart('pie', PieController);\nvar Scatter = /* #__PURE__ */createTypedChart('scatter', ScatterController);\nexport { Bar, Bubble, Chart, Doughnut, Line, Pie, PolarArea, Radar, Scatter, getDatasetAtEvent, getElementAtEvent, getElementsAtEvent };","/*\n\nThe formula for calculating the future value of a compound investment with additional regular payments is:\n\nFV = PV * (1 + r/n)^(nt) + PMT * (((1 + r/n)^(nt) - 1) / (r/n))\n\nwhere:\n\nFV is the future value of the investment\nPV is the present value or initial principal of the investment\nr is the annual interest rate\nn is the number of compounding periods per year\nt is the number of years the investment is held\nPMT is the amount of the additional regular payments\nThis formula assumes that the additional regular payments are made at the end of each compounding period, and that the interest rate remains constant over the life of the investment.\n\nFor example, if you have an initial investment of $1000, an annual interest rate of 2.5%, and you make additional regular payments of $100 at the end of each year for a total of 5 years, the future value of the investment would be:\n\nFV = 1000 * (1 + 0.05/1)^(15) + 100 * (((1 + 0.05/1)^(15) - 1) / (0.05/1))\n= 1000 * (1.05)^5 + 100 * ((1.05^5 - 1) / 0.05)\n= $1828.85\n\nThis means that the investment will be worth $1628.89 at the end of the 5 years, including the additional regular payments and the compound interest earned.\n*/\n\nexport const getInvestmentValue = (\n principal: number,\n regular: number,\n rate: number,\n term: number,\n n: number = 1\n): number => {\n return (\n principal * (1 + rate / n) ** (n * term) +\n regular * 12 * ((((1 + rate) / n) ** (n * term) - 1) / (rate / n))\n )\n}\n","import { getInvestmentValue } from './get-investment-value'\n\nexport const getDataPoints = (\n principal: number,\n regular: number,\n rate: number,\n term: number\n) => {\n const dataPoints = []\n const currentYear = new Date().getFullYear()\n for (let i = 1; i <= term; i++) {\n dataPoints.push({\n year: String(currentYear + i),\n value: getInvestmentValue(principal, regular, rate, i),\n })\n }\n return dataPoints\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n Filler,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js'\nimport numeral from 'numeral'\nimport React from 'react'\nimport { ChartProps, Line } from 'react-chartjs-2'\nimport { INVESTMENT_RATE } from '../utils/getCalculatorReturns'\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend,\n Filler\n)\n\nconst options: ChartProps<'line'>['options'] = {\n events: [],\n responsive: true,\n scales: {\n x: {\n display: true,\n grid: { display: false },\n ticks: {\n autoSkipPadding: 10,\n maxRotation: 0,\n color: '#8983A0',\n font: {\n family: 'Assistant',\n size: 14,\n weight: 'bold',\n },\n stepSize: 10,\n },\n },\n y: {\n grace: 1000,\n display: true,\n grid: {\n display: false,\n },\n ticks: {\n autoSkipPadding: 25,\n color: '#8983A0',\n font: {\n family: 'Assistant',\n weight: 'bold',\n size: 14,\n },\n callback: (value) => {\n return `€${numeral(value).format('0,0A')}`\n },\n },\n },\n },\n elements: {\n point: {\n radius: 3,\n },\n },\n plugins: {\n legend: {\n display: true,\n position: 'bottom',\n\n labels: {\n boxWidth: 2,\n color: '#8983A0',\n font: {\n family: 'Assistant',\n size: 14,\n weight: 'bold',\n },\n },\n },\n title: {\n display: false,\n text: 'Chart.js Line Chart',\n },\n },\n}\n\nexport interface LineChartProps {\n cashDataPoints: { year: string; value: number }[]\n investmentDataPoints: { year: string; value: number }[]\n}\n\nexport const LineChart: React.FC = ({\n cashDataPoints,\n investmentDataPoints,\n}) => {\n const yearNames = cashDataPoints.map((dataPoint) => dataPoint.year)\n const data = {\n labels: yearNames,\n datasets: [\n {\n label: 'CONTRIBUTIONS',\n data: cashDataPoints.map((dataPoint) => dataPoint.value),\n fill: true,\n backgroundColor: '#fff',\n borderColor: '#EE870E',\n },\n {\n label: `${INVESTMENT_RATE}% GROWTH`,\n data: investmentDataPoints.map((dataPoint) => dataPoint.value),\n borderColor: '#5261AC',\n backgroundColor: 'rgba(82, 97, 172, 0.3)',\n fill: true,\n },\n ],\n }\n return \n}\n","import React from 'react'\nimport { Box, Divider, Stack, AbsoluteCenter } from '@chakra-ui/react'\nimport { Result } from './Result'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { LineChart } from './Chart'\nimport { INVESTMENT_RATE } from '../utils/getCalculatorReturns'\nexport interface ResultsProps {\n results: any\n term: number\n}\nexport const Results: React.FC = ({ results, term }) => {\n return (\n \n \n \n \n \n \n \n VS\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport React from 'react'\nimport { Results } from './components/Results'\nimport { getCalculatorReturns } from './utils/getCalculatorReturns'\nimport { InvestmentFormType } from 'common/components/organisms/Calculator/utils/interfaces'\n\nexport interface InvestmentCalculatorOutputProps {}\n\nexport const InvestmentCalculatorOutput: React.FC =\n () => {\n const { state } = useCalculatorMachine()\n const calcState = {\n lumpSum: (state.context.formValues as InvestmentFormType)\n .initialAmount,\n regular: (state.context.formValues as InvestmentFormType)\n .monthlyAmount,\n term: (state.context.formValues as InvestmentFormType).noOfYears,\n }\n const calculatorReturns = getCalculatorReturns(calcState)\n return (\n <>\n {/* \n \n \n See your potential growth below\n \n */}\n \n \n )\n }\n","import { getDataPoints } from './get-data-points'\nimport { getInvestmentValue } from './get-investment-value'\n\nexport const INVESTMENT_RATE = 3.55\n\nconst CASH_RATE = 0.0000001\nexport const getCalculatorReturns = (state: any) => {\n const investmentRate = INVESTMENT_RATE / 100\n const returnOnCash = getInvestmentValue(\n state.lumpSum,\n state.regular,\n CASH_RATE,\n state.term\n )\n const returnOnInvestment = getInvestmentValue(\n state.lumpSum,\n state.regular,\n investmentRate,\n state.term\n )\n const cashDataPoints = getDataPoints(\n state.lumpSum,\n state.regular,\n CASH_RATE,\n state.term\n )\n const investmentDataPoints = getDataPoints(\n state.lumpSum,\n state.regular,\n investmentRate,\n state.term\n )\n return {\n returnOnCash,\n returnOnInvestment,\n cashDataPoints,\n investmentDataPoints,\n }\n}\n","import { INVESTMENT_RATE } from './components/InvestmentCalculatorOutput/utils/getCalculatorReturns'\nexport const assumptions = [\n `This is not an investment quotation. This calculation uses a compound interest formula based on a ${INVESTMENT_RATE}% growth rate annually over the number of years of your choosing. It only displays a scenario where the amount is not at risk.`,\n `The above calculator does not take into account any fees or charges.`,\n `If you invest in an insurance based investment product, the amount you invest is subject to/will incur a 1% government life insurance levy.`,\n `Investing in life insurance based savings and investment products are subject to exit tax of 41% on any growth they make.`,\n `These assumptions and figures quoted are for illustrative purposes only.`,\n `Calculations made using this calculator do not account for inflation. Inflation may reduce the real returns on your investment over time.`,\n]\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport React from 'react'\nimport { assumptions } from '../config'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { INVESTMENT_RATE } from './InvestmentCalculatorOutput/utils/getCalculatorReturns'\n\nexport interface WarningsProps {}\n\nexport const Warnings: React.FC = () => {\n return (\n <>\n \n \n \n Two easy ways to start\n \n \n While this calculator shows you how much{' '}\n {INVESTMENT_RATE}% interest might look, We offer\n financial advice or you can get started investing online\n using our app Smart Invest.\n \n \n \n \n Book an appointment\n \n \n\n \n \n \n \n \n \n \n \n \n Assumptions and other key information:\n \n
      \n {assumptions.map((item) => (\n
    • \n {item}\n
    • \n ))}\n
    \n
    \n
    \n \n )\n}\n","export const modifySteps: (calculatorSteps: any[]) => {\n cardCaption: string\n buttonCaption: string\n icon: string\n steps: any[]\n info: any\n}[] = (calculatorSteps: any[]) => {\n return calculatorSteps?.map((step: any) => {\n return {\n codeName: step?.codename,\n cardCaption: step?.cardcaptionnew\n ? step?.cardcaptionnew\n : step?.card_caption,\n info: step?.info,\n buttonCaption: step?.button_caption,\n icon: step?.tooltipicon,\n steps: getCalcalutorSteps(step?.steps),\n }\n })\n}\nconst getCalcalutorSteps = (steps: any[]) =>\n steps.map((step) => ({\n codename: step?.codename,\n fieldName: step?.calculatordata__field_name ?? '',\n helpertext: step?.new_helper_text,\n inputtype: step?.input_type,\n isOptional: step?.optional,\n label: step?.label ?? step?.calculatorstepheader__title,\n options: step?.options ?? step?.multiple_choice_options,\n placeholder: step?.placeholder,\n type: step?.type,\n stepSize: step?.stepsize,\n defaultValue: step?.defaultvalue,\n errorMessage: step?.error_message ?? '',\n min: step?.minvalue,\n max: step?.maxvalue,\n }))\n","import { Box } from '@chakra-ui/react'\nimport { Controller } from 'react-hook-form'\nimport React from 'react'\nimport { Choice } from '@irishlifedigitalhub/ds.molecules.choice'\nexport interface CalculatorStepBinaryChoiceProps {\n fieldName: string\n name?: string\n label?: string\n options?: any[]\n control?: any\n}\nexport const CalculatorStepBinaryChoice: React.FC =\n ({ name, label, options, fieldName, control }) => {\n return (\n (\n \n {\n if (value === 'Y') {\n onChange('Y')\n } else if (value === 'N') {\n onChange('N')\n } else {\n onChange(value)\n }\n }}\n options={[\n {\n id: 'option-1',\n label: options?.[0]?.label,\n value: options?.[0]?.value,\n },\n {\n id: 'option-2',\n label: options?.[1]?.label,\n value: options?.[1]?.value,\n },\n ]}\n spacing={3}\n />\n \n )}\n />\n )\n }\n","export const getStyles = ({ isInvalid = false }) => ({\n input: {\n height: 12,\n width: 'full',\n fontSize: 'md',\n bg: 'brand.50',\n rounded: 'md',\n border: 'solid',\n pl: 2,\n pr: 4,\n color: 'var(--chakra-colors-black)',\n _placeholder: {\n color: 'monochrome.400',\n },\n borderColor: isInvalid ? 'error' : 'brand.400',\n borderWidth: isInvalid ? '2px' : '1px',\n '&:focus': {\n borderColor: 'brand.400',\n borderWidth: '2px',\n zIndex: 1,\n boxShadow: '0px 0px 0px 1px #3182ce !important',\n },\n '&:focus-visible': {\n outline: 'none',\n },\n },\n '#email': {\n borderColor: isInvalid ? 'error' : 'brand.400',\n borderWidth: isInvalid ? '2px' : '1px',\n },\n '#currency': {\n paddingLeft: '15px',\n },\n '#termlife-input': {\n paddingLeft: '30px',\n },\n '.PhoneInput': {\n display: 'flex',\n alignItems: 'center',\n height: 12,\n bg: 'brand.200',\n rounded: 'md',\n pl: 3,\n width: 'full',\n },\n '.PhoneInputCountry': {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n width: 7,\n },\n '.PhoneInputCountrySelect': {\n position: 'absolute',\n top: '0',\n left: '0',\n height: 'full',\n width: 'full',\n zIndex: '1',\n border: '0',\n opacity: '0',\n cursor: 'pointer',\n },\n '.PhoneInputCountryIcon': {\n rounded: 'sm',\n overflow: 'hidden',\n },\n '.PhoneInputCountryIconImg': {\n height: 4,\n },\n '.PhoneInputCountryIcon--border': {},\n})\n","import { isValidPhoneNumber } from 'react-phone-number-input/max'\n\nexport const isValid = (value: string, fieldName?: string, calcType?: string, formValues?: any) => {\n if (calcType === 'IncomeProtection' && fieldName === 'dateOfBirth') {\n console.log('value in isValid', value)\n return (+value <= 54)\n }\n if (calcType === 'IncomeProtection' && fieldName === 'amountToProtect') {\n const amountPercentageToProtect =\n (+formValues?.income * +formValues?.amountToProtect) / 100\n return (amountPercentageToProtect <= 250000 && amountPercentageToProtect >= 750)\n }\n return true\n}\nexport const isValidEmail = (email: string) => {\n // eslint-disable-next-line no-useless-escape\n return /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n email\n )\n}\nexport const isPhoneValid = (phoneNumber: string) => {\n return isValidPhoneNumber(phoneNumber)\n ? undefined\n : 'Please enter a valid mobile number. We will only contact you about your calculation.'\n}","import React from 'react'\nimport { Box, FormLabel } from '@chakra-ui/react'\nimport PhoneInputWithCountry from 'react-phone-number-input'\nimport { Controller } from 'react-hook-form'\nimport { getStyles } from '../../styles/getStyles'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { CalculatorInputType } from 'common/components/organisms/Calculator/utils/interfaces'\nimport { isPhoneValid } from './utils'\nexport const PhoneNumberInput: React.FC = ({\n placeholder,\n fieldName,\n control,\n label,\n errorMessage,\n setIsTouched,\n isInvalid,\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n (\n \n \n \n {label}\n \n \n setIsTouched && setIsTouched(true)}\n />\n \n )}\n />\n \n )\n}\n\n","import React from 'react'\nimport { Box } from '@chakra-ui/react'\nimport { Controller } from 'react-hook-form'\nimport { getStyles } from '../../styles/getStyles'\nimport { Input } from '@irishlife/ilgroupdesignsystem.molecules.input'\nimport { CalculatorInputType } from 'common/components/organisms/Calculator/utils/interfaces'\nimport { isValidEmail } from './utils'\nexport const EmailInput: React.FC = ({\n register,\n placeholder,\n label,\n fieldName,\n control,\n errorMessage,\n setIsTouched,\n isInvalid,\n defaultValue = '',\n}) => {\n return (\n <>\n \n isValidEmail(value) ? undefined : errorMessage,\n }}\n render={({ onChange, onBlur, value }) => (\n \n setIsTouched && setIsTouched(true)}\n />\n \n )}\n />\n \n )\n}\n\n","import React from 'react'\nimport { Box, FormLabel } from '@chakra-ui/react'\nimport { Controller } from 'react-hook-form'\nimport { getStyles } from '../../styles/getStyles'\nimport NumberFormat from 'react-number-format'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { CalculatorInputType } from 'common/components/organisms/Calculator/utils/interfaces'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { isValid } from './utils'\nexport const CurrencyInput: React.FC = ({\n label,\n fieldName,\n control,\n errorMessage,\n setIsTouched,\n isInvalid,\n defaultValue = '',\n}) => {\n const { state } = useCalculatorMachine()\n const calcType = state.context.calc_type\n return (\n <>\n \n isValid(value, fieldName, calcType) ? undefined : errorMessage,\n }}\n render={({ onChange, onBlur, value }) => (\n \n \n \n {label}\n \n \n \n \n €\n \n onChange(value)}\n name={fieldName}\n onBlur={() =>\n setIsTouched && setIsTouched(true)\n }\n />\n \n \n )}\n />\n \n )\n}\n","import React from 'react'\nimport { Box } from '@chakra-ui/react'\nimport { Controller } from 'react-hook-form'\nimport { getStyles } from '../../styles/getStyles'\nimport { Input } from '@irishlife/ilgroupdesignsystem.molecules.input'\nimport { CalculatorInputType } from 'common/components/organisms/Calculator/utils/interfaces'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { isValid } from './utils'\nexport const DefaultInput: React.FC = ({\n register,\n placeholder,\n label,\n fieldName,\n inputtype,\n control,\n errorMessage,\n setIsTouched,\n isInvalid,\n defaultValue = '',\n}) => {\n const { state } = useCalculatorMachine()\n const calcType = state.context.calc_type\n return (\n <>\n \n isValid(value, fieldName, calcType) ? undefined : errorMessage,\n }}\n render={({ onChange, onBlur, value }) => (\n \n {\n if (inputtype === 'number' || inputtype === 'age' ) {\n const target = e.target as HTMLInputElement\n target.type = 'text'\n setTimeout(() => {\n target.type = 'number'\n }, 0)\n }\n }}\n type={inputtype === 'number' || inputtype === 'age' ? 'number' : 'text'}\n key={fieldName}\n label={label}\n defaultValue={defaultValue}\n name={fieldName}\n ref={register}\n placeholder={placeholder}\n onBlur={() => setIsTouched && setIsTouched(true)}\n />\n \n )}\n />\n \n )\n}\n\n","import React from 'react'\nimport { Box } from '@chakra-ui/react'\nimport { Controller } from 'react-hook-form'\nimport { getStyles } from '../../styles/getStyles'\nimport { CalculatorInputType } from 'common/components/organisms/Calculator/utils/interfaces'\nimport { Datepicker } from '@irishlifedigitalhub/ds.molecules.datepicker'\n\nexport const DatePicker: React.FC = ({\n label,\n fieldName,\n control,\n errorMessage,\n isInvalid,\n}) => {\n return (\n (\n \n \n \n )}\n />\n )\n}\n","import React from 'react'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { RichText } from 'common/components/molecules/RichText'\nimport numeral from 'numeral'\n\nexport interface HelperTextProps {\n fieldName?: string\n helperText?: string\n formValues?: any\n errors?: any\n isTouched?: boolean\n}\nexport const HelperText: React.FC = ({\n fieldName,\n helperText,\n formValues,\n errors,\n isTouched = false,\n}) => {\n let dynamicHelperText = ''\n let amountPercentageToProtect = 0\n const { state } = useCalculatorMachine()\n if (\n state.context.calc_type === 'IncomeProtection' &&\n fieldName === 'amountToProtect'\n ) {\n amountPercentageToProtect =\n (+formValues?.income * +formValues?.amountToProtect) / 100\n dynamicHelperText = `${formValues?.amountToProtect}% = €${numeral(amountPercentageToProtect).format('0,000')}`\n }\n return (\n <>\n {state.context.calc_type === 'IncomeProtection' && fieldName === 'amountToProtect' && amountPercentageToProtect > 0 && (amountPercentageToProtect < 750 || amountPercentageToProtect > 250000) && (\n

    \n {errors?.['amountToProtect']?.message}\n

    \n )}\n {isTouched && errors[fieldName ?? ''] && (\n

    \n {errors?.[fieldName ?? '']?.message}\n

    \n )}\n {helperText && (!errors?.[fieldName ?? ''] || !isTouched) && (\n \n )}\n {dynamicHelperText &&\n !helperText &&\n amountPercentageToProtect > 0 && (\n \n )}\n \n )\n}","import React, { useState } from 'react'\nimport { PhoneNumberInput } from '../inputs/PhoneNumberInput'\nimport { EmailInput } from '../inputs/EmailInput'\nimport { CurrencyInput } from '../inputs/CurrencyInput'\nimport { DefaultInput } from '../inputs/DefaultInput'\nimport { DatePicker } from '../inputs/DatePicker'\nimport { CalculatorInputType } from 'common/components/organisms/Calculator/utils/interfaces'\nimport { HelperText } from './HelperText'\nexport interface CalculatorStepInputProps {\n register?: () => {}\n placeholder?: string\n label?: string\n fieldName?: string\n inputtype?: string\n control?: any\n errors?: any\n helperText?: string\n errorMessage?: string\n defaultValue?: string\n formValues?: any\n}\n\nexport const CalculatorStepInput: React.FC = ({\n register,\n placeholder,\n label,\n fieldName,\n inputtype,\n control,\n errors,\n helperText,\n errorMessage,\n defaultValue,\n}) => {\n const [isTouched, setIsTouched] = useState(false)\n const isInvalid = !!errors[fieldName ?? ''] && isTouched\n const childProps: CalculatorInputType = {\n register,\n placeholder,\n label,\n fieldName,\n inputtype,\n control,\n helperText,\n errorMessage,\n setIsTouched,\n isInvalid,\n defaultValue,\n }\n if (inputtype === 'phone') {\n return (\n <>\n \n \n \n )\n }\n if (inputtype === 'email') {\n return (\n <>\n \n \n \n )\n }\n if (inputtype === 'currency') {\n return (\n <>\n \n \n \n )\n }\n if (inputtype === 'date') {\n return (\n <>\n \n \n \n )\n }\n return (\n <>\n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Choice } from '@irishlifedigitalhub/ds.molecules.choice'\nimport React from 'react'\nimport { Controller } from 'react-hook-form'\n\nexport interface CalculatorStepMultipleChoiceProps {\n fieldName: string\n name?: string\n label?: string\n options?: any[]\n control?: any\n}\nexport type ChoiceValue = string | number | boolean | Date | undefined\n\nexport const CalculatorStepMultipleChoice: React.FC =\n ({ name, label, options, fieldName, control }) => {\n return (\n (\n \n {\n if (value) {\n onChange(value)\n } else {\n onChange('')\n }\n }}\n options={options?.map(\n (option: any, index: number) => {\n return {\n id: `option-${index}`,\n label: option?.option_label,\n value: option?.option_label,\n }\n }\n )}\n size='md'\n spacing={3}\n />\n \n )}\n />\n )\n }\n","import React from 'react'\nexport interface CalculatorStepTextProps {\n props: any\n}\nexport const CalculatorStepText: React.FC = ({\n props,\n}) => {\n return
    CalculatorStepTextProps
    \n}\n","import { Box, FormLabel } from '@chakra-ui/react'\nimport { Controller } from 'react-hook-form'\nimport React from 'react'\nimport { occupations } from 'common/components/design-system/organisms/CalculatorCms/steps/CalculatorStepDropdown/occupations'\nimport Autocomplete from '@material-ui/lab/Autocomplete'\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\n\nexport interface CalculatorStepDropdownProps {\n fieldName: string\n name?: string\n label?: string\n options?: any[]\n control?: any\n}\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n input: {\n backgroundColor: 'var(--chakra-colors-brand-50)',\n '&:hover': {\n backgroundColor: '#F1F3FD',\n },\n '&$focused': {\n backgroundColor: '#F1F3FD',\n },\n disableUnderline: true,\n paddingLeft: '18px',\n borderStyle: 'solid',\n borderWidth: '1px', // Add this line\n borderRadius: 'var(--chakra-radii-md)',\n borderColor: 'var(--chakra-colors-brand-400)',\n height: 'var(--chakra-sizes-12)',\n paddingTop: '7px',\n },\n parent: {\n width: 'var(--chakra-sizes-full)',\n // maxWidth: '100%',\n },\n margin: {\n margin: theme.spacing(1),\n },\n })\n)\nexport const CalculatorStepDropdown: React.FC = ({\n name,\n label,\n options,\n fieldName,\n control,\n}) => {\n const classes = useStyles()\n return (\n (\n \n \n \n {label}\n \n \n {\n onChange(newValue?.value || '')\n }}\n renderInput={(params) => (\n \n )}\n getOptionLabel={(option) => option.label}\n />\n \n )}\n />\n )\n}\n","import { Box, Button, ButtonGroup, IconButton } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { MinusIcon, PlusIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport React, {useEffect} from 'react'\nimport AnimatedNumber from 'react-animated-number'\nimport { Controller } from 'react-hook-form'\nimport { formatValue } from './utils/stepsUtils'\nimport { HelperText } from './HelperText'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { isValid } from './../inputs/utils'\nexport interface CalculatorStepAdjustmentControls {\n isDisabled?: boolean\n label: string\n value?: number\n onDecrease: () => void\n onIncrease: () => void\n onReset?: () => void\n min?: number\n max?: number\n control?: any\n fieldName?: string\n errorMessage?: string\n defaultValue?: number\n stepSize: number\n inputtype: string\n helperText?: string\n formValues?: any\n errors?:any\n trigger?: any\n}\n\nexport const CalculatorStepAdjustmentControls: React.FC =\n ({\n control,\n isDisabled,\n fieldName,\n errorMessage,\n label,\n value,\n onDecrease,\n onIncrease,\n onReset,\n min,\n max,\n errors,\n trigger,\n stepSize,\n defaultValue,\n inputtype,\n helperText,\n formValues,\n }) => {\n const { state } = useCalculatorMachine()\n const calcType = state.context.calc_type\n useEffect(() => {\n trigger(fieldName);\n }, [trigger, formValues, value, fieldName]);\n return (\n <>\n \n isValid(value, fieldName, calcType, formValues) ? undefined : errorMessage,\n }}\n render={({ onChange, onBlur, value }) => (\n \n {label}\n \n }\n onClick={() => {\n onChange(value - stepSize)\n }}\n >\n -\n \n onReset?.()}\n >\n \n formatValue(value, inputtype)\n }\n value={value}\n />\n \n = max : false}\n aria-label='Increase'\n icon={}\n onClick={() => {\n onChange(value + stepSize)\n }}\n >\n +\n \n \n \n )}\n />\n \n \n )\n }\n","import numeral from 'numeral'\n\nexport const formatValue = (value: number, type: string) => {\n switch (type) {\n case 'percentage':\n return `${numeral(value).format('0')}%`\n case 'currency':\n return `€ ${numeral(value).format('0,0')}`\n default:\n return `${numeral(value).format('0')}`\n }\n}\n\nexport const getOccupationsList = (occupations: any) => {\n return occupations.filter((item: any) => {\n return item.BillPayOccupationClass !== 'D'\n })\n}\n\n\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { RichText } from 'common/components/molecules/RichText'\nimport _ from 'lodash'\nimport React from 'react'\nimport { CalculatorStepBinaryChoice } from './CalculatorStepBinaryChoice'\nimport { CalculatorStepInput } from './CalculatorStepInput'\nimport { CalculatorStepMultipleChoice } from './CalculatorStepMultipleChoice'\nimport { CalculatorStepText } from './CalculatorStepText'\nimport { CalculatorStepDropdown } from './CalculatorStepDropdown'\nimport { CalculatorStepAdjustmentControls } from './CalculatorStepAdjustmentControls'\nexport interface CalculatorStepProps {\n props: any\n fieldName: string\n register?: () => {}\n handleOnChange?: (name: string, event: any) => void\n control?: any\n error?: any\n defaultValue?: string\n formValues?: any\n trigger?: any\n}\nexport const CalculatorStep: React.FC = ({\n props,\n register,\n handleOnChange,\n control,\n errors,\n trigger,\n formValues,\n defaultValue = '',\n}) => {\n switch (props.type) {\n case 'calculatorstepbinarychoice':\n return (\n \n \n {props.helpertext && (\n \n )}\n \n )\n case 'calculatorstepmultiplechoice':\n return (\n \n \n {props.helpertext && (\n \n )}\n \n )\n case 'calculatorstepinput':\n return (\n \n \n \n )\n case 'calculatorstepdropdown':\n return (\n \n \n {/* {props.helpertext && (\n \n )} */}\n \n )\n case 'calculatorstepadjustmentcontrols':\n return (\n \n \n \n )\n case 'calculatorsteptext':\n default:\n return (\n \n \n {props.helpertext && (\n {props.helpertext}\n )}\n \n )\n }\n}\n","import { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { modifySteps } from 'common/components/organisms/Calculator/utils/modifySteps'\nimport { config } from 'common/components/organisms/Calculator/config/index'\nimport {\n CalculatorStep,\n CalculatorStepProps,\n} from 'common/components/organisms/Calculator/components/steps/CalculatorStep'\nimport { useForm } from 'react-hook-form'\nimport {\n CalculatorMachineEvent,\n InvestmentFormType,\n PensionFormType,\n} from 'common/components/organisms/Calculator/utils/interfaces'\n\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport React from 'react'\n\nexport interface AdjustmentFormProps {}\n\nexport const AdjustmentForm: React.FC = () => {\n const { send, state } = useCalculatorMachine()\n const calculatorSteps = modifySteps(state.context.initialQuestions)\n const { stepsTransformation } = config[state.context.calc_type]\n let transformedSteps = stepsTransformation(calculatorSteps)\n const {\n register,\n handleSubmit,\n control,\n watch,\n formState: { errors },\n } = useForm({\n shouldUnregister: false,\n mode: 'onSubmit',\n })\n const questions = transformedSteps?.[0].steps\n const formValues = watch()\n const onSubmit = (updatedValues: any) => {\n let user = {}\n if (state.context.formValues) {\n user = {\n ...state?.context?.formValues,\n initialAmount:\n updatedValues.initialAmount ||\n (state.context.formValues as InvestmentFormType)\n .initialAmount,\n monthlyAmount:\n updatedValues.monthlyAmount ||\n (state.context.formValues as InvestmentFormType)\n .monthlyAmount,\n noOfYears:\n updatedValues.noOfYears ||\n (state.context.formValues as InvestmentFormType).noOfYears,\n }\n }\n send({\n type: 'Get Adjusted Quote',\n payload: { user },\n } as CalculatorMachineEvent)\n }\n return (\n <>\n {\n onSubmit(formValues)\n })}\n >\n {questions.map((calculatorStep: CalculatorStepProps) => {\n const defaultValue =\n (state.context.formValues as PensionFormType | InvestmentFormType)[\n calculatorStep.fieldName as keyof (\n | PensionFormType\n | InvestmentFormType\n )\n ]\n return (\n \n )\n })}\n\n \n \n \n )\n}\n","import { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { debounce } from 'lodash'\nimport { useCallback, useEffect } from 'react'\nimport { atom, useRecoilState } from 'recoil'\nimport {\n CalculatorMachineEvent,\n IncomeProtectionFormType,\n} from 'common/components/organisms/Calculator/utils/interfaces'\nimport { GetStartedProps } from '../../../../common/GetStarted'\nimport { MoreInfoProps } from '../../../../common/MoreInfo'\n\nexport const incomeProtectionCalculatorState = atom({\n key: 'incomeProtectionCalculatorState',\n default: {\n income: 0,\n amountToProtect: 0,\n premium: 0,\n coveredIncome: 0,\n stateCover: 12732,\n },\n})\n\nexport function useIncomeProtectionCalculatorCalculator() {\n const [calcState, setCalcState] = useRecoilState(\n incomeProtectionCalculatorState\n )\n const { state, send } = useCalculatorMachine()\n\n useEffect(() => {\n if (state.context?.formValues) {\n const income = Number(\n (state.context.formValues as IncomeProtectionFormType).income ||\n 0\n )\n\n setCalcState({\n income,\n amountToProtect: Number(\n (state.context.formValues as IncomeProtectionFormType)\n .amountToProtect || 0\n ),\n premium: Number(\n (\n state.context as {\n quoteData?: { quoteData?: { prem?: number } }\n }\n ).quoteData?.quoteData?.prem ?? 0\n ),\n coveredIncome: Number(\n (income *\n Number(\n (\n state.context\n .formValues as IncomeProtectionFormType\n ).amountToProtect || 0\n )) /\n 100 -\n 12732\n ),\n stateCover: calcState.stateCover,\n })\n }\n }, [state.context, setCalcState, calcState.stateCover])\n\n const debouncedUpdate = useCallback(\n debounce((income, amountToProtect) => {\n let user = {}\n user = {\n ...state?.context?.formValues,\n income: income,\n amountToProtect: amountToProtect,\n }\n send({\n type: 'Get Adjusted Quote',\n payload: { user },\n } as CalculatorMachineEvent)\n }, 1500),\n []\n )\n\n const changeUserContribution = useCallback(\n (income, amountToProtect) => {\n debouncedUpdate(income, amountToProtect)\n },\n [debouncedUpdate]\n )\n\n const setYearlyIncome = useCallback(\n (income) => {\n setCalcState((oldState) => ({\n ...oldState,\n income: income,\n }))\n changeUserContribution(income, calcState.amountToProtect)\n },\n [setCalcState, calcState.amountToProtect, changeUserContribution]\n )\n\n const setAmountToProtect = useCallback(\n (amountToProtect) => {\n setCalcState((oldState) => ({\n ...oldState,\n amountToProtect: amountToProtect,\n }))\n changeUserContribution(calcState.income, amountToProtect)\n },\n [setCalcState, calcState.income, changeUserContribution]\n )\n\n return {\n state: calcState,\n actions: {\n setYearlyIncome,\n setAmountToProtect,\n },\n }\n}\n\nexport const getStarted: GetStartedProps = {\n title: 'Next Steps',\n phoneNumber: '(01) 704 1104',\n bodyText: 'This indicative quote from Irish Life Financial Services is for a Income Protection policy provided by Irish Life Assurance plc and is subject to further assessment of health status. This assessment may result in an increase in the cost of cover. Irish Life Assurance plc is regulated by the Central Bank of Ireland.',\n secondaryCTALabel: 'Learn about Income Protection',\n secondaryCTALink: '/life-insurance/income-protection',\n link: '/book-an-appointment-page?campaignIdAdvisorBlock=income_protection_calc_quotescreen',\n linkLabel: 'Book an appointment',\n isPhoneNumber: false\n}\n\nexport const getModelContent = () => {\n return `
    How your income is covered
    \n

    Income Protection can replace your monthly income by up to 75% of your earnings after an accident or illness.

    \n


    \n
    Covered by your plan
    \n

    This is the amount that is covered by your income protection plan.

    \n


    \n
    Not covered
    \n

    This is the amount that is not covered as you can only cover up to 75% of your annual earnings.

    \n


    \n
    Covered by benefits
    \n

    This is the amount that may be covered by the state and other benefit plans.

    \n


    `\n}\n\nexport const moreInfoProps: MoreInfoProps = {\n modalContent: getModelContent(),\n buttonLabel: 'More information',\n img: 'https://assets-eu-01.kc-usercontent.com/ffd8d21b-ebd4-0151-55d5-297335c8f50f/f2023879-48b2-416f-8c20-e66002e8d1c3/question%20mark.svg',\n imgAltText: 'question mark icon'\n}","import React from 'react'\nimport { Box, Flex, VStack, Square } from '@chakra-ui/react'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { useIncomeProtectionCalculatorCalculator } from '../utils/useIncomeProtectionCalculator'\n\nexport default function Charts() {\n const {\n state: { income, coveredIncome, stateCover },\n } = useIncomeProtectionCalculatorCalculator()\n const amountNotCovered = income - coveredIncome - stateCover\n const heightOfNotCovered = (amountNotCovered / income) * 131\n const heightOfCovered = (coveredIncome / income) * 131\n const heightOfStateCovered = (stateCover / income) * 131\n return (\n \n \n \n \n \n \n \n \n \n\n \n \n Covered by your plan\n \n \n {`€${coveredIncome.toLocaleString()}`}\n \n \n \n \n \n \n Not covered\n \n {`€${amountNotCovered.toLocaleString()}`}\n \n \n \n \n \n\n \n Covered by benefits\n \n {`€${stateCover.toLocaleString()}`}\n \n \n \n \n \n )\n}\n","export const quoteCardData = {\n assumptions: {\n id: 1,\n props: {\n label: `Assumptions`,\n data: [\n `Your retirement age is 55 and this is the age the cover will cease.`,\n `The deferred period is 26 weeks.`,\n `You have no children.`,\n `You pay income tax at a rate of 40%`,\n `You want the cover to increase with inflation.`,\n `You have no existing income protection cover`,\n `You are entitled to any state disability benefit`\n ],\n },\n },\n}\n","import { Box } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React from 'react'\nimport { quoteCardData } from '../../../config'\n\nexport interface AssumptionsCardProps { }\n\nexport const AssumptionsCard: React.FC = () => {\n return (\n \n \n \n {quoteCardData.assumptions.props.label}\n \n \n This calculation has been made using the following\n assumptions:\n \n
      \n {quoteCardData.assumptions.props.data.map((item) => (\n
    • \n {item}\n
    • \n ))}\n
    \n
    \n
    \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React from 'react'\nimport {\n getOccupationClass,\n} from 'common/components/organisms/Calculator/config/incomeProtection'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { IncomeProtectionFormType } from '../../../../../../utils/interfaces'\nexport interface YourDetailsCardProps {\n income: number\n amountToProtect: number\n}\nexport const YourDetailsCard: React.FC = ({\n income,\n amountToProtect,\n}) => {\n const { state } = useCalculatorMachine()\n const occupation = getOccupationClass(\n (state.context.formValues as IncomeProtectionFormType).occupation\n )\n return (\n \n \n Your details\n \n Salary/income:\n \n {`€${income.toLocaleString()}`}\n \n \n \n Self employed:\n \n {(state.context.formValues as IncomeProtectionFormType)\n ?.employmentStatus === 'Y'\n ? 'Yes'\n : 'No'}\n \n \n \n \n Amount of income to protect:\n \n \n {`${amountToProtect.toLocaleString()}%`}\n \n \n \n Retirement age:\n \n 55\n \n \n \n Occupation:\n \n {occupation?.label}\n \n \n \n Smoker:\n \n {(state.context.formValues as IncomeProtectionFormType)\n ?.isSmoker === 'Y'\n ? 'Yes'\n : 'No'}\n \n \n \n Deferred period:\n \n 26 weeks\n \n \n \n Increase with inflation:\n \n Yes\n \n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { PhoneIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport React from 'react'\nimport { quoteScreenAnalytics } from '../../../config/analytics'\nimport { useCalculatorMachine } from '../../../utils/context'\n\nexport interface GetStartedProps {\n title: string\n subtitle?: string\n phoneNumber: string\n bodyText?: string\n secondaryCTALabel?: string\n secondaryCTALink?: string\n isPhoneNumber?: boolean\n link?: string\n linkLabel?: string\n}\n\nexport const GetStarted: React.FC = ({ ...props }) => {\n const { title,\n subtitle,\n phoneNumber,\n bodyText,\n secondaryCTALabel,\n secondaryCTALink,\n isPhoneNumber = true,\n link,\n linkLabel } = props\n const phone = `tel: +353${phoneNumber}`\n const { state } = useCalculatorMachine()\n const calcType = state.context.calc_type\n return (\n \n {title}\n \n {subtitle && (\n \n {subtitle}\n \n )}\n \n {isPhoneNumber && ( quoteScreenAnalytics(calcType, getAnalyticsParams(phoneNumber, `#${phoneNumber}`, 'click_To_Call'), isPhoneNumber)}>\n \n }\n variant='primary'\n size='md'\n >\n {`Call us ${phoneNumber}`}\n \n\n )}\n {!isPhoneNumber && (\n quoteScreenAnalytics(calcType, getAnalyticsParams(linkLabel || '', `#${link}`, 'primary_cta_click'))}>\n \n {linkLabel}\n \n\n )}\n \n\n {secondaryCTALabel && (\n quoteScreenAnalytics(calcType, getAnalyticsParams(secondaryCTALabel, `#${secondaryCTALink}`, 'secondary_CTA_Click'))}>\n \n {secondaryCTALabel}\n \n \n )}\n\n {bodyText && (\n \n {bodyText}\n \n )}\n \n \n )\n}\n\nconst getAnalyticsParams = (text: string, url: string, id: string) => {\n return {\n text: text,\n url: url,\n analyticsId: id\n }\n}\n","import { createIcon } from '@chakra-ui/react'\nimport React from 'react'\nconst AddCircleIcon = createIcon({\n displayName: 'AddCircleIcon',\n viewBox: '0 0 24 24',\n path: [\n ,\n ,\n ],\n})\n\nAddCircleIcon.displayName = 'AddCircleIcon'\n\nexport default AddCircleIcon\n","import {\n Flex,\n Modal,\n ModalBody,\n ModalCloseButton,\n ModalContent,\n ModalFooter,\n ModalOverlay,\n useDisclosure,\n} from '@chakra-ui/react'\nimport React from 'react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { RichText } from 'common/components/molecules/RichText'\nimport AddCircleIcon from './AddCircle'\n\nexport interface MoreInfoProps {\n modalContent: string\n buttonLabel: string\n img?: string\n imgAltText?: string\n}\n\nexport const MoreInfo: React.FC = ({\n modalContent,\n buttonLabel,\n img,\n imgAltText\n}) => {\n const { isOpen, onOpen, onClose } = useDisclosure()\n const finalRef = React.useRef(null)\n const handleHelpButton = () => {\n onOpen()\n }\n // const modalContent = getModelContent()\n return (\n \n <>\n : undefined}\n onClick={handleHelpButton}\n >\n {img && ()}\n {buttonLabel}\n \n \n \n \n \n \n \n \n \n \n Close\n \n \n \n \n \n \n )\n}\n\n// export const getModelContent = () => {\n// return `
    How your income is covered
    \n//

    Income Protection can replace your monthly income by up to 75% of your earnings after an accident or illness.

    \n//


    \n//
    Covered by your plan
    \n//

    This is the amount that is covered by your income protection plan.

    \n//


    \n//
    Covered by benefits
    \n//

    This is the amount that may be covered by the state and other benefit plans.

    \n//


    \n//
    Not covered
    \n//

    This is the amount that is not covered as you can only cover up to 75% of your annual earnings.

    \n//


    `\n// }","import { Flex, Box, Divider } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React from 'react'\nimport Charts from './components/charts'\nimport { AdjustmentControls } from '../../../PensionCalculatorQuote/components/PensionCalculatorOutput/components/AdjustmentControls'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { useIncomeProtectionCalculatorCalculator, getStarted } from './utils/useIncomeProtectionCalculator'\nimport { getNextContribution } from '../../../PensionCalculatorQuote/components/PensionCalculatorOutput/utils/getNextContribution'\nimport { AssumptionsCard } from './components/AssumptionsCard'\nimport { YourDetailsCard } from './components/YourDetailsCard'\nimport { RichText } from 'common/components/molecules/RichText'\nimport { Loading } from 'common/components/organisms/Calculator/components/quoteComponents/Loading'\nimport { GetStarted } from '../../../common/GetStarted'\nimport { MoreInfo } from '../../../common/MoreInfo'\nimport { moreInfoProps } from './utils/useIncomeProtectionCalculator'\n\nexport interface IncomeProtectionCalculatorOutputProps { }\n\nexport const IncomeProtectionCalculatorOutput: React.FC =\n () => {\n const { state } = useCalculatorMachine()\n const isRefetching = state.matches('Refetching Quote Details')\n const {\n state: {\n income,\n amountToProtect,\n premium,\n coveredIncome,\n stateCover,\n },\n actions: { setYearlyIncome, setAmountToProtect }\n } = useIncomeProtectionCalculatorCalculator()\n return (\n <>\n \n \n {' '}\n Your quote{' '}\n \n {isRefetching ? (\n \n ) : (\n <>\n \n \n {`€ ${premium.toLocaleString()}`}{' '}\n \n \n /per month\n \n \n How your income is covered:\n \n \n \n )}\n\n \n Change amounts\n \n setYearlyIncome(\n getNextContribution(income, false)\n )\n }\n onIncrease={() =>\n setYearlyIncome(\n getNextContribution(income, true)\n )\n }\n />\n \n setAmountToProtect(amountToProtect - 1)\n }\n onIncrease={() =>\n setAmountToProtect(amountToProtect + 1)\n }\n />\n \n \n \n \n Your annual benefit\n \n Your annual income protection benefit is{' '}\n {`€${coveredIncome.toLocaleString()}`}\n \n \n What this means:\n \n \n {` To protect ${amountToProtect.toLocaleString()}% (€${(\n coveredIncome + stateCover\n ).toLocaleString()}) of your total income of\n €${income.toLocaleString()} you need to insure €${coveredIncome.toLocaleString()}. The remaining\n €${stateCover.toLocaleString()} is covered by the state.`}\n \n \n \n \n \n \n \n \n \n )\n }\n","import { Box } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React from 'react'\n\nexport interface ValidityCardProps {}\n\nexport const ValidityCard: React.FC = () => {\n return (\n <>\n \n \n Validity\n \n \n This quote is valid for 7 days or until your next\n birthday, whichever comes sooner.\n \n \n This product is based on our{' '}\n \n Personal Income Insurance product.\n \n \n \n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React from 'react'\nimport numeral from 'numeral'\n\nexport interface QuoteBreakdownProps {\n quoteData: any\n}\n\nexport const QuoteBreakdown: React.FC = ({\n quoteData,\n}) => {\n const costOfQuote =\n Number(quoteData?.premInclLevy) -\n Number(quoteData?.fee) -\n Number(quoteData?.levy)\n return (\n \n Your quote breakdown\n \n Cost of protection cover:\n \n {`€${numeral(costOfQuote).format('0.00')}`}\n \n \n \n Irish Life Policy Fee:\n \n {`€${quoteData?.fee?.toLocaleString()}`}\n \n \n \n 1% Government Levy:\n \n {`€${quoteData?.levy?.toLocaleString()}`}\n \n \n \n )\n}\n","import {\n Box,\n FormLabel,\n InputGroup,\n InputRightElement,\n InputLeftElement,\n Flex,\n} from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport {\n DetailsFillIcon,\n CheckIcon,\n} from '@irishlife/ilgroupdesignsystem.icons'\nimport React from 'react'\nimport { useForm, Controller } from 'react-hook-form'\nimport NumberFormat from 'react-number-format'\nimport { getStyles } from '../../../styles/getStyles'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\n\nexport interface AdjustmentFormProps {\n onSubmit: (data: any) => void\n peopleCovered: string\n coverNeeded: string\n term: string\n}\n\nexport const AdjustmentForm: React.FC = ({ ...props }) => {\n const { onSubmit, peopleCovered, coverNeeded, term } = props\n\n const { handleSubmit, control } = useForm()\n\n return (\n \n
    \n \n (\n \n \n \n Amount covered\n \n \n \n \n \n \n \n €\n \n \n onChange(value)\n }\n defaultValue={coverNeeded}\n name={'coverNeeded'}\n />\n\n \n \n \n \n \n \n \n )}\n />\n \n \n (\n \n \n \n Term (in years)\n \n \n \n \n \n \n \n onChange(value)\n }\n defaultValue={term}\n name={'term'}\n />\n \n \n \n \n \n \n \n )}\n />\n \n \n \n \n \n People covered\n \n {peopleCovered}\n \n \n \n \n \n \n
    \n )\n}\n","import React from 'react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { Flex, Divider } from '@chakra-ui/react'\nimport { Loading } from 'common/components/organisms/Calculator/components/quoteComponents/Loading'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { QuoteBreakdown } from './QuoteBreakdown'\nimport { GetStarted, GetStartedProps } from './GetStarted'\nimport { AdjustmentForm, AdjustmentFormProps } from './AdjustmentForm'\nexport interface CalculatorQuoteDisplayProps {\n getStarted: GetStartedProps\n adjustmentFormProps: AdjustmentFormProps\n}\n\nexport const CalculatorQuoteDisplay: React.FC = ({\n ...props\n}) => {\n const { getStarted, adjustmentFormProps } = props\n const { state } = useCalculatorMachine()\n\n const isRefetching = state.matches('Refetching Quote Details')\n const quoteData = state.context.quoteData.quoteData\n\n return (\n <>\n \n \n {' '}\n Your quote{' '}\n \n {isRefetching ? (\n \n ) : (\n <>\n \n \n {`€ ${quoteData?.premInclLevy?.toLocaleString()}`}{' '}\n \n \n /per month\n \n \n \n \n \n \n \n \n )}\n \n \n )\n}\n","import React from 'react'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { GetStartedProps } from '../../common/GetStarted'\nimport { AdjustmentFormProps } from '../../common/AdjustmentForm'\nimport {\n TermLifeFormType,\n CalculatorMachineEvent,\n} from 'common/components/organisms/Calculator/utils/interfaces'\nimport {\n CalculatorQuoteDisplay,\n CalculatorQuoteDisplayProps,\n} from '../../common/CalculatorQuoteDisplay'\nexport interface TermLifeCalculatorOutputProps {}\n\nexport const TermLifeCalculatorOutput: React.FC =\n () => {\n const { state, send } = useCalculatorMachine()\n const formValues = state.context.formValues as TermLifeFormType\n const getStarted: GetStartedProps = {\n title: 'Get Started',\n subtitle:\n 'Our expert financial advisors are on hand to help you get started.',\n phoneNumber: '(01) 704 1104',\n bodyText: `This indicative quote from Irish Life Financial Services is\n for a Term Life Insurance policy from Irish Life Assurance\n plc and is subject to further assessment of health status.\n This assessment may result in an increase in the cost of\n cover. Irish Life Assurance plc, trading as Irish Life, is\n regulated by the Central Bank of Ireland.`,\n }\n const onSubmit = (data: any) => {\n if (!data.coverNeeded && !data.term) {\n return\n }\n let user = {}\n if (state.context.formValues) {\n user = {\n ...state?.context?.formValues,\n coverNeeded: data.coverNeeded || formValues.coverNeeded,\n maxAge: +data.term\n ? +formValues.age + +data.term\n : formValues.maxAge,\n }\n }\n send({\n type: 'Get Adjusted Quote',\n payload: { user },\n } as CalculatorMachineEvent)\n }\n const adjustmentFormProps: AdjustmentFormProps = {\n onSubmit,\n coverNeeded: formValues.coverNeeded,\n term: (+formValues.maxAge - +formValues.age).toString(),\n peopleCovered: 'Single person',\n }\n const quoteDisplayProps: CalculatorQuoteDisplayProps = {\n getStarted,\n adjustmentFormProps,\n }\n return \n }\n","import { Box } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React from 'react'\n\nexport interface ValidityCardProps {\n title: string\n description: string\n}\n\nexport const ValidityCard: React.FC = (validity) => {\n return (\n \n \n {validity?.title}\n \n {validity?.description}\n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React from 'react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { PhoneIcon } from '@irishlife/ilgroupdesignsystem.icons'\nexport interface HaveAQuestionCardProps {\n phoneNumber?: string\n}\n\nexport const HaveAQuestionCard: React.FC = ({phoneNumber= '(01)7041979'}) => {\n const phone = `tel: +353${phoneNumber}`\n return (\n \n \n \n Have a question about your quote?\n \n \n \n Call us if you have any questions about your quote.\n \n \n \n }\n variant='primary'\n size='md'\n >\n {`Call us ${phoneNumber}`}\n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { GetStartedProps } from '../../common/GetStarted'\nimport { AdjustmentFormProps } from '../../common/AdjustmentForm'\nimport {\n MortgageProtectionFormType,\n CalculatorMachineEvent,\n} from 'common/components/organisms/Calculator/utils/interfaces'\nimport {\n CalculatorQuoteDisplay,\n CalculatorQuoteDisplayProps,\n} from '../../common/CalculatorQuoteDisplay'\n\nexport interface MortgageProtectionOutputProps {}\n\nexport const MortgageProtectionOutput: React.FC =\n () => {\n const { state, send } = useCalculatorMachine()\n const formValues = state.context\n .formValues as MortgageProtectionFormType\n\n const getStarted: GetStartedProps = {\n title: 'Get Started',\n subtitle:\n 'You don’t have to wait until your mortgage is drawn down to begin.',\n phoneNumber: '(01) 704 1104',\n bodyText:\n 'This indicative quote from Irish Life Financial Services is for a Mortgage Protection policy from Irish Life Assurance plc and is subject to further assessment of health status. This assessment may result in an increase in the cost of cover. Irish Life Assurance plc, trading as Irish Life, is regulated by the Central Bank of Ireland.',\n }\n const onSubmit = (data: any) => {\n if (!data.coverNeeded && !data.term) {\n return\n }\n let user = {}\n if (state.context.formValues) {\n user = {\n ...state?.context?.formValues,\n coverNeeded: data.coverNeeded || formValues.coverNeeded,\n term: data.term || formValues.term,\n }\n }\n send({\n type: 'Get Adjusted Quote',\n payload: { user },\n } as CalculatorMachineEvent)\n }\n const adjustmentFormProps: AdjustmentFormProps = {\n onSubmit,\n coverNeeded: formValues.coverNeeded,\n term: formValues.term,\n peopleCovered:\n formValues.coverFor === '1' ? 'One person' : 'Two people',\n }\n\n const quoteDisplayProps: CalculatorQuoteDisplayProps = {\n getStarted,\n adjustmentFormProps,\n }\n return \n }\n","import { OnePlanFormType } from 'common/components/organisms/Calculator/utils/interfaces'\nimport { getOnePlanCovers } from 'common/components/organisms/Calculator/utils/onePlanConfig'\nimport { GetStartedProps } from './../../../common/GetStarted'\nimport { ValidityCardProps } from './../../../common/ValidityCard'\nimport numeral from 'numeral'\nimport { MoreInfoProps } from '../../../common/MoreInfo'\n\nexport const getBillCoverAmount = (formValues: OnePlanFormType) => {\n const combinedIncome = formValues.income2\n ? Number(formValues.income1) + Number(formValues.income2)\n : Number(formValues.income1)\n\n // Bill Cover to max of 40% of combined income\n const billCoverAmountMax = combinedIncome * 0.4\n const billCoverAmountTotal = formValues.mortgagePayment\n ? Math.min(billCoverAmountMax, Number(formValues.mortgagePayment))\n : billCoverAmountMax\n\n // Bill Cover to be split between partners in the event of a joint policy\n const billCoverAmtBeforeUtilities =\n formValues.jointLife === 'Y'\n ? billCoverAmountTotal / 2\n : billCoverAmountTotal\n const billCoverAmount = billCoverAmtBeforeUtilities + 400\n return billCoverAmount\n}\nconst findIfApplicable = (\n FormValues: OnePlanFormType,\n cover1: any,\n cover2: any\n) => {\n if (FormValues.jointLife === 'Y') {\n return cover1 !== 0 || cover2 !== 0\n } else {\n return cover1 !== 0\n }\n}\nconst ifBillCoverApplicable = (FormValues: OnePlanFormType) => {\n if (FormValues.jointLife === 'Y') {\n return (\n FormValues.isAddtionalProtectionBillCover !== 'Y' ||\n FormValues.isAddtionalProtectionBillCover2 !== 'Y'\n )\n } else {\n return FormValues.isAddtionalProtectionBillCover !== 'Y'\n }\n}\nconst addValues = (val?: string, val2?: string) => {\n let first = val ? parseFloat(val) : 0,\n second = val2 ? parseFloat(val2) : 0\n let result = first + second\n return result.toFixed(2)\n}\nexport const getOnePlanColumns = (state: any) => {\n const formValues = state.context.formValues as OnePlanFormType\n const quoteData = state.context.quoteData\n const covers = getOnePlanCovers(formValues)\n\n const billCoverAmount = numeral(getBillCoverAmount(formValues)).format(\n '0,000'\n )\n let funeralCover\n if (formValues.isMarried === 'N' && formValues.childNum < 1) {\n funeralCover = 'Y'\n }\n return {\n columns: [\n {\n title: 'Standard',\n modalContent: getModelContent(quoteData.standardQuoteData),\n price: `€${Number(\n quoteData?.standardQuoteData?.premInclLevy\n ).toFixed(2)}`,\n\n data: {\n heading: 'Standard',\n items: [\n {\n isApplicable: findIfApplicable(\n formValues,\n covers.decreasingLifeCover1?.StandardPlan,\n covers.decreasingLifeCover2?.StandardPlan\n ),\n title: 'Decreasing life cover',\n yourCover: covers.decreasingLifeCover1?.StandardPlan\n ? `€${numeral(\n covers.decreasingLifeCover1?.StandardPlan\n ).format('0,000')}`\n : 'Not applicable',\n partnerCover:\n covers.decreasingLifeCover2?.StandardPlan !== 0\n ? `€${numeral(\n covers.decreasingLifeCover2\n ?.StandardPlan\n ).format('0,000')} \\n\n (50% of the gap in life cover)`\n : 'Not applicable',\n },\n {\n isApplicable: ifBillCoverApplicable(formValues),\n title: 'Bill cover',\n yourCover:\n formValues.isAddtionalProtectionBillCover ===\n 'Y'\n ? 'Not Applicable'\n : `€${billCoverAmount} per month up to ${covers.billCover1?.StandardPlan} years`,\n partnerCover:\n formValues.isAddtionalProtectionBillCover2 ===\n 'Y'\n ? 'Not Applicable'\n : `€${billCoverAmount} per month up to ${covers.billCover2?.StandardPlan} years`,\n },\n {\n isApplicable: findIfApplicable(\n formValues,\n covers.specifiedIllness1?.StandardPlan,\n covers.specifiedIllness2?.StandardPlan\n ),\n title: 'Specified illness cover',\n yourCover:\n covers.specifiedIllness1?.StandardPlan !== 0\n ? `€${numeral(\n covers.specifiedIllness1.StandardPlan\n ).format('0,000')}`\n : 'Not applicable',\n partnerCover:\n covers.specifiedIllness2?.StandardPlan !== 0\n ? `€${numeral(\n covers.specifiedIllness2?.StandardPlan\n ).format(\n '0,000'\n )} \\n (Six months net salary)`\n : 'Not applicable',\n },\n {\n isApplicable: funeralCover === 'Y',\n title: 'Funeral cover',\n yourCover: '€10,000',\n partnerCover: '€10,000',\n },\n ],\n },\n },\n {\n title: 'Essential',\n modalContent: getModelContent(quoteData.essentialQuoteData),\n price: `€${Number(\n quoteData?.essentialQuoteData?.premInclLevy\n ).toFixed(2)}`,\n data: {\n heading: 'Essential',\n items: [\n {\n isApplicable: findIfApplicable(\n formValues,\n covers.decreasingLifeCover1?.EssentialPlan,\n covers.decreasingLifeCover2?.EssentialPlan\n ),\n title: 'Decreasing life cover',\n yourCover:\n covers.decreasingLifeCover1?.EssentialPlan !== 0\n ? `€${numeral(\n covers.decreasingLifeCover1\n ?.EssentialPlan\n ).format('0,000')}`\n : 'Not applicable',\n partnerCover:\n covers.decreasingLifeCover2?.EssentialPlan !== 0\n ? `€${numeral(\n covers.decreasingLifeCover2\n ?.EssentialPlan\n ).format(\n '0,000'\n )} \\n (75% of the gap in life cover)`\n : 'Not applicable',\n },\n {\n isApplicable: ifBillCoverApplicable(formValues),\n title: 'Bill cover',\n yourCover:\n formValues.isAddtionalProtectionBillCover ===\n 'Y'\n ? 'Not aplicable'\n : `€${billCoverAmount} per month up to ${covers.billCover1?.EssentialPlan} years`,\n partnerCover:\n formValues.isAddtionalProtectionBillCover2 ===\n 'Y'\n ? 'Not Applicable'\n : `€${billCoverAmount} per month up to ${covers.billCover2?.EssentialPlan} years`,\n },\n {\n isApplicable: findIfApplicable(\n formValues,\n covers.specifiedIllness1?.EssentialPlan,\n covers.specifiedIllness2?.EssentialPlan\n ),\n title: 'Specified illness cover',\n yourCover:\n covers.specifiedIllness1?.EssentialPlan !== 0\n ? `€${numeral(\n covers.specifiedIllness1.EssentialPlan\n ).format('0,000')}`\n : 'Not applicable',\n partnerCover:\n covers.specifiedIllness2?.EssentialPlan !== 0\n ? `€${numeral(\n covers.specifiedIllness2\n ?.EssentialPlan\n ).format(\n '0,000'\n )} \\n (One year net salary)`\n : 'Not applicable',\n },\n {\n isApplicable: funeralCover === 'Y',\n title: 'Funeral cover',\n yourCover: '€10,000',\n partnerCover: '€10,000',\n },\n ],\n },\n },\n {\n title: 'Comprehensive',\n modalContent: getModelContent(quoteData.comprehensiveQuoteData),\n price: `€${Number(\n quoteData?.comprehensiveQuoteData?.premInclLevy\n ).toFixed(2)}`,\n data: {\n heading: 'Comprehensive',\n items: [\n {\n isApplicable: findIfApplicable(\n formValues,\n covers.decreasingLifeCover1?.ComprehensivePlan,\n covers.decreasingLifeCover2?.ComprehensivePlan\n ),\n title: 'Decreasing life cover',\n yourCover:\n covers.decreasingLifeCover2\n ?.ComprehensivePlan !== 0\n ? `€${numeral(\n covers.decreasingLifeCover1\n ?.ComprehensivePlan\n ).format('0,000')}`\n : 'Not applicable',\n partnerCover:\n covers.decreasingLifeCover2\n ?.ComprehensivePlan !== 0\n ? `€${numeral(\n covers.decreasingLifeCover2\n ?.ComprehensivePlan\n ).format(\n '0,000'\n )} \\n (75% of the gap in life cover)`\n : 'Not applicable',\n },\n {\n isApplicable: ifBillCoverApplicable(formValues),\n title: 'Bill cover',\n yourCover:\n formValues.isAddtionalProtectionBillCover ===\n 'Y'\n ? 'Not applicable'\n : `€${billCoverAmount} per month up to ${covers.billCover1?.ComprehensivePlan} years`,\n partnerCover:\n formValues.isAddtionalProtectionBillCover2 ===\n 'Y'\n ? 'Not Applicable'\n : `€${billCoverAmount} per month up to ${covers.billCover2?.ComprehensivePlan} years`,\n },\n {\n isApplicable: findIfApplicable(\n formValues,\n covers.specifiedIllness1?.ComprehensivePlan,\n covers.specifiedIllness2?.ComprehensivePlan\n ),\n title: 'Specified illness cover',\n yourCover:\n covers.specifiedIllness1?.ComprehensivePlan !==\n 0\n ? `€${numeral(\n covers.specifiedIllness1\n .ComprehensivePlan\n ).format('0,000')}`\n : 'Not applicable',\n partnerCover:\n covers.specifiedIllness2?.ComprehensivePlan !==\n 0\n ? `€${numeral(\n covers.specifiedIllness2\n ?.ComprehensivePlan\n ).format(\n '0,000'\n )} \\n (Two year net salary)`\n : 'Not applicable',\n },\n {\n isApplicable: funeralCover === 'Y',\n title: 'Funeral cover',\n yourCover: '€10,000',\n partnerCover: '€10,000',\n },\n ],\n },\n },\n ],\n }\n}\n\n\nconst getModelContent = (data: any) => {\n return `
    Decreasing Life Cover
    \n

    Pays a lump sum if anyone covered on the plan dies. The cover will decrease each year because the amount of replacement income your family needs reduces over time.

    \n


    \n
    Bill Cover
    \n

    Pays your essential monthly bills if the person covered cannot work because of an illness or injury while employed. You will not be able to claim if you become unemployed for more than one month and your claim may be limited if living abroad at the time of your claim.

    \n


    \n
    Specified Illness Cover
    \n

    Pays a lump sum if you are diagnosed with one of the illness covered on the plan.

    \n


    \n
    Funeral Cover
    \n

    A lump sum payment to help your family cover the cost of your funeral and other related expenses.

    \n


    \n
    Price Breakdown (per month)
    \n

    Cost of Decreasing Life Cover: €${addValues(\n data?.lifeCoverPrem1,\n data?.lifeCoverPrem2\n )}
    \nCost of Bill Cover: €${addValues(data?.billPayPrem1, data?.billPayPrem2)}
    \nCost of Illness Cover: €${addValues(\n data?.sicCoverPrem1,\n data?.sicCoverPrem2\n )}
    \nIrish Life Policy Fee: €${Number(data?.fee).toFixed(2)}
    \n1% Government Levy: €${Number(data?.levy).toFixed(2)}
    \nTotal: €${Number(data?.premInclLevy).toFixed(2)}

    \n


    `\n}\nexport const moreInfo = (data: string): MoreInfoProps => {\n return {\n modalContent: data,\n buttonLabel: 'See costs & benefits'\n }\n\n}\nexport const getStarted: GetStartedProps = {\n title: 'Next Steps',\n subtitle:\n 'Speak to an advisor to help get started or for help with your quote.',\n phoneNumber: '(01) 704 1104',\n}\nexport const benefits = [\n `98.6% of death claims paid (2023)`,\n `Supporting 8,000+ families with claims (2023)`,\n `80 years looking after the needs of people in Ireland (2023)`,\n]\nexport const benefitsTitle = `Why choose Irish Life Assurance?`\nexport const validity: ValidityCardProps = {\n title: 'Validity',\n description: `This quote is valid for 7 days or until your next birthday, whichever is sooner and is subject to no changes to the applicable regulatory or tax rules within that period. You must keep up payments to stay on cover. This planner gives general guidance, but is not individual financial advice. We recommend you discuss your full circumstances and the cover with our of our qualified financial advisors.`,\n}\nexport const RiskCard: ValidityCardProps = {\n title: 'Risk associated with this quote',\n description: `See cover requirements section below for further detail on the calculation and assumptions for recommended cover levels.\nThis assessment may result in an increase in the cost of cover. Irish Life Assurance plc is regulated by the Central Bank of Ireland. This indicative quote from Irish Life Financial Services is for a OnePlan protection policy from Irish Life Assurance plc and is subject to further assessment of health status.`,\n}\nexport const coverRequirements = {\n accordion_section__title: 'Cover Requirements',\n accordion_section__items: [\n {\n id: 1,\n heading: 'Decreasing life cover',\n children_test: `

    \n Lump sum paid on death - The gap in\n cover is calculated by taking your net income, minus\n state benefits and any mortgage payments covered by\n mortgage protection multiplied by the term. If you have\n a mortgage, we assume that you have mortgage protection\n in place. Protection Term is calculated on your youngest\n child reaching age 25 or the remaining term of your\n mortgage. State widows benefit of €1,029 plus an\n additional €199 for each child per month is assumed. The\n level of state benefit is dependent on the number of\n PRSI contributions-we assume 48 or more in this\n instance.\n

    `,\n },\n {\n id: 2,\n heading: 'Bill cover',\n children_test: `

    Pays regular amount if unable to work due to injury or\n illness - The recommended cover is calculated by adding\n your monthly mortgage or rent amount, plus €400 for\n essential bills such as gas, electricity etc. The amount\n of cover is capped at €2,000 or 40% of monthly net\n income, whichever is lower. Term is based on your\n youngest child reaching 25 or the remaining of your\n mortgage term.

    `,\n },\n {\n id: 3,\n heading: 'Specified illness cover',\n children_test: `

    The recommended cover is calculated at two year's net\n salary. Term is based on your youngest child reaching age\n 25 or a term of 20 years if no children under the age of\n 25. If you are over 65 years of age, you are not\n eligible for this benefit.

    `,\n },\n ],\n}\n","import React from 'react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { AccordionSection } from 'common/components/organisms/templateSections/AccordionSection'\nimport { coverRequirements } from './../utils/helperFunctions'\nexport interface CoverRequirementProps {}\n\nexport const CoverRequirement: React.FC = () => {\n return (\n \n \n \n )\n}\n","import React from 'react'\nimport { Box, HStack } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nexport interface QuoteCardHeadersProps {\n columns: any\n columnClass: any\n handleHeaderClick: any\n}\nexport const QuoteCardHeaders: React.FC = ({\n columns,\n columnClass,\n handleHeaderClick,\n}) => {\n return (\n <>\n \n {columns.map((item: any, index: any) => {\n return (\n handleHeaderClick(item, index)}\n >\n \n {item.title}\n \n \n {item.price}\n \n \n )\n })}\n \n \n )\n}\n","import React from 'react'\nimport {\n Box,\n Flex,\n Divider,\n Image,\n} from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { CheckIcon, CloseIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { OnePlanFormType } from 'common/components/organisms/Calculator/utils/interfaces'\nimport { MoreInfo } from '../../../common/MoreInfo'\nimport { moreInfo } from '../utils/helperFunctions'\nexport interface CoverDetail {\n isApplicable: boolean\n title: string\n yourCover: string\n partnerCover: string\n}\n\nexport interface QuoteCardProps {\n coverDetails: any\n}\n\nexport const QuoteCard: React.FC = ({ coverDetails }) => {\n const { data, modalContent } = coverDetails\n const moreInfoProps = moreInfo(modalContent)\n const { state } = useCalculatorMachine()\n const formValues = state.context.formValues as OnePlanFormType\n return (\n \n \n \n \n \n {data.heading}\n \n \n \n \n {data.items.map((coverDetail: any, index: any) => {\n if (coverDetail.isApplicable) {\n return (\n \n \n \n \n \n {coverDetail.title}\n \n \n You:{' '}\n {coverDetail.yourCover}\n \n {formValues.jointLife === 'Y' && (\n \n Partner:{' '}\n {coverDetail.partnerCover}\n \n )}\n \n \n \n \n )\n } else {\n return (\n \n \n \n \n \n {coverDetail.title}\n \n \n {' '}\n Not applicable\n \n \n \n \n \n )\n }\n })}\n \n \n )\n}\n","import React, { useState } from 'react'\nimport { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { QuoteCardHeaders } from './components/QuoteCardheaders'\nimport { QuoteCard } from './components/QuoteCard'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { getOnePlanColumns } from './utils/helperFunctions'\nexport interface OnePlanProtectionOutputProps {}\n\nexport const OnePlanProtectionOutput: React.FC =\n () => {\n const { state } = useCalculatorMachine()\n type ColumnState = {\n isSelected: object\n }[]\n const activeStyles = {\n borderBottom: '4px solid #6977DF',\n boxShadow: '0px 0px 20px rgba(82, 97, 172, 0.24)',\n borderRadius: '12px',\n background: '#FFFFFF',\n }\n const columns = getOnePlanColumns(state).columns\n const [column, setColumn] = useState(columns[0])\n const initialColumnState: ColumnState = columns?.map(\n (column: any, index: number) => {\n if (index === 0) {\n return {\n isSelected: activeStyles,\n }\n }\n return { isSelected: {} }\n }\n )\n const [columnClass, setcolumnClass] =\n React.useState(initialColumnState)\n const handleHeaderClick = (column: any, index: number) => {\n setColumn(column)\n const columnState: ColumnState = columnClass.map(\n (item, itemIndex: number) => {\n return itemIndex === index\n ? { ...item, isSelected: activeStyles }\n : { ...item, isSelected: {} }\n }\n )\n setcolumnClass(columnState)\n }\n return (\n \n \n Your quote\n \n \n \n \n )\n }\n","import { PensionCalcQuote } from '../quoteComponents/PensionCalculatorQuote'\nimport { InvestmentCalcQuote } from '../quoteComponents/InvestmentCalculatorQuote'\nimport { IncomeProtectionQuote } from '../quoteComponents/IncomeProtectionQuote'\nimport { TermLifeQuote } from './TermLifeQuote'\nimport { MortgageProtectionQuote } from './MortgageProtectionQuote'\nimport { OnePlanProtectionQuote } from './OnePlanProtectionQuote'\nexport const QuoteComponentMapper: { [key: string]: any } = {\n Pensions: PensionCalcQuote,\n Investment: InvestmentCalcQuote,\n IncomeProtection: IncomeProtectionQuote,\n TermLife: TermLifeQuote,\n MortgageProtection: MortgageProtectionQuote,\n OnePlan: OnePlanProtectionQuote,\n}\n","import { Box } from '@chakra-ui/react'\nimport React from 'react'\nimport { AssumptionsCard } from './components/AssumptionsCard'\nimport { BenefitsCard } from '../common/BenefitsCard'\nimport { NextStepsCard } from './components/NextStepsCard'\nimport { PensionCalculatorOutput } from './components/PensionCalculatorOutput'\nimport { WarningAlerts } from '../common/WarningAlerts'\nexport interface PensionCalcQuoteProps {\n props?: any\n}\nexport const PensionCalcQuote: React.FC = () => {\n const benefits = [\n `Our advisors are on hand to help you and offer guidance.`,\n `We support our customers up until and after retirement.`,\n `Customers who had a financial review with us gave it a score of 94.4%.`,\n ]\n const benefitsTitle = ` Why choose Irish Life?`\n return (\n \n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { InvestmentCalculatorOutput } from './components/InvestmentCalculatorOutput'\nimport { Warnings } from './components/Warnings'\nimport { AdjustmentForm } from './components/AdjustmentForm'\n\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\n\nexport interface InvestmentCalcQuoteProps {\n props?: any\n}\nexport const InvestmentCalcQuote: React.FC = () => {\n return (\n <>\n \n \n \n \n\n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport React from 'react'\nimport { IncomeProtectionCalculatorOutput } from './components/IncomeProtectionCalculatorOutput'\nimport { ValidityCard } from './components/ValidityCard'\nimport { useCalculatorMachine } from '../../../utils/context'\n// import { AdvisorBooking } from 'common/components/organisms/AdvisorBooking'\nimport { BenefitsCard } from '../common/BenefitsCard'\nexport interface IncomeProtectionQuoteProps {\n props?: any\n}\nexport const IncomeProtectionQuote: React.FC =\n () => {\n const { state, send } = useCalculatorMachine()\n if (state.context.quoteData?.error) {\n send({ type: 'ERROR OCCURED' })\n }\n const benefits = [\n `98.1% of death claims paid (2022)`,\n `Supporting 7,000+ families with claims (2022)`,\n `80 years looking after the needs of people in Ireland`,\n ]\n const benefitsTitle = `Why choose Irish Life Assurance?`\n\n return (\n \n \n \n {/* */}\n \n \n )\n }\n","import { Box } from '@chakra-ui/react'\nimport React from 'react'\nimport { useCalculatorMachine } from '../../../utils/context'\nimport { BenefitsCard } from '../common/BenefitsCard'\nimport { TermLifeCalculatorOutput } from './TermLifeCalculatorOutput'\nimport { ValidityCard, ValidityCardProps } from '../common/ValidityCard'\nimport { HaveAQuestionCard } from '../common/HaveAQuestion'\nimport { isEmpty } from 'lodash'\n\nexport interface TermLifeQuoteProps {\n props?: any\n}\nexport const TermLifeQuote: React.FC = () => {\n const { state, send } = useCalculatorMachine()\n if (\n state.context.quoteData?.error ||\n isEmpty(state.context.quoteData?.quoteData)\n ) {\n send({ type: 'ERROR OCCURED' })\n }\n const phoneNumber = '(01) 704 1104'\n const benefits = [\n `98.1% of death claims paid (2022)`,\n `Supporting 7,000+ families with claims (2022)`,\n `80 years looking after the needs of people in Ireland`,\n ]\n const benefitsTitle = `Why choose Irish Life Assurance?`\n const validity: ValidityCardProps = {\n title: 'Validity',\n description:\n 'This quote is valid either for 7 days or to your next birthday, whichever is sooner. If you would like to discuss options for Joint Life Cover or Dual Life Cover, you can book a free consultation with a financial advisor.',\n }\n return (\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { ValidityCard, ValidityCardProps } from '../common/ValidityCard'\nimport { HaveAQuestionCard } from '../common/HaveAQuestion'\nimport { isEmpty } from 'lodash'\nimport { useCalculatorMachine } from '../../../utils/context'\nimport { BenefitsCard } from '../common/BenefitsCard'\nimport { Box } from '@chakra-ui/react'\nimport { MortgageProtectionOutput } from './MortgageProtectionOutput'\nexport interface MortgageProtectionQuoteProps {\n props?: any\n}\nexport const MortgageProtectionQuote: React.FC =\n () => {\n const { state, send } = useCalculatorMachine()\n if (\n state.context.quoteData?.error ||\n isEmpty(state.context.quoteData?.quoteData)\n ) {\n send({ type: 'ERROR OCCURED' })\n }\n const phoneNumber = '(01) 704 1104'\n const benefits = [\n `98.1% of death claims paid (2022)`,\n `Supporting 7,000+ families with claims (2022)`,\n `80 years looking after the needs of people in Ireland`,\n ]\n const benefitsTitle = `Why choose Irish Life Assurance?`\n const validity: ValidityCardProps = {\n title: 'Validity',\n description:\n 'This quote is valid for 7 days or until your next birthday, depending which comes first.',\n }\n return (\n \n \n \n \n \n \n )\n }\n","import React from 'react'\nimport { ValidityCard } from '../common/ValidityCard'\nimport { useCalculatorMachine } from '../../../utils/context'\nimport { BenefitsCard } from '../common/BenefitsCard'\nimport { Box } from '@chakra-ui/react'\nimport { GetStarted } from './../common/GetStarted'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { CoverRequirement } from './OnePlanProtectionOutput/components/CoverRequirements'\nimport { OnePlanProtectionOutput } from './OnePlanProtectionOutput'\nimport { isEmpty } from 'lodash'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { ArrowRightCircleIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport {\n getStarted,\n benefits,\n validity,\n benefitsTitle,\n RiskCard,\n} from './OnePlanProtectionOutput/utils/helperFunctions'\nexport interface OnePlanProtectionQuoteProps {\n props?: any\n}\nexport const OnePlanProtectionQuote: React.FC =\n () => {\n const { state, send } = useCalculatorMachine()\n const restartQuote = () => {\n send({\n type: 'Calculate Again',\n })\n }\n if (\n state.context.quoteData?.error ||\n isEmpty(state.context.quoteData?.comprehensiveQuoteData) ||\n isEmpty(state.context.quoteData?.essentialQuoteData) ||\n isEmpty(state.context.quoteData?.standardQuoteData)\n ) {\n send({ type: 'ERROR OCCURED' })\n }\n return (\n \n \n \n \n \n \n \n \n \n }\n mt={'16px'}\n >\n Restart Quote\n \n \n )\n }\n","import {\n Modal,\n ModalBody,\n ModalCloseButton,\n ModalContent,\n ModalFooter,\n ModalOverlay,\n useDisclosure,\n Box,\n} from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { ArrowRightCircleIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport { navigate } from '@reach/router'\nimport { RichText } from 'common/components/molecules/RichText'\nimport { config } from 'common/components/organisms/Calculator/config/index'\nimport { useCalculatorMachine } from 'common/components/organisms/Calculator/utils/context'\nimport { modifySteps } from 'common/components/organisms/Calculator/utils/modifySteps'\nimport React, { useEffect } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { CalculatorStep, CalculatorStepProps } from './CalculatorStep'\nimport { CalculatorMachineEvent } from 'common/components/organisms/Calculator/utils/interfaces'\nimport isEmpty from 'lodash/isEmpty';\n\nexport interface CalculatorStepCommonProps {\n props?: any\n}\n\nexport const CalculatorStepCommon: React.FC = ({\n props,\n}) => {\n const { state, send } = useCalculatorMachine()\n const {\n register,\n handleSubmit,\n control,\n watch,\n trigger,\n formState: { isDirty, errors },\n } = useForm({\n shouldUnregister: false,\n mode: 'all',\n })\n const isFetching = state.matches('Getting Quote Details')\n const { isOpen, onOpen, onClose } = useDisclosure()\n const finalRef = React.useRef(null)\n const calculatorType = props.calc_type\n const analyticsName = `${calculatorType}_calculator`\n const { stepsTransformation } = config[calculatorType]\n const calculatorSteps = modifySteps(props?.steps)\n const formValues = watch()\n let transformedSteps = stepsTransformation(calculatorSteps, formValues)\n const questions = transformedSteps?.[state.context.screenNo].steps\n const formValuestoCheck = Object.values(questions).map((question: any) => {\n return question?.fieldName\n })\n const isFormComplete = Object.values(formValuestoCheck).every(\n (value) =>\n formValues.hasOwnProperty(value) &&\n formValues[value] !== undefined &&\n formValues[value] !== ''\n )\n const isSubmit = state.context.screenNo === transformedSteps?.length - 1\n useEffect(() => {\n if (isDirty) {\n send({\n type: 'Interacted',\n payload: {\n name: analyticsName,\n event: 'interacted',\n isInteracted: 'true',\n },\n } as CalculatorMachineEvent)\n }\n }, [isDirty, send, analyticsName])\n const onSubmit = (user: any) => {\n if (state.context.calc_type === 'Pensions') {\n user = { ...user, retirementAge: 66 }\n } else if (state.context.calc_type === 'IncomeProtection') {\n user = { ...user, retirementAge: 55 }\n }\n // user = { ...user, retirementAge: 66 }\n send({\n type: 'Get Quote' as string,\n payload: {\n user: user,\n calc_type: calculatorType,\n name: analyticsName,\n event: 'completed',\n },\n } as CalculatorMachineEvent)\n }\n const handleHelpButton = () => {\n onOpen()\n send({\n type: 'Need Help',\n payload: {\n name: analyticsName,\n event: 'need help clicked',\n },\n } as CalculatorMachineEvent)\n }\n return (\n
    \n \n <>\n {transformedSteps?.[state.context.screenNo]\n ?.cardCaption && (\n \n {transformedSteps?.[state.context.screenNo]\n ?.icon && (\n \n )}\n \n \n \n \n )}\n {questions.map((calculatorStep: CalculatorStepProps) => {\n return (\n \n )\n })}\n \n {transformedSteps?.[(state as any).context.screenNo]?.info && (\n <>\n \n \n Need help\n \n \n \n \n \n \n \n \n \n \n Close\n \n \n \n \n \n )}\n \n {!isSubmit && (\n }\n size='lg'\n variant='primary'\n onClick={() => {\n send({\n type: 'Next Step',\n payload: {\n name: analyticsName,\n event: 'next step',\n user: formValues,\n transformedQuestions: transformedSteps,\n },\n } as CalculatorMachineEvent)\n navigate('#ProgressIndicator')\n }}\n type='button'\n disabled={!isFormComplete || !isEmpty(errors)}\n _disabled={{\n color: '#0c1e68 !important',\n bg: '#cfd4fa !important',\n }}\n >\n {\n transformedSteps?.[(state as any).context.screenNo]\n ?.buttonCaption\n }\n \n )}\n {isSubmit && (\n }\n size='lg'\n variant='primary'\n type='submit'\n isDisabled={!isFormComplete || isFetching}\n onClick={() => {\n navigate('#ProgressIndicator')\n }}\n _disabled={{ color: '#0c1e68', bg: '#cfd4fa' }}\n _loading={{\n color: '#0c1e68 !important',\n bg: '#cfd4fa !important',\n }}\n >\n {\n transformedSteps?.[(state as any).context.screenNo]\n ?.buttonCaption\n }\n \n )}\n \n )\n}\n\n","import React from 'react'\nimport { useCalculatorMachine } from '../../utils/context'\nimport { ErrorScreen } from './ErrorScreen'\nimport { QuoteComponentMapper } from '../quoteComponents/QuoteComponentMapper'\nimport { CalculatorStepCommon } from '../steps/CalculatorStepCommon'\ntype CalcType = 'Pensions' | 'Investment'\n\nexport const ViewSelector: React.FC = (props) => {\n const calcType: CalcType = props.props.calc_type\n const QuoteComponent = QuoteComponentMapper[calcType]\n const { state } = useCalculatorMachine()\n switch (true) {\n case state.matches('Quote Screen') ||\n state.matches('Refetching Quote Details'):\n return \n case state.matches('Error'):\n return \n default:\n return \n }\n}\n","import { Box, Stack, VStack } from '@chakra-ui/react'\nimport CSS from 'csstype'\nimport React from 'react'\n\nexport interface ContainerRightProps {\n image: string\n}\n\nexport const ContainerRight: React.FC = ({ image }) => {\n const skewObjectStyleVertical: CSS.Properties = {\n position: 'absolute',\n left: '0',\n top: '0',\n height: '100%',\n background:\n 'linear-gradient(to right top, #F7F8FB 0%, #F7F8FB 50%, transparent 51%, transparent 70%, transparent 100%)',\n zIndex: 0,\n }\n return (\n \n \n \n \n \n \n )\n}\n","import { Box, Grid, GridItem } from '@chakra-ui/react'\nimport { analyticsService } from 'common/components/organisms/Calculator/config/analytics'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport { createCrmLead } from 'common/services/crm/createCrmLead'\nimport { fireAnalyticsEvent } from 'common/utils/fireAnalyticsEvent'\nimport React, { useEffect } from 'react'\nimport { EventObject } from 'xstate'\nimport { config } from 'common/components/organisms/Calculator/config/index'\nimport { useCalculatorMachine } from '../../utils/context'\nimport { footerNotesMapper } from '../footerNotes/footerNotesMapper'\nimport { Heading } from '../Heading'\nimport ProgressIndicator from '../ProgressIndicator'\nimport { ViewSelector } from '../views/ViewSelector'\nimport { ContainerRight } from './container-right'\nexport interface ContainerProps {\n props?: any\n}\n\nexport const Container: React.FC = ({ props }) => {\n const isDesktop = useDesktop()\n const { send } = useCalculatorMachine()\n const analyticsName = `${props.calc_type}_calculator`\n const { onSubmit } = config[props.calc_type]\n useEffect(() => {\n fireAnalyticsEvent({\n name: analyticsName,\n properties: {\n event: analyticsName,\n step: 'initialised',\n },\n })\n send({\n type: 'Initialise',\n payload: {\n props,\n actions: {\n onSubmit,\n analyticsService,\n createCrmLead,\n },\n },\n } as EventObject)\n // eslint-disable-next-line\n }, [])\n const calculatorType = props.calc_type\n const FooterNotes = footerNotesMapper[calculatorType]\n return (\n <>\n \n \n \n \n \n \n {isDesktop && (\n \n \n \n )}\n \n \n \n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Container } from 'common/components/organisms/Calculator/components/container'\nimport { CalculatorMachineProvider } from 'common/components/organisms/Calculator/utils/context'\nimport React from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface CalculatorProps {\n steps: any\n}\n\nexport const Calculator: React.FC = (props) => {\n return (\n \n \n \n \n \n )\n}\n","import {\n Calculator as CalculatorOrganism,\n CalculatorProps as CalculatorOrganismProps,\n} from 'common/components/organisms/Calculator'\nimport React from 'react'\n\nexport interface CalculatorProps extends CalculatorOrganismProps {}\n\nexport const Calculator: React.FC = (props) => {\n return \n}\n\nexport default Calculator\n","function _extends() { _extends = Object.assign || 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); }\n\nimport * as React from \"react\";\n\nvar _ref = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.5 3.5L6.206 7.793a1 1 0 000 1.414l4.292 4.293\",\n stroke: \"#4E4670\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n});\n\nfunction SvgChevronLeftIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _ref);\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IkNhcmV0Ij4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTEwLjQ5OTUgMy41TDYuMjA2NjIgNy43OTI4OUM1LjgxNjA5IDguMTgzNDIgNS44MTYwOSA4LjgxNjU4IDYuMjA2NjIgOS4yMDcxMUwxMC40OTk1IDEzLjUiIHN0cm9rZT0iIzRFNDY3MCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9nPgo8L3N2Zz4K\";\nexport { SvgChevronLeftIcon as ReactComponent };","import { Box, Flex } from '@chakra-ui/react'\nimport { Stepper as IrishStepper } from '@irishlifedigitalhub/ds.molecules.stepper'\nimport React, { useEffect, useState } from 'react'\nimport ChevronRightIcon from './ChevronRightIcon.svg'\nimport ChevronLeftIcon from './ChevronLeftIcon.svg'\nimport './stepper.css'\n\nexport interface StepperProps {\n steps: number\n spacing?: number\n defaultStep?: number\n leftIndicator?: boolean\n rightIndicator?: boolean\n vertically?: boolean\n onChange: (number: number) => void\n}\n\nexport const Stepper = ({\n steps,\n spacing = 1,\n defaultStep = 1,\n leftIndicator = false,\n rightIndicator = false,\n vertically = false,\n onChange,\n}: StepperProps) => {\n const [index, setIndex] = useState(defaultStep)\n\n useEffect(() => {\n setIndex(defaultStep)\n }, [defaultStep])\n\n React.useEffect(() => {\n if (index === 0) {\n setIndex(steps)\n return\n } else if (index > steps) {\n setIndex(1)\n return\n }\n onChange(index)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [index, steps])\n\n return (\n \n setIndex(index - 1)}\n marginRight='22px'\n marginTop={vertically ? '' : '2px'}\n w='16px'\n h='16px'\n >\n iconLeft\n \n
    \n setIndex(number)}\n {...(rightIndicator\n ? { rightIndicator }\n : { leftIndicator })}\n />\n
    \n setIndex(index + 1)}\n marginLeft='12px'\n w='16px'\n h='16px'\n >\n iconRight\n \n \n )\n}\n\n \n","function _extends() { _extends = Object.assign || 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); }\n\nimport * as React from \"react\";\n\nvar _ref = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.5 3.5l4.292 4.293a1 1 0 010 1.414L5.5 13.5\",\n stroke: \"#4E4670\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n});\n\nfunction SvgChevronRightIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _ref);\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IkNhcmV0Ij4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTUuNDk5NTEgMy41TDkuNzkyNDEgNy43OTI4OUMxMC4xODI5IDguMTgzNDIgMTAuMTgyOSA4LjgxNjU4IDkuNzkyNCA5LjIwNzExTDUuNDk5NTEgMTMuNSIgc3Ryb2tlPSIjNEU0NjcwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L2c+Cjwvc3ZnPgo=\";\nexport { SvgChevronRightIcon as ReactComponent };","import { Box, Image, Stack } from '@chakra-ui/react'\nimport { Button, ButtonProps } from '@irishlifedigitalhub/ds.atoms.button'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { Stepper as IrishStepper } from '@irishlifedigitalhub/ds.molecules.stepper'\nimport { navigate } from '@reach/router'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React, { useMemo, useState } from 'react'\nimport { Stepper } from '../../molecules/StepperWithArrows/index'\n\nexport type Card = {\n caption?: string\n title?: string\n subtitle?: string\n subtitle2?: string\n paragraph?: string\n buttonText?: string\n buttonProps?: ButtonProps\n secondaryButtonText?: string\n secondaryButtonProps?: ButtonProps\n children?: React.ReactNode\n imageSrc?: string\n callToAction?: any\n}\n\nexport type Campaign3DSlideshowProps = {\n title: string\n cards: Card[]\n}\n\nexport const Campaign3DSlideshow = (props: Campaign3DSlideshowProps) => {\n const { title, cards } = props\n\n const sliderImages = useMemo(() => {\n return cards.map((card: Card) => {\n return {\n src: card.imageSrc,\n }\n })\n }, [cards])\n\n const [images, setImages] = useState(sliderImages || [])\n const [index, setIndex] = useState(0)\n\n const card: Card = cards[index]\n\n const isDesktop = useDesktop()\n\n const slide = [\n {\n boxShadow: '0 1px 4px rgba(0,0,0, 0.4)',\n transform: ' translate3d(0%, 14%, 200px)',\n },\n {\n boxShadow:\n '0 6px 10px rgba(0,0,0, 0.3), 0 2px 2px rgba(0,0,0, 0.2)',\n transform: 'translate3d(0%, 7%, 100px)',\n },\n {\n boxShadow:\n '0 13px 26px rgba(0,0,0, 0.3), 0 12px 6px rgba(0,0,0, 0.2)',\n transform: 'translate3d(0%, 0%, 50px)',\n },\n ]\n\n React.useEffect(() => {\n if (index < 0) {\n setIndex(sliderImages.length - 1)\n return\n } else if (index > sliderImages.length - 1) {\n setIndex(0)\n return\n }\n shiftArrayToLast(index)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [index])\n\n function shiftArrayToLast(index: number) {\n if (index >= 0 && index < sliderImages.length) {\n const tempArray = [...sliderImages]\n const element = tempArray.splice(index, 1)[0]\n\n tempArray.unshift(element)\n setImages(tempArray)\n }\n }\n\n return (\n \n \n \n \n {isDesktop ? (\n images && (\n \n \n {images.map(\n (image: any, index: number) => (\n 2\n ? 2\n : index\n ]\n }\n />\n )\n )}\n \n \n )\n ) : (\n \n )}\n \n \n {isDesktop ? (\n \n setIndex(number - 1)\n }\n defaultStep={index + 1}\n />\n ) : (\n \n setIndex(number - 1)\n }\n defaultStep={index + 1}\n />\n )}\n \n \n \n \n \n \n \n {title}\n \n \n {card?.title}\n \n \n \n {card?.subtitle}\n \n \n {card.subtitle2}\n \n \n \n {card?.paragraph}\n \n \n {card?.children}\n \n \n {\n navigate(card?.callToAction?.url)\n }}\n >\n {card?.callToAction?.label}\n \n \n \n \n {card?.secondaryButtonText}\n \n \n \n \n \n \n )\n}\n","import React, { FC } from 'react'\nimport { Campaign3DSlideshow } from 'common/components/organisms/Campaign3DSlideshow/index'\n\nconst Campaign3DSlideshowWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { Campaign3DSlideshowWrapper as Campaign3DSlideshow }\nconst getProps = (props: any) => {\n const { title, untitled_linked_items: items } = props\n \n return {\n title,\n cards: items.map((item: any) => ({\n title: item.title,\n subtitle: item.subtitle,\n subtitle2: item.subtitle_2,\n paragraph: item.description_b57cf5a || item.description,\n imageSrc: item.file,\n callToAction: {\n label: item.button_c9ad60e__text,\n url: item.button_c9ad60e__url,\n variant: item.card_cta_0396ba7__cta_variant,\n },\n })),\n }\n}\n","import { Box } from '@chakra-ui/react'\nimport {\n ProductList,\n ProductListProps,\n} from 'common/components/organisms/ProductList'\nimport React from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface CardGridProps extends ProductListProps {}\n\nconst fullWidthWrapperStyles = {\n backgroundColor: '#EBEDF7',\n marginLeft: '-50vw',\n marginRight: '-50vw',\n width: '100vw',\n position: 'relative',\n left: '50%',\n right: '50%',\n display: 'flex',\n justifyContent: 'center',\n}\n\nexport const CardGrid: React.FC = (props) => {\n const data = getCardGridData(props)\n return (\n \n \n \n \n \n )\n}\n\nexport const getCardGridData = (data: any): ProductListProps => {\n return {\n heading: data.cardgrid__heading,\n products: (data.cardgrid__products || []).map((product: any) => ({\n icon: product.icon,\n subtitle: product.subtitle,\n title: product.title,\n text: product.text,\n callToAction: {\n label: product.card_cta_0396ba7__cta_label,\n variant: product.card_cta_0396ba7__cta_variant,\n url: product.card_cta_0396ba7__cta_url,\n },\n })),\n text: data.cardgrid__text,\n title: data.cardgrid__title,\n }\n}\n","import { Benefits, BenefitsProps } from 'common/components/organisms/Benefits'\nimport React from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface CardsProps extends BenefitsProps {}\n\nexport const Cards: React.FC = (props) => {\n return \n}\n\nconst getCardsData = (data: any): CardsProps => {\n return {\n heading: data.threecards__heading,\n title: data.threecards__title,\n subtitle: data.threecards__subtitle,\n benefits: data.threecards__cards.map((card: any) => ({\n callToAction: {\n label: card.card_cta_0396ba7__cta_label,\n variant: card.card_cta_0396ba7__cta_variant,\n url: card.card_cta_0396ba7__cta_url,\n },\n icon: card.icon,\n text: card.text,\n title: card.title,\n subtitle: card.subtitle,\n })),\n ctaLabel: data.threecards__cta_label,\n ctaUrl: data.threecards__cta_url,\n noWrap: data.threecards__wrap_cards === 'No',\n alignTextLeft: data.threecards__align_text_left === 'true',\n }\n}\n","import {\n LatestNews,\n LatestNewsProps\n} from 'common/components/organisms/LatestNews'\nimport { getArticleData } from 'common/utils/getArticleData'\nimport React from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface CardsCarouselProps extends LatestNewsProps {}\n\nexport const CardsCarousel: React.FC = props => {\n const context = getCardsCarouselData(props)\n return \n}\n\nconst getCardsCarouselData = (data: any): CardsCarouselProps => {\n return {\n label: data.cardscarousel__label,\n list: data.blogpostselector__blog_posts.map(getArticleData)\n }\n}\n","import { Box, useMediaQuery } from '@chakra-ui/react'\nimport React, { FC } from 'react'\n\ninterface CenteredTextProps {\n text: string\n background: string\n}\n\nexport const CenteredText: FC = (props) => {\n const { text, background } = props\n const [isMobile] = useMediaQuery('(max-width: 720px)')\n\n return (\n \n \n {text}\n \n \n )\n}\n","import React, { FC } from 'react'\nimport { CenteredText } from 'common/components/organisms/CenteredText/index'\n\nconst CareerCenteredTextWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getCareersCenteredTextData(props)\n\n return \n}\nexport { CareerCenteredTextWrapper as CenteredText }\nexport const getCareersCenteredTextData = (data: any) => {\n return {\n text: data.centered_text,\n background: data.untitled_multiple_choice || 'Light',\n }\n}\n","import React from 'react'\nimport { Box, Flex, Text } from '@chakra-ui/react'\n\ninterface CardComponentProps {\n text: string\n title: string\n counter: number\n}\n\nconst Card: React.FC = ({ text, title, counter }) => {\n return (\n \n \n \n {counter}\n \n \n \n {title}\n \n \n {text}\n \n \n )\n}\n\nexport default Card\n","import { IconButton } from '@irishlife/ilgroupdesignsystem.atoms.icon-button'\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n} from '@irishlife/ilgroupdesignsystem.icons'\nimport { Box, Progress as LinearProgress, HStack } from '@chakra-ui/react'\nimport React, { useState, useEffect, useMemo } from 'react'\n\ninterface PaginationProps {\n items: any\n itemsPerPage?: number\n showControls?: boolean\n callBack: (object: any) => void\n}\nexport const Pagination: React.FC = ({\n items,\n itemsPerPage = 4,\n showControls = true,\n callBack,\n}) => {\n const [currentPage, setCurrentPage] = useState(1)\n const totalPages = Math.ceil(items.length / itemsPerPage)\n const startIndex = (currentPage - 1) * itemsPerPage\n const endIndex = startIndex + itemsPerPage\n const visibleItems = items.slice(startIndex, endIndex)\n const progressBarValue = useMemo(() => {\n const progressValue = (currentPage / totalPages) * 100\n if (progressValue === Infinity) {\n return 100\n }\n return progressValue\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentPage, totalPages, items])\n\n useEffect(() => {\n callBack({ visibleItems, currentPage })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentPage, items, itemsPerPage])\n\n const handleNextPage = () => {\n if (currentPage < totalPages) {\n setCurrentPage((prev) => prev + 1)\n }\n }\n\n const handlePrevPage = () => {\n if (currentPage > 1) {\n setCurrentPage((prev) => prev - 1)\n }\n }\n return (\n <>\n {showControls &&\n \n \n div': {\n backgroundColor: '#717FE2',\n },\n }}\n />\n \n \n \n }\n size='sm'\n mr='32px'\n isDisabled={currentPage === 1}\n onClick={handlePrevPage}\n />\n }\n size='sm'\n ml='32px'\n isDisabled={currentPage === totalPages || totalPages === 0}\n onClick={handleNextPage}\n />\n \n \n }\n \n )\n}\n","import React, { useState } from 'react'\nimport { Box, Text, SimpleGrid, VStack } from '@chakra-ui/react'\nimport Card from './Card'\nimport { Pagination } from '../../molecules/Pagination/index'\n\ninterface CountingCardsWithPaginationProps {\n title: string\n items: { title: string; text: string }[]\n}\n\nexport const CountingCardsWithPagination: React.FC =\n ({ title, items }) => {\n const [visibleItems, setVisibleItems] = useState([])\n const [currentPage, setCurrentPage] = useState(1)\n const itemsPerPage = 3\n\n const handlePagination = (paginationData: any) => {\n setVisibleItems(paginationData.visibleItems)\n setCurrentPage(paginationData.currentPage)\n }\n\n const calculateCounter = (index: number) => {\n return (currentPage - 1) * itemsPerPage + index + 1\n }\n\n return (\n \n \n {title}\n \n\n \n {visibleItems.map((item: any, index) => (\n \n ))}\n \n\n \n \n \n \n )\n }\n","import { CountingCardsWithPagination } from 'common/components/organisms/CountingCardsWithPagination/index'\nimport React, { FC } from 'react'\n\nconst CountingCardsWithPaginationWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\n\nexport { CountingCardsWithPaginationWrapper as CountingCardsWithPagination }\n\nconst getProps = (props: any) => {\n return {\n title: props.title,\n items:\n props?.mini_cards.map((item: any) => {\n return {\n title: item.title,\n text: item.subtitle,\n }\n }) || [],\n }\n}\n","import { Box } from '@material-ui/core'\nimport { Text } from 'common/components/molecules/Text'\nimport React from 'react'\nimport {\n JumbotronCallToAction,\n JumbotronCallToActionProps\n} from '../../Jumbotron/JumbotronCallToAction'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface CtaProps extends JumbotronCallToActionProps {\n title?: string\n subtitle?: string\n}\n\nexport const Cta: React.FC = props => {\n const { title, subtitle, ...rest } = getCtaData(props)\n return (\n \n {title && }\n {subtitle && (\n \n )}\n {(title || subtitle) && }\n \n \n \n \n )\n}\n\nconst getCtaData = (data: any): CtaProps => {\n return {\n title: data.title,\n subtitle: data.subtitle,\n analyticsId: data.call_to_action__analytics_id,\n label: data.call_to_action__label,\n [`${data.call_to_action__iconlocation}Icon`]: data.call_to_action__icon,\n text: data.call_to_action__text,\n url: data.call_to_action__url,\n variant: data.call_to_action__variant\n }\n}\n","import {\n Box,\n SimpleGrid,\n VStack,\n Grid,\n GridItem,\n HStack,\n} from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport {\n DocumentDownloadIcon,\n DownloadIcon,\n} from '@irishlife/ilgroupdesignsystem.icons'\nimport { Link } from 'common/components/atoms/Link'\nimport React from 'react'\n\ninterface DocumentDownloadPanelProps {\n title: string\n cards: { title: string; fileSize: string; downloadPath: string }[]\n}\n\nconst DocumentDownloadPanel: React.FC = (props) => {\n const { title, cards } = props\n\n return (\n \n \n \n \n {title}\n \n \n\n \n {cards?.map((item: any, index: number) => (\n \n \n \n \n \n \n \n \n \n \n \n {item.title}\n \n \n \n \n {item.fileSize} file size\n \n \n \n \n \n \n {\n //open link in new tab\n window.open(\n item.downloadPath,\n '_blank'\n )\n }}\n >\n \n \n \n \n \n \n ))}\n \n \n \n )\n}\n\nexport default DocumentDownloadPanel\n","import React, { FC } from 'react'\nimport DocumentDownloadPanel from 'common/components/organisms/DocumentDownloadPanel/DocumentDownloadPanel'\n\nconst DocumentDownloadPanelWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { DocumentDownloadPanelWrapper as DocumentDownloadPanel }\nconst getProps = (data: any) => {\n return {\n title: data.title,\n cards: data?.documents?.map((item: any) => {\n return {\n title: item.title,\n fileSize: '1.2MB',\n downloadPath: item.file,\n }\n }),\n }\n}\n","import { Box, Grid, Hidden } from '@material-ui/core'\nimport { CardCtaContained } from 'common/components/molecules/CardCta'\nimport { Text } from 'common/components/molecules/Text'\nimport { Wrapper } from 'common/components/molecules/Wrapper'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport { useDpr } from 'common/hooks/useDpr'\nimport React from 'react'\nimport { JumbotronCallToActionProps } from '../Jumbotron/JumbotronCallToAction'\n\nexport interface CampaignFeatureProps {\n callToAction: JumbotronCallToActionProps\n image: string\n text: string\n title: string\n variant?: 'default' | 'flat'\n}\n\nexport const CampaignFeature: React.FC = ({\n title,\n text,\n image,\n callToAction,\n variant = 'default'\n}) => {\n const desktop = useDesktop()\n const dpr = useDpr()\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n {callToAction.label && (\n \n )}\n \n \n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\nimport { CampaignFeature, CampaignFeatureProps } from '../../CampaignFeature'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface FeaturedProps extends CampaignFeatureProps {}\n\nexport const Featured: React.FC = props => {\n const desktop = useDesktop()\n return (\n \n \n \n )\n}\n\nconst getFeaturedData = (data: any): FeaturedProps => {\n return {\n title: data.title,\n text: data.text,\n image: data.image,\n callToAction: {\n analyticsId: data.call_to_action__analytics_id,\n label: data.call_to_action__label,\n [`${data.call_to_action__iconlocation}Icon`]: data.call_to_action__icon,\n text: data.call_to_action__text,\n title: data.call_to_action__title,\n url: data.call_to_action__url,\n variant: data.call_to_action__variant\n }\n }\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\n\nexport interface IframeProps {\n src?: string\n width?: string\n height?: number\n mobileHeight?: number\n title: string\n scrolling: string\n heading?: string\n text?: string\n}\n\nconst fullWidthWrapperStyles = {\n marginLeft: '-50vw',\n marginRight: '-50vw',\n width: '100vw',\n position: 'relative',\n left: '50%',\n right: '50%',\n display: 'flex',\n justifyContent: 'center'\n}\n\nexport const Iframe: React.FC = props => {\n const attributes = getIframeData(props)\n const desktop = useDesktop()\n\n const [expanded, setExpanded] = React.useState(false)\n // 0, 480, 768, 992, 1280, 1536\n const heights = {\n collapsed: [2450, 2300, 2050, 2000, 1900],\n expanded: [4550, 3700, 3200, 3100, 2900]\n }\n\n const handleIframeMessage = (event: any) => {\n if (\n JSON.stringify(event.data) === 'true' ||\n JSON.stringify(event.data) === 'false'\n ) {\n setExpanded(event.data)\n }\n }\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return\n window.addEventListener('message', handleIframeMessage)\n return () => {\n if (typeof window === 'undefined') return\n window.removeEventListener('message', handleIframeMessage)\n }\n }, [])\n\n return (\n <>\n {attributes.heading && (\n \n {attributes.heading}\n \n )}\n {attributes.text && (\n \n {attributes.text}\n \n )}\n \n \n \n \n )\n}\n\nconst getIframeData = (data: any): IframeProps => {\n return {\n src: data.iframe__src,\n title: data.iframe__title,\n width: data.iframe__width,\n height: data.iframe__height,\n mobileHeight: data.iframe__mobile_height,\n scrolling: data.iframe__scrolling,\n heading: data.iframe__heading,\n text: data.iframe__text\n }\n}\n","import { Box, Image, SimpleGrid } from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { navigate } from '@reach/router'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\n\ninterface ImageWithParagraphProps {\n image: string\n title: string\n callToAction?: any\n}\n\nexport const ImageWithParagraph: React.FC = (\n props\n) => {\n const { image, title, callToAction } = props\n\n const isMobile = !useDesktop()\n return (\n \n \n \n \n \n {title}\n \n \n navigate(callToAction.url)}\n {...callToAction}\n mt='32px'\n >\n {callToAction.label}\n \n \n \n \n \n )\n}\n","import { ImageWithParagraph } from 'common/components/organisms/ImageWithParagraph/index'\nimport React from 'react'\n\nconst ImageWithParagraphWrapper: React.FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { ImageWithParagraphWrapper as ImageWithParagraph }\nconst getProps = (data: any) => ({\n image: data.image,\n title: data.text,\n callToAction: {\n analyticsId: data.button_c9ad60e__analytics_id || '',\n label: data.card_cta_0396ba7__cta_label,\n url: data.card_cta_0396ba7__cta_url,\n endIcon: data.card_cta_0396ba7__cta_icon,\n variant: data.card_cta_0396ba7__cta_variant,\n },\n})\n","import { Box } from '@chakra-ui/react'\nimport { InvestmentCalculator } from '@irishlifedigitalhub/ds.organisms.investment-calculator'\nimport { navigate } from '@reach/router'\nimport React from 'react'\nimport TagManager from 'react-gtm-module'\n\nexport const InvestmentCalculatorSection: React.FC = props => {\n const ctaConfig = getCtaConfig(props)\n\n return (\n \n {\n TagManager.dataLayer({\n dataLayer: {\n event: 'secondaryButtonClick',\n clickURL: ctaConfig.bookingUrl,\n clickID: ctaConfig.bookingAnalyticsId\n }\n })\n if(ctaConfig.bookingUrl.charAt(0) === '#') {\n let element = document.getElementById(ctaConfig.bookingUrl.slice(1, ctaConfig.bookingUrl.length))\n element?.scrollIntoView({ behavior: \"smooth\"})\n } else {\n navigate(ctaConfig.bookingUrl)\n }\n }} onCalculate={() => {\n TagManager.dataLayer({\n dataLayer: {\n event: 'secondaryButtonClick',\n clickID: ctaConfig.calculateAnalyticsId\n }\n })\n }} />\n \n )\n}\n\nconst getCtaConfig = (data: any) => {\n return {\n bookingUrl: data.url,\n bookingAnalyticsId: data.booking_cta_analytics_id,\n calculateAnalyticsId: data.calculate_cta_analytics_id\n }\n}\n\n","import { Box, Image, VStack } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport React from 'react'\ninterface MediaCardProps {\n title?: string\n image?: string\n}\n\nexport const MediaCard: React.FC = ({ title, image }) => {\n return (\n \n \n \n {title}\n \n \n \n \n \n \n )\n}\n","import { MediaCard } from 'common/components/organisms/MediaCard/index'\nimport React, { FC } from 'react'\n\nconst MediaCardWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { MediaCardWrapper as MediaCard }\nconst getProps = (props: any) => {\n const { title, image } = props\n\n return {\n title,\n image,\n }\n}\n","import _slicedToArray from \"/home/vsts/work/1/s/packages/website/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport React from 'react';\nimport { useMediaQuery, SimpleGrid } from '@chakra-ui/react';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\n\nfunction Grid(props) {\n var title = props.title,\n children = props.children;\n\n var _useMediaQuery = useMediaQuery('(max-width: 960px)'),\n _useMediaQuery2 = _slicedToArray(_useMediaQuery, 1),\n isMobile = _useMediaQuery2[0];\n\n return /*#__PURE__*/React.createElement(\"section\", null, title && /*#__PURE__*/React.createElement(Text, {\n variant: isMobile ? 'title-sm' : 'title-lg',\n paddingBottom: isMobile ? '16px' : '24px'\n }, title), /*#__PURE__*/React.createElement(SimpleGrid, {\n columns: [2, 2, 3, 3],\n spacingY: ['16px', '16px', '24px', '24px'],\n spacingX: ['8px', '8px', '24px', '24px']\n }, children));\n}\n\nexport { Grid };","import { Link } from '@reach/router'\nimport React, { PropsWithChildren } from 'react'\nexport interface UniversalLinkProps extends PropsWithChildren<{}> {\n to: string\n}\n\nexport const UniversalLink: React.FC = ({\n to,\n children,\n ...props\n}) => {\n // Check if the URL is external\n const isExternal = (url: string) => {\n return /^(https?:|mailto:|tel:)/.test(url)\n }\n\n if (isExternal(to)) {\n return (\n \n {children}\n \n )\n } else {\n return (\n \n {children}\n \n )\n }\n}\n","import { Box } from '@chakra-ui/react'\nimport {\n MenuCard,\n MenuCardProps,\n} from '@irishlifedigitalhub/ds.molecules.menu-card'\nimport { Grid, GridProps } from '@irishlifedigitalhub/ds.organisms.grid'\nimport { UniversalLink } from 'common/components/atoms/UniversalLink'\nimport React from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface MenuCardGridProps extends GridProps {}\n\nexport const MenuCardGrid: React.FC = (props: any) => {\n return (\n \n \n \n )\n}\n\nexport const getMenuCardGridProps = (props: any): GridProps => {\n return {\n title: props.title,\n children: [<>{getMenuCards(props.menucard)}],\n }\n}\n\nexport const getMenuCards = (menuCards: any[]): MenuCardProps[] => {\n return (menuCards || []).map((menuCard) => {\n return (\n \n ) as MenuCardProps\n })\n}\n\nexport const getMenuCardsProps = (menuCard: any): MenuCardProps => {\n return {\n buttonText: menuCard.menu_card__cta?.[0]?.call_to_action__label,\n icon: menuCard.menu_card__icon,\n largeTitle: menuCard.menu_card__maintitle,\n linkComponent: UniversalLink,\n src: menuCard.menu_card__image,\n subtitle: menuCard.menu_card__subtitle,\n title: menuCard.menu_card__title,\n url: menuCard.menu_card__cta?.[0]?.call_to_action__url,\n }\n}\n","import React from 'react'\nimport { Box } from '@chakra-ui/react'\nimport { InsuranceIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles'\nimport { isDesktop } from 'react-device-detect'\nexport interface MetamoCardProps {\n item: ItemProps\n onClick: (value: ItemProps) => void\n}\nexport interface ItemProps {\n branchName: string\n branchId: string\n icon?: string\n}\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n selectedCard: {\n color: '#9CA5EB',\n '&:focus': {\n borderBottom:\n '6px solid var(--highlight-pacific-blue, #039FBF)',\n color: '#039FBF !important',\n },\n },\n })\n)\nexport const MetamoCard: React.FC = ({ item, onClick }) => {\n const classes = useStyles()\n const desktop = isDesktop\n return (\n onClick(item)}\n w={\n desktop\n ? ['112px', '124px', '178px', '182px', '222px']\n : '222px'\n }\n alignItems={'center'}\n maxHeight={'100%'}\n display='flex'\n bg={'#fff'}\n flexDirection='column'\n borderWidth='1px'\n borderRadius='lg'\n p={'24px 6px'}\n boxShadow={'0px 0px 20px 0px rgba(82, 97, 172, 0.24)'}\n className={classes.selectedCard}\n >\n {item?.icon && (\n \n )}\n {!item?.icon && (\n \n )}\n \n {item?.branchName}\n \n \n )\n}\n","import { RouteComponentProps } from '@reach/router'\nimport React, { useState } from 'react'\nimport { Grid, GridItem, Box } from '@chakra-ui/react'\nimport { MetamoCard, ItemProps } from 'common/components/molecules/MetamoCard'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { AdvisorBooking } from 'common/components/organisms/AdvisorBooking'\nimport { isDesktop } from 'react-device-detect'\nimport { PreScreen } from 'common/components/organisms/AdvisorBooking/utils/interface'\nexport interface Metamo extends RouteComponentProps {\n branchList: any\n}\n\nexport const Metamo: React.FC = (props) => {\n const branchList = getBranchList(props)\n const isAdvisorView = props.isadvisorview === 'yes' ? true : false\n const [selectedBranch, setSelectedBranch] = useState(\n branchList[0]\n )\n const desktop = isDesktop\n const [showAdvisorbooking, setShowAdvisorbooking] = useState(false)\n const handleClick = (value: ItemProps) => {\n setSelectedBranch(value)\n setShowAdvisorbooking(true)\n }\n return (\n \n \n \n Choose your branch\n \n \n {branchList.map((item: ItemProps) => (\n \n \n \n ))}\n \n \n {showAdvisorbooking && (\n \n \n Select an option that suits you\n \n \n \n )}\n \n )\n}\n\nconst getPreScreen = (\n isAdvisorView: boolean,\n selectedBranch: ItemProps\n): PreScreen => {\n return {\n metamoVariant: true,\n isAdvisorView: isAdvisorView,\n sourceBranchName: selectedBranch.branchName.replace(/ /g, ''),\n }\n}\nconst getBranchList = (data: any): ItemProps[] => {\n const branchList = data?.metamo_branch_list?.map((item: any) => ({\n branchName: item.branch_name,\n branchId: item.branch_id,\n icon: item.icon,\n }))\n return branchList\n}\n","import { Box, HStack, SimpleGrid } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { Input } from '@irishlife/ilgroupdesignsystem.molecules.input'\nimport { Link } from 'common/components/atoms/Link'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\n\ninterface MiniFooterProps {\n loginLink?: string\n}\n\nexport const MiniFooter: React.FC = (props) => {\n const { loginLink = '/' } = props\n\n const isMobile = !useDesktop()\n\n return (\n \n \n \n Keep in touch and stay informed about new job opportunities\n that match your interests.\n \n \n \n Create your profile\n \n\n \n \n \n \n Already registered? Log in\n \n \n \n \n \n \n )\n}\n","import React, { FC } from 'react'\nimport { MiniFooter } from 'common/components/organisms/MiniFooter/index'\n\nconst MiniFooterWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { MiniFooterWrapper as MiniFooter }\nconst getProps = (props: any) => {\n return {\n loginLink: props.login_link,\n }\n}\n","import { Box, HStack, Image, Stack } from '@chakra-ui/react'\nimport { Button, ButtonProps } from '@irishlifedigitalhub/ds.atoms.button'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { Link } from 'common/components/atoms/Link'\nimport { Wrapper } from 'common/components/molecules/Wrapper'\nimport React, { useState } from 'react'\nimport { Stepper } from '../../molecules/StepperWithArrows/index'\n\nexport type Card = {\n caption?: string\n title?: string\n jobTitle?: string\n department?: string\n subtitle?: string\n subtitle2?: string\n paragraph?: string\n buttonText?: string\n callToAction?: any\n secondaryButtonText?: string\n secondaryButtonProps?: ButtonProps\n imageLeft?: boolean\n children?: React.ReactNode\n imageSrc?: string\n}\n\nexport type MultiCampaignFeatureProps = {\n title: string\n cards: Card[]\n}\n\nexport const MultiCampaignFeature = (props: MultiCampaignFeatureProps) => {\n const { title, cards } = props\n const [index, setIndex] = useState(0)\n\n const card: Card = cards[index]\n\n return (\n \n \n \n \n {card?.imageSrc && (\n \n \n \n )}\n \n \n \n {card?.imageLeft && (\n \n \n setIndex(number - 1)\n }\n />\n \n )}\n \n {title}\n \n \n \n {card.title}\n \n \n {card.subtitle2}\n \n \n \n {card?.subtitle}\n \n \n {card?.paragraph}\n \n \n {card?.children}\n \n \n \n \n \n \n \n \n {card?.secondaryButtonText}\n \n \n {!card?.imageLeft && (\n \n {\n setIndex(number - 1)\n }}\n />\n \n )}\n \n \n \n \n \n )\n}\n\nfunction Container(props: Record) {\n return (\n \n )\n}\n","import React, { FC } from 'react'\nimport { MultiCampaignFeature } from 'common/components/organisms/MultiCampaignFeature/index'\n\nconst MultiCampaignFeatureWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n return \n}\nexport { MultiCampaignFeatureWrapper as MultiCampaignFeature }\n\nconst getProps = (props: any) => {\n const { title, items, image_left } = props\n \n return {\n title,\n cards: items.map((item: any) => ({\n title: item.title,\n subtitle: item.subtitle,\n subtitle2: item.subtitle2,\n paragraph: item.description_b57cf5a || item.description,\n imageSrc: item.file,\n imageLeft: image_left,\n callToAction: {\n label: item.button_c9ad60e__text,\n url: item.button_c9ad60e__url,\n variant: item.card_cta_0396ba7__cta_variant,\n },\n })),\n }\n}\n","import { Box, Image, SimpleGrid, useMediaQuery, VStack } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React, { useEffect, useState } from 'react'\nimport { Stepper } from '../../molecules/StepperWithArrows/index'\ninterface CardData {\n icon: string\n text?: string\n image?: string\n imageTitle?: string\n imageText?: string\n title: string\n}\n\ninterface MultiCardGalleryWithStepperProps {\n title: string\n cards: CardData[]\n}\n\nexport const MultiCardGalleryWithStepper: React.FC =\n (props) => {\n const { title, cards } = props\n\n const [selectedCardIndex, setSelectedCardIndex] = useState(0) // State to track selected card index\n const [currentPage, setCurrentPage] = useState(\n Math.floor(selectedCardIndex) / 3 + 1\n )\n const [visibleItems, setVisibleItems] = useState()\n\n const handleCardClick = (idx: number) => {\n const index = (currentPage - 1) * 3 + idx\n setSelectedCardIndex(index) // Update selected card index on click\n }\n\n const cardStyle = (index: number) => ({\n borderBottom:\n index === selectedCardIndex\n ? ' 6px solid #039FBF'\n : '2px solid transparent',\n })\n\n const [isMobile] = useMediaQuery('(max-width: 720px)')\n\n useEffect(() => {\n const startIndex = (currentPage - 1) * 3\n const endIndex = startIndex + 3\n setVisibleItems(cards.slice(startIndex, endIndex))\n }, [currentPage, cards])\n\n useEffect(() => {\n setCurrentPage(Math.floor(selectedCardIndex / 3) + 1)\n }, [selectedCardIndex])\n\n const currentCard = cards[selectedCardIndex]\n return (\n \n \n \n {title}\n \n \n\n {!isMobile ? (\n \n \n {visibleItems?.map((card, index) => (\n handleCardClick(index)}\n >\n \n \n \n \n {card.title}\n \n \n \n \n ))}\n \n \n ) : (\n \n \n \n \n \n \n {currentCard.title}\n \n \n \n \n \n )}\n\n \n \n \n \n \n \n \n \n \n setSelectedCardIndex(number - 1)\n }\n />\n \n \n \n {currentCard.title}\n \n \n \n {currentCard.text}\n \n \n \n \n \n \n \n \n )\n }\n","import { MultiCardGalleryWithStepper } from 'common/components/organisms/MultiCardGalleryWithStepper/index'\nimport React, { FC } from 'react'\n\nconst MultiCardGalleryWithStepperWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { MultiCardGalleryWithStepperWrapper as MultiCardGalleryWithStepper }\n\nconst getProps = (data: any) => {\n return {\n title: data.title,\n cards: data.career_card_with_pagination.map((item: any) => {\n return {\n icon: item.icon,\n text: item.text,\n title: item.title,\n image: item.card_cta_0396ba7__cta_icon,\n }\n }),\n }\n}\n","import { Box, SimpleGrid, VStack } from '@chakra-ui/react'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport React, { useState } from 'react'\n\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport { Pagination } from '../../molecules/Pagination/index'\nimport { FeatureList, FeatureListProps } from '../FeatureList'\n\ninterface MultiFeatureListProps {\n title: string\n caption: string\n items: FeatureListProps[]\n}\n\nexport const MultiFeatureList: React.FC = ({\n title,\n caption,\n items,\n}) => {\n const [selectedCardIndex, setSelectedCardIndex] = useState(0)\n const [visibleItems, setVisibleItems] = useState<{ title: string }[]>([])\n const [currentPage, setCurrentPage] = useState(1)\n const isMobile = !useDesktop()\n\n const cardStyle = (index: number) => ({\n borderBottom:\n index === selectedCardIndex\n ? ' 6px solid #039FBF'\n : '2px solid transparent',\n })\n\n const handlePagination = (paginationItems: any) => {\n setVisibleItems(paginationItems.visibleItems)\n setCurrentPage(paginationItems.currentPage)\n }\n\n return (\n \n \n \n \n \n {title}\n \n \n \n \n {caption}\n \n \n \n \n\n \n {visibleItems?.map((item, index) => (\n \n setSelectedCardIndex(\n (currentPage - 1) * (isMobile ? 1 : 4) + index\n )\n }\n display='flex'\n alignItems='center'\n justifyContent='center'\n cursor={'pointer'}\n >\n \n \n {item.title}\n \n \n \n ))}\n \n\n \n \n \n\n \n \n \n \n )\n}\n","import { MultiFeatureList } from 'common/components/organisms/MultiFeatureList/index'\nimport React, { FC } from 'react'\n\nconst MultiFeatureListWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { MultiFeatureListWrapper as MultiFeatureList }\nconst getProps = (data: any) => {\n return {\n title: data.title,\n caption: data.caption,\n items: data.textwithimages.map((item: any) => {\n return {\n featureTitle: item.featurelist__bullets_title,\n featureSubtitle: item.featurelist__bullets_subtitle,\n features: item.featurelist__features,\n image: item.featurelist__image,\n subtitle: item.featurelist__subtitle,\n title: item.featurelist__title,\n variant: item.featurelist__variant,\n cta: item.featurelist__cta,\n secondaryTitle: item.secondary_title,\n callToAction: {\n analyticsId: item.featurelist__cta_analyticsid,\n label: item.featurelist__cta_label,\n [`${item.call_to_action__iconlocation}Icon`]:\n item.featurelist__cta_icon,\n url: item.featurelist__cta_url,\n variant: item.featurelist__cta_variant,\n noSpacer: true,\n },\n }\n }),\n }\n}\n","// write a bolier plate for a functional component\nimport React, { FC, useState } from 'react'\nimport { Box, SimpleGrid } from '@chakra-ui/react'\nimport { Pagination } from '../Pagination'\nimport { Card } from '../Card'\n\ninterface PaginatedCardsProps {\n icon: string\n description: string\n}\n\nexport const PaginatedCards: FC<{ cards: PaginatedCardsProps[] }> = ({\n cards,\n}) => {\n const [visibleItems, setVisibleItems] = useState([])\n\n const handlePagination = (array: any) => {\n setVisibleItems(array.visibleItems)\n }\n\n return (\n <>\n \n {visibleItems.map((card, idx) => (\n \n \n \n ))}\n \n \n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport React from 'react'\nimport { PaginatedCards } from '../../molecules/PaginatedCards/index'\n\ninterface Card {\n icon: string\n description: string\n}\n\ninterface ItemsProps {\n cardTitle?: string\n cards: Card[]\n}\n\ninterface MultiPaginatedCardsProps {\n title: string\n subTitle: string\n items: ItemsProps[]\n secondSubtitle?: string\n secondTitle?: string\n}\n\nexport const MultiPaginatedCards: React.FC = (\n props\n) => {\n const { title, subTitle, items, secondSubtitle, secondTitle } = props\n\n return (\n \n \n {title}\n \n \n {subTitle}\n \n \n {items?.map((item: ItemsProps, index) => (\n \n \n {item.cardTitle}\n \n \n \n \n \n ))}\n \n\n \n {secondSubtitle}\n \n \n {secondTitle}\n \n \n )\n}\n","import { MultiPaginatedCards } from 'common/components/organisms/MultiPaginatedCards/index'\nimport React, { FC } from 'react'\n\nconst MultiPaginatedCardsWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { MultiPaginatedCardsWrapper as MultiPaginatedCards }\nexport const getProps = (data: any) => {\n return {\n title: data.title,\n subTitle: data.subtitle,\n items: data.untitled_linked_items.map((item: any) => ({\n cardTitle: item.title,\n cards: item.cards.map((card: any) => ({\n icon: card.icon,\n description: card.title,\n })),\n })),\n secondTitle: data.secondtitle,\n secondSubtitle: data.secondsubtitle,\n }\n}\n","import { Box, Container } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport {\n Notice,\n NoticeCompact,\n NoticeProps,\n} from 'common/components/organisms/Notice'\nimport React from 'react'\n\nexport interface NoticesProps {\n notices: NoticeProps[]\n variant?: 'default' | 'compact'\n displaytitle?: 'true' | 'false'\n}\n\nexport const Notices: React.FC = (props) => {\n const notices = getNotices(props)\n const variant = props.variant\n const displayTitle = props.displaytitle\n if (variant === 'compact') {\n return (\n <>\n {displayTitle === 'true' && (\n Notices\n )}\n {notices?.length > 0 && (\n \n {notices?.map((notice, index) => (\n \n ))}\n \n )}\n \n )\n }\n return (\n <>\n {notices?.length > 0 && (\n \n \n {notices?.map((notice, index) => (\n \n ))}\n \n \n )}\n \n )\n}\n\nconst getNotices = (data: any): NoticeProps[] => {\n const notices = (data.notices || []).map((notice: any) => ({\n title: notice.title,\n text: notice.text,\n subTitle: notice.subTitle ? notice.subTitle : notice.subtitle,\n variant: notice.variant,\n noticeVariant: data.variant,\n callToAction: {\n label: notice.call_to_action__label,\n [`${notice.call_to_action__iconlocation}Icon`]:\n notice.call_to_action__icon,\n text: notice.call_to_action__text,\n title: notice.call_to_action__title,\n url: notice.call_to_action__url,\n variant: notice.call_to_action__variant,\n },\n }))\n return notices\n}\n","import 'core-js/modules/es.object.assign.js';\nimport { createIcon, Box, Center, Text } from '@chakra-ui/react';\nimport React from 'react';\nvar dict = {\n health: {\n inforce: {\n color: 'pillar.health',\n rgba: 'rgba(3, 159, 191, 0.1)'\n },\n lapsed: {\n color: 'pillar.lapsed',\n rgba: 'rgba(238, 135, 14, 0.1)'\n },\n surrendered: {\n color: 'pillar.surrendered',\n rgba: 'rgba(157, 152, 176, 0.1)'\n }\n },\n life: {\n inforce: {\n color: 'pillar.life',\n rgba: 'rgba(33, 150, 243, 0.1)'\n },\n lapsed: {\n color: 'pillar.lapsed',\n rgba: 'rgba(238, 135, 14, 0.1)'\n },\n surrendered: {\n color: 'pillar.surrendered',\n rgba: 'rgba(157, 152, 176, 0.1)'\n }\n },\n pensions: {\n inforce: {\n color: 'pillar.pensions',\n rgba: 'rgba(113, 127, 226, 0.1)'\n },\n lapsed: {\n color: 'pillar.lapsed',\n rgba: 'rgba(238, 135, 14, 0.1)'\n },\n surrendered: {\n color: 'pillar.surrendered',\n rgba: 'rgba(157, 152, 176, 0.1)'\n }\n },\n investments: {\n inforce: {\n color: 'pillar.investments',\n rgba: 'rgba(157, 71, 184, 0.1)'\n },\n lapsed: {\n color: 'pillar.lapsed',\n rgba: 'rgba(238, 135, 14, 0.1)'\n },\n surrendered: {\n color: 'pillar.surrendered',\n rgba: 'rgba(157, 152, 176, 0.1)'\n }\n },\n smartinvest: {\n inforce: {\n color: 'pillar.investments',\n rgba: 'rgba(157, 71, 184, 0.1)'\n },\n lapsed: {\n color: 'pillar.lapsed',\n rgba: 'rgba(238, 135, 14, 0.1)'\n },\n surrendered: {\n color: 'pillar.surrendered',\n rgba: 'rgba(157, 152, 176, 0.1)'\n }\n },\n financialplan: {\n inforce: {\n color: 'pillar.life',\n rgba: 'rgba(33, 150, 243, 0.1)'\n },\n lapsed: {\n color: 'pillar.lapsed',\n rgba: 'rgba(238, 135, 14, 0.1)'\n },\n surrendered: {\n color: 'pillar.surrendered',\n rgba: 'rgba(157, 152, 176, 0.1)'\n }\n },\n wellbeing: {\n inforce: {\n color: 'pillar.wellbeing',\n rgba: 'rgba(150, 201, 25, 1)'\n },\n lapsed: {\n color: 'pillar.lapsed',\n rgba: 'rgba(150, 201, 25, 1)'\n },\n surrendered: {\n color: 'pillar.surrendered',\n rgba: 'rgba(150, 201, 25, 1)'\n }\n }\n};\nvar fontSizes = {\n sm: 32,\n md: 64,\n xsm: 28,\n xxsm: 22,\n msm: 52\n};\n\nfunction PillarIcon(props) {\n var _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'health' : _props$variant,\n _props$size = props.size,\n size = _props$size === void 0 ? 'md' : _props$size,\n _props$isDisabled = props.isDisabled,\n isDisabled = _props$isDisabled === void 0 ? false : _props$isDisabled,\n _props$planStatus = props.planStatus,\n planStatus = _props$planStatus === void 0 ? 'inforce' : _props$planStatus;\n var pillarIcon = React.useMemo(function () {\n var color = isDisabled ? 'vibrant.300' : variant === 'proposal' ? 'pillar.proposal' : dict[variant][planStatus].color;\n return function () {\n return {\n health: /*#__PURE__*/React.createElement(HealthIcon, {\n color: color,\n fontSize: fontSizes[size]\n }),\n life: /*#__PURE__*/React.createElement(LifeIcon, {\n color: color,\n fontSize: fontSizes[size]\n }),\n pensions: /*#__PURE__*/React.createElement(PensionsIcon, {\n color: color,\n fontSize: fontSizes[size]\n }),\n investments: /*#__PURE__*/React.createElement(InvestmentsIcon, {\n color: color,\n fontSize: fontSizes[size]\n }),\n smartinvest: /*#__PURE__*/React.createElement(InvestmentsIcon, {\n color: color,\n fontSize: fontSizes[size]\n }),\n financialplan: /*#__PURE__*/React.createElement(FinancialPlan, {\n color: color,\n fontSize: fontSizes[size]\n }),\n wellbeing: /*#__PURE__*/React.createElement(WellbeingIcon, {\n color: color,\n fontSize: fontSizes[size]\n }),\n proposal: /*#__PURE__*/React.createElement(ProposalIcon, {\n color: color,\n fontSize: fontSizes[size]\n })\n };\n }()[variant];\n }, [variant, size, isDisabled, planStatus]);\n return /*#__PURE__*/React.createElement(Wrapper, Object.assign({}, props), pillarIcon);\n}\n\nfunction Wrapper(props) {\n if (props.filled) return /*#__PURE__*/React.createElement(Circle, Object.assign({}, props));\n return /*#__PURE__*/React.createElement(Box, {\n \"data-testid\": 'PillarIcon'\n }, props.children);\n}\n\nfunction Circle(props) {\n var children = props.children,\n _props$variant2 = props.variant,\n variant = _props$variant2 === void 0 ? 'health' : _props$variant2,\n count = props.count,\n _props$size2 = props.size,\n size = _props$size2 === void 0 ? 'md' : _props$size2,\n _props$isDisabled2 = props.isDisabled,\n isDisabled = _props$isDisabled2 === void 0 ? false : _props$isDisabled2,\n _props$planStatus2 = props.planStatus,\n planStatus = _props$planStatus2 === void 0 ? 'inforce' : _props$planStatus2;\n var showCount = typeof count === 'number' && size === 'md' && !isDisabled;\n var rgba = isDisabled ? 'rgba(156, 165, 235, 0.1)' : dict[variant][planStatus].rgba; //styles[variant].rgba\n\n return /*#__PURE__*/React.createElement(Box, {\n \"data-testid\": 'PillarIcon'\n }, /*#__PURE__*/React.createElement(Center, {\n w: size === 'sm' ? '56px !important' : size === 'xsm' ? '42px' : size === 'xxsm' ? '36px' : '112px',\n h: size === 'sm' ? '56px !important' : size === 'xsm' ? '42px' : size === 'xxsm' ? '36px' : '112px',\n borderWidth: size === 'sm' ? '2px' : size === 'xsm' ? '1.5px' : size === 'xxsm' ? '1.5px' : '3px',\n borderColor: rgba,\n rounded: 'full',\n position: 'relative',\n bgColor: 'white'\n }, /*#__PURE__*/React.createElement(Center, {\n boxSize: size === 'sm' ? 12 : size === 'xsm' ? 9 : size === 'xxsm' ? 7 : 24,\n bg: rgba,\n rounded: 'full',\n opacity: 'none'\n }, children), showCount && /*#__PURE__*/React.createElement(Count, {\n variant: variant,\n count: count\n })));\n}\n\nfunction Count(props) {\n var variant = props.variant,\n count = props.count,\n planStatus = props.planStatus;\n var color = dict[variant][planStatus].color; //styles[variant].color\n\n return /*#__PURE__*/React.createElement(Center, {\n position: 'absolute',\n bottom: 0,\n right: 0,\n rounded: 'full',\n p: 2,\n borderWidth: '2px',\n boxSize: '30px',\n borderColor: color,\n bg: 'white'\n }, /*#__PURE__*/React.createElement(Text, {\n p: 0,\n m: 0,\n fontWeight: 600,\n fontSize: '16px'\n }, count));\n}\n\nvar LifeIcon = createIcon({\n displayName: 'LifeIcon',\n viewBox: '0 0 64 64',\n path: [/*#__PURE__*/React.createElement(\"path\", {\n d: 'M33.038 32.849v16.71A5.457 5.457 0 0 1 27.598 55a5.457 5.457 0 0 1-5.442-5.44',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n fill: 'transparent'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M12.155 32.82c4.208 0 7.887 1.853 9.956 4.628 2.069-2.775 5.748-4.628 9.955-4.628 4.208 0 8.216 1.752 10.285 4.527 2.07-2.775 5.42-4.527 9.627-4.527a13.602 13.602 0 0 1 5.154 1.005C56.178 21.296 45.334 11.41 32.066 11.41 18.795 11.41 7.95 21.302 7 33.836a13.574 13.574 0 0 1 5.155-1.016v0Z',\n fill: 'currentColor',\n fillOpacity: '.2',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M31.939 8v3.175a.51.51 0 0 1-.17.384c-1.3 1.183-9.658 9.425-9.658 25.888M32.486 11.41s9.864 7.761 9.864 25.613',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n fill: 'transparent'\n })]\n});\nvar HealthIcon = createIcon({\n displayName: 'HealthIcon',\n viewBox: '0 0 64 64',\n path: [/*#__PURE__*/React.createElement(\"path\", {\n d: 'M32.064 16.703S34.895 9 44.255 9c9.36 0 19.254 9.662 10.359 26.617C47.088 49.962 34.58 55.097 32.126 56h-.004c-2.455-.904-15.093-6.038-22.619-20.383C.608 18.662 10.365 9 19.726 9c9.36 0 12.327 7.703 12.327 7.703',\n fill: 'currentColor',\n fillOpacity: '.2'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M32.064 16.703S34.895 9 44.255 9c9.36 0 19.254 9.662 10.359 26.617C47.088 49.962 34.58 55.097 32.126 56h-.004c-2.455-.904-15.093-6.038-22.619-20.383C.608 18.662 10.365 9 19.726 9c9.36 0 12.327 7.703 12.327 7.703',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n fill: 'transparent'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M7.97 30.975h9.514l4.008 7.24 6.66-14.473L36.01 40.04l7.522-15.114 3.142 6.577h9.154',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n fill: 'transparent'\n })]\n});\nvar PensionsIcon = createIcon({\n displayName: 'PensionsIcon',\n viewBox: '0 0 64 64',\n path: [/*#__PURE__*/React.createElement(\"path\", {\n d: 'M39.012 27.998c3.36 10.199-1.166 17.302-8.805 19.826-7.639 2.524-15.498-.487-18.859-10.686-3.36-10.2-.95-23.724 6.688-26.248 7.64-2.524 17.615 6.909 20.976 17.108Z',\n fill: '#D8DBF7',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M24.299 33c-.168-2.42.227-5.123 1.303-8.07 3.685-10.086 13.956-19.195 21.51-16.428 7.078 2.592 9.26 14.687 6.48 24.498H24.298Z',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n fill: '#D8DBF7'\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: 'one',\n d: 'M57.803 32.942C57.803 45.125 46.206 55 31.9 55 17.596 55 6 45.125 6 32.942h51.803Z',\n fill: '#D8DBF7',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M8.346 39.626h10.157M39.271 41.771h15.59M30.823 47.408H22.5',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n })]\n});\nvar InvestmentsIcon = createIcon({\n displayName: 'InvestmentsIcon',\n viewBox: '0 0 64 64',\n path: [/*#__PURE__*/React.createElement(\"path\", {\n d: 'M31.957 43.772C8.985 47.32 7 22.742 7 22.742c15.736-2.43 23.906 6.955 25.227 15.272',\n fill: 'currentColor',\n fillOpacity: '.2'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M31.957 43.772C8.985 47.32 7 22.742 7 22.742c15.736-2.43 23.906 6.955 25.227 15.272',\n stroke: 'currentColor',\n strokeWidth: '2',\n fill: 'transparent'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M32.259 56V32.955S29.839 9 57.166 9c0 0 2.73 26.865-24.286 26.865',\n fill: 'currentColor',\n fillOpacity: '.2'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M32.259 56V32.955S29.839 9 57.166 9c0 0 2.73 26.865-24.286 26.865M56.282 9.873l-22.95 25.322M7 22.742l25.01 19.439',\n stroke: 'currentColor',\n strokeWidth: '2',\n fill: 'transparent'\n })]\n});\nvar FinancialPlan = createIcon({\n displayName: 'FinancialPlan',\n viewBox: '0 0 25 24',\n path: [/*#__PURE__*/React.createElement(\"path\", {\n \"clip-rule\": 'evenodd',\n d: 'M9.75 7.761a1 1 0 0 1 1-1h11.5a1 1 0 0 1 1 1v14.5a1 1 0 0 1-1 1h-11.5a1 1 0 0 1-1-1v-14.5Z',\n stroke: 'currentColor',\n fill: 'transparent',\n strokeWidth: '1',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M9.75 20.261h-3a1.5 1.5 0 0 1-1.5-1.5v-13.5a1.5 1.5 0 0 1 1.5-1.5h10.5a1.5 1.5 0 0 1 1.5 1.5v1.5',\n stroke: 'currentColor',\n fill: 'transparent',\n strokeWidth: '1',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M5.25 17.261h-3a1.5 1.5 0 0 1-1.5-1.5v-13.5a1.5 1.5 0 0 1 1.5-1.5h10.5a1.5 1.5 0 0 1 1.5 1.5v1.5M17.25 11.261h3M12.75 10.511l.75.75 1.5-1.5M17.25 15.761h3M12.75 15.011l.75.75 1.5-1.5M17.25 20.261h3M12.75 19.511l.75.75 1.5-1.5',\n stroke: 'currentColor',\n fill: 'transparent',\n strokeWidth: '1',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n })]\n});\nvar WellbeingIcon = createIcon({\n displayName: 'Wellbeing',\n viewBox: '0 0 30 40',\n path: [/*#__PURE__*/React.createElement(\"path\", {\n d: 'M10.2261 6.4648C10.2261 5.51583 10.5075 4.58817 11.0347 3.79913C11.5619 3.01009 12.3113 2.39511 13.188 2.03195C14.0647 1.6688 15.0295 1.57378 15.9602 1.75891C16.891 1.94405 17.7459 2.40102 18.4169 3.07205C19.0879 3.74307 19.5449 4.59801 19.73 5.52874C19.9152 6.45948 19.8202 7.42421 19.457 8.30095C19.0939 9.17768 18.4789 9.92704 17.6898 10.4543C16.9008 10.9815 15.9731 11.2629 15.0242 11.2629C13.7516 11.2629 12.5312 10.7574 11.6314 9.85756C10.7316 8.95774 10.2261 7.73733 10.2261 6.4648V6.4648Z',\n stroke: 'currentColor',\n fill: 'transparent',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n vectorEffect: 'non-scaling-stroke'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M29.4959 11.9284C29.292 11.417 28.8958 11.0059 28.3924 10.7831C27.889 10.5603 27.3183 10.5436 26.8027 10.7366L17.3614 14.3893H12.8574L3.86482 10.9068C3.34965 10.7016 2.77404 10.7094 2.26463 10.9286C1.75522 11.1477 1.35373 11.5602 1.14848 12.0754C0.943238 12.5906 0.951048 13.1662 1.1702 13.6756C1.38934 14.185 1.80188 14.5865 2.31705 14.7917L10.35 17.8873V23.2426L4.65418 33.5971C4.32112 34.1988 4.23998 34.9079 4.42853 35.5693C4.61708 36.2307 5.05995 36.7904 5.66023 37.126C6.047 37.3449 6.48501 37.4571 6.9294 37.4511C7.39285 37.4521 7.84815 37.3292 8.24818 37.0952C8.6482 36.8612 8.97841 36.5245 9.20462 36.12L14.5444 26.4929H15.5195L20.72 36.8939C20.9325 37.3278 21.263 37.6931 21.6737 37.9477C22.0844 38.2023 22.5585 38.3359 23.0417 38.3333C23.4848 38.3295 23.9197 38.2132 24.3055 37.9953C24.6914 37.7774 25.0156 37.465 25.2477 37.0875C25.4797 36.71 25.6121 36.2797 25.6323 35.8371C25.6526 35.3944 25.56 34.9538 25.3633 34.5567L19.6675 23.1806V17.9956L28.2886 14.6989C28.5538 14.6016 28.7965 14.4516 29.0021 14.2579C29.2077 14.0642 29.3719 13.8308 29.4848 13.5718C29.5976 13.3129 29.6568 13.0337 29.6587 12.7512C29.6606 12.4688 29.6052 12.1888 29.4959 11.9284Z',\n stroke: 'currentColor',\n fill: 'transparent',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n vectorEffect: 'non-scaling-stroke'\n })]\n});\nvar ProposalIcon = createIcon({\n displayName: 'Proposal',\n viewBox: '0 0 21 22',\n path: [/*#__PURE__*/React.createElement(\"path\", {\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n d: 'M4.875 2.87427H2.375C1.68464 2.87427 1.125 3.43391 1.125 4.12427V19.1243C1.125 19.8146 1.68464 20.3743 2.375 20.3743H18.625C19.3154 20.3743 19.875 19.8146 19.875 19.1243V4.12427C19.875 3.43391 19.3154 2.87427 18.625 2.87427H9.875',\n fill: 'white'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M4.875 2.87427H2.375C1.68464 2.87427 1.125 3.43391 1.125 4.12427V19.1243C1.125 19.8146 1.68464 20.3743 2.375 20.3743H18.625C19.3154 20.3743 19.875 19.8146 19.875 19.1243V4.12427C19.875 3.43391 19.3154 2.87427 18.625 2.87427H9.875',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n fill: 'white'\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: 'Shape_2',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n d: 'M9.875 10.3743L7.375 8.5001L4.875 10.3751V2.2501C4.87478 2.0842 4.94053 1.92501 5.05776 1.80762C5.175 1.69023 5.3341 1.62427 5.5 1.62427H9.25C9.59518 1.62427 9.875 1.90409 9.875 2.24927V10.3743Z',\n fill: 'white',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n d: 'M4.875 16.6243H13.625H4.875Z',\n fill: 'white'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M4.875 16.6243H13.625',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n d: 'M4.875 12.8743H16.125H4.875Z',\n fill: 'white'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M4.875 12.8743H16.125',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n d: 'M16.125 9.12427H12.375H16.125Z',\n fill: 'white'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: 'M16.125 9.12427H12.375',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n })]\n});\nexport { PillarIcon };","import { Stack, useMediaQuery } from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport {\n ArrowRightCircleIcon,\n ChevronRightIcon,\n} from '@irishlife/ilgroupdesignsystem.icons'\nimport { Card } from '@irishlifedigitalhub/ds.atoms.card'\nimport { PillarIcon } from '@irishlifedigitalhub/ds.atoms.pillar-icon'\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text'\nimport { navigate } from '@reach/router'\nimport { fireAnalyticsEvent } from 'common/utils/fireAnalyticsEvent'\nimport React from 'react'\n\ntype BorderVariants =\n | 'life'\n | 'investments'\n | 'health'\n | 'pensions'\n | 'wellbeing'\n\nexport type PillarCardProps = {\n text: string\n variant: BorderVariants\n primaryCta: {\n label: string\n url: string\n analyticsId: string\n hide_cta?: 'Yes' | 'No'\n }\n secondaryCta: {\n label: string\n url: string\n analyticsId: string\n }\n}\n\nconst contentPropsMap = {\n life: {\n text: 'Life Insurance',\n },\n investments: {\n text: 'Investments',\n },\n health: {\n text: 'Health Insurance',\n },\n pensions: {\n text: 'Pensions',\n },\n wellbeing: {\n text: 'Wellbeing',\n },\n}\n\nexport function PillarCard(props: Readonly): JSX.Element {\n const { variant = 'health', text, primaryCta, secondaryCta } = props\n const { text: pillarName } = contentPropsMap[variant]\n const [isMobileExtraSmall, isMobile] = useMediaQuery([\n '(max-width: 373px)',\n '(max-width: 543px)',\n ])\n\n return (\n \n \n \n \n\n \n {pillarName}\n \n \n {text}\n \n {((!primaryCta.hide_cta) || (primaryCta.hide_cta && primaryCta.hide_cta === 'No')) &&\n }\n variant='primary'\n size='sm'\n mr='16px'\n onClick={() => {\n fireAnalyticsEvent({\n name: 'secondaryCtaClick',\n properties: {\n clickText: primaryCta.label,\n clickURL: primaryCta.url,\n clickID: primaryCta.analyticsId,\n },\n })\n navigate(primaryCta.url)\n }}\n >\n {primaryCta.label}\n \n }\n }\n variant='ghost'\n size='sm'\n onClick={() => {\n fireAnalyticsEvent({\n name: 'secondaryCtaClick',\n properties: {\n clickText: secondaryCta.label,\n clickURL: secondaryCta.url,\n clickID: secondaryCta.analyticsId,\n },\n })\n navigate(secondaryCta.url)\n }}\n >\n {secondaryCta.label}\n \n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport React from 'react'\nimport { PillarCard, PillarCardProps } from './PillarCard'\n\nexport interface PillarsProps {\n title?: string\n subtitle?: string\n title___color?: string\n subtitle___color?: string\n pillars: PillarCardProps[]\n}\n\nexport const Pillars: React.FC = ({\n pillars,\n subtitle,\n subtitle___color,\n title,\n title___color\n}) => {\n return (\n \n {title && (\n \n { title }\n \n )}\n {subtitle && (\n \n { subtitle }\n \n )}\n \n {pillars.map((pillar) => (\n \n ))}\n \n \n )\n}\n","import {\n Pillars as PillarsOrganism,\n PillarsProps as PillarsOrganismProps,\n} from 'common/components/organisms/Pillars'\nimport React from 'react'\n\nexport interface PillarsProps extends PillarsOrganismProps {}\n\nexport const Pillars: React.FC = (props) => {\n return (\n <>\n \n \n )\n}\n\nexport const getPillarProps = (props: any): PillarsProps => {\n return {\n title: props.title,\n subtitle: props.subtitle,\n title___color: props.title___color,\n subtitle___color: props.subtitle___color,\n pillars: [\n {\n text: props.life_insurance_text,\n variant: 'life',\n primaryCta: {\n label: props.life_insurance_ctas[0].cta__label,\n url: props.life_insurance_ctas[0].cta__url,\n analyticsId: props.life_insurance_ctas[0].cta__analytics_id,\n hide_cta: props.hide_primary_ctas\n },\n secondaryCta: {\n label: props.life_insurance_ctas?.[1].cta__label,\n url: props.life_insurance_ctas?.[1].cta__url,\n analyticsId:\n props.life_insurance_ctas?.[1].cta__analytics_id,\n },\n },\n {\n text: props.health_insurance_text,\n variant: 'health',\n primaryCta: {\n label: props.health_insurance_ctas[0].cta__label,\n url: props.health_insurance_ctas[0].cta__url,\n analyticsId:\n props.health_insurance_ctas[0].cta__analytics_id,\n hide_cta: props.hide_primary_ctas\n },\n secondaryCta: {\n label: props.health_insurance_ctas?.[1].cta__label,\n url: props.health_insurance_ctas?.[1].cta__url,\n analyticsId:\n props.health_insurance_ctas?.[1].cta__analytics_id,\n },\n },\n {\n text: props.pensions_text,\n variant: 'pensions',\n primaryCta: {\n label: props.pensions_ctas[0].cta__label,\n url: props.pensions_ctas[0].cta__url,\n analyticsId: props.pensions_ctas[0].cta__analytics_id,\n hide_cta: props.hide_primary_ctas\n },\n secondaryCta: {\n label: props.pensions_ctas?.[1].cta__label,\n url: props.pensions_ctas?.[1].cta__url,\n analyticsId: props.pensions_ctas?.[1].cta__analytics_id,\n },\n },\n {\n text: props.investments_text,\n variant: 'investments',\n primaryCta: {\n label: props.investments_ctas[0].cta__label,\n url: props.investments_ctas[0].cta__url,\n analyticsId: props.investments_ctas[0].cta__analytics_id,\n hide_cta: props.hide_primary_ctas\n },\n secondaryCta: {\n label: props.investments_ctas?.[1].cta__label,\n url: props.investments_ctas?.[1].cta__url,\n analyticsId: props.investments_ctas?.[1].cta__analytics_id,\n },\n },\n ],\n }\n}\n","import React from 'react'\nimport { ChevronRightIcon } from '@irishlife/ilgroupdesignsystem.icons'\nimport TagManager from 'react-gtm-module'\nimport { Link } from 'common/components/atoms/Link'\nimport { Box } from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\n\nexport interface ProductListingCTAProps {\n label: string\n variant?: string\n url: string\n onClick?: () => void\n ishighlighted: boolean\n}\n\nexport const ProductListingCTA: React.FC = ({\n label = 'Learn more',\n variant = 'ghost',\n onClick,\n url = '',\n ishighlighted,\n}) => {\n return (\n {\n TagManager.dataLayer({\n dataLayer: {\n event: 'secondaryButtonClick',\n clickText: label,\n clickURL: url,\n clickID: label,\n },\n })\n if (onClick) {\n onClick()\n }\n }}\n path={url}\n >\n \n : undefined}\n size='md'\n variant='ghost'\n >\n {' '}\n {variant === 'download' ? 'Download PDF' : label}\n \n \n \n )\n}\n","import { Box } from '@chakra-ui/react'\nimport React from 'react'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { ProductListingCTA, ProductListingCTAProps } from './ProductListingCTA'\nexport interface ProductListCardProps {\n ishighlighted?: boolean\n callToAction?: ProductListingCTAProps\n icon: string\n text: string\n title: string\n iconSize?: 'md' | 'lg'\n subtitle?: string\n}\nconst iconSizeList = {\n desktop: {\n md: 40,\n lg: 64,\n },\n}\nexport const ProductListCard: React.FC = ({\n ishighlighted = false,\n icon,\n text,\n title,\n iconSize = 'md',\n subtitle,\n callToAction,\n}) => {\n return (\n <>\n \n {icon && (\n \n )}\n \n {title}\n \n {subtitle && (\n \n {subtitle}\n \n )}\n \n {text}\n \n {callToAction && callToAction.label && (\n \n )}\n \n \n )\n}\n","import React from 'react'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport {\n ProductListCard,\n ProductListCardProps,\n} from 'common/components/molecules/ProductListCard'\nimport { Grid, GridItem } from '@chakra-ui/react'\nimport { RichText } from 'common/components/molecules/RichText'\nexport interface ProductRowListsProps {\n productRowLists?: ProductListCardProps[]\n text: string\n title: string\n subTitle?: string\n}\nexport const ProductRowLists: React.FC = ({\n title,\n subTitle,\n text,\n productRowLists,\n}) => {\n const desktop = useDesktop()\n return (\n
    \n \n {title}\n \n \n \n {subTitle && (\n \n {subTitle}\n \n )}\n \n \n \n \n {productRowLists.map((productRowList: any) => (\n \n \n \n ))}\n \n \n \n
    \n )\n}\n","import {\n ProductRowLists,\n ProductRowListsProps,\n} from 'common/components/organisms/ProductRowLists'\nimport React from 'react'\n\nexport interface ProductListingProps extends ProductRowListsProps {}\nexport const ProductListing: React.FC = (props) => {\n return \n}\n\nconst getProductRowListingProps = (data: any): ProductListingProps => {\n return {\n title: data.title,\n subTitle: data.subtitle,\n text: data.text,\n productRowLists: data.product_lists.map((card: any) => ({\n callToAction: {\n label: card.card_cta_0396ba7__cta_label,\n variant: card.card_cta_0396ba7__cta_variant,\n url: card.card_cta_0396ba7__cta_url,\n },\n icon: card.icon,\n text: card.text,\n title: card.title,\n subtitle: card.subtitle,\n ishighlighted: card.ishighlighted === 'highlighted' ? true : false,\n })),\n }\n}\n","import { Box, Container, SimpleGrid } from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { navigate } from '@reach/router'\nimport { theme } from 'common/components/design-system/theme'\nimport { CardCtaProps } from 'common/components/molecules/CardCta'\nimport React from 'react'\n\nexport interface ProofPointsProps {\n heading?: string\n cards: {\n title: string\n text: string\n icon: string\n callToAction: CardCtaProps\n }[]\n variant?: 'light' | 'dark'\n}\n\nexport const ProofPoints: React.FC = ({\n cards,\n heading,\n variant,\n}) => {\n const isDark = variant === 'dark' ? true : false\n const background = isDark ? theme.palette.VIBRANT_700 : 'transparent'\n\n const lightStyles = {\n color: theme.palette.BRAND_900,\n }\n\n const darkStyles = {\n color: '#fff',\n ' p': {\n color: '#fff',\n },\n }\n\n return (\n \n \n {heading && (\n \n \n {heading}\n \n \n )}\n \n {cards?.map((card) => (\n \n {card.icon && (\n \n )}\n\n \n {card.title}\n \n {card.text && (\n \n {card.text}\n \n )}\n {card.callToAction &&\n !Array.isArray(card.callToAction) &&\n card.callToAction.label && (\n \n {\n if (card.callToAction.url) {\n navigate(\n card.callToAction.url\n )\n }\n }}\n >\n {card.callToAction.label}\n \n \n )}\n \n ))}\n \n \n \n )\n}\n","import React from 'react'\nimport { ProofPoints, ProofPointsProps } from '../../ProofPoints'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ProofPointsSectionProps extends ProofPointsProps {}\n\nexport const ProofPointsSection: React.FC = props => {\n return \n}\n\nconst getProofPointsData = (data: any): ProofPointsSectionProps => {\n return {\n heading: data.proof_points__heading,\n variant: data.proof_points__variant,\n cards: data.proof_points__items.map((item: any) => ({\n title: item.title,\n icon: item.icon,\n text: item.text,\n callToAction: {\n label: item.card_cta_0396ba7__cta_label,\n url: item.card_cta_0396ba7__cta_url\n }\n }))\n }\n}\n","import { Box, Grid, Text } from '@chakra-ui/react'\nimport { ArrowRightCircleOutlineIcon } from '@irishlife/ilgroupdesignsystem.icons'\n\nimport React from 'react'\n\n/* eslint-disable-next-line */\nexport interface CostumPopLinkProps {\n title: string\n icon: JSX.Element\n handleClick?: () => void\n}\n\nconst CustomPoplink = ({ title, icon, handleClick }: CostumPopLinkProps) => {\n return (\n \n \n {icon}\n \n \n \n {title}\n \n\n \n \n \n \n \n )\n}\n\nexport default CustomPoplink\n","import { Box, Grid, Image, Text } from '@chakra-ui/react'\nimport { navigate } from '@reach/router'\nimport React from 'react'\nimport CustomPoplink from '../../molecules/CustomPoplink/CustomPoplink'\n\nexport interface Items {\n icon: string\n title: string\n url: string\n}\n\nexport interface ResourcesWithLinksProps {\n title: string\n subtitle: string\n description: string\n poplink: Items[]\n}\n\nconst JsxIcon = (imageUrl: string) => (\n \n)\n\nexport const ResourcesWithLinks: React.FC = (\n props\n) => {\n const { title, subtitle, description, poplink = [] } = props\n\n return (\n \n \n \n \n {title}\n \n \n {subtitle}\n \n {description && (\n \n {description}\n \n )}\n \n\n \n\n \n \n {poplink &&\n poplink.map((item, index) => (\n \n navigate(item.url)}\n />\n \n ))}\n \n \n \n \n )\n}\n","import React, { FC } from 'react'\nimport { ResourcesWithLinks } from 'common/components/organisms/ResourcesWithLinks/index'\n\nconst ResourcesWithLinksWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { ResourcesWithLinksWrapper as ResourcesWithLinks }\nconst getProps = (props: any) => {\n return {\n title: props.title,\n subtitle: props.subtitle,\n description: props.description,\n poplink: props.poplink.map((item: any) => ({\n icon: item.icon,\n title: item.title,\n url: item.url,\n })),\n }\n}\n","import {\n ShardCard,\n ShardCardProps,\n} from '@irishlifedigitalhub/ds.molecules.shard-card'\nimport React from 'react'\nimport TagManager from 'react-gtm-module'\nimport { navigate } from '@reach/router'\nimport { Box } from '@chakra-ui/react'\n\nexport const SharedCard = (props: any[]) => {\n return (props || []).map((sharedCard) => {\n return (\n \n \n \n )\n })\n}\n\nconst getSharedCardProps = (sharedCard: any): ShardCardProps => {\n return {\n subTitle: sharedCard.templatesection___shardcard__title\n ? sharedCard.templatesection___shardcard__title\n : '',\n body: sharedCard.templatesection___shardcard__text,\n callback: () =>\n handleCallBack(sharedCard?.templatesection___shardcard__cta[0]),\n callbackLabel:\n sharedCard?.templatesection___shardcard__cta[0]\n ?.call_to_action__label,\n callbackVariant:\n sharedCard?.templatesection___shardcard__cta[0]\n ?.call_to_action__variant === 'contained'\n ? 'primary'\n : 'secondary',\n callbackSize: 'md',\n image: 'Shared card image',\n imageSrc: sharedCard.templatesection___shardcard__image,\n imageBottom: false,\n }\n}\n\nconst handleCallBack = (data: any): any => {\n TagManager.dataLayer({\n dataLayer: {\n event: 'primaryButtonClick',\n clickText: data?.call_to_action__label,\n clickURL: data?.call_to_action__url,\n clickID: data?.call_to_action__analytics_id,\n },\n })\n navigate(data?.call_to_action__url || '')\n}\n","import React from 'react'\n// import './SupportCenter.css'\n\nconst SupportCenter: React.FC = () => {\n // useEffect(() => {\n // const head = document.querySelector('head')\n // setTimeout(() => {\n // if (head) {\n // // Added null check for head\n // head.insertAdjacentHTML(\n // 'beforeend',\n // ``\n // )\n // }\n // }, 1000)\n // stylesObserver()\n // }, [])\n\n return
    \n}\n\nexport default SupportCenter\n","import React from 'react'\nimport { ComparisonTable } from '@irishlife/ilgroupdesignsystem.table'\nexport const Table: React.FC = (props) => {\n const data = getTableData(props)\n return \n}\nexport type TableProps = {\n title?: string\n columns: ColumnProps[]\n rowgroup?: RowGroupProps[]\n rows?: RowProps[]\n}\n\nexport type ColumnProps = {\n columnTitle?: string\n columnSubtitle?: string\n columnCTALabel?: string\n url?: string\n columnCTAVariant?: string\n cellValues: CellProps[]\n}\n\nexport type CellProps = {\n cellValue: string\n}\n\nexport type RowGroupProps = {\n rowGroupTitle?: string\n isExpanded?: boolean\n Collapsible?: boolean\n rows?: RowProps[]\n}\nexport type RowProps = {\n rowTitle?: string\n}\n\nexport const getTableData = (data: any): any => {\n return {\n title: data.title ? data.title : '',\n columns: getTableColumns(data.table_columns),\n rowgroup: getTableRowGroup(data.table_rows),\n }\n}\n\nexport const getTableRowGroup = (rowGroup: any) => {\n return rowGroup.map((rowGroupItem: any) => {\n const rowValues = rowGroupItem.table_rows.map((row: any) => {\n return {\n rowTitle: row.row_title,\n }\n })\n return {\n rowGroupTitle: rowGroupItem.rowgroup_title,\n Collapsible: rowGroupItem.is_collapsible === 'Yes' ? true : false,\n isExpanded: rowGroupItem.is_expanded === 'Yes' ? true : false,\n rows: rowValues,\n }\n })\n}\n\nexport const getTableColumns = (columns: any) => {\n return columns.map((column: any) => {\n const cellValues = column.column_cell_values.map((cellValue: any) => {\n return {\n cellValue: cellValue.column_boolean_values\n ? cellValue.column_boolean_values\n : cellValue.column_text_values,\n }\n })\n return {\n columnTitle: column.column_title,\n columnSubtitle: column.column_subtitle,\n columnCTALabel: column.call_to_action__label,\n url: column.call_to_action__url,\n columnCTAVariant: column.call_to_action__variant,\n cellValues: cellValues,\n }\n })\n}\n","import FormControl from '@material-ui/core/FormControl'\nimport INPUT_BASE from '@material-ui/core/InputBase'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Select from '@material-ui/core/Select'\nimport {\n createStyles,\n makeStyles,\n Theme,\n withStyles,\n} from '@material-ui/core/styles'\nimport EXPAND_MORE from '@material-ui/icons/ExpandMore'\nimport React, { useEffect, useState } from 'react'\nimport { theme } from '../../theme'\n\nexport interface SelectProps {\n value: string | number\n isDisabled?: boolean\n options: {\n value: string | number\n label: string\n }[]\n isOptional?: boolean\n isWhiteBackground?: boolean\n onChange?: () => void\n showOptional: boolean\n}\n\nconst { palette } = theme\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n width: '320px',\n height: '48px',\n '&:before': {\n borderBottom: '0px',\n },\n marginTop: '4px',\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n empty: {\n color: `${palette.NEUTRAL_300} !important`,\n },\n dropdownStyle: {\n border: '0px',\n borderRadius: '0px 0px 4px 4px',\n backgroundColor: palette.WHITE,\n marginTop: '52px',\n '& ul': {\n padding: '0px',\n },\n },\n menuItem: {\n fontWeight: 700,\n height: '48px',\n '&:hover': {\n backgroundColor: palette.VIBRANT_100_SECONDARY,\n },\n '&:active': {\n backgroundColor: palette.VIBRANT_100_SECONDARY,\n },\n },\n icon: {\n fill: palette.NEUTRAL_900,\n right: '14px',\n },\n iconDisabled: {\n fill: palette.NEUTRAL_300,\n right: '14px',\n },\n optional: {\n fontStyle: 'italic',\n },\n })\n)\n\nconst inputStyles = {\n width: '320px',\n height: '20px',\n borderRadius: '4px',\n backgroundColor: palette.BRAND_100,\n border: '2px solid transparent',\n fontSize: 16,\n padding: '14px',\n fontWeight: 400,\n color: palette.NEUTRAL_900,\n fontFamily: 'Assistant',\n '&:hover': {\n borderColor: palette.BRAND_200,\n },\n '&:active': {\n borderRadius: 4,\n borderColor: '#3681D9',\n },\n '&:focus': {\n backgroundColor: palette.BRAND_100,\n },\n}\n\nconst DefaultInput = withStyles(() =>\n createStyles({\n input: {\n ...inputStyles,\n },\n })\n)(INPUT_BASE)\n\nconst DefaultInputWhite = withStyles(() =>\n createStyles({\n input: {\n ...inputStyles,\n backgroundColor: palette.WHITE,\n '&:focus': {\n backgroundColor: palette.WHITE,\n },\n },\n })\n)(INPUT_BASE)\n\nconst PlaceholderInput = withStyles(() =>\n createStyles({\n input: {\n ...inputStyles,\n color: palette.NEUTRAL_300,\n },\n })\n)(INPUT_BASE)\n\nconst PlaceholderInputWhite = withStyles(() =>\n createStyles({\n input: {\n ...inputStyles,\n backgroundColor: palette.WHITE,\n color: palette.NEUTRAL_300,\n '&:focus': {\n backgroundColor: palette.WHITE,\n },\n },\n })\n)(INPUT_BASE)\n\nexport const SimpleSelect = ({ ...props }) => {\n const {\n value,\n options,\n isDisabled,\n isOptional,\n isWhiteBackground,\n onChange,\n showOptional,\n } = props\n const classes = useStyles()\n const [selectedValue, setValue] = useState()\n\n useEffect(() => {\n setValue(value === undefined ? '' : value)\n }, [value])\n\n const handleChange = (event: React.ChangeEvent<{ value: unknown }>) => {\n setValue(event.target.value as string)\n onChange(event.target.value)\n }\n \n return (\n \n \n ) : (\n \n )\n ) : selectedValue === '' ? (\n \n ) : (\n \n )\n }\n IconComponent={EXPAND_MORE}\n inputProps={\n isDisabled\n ? { classes: { icon: classes.iconDisabled } }\n : { classes: { icon: classes.icon } }\n }\n >\n \n Select an option{' '}\n {isOptional && showOptional && (\n - optional\n )}\n \n {options &&\n options.length > 0 &&\n options.map(({ value, label }: any) => (\n \n {label}\n \n ))}\n \n \n )\n}\n","import React from 'react'\nimport { Theme, withStyles } from '@material-ui/core/styles'\nimport { Styles } from '@material-ui/core/styles/withStyles'\nimport { SimpleSelect } from '../../atoms/select'\nimport { Label } from '../../atoms/label'\nimport { theme } from '../../theme'\n\nexport interface SelectProps {\n value: string | number\n isDisabled?: boolean\n options: {\n value: string | number\n label: string\n }[]\n isOptional?: boolean\n isDarkBackground?: boolean\n onChange?: () => void\n label?: string\n}\n\nconst { palette } = theme\n\nconst styles: Styles = {\n root: {\n width: '328px'\n },\n darkBackground: {\n backgroundColor: 'rgb(245, 244, 247)'\n },\n optional: {\n fontSize: '14px',\n letterSpacing: '0.32px',\n lineHeight: '20px',\n fontFamily: 'Assistant',\n color: palette.NEUTRAL_700,\n fontStyle: 'italic',\n fontWeight: 400,\n paddingBottom: '4px'\n }\n}\n\nexport const Select = ({ ...props }) => {\n const {\n value,\n options,\n isDisabled,\n isOptional,\n isDarkBackground,\n onChange,\n label,\n classes\n } = props\n\n return (\n \n
    \n {label &&
    \n \n \n )\n}\nexport const Dropdown = withStyles(styles)(Select)\n","import { Box, HStack, Image, SimpleGrid } from '@chakra-ui/react';\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text';\nimport { SearchIcon } from '@irishlife/ilgroupdesignsystem.icons';\nimport { Input } from '@irishlife/ilgroupdesignsystem.molecules.input';\nimport { Link } from 'common/components/atoms/Link';\nimport { Dropdown } from 'common/components/design-system/molecules/selectDropdown';\nimport React, { useEffect, useState } from 'react';\nimport { Pagination } from '../../molecules/Pagination/index';\nimport { Button } from '@irishlifedigitalhub/ds.atoms.button';\nimport { fireAnalyticsEvent } from 'common/utils/fireAnalyticsEvent';\nimport { navigate } from '@reach/router';\n\ninterface CardProps {\n image?: string;\n name: string;\n jobTitle: string;\n company: string;\n department: string;\n}\ninterface TeamGridFilterProps {\n title: string;\n cards: CardProps[];\n showFilters: string;\n pagination?: 'Enable' | 'Disable';\n members_card_style?: 'Default' | 'White';\n callToAction?: {\n buttonLabel: string;\n buttonUrl: string;\n buttonIcon: string;\n };\n}\n\nexport const TeamGridFilter: React.FC = ({\n title,\n cards,\n showFilters,\n pagination,\n members_card_style,\n callToAction,\n}) => {\n const [visibleItems, setVisibleItems] = useState();\n const [cardStore, setCardStore] = useState(cards);\n const [filterValues, setFilterValues] = useState({});\n const [companyFilterOptions, setCompanyFilterOptions] = useState([]);\n\n useEffect(() => {\n let idIterator = 0;\n const unique = Array.from(new Set(cards.map((card) => card.company)));\n\n setCompanyFilterOptions(\n unique.map((companyName) => ({\n id: idIterator++,\n label: companyName,\n value: companyName,\n }))\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handlePagination = (array: any) => {\n setVisibleItems(array.visibleItems);\n };\n\n const clearAllFilters = () => {\n setFilterValues({});\n setCardStore(cards);\n };\n\n const applyFilters = (value: string, inputName: string) => {\n if (inputName === 'company') {\n const filtered = cards.filter((card) =>\n card.company?.toLowerCase().startsWith(value.toLowerCase())\n );\n if (filterValues?.department) {\n setCardStore(\n filtered.filter(\n (card) =>\n card.department\n ?.toLowerCase()\n .startsWith(filterValues.department.toLowerCase()) ||\n card.department?.toLowerCase() ===\n filterValues.department.toLowerCase()\n )\n );\n } else {\n setCardStore(filtered);\n }\n setFilterValues({ ...filterValues, [inputName]: value });\n }\n\n if (inputName === 'department') {\n if (value !== '') {\n const filtered = cards.filter(\n (card) =>\n card.department?.toLowerCase().startsWith(value.toLowerCase()) ||\n card.department?.toLowerCase() === value.toLowerCase()\n );\n\n if (filterValues?.company) {\n setCardStore(\n filtered.filter((card) =>\n card.company\n ?.toLowerCase()\n .startsWith(filterValues.company.toLowerCase())\n )\n );\n } else {\n setCardStore(filtered);\n }\n\n setFilterValues({ ...filterValues, [inputName]: value });\n } else {\n if (filterValues?.company) {\n const filtered = cards.filter((card) =>\n card.company\n ?.toLowerCase()\n .startsWith(filterValues.company.toLowerCase())\n );\n setCardStore(filtered);\n } else setCardStore(cards);\n setFilterValues((prevValues: any) => {\n delete prevValues.department;\n return prevValues;\n });\n }\n }\n };\n\n return (\n \n \n {title}\n \n {showFilters === 'True' && (\n <>\n \n \n \n applyFilters(event.target.value, 'department')\n }\n value={filterValues?.department || ''}\n />\n\n {}}>\n \n View all departments\n \n \n \n\n {}}\n onChange={(value: string) => applyFilters(value, 'company')}\n options={companyFilterOptions}\n placeholder=\"Please select an option\"\n value={filterValues?.company || undefined}\n />\n \n \n \n \n \n \n \n Filters\n \n\n \n {Object.keys(filterValues).length}\n \n \n \n Clear all\n \n \n \n \n \n \n )}\n \n {visibleItems?.map((card, index) => (\n \n \n \n \n {card.name}\n \n \n {card.jobTitle}\n {card.jobTitle && card.department && ','} {card.department}\n \n \n \n ))}\n \n\n \n \n \n\n {callToAction?.buttonUrl && (\n \n }\n onClick={(e) => {\n e.preventDefault();\n fireAnalyticsEvent({\n name: 'buttonTeamGridFilter',\n properties: {\n clickText: callToAction.buttonLabel,\n clickURL: callToAction.buttonUrl,\n },\n });\n navigate(callToAction.buttonUrl);\n }}\n >\n {callToAction.buttonLabel}\n \n \n )}\n \n );\n};\n","import { TeamGridFilter } from 'common/components/organisms/TeamGridFilter/index'\nimport React, { FC } from 'react'\n\nconst TeamGridFilterWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { TeamGridFilterWrapper as TeamGridFilter }\n\nconst getProps = (props: any) => {\n const { title, team_members } = props\n \n return {\n title,\n cards: team_members.map((item: any) => ({\n name: item.full_name,\n jobTitle: item.job_title,\n company: item.company,\n department: item.department,\n image: item.image,\n })),\n showFilters: props.show_filters,\n pagination: props.pagination,\n members_card_style: props.members_card_style,\n callToAction: {\n buttonLabel: props.button_c9ad60e__text,\n buttonIcon: props.button_c9ad60e__icon,\n buttonUrl: props.button_c9ad60e__url,\n },\n }\n}\n","import 'core-js/modules/es.object.assign.js';\nimport { Button as Button$1 } from '@chakra-ui/react';\nimport React from 'react';\nvar Button = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Button$1, Object.assign({\n \"data-testid\": 'Button',\n ref: ref\n }, props));\n});\nexport { Button };","import { Box } from '@chakra-ui/react';\nimport { Avatar } from '@irishlifedigitalhub/ds.atoms.avatar';\nimport { Button } from '@irishlifedigitalhub/ds.atoms.button';\nimport { Text } from '@irishlifedigitalhub/ds.atoms.text';\nimport React from 'react';\nimport 'core-js/modules/es.regexp.exec.js';\nimport 'core-js/modules/es.string.replace.js';\n\nvar addQuotes = function addQuotes(input) {\n // Check for the first

    and last

    \n var openingTagRegex = /^

    /;\n var closingTagRegex = /<\\/p>$/; // Replace the first

    with

    \n\n if (openingTagRegex.test(input)) {\n input = input.replace(openingTagRegex, '

    ');\n } // Replace the last

    with

    \n\n\n if (closingTagRegex.test(input)) {\n input = input.replace(closingTagRegex, '

    ');\n }\n\n return input;\n};\n\nvar TestimonialSection = function TestimonialSection(props) {\n var _props$type = props.type,\n type = _props$type === void 0 ? 'customer' : _props$type,\n title = props.title,\n quote = props.quote,\n _props$name = props.name,\n name = _props$name === void 0 ? 'Niamh' : _props$name,\n role = props.role,\n avatarSrc = props.avatarSrc,\n button = props.button;\n var location = props.type === 'customer' ? props.location : undefined;\n var nameString = location ? \"\".concat(name, \", \").concat(location) : name;\n var defaultTitle = type === 'customer' ? 'What our customers say' : 'How our advisors can help';\n var defaultRole = type === 'customer' ? 'Irish Life Customer' : 'Irish Life Financial Advisor';\n return /*#__PURE__*/React.createElement(Box, {\n sx: {\n display: 'flex',\n justifyContent: 'center',\n bg: '#2C2D8B',\n py: '22px',\n px: '16px'\n }\n }, /*#__PURE__*/React.createElement(Box, {\n sx: {\n py: '32px',\n px: '24px',\n maxWidth: '886px'\n }\n }, /*#__PURE__*/React.createElement(\"svg\", {\n width: '40',\n height: '40',\n viewBox: '0 0 40 40',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg'\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: 'M36.9999 19.0556C37.0064 21.5487 36.424 24.008 35.3 26.2334C33.9672 28.9 31.9184 31.1429 29.3829 32.7109C26.8475 34.2788 23.9255 35.11 20.9444 35.1111C18.4513 35.1176 15.992 34.5351 13.7666 33.4111L3 37L6.58888 26.2334C5.46487 24.008 4.88239 21.5487 4.88889 19.0556C4.89004 16.0745 5.72115 13.1525 7.28913 10.6171C8.85711 8.08163 11.1 6.03279 13.7666 4.70005C15.992 3.57603 18.4513 2.99355 20.9444 3.00005H21.8889C25.826 3.21726 29.5446 4.87904 32.3328 7.66722C35.121 10.4554 36.7827 14.174 36.9999 18.1111V19.0556Z',\n stroke: '#6AD1C0',\n strokeWidth: '3',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n })), /*#__PURE__*/React.createElement(Text, {\n variant: 'title-xs',\n sx: {\n color: 'accent.400',\n mt: 8,\n mb: 3\n }\n }, title || defaultTitle), /*#__PURE__*/React.createElement(Text, {\n variant: 'title-lg',\n sx: {\n color: '#fff',\n mt: 8\n }\n }, addQuotes(quote)), /*#__PURE__*/React.createElement(Box, {\n sx: {\n display: 'flex',\n mt: 9\n }\n }, avatarSrc && /*#__PURE__*/React.createElement(Avatar, {\n name: name,\n src: avatarSrc\n }), /*#__PURE__*/React.createElement(Box, {\n sx: {\n ml: 3\n }\n }, /*#__PURE__*/React.createElement(Text, {\n color: 'white',\n fontWeight: 'semibold',\n variant: 'subtitle-sm'\n }, \"-\", nameString), /*#__PURE__*/React.createElement(Text, {\n color: 'white',\n fontWeight: 'normal',\n variant: 'subtitle-md'\n }, role || defaultRole))), (button === null || button === void 0 ? void 0 : button.text) && /*#__PURE__*/React.createElement(Button, {\n bg: 'vibrant.100',\n variant: 'inverse',\n mt: 9,\n onClick: button.onClick\n }, button.text)));\n};\n\nexport { TestimonialSection };","import {\n TestimonialSection,\n TestimonialSectionProps,\n} from '@irishlifedigitalhub/ds.organisms.testimonial-section'\nimport { navigate } from '@reach/router'\nimport { fireAnalyticsEvent } from 'common/utils/fireAnalyticsEvent'\nimport React from 'react'\n\nexport const Testimonials: React.FC = (data) => {\n const props = getTestimonialProps(data)\n\n return \n}\n\nTestimonials.displayName = 'Testimonials'\n\nexport const getTestimonialProps = (data: any): TestimonialSectionProps => {\n const testimonial = data.testimonials[0]\n\n const type =\n testimonial.type === 'testimonialcustomer_type' ? 'customer' : 'advisor'\n const cta = testimonial[`testimonial${type}__cta`]?.[0]\n\n const onClick = () => {\n fireAnalyticsEvent({\n name: 'testimonialButtonClick',\n properties: {\n clickText: cta.cta__label,\n clickURL: cta.cta__url,\n clickID: cta.cta__analytics_id,\n },\n })\n navigate(cta.cta__url)\n }\n\n const buttonProps = cta?.cta__label\n ? {\n text: cta.cta__label,\n onClick,\n }\n : undefined\n\n const commonProps = {\n type: type as TestimonialSectionProps['type'],\n name: testimonial[`testimonial${type}__name`],\n avatarSrc: testimonial[`testimonial${type}__avatar`],\n quote: testimonial[`testimonial${type}__quote`],\n button: buttonProps,\n title: testimonial[`testimonial${type}__title`],\n role: testimonial[`testimonial${type}__role`],\n }\n\n if (type === 'customer') {\n return {\n ...commonProps,\n location: testimonial.testimonialcustomer__location,\n }\n }\n\n return commonProps as TestimonialSectionProps\n}\n","import { Box } from '@chakra-ui/react'\nimport {\n FeatureList,\n FeatureListProps\n} from 'common/components/organisms/FeatureList'\nimport React from 'react'\n\nexport interface TextWithImageProps extends FeatureListProps {}\n\nexport const TextWithImage: React.FC = props => {\n const data = getTextWithImageData(props)\n return (\n \n \n \n // \n )\n}\n\nexport const getTextWithImageData = (data: any): TextWithImageProps => {\n return {\n featureTitle: data.featurelist__bullets_title,\n featureSubtitle: data.featurelist__bullets_subtitle,\n features: data.featurelist__features,\n image: data.featurelist__image,\n subtitle: data.featurelist__subtitle,\n title: data.featurelist__title,\n variant: data.featurelist__variant,\n cta: data.featurelist__cta,\n secondaryTitle: data.secondary_title,\n callToAction: {\n analyticsId: data.featurelist__cta_analyticsid,\n label: data.featurelist__cta_label,\n [`${data.featurelist__cta_icon_position}Icon`]: data.featurelist__cta_icon,\n url: data.featurelist__cta_url,\n variant: data.featurelist__cta_variant,\n noSpacer: true\n }\n }\n}\n","import React from 'react'\nimport {\n TimelineSteps,\n TimelineStepsProps\n} from 'common/components/organisms/TimelineSteps'\nexport interface TimelineProps extends TimelineStepsProps {}\n\nexport const Timeline: React.FC = props => {\n const data = getTimelineData(props)\n return \n}\n\nexport const getTimelineData = (data: any): TimelineProps => {\n return {\n text: data.text,\n title: data.title,\n heading: data.heading,\n steps: data.timeline__steps\n }\n}\n","import { Box, Image, SimpleGrid, VStack } from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { Card } from '@irishlife/ilgroupdesignsystem.atoms.card'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { navigate } from '@reach/router'\nimport { useDesktop } from 'common/hooks/useDesktop'\nimport React from 'react'\ninterface TrapeziumBannerProps {\n image?: string\n title?: string\n subtitle?: string\n callToAction?: any\n}\n\nexport const TrapeziumBanner: React.FC = (props) => {\n const { image, title, subtitle, callToAction } = props\n\n const isMobile = !useDesktop()\n\n return (\n \n \n \n \n \n \n \n \n \n \n {title}\n \n {subtitle}\n navigate(callToAction.url)}\n >\n {callToAction.label}\n \n \n \n \n \n )\n}\n","import { TrapeziumBanner } from 'common/components/organisms/TrapeziumBanner/index'\nimport React, { FC } from 'react'\n\nconst TrapeziumBannerWrapper: FC<{ props: any }> = (props) => {\n const processedProps = getProps(props)\n\n return \n}\nexport { TrapeziumBannerWrapper as TrapeziumBanner }\nconst getProps = (props: any) => {\n return {\n image: props.image,\n title: props.title,\n subtitle: props.subtitle,\n callToAction: {\n label: props.button_c9ad60e__text,\n url: props.button_c9ad60e__url,\n },\n }\n}\n","import React from 'react'\nimport { Video, VideoProps } from 'common/components/atoms/Video'\n\n\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface VideoWithTextProps extends VideoProps {}\n\nexport const VideoWithText: React.FC = props => {\n const data = getVideoWithTextData(props)\n return (\n