{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/features/flyer-selector/inline/PoweredByTC.vue?cd7b","webpack:///./src/features/filters/range/RangeFilter.vue?f438","webpack:///./src/components/iFrameRelay/IframeRelay.vue?bf67","webpack:///./src/features/filters/buttons/ClearFilterButton.vue?451e","webpack:///./src/features/pdp/templates/PdpRexallRaddar.vue?ee32","webpack:///./src/features/inblock-videos/FullBlockVideo.vue?14aa","webpack:///./src/components/buttons/HamburgerMenuButton.vue?eba2","webpack:///./src/components/scroll-container/ScrollContainer.vue?4e19","webpack:///./src/features/help/HelpScreen.vue?45a9","webpack:///./src/App.vue?c7a2","webpack:///./src/components/Toasts/FeatureToast.vue?de07","webpack:///./src/features/filters/range/RangeInline.vue?a857","webpack:///./src/features/filters/ToggleButtonFilter.vue?d6b7","webpack:///./src/components/ExpandingDisclaimer.vue?2c96","webpack:///./src/components/buttons/ShoppingListToggleButton.vue?5a42","webpack:///./src/components/buttons/PoweredByTC.vue?81e5","webpack:///./src/features/help/HelpScreenItem.vue?ac38","webpack:///./src/components/block/elements/ImageElement.vue?1bc3","webpack:///./src/features/deeplinking/DeepLinkController.vue?e4e5","webpack:///./src/components/block/elements/ProductCarouselV2.vue?76f8","webpack:///./src/components/lists/item-types/CheckBoxLabelListItem.vue?3350","webpack:///./src/components/ProductMaskOverlay.vue?b54a","webpack:///./src/features/shopping-list/ShoppingListV1.vue?a0b2","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelectorDefault.vue?e1d7","webpack:///./src/components/buttons/ToggleFlyerOrientationButton.vue?db8f","webpack:///./src/components/lists/item-types/ProductListItem.vue?ddbe","webpack:///./src/features/offers/OfferListItem.vue?4544","webpack:///./src/features/pdp/templates/PdpRaddar.vue?d93d","webpack:///./src/features/filters/SearchBarFilter.vue?7528","webpack:///./src/features/email-signup/emailSignupButton.vue?c2f0","webpack:///./src/components/flyerSection.component.vue?646d","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/scroll-container/ScrollBar.vue?a194","webpack:///./src/features/pdp/templates/pdpJeanCoutuRaddar.vue?4829","webpack:///./src/components/buttons/ZoomControls.vue?ce00","webpack:///./src/components/block/elements/ProductBlockVideoElement.vue?e194","webpack:///./src/components/lists/AdvList.vue?9053","webpack:///./src/components/lists/AdvTitledList.vue?671b","webpack:///./src/components/lists/AdvList.vue?c9ca","webpack:///./src/components/lists/AdvListItem.vue?b496","webpack:///./src/components/lists/item-types/LabelListItem.vue?9859","webpack:///src/components/lists/item-types/LabelListItem.vue","webpack:///./src/components/lists/item-types/LabelListItem.vue?09a9","webpack:///./src/components/lists/item-types/LabelListItem.vue","webpack:///./src/components/lists/item-types/CheckBoxLabelListItem.vue?9ba9","webpack:///./src/components/lists/item-types/CheckBox.vue?51e5","webpack:///src/components/lists/item-types/CheckBox.vue","webpack:///./src/components/lists/item-types/CheckBox.vue?6c2c","webpack:///./src/components/lists/item-types/CheckBox.vue","webpack:///src/components/lists/item-types/CheckBoxLabelListItem.vue","webpack:///./src/components/lists/item-types/CheckBoxLabelListItem.vue?8126","webpack:///./src/components/lists/item-types/CheckBoxLabelListItem.vue","webpack:///./src/components/lists/item-types/ProductListItem.vue?851a","webpack:///src/components/lists/item-types/ProductListItem.vue","webpack:///./src/components/lists/item-types/ProductListItem.vue?82a7","webpack:///./src/components/lists/item-types/ProductListItem.vue","webpack:///src/components/lists/AdvListItem.vue","webpack:///./src/components/lists/AdvListItem.vue?f568","webpack:///./src/components/lists/AdvListItem.vue","webpack:///src/components/lists/AdvList.vue","webpack:///./src/components/lists/AdvList.vue?99cf","webpack:///./src/components/lists/AdvList.vue","webpack:///src/components/lists/AdvTitledList.vue","webpack:///./src/components/lists/AdvTitledList.vue?effc","webpack:///./src/components/lists/AdvTitledList.vue","webpack:///./src/components/block/elements/ProductClickRegions.vue?a1b2","webpack:///./src/components/lists/item-types/CheckBox.vue?8524","webpack:///./src/features/pdp/templates/PdpV2.vue?c3ea","webpack:///./src/features/help/HelpSection.vue?0b82","webpack:///./src/AppWrapper.vue?d8dd","webpack:///./src/App.vue?8a48","webpack:///./src/components/responsiveGrid.component.vue?e030","webpack:///./src/components/flyerSection.component.vue?2465","webpack:///./src/classes/ObjPropParser.js","webpack:///./src/classes/ParentComms.js","webpack:///./src/classes/Lytics.js","webpack:///./src/classes/AppConfig.js","webpack:///./src/classes/Page.js","webpack:///./src/store/modules/scale.js","webpack:///./src/components/block/FlyerBlock.vue?d344","webpack:///./src/components/block/elements/ProductElement.vue?3096","webpack:///./src/components/block/elements/ImageElement.vue?5884","webpack:///./src/mixins/blockElementMixin.js","webpack:///./src/mixins/featureMixin.js","webpack:///src/components/block/elements/ImageElement.vue","webpack:///./src/components/block/elements/ImageElement.vue?1d88","webpack:///./src/components/block/elements/ImageElement.vue?2e2b","webpack:///./src/components/block/elements/ProductClickRegions.vue?a96e","webpack:///./src/components/buttons/PlayButton.vue?a562","webpack:///src/components/buttons/PlayButton.vue","webpack:///./src/components/buttons/PlayButton.vue?d1ad","webpack:///./src/components/buttons/PlayButton.vue","webpack:///./src/features/pdp/PdpProductMixin.js","webpack:///./src/components/block/BlockEvents.js","webpack:///src/components/block/elements/ProductClickRegions.vue","webpack:///./src/components/block/elements/ProductClickRegions.vue?c298","webpack:///./src/components/block/elements/ProductClickRegions.vue","webpack:///./src/components/ProductMaskOverlay.vue?8333","webpack:///src/components/ProductMaskOverlay.vue","webpack:///./src/components/ProductMaskOverlay.vue?d669","webpack:///./src/components/ProductMaskOverlay.vue","webpack:///./src/features/shopping-list/components/ItemHighlight.vue?1315","webpack:///src/features/shopping-list/components/ItemHighlight.vue","webpack:///./src/features/shopping-list/components/ItemHighlight.vue?f36c","webpack:///./src/features/shopping-list/components/ItemHighlight.vue","webpack:///src/components/block/elements/ProductElement.vue","webpack:///./src/components/block/elements/ProductElement.vue?3974","webpack:///./src/components/block/elements/ProductElement.vue","webpack:///./src/components/block/elements/ProductCarousel.vue?18e4","webpack:///src/components/block/elements/ProductCarousel.vue","webpack:///./src/components/block/elements/ProductCarousel.vue?b37f","webpack:///./src/components/block/elements/ProductCarousel.vue","webpack:///./src/components/block/elements/ProductCarouselV2.vue?29a7","webpack:///src/components/block/elements/ProductCarouselV2.vue","webpack:///./src/components/block/elements/ProductCarouselV2.vue?f8ce","webpack:///./src/components/block/elements/ProductCarouselV2.vue","webpack:///./src/components/block/elements/AdElement.vue?107b","webpack:///./src/components/ExpandingDisclaimer.vue?43fe","webpack:///src/components/ExpandingDisclaimer.vue","webpack:///./src/components/ExpandingDisclaimer.vue?f86e","webpack:///./src/components/ExpandingDisclaimer.vue","webpack:///src/components/block/elements/AdElement.vue","webpack:///./src/components/block/elements/AdElement.vue?54aa","webpack:///./src/components/block/elements/AdElement.vue?8bd6","webpack:///./src/components/block/elements/ProductBlockVideoElement.vue?7e59","webpack:///./src/features/inblock-videos/InblockVideosMixin.js","webpack:///./src/features/inblock-videos/FullBlockVideo.vue?1f64","webpack:///src/features/inblock-videos/FullBlockVideo.vue","webpack:///./src/features/inblock-videos/FullBlockVideo.vue?20ac","webpack:///./src/features/inblock-videos/FullBlockVideo.vue","webpack:///./src/features/inblock-videos/PartialBlockVideo.vue?6661","webpack:///src/features/inblock-videos/PartialBlockVideo.vue","webpack:///./src/features/inblock-videos/PartialBlockVideo.vue?3aee","webpack:///./src/features/inblock-videos/PartialBlockVideo.vue","webpack:///src/components/block/elements/ProductBlockVideoElement.vue","webpack:///./src/components/block/elements/ProductBlockVideoElement.vue?b111","webpack:///./src/components/block/elements/ProductBlockVideoElement.vue","webpack:///src/components/block/FlyerBlock.vue","webpack:///./src/components/block/FlyerBlock.vue?b3ac","webpack:///./src/components/block/FlyerBlock.vue","webpack:///src/components/flyerSection.component.vue","webpack:///./src/components/flyerSection.component.vue?a362","webpack:///./src/components/flyerSection.component.vue?5357","webpack:///src/components/responsiveGrid.component.vue","webpack:///./src/components/responsiveGrid.component.vue?a617","webpack:///./src/components/responsiveGrid.component.vue?a7f9","webpack:///./src/components/SearchResults.vue?be9e","webpack:///./src/components/scroll-container/ScrollContainer.vue?2264","webpack:///./src/classes/ScrollZoom.js","webpack:///./src/components/scroll-container/ScrollBar.vue?31aa","webpack:///src/components/scroll-container/ScrollBar.vue","webpack:///./src/components/scroll-container/ScrollBar.vue?c1e2","webpack:///./src/components/scroll-container/ScrollBar.vue?c95d","webpack:///./src/components/buttons/PoweredByTC.vue?6ed0","webpack:///src/components/buttons/PoweredByTC.vue","webpack:///./src/components/buttons/PoweredByTC.vue?6f32","webpack:///./src/components/buttons/PoweredByTC.vue","webpack:///src/components/scroll-container/ScrollContainer.vue","webpack:///./src/components/scroll-container/ScrollContainer.vue?1446","webpack:///./src/components/scroll-container/ScrollContainer.vue?0838","webpack:///src/components/SearchResults.vue","webpack:///./src/components/SearchResults.vue?0301","webpack:///./src/components/SearchResults.vue?5ff5","webpack:///./src/components/Toasts/FeatureToast.vue?1b7a","webpack:///./src/features/help/HelpScreen.vue?b200","webpack:///./src/features/help/HelpSection.vue?6ddd","webpack:///./src/features/help/HelpScreenItem.vue?4817","webpack:///src/features/help/HelpScreenItem.vue","webpack:///./src/features/help/HelpScreenItem.vue?06b4","webpack:///./src/features/help/HelpScreenItem.vue","webpack:///src/features/help/HelpSection.vue","webpack:///./src/features/help/HelpSection.vue?3dbc","webpack:///./src/features/help/HelpSection.vue","webpack:///./src/components/style-injector/ConfigStyleInjector.vue?36e3","webpack:///src/components/style-injector/ConfigStyleInjector.vue","webpack:///./src/components/style-injector/ConfigStyleInjector.vue?2dfb","webpack:///./src/components/style-injector/ConfigStyleInjector.vue?7835","webpack:///src/features/help/HelpScreen.vue","webpack:///./src/features/help/HelpScreen.vue?5e1d","webpack:///./src/features/help/HelpScreen.vue","webpack:///src/components/Toasts/FeatureToast.vue","webpack:///./src/components/Toasts/FeatureToast.vue?1387","webpack:///./src/components/Toasts/FeatureToast.vue","webpack:///./src/components/Toasts/TourWindow.vue?fdf4","webpack:///src/components/Toasts/TourWindow.vue","webpack:///./src/components/Toasts/TourWindow.vue?8710","webpack:///./src/components/Toasts/TourWindow.vue","webpack:///./src/features/video-modal/VideoModal.vue?d4ff","webpack:///src/features/video-modal/VideoModal.vue","webpack:///./src/features/video-modal/VideoModal.vue?53e3","webpack:///./src/features/video-modal/VideoModal.vue","webpack:///./src/features/pdp/PdpPopup.vue?990b","webpack:///src/features/pdp/PdpPopup.vue","webpack:///./src/features/pdp/PdpPopup.vue?1059","webpack:///./src/features/pdp/PdpPopup.vue","webpack:///./src/features/pdp/PdpPopupV1.vue?11ae","webpack:///src/features/pdp/PdpPopupV1.vue","webpack:///./src/features/pdp/PdpPopupV1.vue?7d1b","webpack:///./src/features/pdp/PdpPopupV1.vue","webpack:///./src/features/shopping-list/ShoppingList.vue?d079","webpack:///src/features/shopping-list/ShoppingList.vue","webpack:///./src/features/shopping-list/ShoppingList.vue?7654","webpack:///./src/features/shopping-list/ShoppingList.vue","webpack:///./src/features/shopping-list/ShoppingListV1.vue?39b3","webpack:///src/features/shopping-list/ShoppingListV1.vue","webpack:///./src/features/shopping-list/ShoppingListV1.vue?a9b7","webpack:///./src/features/shopping-list/ShoppingListV1.vue","webpack:///./src/features/shopping-list/ShoppingListV2.vue?bcbe","webpack:///src/features/shopping-list/ShoppingListV2.vue","webpack:///./src/features/shopping-list/ShoppingListV2.vue?9981","webpack:///./src/features/shopping-list/ShoppingListV2.vue","webpack:///./src/components/drawer/DrawerContainer.vue?e4e7","webpack:///src/components/drawer/DrawerContainer.vue","webpack:///./src/components/drawer/DrawerContainer.vue?669c","webpack:///./src/components/drawer/DrawerContainer.vue?25b4","webpack:///./src/features/flyer-selector/FlyerSelectorController.vue?e5d1","webpack:///./src/features/filters/FilterDropdown.vue?70a8","webpack:///./src/components/bp-vuejs-dropdown/Dropdown.vue?aaa9","webpack:///src/components/bp-vuejs-dropdown/Dropdown.vue","webpack:///./src/components/bp-vuejs-dropdown/Dropdown.vue?40cd","webpack:///./src/components/bp-vuejs-dropdown/Dropdown.vue?a9a9","webpack:///src/features/filters/FilterDropdown.vue","webpack:///./src/features/filters/FilterDropdown.vue?76fb","webpack:///./src/features/filters/FilterDropdown.vue","webpack:///./src/features/filters/SearchBarFilter.vue?395a","webpack:///src/features/filters/SearchBarFilter.vue","webpack:///./src/features/filters/SearchBarFilter.vue?36e0","webpack:///./src/features/filters/SearchBarFilter.vue?d6a4","webpack:///./src/features/filters/ToggleButtonFilter.vue?f45e","webpack:///src/features/filters/ToggleButtonFilter.vue","webpack:///./src/features/filters/ToggleButtonFilter.vue?5208","webpack:///./src/features/filters/ToggleButtonFilter.vue?06a7","webpack:///./src/features/filters/buttons/ClearFilterButton.vue?079f","webpack:///src/features/filters/buttons/ClearFilterButton.vue","webpack:///./src/features/filters/buttons/ClearFilterButton.vue?41b9","webpack:///./src/features/filters/buttons/ClearFilterButton.vue","webpack:///./src/components/header/Separator.vue?9582","webpack:///src/components/header/Separator.vue","webpack:///./src/components/header/Separator.vue?4d7f","webpack:///./src/components/header/Separator.vue?e3f8","webpack:///./src/features/ControlPanel.vue?c683","webpack:///src/features/ControlPanel.vue","webpack:///./src/features/ControlPanel.vue?09cb","webpack:///./src/features/ControlPanel.vue","webpack:///./src/features/ControlPanelV2.vue?c85f","webpack:///src/features/ControlPanelV2.vue","webpack:///./src/features/ControlPanelV2.vue?4e90","webpack:///./src/features/ControlPanelV2.vue","webpack:///./src/features/filters/FilterPanel.vue?440b","webpack:///./src/components/buttons/ToggleFilterButton.vue?6db7","webpack:///src/components/buttons/ToggleFilterButton.vue","webpack:///./src/components/buttons/ToggleFilterButton.vue?37bf","webpack:///./src/components/buttons/ToggleFilterButton.vue","webpack:///src/features/filters/FilterPanel.vue","webpack:///./src/features/filters/FilterPanel.vue?3e04","webpack:///./src/features/filters/FilterPanel.vue","webpack:///./src/features/masthead/LogoDatePanel.vue?25cc","webpack:///./src/features/masthead/FlyerValidityDates.vue?9422","webpack:///src/features/masthead/FlyerValidityDates.vue","webpack:///./src/features/masthead/FlyerValidityDates.vue?5e1d","webpack:///./src/features/masthead/FlyerValidityDates.vue","webpack:///src/features/masthead/LogoDatePanel.vue","webpack:///./src/features/masthead/LogoDatePanel.vue?a4f3","webpack:///./src/features/masthead/LogoDatePanel.vue","webpack:///./src/components/buttons/HelpButton.vue?fa3f","webpack:///src/components/buttons/HelpButton.vue","webpack:///./src/components/buttons/HelpButton.vue?34de","webpack:///./src/components/buttons/HelpButton.vue?b907","webpack:///./src/components/buttons/HelpButtonV2.vue?10f5","webpack:///src/components/buttons/HelpButtonV2.vue","webpack:///./src/components/buttons/HelpButtonV2.vue?fd22","webpack:///./src/components/buttons/HelpButtonV2.vue","webpack:///./src/components/buttons/ZoomControls.vue?b08f","webpack:///src/components/buttons/ZoomControls.vue","webpack:///./src/components/buttons/ZoomControls.vue?d233","webpack:///./src/components/buttons/ZoomControls.vue?5fcb","webpack:///./src/components/buttons/ZoomControlsV2.vue?80f9","webpack:///src/components/buttons/ZoomControlsV2.vue","webpack:///./src/components/buttons/ZoomControlsV2.vue?61b0","webpack:///./src/components/buttons/ZoomControlsV2.vue","webpack:///./src/components/buttons/ToggleFlyerOrientationButton.vue?a5da","webpack:///src/components/buttons/ToggleFlyerOrientationButton.vue","webpack:///./src/components/buttons/ToggleFlyerOrientationButton.vue?7ff3","webpack:///./src/components/buttons/ToggleFlyerOrientationButton.vue?dd8e","webpack:///./src/components/buttons/ToggleFlyerOrientationButtonV2.vue?2a98","webpack:///src/components/buttons/ToggleFlyerOrientationButtonV2.vue","webpack:///./src/components/buttons/ToggleFlyerOrientationButtonV2.vue?9816","webpack:///./src/components/buttons/ToggleFlyerOrientationButtonV2.vue","webpack:///./src/components/buttons/ToggleFullscreenButton.vue?6544","webpack:///src/components/buttons/ToggleFullscreenButton.vue","webpack:///./src/components/buttons/ToggleFullscreenButton.vue?bcb3","webpack:///./src/components/buttons/ToggleFullscreenButton.vue","webpack:///./src/components/buttons/ToggleFullscreenButtonV2.vue?02dd","webpack:///src/components/buttons/ToggleFullscreenButtonV2.vue","webpack:///./src/components/buttons/ToggleFullscreenButtonV2.vue?6db7","webpack:///./src/components/buttons/ToggleFullscreenButtonV2.vue","webpack:///./src/components/buttons/PdfDownloadButton.vue?ff74","webpack:///src/components/buttons/PdfDownloadButton.vue","webpack:///./src/components/buttons/PdfDownloadButton.vue?2537","webpack:///./src/components/buttons/PdfDownloadButton.vue","webpack:///./src/components/buttons/PdfDownloadButtonV2.vue?535a","webpack:///src/components/buttons/PdfDownloadButtonV2.vue","webpack:///./src/components/buttons/PdfDownloadButtonV2.vue?c17c","webpack:///./src/components/buttons/PdfDownloadButtonV2.vue","webpack:///./src/components/buttons/ShoppingListToggleButton.vue?bcef","webpack:///src/components/buttons/ShoppingListToggleButton.vue","webpack:///./src/components/buttons/ShoppingListToggleButton.vue?2eb9","webpack:///./src/components/buttons/ShoppingListToggleButton.vue","webpack:///./src/components/buttons/ShoppingListToggleButtonV2.vue?a6ac","webpack:///src/components/buttons/ShoppingListToggleButtonV2.vue","webpack:///./src/components/buttons/ShoppingListToggleButtonV2.vue?2341","webpack:///./src/components/buttons/ShoppingListToggleButtonV2.vue","webpack:///./src/features/filters/buttons/FilterDrawerToggleButton.vue?47a3","webpack:///src/features/filters/buttons/FilterDrawerToggleButton.vue","webpack:///./src/features/filters/buttons/FilterDrawerToggleButton.vue?0876","webpack:///./src/features/filters/buttons/FilterDrawerToggleButton.vue","webpack:///./src/features/filters/SearchBarFilterStandAlone.vue?20f7","webpack:///src/features/filters/SearchBarFilterStandAlone.vue","webpack:///./src/features/filters/SearchBarFilterStandAlone.vue?67d2","webpack:///./src/features/filters/SearchBarFilterStandAlone.vue","webpack:///./src/components/buttons/HamburgerMenuButton.vue?d6d5","webpack:///src/components/buttons/HamburgerMenuButton.vue","webpack:///./src/components/buttons/HamburgerMenuButton.vue?1ba4","webpack:///./src/components/buttons/HamburgerMenuButton.vue","webpack:///./src/components/buttons/HamburgerMenuButtonV2.vue?6179","webpack:///src/components/buttons/HamburgerMenuButtonV2.vue","webpack:///./src/components/buttons/HamburgerMenuButtonV2.vue?493b","webpack:///./src/components/buttons/HamburgerMenuButtonV2.vue","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelector.vue?0ef2","webpack:///./src/features/flyer-selector/FlyerThumbList.vue?d942","webpack:///./src/features/flyer-selector/FlyerThumbButton.vue?eb8b","webpack:///./src/components/image/AspectImg.vue?bef7","webpack:///src/components/image/AspectImg.vue","webpack:///./src/components/image/AspectImg.vue?9e6b","webpack:///./src/components/image/AspectImg.vue?423c","webpack:///src/features/flyer-selector/FlyerThumbButton.vue","webpack:///./src/features/flyer-selector/FlyerThumbButton.vue?b1f6","webpack:///./src/features/flyer-selector/FlyerThumbButton.vue","webpack:///./src/features/flyer-selector/FlyerThumbButtonVertical.vue?f9bc","webpack:///src/features/flyer-selector/FlyerThumbButtonVertical.vue","webpack:///./src/features/flyer-selector/FlyerThumbButtonVertical.vue?a0be","webpack:///./src/features/flyer-selector/FlyerThumbButtonVertical.vue","webpack:///src/features/flyer-selector/FlyerThumbList.vue","webpack:///./src/features/flyer-selector/FlyerThumbList.vue?56f5","webpack:///./src/features/flyer-selector/FlyerThumbList.vue","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelectorDefault.vue?6587","webpack:///./src/components/buttons/RotateChevron.vue?a356","webpack:///src/components/buttons/RotateChevron.vue","webpack:///./src/components/buttons/RotateChevron.vue?7b12","webpack:///./src/components/buttons/RotateChevron.vue?7c67","webpack:///./src/features/flyer-selector/inline/PoweredByTC.vue?1ba3","webpack:///src/features/flyer-selector/inline/PoweredByTC.vue","webpack:///./src/features/flyer-selector/inline/PoweredByTC.vue?3fd5","webpack:///./src/features/flyer-selector/inline/PoweredByTC.vue","webpack:///src/features/flyer-selector/inline/InlineFlyerSelectorDefault.vue","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelectorDefault.vue?414f","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelectorDefault.vue","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelectorCTC.vue?38bc","webpack:///src/features/flyer-selector/inline/InlineFlyerSelectorCTC.vue","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelectorCTC.vue?1fbc","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelectorCTC.vue","webpack:///src/features/flyer-selector/inline/InlineFlyerSelector.vue","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelector.vue?ce25","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelector.vue","webpack:///./src/features/email-signup/emailSignupButton.vue?6fb6","webpack:///src/features/email-signup/emailSignupButton.vue","webpack:///./src/features/email-signup/emailSignupButton.vue?7170","webpack:///./src/features/email-signup/emailSignupButton.vue","webpack:///./src/features/email-signup/emailSignupButtonV2.vue?01c2","webpack:///src/features/email-signup/emailSignupButtonV2.vue","webpack:///./src/features/email-signup/emailSignupButtonV2.vue?bd82","webpack:///./src/features/email-signup/emailSignupButtonV2.vue","webpack:///./src/features/filters/range/RangeFilter.vue?bb1b","webpack:///./src/features/filters/range/RangeDropdown.vue?e356","webpack:///./src/features/filters/range/RangeList.vue?14bd","webpack:///src/features/filters/range/RangeList.vue","webpack:///./src/features/filters/range/RangeList.vue?9846","webpack:///./src/features/filters/range/RangeList.vue","webpack:///src/features/filters/range/RangeDropdown.vue","webpack:///./src/features/filters/range/RangeDropdown.vue?be01","webpack:///./src/features/filters/range/RangeDropdown.vue","webpack:///./src/features/filters/range/RangeInline.vue?0bf6","webpack:///src/features/filters/range/RangeInline.vue","webpack:///./src/features/filters/range/RangeInline.vue?4fc8","webpack:///./src/features/filters/range/RangeInline.vue","webpack:///src/features/filters/range/RangeFilter.vue","webpack:///./src/features/filters/range/RangeFilter.vue?23f3","webpack:///./src/features/filters/range/RangeFilter.vue","webpack:///./src/features/share/ShareButton.vue?3a3f","webpack:///src/features/share/ShareButton.vue","webpack:///./src/features/share/ShareButton.vue?b4a2","webpack:///./src/features/share/ShareButton.vue","webpack:///./src/features/favourites/favsButton.vue?8fb6","webpack:///src/features/favourites/favsButton.vue","webpack:///./src/features/favourites/favsButton.vue?bce9","webpack:///./src/features/favourites/favsButton.vue","webpack:///./src/features/raddar/buttons/RaddarFilterToggleButton.vue?bf0e","webpack:///src/features/raddar/buttons/RaddarFilterToggleButton.vue","webpack:///./src/features/raddar/buttons/RaddarFilterToggleButton.vue?d68b","webpack:///./src/features/raddar/buttons/RaddarFilterToggleButton.vue","webpack:///./src/features/FeatureHelper.js","webpack:///./src/features/other-flyers/Sidebar.vue?59d9","webpack:///./src/components/PublicationPreview.vue?6b1c","webpack:///src/components/PublicationPreview.vue","webpack:///./src/components/PublicationPreview.vue?b9c0","webpack:///./src/components/PublicationPreview.vue","webpack:///src/features/other-flyers/Sidebar.vue","webpack:///./src/features/other-flyers/Sidebar.vue?3f00","webpack:///./src/features/other-flyers/Sidebar.vue?bf6e","webpack:///src/features/flyer-selector/FlyerSelectorController.vue","webpack:///./src/features/flyer-selector/FlyerSelectorController.vue?40f0","webpack:///./src/features/flyer-selector/FlyerSelectorController.vue?1437","webpack:///./src/features/offers/classes/BlockGen.js","webpack:///./src/features/offers/TriangleRewardsCard.vue?82b4","webpack:///src/features/offers/TriangleRewardsCard.vue","webpack:///./src/features/offers/TriangleRewardsCard.vue?8de0","webpack:///./src/features/offers/TriangleRewardsCard.vue","webpack:///./src/features/offers/classes/TrianglePageGen.js","webpack:///./src/features/deeplinking/DeepLinkController.vue?0199","webpack:///src/features/deeplinking/DeepLinkController.vue","webpack:///./src/features/deeplinking/DeepLinkController.vue?d831","webpack:///./src/features/deeplinking/DeepLinkController.vue?be3e","webpack:///./src/components/iFrameRelay/IframeRelay.vue?05d7","webpack:///src/components/iFrameRelay/IframeRelay.vue","webpack:///./src/components/iFrameRelay/IframeRelay.vue?a535","webpack:///./src/components/iFrameRelay/IframeRelay.vue","webpack:///./src/features/raddar/RaddarSync.vue?1545","webpack:///./src/features/raddar/store/raddar.js","webpack:///src/features/raddar/RaddarSync.vue","webpack:///./src/features/raddar/RaddarSync.vue?65a2","webpack:///./src/features/raddar/RaddarSync.vue","webpack:///./src/components/header/AppHeader.vue?b08f","webpack:///src/components/header/AppHeader.vue","webpack:///./src/components/header/AppHeader.vue?d5ff","webpack:///./src/components/header/AppHeader.vue","webpack:///./src/features/pdp/PDP.vue?2d55","webpack:///./src/features/pdp/templates/PdpRaddar.vue?e1ce","webpack:///./src/features/pdp/buttons/ShoppingListButton.vue?c9f2","webpack:///src/features/pdp/buttons/ShoppingListButton.vue","webpack:///./src/features/pdp/buttons/ShoppingListButton.vue?359d","webpack:///./src/features/pdp/buttons/ShoppingListButton.vue","webpack:///src/features/pdp/templates/PdpRaddar.vue","webpack:///./src/features/pdp/templates/PdpRaddar.vue?5039","webpack:///./src/features/pdp/templates/PdpRaddar.vue","webpack:///./src/features/pdp/PDP_Constants.js","webpack:///./src/features/pdp/templates/PdpDefault.vue?e21e","webpack:///src/features/pdp/templates/PdpDefault.vue","webpack:///./src/features/pdp/templates/PdpDefault.vue?4275","webpack:///./src/features/pdp/templates/PdpDefault.vue","webpack:///./src/features/pdp/templates/PdpDefaultV1.vue?06e6","webpack:///src/features/pdp/templates/PdpDefaultV1.vue","webpack:///./src/features/pdp/templates/PdpDefaultV1.vue?d480","webpack:///./src/features/pdp/templates/PdpDefaultV1.vue","webpack:///./src/features/pdp/templates/PdpV2.vue?c2ae","webpack:///src/features/pdp/templates/PdpV2.vue","webpack:///./src/features/pdp/templates/PdpV2.vue?321b","webpack:///./src/features/pdp/templates/PdpV2.vue","webpack:///./src/features/pdp/templates/PDPV3.vue?b248","webpack:///src/features/pdp/templates/PDPV3.vue","webpack:///./src/features/pdp/templates/PDPV3.vue?f5ee","webpack:///./src/features/pdp/templates/PDPV3.vue","webpack:///./src/features/pdp/templates/RaddarPDPOld.vue?3791","webpack:///src/features/pdp/templates/RaddarPDPOld.vue","webpack:///./src/features/pdp/templates/RaddarPDPOld.vue?2868","webpack:///./src/features/pdp/templates/RaddarPDPOld.vue","webpack:///./src/classes/PersistentData.js","webpack:///./src/features/shopping-list/classes/ShoppingListController.js","webpack:///./src/features/pdp/templates/PdpRexallRaddar.vue?e822","webpack:///src/features/pdp/templates/PdpRexallRaddar.vue","webpack:///./src/features/pdp/templates/PdpRexallRaddar.vue?ab61","webpack:///./src/features/pdp/templates/PdpRexallRaddar.vue","webpack:///./src/features/pdp/templates/pdpJeanCoutuRaddar.vue?194b","webpack:///src/features/pdp/templates/pdpJeanCoutuRaddar.vue","webpack:///./src/features/pdp/templates/pdpJeanCoutuRaddar.vue?139c","webpack:///./src/features/pdp/templates/pdpJeanCoutuRaddar.vue","webpack:///src/features/pdp/PDP.vue","webpack:///./src/features/pdp/PDP.vue?0ffb","webpack:///./src/features/pdp/PDP.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue?bff9","webpack:///./src/views/ErrorPage.vue?582b","webpack:///src/views/ErrorPage.vue","webpack:///./src/views/ErrorPage.vue?b6e8","webpack:///./src/views/ErrorPage.vue?8e7f","webpack:///./src/router/index.js","webpack:///./src/utils.js","webpack:///./src/api/Service.js","webpack:///./src/store/modules/categories.js","webpack:///./src/api/Search.js","webpack:///./src/store/modules/search.js","webpack:///./src/store/modules/screen.js","webpack:///./src/store/modules/toast.js","webpack:///./src/store/modules/landingPage.js","webpack:///./src/store/modules/config.js","webpack:///./src/features/shopping-list/store/shoppingList.js","webpack:///./src/store/modules/deepLinking.js","webpack:///./src/features/filters/store/filters.js","webpack:///./src/features/pdp/store/pdp.js","webpack:///./src/store/modules/header.js","webpack:///./src/store/modules/drawer.js","webpack:///./src/features/offers/classes/CTParent.js","webpack:///./src/features/offers/api/PersonalizationApi.js","webpack:///./src/features/offers/OfferListItem.vue?f38c","webpack:///src/features/offers/OfferListItem.vue","webpack:///./src/features/offers/OfferListItem.vue?9c89","webpack:///./src/features/offers/OfferListItem.vue","webpack:///./src/features/offers/store/ctUser.js","webpack:///./src/store/modules/events.js","webpack:///./src/store/index.js","webpack:///./src/api/Rest.js","webpack:///src/AppWrapper.vue","webpack:///./src/AppWrapper.vue?4e0a","webpack:///./src/AppWrapper.vue","webpack:///./src/main.js","webpack:///./src/App.vue?c650","webpack:///./src/features/filters/FilterPanel.vue?eac4","webpack:///./src/components/buttons/ToggleFilterButton.vue?34c4","webpack:///./src/features/shopping-list/ShoppingList.vue?1109","webpack:///./src/features/pdp/templates/PdpDefaultV1.vue?4d46","webpack:///./src/components/buttons/ToggleFullscreenButtonV2.vue?f402","webpack:///./src/views/ErrorPage.vue?0164","webpack:///./src/App.vue?b7dd","webpack:///./src/components/bp-vuejs-dropdown/Dropdown.vue?dc47","webpack:///./src/components/buttons/ShoppingListToggleButtonV2.vue?f889","webpack:///./src/features/other-flyers/Sidebar.vue?df33","webpack:///./src/components/Toasts/TourWindow.vue?217f","webpack:///./src/components/buttons/HamburgerMenuButtonV2.vue?3cdb","webpack:///./src/components/block/elements/ProductCarousel.vue?b89e","webpack:///./src/features/filters/range/RangeDropdown.vue?1fec","webpack:///./src/features/filters/SearchBarFilter.vue?6b0c","webpack:///./src/features/filters/buttons/FilterDrawerToggleButton.vue?a8ee","webpack:///./src/components/lists/AdvTitledList.vue?8126","webpack:///./src/features/filters/FilterDropdown.vue?43b7","webpack:///./src/components/buttons/RotateChevron.vue?18fe","webpack:///./src/components/responsiveGrid.component.vue?330b","webpack:///./src/components/block/elements/AdElement.vue?79d1","webpack:///./src/features/shopping-list/components/ItemHighlight.vue?6fe2","webpack:///./src/components/header/AppHeader.vue?0d3b","webpack:///./src/features/offers/TriangleRewardsCard.vue?8b82","webpack:///./src/features/pdp/templates/PdpDefault.vue?9bd1","webpack:///./src/components/buttons/HelpButtonV2.vue?9b2b","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelector.vue?fc7b","webpack:///./src/components/header/Separator.vue?0d27","webpack:///./src/components/lists/AdvListItem.vue?33b8","webpack:///./src/features/offers/TriangleRewardsCard.vue?ad2d","webpack:///./src/components/drawer/DrawerContainer.vue?c96d","webpack:///./src/features/filters/range/RangeList.vue?cff5","webpack:///./src/features/masthead/LogoDatePanel.vue?3967","webpack:///./src/features/pdp/buttons/ShoppingListButton.vue?eb03","webpack:///./src/features/shopping-list/ShoppingListV2.vue?7474","webpack:///./src/features/flyer-selector/inline/InlineFlyerSelectorCTC.vue?b510","webpack:///./src/features/ControlPanelV2.vue?7590","webpack:///./src/features/flyer-selector/FlyerThumbButtonVertical.vue?82e1","webpack:///./src/components/buttons/HelpButton.vue?5a5c","webpack:///./src/components/block/elements/ProductElement.vue?0c2e","webpack:///./src/components/PublicationPreview.vue?febf","webpack:///./src/features/raddar/buttons/RaddarFilterToggleButton.vue?1869","webpack:///./src/features/pdp/PdpPopupV1.vue?c9aa","webpack:///./src/features/email-signup/emailSignupButtonV2.vue?846e","webpack:///./src/features/raddar/RaddarSync.vue?eea8","webpack:///./src/components/buttons/ToggleFlyerOrientationButtonV2.vue?ee20","webpack:///./src/components/scroll-container/ScrollBar.vue?d9bf","webpack:///./src/features/favourites/favsButton.vue?1cf3","webpack:///./src/components/buttons/PdfDownloadButtonV2.vue?fa7f","webpack:///./src/features/ControlPanel.vue?fe8b","webpack:///./src/features/flyer-selector/FlyerSelectorController.vue?b0d7","webpack:///./src/features/pdp/PDP.vue?f651","webpack:///./src/features/flyer-selector/FlyerThumbButton.vue?5c31","webpack:///./src/features/share/ShareButton.vue?ab84","webpack:///./src/App.vue?1895","webpack:///./src/components/style-injector/ConfigStyleInjector.vue?d216","webpack:///./src/App.vue?a130","webpack:///./src/features/pdp/templates/RaddarPDPOld.vue?6824","webpack:///./src/components/buttons/ZoomControlsV2.vue?43dd","webpack:///./src/components/image/AspectImg.vue?5162","webpack:///./src/features/pdp/PdpPopup.vue?d106","webpack:///./src/components/buttons/RotateChevron.vue?4ebb","webpack:///./src/features/video-modal/VideoModal.vue?7b53","webpack:///./src/components/SearchResults.vue?5595","webpack:///./src/features/pdp/templates/PDPV3.vue?80f2","webpack:///./src/features/inblock-videos/PartialBlockVideo.vue?ea33"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","titleData","on","onTitleSelect","toggleCollapse","$event","type","indexOf","_k","keyCode","arguments","_v","_s","collapseIcon","_e","class","collapsed","filteredItems","$emit","showAll","title","_t","staticRenderFns","_l","item","index","subItems","clickable","_d","handleClick","clickEvent","autoMode","itemData","domProps","label","applyHighlights","text","highlights","a","b","hl","forEach","sliceStart","props","computed","component","selected","checkbox","default","components","style","altPrice","price","validTo","imgStyle","backgroundImage","format","items","Array","ready","$route","isRaddar","flyerOrientation","fullScreenToggle","isMobile","displayMode","tourVisible","loading","rootStyle","highlightStyle","directives","rawName","expression","staticStyle","branding","secondaryColor","content","searchClient","searchIndex","disabled","isDropdownOpen","getSLTemplate","tag","currentFlyer","currentZoom","ref","searchIsVisible","zoomLevel","onScrollChange","onScrollContainerReady","onScrollContainerResize","scopedSlots","_u","fn","hideLeftArrow","currentPage","totalPages","hideRightArrow","proxy","hideUpArrow","hideDownArrow","pages","zIndex","columnView","noGapAttr","flyerPages","documentName","page_num","rootScrollContainer","searchResults","displayPage","page","includes","redPages","isAdPage","noGap","pageNum","generateBlockKey","assign","pageHeight","pageWidth","unitWidth","unitHeight","basebarLink","handleBasebarClick","basebarImagePath","disclaimer","applyValues","source","isArray","op","sp","sanitizeProp","applyDirective","match","replace","applySelfValues","regex","regex2","isString","replaceAll","String","toBool","sanitized","trim","toLowerCase","isNumber","Boolean","Number","search","moment","utc","parseInt","ApplySelfValues","postMessage","message","targetOrigin","stringyfy","parent","JSON","stringify","console","log","ParentComms","event","SendData","direction","dataLayer","pushData","Lytics","opts","url","TriggerEvent","location","href","document","details","flyerName","device_screen","page_number","isOpen","action","productName","extra","name_en","name_fr","product_id","sale_price","category","category_2","image_url","quantity","ClearEcommerce","ecommerce","discount","filter_name","filter_selected","request","query","progress","totalSteps","tutorial_progress","tutorial_total_steps","TriggerSelectItem","item_list_name","carousel_url","isFullscreen","fullscreen","orientation","TriggerOrientationStatus","link_url","total_click_include","TriggerLinkClick","ad_url","duration","video_url","video_duration","position","video_watched","isZoomIn","eventQueue","startQueueTimer","queueTimer","setTimeout","sendEventQueue","queueTimeout","batchedEvents","batch","clearTimeout","flyer","client","banner","store_id","platform","imp_client","imp_banner","imp_store_id","imp_store_name","storeName","imp_version_id","zonedPublicationName","imp_platform","imp_deal_id","imp_end_date","endDate","imp_start_date","startDate","imp_language","language","imp_job_name","jobName","imp_region","province","size","ad_name","ad_image_url","ad_size","animated_graphic_url","frame","frame_count","carousel_id","carousel_frame","carousel_frame_max","scroll_direction","config","mergeConfigs","files","fetch","json","merge","conf","arg","ver","Math","random","AppConf","flyerConfig","_config","events","eventData","ObjPropParser","Parse","pageBounds","pageMode","schema","getSchema","parse","calcGrids","blocks","grid","totalBlocks","block","rowSpan","colSpan","gridSchema","rowCount","colCount","AppConfig","sort","maxCols","min","ceil","sqrt","max","Page","pageType","grids","layout","pageTypeName","gridContainer","getElementsByClassName","containerBounds","getBoundingClientRect","baseBar","boxHeight","gridHeight","height","container","scroll","abs","scrollLeft","innerWidth","scaleDiff","maxScroll","scrollWidth","scrollDiff","querySelectorAll","bhw","scrollMax","containerMax","maxLeft","round","state","zoomMin","zoomMax","zoomIncrement","minScale","baseScale","flyerHeight","transformOrigin","scrollOffset","currentScale","scrollY","scrollX","manualZoom","getZoomDPI","dpiDim","dpiNorm","zoomDpi","devicePixelRatio","visualViewport","scale","dpis","dpi","pop","getters","defPage","rootState","dp","find","SetDefPage","defPageGrid","rootGetters","DPIs","avc","images","image","res","resolution","h","w","width","DPINormal","uw","uh","closest","ldpi","delta","ldelta","imageDPI","actions","setZoomLevel","val","commit","zoomIn","dispatch","zoomOut","zoomNormal","updateScale","setScrollY","updateScrollX","setManualZoom","mutations","SET_CURRENT_SCALE","SET_SCROLL_Y","UPDATE_SCROLL_X","SET_ZOOM_LEVEL","newZoom","SendEvent","SET_MANUAL_ZOOM","namespaced","getClosestDPI","img","callback","onVisibilityChange","throttle","intersection","getObserverOptions","classes","blockComponent","blockRef","blockData","isVisible","seen","blockKey","isFillerBlock","linkUrlEvent","highlightResults","_b","$props","product","_g","sku","blockId","hidePlayBtn","$listeners","products","expand","isExpanded","src","productDesc","FlyerBlock","applyMergedData","md","target","charAt","cp","expandProp","obj","prop","split","expandObject","checkScreenSize","screen","sizes","ss","localeCompare","undefined","numeric","bp","featureConfig","featureConfigPath","featurePath","featureEvents","mounted","addFeatureEventListener","func","onFeatureEvent","beforeDestroy","removeFeatureEventListener","mapGetters","mapState","_featurePath","features","__self","enabled","_screen","sv","_display","disp","_flyerOrientation","fo","displayConfig","methods","mapActions","getFillVal","stopPropagation","onClick","region","hide","isVideo","getRegionStyle","contents","isFileFormat","checkWebMSupport","v","$refs","video","play","urlHasProtocol","protocolRegex","test","required","mixins","featureMixin","priceQty","qty","extractProductProp","bodyEn","bilingualCopy","pricePrefix","limitQty","rowSave","rowPrice","isNaN","parseFloat","toFixed","formatCurrency","rowPriceUnit","rowPriceQty","salePrice","memberPrice","memberPriceQty","memberPricePrefix","memberPriceUnit","memberSavePrefix","memberSave","memberSaveSuffix","alternatePrice","promoUnit","priceLine","savings","hideSavings","savingsPrefix","savingsSuffix","loyalty","loyaltyPrefix","loyaltySuffix","description","hideDetails","htmlDescription","productURLLDF","utm","utm_source","utm_medium","formattedDate","flyerCategory","utm_campaign","dealId","productURL","isProductURL","pdp","disableShopNow","flyerType","clickRegionWithUrl","clickRegions","clickRegion","productImage","useBlockImage","findLast","showProductName","useRow","vfr","startOf","vft","endOf","isBetween","validFrom","useFlyerValidity","formatDate","htmlValidity","langStrict","lang","strict","capitalize","loose","currency","str","replacedString","date","locale","PRODUCT_REGION_CLICK","PRODUCT_REGION_CLICK_WITH_SKU","PRODUCT_REGION_CLICK_EXTERNAL_LINK","PRODUCT_REGION_CLICK_IN_BLOCK_VIDEO","PRODUCT_REGION_CLICK_VIDEO","isAd","banners","rect","left","top","Fragment","updateMask","$nextTick","element","removeAttribute","setAttribute","watch","maskImage","rects","parsedRects","viewBox","join","concat","vx","vy","vh","vw","color","transitionClass","controls","advance","frameDuration","narration","navigationHandler","pageChange","initialSlide","currentSlide","slide","handleSlideClick","navBtns","btn","ariaLabel","containers","dots","dot","slideBlocks","isCarousel","featured","linkUrl","removeMargins","setContainerWidth","imgWidth","constraint","adSrc","border","useExpansion","addCollapsible","containerWidth","toggleExpand","flip","expanded","legalDisclaimer","posterSource","videoBlockType","showVideo","hidePlayButton","handleVClick","onRegionClick","handleSrcFromProduct","mobileControls","mobileClick","prod","actionType","contentSource","accessKey","isAutoplay","inblockAutoplay","hasAudio","inblockAudio","muteBtnIcon","videoMuted","playBtnIcon","videoPlaying","isLoop","inblockLoop","showControls","fileFormat","inblockControls","isPop","noPop","inverseScaling","inverseScale","transform","inverseImgScaling","minHeight","maxHeight","maxWidth","endsWith","isMobileAndTablet","handleDelay","toggleVideoPlay","toggleVideoMute","closeInBlockVideo","blockElementMixin","removeEventListener","onVideoEvent","pause","paused","isPlaying","muted","videoRegion","handleVideoRegion","pVideo","InblockVideosMixin","blockVideoState","videoProduct","skuLeft","skuRight","currentLoop","created","rf","currentPageNumber","setSku","handlePlay","imageSrc","isInViewPort","inBlockVisibleState","root","getElementById","rootMargin","marginIncluded","observerOptions","onViewPortChange","entries","isSearchResult","hasInBlockVideo","some","ProductCarousel","AdElement","ProductBlockVideoElement","ProductElement","placement","pm","hasPlacement","gridColumn","gridRow","order","display","videoUrl","productEn","productFr","regularPrice","mainCategoryEn","mainCategoryFr","subCategoryEn","subCategoryFr","ExpandingDisclaimer","fc","cols","filter","pageDom","showImages","virtualDisplayMode","currentSectionStyle","gridTemplateColumns","gridRowTemplate","basebarObj","basebars","highestRes","basebarStyle","bbid","bbcount","hasBasebar","device","visible","open","FlyerSection","pageCount","currentGrid","gridPhone","gridTablet","gridDesktop","currentLayoutDirection","dotStyle","currentGridStyle","0","1","gridTemplateRows","styles","narrowBroadOffset","outerWidth","LayoutDirections","HORIZONTAL","VERTICAL","allBlocks","activeSearch","blocksWithoutBasebars","winWidth","winHeight","pxRatio","gridWidth","visibleBlocks","desktopGridDefaultScale","mobileGridDefaultScale","gridScale","gridStyle2","fixedBasebars","gridPadding","blockSize","dotLeft","createDesktopGrid","createPhoneGrid","createTabletGrid","createGrid","rowsPerGroup","g","breakpoint","countPerRow","check","showMobileSearchBar","hits","onResize","generateResultsPageFromHits","noResultsMessage","getUrlParameter","resultsPage","poweredByTCWrapper","poweredByTC","button","scrollRight","scrollUp","scrollDown","handleCmd","isScrolling","show","showScrollBar","active","maxScrollX","alwaysShow","alwaysShowScroll","xViewPerc","handleScrollState","maxScrollY","yViewPErc","leftArrowVisible","enableScrollButtons","transparency","hasTransparentNavArrows","rightArrowVisible","upArrowVisible","downArrowVisible","scrollToTopVisible","enableScrollToTopButton","scrollToTop","constrainRect","pRect","cRect","align","trans","rectToJSON","pcx","x","right","y","bottom","inertia","ts","tc","ScrollZoom","vue","velocity","tempX","tempY","zStart","zoom","emit","applyTransform","pinched","deltaX","deltaY","overallVelocity","velocityX","velocityY","tx","ty","searchInputFocused","$store","isSearchInputFocused","resize","entry","contentRect","parentRect","containerResize","childRect","contentResize","ox","oy","offsetWidth","offsetHeight","triggerEvents","transAnimId","cancelAnimationFrame","calcRectTransform","newChildRect","newTransform","pendingEvents","requestAnimationFrame","ele","onChange","ease","mTrans","applyTransformDelta","fitAxis","maxW","fitScale","getFitHeightScale","getFitWidthScale","maxScale","getCurrentScale","diffScale","nRect","roundRect","parentDom","childDom","resizeAnimId","pr","emitChange","hammer","Hammer","touchLayer","observer","ResizeObserver","_onResize","observe","set","enable","threshold","pStart","pdt","center","touchstart","touchend","xd","yd","_inputStart","_inputEvent","_inputEnd","addEventListener","prevent","preventDefault","returnValue","getScrollY","getScrollMaxY","getScrollX","getScrollMaxX","passive","disconnect","destroy","floor","scroller","thumbSize","mc","tempDelta","distance","axis","trackMargin","trackStyle","syncGlobalZoom","enableScrollBars","scrollBarAutoSize","contentHeight","contentWidth","viewHeight","viewWidth","tid","timeout","_sz","getViewHeight","getViewWidth","update","_uid","metaKey","wheelScroll","momentum","getScale","scrollBarTimeoutID","additionalItemInputFocus","emailInputFocus","showSideBar","onScrollContainerZoom","eventScroll","getScroll","getController","getMaxScroll","focus","getContainerDom","poweredByTCVisible","$root","flyerDrawer","howto","help","toggleHelp","onScrollReady","info","tour","viewTour","section","itemHtml","iconHtml","icon","desc","HelpScreen","ScrollContainer","ClickOutside","toastContent","closeHelp","tourData","lastItem","isLastItem","skipCaption","skip","getIcon","nextCaption","next","calcDist","p1","p2","arrowPos","padding","subHeaderState","tourOrder","walkthrough","tourId","finish","restart","skipTour","totalItems","includeFilterPanel","isFilterPanelOpen","setFilterPanelState","refresh","dismissTour","tourWindow","wb","pos","targetMid","moveThumb","progressThumb","movement","maxThumbPosition","prev","closeTour","closeVideo","videoSrc","showPdp","closePdp","pdpTitle","pdpClose","currentProduct","productDescription","priceQuantity","salePricePrefixEn","salePriceFr","promoUnitEn","salePricePrefixFr","promoUnitFr","alternatePriceFr","savingsEn","pdpValidFrom","flyerDate","bodyFr","pdpDetails","checkProductInSL","handleRemoveFromList","pdpRemoveFromList","handleAddToList","pdpAddToList","productImageContainer","checkClient","is3DaySale","isBogo","getSalePrice","isSwipeAndSave","limit","tierEachPrice","getContents","shopNow","gotoInstaCart","pdpEnabled","close","handleFlyerDate","setAddToList","setRemoveFromList","detailText","innerHTML","pdpFocus","showFilters","closeShoppingList","$options","shoppingList","shoppingListTitle","handleQtyChange","shoppingListValidFrom","salePricePrefix","handleDeleteItem","deleteItem","noItemsInSLTitle","noItemsInSLMsg","addItemPlaceholder","setAdditionalItemInputFocus","handleAdditionalItem","composing","additionalItem","addItem","toggleEmail","email","getImage","handlePrint","toggleClear","clear","emailReady","emailSent","emailError","emailTitle","closeEmail","emailWarning","emailPlaceholder","setEmailInputFocus","handleEmail","emailAddress","isValidEmail","send","clearReady","clearDone","closeClear","clearTitle","handleClear","yes","no","emailSentTitle","emailSentMessage","emailSentMessage2","handleResend","emailSentResent","emailErrorTitle","emailErrorMsg1","emailErrorMsg2","emailErrorMsg3","clearDoneMessage","clearClose","closeShoppingListV1","shoppingListV1","rexall_productTitle","isRexall","deal","toggleShoppingList","quantityChange","setEmailError","printWindow","write","showShoppingListV1","toggleShoppingListV1","onClickOutside","RegExp","results","exec","decodeURIComponent","clearAll","shoppingProduct","dataset","styled","shoppingListPopUpFocus","closeShoppingListV2","shoppingListV2","formatPrice","hasPharma","showShoppingListV2","toggleShoppingListV2","drawer","comp","isInline","buttonCaption","enableToggleAll","onFilterToggle","_obj","_obj$1","className","role","isHidden","_onToggle","_onBtnEnter","_onBtnLeave","_onKeyEnter","_closeDropdown","isCTC","minWidth","_onBodyClick","_onBodyEnter","_onBodyLeave","_onKeyDown","_onTab","handleFilterType","fType","qo","sid","showHideDropdown","currentRefinement","indices","refine","focusPrevButton","focusNextButton","searchFlyer","currentTarget","handleFocus","hideDropdown","handleSubmit","clearSearch","dropdownVisible","checkIfHitsExist","filterIndices","indexId","formatName","indexName","hit","objectID","handleSuggestionClick","handleButtonFocus","setSearchFocusState","buttonClass","toggle","handleDoubleClick","handleTripleClick","buttonLabel","triggerEvent","showMetroToggleButton","hasFilters","clearFilters","control","mobileDropdown","handleLogoClick","logo","validityDates","formatted","helpToolTip","modifiers","toggleHelpComponent","showHelp","helpBtn","zoomOutComponent","displayedZoomPercentage","zoomInComponent","resetZoom","zoomNormalComponent","isMetro","pageZoom","toggleView","toggleColumnView","horizontal","vertical","toggleFullscreen","handleFullScreen","customMobile","exitFullscreen","downloadPDF","downloadablePDF","closeHamburgerMenu","shoppingListToolTip","isActive","count","getVersion","shoppingListDesc","toggleSearch","caption","toggleFilters","searchBar","more","dynamicClasses","showList","flyerSelectorTemplate","preview","isPreview","gotoFlyer","thumbnail","flyerId","valid","imgSrc","$attrs","flyerTitle","tabCaption","chevronDirection","isPoweredByTC","ctc","InlineFlyerSelectorCTC","InlineFlyerSelectorDefault","template","emailSignup","toolTip","showSignup","onSelect","selectItem","isFav","compDict","FilterDropdown","SearchBarFilter","ToggleButtonFilter","ClearFilterButton","RangeFilter","controlPanel","HelpButton","ToggleFilterButton","ZoomControls","ToggleFlyerOrientationButton","ToggleFullscreenButton","pdfDownloadButton","shoppingListToggleButton","FilterDrawerToggleButton","SearchBar","HamburgerMenuButton","EmailSignupButton","Separator","ShareButton","FavsButton","RaddarFilterToggleButton","controlPanelV2","HelpButtonV2","ZoomControlsV2","ToggleFlyerOrientationButtonV2","ToggleFullscreenButtonV2","pdfDownloadButtonV2","shoppingListToggleButtonV2","HamburgerMenuButtonV2","EmailSignupButtonV2","header","filterPanel","FilterPanel","separator","ControlPanel","controlsV2","ControlPanelV2","mastHead","LogoDatePanel","hamburgerMenu","app","inlineFlyerSelector","InlineFlyerSelector","filterDict","controlDict","controlDictV2","headerDict","appDict","FeatureJsonToComponents","dict","isObject","compName","rest","getTooltip","fr","toggleSidebar","closeSideBar","openSideBar","seeOtherFlyers","flyerList","pub","refInFor","slot","landing","isActiveFlyer","updateFlyer","scrollTo","fb","cb","PublicationPreview","sidebar","toggleSideBarState","activeFlyer","getArrow","blockPlacements","genVisibility","visibility","BlockGen","aspectRatio","offers","rewards","this_weeks_deals","were_working_on","_m","rewards_header","isPreviewFlyer","isTuesday","comeback","isLoggedIntoCT","linkRewardsToReveal","rewards_body","triggerUserDialog","link","signin","rewards_join_pre","rewards_join_post","rewards_text","registered_trademark","rewards_text_a","click_to_join","pagesIndex","insertPageNum","offerPage","GenBlock","TriangleRewardsCard","RaddarEvent","Ping","ShoppingList","Add","Remove","Quantity","Clear","List","GetList","raddar","force","router","currentRoute","_fc","handleShoppingListEvent","pdpTemplate","handleShareDeal","tooltip","isInList","PDP_MODE_INTERNAL","PDP_MODE_EXTERNAL","PDP_EVENT_SHOW","PDP_EVENT_HIDE","savingsPrefixFr","savingsFr","savingsSuffixFr","getProductDetail","pdpWindow","isXDaySale","toTitleCase","XDaySaleDates","isPharmaProduct","pharmaDisclaimer","titleEn","logoColor","getLogo","clientName","impMsgEn","message1En","message2En","titleFr","imgMsgFr","message1Fr","message2Fr","showBilingualDisclaimer","txt","toUpperCase","substr","goToWebsite","PersistentData","storageId","lifeSpan","dataObject","Date","expire","getTime","storage","setItem","savePath","getData","dataString","getItem","expiry","removeData","removeItem","path","includeSubs","rootPath","rootPathDepth","maxPathDepth","removeKeys","pathId","pd","getProductSku","productId","ShoppingListController","listItem","setData","getAll","pow","x2","x1","y2","y1","findCenterPage","cDist","best","PDP","AppHeader","RaddarSync","IframeRelay","DeepLinkController","FlyerSelectorController","DrawerContainer","ShoppingListV1","ShoppingListV2","PdpPopup","PdpPopupV1","TourWindow","SearchResults","FeatureToast","VideoModal","updateStyle","myflyerbtn","filteredBlocks","nearTop","gridContainerStyle","marginBottom","showScrollToTop","showMobileFilters","flyerLoaded","setSearchClient","params","hash","$on","scrollToPageName","scrollToIndexCenter","scrollToSku","urlHash","setCurrentPageNumber","isReady","loadFlyer","reset","flyerID","dealID","storeId","store_name","version_id","job_name","deal_id","end_date","start_date","searchQuery","executeFilter","showSearchResults","scrollContainer","getPdpComponent","processHash","findPageWithSku","findPageWithIndex","findPageWithName","scrollToDom","dom","flyerDrawerIsOpen","classList","contains","ctr","scrollToPage","scrollToIndex","scrollToDomCenter","scrollProgress","centerPage","hideArrow","showArrow","setupPages","isPage","flyerDim","ctConfig","conditions","cond","pass","setTotalPages","updatePages","updatedPages","toTheTop","handleShowFilters","handleOrientationChange","onSearchStateChange","setShowSearchResults","hasQuery","setUiState","uiState","$off","errorType","langRedirectURL","errors","noFlyersMsg","noFlyerSubText","dealNotFound","noFlyerForStore","somethingWrong","$router","Vue","use","VueRouter","routes","App","ErrorPage","Service","Rest","Get","error","pagesUrl","categories","productsOf","selectedCategory","showCategoriesDropDown","expandedCategory","allCategory","checked","showMobileCategories","allDropDownsCache","useCategoryFilter","checkedCategories","subCategories","allCategoriesChecked","subcategories","subcategory","noCategoriesChecked","every","reduce","acc","checkedProductOrigin","productOrigin","toggleShowMobileCategories","closeMobileCategories","toggleDropdown","closeDropdown","getAllDropdownItems","cacheId","GetAllFilters","generateCategories","productOf","frenchName","sortedCategories","toggleCategoryChecked","categoryName","toggleProductsOfChecked","toggleCategoryAllChecked","clearSelectedCategory","clearProductOrigin","setExpandedCategory","TOGGLE_SHOWMOBILECATEGORIES","SET_DROPDOWN","SET_SELECTED_CATEGORY","cateogry","SET_ALL_CATEGORY_CHECKED","SET_CATEGORIES","SET_PRODUCTSOF","TOGGLE_PRODUCTSOF_CHECKED","TOGGLE_CATEGORY_CHECKED","TOGGLE_CATEGORY_ALL_CHECKED","SET_ALL_CATEGORIES_CHECKED","checkedState","CLEAR_ALL_CATEGORIES","CLEAR_ALL_PRODUCTORIGIN","SET_FILTERED_ITEMS","SET_EXPANDED_CATEGORY","SearchApi","highlightMode","Post","showSubHeader","saving","queryAlgolia","enhancedSearch","algolia_id","initIndex","filters","cat","subCat","addToEventQueue","setHits","filterProducts","filterQuery","showResults","currentStore","subCategory","updateSearchQuery","setSubHeaderState","toggleMobileSearchBar","closeMobileSearchBar","resetQuery","resetFilters","setLoadingState","UPDATE_SEARCH_QUERY","UPDATE_FILTERED_ITEMS","SHOW_SEARCH_RESULTS","TOGGLE_MOBILE_SEARCH_BAR","CLOSE_MOBILE_SEARCH_BAR","SET_SUB_HEADER_STATE","SET_SAVING","SET_SUBCATEGORIES","SET_SEARCH_CLIENT","SET_HITS","SET_LOADING","hasFullscreenSupport","documentElement","requestFullscreen","innerHeight","outerHeight","modes","isItMobile","navigator","userAgent","isSamsungTab","isIOS","maxTouchPoints","MSStream","tablet","currentWidth","reload","fullScreenConfig","fullScreen","detectMode","fullscreenElement","toggleFullScreen","setFullScreenState","isFullScreen","trigger","navigationUI","TriggerFullscreenToggle","setFullScreen","exitFullScreen","handleWindowResize","REFRESH_WINDOW_SIZE","SET_FULLSCREEN_STATE","EXIT_FULLSCREEN_STATE","showToast","shouldShowTour","skipWalkthrough","remember","checkTourState","SET_HELP","SET_TOUR_VISIBILITY","sortOrder","getWeights","flyers","languageError","dateError","pdfId","pdf","previewDate","subtract","sortedFlyers","getFlyersData","GetFlyerData","GotoErrorPage","setCurrentFlyer","SET_FLYERS","SET_FLYER_BY_ID","SET_CURRENT_FLYER","SET_LANGUAGE_ERROR","SET_DATE_ERROR","getContrastYIQ","hexcolor","yiq","settings","cssVars","primaryColor","secondaryTextColor","tertiaryColor","loadConfig","LoadConfig","rewardsButtonTitle","mergedConfig","response","parseFeature","feature","f","cloneDeep","SET_CONFIG","showShoppingList","shoppingListItems","additionalItemCount","shoppingListSKUs","productsBySKU","skuAddToList","filterableItems","additionalItemFlag","addProductToList","TriggerAddToWishlist","list","itemAdded","removeProductFromList","removedItem","payload","TriggerShoppingListStart","TriggerShoppingList","sendEmail","status","setShoppingList","handleLocalStorage","localStorage","today","UPDATE_SHOPPING_LIST_ITEMS","listId","getList","SET_SHOPPING_LIST","SHOW_SHOPPING_LIST","SHOW_SHOPPING_LISTV1","SHOW_SHOPPING_LISTV2","SET_FLYER_DATE","ADD_ITEM_SHOPPING_LIST","newElement","pq","version","add","isTodayBetweenValidity","tags","priceSign","toString","currentDeal","isXdaySale","memberPriceEn","memberPriceFr","memberPricePrefixEn","memberPricePrefixFr","memberPriceQuantity","memberSaveSuffixEn","validFromROW","validToROW","TriggerShoppingListProduct","TriggerAddToCart","mainCategory","REMOVE_ITEM_SHOPPING_LIST","HANDLE_QTY_CHANGE","operation","CLEAR_SHOPPING_LIST","EMAIL_ERROR","SET_ADDITIONAL_ITEM_FOCUS","SET_EMAIL_INPUT_FOCUS","rawHash","rh","isDeepLink","route","queries","hashes","updateHash","UPDATE_HASH","sdid","convertApiDataToListItem","apiFilters","setDropDownItemsSelectState","parseFilterItemValue","filterData","filterPanelDrawer","fd","sections","rdProp","loadFrom","customItems","hasMadeInCanadaOrQuebecProducts","madeInCanada","madeInQuebec","filtersByType","filtersByName","fWithMultipleParams","multipleParams","param","drawerItems","loadFlyerFilters","fs","drawerConfig","SET_FILTER_DATA","sendPost","post","__product","__flyer","__root","drawerIsOpen","addToDrawer","removeFromDrawer","ADD_TO_DRAWER","REMOVE_FROM_DRAWER","hasContent","CTParent","currentDirectory","flyerTypeNameIdentifier","store","api","PersonalizationApi","customerId","axios","baseURL","offers_api","process","VUE_APP_PERSONALIZATION_API_URL","headers","VUE_APP_PERSONALIZATION_API_KEY","priceMode","isFake","onClicked","brand","save","special_buy_img","special_buy","_f","great_value_img","great_value","sale","reg","clipDesc","while_quant","se","lastIndexOf","maxlen","componentData","c_dollars","c_cents","c_currency","prodImage","loadError","isLoaded","domImg","Image","retailPrice","promoPrice","clipText","showMoreIcon","brandLogo","imgScale","hasImage","showLoader","isSpecialBuy","isGreatValue","PM_ABNORMAL","loadedOffers","isLoggedIn","isCustomerLoggedIn","triangleID","custID","offerViewMode","personalizedViewMode","offersPage","isSignedIn","hasTriangleID","canViewTriangleRewards","dayOfWeek","getDay","canViewPersonalizedBanner","canViewPreviewText","hasOffers","triangleOffers","fake","ri","isFakeOffers","loadPersonalizedAds","dealNo","GetPersonalizedAd","ShowTriangleLink","ShowCTLogin","loadOffers","GetOffers","updateOfferBlocks","OfferListItem","APPLY_OFFERS","_listenerId","listeners","ParseEvent","isFunction","Vuex","Store","pageData","currentPageIndex","zonesArray","apiUrl","subscriptionKey","showHamburgerMenu","currentVideo","flat","hasBaseBars","currentZone","z","zones","en","blockedFlyer","isJC","publicationId","findBlocksBySKUs","skus","ls","setPages","GetFlyerPage","setColumnView","isColumnView","TriggerScreenOrientationChange","TriggerOrientationToggle","toggleMobileFilters","setLanguage","setCurrentStore","setZonesArray","setPdf","setSearchInputFocusState","setPdpDisplay","setCurrentProduct","setCurrentVideo","setBlockData","toggleHamburgerMenu","setCurrentPageIndex","UPDATE_LOADING","SET_PAGE_DATA","SET_PAGES","SET_TOTAL_PAGES","SET_COLUMN_VIEW","TOGGLE_COLUMN_VIEW","SET_LANGUAGE","SET_CURRENT_STORE","SET_ZONES_ARRAY","SET_PDF","SET_SEARCH_INPUT_FOCUSED","SET_PDP_DISPLAY","SET_CURRENT_PRODUCT","SET_CURRENT_VIDEO","SET_BLOCK_DATA","SET_CURRENT_PAGE_NUMBER","SET_CURRENT_PAGE_INDEX","SHOW_HAMBURGER_MENU","TOGGLE_SIDEBAR","TOGGLE_MOBILE_FILTERS","RESET","toast","landingPage","deepLinking","ctUser","put","delete","catch","err","isNavigationFailure","Promise","reject","errType","errTxt","apikey","banner_id","api_version","VUE_APP_API_VERSION","interceptors","start","tp","doc","favicon","productionTip","analytics","analytic","VueGTM","quantumMetricsScript","createElement","async","body","appendChild","QuantumMetricAPI","VTooltip","directive","VClosePopover","VPopover","VueLazyload","VueObserveVisibility","InstantSearch","formatter","Intl","NumberFormat","AppWrapper","$mount"],"mappings":"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","file":"js/app.c813420a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoweredByTC.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoweredByTC.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeFilter.vue?vue&type=style&index=0&id=722a070e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeFilter.vue?vue&type=style&index=0&id=722a070e&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IframeRelay.vue?vue&type=style&index=0&id=b96ee51a&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IframeRelay.vue?vue&type=style&index=0&id=b96ee51a&scoped=true&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearFilterButton.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearFilterButton.vue?vue&type=style&index=1&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpRexallRaddar.vue?vue&type=style&index=0&id=5f8d9b42&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpRexallRaddar.vue?vue&type=style&index=0&id=5f8d9b42&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullBlockVideo.vue?vue&type=style&index=0&id=0265b417&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullBlockVideo.vue?vue&type=style&index=0&id=0265b417&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HamburgerMenuButton.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HamburgerMenuButton.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollContainer.vue?vue&type=style&index=0&id=55ab09a8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollContainer.vue?vue&type=style&index=0&id=55ab09a8&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpScreen.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpScreen.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=2&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=2&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatureToast.vue?vue&type=style&index=0&id=e7dcd480&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatureToast.vue?vue&type=style&index=0&id=e7dcd480&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeInline.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeInline.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleButtonFilter.vue?vue&type=style&index=0&scope=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleButtonFilter.vue?vue&type=style&index=0&scope=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpandingDisclaimer.vue?vue&type=style&index=0&id=7a73c850&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpandingDisclaimer.vue?vue&type=style&index=0&id=7a73c850&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListToggleButton.vue?vue&type=style&index=0&id=49ec28ce&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListToggleButton.vue?vue&type=style&index=0&id=49ec28ce&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoweredByTC.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoweredByTC.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpScreenItem.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpScreenItem.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageElement.vue?vue&type=style&index=0&id=3962de56&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageElement.vue?vue&type=style&index=0&id=3962de56&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeepLinkController.vue?vue&type=style&index=0&id=78074775&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeepLinkController.vue?vue&type=style&index=0&id=78074775&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCarouselV2.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCarouselV2.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBoxLabelListItem.vue?vue&type=style&index=0&id=3290e4dd&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBoxLabelListItem.vue?vue&type=style&index=0&id=3290e4dd&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductMaskOverlay.vue?vue&type=style&index=0&id=6fb39678&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductMaskOverlay.vue?vue&type=style&index=0&id=6fb39678&scoped=true&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListV1.vue?vue&type=style&index=0&id=317bfd5f&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListV1.vue?vue&type=style&index=0&id=317bfd5f&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelectorDefault.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelectorDefault.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFlyerOrientationButton.vue?vue&type=style&index=0&id=749f5b1a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFlyerOrientationButton.vue?vue&type=style&index=0&id=749f5b1a&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductListItem.vue?vue&type=style&index=0&id=c4421d4e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductListItem.vue?vue&type=style&index=0&id=c4421d4e&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfferListItem.vue?vue&type=style&index=0&id=74ab82c4&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfferListItem.vue?vue&type=style&index=0&id=74ab82c4&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpRaddar.vue?vue&type=style&index=0&id=5fdb35cc&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpRaddar.vue?vue&type=style&index=0&id=5fdb35cc&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBarFilter.vue?vue&type=style&index=1&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBarFilter.vue?vue&type=style&index=1&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emailSignupButton.vue?vue&type=style&index=0&id=3f44b62e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emailSignupButton.vue?vue&type=style&index=0&id=3f44b62e&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./flyerSection.component.vue?vue&type=style&index=0&id=d7348722&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./flyerSection.component.vue?vue&type=style&index=0&id=d7348722&scoped=true&lang=css&\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollBar.vue?vue&type=style&index=1&id=0d7d1c10&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollBar.vue?vue&type=style&index=1&id=0d7d1c10&scoped=true&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdpJeanCoutuRaddar.vue?vue&type=style&index=0&id=4630f9dc&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdpJeanCoutuRaddar.vue?vue&type=style&index=0&id=4630f9dc&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomControls.vue?vue&type=style&index=0&id=b7e06414&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomControls.vue?vue&type=style&index=0&id=b7e06414&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductBlockVideoElement.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductBlockVideoElement.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvList.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvList.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"adv-titled-list\"},[(_vm.title)?_c('div',{staticClass:\"title\"},[_c('adv-list-item',{attrs:{\"item-data\":_vm.titleData},on:{\"select\":_vm.onTitleSelect}}),(_vm.collapsable)?_c('span',{staticClass:\"collapse-icon\",attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm.toggleCollapse,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.toggleCollapse.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.collapseIcon))]):_vm._e()],1):_vm._e(),_c('div',{class:_vm.collapsed? 'collapsed':null},[_c('adv-list',{attrs:{\"items\":_vm.filteredItems},on:{\"select\":function($event){return _vm.$emit('select', $event)}}}),(_vm.hasMore)?_c('div',{staticClass:\"has-more highlight\",on:{\"click\":function($event){_vm.showAll = true}}},[_vm._v(\"See more \"+_vm._s(_vm.title))]):_vm._e(),_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"adv-list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:(\"adv-list-\" + index)},[(item.subItems)?_c('adv-titled-list',{staticClass:\"sub-menu\",attrs:{\"title\":item,\"items\":item.subItems,\"collapsable\":true,\"is-collapsed\":true,\"enable-toggle-all\":true},on:{\"select\":function($event){return _vm.$emit('select', $event)}}}):_c('adv-list-item',{attrs:{\"tabindex\":\"0\",\"item-data\":item},on:{\"select\":function($event){return _vm.$emit('select', $event)}}})],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"adv-list-item \" + (_vm.clickable? 'clickable':'')),on:_vm._d({\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleClick.apply(null, arguments)}},[_vm.clickEvent,_vm.handleClick])},[(_vm.autoMode === 'label')?_c('label-list-item',{attrs:{\"item-data\":_vm.itemData}}):(_vm.autoMode === 'checkboxLabel')?_c('check-box-label-list-item',{attrs:{\"item-data\":_vm.itemData}}):(_vm.autoMode === 'product')?_c('product-list-item',{attrs:{\"item-data\":_vm.itemData}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"label-list-item\",domProps:{\"innerHTML\":_vm._s(_vm.label)}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"label-list-item\" v-html=\"label\"></div>\r\n</template>\r\n\r\n<script>\r\nfunction applyHighlights(text, highlights) {\r\n let ns = '';\r\n let sliceStart = 0;\r\n const hl = highlights.sort((a, b) => {\r\n return a[0] - b[0];\r\n })\r\n hl.forEach((h, i, all) => {\r\n const s = h[0];\r\n const e = h[1];\r\n if(s !== sliceStart) {\r\n ns += text.slice(sliceStart, s);\r\n }\r\n ns += \"<span class='highlight'>\" + text.slice(s,e) + \"</span>\";\r\n sliceStart = e;\r\n if(i === all.length - 1 && e < text.length) {\r\n ns += text.slice(sliceStart);\r\n }\r\n })\r\n return ns;\r\n}\r\nexport default {\r\n name: \"LabelListItem\",\r\n props:{\r\n /**\r\n * {\r\n * label,\r\n * highlights: [\r\n * [0, 20]\r\n * ]\r\n * }\r\n */\r\n itemData: {\r\n type: Object\r\n }\r\n },\r\n computed: {\r\n highlights() {\r\n return this.itemData?.highlights;\r\n },\r\n label(){\r\n let label = this.itemData?.label;\r\n\r\n if(this.highlights) {\r\n label = applyHighlights(label, this.highlights)\r\n }\r\n return label;\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LabelListItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LabelListItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LabelListItem.vue?vue&type=template&id=9ed3afd6&scoped=true&\"\nimport script from \"./LabelListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./LabelListItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9ed3afd6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"checkbox-label-list-item \" + (_vm.selected? 'selected': '')),attrs:{\"tabindex\":\"0\"}},[_c('check-box',{attrs:{\"selected\":_vm.checkbox.selected}}),_vm._v(\" \"),_c('label-list-item',{attrs:{\"item-data\":_vm.itemData}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"check-box \" + (_vm.selected? 'selected':null))},[(_vm.selected)?_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"viewBox\":\"0 0 76.083 85.083\",\"fill\":\"#fff\",\"fill-rule\":\"evenodd\",\"stroke\":\"#fff\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('use',{attrs:{\"xlink:href\":\"#A\",\"x\":\"1.042\",\"y\":\"1.042\"}}),_c('symbol',{attrs:{\"id\":\"A\",\"overflow\":\"visible\"}},[_c('path',{staticClass:\"check-mark\",attrs:{\"d\":\"M.96 48.33c6.652 9.388 12.223 19.271 16.483 29.969 1.729 4.348 8.804 5.513 10.042 0C33.397 52.028 44.593 21.684 70.58 9.536c6.069-2.833.785-11.819-5.258-8.994-28.371 13.26-41.417 46.25-47.883 74.988H27.48C22.876 63.964 17.151 53.239 9.945 43.072 6.099 37.647-2.936 42.843.951 48.33z\",\"stroke\":\"none\",\"fill-rule\":\"nonzero\"}})])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div :class=\"`check-box ${selected? 'selected':null}`\">\r\n <svg v-if=\"selected\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 76.083 85.083\"\r\n fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#fff\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <use xlink:href=\"#A\" x=\"1.042\" y=\"1.042\"/>\r\n <symbol id=\"A\" overflow=\"visible\">\r\n <path class=\"check-mark\" d=\"M.96 48.33c6.652 9.388 12.223 19.271 16.483 29.969 1.729 4.348 8.804 5.513 10.042 0C33.397 52.028 44.593 21.684 70.58 9.536c6.069-2.833.785-11.819-5.258-8.994-28.371 13.26-41.417 46.25-47.883 74.988H27.48C22.876 63.964 17.151 53.239 9.945 43.072 6.099 37.647-2.936 42.843.951 48.33z\"\r\n stroke=\"none\" fill-rule=\"nonzero\"/>\r\n </symbol>\r\n </svg>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"CheckBox\",\r\n props: {\r\n selected: {\r\n type:Boolean,\r\n default: false\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n .check-box {\r\n position: relative;\r\n border: solid 1px;\r\n border-radius: 0.2em;\r\n color: inherit;\r\n width: 1em;\r\n height: 1em;\r\n flex-shrink: 0;\r\n flex-grow: 0;\r\n &.selected {\r\n background-color: rgba(164, 143, 143, 0.2);\r\n svg {\r\n fill: var(--list-item-select-color)\r\n }\r\n }\r\n svg {\r\n position:absolute;\r\n width: 1em;\r\n bottom: 0.001em;\r\n left: 0.1em;\r\n }\r\n .check-mark {\r\n fill: var(--list-item-select-color);\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=ef556db2&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=ef556db2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ef556db2\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div :class=\"`checkbox-label-list-item ${selected? 'selected': ''}`\" tabindex=\"0\">\r\n <check-box :selected=\"checkbox.selected\" /> <label-list-item :item-data=\"itemData\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport CheckBox from \"@/components/lists/item-types/CheckBox\";\r\nimport LabelListItem from \"@/components/lists/item-types/LabelListItem\";\r\nexport default {\r\n name: \"CheckBoxLabelListItem\",\r\n components: {LabelListItem, CheckBox},\r\n props: {\r\n itemData: {\r\n type: Object\r\n }\r\n },\r\n computed: {\r\n selected() {\r\n //console.log('Item Selected Change:', this.itemData)\r\n return !!this.itemData?.checkbox?.selected;\r\n },\r\n\t checkbox(){\r\n\t\t\treturn this.itemData?.checkbox;\r\n\t }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n .checkbox-label-list-item {\r\n display: flex;\r\n //column-gap: 0.5em;\r\n align-items: center;\r\n cursor: pointer;\r\n >* {\r\n margin-right: 0.5em;\r\n }\r\n &.selected {\r\n color: var(--list-item-select-color)\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBoxLabelListItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBoxLabelListItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckBoxLabelListItem.vue?vue&type=template&id=3290e4dd&scoped=true&\"\nimport script from \"./CheckBoxLabelListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckBoxLabelListItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckBoxLabelListItem.vue?vue&type=style&index=0&id=3290e4dd&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3290e4dd\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"product-list-item\"},[_c('div',{staticClass:\"product-image\",style:(_vm.imgStyle)}),_c('div',{staticClass:\"product-details\"},[_c('div',{staticClass:\"product-label\"},[_vm._v(_vm._s(_vm.name))]),_c('div',{staticClass:\"product-sub-details\"},[_c('div',{staticClass:\"product-metrics\"},[_c('span',[_vm._v(_vm._s(_vm.altPrice))])]),_c('div',{staticClass:\"product-price highlight\"},[_vm._v(\"$\"+_vm._s(_vm.price))])]),_c('div',{staticClass:\"product-valid-to\"},[_vm._v(_vm._s(_vm.validTo))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"product-list-item\">\r\n <div class=\"product-image\" :style=\"imgStyle\"></div>\r\n <div class=\"product-details\">\r\n <div class=\"product-label\">{{ name }}</div>\r\n <div class=\"product-sub-details\">\r\n <div class=\"product-metrics\">\r\n <span>{{ altPrice }}</span>\r\n </div>\r\n <div class=\"product-price highlight\">${{ price }}</div>\r\n </div>\r\n <div class=\"product-valid-to\">{{ validTo }}</div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport moment from \"moment\";\r\n\r\nexport default {\r\n name: \"ProductListItem\",\r\n props: {\r\n itemData: {\r\n type: Object\r\n }\r\n },\r\n computed: {\r\n price() {\r\n return this.itemData?.product?.salePrice || this.itemData?.product?.regularPrice;\r\n },\r\n altPrice() {\r\n return this.itemData?.product?.alternatePrice || this.itemData?.product?.alternatePriceFr;\r\n },\r\n name() {\r\n return this.itemData?.product?.product || this.itemData?.product?.productEn;\r\n },\r\n imgStyle() {\r\n return {\r\n backgroundImage: `url(${this.itemData?.product?.productImage})`\r\n }\r\n },\r\n validTo() {\r\n const vd = this.itemData?.product?.validTo;\r\n if(vd) {\r\n const m = moment(vd);\r\n return 'Valid until ' + m.format('MMM D, YYYY')\r\n }\r\n return null;\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n .product-list-item {\r\n display: flex;\r\n column-gap: 1em;\r\n font-size: 0.9em;\r\n .product-image {\r\n width: 5em;\r\n height: 5em;\r\n border: solid 1px #aeaeae;\r\n background-repeat: no-repeat;\r\n background-size: contain;\r\n background-position: center;\r\n flex-basis: 5em;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n }\r\n .product-details {\r\n flex-grow: 1;\r\n display: flex;\r\n flex-direction: column;\r\n row-gap: 0.3em;\r\n justify-content: space-evenly;\r\n .product-sub-details {\r\n display: flex;\r\n color: #BBBBBB;\r\n > *{\r\n flex-grow: 1;\r\n }\r\n .product-price {\r\n text-align: right;\r\n }\r\n .product-metrics {\r\n\r\n }\r\n }\r\n .product-valid-to {\r\n text-align: right;\r\n font-size: smaller;\r\n }\r\n }\r\n border-bottom: solid 1px #bbbbbb;\r\n padding-bottom: 0.56em;\r\n }\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductListItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductListItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductListItem.vue?vue&type=template&id=c4421d4e&scoped=true&\"\nimport script from \"./ProductListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductListItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductListItem.vue?vue&type=style&index=0&id=c4421d4e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c4421d4e\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div :class=\"`adv-list-item ${clickable? 'clickable':''}`\" @[clickEvent]=\"handleClick\" @keydown.enter=\"handleClick\">\r\n\t\t<label-list-item v-if=\"autoMode === 'label'\" :item-data=\"itemData\"/>\r\n\t\t<check-box-label-list-item v-else-if=\"autoMode === 'checkboxLabel'\" :item-data=\"itemData\"/>\r\n\t\t<product-list-item v-else-if=\"autoMode === 'product'\" :item-data=\"itemData\"/>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport LabelListItem from \"@/components/lists/item-types/LabelListItem\";\r\nimport CheckBoxLabelListItem from \"@/components/lists/item-types/CheckBoxLabelListItem\";\r\nimport ProductListItem from \"@/components/lists/item-types/ProductListItem\";\r\n\r\nexport default {\r\n\tname: \"AdvListItem\",\r\n\tcomponents: { ProductListItem, CheckBoxLabelListItem, LabelListItem },\r\n\tprops: {\r\n\t\tmode: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null\r\n\t\t},\r\n\t\titemData: {\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {};\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tclickable() {\r\n\t\t\treturn this.itemData?.onClick?.event || this.autoMode === 'checkboxLabel';\r\n\t\t},\r\n\t\tclickEvent() {\r\n\t\t\treturn this.clickable ? 'click' : null;\r\n\t\t},\r\n\t\tautoMode() {\r\n\t\t\tif (this.itemData.mode) return this.itemData.mode;\r\n\t\t\tif (this.mode) return this.mode;\r\n\t\t\tlet mode = 'label';\r\n\t\t\tif (this.itemData?.label) {\r\n\t\t\t\tif (this.itemData?.checkbox) {\r\n\t\t\t\t\tmode = 'checkboxLabel'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.itemData?.product) {\r\n\t\t\t\tmode = 'product'\r\n\t\t\t}\r\n\t\t\treturn mode;\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\thandleClick(e) {\r\n\t\t\tconsole.log('ADVListItem Clicked:', e, 'Automode:', this.autoMode);\r\n\r\n\t\t\tswitch (this.autoMode) {\r\n\t\t\t\tcase 'checkboxLabel':\r\n\t\t\t\t\tconsole.log('Update checkbox:', this.itemData.checkbox)\r\n\t\t\t\t\tthis.itemData.checkbox.selected = !this.itemData?.checkbox?.selected;\r\n\t\t\t\t\tif (typeof (this.itemData.checkbox?.onChange) === 'function') {\r\n\t\t\t\t\t\tthis.itemData.checkbox.onChange(this.itemData.checkbox.selected);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tthis.$emit('select', this.itemData);\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.adv-list-item {\r\n\tcolor: #545454;\r\n\r\n\t&.clickable {\r\n\t\tcursor: pointer;\r\n\r\n\t\t&:hover {\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvListItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvListItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdvListItem.vue?vue&type=template&id=27bb0a6a&\"\nimport script from \"./AdvListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./AdvListItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AdvListItem.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"adv-list\">\r\n\t <div\r\n\t\t\t v-for=\"(item, index) in items\"\r\n\t\t\t :key=\"`adv-list-${index}`\"\r\n\t >\r\n\t\t <adv-titled-list\r\n\t\t\t\t class=\"sub-menu\"\r\n\t\t\t\t v-if=\"item.subItems\"\r\n\t\t\t\t :title=\"item\"\r\n\t\t\t\t :items=\"item.subItems\"\r\n\t\t\t\t :collapsable=\"true\"\r\n\t\t\t\t :is-collapsed=\"true\"\r\n\t\t\t\t :enable-toggle-all=\"true\"\r\n\t\t\t\t @select=\"$emit('select', $event)\"\r\n\t\t />\r\n\t\t <adv-list-item\r\n\t\t\t\t v-else\r\n\t\t\t\t tabindex=\"0\"\r\n\t\t\t\t :item-data=\"item\"\r\n\t\t\t\t @select=\"$emit('select', $event)\"\r\n\t\t />\r\n\r\n\t </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport AdvListItem from \"@/components/lists/AdvListItem\";\r\n//import AdvTitledList from \"@/components/lists/AdvTitledList.vue\";\r\nexport default {\r\n name: \"AdvList\",\r\n components: {AdvTitledList: () => import(\"@/components/lists/AdvTitledList.vue\"), AdvListItem},\r\n props: {\r\n items :{\r\n type: Array,\r\n default: () => []\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n .adv-list, .adv-list > div {\r\n display: flex;\r\n flex-direction: column;\r\n // row-gap: 8px;\r\n\t\r\n > *:last-child {\r\n .product-list-item {\r\n border-bottom: none;\r\n }\r\n }\r\n\t .adv-list {\r\n\t\t margin-left: 1.4em;\r\n\t }\r\n }\r\n .adv-list {\r\n\t> div {\r\n\t\tmargin-top: 8px;\r\n\t}\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdvList.vue?vue&type=template&id=6cb0ee8c&\"\nimport script from \"./AdvList.vue?vue&type=script&lang=js&\"\nexport * from \"./AdvList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AdvList.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"adv-titled-list\">\r\n\t\t<div v-if=\"title\" class=\"title\">\r\n\t\t\t<adv-list-item :item-data=\"titleData\" @select=\"onTitleSelect\"/>\r\n\t\t\t<span v-if=\"collapsable\" class=\"collapse-icon\" @click=\"toggleCollapse\" @keydown.enter=\"toggleCollapse\" tabindex=\"0\">{{ collapseIcon }}</span></div>\r\n\t\t<div :class=\"collapsed? 'collapsed':null\">\r\n\t\t\t<adv-list :items=\"filteredItems\" @select=\"$emit('select', $event)\"/>\r\n\t\t\t<div v-if=\"hasMore\" class=\"has-more highlight\" @click=\"showAll = true\">See more {{ title }}</div>\r\n\t\t\t<slot/>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport AdvList from \"@/components/lists/AdvList\";\r\nimport AdvListItem from \"@/components/lists/AdvListItem\";\r\n\r\nexport default {\r\n\tname: \"AdvTitledList\",\r\n\tcomponents: {AdvListItem, AdvList},\r\n\tprops: {\r\n\t\ttitle: {\r\n\t\t\ttype: [String, Object]\r\n\t\t},\r\n\t\titems: {\r\n\t\t\ttype: Array,\r\n\t\t\tdefault: () => []\r\n\t\t},\r\n\t\tmaxVisible: {\r\n\t\t\ttype: Number,\r\n\t\t\tdefault: null\r\n\t\t},\r\n\t\tcollapsable: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t},\r\n\t\tisCollapsed: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t},\r\n\t\tenableToggleAll: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t}\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tshowAll: false,\r\n\t\t\tcollapsed: false\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tif (this.collapsable) {\r\n\t\t\tif (this.someSelected && !this.allSelected) {\r\n\t\t\t\tthis.collapsed = false;\r\n\t\t\t} else {\r\n\t\t\t\tthis.collapsed = this.isCollapsed\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tfilteredItems() {\r\n\t\t\tif (!this.maxVisible) return this.items;\r\n\t\t\tconst e = this.showAll ? this.items.length : this.maxVisible;\r\n\t\t\treturn this.items.slice(0, e);\r\n\t\t},\r\n\t\thasMore() {\r\n\t\t\treturn this.items.length > this.filteredItems.length;\r\n\t\t},\r\n\t\tcollapseIcon() {\r\n\t\t\treturn this.collapsed ? '+' : '-';\r\n\t\t},\r\n\t\tsomeSelected() {\r\n\t\t\treturn this.items.some((item) => {\r\n\t\t\t\treturn item.checkbox.selected;\r\n\t\t\t})\r\n\t\t},\r\n\r\n\t\tallSelected() {\r\n\t\t\tconst ts = this.items.reduce((pv, item) => {\r\n\t\t\t\tlet val = item.checkbox.selected ? 1 : 0;\r\n\t\t\t\tif (typeof pv === 'object') {\r\n\t\t\t\t\tval += pv.checkbox.selected ? 1 : 0;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tval += pv;\r\n\t\t\t\t}\r\n\t\t\t\treturn val;\r\n\t\t\t});\r\n\r\n\t\t\treturn ts === this.items.length;\r\n\t\t},\r\n\r\n\t\ttitleData() {\r\n\r\n\t\t\tconst d = typeof (this.title) === 'object' ? this.title : {\r\n\t\t\t\tlabel: this.title\r\n\t\t\t}\r\n\r\n\t\t\tif (this.enableToggleAll && !d.checkbox) {\r\n\t\t\t\td.checkbox = {\r\n\t\t\t\t\tselected: this.allSelected\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn d;\r\n\t\t},\r\n\t\ttitleSelected() {\r\n\t\t\treturn this.titleData?.checkbox?.selected;\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\ttoggleCollapse() {\r\n\t\t\tthis.collapsed = !this.collapsed;\r\n\t\t\tthis.$emit('toggleCollapse', this.titleData);\r\n\t\t},\r\n\t\tonTitleSelect(d) {\r\n\t\t\tconsole.log('on Filter Title select:', d)\r\n\t\t\tif (this.enableToggleAll) {\r\n\t\t\t\tthis.items.forEach((item) => {\r\n\t\t\t\t\tif (item.checkbox) {\r\n\t\t\t\t\t\titem.checkbox.selected = d.checkbox?.selected;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tthis.$emit('select', d);\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\tallSelected(v) {\r\n\t\t\tif (this.enableToggleAll) this.titleData.checkbox.selected = v;\r\n\t\t},\r\n\t\ttitleSelected(v) {\r\n\t\t\t//console.log('titleSelec Toggled:', v)\r\n\t\t\tif (this.enableToggleAll) {\r\n\t\t\t\tif ((v && !this.allSelected) || (!v && this.allSelected)) {\r\n\t\t\t\t\tthis.onTitleSelect(this.titleData);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.adv-titled-list {\r\n\tpadding: 1px;\r\n .title {\r\n\tpadding: 0.65em 0;\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n\tborder-bottom: solid 1px #afafaf;\r\n\tmargin-bottom: 0.8em;\r\n\ttext-transform: capitalize;\r\n\r\n\t.collapse-icon {\r\n\t cursor: pointer;\r\n\t flex-grow: 1;\r\n\t text-align: right;\r\n\t}\r\n\r\n\t.adv-list-item {\r\n\t margin-right: 1em;\r\n\t}\r\n }\r\n\r\n .has-more {\r\n\tfont-size: smaller;\r\n\tmargin-top: 1em;\r\n\tcursor: pointer;\r\n }\r\n\r\n .collapsed {\r\n\tdisplay: none;\r\n }\r\n\r\n &.sub-menu {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\t// row-gap: 8px;\r\n\r\n\t.title {\r\n\t padding: 0px;\r\n\t border-bottom: none;\r\n\t margin-bottom: 0px;\r\n\t}\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvTitledList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvTitledList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdvTitledList.vue?vue&type=template&id=46882b6a&scoped=true&\"\nimport script from \"./AdvTitledList.vue?vue&type=script&lang=js&\"\nexport * from \"./AdvTitledList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AdvTitledList.vue?vue&type=style&index=0&id=46882b6a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"46882b6a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductClickRegions.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductClickRegions.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=ef556db2&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=ef556db2&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpV2.vue?vue&type=style&index=0&id=4ee0951a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpV2.vue?vue&type=style&index=0&id=4ee0951a&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpSection.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpSection.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.ready || _vm.$route.name === 'ErrorPage' )?_c('router-view'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.isRaddar ? 'raddar' : '',attrs:{\"id\":\"app\",\"flyer-orientation\":_vm.flyerOrientation,\"is-fullscreen\":_vm.fullScreenToggle,\"is-mobile\":_vm.isMobile,\"mode\":_vm.displayMode,\"tour-mode\":_vm.tourVisible && !_vm.loading}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.rootStyle)}}),(_vm.highlightResults)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.highlightStyle)}}):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"loading-indicator\"},[_c('div',[_c('svg',{staticStyle:{\"margin\":\"auto\",\"background\":\"#fff\",\"display\":\"block\"},attrs:{\"height\":\"211px\",\"preserveAspectRatio\":\"xMidYMid\",\"viewBox\":\"0 0 100 100\",\"width\":\"211px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('circle',{attrs:{\"stroke\":_vm.branding.secondaryColor,\"cx\":\"50\",\"cy\":\"50\",\"fill\":\"none\",\"r\":\"26\",\"stroke-dasharray\":\"122.52211349000194 42.840704496667314\",\"stroke-width\":\"3\"}},[_c('animateTransform',{attrs:{\"attributeName\":\"transform\",\"dur\":\"1s\",\"keyTimes\":\"0;1\",\"repeatCount\":\"indefinite\",\"type\":\"rotate\",\"values\":\"0 50 50;360 50 50\"}})],1)]),_c('p',[_vm._v(\" \"+_vm._s(_vm.content.loading)+\" \")])])]),(_vm.searchClient && !_vm.loading)?_c('ais-instant-search',{attrs:{\"id\":\"ais\",\"search-client\":_vm.searchClient,\"index-name\":_vm.searchIndex,\"insights\":true}},[(_vm.isReady)?_c('app-header',{class:{ disabled: _vm.tourVisible },attrs:{\"feature-config-path\":_vm.isRaddar ? 'raddar.header' : 'header'}}):_vm._e(),(_vm.isReady)?_c('drawer-container',{attrs:{\"drawer\":\"top\"}}):_vm._e(),(_vm.isReady)?_c('div',{staticClass:\"main-lr-wrapper\"},[_c('drawer-container',{attrs:{\"drawer\":\"left\"}}),_c('div',{class:{ 'flyer-content': true, disabled: _vm.tourVisible || _vm.isDropdownOpen }},[_c('flyer-selector-controller'),_c(_vm.getSLTemplate,{tag:\"component\",attrs:{\"deal\":_vm.currentFlyer.title}}),_c('p-d-p'),(_vm.searchIsVisible)?_c('SearchResults',{attrs:{\"scale\":_vm.currentZoom}}):_vm._e(),(!_vm.loading)?_c('scroll-container',{ref:\"scrollContainer\",staticClass:\"grid-container\",class:_vm.searchIsVisible ? 'hide-scroll' : '',attrs:{\"id\":\"main-scroll\",\"enable-scroll-buttons\":_vm.displayMode != 'mobile',\"fit-axis\":_vm.flyerOrientation == 'horizontal' ? 'y' : 'x',\"max-width\":900,\"orientation\":_vm.flyerOrientation,\"zoom-level\":_vm.zoomLevel,\"align\":\"center\"},on:{\"change\":_vm.onScrollChange,\"ready\":_vm.onScrollContainerReady,\"resize\":_vm.onScrollContainerResize,\"scrollTransEnd\":_vm.onScrollChange},scopedSlots:_vm._u([(_vm.flyerOrientation === 'horizontal')?{key:\"scroll-thumb-x\",fn:function(){return [_c('div',{staticClass:\"page-num\"},[_c('span',{class:{'hide-chevron':_vm.hideLeftArrow}},[_vm._v(\" < \")]),_c('span',{staticClass:\"page-text\"},[_vm._v(\"PAGE \"+_vm._s(_vm.currentPage)+\" OF \"+_vm._s(_vm.totalPages)+\" \")]),_c('span',{class:{'hide-chevron':_vm.hideRightArrow}},[_vm._v(\" > \")])])]},proxy:true}:null,(_vm.flyerOrientation === 'vertical')?{key:\"scroll-thumb-y\",fn:function(){return [_c('div',{staticClass:\"page-num vertical\"},[_c('span',{class:{'hide-chevron':_vm.hideUpArrow}},[_vm._v(\" < \")]),_c('span',{staticClass:\"page-text\"},[_vm._v(\"PAGE \"+_vm._s(_vm.currentPage)+\" OF \"+_vm._s(_vm.totalPages)+\" \")]),_c('span',{class:{'hide-chevron':_vm.hideDownArrow}},[_vm._v(\" > \")])])]},proxy:true}:null],null,true)},[_c('responsive-grid',{attrs:{\"id\":\"resp-grid\",\"flyer-pages\":_vm.pages,\"root-scroll-container\":'main-scroll'}})],1):_vm._e()],1),_c('drawer-container',{attrs:{\"drawer\":\"right\"}})],1):_vm._e()],1):_vm._e(),(_vm.isReady)?_c('drawer-container',{attrs:{\"drawer\":\"bottom\"}}):_vm._e(),(_vm.currentVideo)?_c('VideoModal'):_vm._e(),_c('FeatureToast'),(_vm.tourVisible && !_vm.loading)?_c('TourWindow'):_vm._e(),(_vm.isReady)?_c('deep-link-controller'):_vm._e(),_c('iframe-relay'),(_vm.isReady)?_c('raddar-sync'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"responsive-grid\",class:{'update':_vm.zIndex, 'update2':!_vm.zIndex, 'column-view': _vm.columnView, 'no-gap': _vm.noGapAttr},style:(_vm.currentGridStyle),attrs:{\"flyer-orientation\":_vm.flyerOrientation}},_vm._l((_vm.flyerPages),function(p,i){return _c('flyer-section',{key:p.id + '_' + i,attrs:{\"page\":p,\"prevDocumentName\":i > 0 ? _vm.flyerPages[i - 1].documentName : null,\"device\":_vm.displayMode,\"index\":i,\"page-num\":p.page_num,\"root-scroll-container\":_vm.rootScrollContainer}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.searchResults || this.displayPage)?_c('div',{ref:\"container\",staticClass:\"section-container\",class:{\n 'mar-b': _vm.page.id.includes('adpage') && (this.flyerOrientation == 'vertical'),\n 'bg-red': _vm.redPages.includes(_vm.page.id),\n 'featured-page': _vm.page.isAdPage,\n 'search-page': _vm.page.name === 'search_results' && this.flyerOrientation == 'horizontal',\n 'search-page-vertical': _vm.page.name === 'search_results' && this.flyerOrientation == 'vertical',\n 'no-gap': _vm.noGap && this.flyerOrientation == 'horizontal',\n 'page-gap': !_vm.noGap && this.flyerOrientation == 'horizontal',\n 'page-gap-vertical': this.flyerOrientation == 'vertical'\n },style:(_vm.currentSectionStyle),attrs:{\"page-id\":_vm.page.id,\"page-num\":_vm.pageNum,\"index\":_vm.index}},[_vm._l((_vm.blocks),function(b,index){return _c('flyer-block',{key:_vm.page.id + '_block_' + index,attrs:{\"blockKey\":_vm.generateBlockKey(_vm.page.id, index),\"block-data\":b,\"page\":Object.assign({}, {pageHeight: _vm.pageHeight, pageWidth: _vm.pageWidth}, _vm.page, {unitWidth: _vm.unitWidth, unitHeight: _vm.unitHeight}),\"root-scroll-container\":_vm.rootScrollContainer}})}),(_vm.page.name !== 'search_results')?_c('div',{staticClass:\"basebar\",class:{ clickable: _vm.basebarLink },style:(_vm.basebarStyle),on:{\"click\":_vm.handleBasebarClick}},[(_vm.basebarImagePath)?_c('img',{attrs:{\"alt\":\"Basebar Featured\",\"src\":_vm.basebarImagePath,\"loading\":\"lazy\"}}):_vm._e(),(this.page.disclaimer && this.displayMode === 'mobile')?_c('ExpandingDisclaimer',{attrs:{\"disclaimer\":this.page.disclaimer}}):(this.page.disclaimer)?_c('p',[_vm._v(_vm._s(this.page.disclaimer))]):_vm._e()],1):_vm._e()],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {get, isNumber, isString} from \"lodash\";\r\nimport moment from \"moment/moment\";\r\n//import Vue from \"vue\";\r\n\r\nfunction applyValues(o, source) {\r\n const isArray = Array.isArray(o);\r\n const op = isArray? []: {};\r\n for(let p in o) {\r\n const sp = isArray? {p, sp:p}: sanitizeProp(p);\r\n //Vue.set(op, sp.sp, applyDirective(o, sp, source))\r\n op[sp.sp] = applyDirective(o, sp, source);\r\n }\r\n return op;\r\n}\r\n\r\nfunction sanitizeProp(p) {\r\n const o = p.match(/\\[(.*?)\\]/);\r\n const r = {p, sp: p};\r\n if(o && o[1]) {\r\n r.sp = p.replace(o[0], '');\r\n r.d = o[1];\r\n }\r\n return r;\r\n}\r\n\r\nfunction applySelfValues(source, value) {\r\n const regex = /__self(\\.\\w+)*/g; // Handles __self. style insertions\r\n const regex2 = /\\$\\{(.*?)}/g; //For handling ${value} style insertions\r\n if(isString(value)) {\r\n return (value || '').replaceAll(regex2, (match) => {\r\n const m = match.slice(2, -1);\r\n return get(source, m, '${' + String(m) + '}');\r\n }).replaceAll(regex, (match) => {\r\n return get(source, match, match);\r\n })\r\n }\r\n return value;\r\n}\r\n\r\nfunction toBool(value) {\r\n if(isString(value)) {\r\n const sanitized = value.trim().toLowerCase();\r\n if(sanitized === 'true') return true;\r\n if(sanitized === 'false') return false;\r\n }\r\n if(isNumber(value)){\r\n return Boolean(Number(value));\r\n }\r\n return Boolean(value);\r\n}\r\n\r\nfunction applyDirective(o, sp, source) {\r\n if(o[sp.p] && typeof o[sp.p] === 'object') return applyValues(o[sp.p], source);\r\n\r\n // se regex to match any __self\r\n //const regex = /__(\\w+)(\\.\\w+)*/g;\r\n //const matches = text.match(regex);\r\n\r\n\r\n const value = applySelfValues(source, o[sp.p]);// get(source, o[sp.p], o[sp.p]);\r\n if(typeof(value) === 'string' && value.search('__') === 0) return null;\r\n if(typeof(value) === 'string' && value.search('null') === 0) return null;\r\n switch(sp.d) {\r\n case 'date':\r\n return moment.utc(value).format(\"YYYY-MM-DD\")\r\n break;\r\n case 'int':\r\n return parseInt(value, 10)\r\n break;\r\n case 'bool':\r\n return toBool(value);\r\n break;\r\n }\r\n return value;\r\n}\r\n\r\nexport function parseDateValues(str, data) {\r\n const m = str.match(/\\{(.*?)\\}/g);\r\n m.forEach((itm) => {\r\n console.log('Parsing:', itm);\r\n const d = itm.slice(1, -1).split('|').map((i) => i.trim());\r\n if(!data[d[0]]) return;\r\n str = str.replace(itm, data[d[0]].format(d[1]));\r\n })\r\n return str;\r\n}\r\n\r\nexport default class {\r\n static Parse(o, source) {\r\n /*console.log('Object.Parse:', source)*/\r\n return applyValues(o, source);\r\n }\r\n\r\n static ApplySelfValues(o, source) {\r\n for(let p in o){\r\n if(o[p] && typeof o[p] === 'object') this.ApplySelfValues(o[p], source);\r\n o[p] = applySelfValues(source, o[p]);\r\n }\r\n return o;\r\n }\r\n}\r\n\r\n\r\n//In progress not tested\r\nexport function qMerge(o1, o2) {\r\n for(let p in o2){\r\n const action = p.slice(0,1);\r\n let sp = p.slice(1);\r\n switch(action) {\r\n case '+':\r\n if(typeof o2[p] === 'object'){\r\n o1[sp] = qMerge({...o1[sp]}, o2[p]);\r\n } else {\r\n o1[sp] = Object.assign(o1[sp], o2[p]);\r\n }\r\n break;\r\n case '-':\r\n //delete property\r\n delete o1[sp];\r\n break;\r\n default:\r\n Object.assign(o1[p], o2[p]);\r\n }\r\n }\r\n return o1;\r\n}\r\n","const postMessage = (message, targetOrigin = '*', stringyfy = true) => {\r\n\twindow.parent.postMessage( stringyfy? JSON.stringify(message):message, targetOrigin );\r\n\tconsole.log('postMessage:', message);\r\n}\r\n\r\n/**\r\n * Controls to communicate with Super-C parent window.\r\n */\r\nexport default class ParentComms {\r\n\r\n\tstatic SendData( data ) {\r\n\t\tpostMessage( data )\r\n\t}\r\n\r\n\tstatic SendEvent(event, data) {\r\n\t\tthis.SendData({\r\n\t\t\tdirection: 'from-iframe',\r\n\t\t\tevent,\r\n\t\t\tdata\r\n\t\t})\r\n\t}\r\n\r\n\r\n}\r\n","if(!window.dataLayer)window.dataLayer = [];\r\n// eslint-disable-next-line no-unused-vars\r\nconst pushData = (data) => {\r\n\twindow.dataLayer.push(data);\r\n}\r\n\r\nexport default class Lytics {\r\n\tstatic eventQueue = [];\r\n\tstatic queueTimer = null;\r\n\tstatic queueTimeout = 2000;\r\n\r\n\t/**\r\n\t *\r\n\t * @param event\r\n\t * @param opts\r\n\t * @constructor\r\n\t */\r\n\tstatic TriggerEvent(event, opts = {}) {\r\n\t\tconsole.log('Event Trigger: ' + event, opts);\r\n\t\tpushData({\r\n\t\t\t\t'event': event,\r\n\t\t\t\t...opts\r\n\t\t\t});\r\n\r\n\t\twindow.parent.postMessage({\r\n\t\t\tdirection: 'analytics-relay',\r\n\t\t\tevent,\r\n\t\t\t...opts\r\n\t\t}, '*');\r\n\t}\r\n\r\n\tstatic ClearEcommerce() {\r\n\t\tpushData({\r\n\t\t\t'ecommerce': null\r\n\t\t});\r\n\t\r\n\t}\r\n\r\n\t/*\r\n\t/**\r\n\t *\r\n\t * @param event\r\n\t * @param category\r\n\t * @param action\r\n\t * @param label\r\n\t * @constructor\r\n\tstatic TriggerEvent(event, category, action, label = '') {\r\n\t\tpushData({\r\n\t\t\t'event' : event,\r\n\t\t\t'eventCategory' : category,\r\n\t\t\t'eventAction' : action,\r\n\t\t\t'eventLabel' : label\r\n\t\t})\r\n\t}*/\r\n\r\n\t/**\r\n\t * Force a page change event\r\n\t * @param url\r\n\t * @param title\r\n\t * @constructor\r\n\t */\r\n\tstatic TriggerPageChange(url, title) {\r\n\t\t// TODO: DELETE when analytics 2.0 launches\r\n\t\tthis.TriggerEvent('virtualPageview',{\r\n\t\t\t'pageUrl': url || location.href,\r\n\t\t\t'pageTitle': title || document.title\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerFlyerLoaded(details = {}) {\r\n\t\tthis.TriggerEvent('flyer_loaded', details);\r\n\t}\r\n\r\n\t// TODO: DELETE when analytics 2.0 launches\r\n\tstatic TriggerLoadedFlyers(details = {}) {\r\n\t\tthis.TriggerEvent('LoadedFlyers', details);\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param {int} page Page Number\r\n\t * @param {string} flyerName\r\n\t * @constructor\r\n\t */\r\n\tstatic TriggerFlyerPageChange(page, flyerName, device_screen) {\r\n\t\tthis.TriggerEvent('flyer_page_change',\r\n\t\t\t{\r\n\t\t\t\tdevice_screen,\r\n\t\t\t\tpage_number: page,\r\n\t\t\t\t// TODO: DELETE fields below when analytics 2.0 launches\r\n\t\t\t\t'eventCategory' : 'flyerPage',\r\n\t\t\t\t'eventAction' : page,\r\n\t\t\t\t'eventLabel' : flyerName\r\n\t\t\t}\r\n\t\t);//, 'flyerPage', page, flyerName);\r\n\t}\r\n\r\n\tstatic TriggerDrawerToggle(isOpen) {\r\n\t\tthis.TriggerEvent(isOpen ? 'drawer_open' : 'drawer_close');\r\n\t}\r\n\r\n\tstatic TriggerDrawerChange() {\r\n\t\tthis.TriggerEvent('drawer_change');\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param {('print'|'email'|'clear')} action\r\n\t * @constructor\r\n\t */\r\n\tstatic TriggerShoppingList(action) {\r\n\t\tthis.TriggerEvent('Shopping_list_interactions',\r\n\t\t\t{\r\n\t\t\t\t'eventCategory': 'ShoppingListInteractions',\r\n\t\t\t\t'eventAction': action\r\n\t\t\t});//, 'ShoppingListInteractions', action);\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param action {('add'|'remove'|'change_count')}\r\n\t * @param productName\r\n\t * @param extra\r\n\t * @constructor\r\n\t */\r\n\tstatic TriggerShoppingListProduct(action, productName, extra = {}) {\r\n\t\tthis.TriggerEvent('Shopping_list_interactions_product',\r\n\t\t\t{\r\n\t\t\t\t'eventCategory': 'ProductInteraction',\r\n\t\t\t\t'eventAction': action,\r\n\t\t\t\t'eventLabel': productName,\r\n\t\t\t\t...extra\r\n\t\t\t});//, 'ProductInteraction', action, productName);\r\n\t}\r\n\r\n\tstatic TriggerAddToCart({\r\n\t\tpage_number,\r\n\t\tname,\r\n\t\tname_en,\r\n\t\tname_fr,\r\n\t\tproduct_id,\r\n\t\tprice,\r\n\t\tsale_price,\r\n\t\tcategory,\r\n\t\tcategory_2,\r\n\t\timage_url,\r\n\t\tquantity,\r\n\t}) {\r\n\t\tthis.ClearEcommerce();\r\n\t\tthis.TriggerEvent(\"add_to_cart\", {\r\n\t\t\tpage_number,\r\n\t\t\tecommerce: {\r\n\t\t\t\titems: [{\r\n\t\t\t\t\tname,\r\n\t\t\t\t\tname_en,\r\n\t\t\t\t\tname_fr,\r\n\t\t\t\t\tproduct_id,\r\n\t\t\t\t\tprice,\r\n\t\t\t\t\tsale_price,\r\n\t\t\t\t\tcategory,\r\n\t\t\t\t\tcategory_2,\r\n\t\t\t\t\timage_url,\r\n\t\t\t\t\tquantity\r\n\t\t\t\t}]\r\n\t\t\t}\r\n });\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param action\r\n\t * @param discount\r\n\t * @constructor\r\n\t */\r\n\tstatic TriggerFilter(action, discount) {\r\n\t\tthis.TriggerEvent('filter_interaction',{\r\n\t\t\tfilter_name: action,\r\n\t\t\tfilter_selected: discount,\r\n\t\t\t// TODO: DELETE fields below when analytics 2.0 launches\r\n\t\t\t'eventCategory' : 'filterInteraction',\r\n\t\t\t'eventAction' : action,\r\n\t\t\t'eventLabel' : discount\r\n\t\t});//, 'filterInteraction', action, discount);\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @constructor\r\n\t */\r\n\tstatic TriggerSearch(request) {\r\n\t\tthis.TriggerEvent('search_use',{\r\n\t\t\tquery: request,\r\n\t\t\t// TODO: DELETE fields below when analytics 2.0 launches\r\n\t\t\t'eventCategory' : 'searchUse',\r\n\t\t\t'eventAction' : request\r\n\t\t});//, 'searchUse', request);\r\n\t}\r\n\r\n\tstatic TriggerHelpClick() {\r\n\t\tthis.TriggerEvent('help_clicks');\r\n\t}\r\n\r\n\tstatic TriggerTutorialViews() {\r\n\t\tthis.TriggerEvent('tutorial_views');\r\n\t}\r\n\r\n\tstatic TriggerTutorialSkip(progress, totalSteps) {\r\n\t\tthis.TriggerEvent('tutorial_skip', {\r\n\t\t\ttutorial_progress: progress,\r\n\t\t\ttutorial_total_steps: totalSteps\r\n\t\t});\r\n\t\r\n\t}\r\n\r\n\tstatic TriggerTutorialComplete(totalSteps) {\r\n\t\tthis.TriggerEvent('tutorial_complete', {\r\n\t\t\ttutorial_total_steps: totalSteps\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerShoppingListStart() {\r\n\t\tthis.TriggerEvent('shopping_list_start');\r\n\t}\r\n\r\n\tstatic TriggerCarouselClick(details = {}) {\r\n\t\tthis.TriggerEvent('carousel_click', details);\r\n\t\tthis.TriggerSelectItem({ item_list_name: \"carousel click\", page_number: details.page_number, image_url: details.carousel_url });\r\n\t}\r\n\r\n\tstatic TriggerFullscreenToggle(isFullscreen) {\r\n\t\tthis.TriggerEvent('fullscreen_toggle', {\r\n\t\t\tfullscreen: isFullscreen\r\n\t\t})\r\n\t}\r\n\r\n\t// TODO: DELETE when analytics 2.0 launches\r\n\tstatic TriggerScreenOrientationChange() {\r\n\t\tthis.TriggerEvent('ToggleScreenOrientation', {\r\n\t\t\tcategory: \"ScreenOrientationChange\",\r\n\t\t})\r\n\t}\r\n\r\n\tstatic TriggerOrientationToggle(orientation, device_screen) {\r\n\t\tthis.TriggerEvent('orientation_toggle', {\r\n\t\t\torientation\r\n\t\t})\r\n\r\n\t\tthis.TriggerOrientationStatus(orientation, device_screen);\r\n\t}\r\n\r\n\tstatic TriggerOrientationStatus(orientation, device_screen) {\r\n\t\tthis.TriggerEvent('orientation_status', {\r\n\t\t\torientation,\r\n\t\t\tdevice_screen\r\n\t\t})\r\n\t}\r\n\r\n\t// TODO: DELETE when analytics 2.0 launches\r\n\tstatic TriggerExternalAdClick(details = {}){\r\n\t\tthis.TriggerEvent('ExternalAdClick', details);\r\n\t}\r\n\r\n\tstatic TriggerLinkClick({ url, page_number = null }) {\r\n\t\tthis.TriggerEvent('link_click', {\r\n\t\t\tlink_url: url,\r\n\t\t\tpage_number,\r\n\t\t\ttotal_click_include: true\r\n\t\t})\r\n\t}\r\n\r\n\tstatic TriggerAdClick(details = {}){\r\n\t\tthis.TriggerEvent('ad_click', details);\r\n\t\tthis.TriggerLinkClick({ url: details.ad_url });\r\n\t}\r\n\r\n\tstatic TriggerVideoClick(url, duration) {\r\n\t\tthis.TriggerEvent(\"video_click\", {\r\n\t\t\tvideo_url: url,\r\n\t\t\tvideo_duration: duration,\r\n\t\t\ttotal_click_include: true\r\n\t\t});\r\n\r\n\t\tthis.TriggerSelectItem({ item_list_name: \"video click\", image_url: url })\r\n\t}\r\n\r\n\tstatic TriggerSelectItem({ item_list_name, page_number, name = \"\", name_en = \"\", name_fr = \"\", product_id = \"\", price = \"\", sale_price = \"\", category = \"\", category_2 =\"\", image_url = \"\", quantity = 1 }) {\r\n\t\tthis.ClearEcommerce();\r\n\t\tthis.TriggerEvent(\"select_item\", {\r\n\t\t\tpage_number,\r\n ecommerce: {\r\n item_list_name,\r\n items: [\r\n {\r\n name,\r\n name_fr,\r\n name_en,\r\n product_id,\r\n price,\r\n position: 0,\r\n sale_price,\r\n category,\r\n\t\t\tcategory_2,\r\n image_url,\r\n quantity,\r\n },\r\n ],\r\n },\r\n });\r\n\t}\r\n\r\n\tstatic TriggerVideoProgress({url, duration, progress}) {\r\n\t\tthis.TriggerEvent(\"video_progress\", {\r\n\t\t\tvideo_url: url,\r\n\t\t\tvideo_duration: duration,\r\n\t\t\tvideo_watched: progress\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerVideoCompletion({url, duration}) {\r\n\t\tthis.TriggerEvent(\"video_completion\", {\r\n\t\t\tvideo_url: url,\r\n\t\t\tvideo_duration: duration,\r\n\t\t});\r\n\t}\r\n\r\n\t// TODO: DELETE when analytics 2.0 launches\r\n\tstatic TriggerVideoLength(details = {}) {\r\n this.TriggerEvent(\"VideoLength\", details);\r\n }\r\n\t\r\n\tstatic TriggerZoom(isZoomIn) {\r\n\t\tthis.TriggerEvent(isZoomIn ? 'zoom_in' : 'zoom_out');\r\n\t}\r\n\t\r\n\tstatic TriggerTireAdClick(details = {}) {\r\n\t\tthis.TriggerEvent('TireAdClick', details);\r\n\t}\r\n\r\n\tstatic TriggerGotoLandingPage() {\r\n\t\tthis.TriggerEvent('NavigateToLandingPage', { category: 'ButtonPressed'})\r\n\t}\r\n\r\n\tstatic addToEventQueue({ items, item_list_name, page_number = null }) {\r\n\t\tthis.eventQueue.push({ items, item_list_name, page_number });\r\n\t\tthis.startQueueTimer();\r\n\t}\r\n\r\n\tstatic startQueueTimer() {\r\n\t\tif (this.queueTimer === null) {\r\n\t\t\tthis.queueTimer = setTimeout(() => this.sendEventQueue(), this.queueTimeout);\r\n\t\t}\r\n\t}\r\n\r\n\tstatic sendEventQueue() {\r\n const batchedEvents = {};\r\n\r\n // Group events by item_list_name and page_number\r\n this.eventQueue.forEach(event => {\r\n const key = `${event.item_list_name}_${event.page_number}`;\r\n if (!batchedEvents[key]) {\r\n batchedEvents[key] = {\r\n items: [],\r\n item_list_name: event.item_list_name,\r\n page_number: event.page_number\r\n };\r\n }\r\n batchedEvents[key].items.push(...event.items);\r\n });\r\n\r\n // Send batches ensuring no more than 25 items per batch\r\n for (const key in batchedEvents) {\r\n const { items, item_list_name, page_number } = batchedEvents[key];\r\n while (items.length > 0) {\r\n const batch = items.splice(0, 25);\r\n this.ClearEcommerce();\r\n this.TriggerEvent(\"view_item_list\", {\r\n page_number,\r\n ecommerce: {\r\n item_list_name,\r\n items: batch\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.eventQueue = [];\r\n clearTimeout(this.queueTimer);\r\n this.queueTimer = null;\r\n\t}\r\n\r\n\r\n\tstatic TriggerViewItemList({ items, item_list_name }) {\r\n\t\tthis.ClearEcommerce();\r\n\t\tthis.TriggerEvent(\"view_item_list\", {\r\n\t\t\tecommerce: {\r\n\t\t\t\titem_list_name,\r\n\t\t\t\titems\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tstatic TriggerFlyerImpression({ flyer, client, banner, store_id, platform }) {\r\n\t\tconsole.log('Flyer Impression:', flyer);\r\n\t\tthis.TriggerEvent(\"flyer_impression\", {\r\n imp_client: client,\r\n imp_banner: banner,\r\n imp_store_id: store_id,\r\n\t\t\timp_store_name: flyer.storeName,\r\n imp_version_id: flyer.zonedPublicationName,\r\n imp_platform: platform,\r\n imp_deal_id: flyer.title,\r\n imp_end_date: flyer.endDate,\r\n imp_start_date: flyer.startDate,\r\n imp_language: flyer.language,\r\n imp_job_name: flyer.jobName,\r\n imp_region: flyer.province,\r\n });\r\n\t}\r\n\r\n\tstatic TriggerAdImpression({ name, url, image_url, size, page_number = null }) {\r\n\t\tthis.TriggerEvent(\"ad_impression\", {\r\n\t\t\tad_name: name,\r\n\t\t\tad_url: url,\r\n\t\t\tad_image_url: image_url,\r\n\t\t\tad_size: size,\r\n\t\t\tpage_number\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerVideoImpression({ url, page_number = null }) {\r\n\t\tthis.TriggerEvent(\"video_impression\", {\r\n\t\t\tvideo_url: url,\r\n\t\t\tpage_number,\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerAnimatedGraphicImpression({ url, page_number = null }) {\r\n\t\tthis.TriggerEvent(\"animated_graphic_impression\", {\r\n animated_graphic_url: url,\r\n\t\t\tpage_number\r\n });\r\n\t}\r\n\r\n\tstatic TriggerCarouselImpression({ id, url, frame, frame_count, page_number = null }) {\r\n\t\tthis.TriggerEvent(\"carousel_impression\", {\r\n\t\t\tcarousel_id: id,\r\n\t\t\tcarousel_url: url,\r\n\t\t\tcarousel_frame: frame,\r\n\t\t\tcarousel_frame_max: frame_count,\r\n\t\t\tpage_number,\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerLinkImpression({ url, page_number = null }) {\r\n\t\tthis.TriggerEvent(\"link_impression\", {\r\n\t\t\tlink_url: url,\r\n\t\t\tpage_number,\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerAddToWishlist({ page_number, name, name_en, name_fr, product_id, price, sale_price, category, category_2, image_url, quantity }) {\r\n\t\tthis.ClearEcommerce();\r\n\t\tthis.TriggerEvent(\"add_to_wishlist\", {\r\n\t\t\tpage_number,\r\n\t\t\tecommerce: {\r\n\t\t\t\titems: [{\r\n\t\t\t\t\tname,\r\n\t\t\t\t\tname_en,\r\n\t\t\t\t\tname_fr,\r\n\t\t\t\t\tproduct_id,\r\n\t\t\t\t\tprice,\r\n\t\t\t\t\tsale_price,\r\n\t\t\t\t\tcategory,\r\n\t\t\t\t\tcategory_2,\r\n\t\t\t\t\timage_url,\r\n\t\t\t\t\tquantity\r\n\t\t\t\t}]\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerEmailSignupClick() {\r\n\t\tthis.TriggerEvent(\"email_signup_click\");\r\n\t}\r\n\r\n\tstatic TriggerScrollButtonClick({ orientation, page_number, scroll_direction }) {\r\n\t\tthis.TriggerEvent(\"scroll_button_click\", {\r\n\t\t\torientation,\r\n\t\t\tpage_number,\r\n\t\t\tscroll_direction\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerScrollBarClick({ orientation, page_number, scroll_direction }) {\r\n\t\tthis.TriggerEvent(\"scroll_bar_click\", {\r\n\t\t\torientation,\r\n\t\t\tpage_number,\r\n\t\t\tscroll_direction\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TransferToMerchantClick({ page_number }) {\r\n\t\tthis.TriggerEvent(\"transfer_to_merchant_click\", {\r\n\t\t\tpage_number\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerInBlockVideoImpression({ url, page_number }) {\r\n\t\tthis.TriggerEvent(\"in_block_video_impression\", {\r\n\t\t\tvideo_url: url,\r\n\t\t\tpage_number\r\n\t\t});\r\n\t}\r\n\r\n\tstatic TriggerInBlockVideoClick({ url, page_number }) {\r\n\t\tthis.TriggerEvent(\"in_block_video_click\", {\r\n\t\t\tvideo_url: url,\r\n\t\t\tpage_number,\r\n\t\t\ttotal_click_include: true\r\n\t\t});\r\n\t}\r\n}\r\n","import ObjPropParser from \"@/classes/ObjPropParser\";\r\nimport ParentComms from \"@/classes/ParentComms\";\r\nimport Lytics from \"@/classes/Lytics\";\r\nimport {merge} from \"lodash\";\r\n\r\nconst config = {};\r\n\r\nasync function mergeConfigs(files) {\r\n\tlet o = {};\r\n\tfor(let i in files) {\r\n\t\tconst config = await fetch(`/config/${files[i]}`);\r\n\t\tconst json = await config.json();\r\n\t\to = merge(o, json);\r\n\t}\r\n\treturn o;\r\n}\r\n\r\nexport default class {\r\n\tstatic async LoadConfig(conf, arg = '') {\r\n\t\ttry{\r\n\t\t\tif(arg)arg = `-${arg}`\r\n\t\t\tconst ver= Math.random();\r\n\t\t\tconst files = this.AppConf?.flyerConfig?.merge?.files;\r\n\r\n\t\t\tif(files){\r\n\t\t\t\tconst _config = await mergeConfigs(files);\r\n\t\t\t\tconfig[conf] = _config;\r\n\t\t\t\treturn _config;\r\n\t\t\t}\r\n\t\t\tconst _config = await fetch(`/config/${conf}${arg}.json?v=${ver}`);\r\n\t\t\tconst json = await _config.json();\r\n\t\t\tconfig[conf] = json;\r\n\t\t\treturn json;\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(`Config File '${conf} failed to load.`, e);\r\n\t\t}\r\n\t}\r\n\tstatic get AppConf() {\r\n\t\treturn config['app'];\r\n\t}\r\n\r\n\tstatic ParseEvent(events = {}, data = null) {\r\n\t\tfor(let p in events) {\r\n\t\t\tconst eventData = ObjPropParser.Parse(events[p] , data);\r\n\t\t\tswitch(p) {\r\n\t\t\t\tcase 'postMessage':\r\n\t\t\t\t\t//console.log('ParseEvent PostMessage:', data)\r\n\t\t\t\t\tParentComms.SendData(eventData);\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'analytic':\r\n\t\t\t\t\tLytics.TriggerEvent(eventData.event, eventData.data)\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n}\r\n","let pageBounds = [];\r\nlet pageMode = 'desktop';\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\nlet schema = {\r\n\t\"id\": \"search_results_page\",\r\n\t\"flyerId\": \"0000000000\",\r\n\t\"name\": \"search_results\",\r\n\t\"documentName\": \"\",\r\n\t\"inDesignId\": 0,\r\n\t\"index\": 1,\r\n\t\"width\": 0,\r\n\t\"height\": 0,\r\n\t\"basebars\": {\r\n\t\t\"desktop\": {\r\n\t\t\t\"image\": \"\",\r\n\t\t\t\"visible\": false\r\n\t\t},\r\n\t\t\"tablet\": {\r\n\t\t\t\"image\": null,\r\n\t\t\t\"visible\": false\r\n\t\t},\r\n\t\t\"mobile\": {\r\n\t\t\t\"image\": null,\r\n\t\t\t\"visible\": false\r\n\t\t}\r\n\t},\r\n\t\"type\": {\r\n\t\t\"layout\": 0,\r\n\t\t\"unitWidth\": 140.4,\r\n\t\t\"unitHeight\": 133.5,\r\n\t\t\"grids\": {\r\n\t\t\t\"desktop\": {\r\n\t\t\t\t\"rowCount\": 4,\r\n\t\t\t\t\"colCount\": 5,\r\n\t\t\t\t\"totalBlocks\": 20,\r\n\t\t\t\t\"type\": 0,\r\n\t\t\t\t\"name\": \"Desktop\"\r\n\t\t\t},\r\n\t\t\t\"tablet\": {\r\n\t\t\t\t\"rowCount\": 4,\r\n\t\t\t\t\"colCount\": 5,\r\n\t\t\t\t\"totalBlocks\": 20,\r\n\t\t\t\t\"type\": 1,\r\n\t\t\t\t\"name\": \"Tablet\"\r\n\t\t\t},\r\n\t\t\t\"mobile\": {\r\n\t\t\t\t\"rowCount\": 7,\r\n\t\t\t\t\"colCount\": 3,\r\n\t\t\t\t\"totalBlocks\": 21,\r\n\t\t\t\t\"type\": 2,\r\n\t\t\t\t\"name\": \"Mobile\"\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"blocks\": []\r\n}\r\n\r\nfunction getSchema(){\r\n\treturn JSON.parse(JSON.stringify(schema));\r\n}\r\n\r\nfunction calcGrids(blocks, grid){\r\n\tlet totalBlocks = 0;\r\n\tfor(let i=0; i < blocks.length; i++) {\r\n\t\tconst block = blocks[i];\r\n\t\ttotalBlocks += block.rowSpan * block.colSpan;\r\n\t}\r\n\r\n\tconst gridSchema = {\r\n\t\t\"desktop\": {\r\n\t\t\t\"rowCount\": 4,\r\n\t\t\t\"colCount\": 5,\r\n\t\t\t\"totalBlocks\": totalBlocks,\r\n\t\t\t\"type\": 0,\r\n\t\t\t\"name\": \"Desktop\"\r\n\t\t},\r\n\t\t\"tablet\": {\r\n\t\t\t\"rowCount\": 5,\r\n\t\t\t\"colCount\": 4,\r\n\t\t\t\"totalBlocks\": totalBlocks,\r\n\t\t\t\"type\": 1,\r\n\t\t\t\"name\": \"Tablet\"\r\n\t\t},\r\n\t\t\"mobile\": {\r\n\t\t\t\"rowCount\": 5,\r\n\t\t\t\"colCount\": 4,\r\n\t\t\t\"totalBlocks\": totalBlocks,\r\n\t\t\t\"type\": 2,\r\n\t\t\t\"name\": \"Mobile\"\r\n\t\t}\r\n\t}\r\n\r\n\tfor(let p in gridSchema){\r\n\t\tconst mode = gridSchema[p];\r\n\t\tconst rowCount = mode.rowCount;\r\n\t\t\r\n\t\tswitch(p){\r\n\t\t\tcase 'tablet':\r\n\t\t\t\tmode.colCount = grid.colCount\r\n\t\t\t\tmode.rowCount = grid.rowCount\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'desktop':\r\n\t\t\t\tif(AppConfig.AppConf?.title.toLowerCase().includes(\"london\".toLowerCase())){\r\n\t\t\t\t\tif (grid.colCount > 60) {\r\n\t\t\t\t\t blocks.sort((a,b) => a.colSpan - b.colSpan)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmode.rowCount = grid.rowCount\r\n\t\t\t\t\tconst maxCols = 12;\r\n\t\t\t\t\tmode.colCount = Math.min(Math.ceil(Math.sqrt(totalBlocks)), maxCols)\r\n\t\t\t\t} else {\r\n\t\t\t\t mode.colCount = Math.max(mode.colCount, Math.ceil(totalBlocks / rowCount));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 'mobile':\r\n\t\t\t\tmode.colCount = grid.colCount\r\n\t\t\t\tmode.rowCount = grid.rowCount\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn gridSchema;\r\n}\r\n\r\nexport default class Page{\r\n\tstatic GenerateSearchPage(blocks, pageType = null, grid = {}){\r\n\t\tlet schema = getSchema();\r\n\t\tschema.blocks = blocks;\r\n\t\tif(pageType){\r\n\t\t\tconsole.log('DefPage:', pageType)\r\n\t\t\tschema.type = JSON.parse(JSON.stringify(pageType))\r\n\t\t}\r\n\r\n\t\tschema.grids = calcGrids(blocks,grid);\r\n\r\n\t\treturn schema;\r\n\t}\r\n\r\n\tstatic SetDefPage(page) {\r\n\t\t// this function was updated to handle type attributes moving into the parent object in api -TK\r\n\t\t\r\n\t\tconst pageType = (({\r\n\t\t\tgrids,\r\n\t\t\tid,\r\n\t\t\tlayout,\r\n\t\t\tpageTypeName,\r\n\t\t\tunitHeight,\r\n\t\t\tunitWidth,\r\n\t\t}) => ({ grids, id, layout, pageTypeName, unitHeight, unitWidth }))(\r\n\t\t\tpage\r\n\t\t);\r\n\t\t\r\n\t\tif (page) schema = { ...schema, ...pageType };\r\n\t}\r\n\r\n\tstatic GetBaseScale(){\r\n\r\n\t\tconst gridContainer = document.getElementsByClassName('grid-container');\r\n\r\n\t\tif(!gridContainer[0])return 1;\r\n\r\n\t\tconst containerBounds = gridContainer[0].getBoundingClientRect();\r\n\t\t//const headerBounds = document.getElementsByTagName('header')[0].getBoundingClientRect();\r\n\t\tconst baseBar = 30.88 + 20 + 22 //20 for the scrollbar + 22 for legal;\r\n\t\tconst boxHeight = 133.5;\r\n\t\tconst gridHeight = baseBar + boxHeight * 4;\r\n\t\treturn containerBounds.height / gridHeight;\r\n\t}\r\n\r\n\tstatic GetCenterOrigin(){\r\n\t\tconst container = document.getElementsByClassName('grid-container')[0];\r\n\t\tif(container){\r\n\t\t\tconst scroll = Math.abs(container.scrollLeft);\r\n\t\t\treturn scroll + window.innerWidth / 2\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tstatic SetMode(mode){\r\n\t\tpageMode = mode;\r\n\t}\r\n\r\n\t//This doesn't work yet....\r\n\tstatic ScrollCenterOrigin(scaleDiff){\r\n\r\n\t\tconst container = document.getElementsByClassName('grid-container')[0];\r\n\t\tif(container){\r\n\t\t\tconst maxScroll = container.scrollWidth;\r\n\t\t\tconst scrollDiff = maxScroll * scaleDiff;\r\n\r\n\t\t\tconsole.log('scaleDiff:', scaleDiff, ' maxScroll:', maxScroll, ' Scroll Diff:', scrollDiff);\r\n\t\t\treturn container.scrollLeft -= scrollDiff;\r\n\t\t}\r\n\t}\r\n\r\n\tstatic UpdatePageBounds(){\r\n\t\tpageBounds = [];\r\n\t\t//const mode = pageMode;\r\n\t\tconst pages = document.querySelectorAll('.responsive-grid .section-container[page-id]');\r\n\t\tfor(let i=0; i < pages.length; i++){\r\n\t\t\tconst page = pages[i];\r\n\t\t\tpageBounds.push(page);\r\n\t\t}\r\n\r\n\t\t//console.log('Pages Found:', pageBounds)\r\n\t}\r\n\r\n\tstatic GetTotalPages(){\r\n\t\treturn pageBounds.length;\r\n\t}\r\n\r\n\tstatic GetCurrentPage(totalPages) {\r\n\t\t//const mode = pageMode;\r\n\t\tconst container = document.getElementsByClassName('grid-container')[0];\r\n\t\tif(container){\r\n\r\n\t\t\t//Lets do a little cheat...\r\n\r\n\t\t\tconst containerBounds = container.getBoundingClientRect();\r\n\r\n\t\t\tconst bhw = (pageMode == 'mobile'? 'height':'width');\r\n\t\t\t//const btl = (pageMode == 'mobile'? 'top':'left');\r\n\t\t\t//const bbr = (pageMode == 'mobile'? 'bottom':'right');\r\n\r\n\t\t\tconst scrollMax = container[bhw == 'height'? 'scrollHeight': 'scrollWidth'];\r\n\t\t\tconst containerMax = containerBounds[bhw]\r\n\r\n\t\t\tconsole.log('scrollMax:', scrollMax, ' containerMax:', containerMax)\r\n\r\n\t\t\tconst maxLeft = scrollMax - containerMax;\r\n\r\n\t\t\tconsole.log('maxScroll:', maxLeft)\r\n\r\n\r\n\t\t\treturn Math.round((container[bhw == 'height'? 'scrollTop': 'scrollLeft'] / maxLeft) * totalPages) || 1;\r\n\r\n\r\n\t\t\t/*\r\n\t\t\tfor(let i=0; i < pageBounds.length; i++){\r\n\t\t\t\tconst bounds = pageBounds[i].getBoundingClientRect();\r\n\t\t\t\tconst tol = (bounds[bhw] * 0.8) >= Math.abs(bounds[btl]); //if 80% of page is visible\r\n\r\n\t\t\t\tif(tol){\r\n\t\t\t\t\treturn i + 1;\r\n\t\t\t\t}\r\n\t\t\t}*/\r\n\t\t}\r\n\r\n\t\treturn 1;\r\n\r\n\t}\r\n}\r\n","import Page from \"@/classes/Page\";\r\nimport ParentComms from \"@/classes/ParentComms\";\r\n\r\nconst state = {\r\n\tzoomLevel: 0.0,\r\n\tzoomMin: -0.75,\r\n\tzoomMax: 1.5,\r\n\tzoomIncrement: 0.25,\r\n\tminScale: 0.125,\r\n\tbaseScale: 1,\r\n\tflyerHeight: null,\r\n\ttransformOrigin: 0,\r\n\tscrollOffset: 0,\r\n\tcurrentScale: 1,\r\n\tscrollY: 0,\r\n\tscrollX: 0,\r\n\tmanualZoom: false,\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\n// const dpiDim = {\r\n// \t96: {\r\n// \t\tw: 187,\r\n// \t\th: 172\r\n// \t},\r\n// \t150: {\r\n// \t\tw: 293,\r\n// \t\th: 269\r\n// \t},\r\n// \t200: {\r\n// \t\tw: 390,\r\n// \t\th: 359\r\n// \t},\r\n// \t250: {\r\n// \t\tw: 488,\r\n// \t\th: 449\r\n// \t},\r\n// \t300: {\r\n// \t\tw: 585,\r\n// \t\th: 538\r\n// \t}\r\n// }\r\n\r\n/*const dpiDim = {\r\n\t72: {\r\n\t\tw: 140,\r\n\t\th: 182\r\n\t},\r\n\t144: {\r\n\t\tw: 280,\r\n\t\th: 364\r\n\t},\r\n\t216: {\r\n\t\tw: 420,\r\n\t\th: 546\r\n\t},\r\n\t288: {\r\n\t\tw: 560,\r\n\t\th: 728\r\n\t}\r\n}*/\r\n\r\nconst getZoomDPI = (currentScale, dpiDim, dpiNorm) => {\r\n\tlet zoomDpi = (currentScale * dpiNorm) * window.devicePixelRatio;\r\n\t// console.log(\"current scale is \" + currentScale)\r\n\t// console.log(\"zoom DPI is \" + zoomDpi)\r\n\r\n\tif(window.visualViewport){\r\n\t\tzoomDpi = zoomDpi * window.visualViewport.scale;\r\n\t\t// console.log(\"window.visualViewport true or false \" + window.visualViewport.scale)\r\n\t\t// console.log(\"window.visualViewport \" + zoomDpi)\r\n\t}\r\n\r\n\tconst dpis = Object.keys(dpiDim).sort((a,b) => {\r\n\t\treturn parseInt(a, 10) - parseInt(b, 10);\r\n\t});\r\n\r\n\t// console.log('DPIs:', dpis);\r\n\t// console.log('zoomDPI:', zoomDpi);\r\n\r\n\tfor(let i = 0; i < dpis.length; i++){\r\n\t\tconst dpi = dpis[i];\r\n\t\tif(zoomDpi <= dpi)return dpi;\r\n\t}\r\n\r\n\t/*for(let dpi in dpiDim){\r\n\t\tif(zoomDpi <= dpi)return dpi;\r\n\t\t// console.log(\"for loop dpi in dpiDIM is \" + dpi)\r\n\t}*/\r\n\r\n\treturn dpis.pop();\r\n}\r\n\r\nconst getters = {\r\n\r\n\tdefPage(state, getters, rootState) {\r\n\t\tconst pages = rootState.pages;\r\n\t\tconst dp = pages.find((page) => {\r\n\t\t\treturn page.isAdPage === false;\r\n\t\t})\r\n\r\n\t\tPage.SetDefPage(dp);\r\n\r\n\t\treturn dp;\r\n\r\n\t},\r\n\r\n\tdefPageGrid(state, getters, rootState, rootGetters){\r\n\t\tif(getters.defPage){\r\n\t\t\treturn getters.defPage.grids[rootGetters[\"screen/displayMode\"]];\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\tunitWidth(state, getters){\r\n\t\tconst pages = getters.defPage;\r\n\t\tif(pages){\r\n\t\t\treturn pages.unitWidth;\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\tunitHeight(state, getters){\r\n\t\tconst pages = getters.defPage;\r\n\t\tif(pages){\r\n\t\t\treturn pages.unitHeight;\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\tDPIs(state, getters) {\r\n\t\tconst d = {};\r\n\t\tconst avc = {};\r\n\t\tconst blocks = getters.defPage.blocks;\r\n\t\tblocks.forEach((block) => {\r\n\t\t\tconst colSpan = block.colSpan;\r\n\t\t\tconst rowSpan = block.rowSpan;\r\n\t\t\tblock.images.forEach((image) => {\r\n\t\t\t\tconst res = image.resolution;\r\n\t\t\t\tif(!d[res]) {\r\n\t\t\t\t\td[res] = {\r\n\t\t\t\t\t\th:0,\r\n\t\t\t\t\t\tw:0\r\n\t\t\t\t\t};\r\n\t\t\t\t\tavc[res] = 0;\r\n\t\t\t\t}\r\n\t\t\t\tavc[res]++;\r\n\t\t\t\td[res].h += image.height / rowSpan;\r\n\t\t\t\td[res].w += image.width / colSpan;\r\n\t\t\t})\r\n\t\t})\r\n\t\tfor(let p in d){\r\n\t\t\td[p].h = d[p].h / avc[p];\r\n\t\t\td[p].w = d[p].w / avc[p];\r\n\t\t}\r\n\t\treturn d;\r\n\t},\r\n\r\n\tDPINormal(state, getters) {\r\n\t\tconst dpis = getters.DPIs;\r\n\t\tconst uw = getters.unitWidth;\r\n\t\tconst uh = getters.unitHeight;\r\n\t\tlet closest = null;\r\n\t\tfor(let p in dpis) {\r\n\t\t\tif(!closest) {\r\n\t\t\t\tclosest = p;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tconst dpi = dpis[p];\r\n\t\t\tconst ldpi = dpis[closest];\r\n\t\t\tconst delta = Math.abs(uw - dpi.w) + Math.abs(uh - dpi.h);\r\n\t\t\tconst ldelta = Math.abs(uw - ldpi.w) + Math.abs(uh - ldpi.h);\r\n\t\t\tif(delta < ldelta)closest = p;\r\n\t\t}\r\n\t\treturn closest;\r\n\t},\r\n\r\n\t/*currentScale(state){\r\n\t\treturn Math.max(state.baseScale + (state.zoomLevel * state.baseScale), state.minScale);\r\n\t},*/\r\n\timageDPI(state, getters){\r\n\t\t//const fo = rootGetters[\"screen/flyerOrientation\"];\r\n\t\tconst dpi = getZoomDPI(state.currentScale, getters.DPIs, getters.DPINormal);\r\n\t\t// console.log(\"dpi returned from imageDPI() \" + dpi)\r\n\t\treturn dpi;\r\n\r\n\t\t/*if(fo == 'horizontal' || dpi == 300){\r\n\t\t\treturn dpi;\r\n\t\t} else {\r\n\t\t\tif (!rootState.screen.gridBounds) return dpi;\r\n\t\t\tconst sw = rootState.screen.gridBounds.width;\r\n\t\t\tconst cols = 5;\r\n\t\t\tconst tWidth = dpiDim[getZoomDPI(1)].w * cols;\r\n\t\t\tconst cs = (sw / tWidth) * state.currentScale;\r\n\t\t\treturn getZoomDPI(cs);\r\n\t\t}*/\r\n\t}\r\n}\r\n\r\nconst actions = {\r\n\t// eslint-disable-next-line no-unused-vars\r\n\tsetZoomLevel({ commit, getters }, val){\r\n\t\tcommit(\"SET_ZOOM_LEVEL\", val);\r\n\t},\r\n\tzoomIn({ dispatch, state }){\r\n\t\t// console.log(\"called store > zoomIn\");\r\n\t\tdispatch(\"setZoomLevel\", state.zoomLevel + state.zoomIncrement);\r\n\t},\r\n\tzoomOut({ dispatch, state }){\r\n\t\t// console.log(\"called store > zoom out\");\r\n\t\tdispatch(\"setZoomLevel\", state.zoomLevel - state.zoomIncrement);\r\n\t},\r\n\tzoomNormal( {dispatch }){\r\n\t\tdispatch(\"setZoomLevel\", 0);\r\n\t},\r\n\tupdateScale( { commit }, val ){\r\n\t\t//console.log('Update Scale:', val);\r\n\t\tcommit('SET_CURRENT_SCALE', val);\r\n\t},\r\n\tsetScrollY({commit}, val) {\r\n\t\tcommit('SET_SCROLL_Y', val);\r\n\t},\r\n\tupdateScrollX({commit}, val) {\r\n\t\tcommit('UPDATE_SCROLL_X', val);\r\n\t},\r\n\tsetManualZoom({commit}, val) {\r\n\t\tcommit('SET_MANUAL_ZOOM', val);\r\n\t}\r\n}\r\n\r\nconst mutations = {\r\n\tSET_CURRENT_SCALE(state, val){\r\n\t\tstate.currentScale = val;\r\n\t\t// console.log(\"mutation of current scale is \" + state.currentScale)\r\n\t},\r\n\tSET_SCROLL_Y(state, val){\r\n\t\tstate.scrollY = val;\r\n\t\t// console.log(\"mutation of current scale is \" + state.currentScale)\r\n\t},\r\n\tUPDATE_SCROLL_X(state, val){\r\n\t\tstate.scrollX = val;\r\n\t},\r\n\r\n\tSET_ZOOM_LEVEL(state, val){\r\n\t\tlet newZoom = val;\r\n\t\tconst zoomMin = state.zoomMin;\r\n\t\tconst zoomMax = state.zoomMax;\r\n\r\n\t\t//console.log(`SET_ZOOM_LEVEL - \\n\\tzoomMin = ${zoomMin} \\n\\tzoomMax = ${zoomMax}\\n\\tnewZoom = ${newZoom}`);\r\n\r\n\t\tif(newZoom < zoomMin)newZoom = zoomMin;\r\n\t\tif(newZoom > zoomMax)newZoom = zoomMax;\r\n\r\n\t\tstate.zoomLevel = newZoom;\r\n\t\tParentComms.SendEvent('zoom', {scale: newZoom});\r\n\t},\r\n\tSET_MANUAL_ZOOM(state, val) {\r\n\t\tstate.manualZoom = val;\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations,\r\n};\r\n\r\n/**\r\n * Gets the image object (with resolution property) that is closest to provided dpi. Resolves to higher dpi if equal not found\r\n * @param dpi\r\n * @param images\r\n * @returns {*}\r\n */\r\nexport function getClosestDPI(dpi, images) {\r\n\tconst img = Object.assign([], images);\r\n\timg.sort((a, b) => {\r\n\t\treturn a.resolution - b.resolution;\r\n\t})\r\n\r\n\tfor (let i = 0; i < img.length; i++) {\r\n\t\tif (img[i].resolution >= dpi) return img[i];\r\n\t}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.ready)?_c('div',{directives:[{name:\"observe-visibility\",rawName:\"v-observe-visibility\",value:({\n\t\t\t\tcallback: _vm.onVisibilityChange,\n\t\t\t\tthrottle: 50,\n\t\t\t\tintersection: _vm.getObserverOptions(true)\n\t\t\t}),expression:\"{\\n\\t\\t\\t\\tcallback: onVisibilityChange,\\n\\t\\t\\t\\tthrottle: 50,\\n\\t\\t\\t\\tintersection: getObserverOptions(true)\\n\\t\\t\\t}\"}],class:_vm.classes,style:(_vm.style),attrs:{\"tabindex\":\"0\"}},[_c(_vm.blockComponent,{ref:\"innerElement\",tag:\"component\",attrs:{\"block\":_vm.blockRef,\"block-data\":_vm.blockData,\"is-visible\":_vm.isVisible,\"page\":_vm.page,\"seen\":_vm.seen,\"blockId\":_vm.blockKey}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"product-block\",class:{'filler-block': _vm.isFillerBlock},on:_vm._d({},[_vm.linkUrlEvent,_vm.handleClick])},[(_vm.highlightResults && !_vm.isAdPage)?_c('product-mask-overlay',_vm._b({},'product-mask-overlay',_vm.$props,false)):_c('image-element',_vm._b({ref:\"imageElement\",staticClass:\"product-block-image\"},'image-element',_vm.$props,false)),_c('div',{staticClass:\"overlay\"}),(_vm.isVisible)?_c('div',[_vm._l((_vm.products),function(product,index){return _c('product-click-regions',_vm._g({key:product.sku + index,attrs:{\"block\":_vm.block,\"block-data\":_vm.blockData,\"block-id\":_vm.blockId,\"hidePlayBtn\":_vm.hidePlayBtn,\"is-visible\":_vm.isVisible,\"page\":_vm.page,\"product\":product}},_vm.$listeners))}),(_vm.highlightEnabled)?_c('item-highlight',{attrs:{\"block\":_vm.block,\"products\":_vm.products}}):_vm._e()],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.seen)?_c('img',{class:{expand: _vm.isExpanded},style:(_vm.style),attrs:{\"src\":_vm.src,\"alt\":_vm.productDesc}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import FlyerBlock from \"@/components/block/FlyerBlock.vue\";\r\n\r\nexport default {\r\n\tprops:{\r\n\t\tpage:{\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {};\r\n\t\t\t}\r\n\t\t},\r\n\t\tblockData:{\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {}\r\n\t\t\t}\r\n\t\t},\r\n\t\tblock:{\r\n\t\t\ttype: FlyerBlock,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {};\r\n\t\t\t}\r\n\t\t},\r\n\t\tisVisible:{\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t},\r\n\t\tseen:{\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t}\r\n\t}\r\n}\r\n","import {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport {get, merge} from \"lodash\";\r\nimport ObjPropParser from \"@/classes/ObjPropParser\";\r\n\r\n//import Vue from \"vue\";\r\n\r\n\r\nfunction applyMergedData(p, md, data, target) {\r\n\t//If property has + in front mean the object should merge with data rather than replace it.\r\n\tif (p.charAt(0) === '+') {\r\n\t\tconst cp = p.slice(1);\r\n\t\ttarget[cp] = merge({}, data, md);\r\n\t} else {\r\n\t\ttarget[p] = md;\r\n\t}\r\n}\r\n\r\nfunction expandProp(obj, prop, data) {\r\n\t// \\[(.*?)\\]\r\n\t// /\\[([^\\[\\]]+)\\]/\r\n\r\n\tconst o = {};\r\n\tconst m = prop.match(/\\[(.*?)\\]/);\r\n\r\n\tif (m) {\r\n\t\tconst props = m[1].split(',').map((p) => p.trim());\r\n\t\tprops.forEach((p) => {\r\n\t\t\tconst md = merge(o[p], obj[prop]);\r\n\t\t\tapplyMergedData(p, md, data, o);\r\n\t\t})\r\n\t} else {\r\n\t\tapplyMergedData(prop, obj[prop], data, o);\r\n\t\t//o[prop] = obj[prop];\r\n\t}\r\n\treturn o;\r\n}\r\n\r\nfunction expandObject(obj, data) {\r\n\tif (!obj) return null;\r\n\tlet o = {};\r\n\tfor (let p in obj) {\r\n\t\to = merge(o, expandProp(obj, p, data));\r\n\t}\r\n\treturn o;\r\n}\r\n\r\nfunction checkScreenSize(screen, sizes) {\r\n\tconst ss = Object.keys(screen).sort((a, b) => b.localeCompare(a, undefined, {numeric: true}));\r\n\t///console.log('Screen Size Sort:', ss);\r\n\tconst width = sizes.innerWidth;\r\n\tlet val = null;\r\n\tfor (let i = 0; i < ss.length; i++) {\r\n\t\tconst bp = ss[i];\r\n\t\tif (width <= bp) {\r\n\t\t\tval = screen[bp];\r\n\t\t} else {\r\n\t\t\treturn val;\r\n\t\t}\r\n\t}\r\n\treturn val;\r\n\t/*for(let p in screen) {\r\n\t\tconst m = p.toLocaleLowerCase().replaceAll(' ', '').split(/([<=>])/);\r\n\t\tconst param = m.shift();\r\n\t\tconst value = m.pop();\r\n\t\tconst condition = m.join('');\r\n\t\tconst cVal = sizes[(param === 'width')? 'innerWidth': 'innerHeight'];\r\n\r\n\t\tif(eval(`${cVal} ${condition} ${value}`)){\r\n\t\t\treturn screen[p];\r\n\t\t}\r\n\r\n\t}*/\r\n}\r\n\r\nexport default {\r\n\tprops: {\r\n\t\tfeatureConfig: {\r\n\t\t\ttype: [String, Object]\r\n\t\t},\r\n\t\tfeatureConfigPath: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null\r\n\t\t}\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: null,\r\n\t\t\tfeatureEvents: []\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tfor (let event of this.featureEvents) {\r\n\t\t\tthis.addFeatureEventListener({event, func: this.onFeatureEvent});\r\n\t\t}\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\tfor (let event of this.featureEvents) {\r\n\t\t\tthis.removeFeatureEventListener({event, func: this.onFeatureEvent});\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n\t\t...mapGetters('config', [\"features\", \"branding\"]),\r\n\t\t...mapState('screen', ['size']),\r\n\t\t...mapGetters(['lang', 'content', \"language\"]),\r\n\t\t_featurePath() {\r\n\t\t\treturn this.featureConfigPath || this.featurePath;\r\n\t\t},\r\n\t\t_config() {\r\n\t\t\tconst featurePath = this._featurePath; // this.featureConfigPath || this.featurePath;\r\n\t\t\t//console.log('Feature Path:', featurePath, ' featureConfigPath:', this.featureConfigPath);\r\n\t\t\treturn ObjPropParser.ApplySelfValues(this.featureConfig ?? (featurePath ? get(this.features, featurePath) : null), {__self: this});\r\n\t\t},\r\n\t\tconfig() {\r\n\t\t\tlet config = this._config;// this.featureConfig ?? (this.featurePath? get(this.features, this.featurePath): null);\r\n\t\t\t//console.log('Config Start Create:', config)\r\n\r\n\t\t\tif (typeof config === 'string') {\r\n\t\t\t\tconfig = get(this.features, config);\r\n\t\t\t}\r\n\r\n\t\t\tif (!config) return {};\r\n\r\n\t\t\tif (typeof config === 'boolean') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tenabled: config\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet o = config;\r\n\t\t\t//console.log('Config Parse String:', o)\r\n\r\n\t\t\t// Options based on screen size....\r\n\t\t\tif (o?._screen && this.size) {\r\n\t\t\t\tconst screen = expandObject(o._screen, o);\r\n\t\t\t\tconst sv = checkScreenSize(screen, this.size);\r\n\t\t\t\tif (sv) {\r\n\t\t\t\t\to = sv;\r\n\t\t\t\t}\r\n\t\t\t\t//console.log('Config _screen:', o)\r\n\t\t\t}\r\n\r\n\r\n\t\t\t//If configuration contains display mode specific properties then merge them\r\n\t\t\tif (o?._display) {\r\n\t\t\t\tconst disp = expandObject(o._display, o);\r\n\t\t\t\tif (disp && disp[this.displayMode]) {\r\n\t\t\t\t\to = disp[this.displayMode];\r\n\t\t\t\t}\r\n\t\t\t\t//console.log('Config _display:', o)\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (o?._flyerOrientation) {\r\n\t\t\t\tconst fo = expandObject(o._flyerOrientation, o);\r\n\t\t\t\tif (fo[this.flyerOrientation]) {\r\n\t\t\t\t\to = fo[this.flyerOrientation];\r\n\t\t\t\t\tif(o._display) {\r\n\t\t\t\t\t\tconst displayConfig = expandObject(o._display, o);\r\n\t\t\t\t\t\tif(displayConfig[this.displayMode]) {\r\n\t\t\t\t\t\t\to = {...o, ...displayConfig[this.displayMode]}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n}\r\n\t\t\t\t}\r\n\t\t\t\t//console.log('Config _flyerOrientation:', o)\r\n\t\t\t}\r\n\r\n\r\n\t\t\to = ObjPropParser.Parse(o, {__self: this});\r\n\t\t\t//console.log('Config ObjectParser:', o)\r\n\t\t\t//delete o._display;\r\n\r\n\r\n\t\t\t// console.log(\"Feature Config Updted!!!\")\r\n\r\n\t\t\treturn o;// Vue.observable(o || {});\r\n\t\t},\r\n\t\tenabled() {\r\n\t\t\treturn this.config && this.config?.enabled !== false;\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('events', ['addFeatureEventListener', 'removeFeatureEventListener']),\r\n\t\tonFeatureEvent(event, data) {\r\n\t\t\tconsole.log('onFeatureEvent:', event, data);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","<template>\r\n <img v-if=\"seen\" :class=\"{expand: isExpanded}\" :src=\"src\" :style=\"style\" :alt=\"productDesc\" />\r\n</template>\r\n\r\n<script>\r\nimport {getClosestDPI} from \"@/store/modules/scale\";\r\nimport {mapGetters} from \"vuex\";\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport FeatureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"ImageElement\",\r\n\tmixins:[blockElementMixin, FeatureMixin],\r\n data(){\r\n return{\r\n featurePath: \"image\"\r\n }\r\n },\r\n\tprops:{\r\n\t\tconstrain:{\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {'width': null, 'height': null}\r\n\t\t\t}\r\n\t\t},\r\n\t\tadSrc: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null\r\n\t\t}\r\n\t},\r\n methods:{\r\n getFillVal(){\r\n return this._config?.expansion !==undefined ? this._config?.expansion : 1;\r\n },\r\n\tgetMinDPI(dpi) {\r\n\t\t const minDPI = 144;\r\n\t\t return Math.max(dpi, minDPI);\r\n\t\t\t \r\n\t }\r\n },\r\n\tcomputed:{\r\n\t\t...mapGetters('scale', ['imageDPI']),\r\n\r\n\t\tresolutions(){\r\n\t\t\treturn this.blockData.images;\r\n\t\t},\r\n\t\tcurrentResolution(){\r\n\t\t\tlet dpi = this.imageDPI;\r\n\t\t\tconst images = this.resolutions;\r\n\t\t\tif (this._config?.setMinDPI ) dpi = this.getMinDPI(dpi)\r\n\t\t\treturn getClosestDPI(dpi, images);\r\n\t\t},\r\n\t\tsrc(){\r\n\t\t\treturn this.adSrc || this.currentResolution?.image;\r\n\t\t},\r\n\t\tstyle(){\r\n\t\t\tlet c = {\r\n\t\t\t\tvisibility: this.isVisible? 'visible':'hidden'\r\n\t\t\t}\r\n\t\t\tfor(let p in this.constrain) {\r\n\t\t\t\tconst cv = this.constrain[p];\r\n c[p] = cv === null? `${this.block[p] + this.getFillVal()}px`: `${cv}px`;\r\n\t\t\t}\r\n\t\t\treturn c;\r\n\t\t},\r\n isExpanded(){\r\n return this._config?.fill ?? false;\r\n },\r\n\t productDesc(){\r\n const altText = this.blockData.products.filter(product => product.contents !== null).map(product => product.contents)\r\n return altText;\r\n },\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\timg {\r\n\t\tobject-fit: cover;\r\n\t\tobject-position: center;\r\n\t}\r\n .expand{\r\n object-fit: fill !important;\r\n }\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageElement.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageElement.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageElement.vue?vue&type=template&id=3962de56&scoped=true&\"\nimport script from \"./ImageElement.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageElement.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageElement.vue?vue&type=style&index=0&id=3962de56&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3962de56\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVisible)?_c('div',{staticClass:\"product-click-regions\",attrs:{\"tabindex\":\"0\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.stopPropagation();return _vm.onClick.apply(null, arguments)}}},_vm._l((_vm.regions),function(region,i){return _c('div',{key:(i + \"_\" + _vm.sku + \"-\" + (region.height) + \"-\" + (region.width) + \"-\" + (region.top) + \"-\" + (region.left)),staticClass:\"product-click-region\",class:{hide:_vm.hidePlayBtn && _vm.isVideo},style:(_vm.getRegionStyle(region)),attrs:{\"aria-label\":region.contents},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick.apply(null, arguments)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.stopPropagation();return _vm.onClick.apply(null, arguments)}}},[_c('play-button',{attrs:{\"product\":_vm.product,\"region\":region}})],1)}),0):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.imageSrc)?_c('div',{style:(_vm.computedStyle)},[(_vm.isFileFormat === 'svg')?_c('div',[_c('object',{ref:\"svgObject\",style:(_vm.computedStyle),attrs:{\"data\":_vm.source,\"type\":\"image/svg+xml\"}}),_c('div',{staticClass:\"click-overlay\",style:(_vm.computedStyle)})]):_c('div',[(_vm.supportsWebM)?_c('video',{ref:\"video\",style:(_vm.computedStyle),attrs:{\"autoplay\":\"\",\"loop\":\"\",\"muted\":\"\",\"playsinline\":\"\"},domProps:{\"muted\":true}},[_c('source',{attrs:{\"src\":_vm.source,\"type\":\"video/webm\"}})]):_c('img',{staticClass:\"front\",attrs:{\"alt\":\"play\",\"src\":\"/images/play_button.svg\"}})])]):(_vm.isVideo)?_c('img',{staticClass:\"front\",attrs:{\"alt\":\"play\",\"src\":\"/images/play_button.svg\"}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n \r\n\t<div v-if=\"imageSrc\" :style=\"computedStyle\" >\r\n <div v-if=\"isFileFormat === 'svg'\" >\r\n <object ref=\"svgObject\" :data=\"source\" type=\"image/svg+xml\" :style=\"computedStyle\"></object>\r\n <div class=\"click-overlay\" :style=\"computedStyle\"></div>\r\n </div>\r\n <div v-else>\r\n\t<video ref=\"video\" v-if=\"supportsWebM\" :style=\"computedStyle\" autoplay loop muted playsinline >\r\n\r\n <source :src=\"source\" type=\"video/webm\" />\r\n \r\n </video>\r\n <img v-else alt=\"play\" class=\"front\" src=\"/images/play_button.svg\">\r\n <!-- <img v-else alt=\"play\" class=\"front\" src=\"/images/play_button.svg\"> -->\r\n </div>\r\n \r\n </div>\r\n <img v-else-if=\"isVideo\" alt=\"play\" class=\"front\" src=\"/images/play_button.svg\">\r\n\r\n \r\n\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"PlayButton\",\r\n mixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n supportsWebM: false,\r\n\t\t\tfeaturePath: 'blockVideos.fullBlock',\r\n videoLoaded: true\r\n\t\t}\r\n\t},\r\n props: {\r\n\t\tproduct: {\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {}\r\n\t\t\t},\r\n region: {\r\n type: Object,\r\n default: () => {\r\n\t\t\t\treturn {}\r\n\t\t\t},\r\n },\r\n\t\t}\r\n\t},\r\n mounted() {\r\n this.checkWebMSupport();\r\n const v = this.$refs.video;\r\n v?.play()\r\n if(window.navigator.userAgent.indexOf(\"Edg\")> -1){\r\n v?.setAttribute('disablePictureInPicture', true);\r\n v?.setAttribute('controlsList','nodownload')\r\n }\r\n \r\n \r\n },\r\n\tcomputed: {\r\n\t\t...mapGetters('config', ['branding']),\r\n computedStyle() {\r\n return {\r\n\t\t\t\twidth: `100%`,\r\n\t\t\t\theight: `100%`,\r\n\t\t\t\tposition: this.isCTCGrandOpening ? 'relative' : 'absolute'\r\n\t\t\t}\r\n },\r\n sku() {\r\n // if((this.product.sku || '').toLowerCase().includes('inblock'))\r\n // return this.product.sku.split('|')[0].toLowerCase()\r\n // else\r\n return (this.product.sku || '').toLowerCase().trim();\r\n },\r\n regions() {\r\n\t\t\treturn this.product.clickRegions;\r\n\t\t},\r\n source() {\r\n return `${this.product.url}${this.config?.accessKey || ''}`;\r\n },\r\n actionType() {\r\n\t\t\treturn (this.product.actionType || '')?.toLowerCase().trim()\r\n\t\t},\r\n isVideo() {\r\n const actionType = (this.actionType || this.sku).toLowerCase();\r\n\t\t\treturn actionType.includes('inblock') || actionType.includes('animate') || actionType.includes('play');\r\n\t\t},\r\n imageSrc() {\r\n return (this.actionType && (this.actionType === 'play' || this.actionType.toLowerCase() === 'playtc') && this.product.url && this.isFileFormat) \r\n\t\t},\r\n isFileFormat() {\r\n const url = this.product?.url;\r\n if(url.endsWith('.webm')) {\r\n return 'webm'\r\n } else if (url.endsWith('.svg')) {\r\n return 'svg'\r\n }\r\n return null;\r\n }\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('toast', ['toggleHelp']),\r\n play() {\r\n this.$refs.video.play();\r\n },\r\n checkWebMSupport() {\r\n const video = document.createElement('video');\r\n this.supportsWebM = video.canPlayType('video/webm; codecs=\"vp8, vorbis\"') !== '';\r\n }\r\n\r\n\t\t\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n object {\r\n display: block;\r\n .click-overlay {\r\n position: absolute;\r\n background: transparent;\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PlayButton.vue?vue&type=template&id=6109d14c&scoped=true&\"\nimport script from \"./PlayButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PlayButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6109d14c\",\n null\n \n)\n\nexport default component.exports","import {mapGetters} from \"vuex\";\r\nimport {capitalize} from \"lodash\";\r\nimport moment from \"moment/moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\n\r\nconst urlHasProtocol = (url) => {\r\n\tlet protocolRegex = /^(http|https|ftp|file):\\/\\//i;\r\n\treturn protocolRegex.test(url);\r\n}\r\n\r\nexport default {\r\n\tprops: {\r\n\t\tproduct: {\r\n\t\t\ttype: Object,\r\n\t\t\trequired: true\r\n\t\t}\r\n\t},\r\n\tmixins: [featureMixin],\r\n\r\n\tcomputed: {\r\n\t\t...mapGetters(['language', 'lang']),\r\n\t\t...mapGetters('landingPage', ['currentFlyer']),\r\n\t\t...mapGetters('screen', ['flyerOrientation']),\r\n\t\t...mapGetters('raddar', ['isRaddar']),\r\n\r\n\t\tpriceQty() {\r\n\t\t\tconst qty = this.extractProductProp('priceQuantity');\r\n\t\t\tif(qty) return `${qty}`;\r\n\t\t\treturn '';\r\n\t\t},\r\n\r\n\t\tbodyEn(){\r\n\t\t\tif(this.config?.bilingualCopy) return this.extractProductProp('bodyFr') +'\\n'+this.extractProductProp('bodyEn');\r\n\t\t\tconst bodyEn = this.language === 'fr' ? this.extractProductProp('bodyFr') : this.extractProductProp('bodyEn')\r\n\t\t\treturn bodyEn.replace(/\\s\\•/g, '\\n•');\r\n\t\t},\r\n\r\n\t\tpricePrefix(){\r\n\t\t\treturn this.extractProductProp('salePricePrefix');\r\n\t\t},\r\n\r\n\t\tlimitQty(){\r\n\t\t\treturn this.extractProductProp('limitQty') || '';\r\n\t\t},\r\n\r\n\t\trowSave(){\r\n\t\t\treturn this.language === 'fr' ? this.extractProductProp('rowSaveFr') : this.extractProductProp('rowSaveEn')\r\n\t\t},\r\n\t\trowPrice(){\r\n\t\t\tlet p=this.extractProductProp('rowPrice')\r\n\t\t\tif (!p || p === '$NaN' || p === 'NaN$') {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tif(!isNaN(p)) {\r\n\t\t\t\tp = parseFloat(p).toFixed(2);\r\n\t\t\t\tif(this.language === 'fr') {\r\n\t\t\t\t\tp = p.replace('.', ',');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this.formatCurrency(p);\r\n\t\t},\r\n\r\n\t\trowPriceUnit(){\r\n\t\t\treturn this.extractProductProp('rowPriceUnit') || '';\r\n\t\t},\r\n\r\n\t\trowPriceQty(){\r\n\t\t\treturn this.extractProductProp('rowPriceQty') || '';\r\n\t\t},\r\n\r\n\t\tsalePrice() {\r\n\t\t\tlet price = this.extractProductProp('salePrice') ;\r\n\r\n\t\t\tif (!price || price === '$NaN' || price === 'NaN$') {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tif(!isNaN(price)) {\r\n\t\t\t\tprice = parseFloat(price).toFixed(2);\r\n\t\t\t\tif(this.language === 'fr') {\r\n\t\t\t\t\tprice = price.replace('.', ',');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this.formatCurrency(price);\r\n\t\t},\r\n\t\tmemberPrice(){\r\n\t\t\tlet price = this.language === 'en' ? this.extractProductProp('memberPriceEn') : this.extractProductProp('memberPriceFr')\r\n\r\n\t\t\tif (!price || price === '$NaN' || price === 'NaN$') {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tif(!isNaN(price)) {\r\n\t\t\t\tprice = parseFloat(price).toFixed(2);\r\n\t\t\t\tif(this.language === 'fr') {\r\n\t\t\t\t\tprice = price.replace('.', ',');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this.formatCurrency(price);\r\n\t\t},\r\n\t\tmemberPriceQty(){\r\n\t\t\tconst qty = this.extractProductProp('memberPriceQuantity');\r\n\t\t\tif(qty) return `${qty}`;\r\n\t\t\treturn '';\r\n\t\t},\r\n\t\tmemberPricePrefix(){\r\n\t\t\treturn this.language === 'en' ? this.extractProductProp('memberPricePrefixEn') : this.extractProductProp('memberPricePrefixFr')\r\n\t\t},\r\n\t\tmemberPriceUnit(){\r\n\t\t\treturn this.extractProductProp('memberPriceUnit') || '';\r\n\t\t},\r\n\t\tmemberSavePrefix(){\r\n\t\t\treturn this.formatCurrency(this.extractProductProp('memberSavePrefix') || '');\r\n\t\t},\r\n\t\tmemberSave(){\r\n\t\t\treturn this.extractProductProp('memberSave')\r\n\t\t},\r\n\t\tmemberSaveSuffix(){\r\n\t\t\treturn this.language === 'en' ? this.extractProductProp('memberSaveSuffixEn') : this.extractProductProp('memberSaveSuffixFr')\r\n\t\t},\r\n\t\talternatePrice() {\r\n\t\t\treturn this.formatCurrency(this.extractProductProp('alternatePrice')) || '';\r\n\t\t},\r\n\t\tpromoUnit() {\r\n\t\t\treturn this.language === 'fr' ? (this.extractProductProp('promoUnitFr')) : this.extractProductProp('promoUnitEn')\r\n\t\t},\r\n\t\tpriceLine() {\r\n\t\t\treturn `${this.priceQty}${this.pricePrefix}${this.salePrice} ${this.promoUnit}`;\r\n\t\t},\r\n\t\tsavings() {\r\n\t\t\tif(this.config.hideSavings)return '';\r\n\t\t\treturn this.language === 'fr' ? this.extractProductProp('savingsFr') : this.extractProductProp('savingsEn')\r\n\t\t},\r\n\t\tsavingsPrefix(){\r\n\t\t\treturn this.language === 'fr' ? this.extractProductProp('savingsPrefixFr') : this.extractProductProp('savingsPrefix')\r\n\t\t},\r\n\t\tsavingsSuffix(){\r\n\t\t\treturn this.language === 'fr' ? this.extractProductProp('savingsSuffix') : this.extractProductProp('savingsSuffix')\r\n\t\t},\r\n\t\tloyalty() {\r\n\t\t\treturn this.extractProductProp('loyalty');\r\n\t\t},\r\n\t\tloyaltyPrefix(){\r\n\t\t\treturn this.extractProductProp('loyaltyPrefix');\r\n\t\t},\r\n\t\tloyaltySuffix(){\r\n\t\t\treturn this.extractProductProp('loyaltySuffix');\r\n\t\t},\r\n\r\n\t\tproductName() {\r\n\t\t\treturn this.extractProductProp('product');\r\n\t\t},\r\n\t\tdescription(){\r\n\t\t\tif(this.config.hideDetails)return '';\r\n\t\t\treturn this.extractProductProp('body', true) || this.extractProductProp('productEn') || this.extractProductProp('body')\r\n\t\t},\r\n\t\thtmlDescription() {\r\n\t\t\treturn this.description.replace(/\\*\\*/g, '<br>**').replace(/(^|\\s)\\*(?=\\S)/g, '<br>*').replace(/-/g, '‑');\r\n\t\t},\r\n\t\tproductURLLDF() {\r\n\t\t\tlet utm_source = this.isRaddar ? 'raddar' : 'TC_hosted';\r\n\t\t\tconst utm_medium = `digital_flyer`\r\n\t\t\tconst formattedDate = this.currentFlyer.startDate?.split('T')[0].replace(/-/g, '')\r\n\t\t\tconst flyerCategory = this.currentFlyer.flyerCategory?.replace(/ /g, '_').toLowerCase();\r\n\t\t\tconst utm_campaign = `${flyerCategory}_${this.dealId?.replace(/ /g, '_')}_${formattedDate}`\r\n\t\t\tlet utm;\r\n\t\t\tif(this.product.url.includes('?')) {\r\n utm = `&utm_source=${utm_source}&utm_medium=${utm_medium}&utm_campaign=${utm_campaign}`\r\n\t\t\t} else {\r\n utm = `?utm_source=${utm_source}&utm_medium=${utm_medium}&utm_campaign=${utm_campaign}`\r\n\t\t\t}\r\n\t\t \r\n\t\t\tif(this.config.productURL) {\r\n\t\t\t\treturn this.config.productURL.replaceAll('${sku}', this.sku);\r\n\t\t\t}\r\n\t\t\tlet url = this.extractProductProp('url');\r\n\t\t\tif(!url) return url;\r\n\r\n\t\t\tif(!urlHasProtocol(url)) {\r\n\t\t\t\turl = `https://${url}`;\r\n\t\t\t}\r\n\t\t\treturn `${url}${utm}`;\r\n\t\t},\r\n\t\tisProductURL() {\r\n\t\t\tif (this.features?.pdp?.disableShopNow && this.currentFlyer.flyerType.toLowerCase() === 'preview') return;\r\n\t\t\treturn (this.product?.url && this.language === 'en') ? this.product.url : false\r\n\t },\r\n\t\tproductURL() {\r\n\t\t\tif(this.config.productURL) {\r\n\t\t\t\treturn this.config.productURL\r\n\t\t\t\t\t.replaceAll('${sku}', this.sku)\r\n\t\t\t\t\t.replaceAll('/en/','/' + this.language + '/');\r\n\t\t\t}\r\n\t\t\tlet url = this.extractProductProp('url');\r\n\t\t\tif(!url) return url;\r\n\r\n\t\t\tif(!urlHasProtocol(url)) {\r\n\t\t\t\turl = `https://${url}`;\r\n\t\t\t}\r\n\r\n\t\t\tif(!url){\r\n\t\t\t\tconst clickRegionWithUrl = this.product.clickRegions.find(clickRegion => clickRegion.url)\r\n\t\t\t\tif(clickRegionWithUrl){\r\n\t\t\t\t\turl = clickRegionWithUrl.url;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\treturn url;\r\n\t\t},\r\n\t\tproductImage(){\r\n\t\t\tif(this.extractProductProp('productImage')==='' && this.config.useBlockImage) return this.product?.blockData?.images?.findLast((item) => {\r\n\t\t\t\treturn item?.image;\r\n\t\t\t}).image;\r\n\r\n\t\t\treturn this.extractProductProp('productImage');\r\n\t\t},\r\n\t\tsku() {\r\n\t\t\treturn this.extractProductProp('sku');\r\n\t\t},\r\n\t\tshowProductName() {\r\n\t\t\treturn this.productName !== this.description;\r\n\t\t},\r\n\t\tuseRow() {\r\n\t\t\tif(!this.extractProductProp('validFromROW'))return false;\r\n\r\n\t\t\tconst vfr = moment(this.extractProductProp('validFromROW')).startOf('day');\r\n\t\t\tconst vft = moment(this.extractProductProp('validToROW')).endOf('day');\r\n\t\t\treturn moment().isBetween(vfr, vft);\r\n\t\t},\r\n\t\tvalidFrom() {\r\n\t\t\tif(this.config.useFlyerValidity)return this.formatDate(this.currentFlyer.startDate);\r\n\r\n\t\t\treturn this.formatDate( this.useRow? this.extractProductProp('validFromROW'): this.extractProductProp('validFrom') || this.currentFlyer.startDate);\r\n\t\t},\r\n\t\tvalidTo(){\r\n\t\t\tif(this.config.useFlyerValidity)return this.formatDate(this.currentFlyer.endDate);\r\n\t\t\treturn this.formatDate(this.useRow? this.extractProductProp('validToROW'): this.extractProductProp('validTo') || this.currentFlyer.endDate);\r\n\t\t},\r\n\t\thtmlValidity() {\r\n\t\t\treturn `<span class=\"date-item\">${this.validFrom}</span> ${this.language === 'en'? 'to':'jusqu\\'au'} <span class=\"date-item\">${this.validTo}</span>`;\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t/**\r\n\t\t * Extracts the product property based on the given property name and language strictness.\r\n\t\t * If langStrict is true, it returns the language-specific property value if it exists, or an empty string if it doesn't.\r\n\t\t * If langStrict is false, it tries to find the specified language-specific property if it exists,\r\n\t\t * otherwise it returns the default property value if it exists, or an empty string if neither exist.\r\n\t\t *\r\n\t\t * @param {string} prop - The name of the property to extract.\r\n\t\t * @param {boolean} langStrict - Determines the language strictness. If true, it only returns the language-specific property value if it exists. If false, it falls back to the default property value if the language-specific property doesn't exist.\r\n\t\t * @returns {string} - The extracted product property value.\r\n\t\t */\r\n\t\textractProductProp(prop, langStrict) {\r\n\t\t\tconst lang = this.config?.props?.[prop]?.lang || this.language;\r\n\t\t\t//const lang = this.config?.props ? (this.config?.props[prop]?.lang || this.language) : this.language;\r\n\t\t\t//langStrict if true gets language locale only version of property if it exists, if false it tries to find either if specified language local doesn't exist\r\n\t\t\tconst strict = this.product?.[`${prop}${capitalize(lang)}`] || this.product?.[prop];\r\n\t\t\tconst loose = this.product?.[`${prop}En`] || this.product?.[`${prop}Fr`];\r\n\t\t\tif(langStrict) {\r\n\t\t\t\treturn strict || '';\r\n\t\t\t}\r\n\t\t\treturn strict || loose || '';\r\n\t\t},\r\n\t\tformatCurrency(currency) {\r\n\t\t\tconst lang = this.language;\r\n\t\t\tif(currency === null || currency === undefined)return;\r\n\r\n\t\t\tconst str = String(currency).replaceAll('$', '');\r\n\r\n\t\t\tconst regex = /\\d+([.,])\\d{2}/g;\r\n\r\n\t\t\tconst replacedString = str.replace(regex, (match) => {\r\n\t\t\t\tif(lang === 'fr') {\r\n\t\t\t\t\tmatch = match.replace('.', ',') + '$';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmatch = '$' + match.replace(',', '.');\r\n\t\t\t\t}\r\n\t\t\t\treturn match;\r\n\t\t\t});\r\n\t\t\tif (replacedString === str)\r\n\t\t\t\treturn String(currency)\r\n\r\n\t\t\treturn replacedString\r\n\t\t},\r\n\t\tformatDate(date) {\r\n\t\t\treturn moment.utc(date).locale(this.language).format(this.language === 'en'? 'MMMM D, YYYY': 'D MMMM, YYYY');\r\n\t\t}\r\n\t}\r\n}\r\n","export const PRODUCT_REGION_CLICK = 'productRegionClick';\r\nexport const PRODUCT_REGION_CLICK_WITH_SKU = 'productRegionsWithSku';\r\nexport const PRODUCT_REGION_CLICK_EXTERNAL_LINK = 'productRegionExternalLinkClick';\r\nexport const PRODUCT_REGION_CLICK_IN_BLOCK_VIDEO = 'productRegionInBlockVideoClick';\r\nexport const PRODUCT_REGION_CLICK_VIDEO = 'productRegionVideoClick';\r\n","<template>\r\n\t<div v-if=\"isVisible\" class=\"product-click-regions\" tabindex=\"0\" @keyup.enter.stop=\"onClick\">\r\n\t\t<div\r\n\t\t\t\tv-for=\"(region, i) in regions\"\r\n\t\t\t\t:key=\"`${i}_${sku}-${region.height}-${region.width}-${region.top}-${region.left}`\"\r\n\t\t\t\t:aria-label=\"region.contents\"\r\n\t\t\t\t:class=\"{hide:hidePlayBtn && isVideo}\"\r\n\t\t\t\t:style=\"getRegionStyle(region)\"\r\n\t\t\t\tclass=\"product-click-region\"\r\n\t\t\t\t@click.stop=\"onClick\"\r\n\t\t\t\t@keyup.enter.stop=\"onClick\"\r\n\t\t>\r\n\t\t<play-button :product=\"product\" :region=\"region\"/>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport PlayButton from \"@/components/buttons/PlayButton.vue\"\r\nimport PdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\nimport {PRODUCT_REGION_CLICK, PRODUCT_REGION_CLICK_EXTERNAL_LINK, PRODUCT_REGION_CLICK_IN_BLOCK_VIDEO, PRODUCT_REGION_CLICK_VIDEO, PRODUCT_REGION_CLICK_WITH_SKU} from \"@/components/block/BlockEvents\";\r\n//import AppConfig from \"@/classes/AppConfig\";\r\nimport Lytics from \"@/classes/Lytics\";\r\n\r\n\r\n\r\n\r\nexport default {\r\n\tname: \"ProductClickRegions\",\r\n\tmixins: [blockElementMixin, PdpProductMixin],\r\n\tcomponents: {PlayButton},\r\n\tprops: {\r\n\t\tproduct: {\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {}\r\n\t\t\t}\r\n\t\t},\r\n\t\thidePlayBtn: {\r\n\t\t\ttype: Boolean,\r\n\t\t},\r\n\t\tblockId: {\r\n\t\t\ttype: String\r\n\t\t},\r\n isAd : {\r\n type: Boolean,\r\n },\r\n banners: {\r\n type: Object\r\n },\r\n\t\tpage: {\r\n\t\t\ttype: Object\r\n\t\t},\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('config', [\"settings\", \"branding\", \"features\"]),\r\n\t\t...mapGetters('landingPage', [\"currentFlyer\"]),\r\n\t\t...mapGetters(['storeId', 'language', 'isCTC']),\r\n\t\t...mapState('shoppingList', ['shoppingList']),\r\n\t\tregions() {\r\n\t\t\treturn this.product.clickRegions;\r\n\t\t},\r\n\t\tsku() {\r\n\t\t\tif ((this.product.sku || '')?.toLowerCase().includes('inblock'))\r\n\t\t\t\treturn this.product.sku.split('|')[0].toLowerCase()\r\n\t\t\telse\r\n\t\t\t\treturn (this.product.sku || '')?.toLowerCase().trim();\r\n\t\t},\r\n\t\tactionType() {\r\n\t \treturn (this.product.actionType || '')?.toLowerCase().trim()\r\n\t\t},\r\n\t\tisVideo() {\r\n\t\t\tconst actionType = (this.actionType || this.sku).toLowerCase();\r\n\t\t\treturn actionType.includes('inblock') || actionType.includes('animate') || actionType.includes('play');\r\n\t\t},\r\n\t\tcheckProductInSL() {\r\n\t\t\treturn this.shoppingList.some((listItem) => listItem.sku == this.sku);\r\n\t\t},\r\n\t\tisCarousel() {\r\n\t\t\treturn (this.blockData?.carouselBlocks?.length ?? 0 >= 1) || (this.blockData.slideNumber !== undefined)\r\n\t\t},\r\n\t\tisCTCGrandOpening() {\r\n\t\t\t// Disable PDPs for CTC in Grand Opening flyer blocks || Allow ad pages to be clicked.\r\n\t\t\treturn this.currentFlyer?.flyerCategory === 'Grand Opening' && this.isCTC && this.actionType !== 'url' && this.sku !== 'url'\r\n\t\t},\r\n\t\timageSrc() {\r\n\t return (this.actionType === 'play' && this.product.url) \r\n\t\t},\r\n\t\tisWithinInBlockVideo() {\r\n\t\t\treturn this.blockData.products.some((prod) => {\r\n\t\t\t\tconst isVideo = prod.actionType || prod.sku\r\n\t\t\t\treturn ((isVideo)?.toLowerCase().includes('inblock') || (isVideo)?.toLowerCase().includes('animate'));\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions(['setCurrentVideo']),\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\tonClick() {\r\n\t\t\tconst contentSource = this.product.contentSource || this.product.url\r\n\t\t\tif (this.isAd) {\r\n this.triggerEvent({'event': 'productRegionsWithSku', data: this})\r\n window.open(this.banners.linkUrlEn)\r\n return\r\n }\r\n\t\t\tconst clickRegionWithUrl = this.product.clickRegions.find(clickRegion => clickRegion.url)\r\n\t\t\tif (clickRegionWithUrl) {\r\n\t\t\t\tLytics.TriggerLinkClick({ url: this.product.url, page_number: this.page.page_num })\r\n\t\t\t\tthis.triggerEvent({'event': PRODUCT_REGION_CLICK_WITH_SKU , data: this})\r\n\t\t\t\t//Let the PDP feature handle what happens\r\n\t\t\t\t//window.open(clickRegionWithUrl.url)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tconst externalURL = this.features.pdp[\"enableExternalURL\"] || false;\r\n\t\t if (externalURL) {\r\n\t\t\t this.product.url = this.isProductURL ? (this.features.pdp.client === \"londondrugs\" ? this.productURLLDF : this.productURL ) : ''\r\n \t\t\t this.triggerEvent({'event': PRODUCT_REGION_CLICK_EXTERNAL_LINK, data: this}) \r\n\t\t\t\tLytics.TriggerSelectItem({\r\n\t\t\t\t\titem_list_name: 'flyer',\r\n\t\t\t\t\tpage_number: this.page.page_num,\r\n\t\t\t\t\tname: this.product.productEn || this.product.productFr,\r\n\t\t\t\t\tname_en: this.product.productEn,\r\n\t\t\t\t\tname_fr: this.product.productFr,\r\n\t\t\t\t\tproduct_id: this.product.sku,\r\n\t\t\t\t\tprice: this.product.regularPrice,\r\n\t\t\t\t\tsale_price: this.product.salePrice,\r\n\t\t\t\t\tcategory: this.product.mainCategoryEn || this.product.mainCategoryFr,\r\n\t\t\t\t\tcategory_2: this.product.subCategoryEn || this.product.subCategoryFr,\r\n\t\t\t\t\timage_url: this.product.productImage,\r\n\t\t\t\t})\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (this.isVideo) {\r\n\t\t\t\tswitch (this.actionType || this.sku) {\r\n\t\t\t\t\tcase 'inblock':\r\n\t\t\t\t\tcase 'inblocktc':\r\n\t\t\t\t\tcase 'inblocksku':\r\n\t\t\t\t\tcase 'inblocktcsku':\r\n\t\t\t\t\tcase 'animate':\r\n\t\t\t\t\tcase 'animatetc':\r\n\t\t\t\t\tcase 'animatesku':\r\n\t\t\t\t\tcase 'animatetcsku':\r\n\t\t\t\t\t\tthis.triggerEvent({'event': PRODUCT_REGION_CLICK_IN_BLOCK_VIDEO, data: this});\r\n\t\t\t\t\t\tthis.$emit('onRegionClick', this, 'inblock');\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'play':\r\n\t\t\t\t\tcase 'playtc':\r\n\t\t\t\t\t this.triggerEvent({'event': PRODUCT_REGION_CLICK_VIDEO, data: this})\r\n\t\t\t\t\t\tthis.setCurrentVideo(`${contentSource}${this.branding.accessKey}`);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tthis.triggerEvent({'event': PRODUCT_REGION_CLICK_VIDEO, data: this})\r\n\t\t\t\t\t\tthis.setCurrentVideo(`${contentSource}${this.branding.accessKey}`);\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if ((this.actionType === 'url' || this.sku === 'url') && !this.isVideo) {\r\n\t\t\t\tthis.triggerEvent({'event': PRODUCT_REGION_CLICK_EXTERNAL_LINK, data: this})\r\n\t\t\t\t//Let the pdp feature handle what happens\r\n\t\t\t\t//window.open(this.product.url)\r\n\t\t\t} else if ((this.actionType || this.sku)?.toLowerCase().includes('inlink')) {\r\n\t\t\t\tlet docName = contentSource.match(/doc=(.+)/i)?.[1] ?? null;\r\n\t\t\t\tlet sku = contentSource.match(/sku=(\\d+)/i)?.[1] ?? null;\r\n\t\t\t\tif (docName !== null) {\r\n\t\t\t\t\tthis.$root.$emit('trigger-scroll-to-doc', docName)\r\n\t\t\t\t}\r\n\t\t\t\tif (sku !== null) {\r\n\t\t\t\t\tthis.$root.$emit('trigger-scroll-to-sku', sku)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.triggerEvent({'event': PRODUCT_REGION_CLICK, data: this})\r\n\t\t\t\tlet item_list_name = 'flyer';\r\n\t\t\t\tif (this.isWithinInBlockVideo) {\r\n\t\t\t\t\titem_list_name = 'in_block_video_click';\r\n\t\t\t\t}\r\n\t\t\t\tLytics.TriggerSelectItem({\r\n\t\t\t\t\titem_list_name,\r\n\t\t\t\t\tpage_number: this.page.page_num,\r\n\t\t\t\t\tname: this.product.productEn || this.product.productFr,\r\n\t\t\t\t\tname_en: this.product.productEn,\r\n\t\t\t\t\tname_fr: this.product.productFr,\r\n\t\t\t\t\tproduct_id: this.product.sku,\r\n\t\t\t\t\tprice: this.product.regularPrice,\r\n\t\t\t\t\tsale_price: this.product.salePrice,\r\n\t\t\t\t\tcategory: this.product.mainCategoryEn || this.product.mainCategoryFr,\r\n\t\t\t\t\tcategory_2: this.product.subCategoryEn || this.product.subCategoryFr,\r\n\t\t\t\t\timage_url: this.product.productImage,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tif (this.isCarousel) {\r\n\t\t\t\tconst carouselFrame = this.blockData?.slideNumber\r\n\t\t\t\tthis.triggerEvent({\r\n\t\t\t\t\tevent: 'carouselInteraction',\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tsku: this.sku,\r\n\t\t\t\t\t\tproductName: this.product.productEn,\r\n\t\t\t\t\t\tframe: (carouselFrame !== undefined) ? carouselFrame + 2 : 1,\r\n\t\t\t\t\t\tcarouselId: this.blockId\r\n\t\t\t\t\t},\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tthis.$emit('onRegionClick', this, 'productRegion');\r\n\r\n\t\t\t/*if(this.settings.events?.productRegionClick) {\r\n\t\t\t\t\t\t\tAppConfig.ParseEvent(this.settings.events?.productRegionClick, {__self: this});\r\n\t\t\t\t\t\t}*/\r\n\t\t},\r\n\t\tgetRegionStyle(r) {\r\n\t\t\treturn {\r\n\t\t\t\tleft: `${r.left - 1}%`,\r\n\t\t\t\ttop: `${r.top - 1}%`,\r\n\t\t\t\twidth: `${r.width + 2}%`,\r\n\t\t\t\theight: `${r.height + 2}%`,\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\talignItems: 'center',\r\n\t\t\t\tjustifyContent: 'center',\r\n\t\t\t\tposition: this.isCTCGrandOpening ? 'relative' : 'absolute'\r\n\t\t\t}\r\n\t\t},\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.product-click-regions {\r\n cursor: pointer;\r\n\r\n .hide {\r\n\tdisplay: none !important;\r\n }\r\n\r\n &:hover {\r\n .product-click-region {\r\n animation: flash 1s;\r\n border-radius:5%;\r\n\r\n }\r\n @keyframes flash {\r\n 0% {background: rgba(255,255,255,0.2);}\r\n 100% {background: rgba(0,0,0,0)}\r\n }\r\n }\r\n\r\n .product-click-region {\r\n\tposition: absolute;\r\n\toutline: none;\r\n }\r\n\r\n .front {\r\n\twidth: 90%;\r\n\theight: auto;\r\n\tbackground-size: cover;\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: center;\r\n\r\n\tz-index: 9999;\r\n\tbackground: transparent;\r\n\tborder-radius: 50%;\r\n\tbox-shadow: 0 0 0 0 rgba(255, 82, 82, 1);\r\n\tmargin: 0;\r\n\ttransform: scale(1);\r\n\tanimation: pulse-red 2s infinite;\r\n }\r\n\r\n @keyframes pulse-red {\r\n\t0% {\r\n\t transform: scale(0.95);\r\n\t box-shadow: 0 0 0 0 rgba(255, 82, 82, 0.9);\r\n\t}\r\n\r\n\t70% {\r\n\t transform: scale(1);\r\n\t box-shadow: 0 0 0 10px rgba(255, 82, 82, 0);\r\n\t}\r\n\r\n\t100% {\r\n\t transform: scale(0.95);\r\n\t box-shadow: 0 0 0 0 rgba(255, 82, 82, 0);\r\n\t}\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductClickRegions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductClickRegions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductClickRegions.vue?vue&type=template&id=12746aa0&\"\nimport script from \"./ProductClickRegions.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductClickRegions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductClickRegions.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('svg',{staticClass:\"image\",attrs:{\"shape-rendering\":\"crispEdges\",\"viewBox\":(\"0 0 \" + _vm.width + \" \" + _vm.height)}},[_c('defs',[_c('mask',{attrs:{\"id\":_vm.id}},[_c('rect',{attrs:{\"x\":\"0\",\"y\":\"0\",\"fill\":\"rgb(20, 182, 197)\",\"width\":\"100%\",\"height\":\"100%\",\"fill-opacity\":\"50%\"}}),_vm._l((_vm.rects),function(rect,i){return _c('rect',{key:'mask-rect-'+ rect.sku + i,attrs:{\"sku\":(rect.sku || '').trim(),\"fill\":\"#ffffff\",\"x\":rect.left + '%',\"y\":rect.top + '%',\"width\":rect.width + '%',\"height\":rect.height + '%'}})})],2)]),_c('image',{ref:\"maskedElement\",attrs:{\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"xlink:href\":_vm.image,\"width\":(_vm.width + \"px\"),\"height\":(_vm.height + \"px\")}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment>\r\n <svg\r\n class=\"image\"\r\n shape-rendering=\"crispEdges\"\r\n :viewBox=\"`0 0 ${width} ${height}`\">\r\n <defs>\r\n <mask :id=\"id\">\r\n <rect x=\"0\" y=\"0\" fill=\"rgb(20, 182, 197)\" width=\"100%\" height=\"100%\" fill-opacity=\"50%\"></rect>\r\n <rect\r\n v-for=\"(rect, i) in rects\"\r\n :key=\" 'mask-rect-'+ rect.sku + i\"\r\n :sku=\"(rect.sku || '').trim()\"\r\n fill=\"#ffffff\"\r\n :x=\"rect.left + '%'\"\r\n :y=\"rect.top + '%'\"\r\n :width=\"rect.width + '%'\"\r\n :height=\"rect.height + '%'\"\r\n >\r\n </rect>\r\n </mask>\r\n </defs>\r\n <image ref=\"maskedElement\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" :xlink:href=\"image\" :width=\"`${width}px`\" :height=\"`${height}px`\" ></image>\r\n </svg>\r\n </fragment>\r\n\r\n</template>\r\n\r\n<script>\r\n\r\nimport {mapGetters} from \"vuex\";\r\nimport {Fragment} from \"vue-fragment\"\r\nimport {getClosestDPI} from \"@/store/modules/scale\";\r\n\r\nlet maskIds = 0;\r\n\r\nexport default {\r\n name: \"ProductMaskOverlay\",\r\n components:{\r\n Fragment\r\n },\r\n props: {\r\n\r\n\t blockData:{\r\n\t\t type: Object,\r\n\t\t default: () => {\r\n\t\t\t return {}\r\n\t\t }\r\n\t },\r\n\t block:{\r\n\t\t type: Object,\r\n\t\t default: () => {\r\n\t\t\t return {};\r\n\t\t }\r\n\t },\r\n\r\n /*products: {\r\n type: Array,\r\n default: () => {\r\n return [];\r\n }\r\n },\r\n image: {\r\n type: String,\r\n default: ''\r\n },\r\n width:{\r\n type: Number,\r\n default: 1\r\n },\r\n height:{\r\n type:Number,\r\n default: 1\r\n },\r\n isAdPage:{\r\n type:Boolean,\r\n default: false\r\n }*/\r\n },\r\n data(){\r\n return {\r\n id: \"Prod-Mask-\" + (++maskIds)\r\n }\r\n },\r\n methods: {\r\n updateMask() {\r\n this.$nextTick(() => {\r\n const element = this.$refs.maskedElement;\r\n if (element) {\r\n element.removeAttribute('mask');\r\n setTimeout(()=> {\r\n element.setAttribute('mask', `url(#${this.id})`)\r\n }, 0)\r\n }\r\n })\r\n }\r\n },\r\n watch: {\r\n\t\tsearchQuery() {\r\n this.updateMask();\r\n }\r\n\t},\r\n computed:{\r\n ...mapGetters(['highlightResults']),\r\n\t ...mapGetters('scale', ['imageDPI']),\r\n ...mapGetters('filters', [\"searchQuery\"]),\r\n\t products() {\r\n\t\t\treturn this.blockData.products;\r\n\t },\r\n style(){\r\n return {\r\n maskImage: `url(#${this.id})`\r\n }\r\n },\r\n\r\n rects(){\r\n return this.parsedRects.rects;\r\n },\r\n viewBox(){\r\n return this.parsedRects.viewBox.join(' ');\r\n },\r\n\t resolutions(){\r\n\t\t return this.blockData.images;\r\n\t },\r\n\t currentResolution(){\r\n\t\t const dpi = this.imageDPI;\r\n\t\t const images = this.resolutions;\r\n\t\t return getClosestDPI(dpi, images);\r\n\t },\r\n\t image(){\r\n\t\t return this.currentResolution?.image;\r\n\t },\r\n\t width(){\r\n\t\t\treturn this.block.width;\r\n\t },\r\n\t height() {\r\n\t\t\treturn this.block.height;\r\n\t },\r\n parsedRects(){\r\n let rects = [];\r\n let vx = 100;\r\n let vy = 100;\r\n let vh = 0;\r\n let vw = 0;\r\n for(let i=0; i < this.products.length; i++){\r\n const sku = this.products[i].sku || `sku_${i}`;\r\n rects = rects.concat(this.products[i].clickRegions.map((region) => {\r\n region.sku = sku;\r\n\r\n vx = Math.min(vx, region.left);\r\n vy = Math.min(vy, region.top);\r\n\r\n vh = Math.max(vh, region.height + region.top);\r\n vw = Math.max(vw, region.width + region.left);\r\n return region;\r\n }));\r\n }\r\n\r\n const viewBox = [\r\n 0,\r\n 0,\r\n vw - vx,\r\n vh - vy\r\n ]\r\n return {rects, viewBox};\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n svg{\r\n background-color: #000;\r\n transition: all 300ms;\r\n height: 100%;\r\n width:100%;\r\n display:block;\r\n image-rendering: -webkit-optimize-contrast;\r\n object-fit: contain;\r\n object-position: top left;\r\n transition: all 300ms;\r\n mask {\r\n rect {\r\n transition: opacity 0.3s;\r\n }\r\n rect[sku] {\r\n opacity: 0;\r\n }\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductMaskOverlay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductMaskOverlay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductMaskOverlay.vue?vue&type=template&id=6fb39678&scoped=true&\"\nimport script from \"./ProductMaskOverlay.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductMaskOverlay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductMaskOverlay.vue?vue&type=style&index=0&id=6fb39678&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fb39678\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{},_vm._l((_vm.regions),function(region,index){return _c('svg',{key:index,staticClass:\"highlight-overlay\",style:((\"top:\" + (region.top) + \"px; left:\" + (region.left) + \"px; width:\" + (region.width) + \"px; height:\" + (region.height) + \"px\")),attrs:{\"height\":\"317px\",\"preserveAspectRatio\":\"none\",\"version\":\"1.1\",\"viewBox\":\"0 0 185 317\",\"width\":\"185px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"4EA2BA65-5A9D-4A29-962C-E0BA103B2533\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"fill\":\"none\",\"fill-opacity\":\"0.85\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"raddar_R2_PDP_2.0_ShoppingList_Alert\",\"fill\":_vm.color,\"transform\":\"translate(-711, -188)\"}},[_c('path',{attrs:{\"id\":\"icon-ProductHighlight_Vector\",\"d\":\"M889.986784,347.110681 C889.887083,364.37329 888.364957,381.702183 885.176653,397.658257 C866.493891,489.189337 805.416556,505.89074 764.494437,477.22578 C741.138855,461.343355 719.626145,428.492918 717.263125,374.163463 C713.604346,299.270446 748.72855,236.950802 783.617161,210.556443 C818.292888,206.236924 861.929642,226.536821 882.023831,290.032642 C887.307275,307.044107 890.222021,326.911684 889.986784,347.110681 M895.978702,342.106329 C895.717631,320.883141 892.36958,299.855231 886.882515,282.186993 C869.310713,226.733907 836.937279,202.723567 805.930935,198.002125 C807.654,197.508752 809.353074,197.127811 811.021455,196.86744 C813.791977,196.371848 813.621575,187.980064 810.826005,188 C802.784331,188.946099 794.462183,192.248815 786.212711,197.505793 C784.7486,197.653731 783.286606,197.839393 781.855305,198.080532 C759.123835,202.446923 737.043277,225.292991 722.081121,261.582186 C719.972448,266.862094 718.035941,272.487437 716.365796,278.512953 C715.793911,280.580387 716.105079,283.24623 717.080565,284.514058 C718.081805,285.818872 719.404091,285.148712 720.010198,283.028761 C729.638756,252.347156 745.126581,230.358388 761.958919,218.838455 C748.066446,234.590895 735.550942,255.351777 726.455814,278.837677 C708.908003,323.48685 704.927032,385.928528 721.694808,434.157061 C733.581978,467.910599 752.598839,486.878472 771.584655,496.889438 C814.294008,519.446287 872.068887,497.010007 890.785165,403.552384 C894.581975,384.127383 896.208726,363.039558 895.978702,342.106329\"}})])])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\r\nimport FlyerBlock from \"@/components/block/FlyerBlock.vue\";\r\nimport {mapGetters} from \"vuex\";\r\n\r\nexport default {\r\n\tname: \"ItemHighlight\",\r\n\tprops: {\r\n\t\tproducts: {\r\n\t\t\ttype: Array,\r\n\t\t\tdefault: () => []\r\n\t\t},\r\n\t\tblock: {\r\n\t\t\ttype: FlyerBlock\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('shoppingList', ['shoppingListSKUs']),\r\n\t\t...mapGetters('config', ['features']),\r\n\t\tfilteredProducts() {\r\n\t\t\tconst skus = this.shoppingListSKUs;\r\n\t\t\treturn this?.products?.filter((prod) => {\r\n\t\t\t\treturn skus.includes(prod.sku);\r\n\t\t\t}) || [];\r\n\t\t},\r\n\t\tregions() {\r\n\t\t\tif (this.filteredProducts.length > 0 && this?.products?.length === 1) {\r\n\t\t\t\treturn [{\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t\twidth: this?.block?.width,\r\n\t\t\t\t\theight: this?.block?.height\r\n\t\t\t\t}]\r\n\t\t\t}\r\n\t\t\treturn this.filteredProducts.map((prod) => {\r\n\t\t\t\treturn this.getRegionDim(prod.clickRegions.reduce((maxRegion, region) => {\r\n\t\t\t\t\tconst a1 = maxRegion.width * maxRegion.height;\r\n\t\t\t\t\tconst a2 = region.width * region.height;\r\n\t\t\t\t\treturn a1 > a2 ? maxRegion : region;\r\n\t\t\t\t}));\r\n\t\t\t})\r\n\t\t},\r\n\t\tcolor() {\r\n\t\t\treturn this.features?.shoppingList?.highlight?.color || '#22A84A';\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tgetRegionDim(r) {\r\n\t\t\tconst height = this?.block?.height;\r\n\t\t\tconst width = this?.block?.width;\r\n\t\t\treturn {\r\n\t\t\t\ttop: height * (r.top / 100),\r\n\t\t\t\tleft: width * (r.left / 100),\r\n\t\t\t\twidth: width * (r.width / 100),\r\n\t\t\t\theight: height * (r.height / 100)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"\">\r\n\t\t<!--img\r\n\t\t\t\t\t\tv-for=\"(region, index) in regions\"\r\n\t\t\t\t\t\t :key=\"index\"\r\n\t\t\t\t\t\t src=\"/images/icon-ProductHighlight_Vector.svg\"\r\n\t\t\t\t\t\t:style=\"`top:${region.top}px; left:${region.left}px; width:${region.width}px; height:${region.height}px`\"\r\n\t\t\t\t\t\tclass=\"highlight-overlay\"\r\n\t\t\t\t alt=\"\"/ -->\r\n\t\t<svg\r\n\t\t\t\tv-for=\"(region, index) in regions\"\r\n\t\t\t\t:key=\"index\"\r\n\t\t\t\t:style=\"`top:${region.top}px; left:${region.left}px; width:${region.width}px; height:${region.height}px`\"\r\n\t\t\t\tclass=\"highlight-overlay\"\r\n\t\t\t\theight=\"317px\" preserveAspectRatio=\"none\" version=\"1.1\" viewBox=\"0 0 185 317\" width=\"185px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t<title>4EA2BA65-5A9D-4A29-962C-E0BA103B2533</title>\r\n\t\t\t<g id=\"R2---Desktop-wireframes\" fill=\"none\" fill-opacity=\"0.85\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t<g id=\"raddar_R2_PDP_2.0_ShoppingList_Alert\" :fill=\"color\" transform=\"translate(-711, -188)\">\r\n\t\t\t\t\t<path id=\"icon-ProductHighlight_Vector\"\r\n\t\t\t\t\t d=\"M889.986784,347.110681 C889.887083,364.37329 888.364957,381.702183 885.176653,397.658257 C866.493891,489.189337 805.416556,505.89074 764.494437,477.22578 C741.138855,461.343355 719.626145,428.492918 717.263125,374.163463 C713.604346,299.270446 748.72855,236.950802 783.617161,210.556443 C818.292888,206.236924 861.929642,226.536821 882.023831,290.032642 C887.307275,307.044107 890.222021,326.911684 889.986784,347.110681 M895.978702,342.106329 C895.717631,320.883141 892.36958,299.855231 886.882515,282.186993 C869.310713,226.733907 836.937279,202.723567 805.930935,198.002125 C807.654,197.508752 809.353074,197.127811 811.021455,196.86744 C813.791977,196.371848 813.621575,187.980064 810.826005,188 C802.784331,188.946099 794.462183,192.248815 786.212711,197.505793 C784.7486,197.653731 783.286606,197.839393 781.855305,198.080532 C759.123835,202.446923 737.043277,225.292991 722.081121,261.582186 C719.972448,266.862094 718.035941,272.487437 716.365796,278.512953 C715.793911,280.580387 716.105079,283.24623 717.080565,284.514058 C718.081805,285.818872 719.404091,285.148712 720.010198,283.028761 C729.638756,252.347156 745.126581,230.358388 761.958919,218.838455 C748.066446,234.590895 735.550942,255.351777 726.455814,278.837677 C708.908003,323.48685 704.927032,385.928528 721.694808,434.157061 C733.581978,467.910599 752.598839,486.878472 771.584655,496.889438 C814.294008,519.446287 872.068887,497.010007 890.785165,403.552384 C894.581975,384.127383 896.208726,363.039558 895.978702,342.106329\"></path>\r\n\t\t\t\t</g>\r\n\t\t\t</g>\r\n\t\t</svg>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.highlight-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n pointer-events: none;\r\n z-index: 99999;\r\n\r\n svg {\r\n\tposition: absolute;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemHighlight.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemHighlight.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ItemHighlight.vue?vue&type=template&id=364459ab&scoped=true&\"\nimport script from \"./ItemHighlight.vue?vue&type=script&lang=js&\"\nexport * from \"./ItemHighlight.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ItemHighlight.vue?vue&type=style&index=0&id=364459ab&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"364459ab\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div :class=\"{'filler-block': isFillerBlock}\" class=\"product-block\" @[linkUrlEvent]=\"handleClick\">\r\n\t\t<product-mask-overlay v-if=\"highlightResults && !isAdPage\" v-bind=\"$props\"/>\r\n\t\t<image-element v-else ref=\"imageElement\" class=\"product-block-image\" v-bind=\"$props\"/>\r\n\t\t<div class=\"overlay\"></div>\r\n\t\t<div v-if=\"isVisible\">\r\n\t\t\t<product-click-regions\r\n\t\t\t\t\tv-for=\"(product, index) in products\"\r\n\t\t\t\t\t:key=\"product.sku + index\"\r\n\t\t\t\t\t:block=\"block\"\r\n\t\t\t\t\t:block-data=\"blockData\"\r\n\t\t\t\t\t:block-id=\"blockId\"\r\n\t\t\t\t\t:hidePlayBtn=\"hidePlayBtn\"\r\n\t\t\t\t\t:is-visible=\"isVisible\"\r\n\t\t\t\t\t:page=\"page\"\r\n\t\t\t\t\t:product=\"product\"\r\n\t\t\t\t\tv-on=\"$listeners\"\r\n\t\t\t/>\r\n\t\t\t<item-highlight v-if=\"highlightEnabled\" :block=\"block\" :products=\"products\"/>\r\n\t\t</div>\r\n\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport ImageElement from \"@/components/block/elements/ImageElement.vue\";\r\nimport ProductClickRegions from \"@/components/block/elements/ProductClickRegions.vue\";\r\nimport ProductMaskOverlay from \"@/components/ProductMaskOverlay.vue\";\r\nimport {mapGetters} from \"vuex\";\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport ItemHighlight from \"@/features/shopping-list/components/ItemHighlight.vue\";\r\n\r\n\r\nexport default {\r\n\tname: \"ProductElement\",\r\n\tcomponents: {ItemHighlight, ProductMaskOverlay, ProductClickRegions, ImageElement},\r\n\tprops: {\r\n\t\thidePlayBtn: {\r\n\t\t\ttype: Boolean,\r\n\t\t},\r\n\t\tblockId: {\r\n\t\t\ttype: String\r\n\t\t}\r\n\t},\r\n\tmixins: [blockElementMixin],\r\n\tmounted() {\r\n\t\tif (this.$parent.$options.name === \"ProductBlockVideoElement\") {\r\n\t\t\tthis.getImageSrc();\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['highlightResults']),\r\n\t\t...mapGetters('config', ['features']),\r\n\t\t...mapGetters('raddar', ['isRaddar']),\r\n\t\tproducts() {\r\n\t\t\treturn this.blockData.products;\r\n\t\t},\r\n\t\tisAdPage() {\r\n\t\t\treturn this.page.isAdPage;\r\n\t\t},\r\n\t\tisCarousel() {\r\n\t\t\treturn (this.blockData?.carouselBlocks?.length ?? 0) >= 1;\r\n\t\t},\r\n\t\tisFillerBlock() {\r\n\t\t\treturn this.blockData?.name?.includes('filler');\r\n\t\t},\r\n\t\tlinkUrlEvent() {\r\n\t\t\treturn this.blockData.linkUrl ? 'click' : 'null'\r\n\t\t},\r\n\t\thighlightEnabled(){\r\n\r\n\t\t\t//If no property was set for highlight config, get if its a raddar site and enable by default\r\n\t\t\tif (this.features?.shoppingList?.highlight?.enabled === undefined){\r\n\t\t\t\treturn this.isRaddar;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.features?.shoppingList?.highlight?.enabled;\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\thandleClick() {\r\n\t\t\tif (this.blockData.linkUrl) window.open(this.blockData.linkUrl)\r\n\t\t},\r\n\t\tasync getImageSrc() {\r\n\r\n\t\t\tawait this.$nextTick();\r\n\t\t\tconst src = this.$refs.imageElement.src;\r\n\t\t\tthis.$emit(\"srcFromProduct\", src);\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.product-block {\r\n position: relative;\r\n\r\n &.filler-block {\r\n\tcursor: pointer;\r\n }\r\n}\r\n\r\n.flyer-block.ProductElement:not(.flyer-block.ProductElement.inblock) {\r\n transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;\r\n\r\n &:hover, &:focus {\r\n\ttransform: scale(1.02);\r\n\tbox-shadow: 0 0px 50px rgba(0, 0, 0, 0.3);\r\n\tz-index: 9999;\r\n\toutline: none;\r\n }\r\n}\r\n\r\n.overlay {\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n position: absolute;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductElement.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductElement.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductElement.vue?vue&type=template&id=448110e6&\"\nimport script from \"./ProductElement.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductElement.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductElement.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isCarousel)?_c('div',{staticClass:\"carousel in-block\",class:_vm.transitionClass,style:(_vm.transitionStyle)},[_c('carousel',{key:_vm.blockId,attrs:{\"perPage\":1,\"navigation-enabled\":_vm.controls,\"pagination-enabled\":_vm.controls,\"navigationClickTargetSize\":15.4,\"pagination-size\":18,\"pagination-padding\":6,\"autoplay\":_vm.advance,\"autoplay-timeout\":_vm.frameDuration*1000,\"duration\":_vm.frameDuration,\"loop\":true,\"mouse-drag\":false,\"touch-drag\":false,\"aria-label\":_vm.narration},on:{\"navigation-click\":_vm.navigationHandler,\"pagination-click\":_vm.navigationHandler,\"pageChange\":_vm.pageChange}},[_c('slide',{class:[_vm.transitionClass, {initialSlide: _vm.currentSlide === 0 }]},[_c('product-element',_vm._b({},'product-element',_vm.$props,false))],1),_vm._l((_vm.slideBlocks),function(slide,i){return _c('slide',{key:i,class:_vm.transitionClass,on:{\"slideclick\":_vm.handleSlideClick}},[_c('product-element',_vm._b({attrs:{\"block-data\":slide}},'product-element',_vm.$props,false))],1)})],2)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"carousel in-block\" :class=\"transitionClass\" v-if=\"isCarousel\" :style=\"transitionStyle\">\r\n\t\t<carousel\r\n\t\t\t\t:perPage=1\r\n\t\t\t\t:navigation-enabled=\"controls\"\r\n\t\t\t\t:pagination-enabled=\"controls\"\r\n\t\t\t\t:navigationClickTargetSize=15.4\r\n\t\t\t\t:pagination-size=18\r\n\t\t\t\t:pagination-padding=\"6\"\r\n\t\t\t\t:autoplay=\"advance\"\r\n\t\t\t\t:autoplay-timeout = \"frameDuration*1000\"\r\n\t\t\t\t:duration=\"frameDuration\"\r\n @navigation-click=\"navigationHandler\"\r\n @pagination-click=\"navigationHandler\"\r\n\t\t\t\t:loop=\"true\"\r\n\t\t\t\t:mouse-drag=\"false\"\r\n :touch-drag=\"false\"\r\n\t\t\t\tv-on:pageChange=\"pageChange\"\r\n\t\t\t\t:aria-label=\"narration\"\r\n\t\t\t\t:key=\"blockId\"\r\n\t\t\t\t\r\n\t\t>\r\n\t\t\t<slide :class=\"[transitionClass, {initialSlide: currentSlide === 0 }]\"><product-element v-bind=\"$props\" /></slide>\r\n\t\t\t<slide v-for=\"(slide,i) in slideBlocks\" :key=\"i\" @slideclick=\"handleSlideClick\" :class=\"transitionClass\">\r\n\t\t\t\t<product-element :block-data=\"slide\" v-bind=\"$props\" />\r\n\r\n\t\t\t</slide>\r\n\r\n\t\t</carousel>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport ProductElement from \"@/components/block/elements/ProductElement.vue\";\r\nimport { Carousel, Slide } from 'vue-carousel';\r\nimport {mapActions} from \"vuex\";\r\nimport Lytics from \"../../../classes/Lytics\";\r\n\r\nexport default {\r\n\tname: \"ProductCarousel\",\r\n\tcomponents: {ProductElement, Carousel, Slide},\r\n\tmixins:[blockElementMixin],\r\n\tprops: {\r\n blockId: {\r\n type: String\r\n },\r\n\t\tisVisible: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t},\r\n\t\tpage: {\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {};\r\n\t\t\t}\r\n\t\t}\r\n },\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tcurrentSlide: 0,\r\n narration:''\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst containers = document.getElementsByClassName('VueCarousel-dot-container');\r\n\t\t\tcontainers.forEach( container => {\r\n\t\t\t\tconst dots = container.getElementsByClassName('VueCarousel-dot');\r\n\t\t\t\tdots.forEach((dot, index) => {\r\n\t\t\t\t\tdot['title'] = ``;\r\n\t\t\t\t\tdot['value'] = `Slide ${index+1}`;\r\n\t\t\t\t\tdot.setAttribute('aria-label', `Slide ${index+1}`);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}, 1000)\r\n const blocks = this.slideBlocks\r\n this.narration = this.currentSlide === 0 ? this.blockData.products[0].contents :blocks[this.currentSlide-1].products[0].contents\r\n\t},\r\n\tcomputed:{\r\n\t\tslideBlocks(){\r\n\t\t\treturn this.blockData?.carouselBlocks;\r\n\t\t},\r\n\t\tisCarousel() {\r\n\t\t\treturn (this.blockData?.carouselBlocks?.length ?? 0) >= 1;\r\n\t\t},\r\n\t\tcontrols() {\r\n\t\t\treturn this.blockData?.controls !== undefined ? this.blockData?.controls : true\r\n\t\t},\r\n\t\tadvance() {\r\n\t\t\treturn this.blockData?.advance ?? false\r\n\t\t},\r\n\t\tframeDuration() {\r\n\t\t\tconst duration = this.blockData?.fraDur ?? 1;\r\n\t\t\treturn isNaN(duration) ? 1 : duration\r\n\t\t},\r\n\t\ttransitionDuration() {\r\n\t\t\treturn this.blockData?.transDur ? `${this.blockData.transDur}s` : `0.3s`;\r\n\t\t},\r\n\t\ttransitionClass() {\r\n\t\t\tswitch(this.blockData?.effect?.toLowerCase()) {\r\n\t\t\t\tcase 'fading':\r\n\t\t\t\t\t return 'fade-effect';\r\n\t\t\t\tcase 'appear':\r\n\t\t\t\t\t return 'appear-effect';\r\n\t\t\t\tcase 'slide':\r\n\t\t\t\t\t return 'slide-effect';\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t return 'slide-effect';\r\n\t\t\t}\r\n\t\t},\r\n\t\ttransitionStyle() {\r\n\t\t\treturn {'--trans-duration': `${this.transitionDuration}`}\r\n\t\t}\r\n\t},\r\n\tmethods:{\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\thandleSlideClick (dataset) {\r\n\t\t\tconsole.log(\"Slide click info \",dataset.index, dataset.name)\r\n\t\t},\r\n\t\tnavigationHandler(i){\r\n const direction = i > this.currentSlide ? 'right' : 'left';\r\n const blocks = this.slideBlocks\r\n\t\t Lytics.TriggerCarouselClick({\r\n\t\t\t\tcarousel_frame: i + 1,\r\n\t\t\t\tcarousel_id: this.blockId,\r\n\t\t\t\tcarousel_interaction: direction,\r\n\t\t\t\tcarousel_url: blocks[i]?.images[0]?.image,\r\n\t\t\t\ttotal_click_include: true,\r\n\t\t\t\tpage_number: this.page.page_num,\r\n\t\t\t})\r\n this.triggerEvent( {\r\n event: 'carouselInteraction',\r\n data: {\r\n frame: i + 1,\r\n direction: direction,\r\n\t\t carouselId: this.blockId\r\n },\r\n })\r\n\t\t},\r\n pageChange(i)\r\n {\r\n if(i)\r\n this.currentSlide = i\r\n else\r\n this.currentSlide = 0\r\n\r\n const blocks = this.slideBlocks\r\n this.narration = this.currentSlide === 0 ? this.blockData.products[0]?.contents :blocks[this.currentSlide-1].products[0]?.contents\r\n const navBtns = document.getElementsByClassName('VueCarousel-navigation-button')\r\n navBtns.forEach((btn) => {\r\n btn.ariaLabel = this.narration\r\n });\r\n return this.currentSlide\r\n },\r\n\t},\r\n\twatch: {\r\n\t\tisVisible(val) {\r\n\t\t\tif (val) {\r\n\t\t\t\tLytics.TriggerCarouselImpression({\r\n\t\t\t\t\tid: this.blockData.name,\r\n\t\t\t\t\turl: this.blockData?.carouselBlocks[this.currentSlide]?.images[0]?.image,\r\n\t\t\t\t\tframe: this.currentSlide + 1,\r\n\t\t\t\t\tframe_count: this.blockData?.carouselBlocks.length + 1,\r\n\t\t\t\t\tpage_number: this.page.page_num,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.ProductCarousel {\r\n\tdisplay: initial !important;\r\n\t.carousel {\r\n\t\t.VueCarousel {\r\n\t\t\tposition:inherit;\r\n\r\n\t\t\t.VueCarousel-inner {\r\n\t\t\t \tmargin-left: -0.5px;\r\n\t }\r\n\r\n\t\t\t.VueCarousel-navigation {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbottom:45px;\r\n\t\t\t\tmargin:0 auto;\r\n\r\n\t\t\t\t.VueCarousel-navigation-button {\r\n\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\tbackground: none;\r\n\t\t\t\t\theight: 45px;\r\n\t\t\t\t\twidth: 45px;\r\n\t\t\t\t\tbackground-size: contain;\r\n\t\t\t\t\tbackground-position: center;\r\n\t\t\t\t\tborder-radius: 50%;\r\n\t\t\t\t\tfont-size: 0;\r\n\t\t\t\t\topacity: .7;\r\n\t\t\t\t\ttransition: opacity 200ms, filter 100ms;\r\n\t\t\t\t\tz-index: 1100;\r\n\t\t\t\t\tmargin:0 -80px;\r\n\r\n\t\t\t\t\t&:hover {\r\n\t\t\t\t\t\topacity: 1;\r\n\t\t\t\t\t}\r\n &:focus{\r\n border: 5px solid var(--secondary-color)\r\n }\r\n\t\t\t\t\t&.VueCarousel-navigation-prev {\r\n\t\t\t\t\t\tbackground-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n\t\t\t\t\t\t//left: 36% !important;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t&.VueCarousel-navigation-next {\r\n\t\t\t\t\t\tbackground-image: url(\"/images/moveright-arrow-desktop.png\");\r\n\t\t\t\t\t\t//right: 36% !important;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t&.VueCarousel-navigation--disabled {\r\n\t\t\t\t\t\topacity: 0.3 !important;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t&:focus:not(:focus-visible) {\r\n\t\t\t\t\t\toutline: none;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.VueCarousel-pagination {\r\n\t\t\t\tz-index: 1000;\r\n\t\t\t\tmargin-top: -85px !important;\r\n\r\n\t\t\t\t.VueCarousel-dot-container {\r\n\t\t\t\t\t-webkit-backface-visibility: hidden;\r\n\t\t\t\t\t-ms-transform: translateZ(0); /* IE 9 */\r\n\t\t\t\t\t-webkit-transform: translateZ(0); /* Chrome, Safari, Opera */\r\n\t\t\t\t\topacity: 0.9;\r\n\t\t\t\t\tbackground: none;\r\n pointer-events: none;\r\n\r\n\t\t\t\t\t&:hover {\r\n\t\t\t\t\t\topacity: 1;\r\n\r\n\t\t\t\t\t\t.VueCarousel-dot--active{\r\n\t\t\t\t\t\t\tbackground: rgba(0, 0, 0) !important;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.VueCarousel-dot {\r\n\t\t\t\t\t\tmin-height: unset;\r\n\t\t\t\t\t\tmin-width: unset;\r\n\t\t\t\t\t\tmargin: 18px 6px !important;\r\n\t\t\t\t\t\tpadding: 0 !important;\r\n\t\t\t\t\t\tborder: 2px solid rgb(0, 0, 0);\r\n\t\t\t\t\t\tbackground: rgb(255, 255, 255) !important;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.VueCarousel-dot--active{\r\n\t\t\t\t\t\tbackground: rgba(0, 0, 0, 0.7) !important;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n .carousel.slide-effect {\r\n\t\t.VueCarousel-inner {\r\n\t\t\ttransition: transform var(--trans-duration) ease !important;\r\n\t\t}\r\n\t}\r\n\t.carousel.fade-effect {\r\n\t\t.VueCarousel-inner {\r\n\t\t\ttransition: transform 0s !important;\r\n\t\t\t.VueCarousel-slide.fade-effect {\r\n opacity: 0;\r\n transition: opacity var(--trans-duration) ease;\r\n }\r\n\t\t .VueCarousel-slide-active.fade-effect, \r\n\t\t .initialSlide.fade-effect {\r\n opacity: 1;\r\n }\r\n\t\t}\r\n\r\n\t\t\r\n\t}\r\n\t.carousel.appear-effect {\r\n\t\t.VueCarousel-inner {\r\n\t\t\ttransition: transform 0s !important;\r\n\t\t\t.VueCarousel-slide.fade-effect {\r\n opacity: 0;\r\n }\r\n\t\t .VueCarousel-slide-active.appear-effect, \r\n\t\t .initialSlide.appear-effect {\r\n opacity: 1;\r\n }\r\n\t\t}\r\n\r\n\t\t\r\n\t}\r\n}\r\n\r\n/*Mobile & Tablet*/\r\n@media (min-width: 280px ) and (max-width: 1022px) {\r\n\t.carousel {\r\n\t\t.VueCarousel {\r\n\t\t\t.VueCarousel-navigation {\r\n\t\t\t\t.VueCarousel-navigation-button {\r\n\t\t\t\t\theight: 50px;\r\n\t\t\t\t\twidth: 50px;\r\n\t\t\t\t\tfont-size: 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.VueCarousel-pagination {\r\n\t\t\t\t.VueCarousel-dot-container {\r\n\t\t\t\t\t.VueCarousel-dot {\r\n\t\t\t\t\t\twidth: 22px !important;\r\n\t\t\t\t\t\theight: 22px !important;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCarousel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCarousel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductCarousel.vue?vue&type=template&id=5dccc1bd&\"\nimport script from \"./ProductCarousel.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductCarousel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductCarousel.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isCarousel)?_c('div',{staticClass:\"carousel in-block\",class:_vm.transitionClass,style:(_vm.transitionStyle)},[_c('carousel',{attrs:{\"perPage\":1,\"navigation-enabled\":_vm.controls,\"pagination-enabled\":_vm.controls,\"navigationClickTargetSize\":15.4,\"pagination-padding\":6,\"autoplay\":_vm.advance,\"autoplay-timeout\":_vm.frameDuration*1000,\"duration\":_vm.frameDuration,\"loop\":true,\"mouse-drag\":false,\"touch-drag\":false,\"aria-label\":\"carousel\"},on:{\"pageChange\":_vm.pageChange,\"navigation-click\":_vm.navigationHandler,\"pagination-click\":_vm.navigationHandler}},[_c('slide',{class:[_vm.transitionClass, {initialSlide: _vm.currentSlide === 0 }]},[_c('product-element',_vm._b({},'product-element',_vm.$props,false))],1),_vm._l((_vm.slideBlocks),function(slide,i){return _c('slide',{key:i,class:_vm.transitionClass,on:{\"slideclick\":_vm.handleSlideClick}},[_c('product-element',_vm._b({attrs:{\"block-data\":slide}},'product-element',_vm.$props,false))],1)})],2)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"carousel in-block\" :class=\"transitionClass\" v-if=\"isCarousel\" :style=\"transitionStyle\">\r\n <carousel\r\n :perPage=1\r\n :navigation-enabled=\"controls\"\r\n\t\t :pagination-enabled=\"controls\"\r\n :navigationClickTargetSize=15.4\r\n :pagination-padding=\"6\"\r\n :autoplay=\"advance\"\r\n\t\t :autoplay-timeout = \"frameDuration*1000\"\r\n\t\t :duration=\"frameDuration\"\r\n :loop=\"true\"\r\n :mouse-drag=\"false\"\r\n :touch-drag=\"false\"\r\n v-on:pageChange=\"pageChange\"\r\n @navigation-click=\"navigationHandler\"\r\n @pagination-click=\"navigationHandler\"\r\n aria-label=\"carousel\"\r\n >\r\n <slide :class=\"[transitionClass, {initialSlide: currentSlide === 0 }]\"><product-element v-bind=\"$props\" /></slide>\r\n <slide v-for=\"(slide,i) in slideBlocks\" :key=\"i\" @slideclick=\"handleSlideClick\" :class=\"transitionClass\">\r\n <product-element :block-data=\"slide\" v-bind=\"$props\" />\r\n\r\n </slide>\r\n\r\n </carousel>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport ProductElement from \"@/components/block/elements/ProductElement.vue\";\r\nimport { Carousel, Slide } from 'vue-carousel';\r\nimport {mapActions} from \"vuex\";\r\nimport Lytics from \"../../../classes/Lytics\";\r\n\r\nexport default {\r\n name: \"ProductCarouselV2\",\r\n components: {ProductElement, Carousel, Slide},\r\n mixins:[blockElementMixin],\r\n data(){\r\n return {\r\n currentSlide: 0\r\n }\r\n },\r\n mounted() {\r\n setTimeout(() => {\r\n // gotta work on this\r\n const containers = document.getElementsByClassName('VueCarousel-dot-container');\r\n containers.forEach( container => {\r\n const dots = container.getElementsByClassName('VueCarousel-dot');\r\n dots.forEach((dot, index) => {\r\n dot['title'] = ``;\r\n dot['value'] = `Slide ${index+1}`;\r\n dot.setAttribute('aria-label', `Slide ${index+1}`);\r\n });\r\n });\r\n }, 1000)\r\n },\r\n computed:{\r\n slideBlocks(){\r\n return this.blockData?.carouselBlocks;\r\n },\r\n isCarousel() {\r\n return (this.blockData?.carouselBlocks?.length ?? 0) >= 1;\r\n },\r\n controls() {\r\n\t\t\treturn this.blockData?.controls !== undefined ? this.blockData?.controls : true\r\n\t\t},\r\n\t\tadvance() {\r\n\t\t\treturn this.blockData?.advance ?? false\r\n\t\t},\r\n\t\tframeDuration() {\r\n\t\t\tconst duration = this.blockData?.fraDur ?? 1;\r\n\t\t\treturn isNaN(duration) ? 1 : duration\r\n\t\t},\r\n\t\ttransitionDuration() {\r\n\t\t\treturn this.blockData?.transDur ? `${this.blockData.transDur}s` : `0.3s`;\r\n\t\t},\r\n\t\ttransitionClass() {\r\n\t\t\tswitch(this.blockData?.effect?.toLowerCase()) {\r\n\t\t\t\tcase 'fading':\r\n\t\t\t\t\t return 'fade-effect';\r\n\t\t\t\tcase 'appear':\r\n\t\t\t\t\t return 'appear-effect';\r\n\t\t\t\tcase 'slide':\r\n\t\t\t\t\t return 'slide-effect';\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t return 'slide-effect';\r\n\t\t\t}\r\n\t\t},\r\n\t\ttransitionStyle() {\r\n\t\t\treturn {'--trans-duration': `${this.transitionDuration}`}\r\n\t\t}\r\n },\r\n methods:{\r\n ...mapActions('events', ['triggerEvent']),\r\n handleSlideClick (dataset) {\r\n console.log(\"Slide click info \",dataset.index, dataset.name)\r\n },\r\n navigationHandler(i){\r\n const direction = i > this.currentSlide ? 'right' : 'left';\r\n const blocks = this.slideBlocks\r\n\t\t Lytics.TriggerCarouselClick({\r\n\t\t\t\tcarousel_frame: i + 1,\r\n\t\t\t\tcarousel_id: this.blockId,\r\n\t\t\t\tcarousel_interaction: direction,\r\n\t\t\t\tcarousel_url: blocks[i]?.images[0]?.image,\r\n\t\t\t\ttotal_click_include: true,\r\n page_number: this.page.page_num\r\n\t\t\t})\r\n this.triggerEvent( {\r\n event: 'carouselInteraction',\r\n data: {\r\n frame: i + 1,\r\n direction: direction,\r\n\t\t carouselId: this.blockId\r\n },\r\n })\r\n\t\t},\r\n pageChange(i)\r\n {\r\n if(i)\r\n this.currentSlide = i\r\n else\r\n this.currentSlide = 0\r\n\r\n const blocks = this.slideBlocks\r\n this.narration = this.currentSlide == 0 ? this.blockData.products[0]?.contents :blocks[this.currentSlide-1].products[0]?.contents\r\n const navBtns = document.getElementsByClassName('VueCarousel-navigation-button')\r\n navBtns.forEach((btn) => {\r\n btn.ariaLabel = this.narration\r\n });\r\n return this.currentSlide\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" >\r\n.ProductCarouselV2 {\r\n display: initial !important;\r\n .carousel {\r\n .VueCarousel {\r\n position:inherit;\r\n\r\n .VueCarousel-inner {\r\n\t\t\t \tmargin-left: -0.5px;\r\n\t }\r\n\r\n .VueCarousel-navigation {\r\n position: relative;\r\n bottom:25px;\r\n margin:0 auto;\r\n\r\n .VueCarousel-navigation-button {\r\n cursor: pointer;\r\n background: none;\r\n /*\theight: 45px;\r\n width: 45px;*/\r\n min-height: 17px !important;\r\n min-width: 17px !important;\r\n background-size: contain;\r\n background-position: center;\r\n border-radius: 50%;\r\n font-size: 0;\r\n opacity: .7;\r\n transition: opacity 200ms, filter 100ms;\r\n z-index: 1100;\r\n margin:0 -28px;\r\n\r\n &:hover {\r\n opacity: 1;\r\n }\r\n &.VueCarousel-navigation-prev {\r\n background-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n padding: 0 !important;\r\n //left: 36% !important;\r\n }\r\n &.VueCarousel-navigation-next {\r\n background-image: url(\"/images/moveright-arrow-desktop.png\");\r\n padding: 0 !important;\r\n //right: 36% !important;\r\n }\r\n &.VueCarousel-navigation--disabled {\r\n opacity: 0.3 !important;\r\n }\r\n &:focus:not(:focus-visible) {\r\n outline: none;\r\n }\r\n }\r\n }\r\n\r\n .VueCarousel-pagination {\r\n z-index: 1000;\r\n margin-top: -3.4em;\r\n\r\n .VueCarousel-dot-container {\r\n -webkit-backface-visibility: hidden;\r\n -ms-transform: translateZ(0); /* IE 9 */\r\n -webkit-transform: translateZ(0); /* Chrome, Safari, Opera */\r\n opacity: 0.9;\r\n background: none;\r\n pointer-events: none;\r\n\r\n &:hover {\r\n opacity: 1;\r\n\r\n .VueCarousel-dot--active{\r\n background: rgba(0, 0, 0) !important;\r\n outline: none !important;\r\n }\r\n }\r\n\r\n .VueCarousel-dot {\r\n min-height: unset;\r\n min-width: unset;\r\n transform: scale(-0.7);\r\n /* height: 7.2px !important;\r\n width: 7.2px !important;\r\n margin-left: 1.7px ;\r\n margin-right: 1.7px;*/\r\n padding: 0 !important;\r\n border: 1px solid rgb(0, 0, 0);\r\n background: rgb(255, 255, 255) !important;\r\n\r\n }\r\n .VueCarousel-dot:focus {\r\n outline: none !important;\r\n }\r\n\r\n .VueCarousel-dot--active{\r\n background: rgba(0, 0, 0, 0.7) !important;\r\n }\r\n\r\n }\r\n }\r\n }\r\n }\r\n .carousel.slide-effect {\r\n\t\t.VueCarousel-inner {\r\n\t\t\ttransition: transform var(--trans-duration) ease !important;\r\n\t\t}\r\n\t}\r\n\t.carousel.fade-effect {\r\n\t\t.VueCarousel-inner {\r\n\t\t\ttransition: transform 0s !important;\r\n\t\t\t.VueCarousel-slide.fade-effect {\r\n opacity: 0;\r\n transition: opacity var(--trans-duration) ease;\r\n }\r\n\t\t .VueCarousel-slide-active.fade-effect, \r\n\t\t .initialSlide.fade-effect {\r\n opacity: 1;\r\n }\r\n\t\t}\r\n\r\n\t\t\r\n\t}\r\n\t.carousel.appear-effect {\r\n\t\t.VueCarousel-inner {\r\n\t\t\ttransition: transform 0s !important;\r\n\t\t\t.VueCarousel-slide.fade-effect {\r\n opacity: 0;\r\n }\r\n\t\t .VueCarousel-slide-active.appear-effect, \r\n\t\t .initialSlide.appear-effect {\r\n opacity: 1;\r\n }\r\n\t\t}\r\n\r\n\t\t\r\n\t}\r\n}\r\n\r\n/*Mobile*/\r\n@media (min-width: 280px ) and (max-width: 819px) {\r\n .ProductCarouselV2 {\r\n .carousel {\r\n .VueCarousel {\r\n .VueCarousel-navigation {\r\n .VueCarousel-navigation-button {\r\n height: 14px !important;\r\n width: 14px !important;\r\n margin: 0 -29px !important;\r\n font-size: 0;\r\n }\r\n }\r\n\r\n .VueCarousel-pagination {\r\n margin-top: -3.45em;\r\n .VueCarousel-dot-container {\r\n .VueCarousel-dot {\r\n transform: scale(-0.4) !important;\r\n margin: 7px -5px !important;\r\n\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n/*Tablet*/\r\n@media (min-width: 820px) and (max-width: 1023px) {\r\n .ProductCarouselV2 {\r\n .carousel {\r\n .VueCarousel {\r\n .VueCarousel-navigation {\r\n .VueCarousel-navigation-button {\r\n height: 24.5px !important;\r\n width: 24.5px !important;\r\n margin: 0 -42px !important;\r\n font-size: 0;\r\n }\r\n }\r\n\r\n .VueCarousel-pagination {\r\n margin-top: -62px !important;\r\n\r\n .VueCarousel-dot-container {\r\n .VueCarousel-dot {\r\n transform: scale(-0.5) !important;\r\n margin: 14px -2px !important;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCarouselV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCarouselV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductCarouselV2.vue?vue&type=template&id=2751dd82&\"\nimport script from \"./ProductCarouselV2.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductCarouselV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductCarouselV2.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"featured-element\",class:{ featured: _vm.linkUrl },style:(_vm.style),on:{\"click\":_vm.onClick,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.onClick.apply(null, arguments)}}},[(_vm.useLegalExpansion)?_c('ExpandingDisclaimer',{class:{ 'remove-margins': _vm.removeMargins },attrs:{\"add-collapsible\":true,\"containerWidth\":_vm.setContainerWidth}},[_c('image-element',_vm._b({ref:\"imageElement\",class:[{ featured: !!_vm.linkUrl }, 'featured-class-element'],style:({ width: _vm.imgWidth + 'px' }),attrs:{\"constrain\":_vm.constraint}},'image-element',_vm.$props,false))],1):(_vm.isPersonalizedBanner)?[_c('image-element',_vm._b({class:{ featured: !!_vm.linkUrl },attrs:{\"adSrc\":_vm.adSrc,\"constrain\":_vm.constraint}},'image-element',_vm.$props,false))]:[_c('image-element',_vm._b({class:{ featured: !!_vm.linkUrl },attrs:{\"constrain\":_vm.constraint}},'image-element',_vm.$props,false))],(_vm.isVisible)?_c('div',_vm._l((_vm.products),function(product,index){return _c('product-click-regions',{key:product.sku + index,attrs:{\"block-data\":_vm.blockData,\"is-visible\":_vm.isVisible,\"product\":product,\"banners\":_vm.banners,\"is-ad\":_vm.isAd,\"page\":_vm.page}})}),1):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"expanding-container\",staticClass:\"expanding-disclaimer\",class:{ border: (_vm.useExpansion || _vm.addCollapsible) && _vm.disclaimer},style:({ width: _vm.containerWidth}),on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleExpand.apply(null, arguments)}}},[(_vm.useExpansion || _vm.addCollapsible)?_c('button',[_c('svg',{class:{ flip: _vm.expanded },attrs:{\"width\":\"16\",\"height\":\"10\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M16 .848c0-.343-.18-.652-.458-.783a.677.677 0 00-.81.184l-6.75 7.704L1.23.249a.677.677 0 00-1.015.04.936.936 0 00-.03 1.159L7.462 9.75a.7.7 0 00.525.249.7.7 0 00.525-.249l7.265-8.303a.91.91 0 00.223-.6z\",\"fill\":\"#333\",\"fill-rule\":\"nonzero\"}})])]):_vm._e(),(_vm.disclaimer)?_c('p',{ref:\"disclaimer\",staticClass:\"content\",class:{ collapsed: _vm.useExpansion && !_vm.expanded }},[(_vm.useExpansion)?_c('span',{staticClass:\"legal-start\"},[_vm._v(\" \"+_vm._s(_vm.content.legalDisclaimer))]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.disclaimer)+\" \")]):_c('div',{staticClass:\"content image featured\",class:{ collapsed: !_vm.expanded }},[_c('p',[_vm._v(_vm._s(_vm.content.legalDisclaimer))]),_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"expanding-disclaimer\" :style=\"{ width: containerWidth}\" :class=\"{ border: (useExpansion || addCollapsible) && disclaimer}\" ref=\"expanding-container\" @click.stop=\"toggleExpand\">\r\n <button v-if=\"useExpansion || addCollapsible\">\r\n <svg :class=\"{ flip: expanded }\" width=\"16\" height=\"10\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 .848c0-.343-.18-.652-.458-.783a.677.677 0 00-.81.184l-6.75 7.704L1.23.249a.677.677 0 00-1.015.04.936.936 0 00-.03 1.159L7.462 9.75a.7.7 0 00.525.249.7.7 0 00.525-.249l7.265-8.303a.91.91 0 00.223-.6z\" fill=\"#333\" fill-rule=\"nonzero\"/></svg>\r\n </button>\r\n <p\r\n v-if=\"disclaimer\"\r\n :class=\"{ collapsed: useExpansion && !expanded }\"\r\n class=\"content\"\r\n ref=\"disclaimer\"\r\n >\r\n <span class=\"legal-start\" v-if=\"useExpansion\"> {{ content.legalDisclaimer }}</span>\r\n {{ disclaimer }}\r\n </p>\r\n <div v-else class=\"content image featured\" :class=\"{ collapsed: !expanded }\">\r\n <p>{{ content.legalDisclaimer }}</p>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </template>\r\n \r\n <script>\r\n import { mapGetters } from 'vuex';\r\n export default {\r\n props: {\r\n disclaimer: {\r\n type: String\r\n },\r\n alt: {\r\n type: String\r\n },\r\n containerWidth: {\r\n type: String\r\n },\r\n addCollapsible:{\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n \r\n data() {\r\n return {\r\n useExpansion: false,\r\n expanded: false,\r\n }\r\n },\r\n \r\n computed: {\r\n ...mapGetters(['content']),\r\n \r\n \r\n },\r\n \r\n methods: {\r\n toggleExpand() {\r\n this.expanded = !this.expanded;\r\n },\r\n },\r\n \r\n mounted() {\r\n if (this.disclaimer) {\r\n const numLines = (this.$refs.disclaimer.offsetHeight - 10) / 14;\r\n if (numLines > 2) this.useExpansion = true;\r\n }\r\n }\r\n }\r\n </script>\r\n \r\n <style lang=\"scss\" scoped>\r\n .expanding-disclaimer {\r\n display: flex;\r\n text-align: center;\r\n width: 100%;\r\n\r\n &.border {\r\n margin-top: -3px;\r\n border: 1px solid #D6D6D6;\r\n }\r\n \r\n button {\r\n border: none;\r\n border-radius: 0;\r\n background-color: #D6D6D6;\r\n z-index: 999;\r\n }\r\n \r\n svg {\r\n transition: transform 300ms ease-in-out;\r\n \r\n &.flip {\r\n transform: scaleY(-1);\r\n }\r\n }\r\n }\r\n \r\n .content {\r\n font-size: 11px;\r\n padding: 5px;\r\n line-height: 14px;\r\n \r\n &.image {\r\n padding: 0;\r\n display: flex;\r\n justify-content: flex-end;\r\n flex-direction: column;\r\n \r\n p {\r\n text-align: left;\r\n color: #ED1C24;\r\n padding: 2px 5px;\r\n }\r\n \r\n img {\r\n width: 100%;\r\n }\r\n }\r\n \r\n &.collapsed {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n position: relative;\r\n display: -webkit-box;\r\n max-height: 40px;\r\n -webkit-line-clamp: 2;\r\n -webkit-box-orient: vertical;\r\n \r\n &:before {\r\n content:'';\r\n width:100%;\r\n height:100%; \r\n position:absolute;\r\n left:0;\r\n top:0;\r\n background:linear-gradient(transparent, white);\r\n z-index: 1;\r\n }\r\n }\r\n \r\n .legal-start {\r\n color: #ED1C24;\r\n \r\n }\r\n }\r\n </style>","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpandingDisclaimer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpandingDisclaimer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ExpandingDisclaimer.vue?vue&type=template&id=7a73c850&scoped=true&\"\nimport script from \"./ExpandingDisclaimer.vue?vue&type=script&lang=js&\"\nexport * from \"./ExpandingDisclaimer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ExpandingDisclaimer.vue?vue&type=style&index=0&id=7a73c850&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a73c850\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"featured-element\" :class=\"{ featured: linkUrl }\" @click=\"onClick\" @keydown.enter=\"onClick\" :style=\"style\">\r\n\t\t<ExpandingDisclaimer v-if=\"useLegalExpansion\" :add-collapsible=\"true\" :containerWidth=\"setContainerWidth\"\r\n\t\t\t:class=\"{ 'remove-margins': removeMargins }\">\r\n\t\t\t<image-element :constrain=\"constraint\" :class=\"[{ featured: !!linkUrl }, 'featured-class-element']\" v-bind=\"$props\"\r\n\t\t\t\t:style=\"{ width: imgWidth + 'px' }\" ref=\"imageElement\" />\r\n\t\t</ExpandingDisclaimer>\r\n\t\t<template v-else-if=\"isPersonalizedBanner\">\r\n\t\t\t<image-element :adSrc=\"adSrc\" :constrain=\"constraint\" :class=\"{ featured: !!linkUrl }\" v-bind=\"$props\" />\r\n\t\t</template>\r\n\t\t<template v-else>\r\n\t\t\t<image-element :constrain=\"constraint\" :class=\"{ featured: !!linkUrl }\" v-bind=\"$props\" />\r\n\t\t</template>\r\n\r\n\t\t<div v-if=\"isVisible\">\r\n\t\t\t<product-click-regions v-for=\"(product, index) in products\" :key=\"product.sku + index\"\r\n\t\t\t\t:block-data=\"blockData\" :is-visible=\"isVisible\" :product=\"product\" :banners=\"banners\" :is-ad=\"isAd\" :page=\"page\" />\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport ImageElement from \"@/components/block/elements/ImageElement.vue\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport { mapGetters, mapState, mapActions } from \"vuex\";\r\nimport ProductClickRegions from \"@/components/block/elements/ProductClickRegions.vue\";\r\nimport ExpandingDisclaimer from \"@/components/ExpandingDisclaimer\";\r\nimport Lytics from \"@/classes/Lytics\";\r\n\r\nexport default {\r\n\tname: \"AdElement\",\r\n\tcomponents: { ProductClickRegions, ImageElement, ExpandingDisclaimer },\r\n\tmixins: [featureMixin, blockElementMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tadSrc: null,\r\n\t\t\tbanners: null,\r\n\t\t\tisAd: false,\r\n\t\t\tcontainerWidth: '',\r\n\t\t\tfeaturePath: 'personalizedBanners',\r\n\t\t\tisPersonalizedChecked: false,\r\n\t\t\tthemeName: null,\r\n\t\t\tpersonalizedAd: null,\r\n\t\t}\r\n\t},\r\n\tasync mounted() {\r\n\t\tif (this.isPersonalizedBanner) {\r\n\t\t\tawait this.isPersonalizedAd()\r\n\t\t}\r\n\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapState(['pages']),\r\n\t\t...mapGetters('config', ['features', 'branding']),\r\n\t\t...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n\t\t...mapGetters(['hasBaseBars', 'isCTC']),\r\n\t\t...mapGetters('landingPage', [\"currentFlyer\"]),\r\n\t\t...mapGetters('ctUser', ['hasPersonalizedAds', 'canViewPersonalizedBanner']),\r\n\t\t...mapGetters(['content', \"language\"]),\r\n\t\tpageHeight() {\r\n\t\t\tlet ph = this.page.pageHeight;\r\n\t\t\tif (this.hasBaseBars) {\r\n\t\t\t\tph += this.config.value || 31;\r\n\t\t\t}\r\n\t\t\treturn ph;\r\n\t\t},\r\n\t\tpageWidth() {\r\n\t\t\treturn this.page.pageWidth;\r\n\t\t},\r\n\t\tconstraint() {\r\n\t\t\tif (this.flyerOrientation === 'vertical') {\r\n\t\t\t\treturn { 'width': this.pageWidth }\r\n\t\t\t}\r\n\t\t\treturn { 'height': this.pageHeight }\r\n\t\t},\r\n\t\tproducts() {\r\n\t\t\treturn this.blockData.products;\r\n\t\t},\r\n\t\tlinkUrl() {\r\n\t\t\treturn this.blockData.linkUrl;\r\n\t\t},\r\n\t\tuseLegalExpansion() {\r\n\t\t\treturn this.isCTC && this.page.name.substr(0, 5) === \"Legal\" && this.displayMode === \"mobile\";\r\n\t\t},\r\n\t\tisPersonalizedBanner() {\r\n\t\t\treturn this.canViewPersonalizedBanner && this.page.name.toLowerCase().includes(\"personalized\");\r\n\t\t},\r\n\t\tremoveMargins() {\r\n\t\t\tlet isPoweredByTC = this.features?.poweredByTC?.enabled\r\n\t\t\treturn isPoweredByTC && this.pages.slice(-1).pop().name.substr(0, 5) === \"Legal\" && this.displayMode === \"mobile\"\r\n\t\t},\r\n\t\timgWidth() {\r\n\t\t\treturn parseFloat(this.page?.pageWidth) - 35;\r\n\t\t},\r\n\t\tsetContainerWidth() {\r\n\t\t\treturn `${this.page.pageWidth}px`;\r\n\t\t},\r\n\t\tstyle() {\r\n\t\t\tif (this.useLegalExpansion) return;\r\n\t\t\tconst aspec = this.blockData.aspectRatio;\r\n\t\t\tif (this.flyerOrientation === 'vertical') {\r\n\t\t\t\treturn { 'width': `${this.pageWidth}px`, 'height': `${this.pageWidth / aspec}px` }\r\n\t\t\t}\r\n\t\t\treturn { 'width': `${this.pageHeight * aspec}px`, 'height': `${this.pageHeight}px` }\r\n\t\t\t\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('ctUser', ['loadPersonalizedAds']),\r\n\t\tonClick() {\r\n\t\t\tconsole.log('Ad Click')\r\n\t\t\tif (this.isAd) {\r\n\t\t\t\twindow.open(this.banners?.linkUrlEn)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tif (this.blockData.linkUrl) {\r\n\t\t\t\twindow.open(this.blockData.linkUrl)\r\n\t\t\t\tLytics.TriggerAdClick({\r\n\t\t\t\t\tad_name: this.page.name,\r\n\t\t\t\t\tad_url: this.blockData.linkUrl,\r\n\t\t\t\t\tad_image_url: this.blockData.images[0]?.image,\r\n\t\t\t\t\tad_size: `${this.page.pageWidth}x${this.page.pageHeight}`,\r\n\t\t\t\t\ttotal_click_include: true\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t},\r\n\t\tasync isPersonalizedAd() {\r\n\t\t\tthis.banners = await this.loadPersonalizedAds();\r\n\t\t\tif (this.banners) {\r\n\t\t\t\tthis.themeName = this.banners.themeName;\r\n this.isPersonalizedChecked = true;\r\n\t\t\t\tthis.constructPersonalizedAd();\r\n\t\t\t}\r\n\r\n\t\t},\r\n\t\tconstructPersonalizedAd() {\r\n\t\t\tconst displayMode = this.displayMode.toLowerCase();\r\n\t\t\tconst accessKey = this.config?.accessKey || '';\r\n\t\t\tif (displayMode === 'desktop' && this.flyerOrientation !== 'vertical') {\r\n\t\t\t\tthis.personalizedAd = `${this.banners?.desktopBannerUrl}${accessKey}`\r\n\t\t\t} else if (displayMode === `tablet` || (displayMode === `desktop` && this.flyerOrientation === 'vertical')) {\r\n\t\t\t\r\n\t\t\t\tthis.personalizedAd = `${this.banners?.tabletBannerUrl}${accessKey}`\r\n\t\t\t} else {\r\n\t\t\t\tthis.personalizedAd = `${this.banners?.mobileBannerUrl}${accessKey}`\r\n\t\t\t}\r\n\t\t\tthis.loadImage();\r\n\r\n\t\t},\r\n\t\tloadImage() {\r\n\t\t\tif (this.personalizedAd && this.themeName !== null && this.themeName !== undefined && this.themeName !== '') {\r\n const img = new Image();\r\n\t\t\t\timg.src = this.personalizedAd;\r\n\t\t\t\timg.onload = () => {\r\n\t\t\t\t\tthis.isAd = true\r\n\t\t\t\t\tthis.adSrc = this.personalizedAd;\r\n\t\t\t\t};\r\n\t\t\t\timg.onerror = () => {\r\n\t\t\t\t\tthis.isAd = false\r\n\t\t\t\t\tthis.adSrc = null;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.isAd = false\r\n\t\t\t\tthis.adSrc = null;\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\t},\r\n\r\n\twatch: {\r\n\t\tdisplayMode() {\r\n\t\t\tif (this.isPersonalizedBanner && !this.isPersonalizedChecked) {\r\n\t\t\t\tthis.isPersonalizedAd();\r\n\t\t\t} else if (this.isPersonalizedChecked && this.themeName) {\r\n\t\t\t\tthis.constructPersonalizedAd()\r\n\t\t\t}\r\n\t\t},\r\n\t\tflyerOrientation() {\r\n\t\t\tif (this.isPersonalizedBanner && !this.isPersonalizedChecked) {\r\n\t\t\t\tthis.isPersonalizedAd();\r\n\t\t\t} else if (this.isPersonalizedChecked && this.themeName) {\r\n\t\t\t\tthis.constructPersonalizedAd()\r\n\t\t\t}\r\n\t\t},\r\n\t\tisPersonalizedBanner() {\r\n\t\t\tif (this.isPersonalizedBanner && !this.isPersonalizedChecked) {\r\n\t\t\t\tthis.isPersonalizedAd();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.featured-element {\r\n\tposition: relative;\r\n}\r\n\r\n.featured {\r\n\tcursor: pointer;\r\n}\r\n\r\n.overlay {\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tright: 0;\r\n\tleft: 0;\r\n\tposition: absolute;\r\n\twill-change: transform, opacity;\r\n}\r\n\r\n.featured-element .overlay {\r\n\ttransition: filter 0.3s;\r\n}\r\n\r\n.featured-element:hover .overlay {\r\n\tpointer-events: auto;\r\n}\r\n\r\n.expanding-disclaimer.remove-margins {\r\n\tmargin-bottom: 0;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdElement.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdElement.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdElement.vue?vue&type=template&id=70b1b3aa&scoped=true&\"\nimport script from \"./AdElement.vue?vue&type=script&lang=js&\"\nexport * from \"./AdElement.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AdElement.vue?vue&type=style&index=0&id=70b1b3aa&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70b1b3aa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('img',{staticStyle:{\"position\":\"absolute\",\"width\":\"100%\",\"height\":\"100%\",\"left\":\"0\",\"top\":\"0\",\"object-fit\":\"cover\",\"object-position\":\"center\"},attrs:{\"alt\":\"image\",\"src\":_vm.posterSource}}),_c('div',{directives:[{name:\"observe-visibility\",rawName:\"v-observe-visibility\",value:(_vm.onVisibilityChange),expression:\"onVisibilityChange\"}]},[(_vm.videoBlockType==='pb' && _vm.showVideo)?_c('div',[_c('partial-block-video',_vm._b({on:{\"pVideoStarted\":function($event){return _vm.hidePlayButton('start')},\"pVideoEnded\":function($event){return _vm.hidePlayButton('end')},\"pHandleUserClose\":function($event){return _vm.hidePlayButton('userClose')},\"videoClicked\":_vm.handleVClick}},'partial-block-video',_vm.$props,false))],1):_vm._e(),(_vm.showVideo && _vm.videoBlockType==='fb')?_c('full-block-video',_vm._b({attrs:{\"posterSource\":_vm.posterSource},on:{\"fVideoStarted\":function($event){return _vm.hidePlayButton('start')},\"videoClosed\":function($event){return _vm.hidePlayButton('end')},\"handleUserClose\":function($event){return _vm.hidePlayButton('userClose')},\"videoClicked\":_vm.handleVClick}},'full-block-video',_vm.$props,false)):_c('product-element',_vm._b({attrs:{\"hidePlayBtn\":_vm.hidePlayBtn},on:{\"onRegionClick\":_vm.onRegionClick,\"srcFromProduct\":_vm.handleSrcFromProduct}},'product-element',_vm.$props,false))],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {mapGetters, mapState} from \"vuex\";\r\n\r\nexport default {\r\n data() {\r\n return {\r\n mobileControls: false,\r\n mobileClick: false\r\n }\r\n },\r\n computed:{\r\n ...mapGetters('config', ['branding']),\r\n ...mapGetters('screen', [ 'isMobileAndTablet']),\r\n ...mapState('scale', ['currentScale']),\r\n isVideo() {\r\n const products = this.blockData?.products || [];\r\n const prod = products.find((prod) => {\r\n const actionType = (prod.actionType || prod.sku).toLowerCase();\r\n return (actionType.includes('inblock') || actionType.includes('animate'));\r\n })\r\n return prod;\r\n },\r\n source() {\r\n const contentSource = this.isVideo.contentSource || this.isVideo.url\r\n return `${contentSource}${this.config?.accessKey || ''}`;\r\n },\r\n isAutoplay() {\r\n return this.isVideo?.inblockAutoplay ?? true;\r\n },\r\n hasAudio() {\r\n return this.isVideo?.inblockAudio ?? false;\r\n },\r\n muteBtnIcon() {\r\n return this.videoMuted ? '/icons/in-block-video/unmute.svg' : \"/icons/in-block-video/mute.svg\";\r\n },\r\n playBtnIcon() {\r\n return this.videoPlaying ? \"/icons/in-block-video/pause.svg\" : \"/icons/in-block-video/play.svg\";\r\n },\r\n isLoop() {\r\n return this.isVideo?.inblockLoop ?? true;\r\n },\r\n showControls() {\r\n if(this.fileFormat=== 'webm' || this.fileFormat === 'svg') return;\r\n return this.isVideo?.inblockControls ?? true;\r\n },\r\n isPop() {\r\n return this.isVideo?.noPop ?? false;\r\n },\r\n inverseScaling() {\r\n const inverseScale = 1/this.currentScale\r\n return { transform: `scaleY(${inverseScale})`,\r\n transformOrigin: 'center bottom' }\r\n },\r\n inverseImgScaling() {\r\n return { transform: `scaleY(${this.currentScale})`,\r\n minHeight: `${32/this.currentScale}px`,\r\n maxHeight: `${31/this.currentScale}px`,\r\n maxWidth: `100%` }\r\n },\r\n fileFormat() {\r\n const url = this.isVideo?.url;\r\n if(url.endsWith('.webm')) {\r\n return 'webm'\r\n } else if (url.endsWith('.svg')) {\r\n return 'svg'\r\n }\r\n return null;\r\n }\r\n\t\t\r\n },\r\n methods: {\r\n handleClick(){\r\n if(this.isMobileAndTablet) {\r\n if (!this.showControls) {\r\n this.$emit('videoClicked')\r\n } else {\r\n if(!this.mobileClick) {\r\n this.mobileControls = true;\r\n } else {\r\n this.$emit('videoClicked')\r\n }\r\n this.mobileClick = !this.mobileClick\r\n }\r\n } else { \r\n this.$emit('videoClicked')\r\n }\r\n },\r\n \r\n }\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"full-block-video\"},[(_vm.fileFormat==='svg')?_c('div',[_c('object',{ref:\"svgObject\",attrs:{\"data\":_vm.source,\"type\":\"image/svg+xml\"}}),_c('div',{staticClass:\"click-overlay\",style:(_vm.videoRegion),on:{\"click\":function($event){$event.stopPropagation();return _vm.handleClick.apply(null, arguments)}}})]):_c('video',{ref:\"video\",attrs:{\"autoplay\":_vm.isAutoplay,\"poster\":_vm.posterSource,\"muted\":\"\",\"playsinline\":\"\"},domProps:{\"muted\":true},on:{\"ended\":_vm.handleDelay,\"click\":function($event){$event.stopPropagation();return _vm.handleClick.apply(null, arguments)}}},[_c('source',{attrs:{\"src\":_vm.source,\"type\":\"video/mp4\"}}),_c('source',{attrs:{\"src\":_vm.source,\"type\":\"video/webm\"}})]),(_vm.isMobileAndTablet ? _vm.mobileControls : _vm.showControls)?_c('div',{staticClass:\"buttons_set custom_controls\",style:(_vm.inverseScaling)},[_c('img',{style:(_vm.inverseImgScaling),attrs:{\"src\":_vm.playBtnIcon,\"tabindex\":\"0\",\"alt\":\"\"},on:{\"click\":_vm.toggleVideoPlay}}),(_vm.hasAudio)?_c('img',{style:(_vm.inverseImgScaling),attrs:{\"src\":_vm.muteBtnIcon,\"tabindex\":\"0\",\"alt\":\"\"},on:{\"click\":_vm.toggleVideoMute}}):_vm._e(),_c('img',{staticClass:\"closeBtn\",style:(_vm.inverseImgScaling),attrs:{\"src\":\"/icons/in-block-video/close.svg\",\"tabindex\":\"0\",\"alt\":\"close\"},on:{\"click\":_vm.closeInBlockVideo}})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"full-block-video\">\r\n <div v-if=\"fileFormat==='svg'\">\r\n <object ref=\"svgObject\" :data=\"source\" type=\"image/svg+xml\"></object>\r\n <div class=\"click-overlay\" :style=\"videoRegion\" @click.stop=\"handleClick\"></div>\r\n </div>\r\n <video v-else ref=\"video\" :autoplay=\"isAutoplay\" @ended=\"handleDelay\" :poster=\"posterSource\" @click.stop=\"handleClick\" muted playsinline>\r\n <source :src=\"source\" type=\"video/mp4\" />\r\n <source :src=\"source\" type=\"video/webm\" />\r\n </video>\r\n <div class=\"buttons_set custom_controls\" v-if=\"isMobileAndTablet ? mobileControls : showControls\" :style=\"inverseScaling\">\r\n <img :src=\"playBtnIcon\" tabindex=\"0\" @click=\"toggleVideoPlay\" alt=\"\" :style=\"inverseImgScaling\">\r\n <img v-if=\"hasAudio\" :src=\"muteBtnIcon\" tabindex=\"0\" @click=\"toggleVideoMute\"\r\n alt=\"\" :style=\"inverseImgScaling\">\r\n <img class=\"closeBtn\" src=\"/icons/in-block-video/close.svg\" tabindex=\"0\"\r\n @click=\"closeInBlockVideo\" alt=\"close\" :style=\"inverseImgScaling\">\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport InblockVideosMixin from \"@/features/inblock-videos/InblockVideosMixin\";\r\nimport {mapGetters} from \"vuex\";\r\n\r\nexport default {\r\n mixins: [featureMixin, blockElementMixin,InblockVideosMixin],\r\n data() {\r\n return {\r\n videoPlaying: true,\r\n videoMuted: true,\r\n featurePath: 'blockVideos.fullBlock'\r\n }\r\n },\r\n props: {\r\n posterSource: String,\r\n },\r\n mounted() {\r\n const v = this.$refs.video;\r\n v.play()\r\n\r\n // Hide Picture-In-Picture on hover in MS Edge\r\n if(window.navigator.userAgent.indexOf(\"Edg\")> -1){\r\n v.setAttribute('disablePictureInPicture', true);\r\n v.setAttribute('controlsList','nodownload')\r\n }\r\n\r\n this.$emit('fVideoStarted')\r\n },\r\n computed: {\r\n ...mapGetters('screen', [ 'isMobileAndTablet']),\r\n ...mapGetters(['isCTC', 'isJC']),\r\n },\r\n beforeDestroy() {\r\n const video = this.$refs.video;\r\n video.removeEventListener('play', this.onVideoEvent)\r\n },\r\n methods: {\r\n play() {\r\n this.$refs.video.play();\r\n },\r\n pause() {\r\n this.$refs.video.pause();\r\n },\r\n onVideoEvent() {\r\n const video = this.$refs.video;\r\n this.videoPlaying = !video.paused;\r\n },\r\n toggleVideoPlay() {\r\n const isPlaying = !this.$refs.video.paused;\r\n this.videoPlaying = !isPlaying;\r\n if (isPlaying) {\r\n this.pause();\r\n }\r\n else\r\n this.play();\r\n },\r\n \r\n toggleVideoMute() {\r\n const video = this.$refs.video;\r\n this.videoMuted = !video.muted;\r\n video.muted = !video.muted;\r\n /*let vid = document.getElementById(`${this.id}`);\r\n !this.videoMuted ? vid.muted=true : vid.muted=false*/\r\n },\r\n closeInBlockVideo() {\r\n this.$emit('handleUserClose')\r\n },\r\n handleDelay() {\r\n this.$emit('videoClosed')\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.full-block-video {\r\n position: relative;\r\n height: 100%;\r\n\r\n >.buttons_set {\r\n bottom: 2px;\r\n width: 100% !important;\r\n z-index: 1005;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n position: absolute;\r\n height: 7%;\r\n padding: 0 10px;\r\n background: rgba(0, 0, 0, 0.5);\r\n transition: opacity 300ms;\r\n //transition-delay: 2s;\r\n opacity: 0;\r\n font-size: 16px;\r\n\r\n //&:hover{\r\n // transition-delay: unset;\r\n // opacity: 1;\r\n //}\r\n img {\r\n max-height: 70%;\r\n height: auto;\r\n }\r\n\r\n\r\n }\r\n >.buttons_set.custom_controls {\r\n height: 44px !important;\r\n img {\r\n width: auto;\r\n height: auto\r\n }\r\n }\r\n .buttons_set.buttons_set.customMetro {\r\n display: none;\r\n }\r\n\r\n &:hover>.buttons_set {\r\n transition-delay: unset;\r\n opacity: 1;\r\n }\r\n\r\n .buttons_set img {\r\n cursor: pointer;\r\n left: 10%;\r\n margin-left: 10px;\r\n pointer-events: all;\r\n }\r\n .buttons_set.customMetro img {\r\n margin-left: 16px;\r\n pointer-events: all;\r\n }\r\n\r\n .closeBtn {\r\n border-radius: 50px;\r\n // background-color: red;\\\r\n margin-right: 10px;\r\n border: none;\r\n margin-left: auto !important;\r\n right: 5% !important\r\n }\r\n\r\n video {\r\n width: 100.1%;\r\n height: 100.1%;\r\n background: transparent;\r\n object-fit: cover !important;\r\n transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;\r\n z-index: 10;\r\n }\r\n}\r\n.full-block-video.pop-video {\r\n &:hover,\r\n &:focus {\r\n transform: scale(1.02);\r\n box-shadow: 0 0 50px rgba(0, 0, 0, 0.3);\r\n z-index: 9999;\r\n outline: none;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullBlockVideo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullBlockVideo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FullBlockVideo.vue?vue&type=template&id=0265b417&scoped=true&\"\nimport script from \"./FullBlockVideo.vue?vue&type=script&lang=js&\"\nexport * from \"./FullBlockVideo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FullBlockVideo.vue?vue&type=style&index=0&id=0265b417&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0265b417\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"partial-block-video\",style:(_vm.videoRegion)},[(_vm.fileFormat==='svg')?_c('div',[_c('object',{ref:\"svgObject\",attrs:{\"data\":_vm.source,\"type\":\"image/svg+xml\"}}),_c('div',{staticClass:\"click-overlay\",style:(_vm.clickRegion),on:{\"click\":function($event){$event.stopPropagation();return _vm.handleClick.apply(null, arguments)}}})]):_c('video',{ref:\"pVideo\",attrs:{\"autoplay\":_vm.isAutoplay,\"poster\":_vm.posterSource,\"playsinline\":\"\",\"muted\":\"\"},domProps:{\"muted\":true},on:{\"ended\":_vm.handleDelay,\"click\":function($event){$event.stopPropagation();return _vm.handleClick.apply(null, arguments)}}},[_c('source',{attrs:{\"src\":_vm.source,\"type\":\"video/mp4\"}}),_c('source',{attrs:{\"src\":_vm.source,\"type\":\"video/webm\"}})]),(_vm.isMobileAndTablet ? _vm.mobileControls : _vm.showControls)?_c('div',{staticClass:\"buttons_set custom_controls\",style:(_vm.inverseScaling)},[_c('img',{style:(_vm.inverseImgScaling),attrs:{\"src\":_vm.playBtnIcon,\"tabindex\":\"0\",\"alt\":\"\"},on:{\"click\":_vm.toggleVideoPlay}}),(_vm.hasAudio)?_c('img',{staticClass:\"audioBtn\",style:(_vm.inverseImgScaling),attrs:{\"src\":_vm.muteBtnIcon,\"tabindex\":\"0\",\"alt\":\"\"},on:{\"click\":_vm.toggleVideoMute}}):_vm._e(),_c('img',{staticClass:\"closeBtn\",style:(_vm.inverseImgScaling),attrs:{\"src\":\"/icons/in-block-video/close.svg\",\"tabindex\":\"0\",\"alt\":\"close\"},on:{\"click\":_vm.closeInBlockVideo}})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"partial-block-video\" :style=\"videoRegion\">\r\n <div v-if=\"fileFormat==='svg'\">\r\n <object ref=\"svgObject\" :data=\"source\" type=\"image/svg+xml\"></object>\r\n <div class=\"click-overlay\" :style=\"clickRegion\" @click.stop=\"handleClick\"></div>\r\n </div>\r\n <video v-else ref=\"pVideo\" :autoplay=\"isAutoplay\" @ended=\"handleDelay\" :poster=\"posterSource\" @click.stop=\"handleClick\" playsinline muted>\r\n <source :src=\"source\" type=\"video/mp4\" />\r\n <source :src=\"source\" type=\"video/webm\" />\r\n </video>\r\n\r\n <div class=\"buttons_set custom_controls\" v-if=\"isMobileAndTablet ? mobileControls : showControls\" :style=\"inverseScaling\">\r\n <img :src=\"playBtnIcon\" tabindex=\"0\" @click=\"toggleVideoPlay\" alt=\"\" :style=\"inverseImgScaling\">\r\n <img class=\"audioBtn\" v-if=\"hasAudio\" :src=\"muteBtnIcon\" tabindex=\"0\" @click=\"toggleVideoMute\"\r\n alt=\"\" :style=\"inverseImgScaling\">\r\n <img class=\"closeBtn\" src=\"/icons/in-block-video/close.svg\" tabindex=\"0\"\r\n @click=\"closeInBlockVideo\" alt=\"close\" :style=\"inverseImgScaling\"> \r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport InblockVideosMixin from \"@/features/inblock-videos/InblockVideosMixin\";\r\nimport {mapGetters} from \"vuex\";\r\n\r\n\r\nexport default {\r\n mixins: [featureMixin, blockElementMixin,InblockVideosMixin],\r\n props: {\r\n posterSource: String,\r\n },\r\n data() {\r\n return {\r\n videoPlaying: true,\r\n videoMuted: true,\r\n videoRegion: {},\r\n clickRegion: {},\r\n featurePath: 'blockVideos.fullBlock',\r\n }\r\n },\r\n mounted() {\r\n const v = this.$refs.pVideo;\r\n \r\n this.handleVideoRegion();\r\n v?.play()\r\n\r\n // Hide Picture-In-Picture on hover in MS Edge\r\n if(window.navigator.userAgent.indexOf(\"Edg\")> -1){\r\n v.setAttribute('disablePictureInPicture', true);\r\n v.setAttribute('controlsList','nodownload')\r\n }\r\n\r\n this.$emit('pVideoStarted')\r\n },\r\n methods:{\r\n play() {\r\n this.$refs.pVideo.play();\r\n },\r\n pause() {\r\n this.$refs.pVideo.pause();\r\n },\r\n onVideoEvent() {\r\n const video = this.$refs.pVideo;\r\n this.videoPlaying = !video.paused;\r\n\r\n },\r\n handleVideoRegion() {\r\n \r\n if (this.fileFormat) {\r\n this.videoRegion = {\r\n left: `${this.isVideo.clickRegions[0]?.left}%`,\r\n top: `${this.isVideo.clickRegions[0]?.top}%`,\r\n width: `${this.isVideo.clickRegions[0]?.width}%`,\r\n height: `${this.isVideo.clickRegions[0]?.height}%`,\r\n zIndex:'99999',\r\n position:'absolute',\r\n };\r\n } else {\r\n this.videoRegion = {\r\n left: `${this.isVideo.videoRegions[0]?.left}%`,\r\n top: `${this.isVideo.videoRegions[0]?.top}%`,\r\n width: `${this.isVideo.videoRegions[0]?.width}%`,\r\n height: `${this.isVideo.videoRegions[0]?.height}%`,\r\n zIndex:'99999',\r\n position:'absolute',\r\n };\r\n }\r\n if(this.fileFormat === 'svg') {\r\n this.clickRegion = {\r\n left: `0`,\r\n top: `0`,\r\n width: `100%`,\r\n height: `100%`,\r\n zIndex:'99999',\r\n position:'absolute',\r\n };\r\n return;\r\n }\r\n },\r\n toggleVideoPlay() {\r\n const isPlaying = !this.$refs.pVideo.paused;\r\n this.videoPlaying = !isPlaying;\r\n if (isPlaying) {\r\n this.pause();\r\n }\r\n else\r\n this.play();\r\n },\r\n toggleVideoMute() {\r\n const video = this.$refs.pVideo;\r\n this.videoMuted = !video.muted;\r\n video.muted = !video.muted;\r\n /*let vid = document.getElementById(`${this.id}`);\r\n !this.videoMuted ? vid.muted=true : vid.muted=false*/\r\n },\r\n closeInBlockVideo() {\r\n this.$emit('pHandleUserClose')\r\n },\r\n handleDelay() {\r\n this.$emit('pVideoEnded')\r\n }\r\n },\r\n computed: {\r\n ...mapGetters('screen', [ 'isMobileAndTablet']),\r\n ...mapGetters(['isCTC', 'isJC']),\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.partial-block-video {\r\n position: relative;\r\n height:100%;\r\n\r\n object {\r\n display: block;\r\n .click-overlay {\r\n position: absolute;\r\n background: transparent;\r\n }\r\n }\r\n\r\n\r\n >.buttons_set {\r\n bottom: 0;\r\n width: 100%;\r\n z-index: 1005;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n height: 10%;\r\n padding: 0 10px;\r\n background: rgba(0, 0, 0, 0.5);\r\n transition: opacity 300ms;\r\n //transition-delay: 2s;\r\n opacity: 0;\r\n font-size: 16px;\r\n position:absolute;\r\n\r\n //&:hover{\r\n // transition-delay: unset;\r\n // opacity: 1;\r\n //}\r\n img {\r\n max-height: 80%;\r\n height: auto\r\n }\r\n\r\n img.audioBtn {\r\n margin-left: 10px;\r\n }\r\n\r\n\r\n }\r\n >.buttons_set.custom_controls {\r\n height: 44px !important;\r\n img {\r\n width: auto;\r\n height: auto\r\n }\r\n }\r\n\r\n &:hover>.buttons_set {\r\n transition-delay: unset;\r\n opacity: 1;\r\n }\r\n\r\n .buttons_set img {\r\n cursor: pointer;\r\n left: 10%;\r\n margin-left: 10px;\r\n pointer-events: all;\r\n }\r\n .buttons_set.customMetro img {\r\n margin-left: 16px;\r\n pointer-events: all;\r\n }\r\n\r\n .closeBtn {\r\n border-radius: 50px;\r\n // background-color: red;\\\r\n margin-right: 10px;\r\n border: none;\r\n margin-left: auto !important;\r\n right: 5% !important\r\n }\r\n\r\n video {\r\n width: 100%;\r\n height: 100%;\r\n background: transparent;\r\n object-fit: cover !important;\r\n transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;\r\n }\r\n}\r\n.partial-block-video.pop-video {\r\n &:hover,\r\n &:focus {\r\n transform: scale(1.02);\r\n box-shadow: 0 0 50px rgba(0, 0, 0, 0.3);\r\n z-index: 9999;\r\n outline: none;\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartialBlockVideo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartialBlockVideo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartialBlockVideo.vue?vue&type=template&id=bb14e4cc&scoped=true&\"\nimport script from \"./PartialBlockVideo.vue?vue&type=script&lang=js&\"\nexport * from \"./PartialBlockVideo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PartialBlockVideo.vue?vue&type=style&index=0&id=bb14e4cc&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bb14e4cc\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div>\r\n <img alt=\"image\" style=\"position: absolute;width: 100%;height: 100%;left: 0;top: 0;object-fit: cover;object-position: center\" :src=\"posterSource\" />\r\n\r\n <div v-observe-visibility=\"onVisibilityChange\">\r\n <div v-if=\"videoBlockType==='pb' && showVideo\">\r\n <partial-block-video v-bind=\"$props\" @pVideoStarted=\"hidePlayButton('start')\" @pVideoEnded=\"hidePlayButton('end')\" @pHandleUserClose=\"hidePlayButton('userClose')\" @videoClicked=\"handleVClick\"/>\r\n </div>\r\n\r\n <full-block-video v-if=\"showVideo && videoBlockType==='fb'\" v-bind=\"$props\" @fVideoStarted=\"hidePlayButton('start')\" @videoClosed=\"hidePlayButton('end')\" @handleUserClose=\"hidePlayButton('userClose')\" :posterSource=\"posterSource\" @videoClicked=\"handleVClick\"/>\r\n <product-element v-else v-bind=\"$props\" @onRegionClick=\"onRegionClick\" @srcFromProduct=\"handleSrcFromProduct\" :hidePlayBtn=\"hidePlayBtn\"/>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {defineComponent} from 'vue'\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\nimport InblockVideosMixin from \"@/features/inblock-videos/InblockVideosMixin\";\r\nimport FullBlockVideo from \"@/features/inblock-videos/FullBlockVideo.vue\";\r\nimport PartialBlockVideo from \"@/features/inblock-videos/PartialBlockVideo.vue\";\r\nimport ProductElement from \"@/components/block/elements/ProductElement.vue\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {mapActions,mapGetters, mapState} from \"vuex\";\r\nimport Lytics from '../../../classes/Lytics';\r\n\r\nexport default defineComponent({\r\n name: \"ProductBlockVideoElement\",\r\n components: {ProductElement, FullBlockVideo, PartialBlockVideo},\r\n mixins: [featureMixin, blockElementMixin, InblockVideosMixin],\r\n data() {\r\n return {\r\n blockVideoState: false,\r\n posterSource: null,\r\n featurePath: 'blockVideos.fullBlock',\r\n videoProduct:{},\r\n videoBlockType:'',\r\n hidePlayBtn: false,\r\n skuLeft:'',\r\n skuRight:'',\r\n currentLoop: 0\r\n }\r\n },\r\n computed: {\r\n ...mapState(['currentPageNumber']),\r\n ...mapGetters('landingPage', ['currentFlyer']),\r\n showVideo() {\r\n return this.blockVideoState && this.isVisible;\r\n }\r\n },\r\n created() {\r\n this.posterSource = this.blockData?.images[0]?.image\r\n const products = this.blockData?.products;\r\n products.forEach((prod) => {\r\n const isVideo = (prod.actionType || prod.sku).toLowerCase();\r\n if (isVideo.includes('inblock') || isVideo.includes('animate') ) {\r\n this.videoProduct = prod\r\n if (this.fileFormat) this.videoBlockType = 'pb';\r\n else this.videoBlockType = prod?.fullBlock == true ? 'fb' : 'pb'\r\n if (this.videoProduct?.inblockAutoplay) {\r\n this.hidePlayBtn = true;\r\n }\r\n\r\n if(this.fileFormat) {\r\n this.hidePlayBtn = true;\r\n setTimeout(() => {\r\n this.blockVideoState = true\r\n }, this.videoProduct?.inblockDelay * 1000);\r\n }\r\n \r\n setTimeout(() => {\r\n this.blockVideoState = this.videoProduct.inblockAutoplay\r\n }, this.videoProduct?.inblockDelay * 1000);\r\n\r\n this.videoProduct.noPop ? this.block.classes.noPop = true : ''\r\n this.setSku(prod)\r\n }\r\n \r\n })\r\n // this.handlePlay();\r\n },\r\n methods:{\r\n ...mapActions('events', ['triggerEvent']),\r\n onRegionClick(region,rf){\r\n if(rf !== 'productRegion' && (rf === 'inblock'))\r\n region.isVideo ? this.blockVideoState = true : this.blockVideoState = false\r\n console.log('onRegionClick:', region);\r\n },\r\n hidePlayButton(rf) {\r\n // console.log('Request from ',rf)\r\n if (rf === 'start') this.hidePlayBtn = true\r\n else if (rf === 'end') {\r\n if (this.videoProduct?.inblockLoop) {\r\n this.hidePlayBtn = true\r\n this.blockVideoState = false;\r\n this.currentLoop++;\r\n\r\n if ((this.currentLoop < this.videoProduct?.loopCount) || this.videoProduct?.loopCount === 0) {\r\n setTimeout(() => {\r\n this.blockVideoState = true;\r\n }, this.videoProduct?.inblockDelay * 1000);\r\n } else {\r\n\r\n this.hidePlayBtn = true;\r\n this.blockVideoState = true\r\n }\r\n\r\n } else {\r\n if (this.fileFormat) {\r\n this.hidePlayBtn = true;\r\n this.blockVideoState = true;\r\n } else {\r\n this.hidePlayBtn = false\r\n this.blockVideoState = false;\r\n }\r\n \r\n }\r\n }\r\n else if (rf === 'userClose') {\r\n this.blockVideoState = false;\r\n this.hidePlayBtn = false\r\n }\r\n },\r\n handleVClick(){\r\n const actionTypeSku = (this.videoProduct?.actionType)?.toLowerCase();\r\n if(!this.videoProduct.sku.includes('|')) {\r\n if(actionTypeSku === 'inblocksku' || actionTypeSku === 'inblocktcsku' || \r\n actionTypeSku === 'animatesku' || actionTypeSku === 'animatetcsku') {\r\n this.triggerEvent( { event: 'productRegionClick',\r\n data: {\r\n currentFlyer:this.currentFlyer,\r\n product:this.videoProduct\r\n },\r\n })\r\n }\r\n } else {\r\n if(this.videoProduct.sku.toLowerCase() === 'inblock' || this.videoProduct.sku.toLowerCase() === 'inblocktc') return\r\n const oldVal = this.videoProduct.sku;\r\n if(this.videoProduct.sku.includes('|')) this.videoProduct.sku = this.skuRight\r\n this.triggerEvent( { event: 'productRegionClick',\r\n data: {\r\n currentFlyer:this.currentFlyer,\r\n product:this.videoProduct\r\n },\r\n })\r\n this.videoProduct.sku = oldVal\r\n }\r\n\r\n Lytics.TriggerInBlockVideoClick({ \r\n url: this.videoProduct?.url,\r\n page_number: this.currentPageNumber,\r\n })\r\n\r\n },\r\n setSku(p){\r\n if(!p.sku.includes('|')) return\r\n this.skuLeft = p.sku.split('|')[0]\r\n this.skuRight = p.sku.split('|')[1]\r\n },\r\n \r\n onVisibilityChange(isVisible) {\r\n if (isVisible) {\r\n this.handlePlay();\r\n } \r\n },\r\n handlePlay() {\r\n\t\t this.blockData?.products.forEach((prod) => {\r\n const actionType = (prod.actionType || prod.sku).toLowerCase();\r\n \r\n if (actionType.includes('inblock') || actionType.includes('animate')) {\r\n\t\t\t\t const delay = (prod.inblockDelay) ? prod.inblockDelay : 2\r\n const removedRegions = prod.clickRegions.filter((region) => !region)\r\n const updatedRegions = prod.clickRegions.filter(Boolean)\r\n if(this.fileFormat) {\r\n setTimeout(() => {\r\n\t\t\t\t\t\t this.blockVideoState = true;\r\n\t\t\t\t\t\t prod.clickRegions = [...updatedRegions, ...removedRegions]\r\n\t\t }, delay * 1000)\r\n return;\r\n }\r\n\t\t\t\t\tif (prod.inblockAutoplay) {\r\n \r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t this.blockVideoState = prod.inblockAutoplay;\r\n\t\t\t\t\t\t prod.clickRegions = [...updatedRegions, ...removedRegions]\r\n\t\t }, delay * 1000)\r\n\t\t\t\t\t} \r\n\t\t\t\t} else {\r\n this.blockVideoState = false;\r\n }\r\n\t\t\t\t\r\n\t\t\t})\r\n\t\t},\r\n handleSrcFromProduct(imageSrc) {\r\n this.posterSource = imageSrc;\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n\r\n<style lang=\"scss\">\r\n.flyer-block.ProductBlockVideoElement:not(.noPop) {\r\n position: relative;\r\n\r\n &:hover, &:focus {\r\n transform: scale(1.02);\r\n box-shadow: 0 0 50px rgba(0, 0, 0, 0.3);\r\n z-index: 9999;\r\n outline: none;\r\n }\r\n\r\n /* .poster-source {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n object-fit: fill;\r\n }*/\r\n}\r\n\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductBlockVideoElement.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductBlockVideoElement.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductBlockVideoElement.vue?vue&type=template&id=538994f4&\"\nimport script from \"./ProductBlockVideoElement.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductBlockVideoElement.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductBlockVideoElement.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div\r\n v-if=\"ready\"\r\n v-observe-visibility=\"{\r\n\t\t\t\tcallback: onVisibilityChange,\r\n\t\t\t\tthrottle: 50,\r\n\t\t\t\tintersection: getObserverOptions(true)\r\n\t\t\t}\"\r\n :class=\"classes\"\r\n :style=\"style\"\r\n tabindex=\"0\"\r\n >\r\n <component\r\n :is=\"blockComponent\"\r\n :block=\"blockRef\"\r\n :block-data=\"blockData\"\r\n :is-visible=\"isVisible\"\r\n :page=\"page\"\r\n :seen=\"seen\"\r\n :blockId=\"blockKey\"\r\n ref=\"innerElement\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport {mapGetters} from \"vuex\";\r\nimport ProductElement from \"@/components/block/elements/ProductElement.vue\";\r\nimport ProductCarousel from \"@/components/block/elements/ProductCarousel.vue\";\r\nimport ProductCarouselV2 from \"@/components/block/elements/ProductCarouselV2.vue\";\r\nimport AdElement from \"@/components/block/elements/AdElement.vue\";\r\nimport ProductBlockVideoElement from \"@/components/block/elements/ProductBlockVideoElement.vue\";\r\nimport Lytics from \"@/classes/Lytics\";\r\n\r\nexport default {\r\n name: \"FlyerBlock\",\r\n props: {\r\n page: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n blockData: {\r\n type: Object\r\n },\r\n rootScrollContainer: {\r\n type: String || Object\r\n },\r\n blockKey: {\r\n type: String\r\n }\r\n },\r\n data() {\r\n return {\r\n isVisible: false,\r\n isInViewPort: false,\r\n ready: false,\r\n seen: false,\r\n classes: {\r\n 'flyer-block': true\r\n },\r\n inBlockVisibleState: false\r\n }\r\n },\r\n async mounted() {\r\n this.ready = true;\r\n this.classes[this.blockComponent.name] = true;\r\n\r\n await this.$nextTick();\r\n const options = this.getObserverOptions(false);\r\n const observer = new IntersectionObserver(this.onViewPortChange, options);\r\n\r\n const target = this.$refs?.innerElement?.$el;\r\n observer.observe(target);\r\n\r\n/* setTimeout(() => {\r\n this.$nextTick(() => {\r\n const options = this.getObserverOptions(false);\r\n const observer = new IntersectionObserver(this.onViewPortChange, options);\r\n \r\n const target = this.$refs.innerElement.$el;\r\n observer.observe(target);\r\n });\r\n }, 500);*/\r\n },\r\n methods: {\r\n getObserverOptions(marginIncluded) {\r\n const observerOptions = {\r\n root: document.getElementById(this.rootScrollContainer),\r\n rootMargin: marginIncluded ? \"100%\" : \"0px\",\r\n };\r\n return observerOptions;\r\n },\r\n \r\n // separate intersection observer callback because loading the block images happens before scrolling into viewport \r\n // vs. analytics impression happens when it is in viewport\r\n onViewPortChange(entries) {\r\n entries.forEach(entry => {\r\n this.isInViewPort = entry.isIntersecting;\r\n });\r\n },\r\n\r\n onVisibilityChange(isVisible) {\r\n this.isVisible = isVisible;\r\n if (isVisible && !this.seen) {\r\n this.seen = true;\r\n }\r\n }\r\n },\r\n computed: {\r\n ...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n ...mapGetters('config', ['features']),\r\n unitWidth() {\r\n return this.page.unitWidth;\r\n },\r\n unitHeight() {\r\n return this.page.unitHeight;\r\n },\r\n rowSpan() {\r\n return this.blockData.rowSpan;\r\n },\r\n colSpan() {\r\n return this.blockData.colSpan;\r\n },\r\n width() {\r\n return this.unitWidth * this.colSpan;\r\n },\r\n height() {\r\n return this.unitHeight * this.rowSpan;\r\n },\r\n isCarousel() {\r\n return (this.blockData?.carouselBlocks?.length ?? 0) >= 1;\r\n },\r\n isAdPage() {\r\n return this.page.isAdPage;\r\n },\r\n isSearchResult() {\r\n return this.page.name === \"search_results\"\r\n },\r\n hasInBlockVideo() {\r\n const products = this.blockData?.products || [];\r\n return products.some((prod) => {\r\n const isVideo = prod.actionType || prod.sku\r\n return ((isVideo)?.toLowerCase().includes('inblock') || (isVideo)?.toLowerCase().includes('animate'));\r\n })\r\n },\r\n blockComponent() {\r\n if (this.blockData?.type === 'component') return this.blockData.component;\r\n if (this.isCarousel && this.features?.carousels?.template === 'v2') return ProductCarouselV2;\r\n if (this.isCarousel) return ProductCarousel;\r\n if (this.isAdPage) return AdElement;\r\n if (this.hasInBlockVideo) return ProductBlockVideoElement;\r\n return ProductElement;\r\n },\r\n placement() {\r\n let pm = this.blockData.placement[this.displayMode];\r\n if (this.displayMode === 'desktop' && this.flyerOrientation === 'vertical') {\r\n pm = this.blockData.placement['tablet'];\r\n }\r\n return pm;\r\n },\r\n hasPlacement() {\r\n return this.placement?.visible;\r\n },\r\n style() {\r\n const order = this.placement?.order || 'initial';\r\n let s = {\r\n gridColumn: `span ${this.blockData.colSpan}`,\r\n gridRow: `span ${this.blockData.rowSpan}`,\r\n order: order,\r\n display: 'grid',\r\n position:'relative'// `${this.canShowAd ? \"block\" : \"none\"}`,,\r\n };\r\n\r\n if (this.isSearchResult) {\r\n delete s.order;\r\n }\r\n\r\n /*if (!this.isAdPage) {\r\n s.width = `${this.blockWidth}px`;\r\n s.height = `${this.blockHeight}px`;\r\n }*/\r\n\r\n return s;\r\n },\r\n blockRef() {\r\n return this;\r\n }\r\n },\r\n watch: {\r\n isInViewPort(val) {\r\n if (val) {\r\n const videoUrl = this.blockData.products.find(p => p.sku === 'Play' || p.sku === 'PlayTC')?.url;\r\n const linkUrl = this.blockData.linkUrl;\r\n \r\n let item_list_name = 'flyer';\r\n if (videoUrl) {\r\n item_list_name = 'video impression';\r\n Lytics.TriggerVideoImpression({\r\n url: videoUrl,\r\n page_number: this.page.page_num,\r\n })\r\n }\r\n if (this.isCarousel) {\r\n item_list_name = 'carousel impression';\r\n }\r\n if (linkUrl) {\r\n Lytics.TriggerLinkImpression({\r\n url: linkUrl,\r\n page_number: this.page.page_num,\r\n })\r\n }\r\n if (this.hasInBlockVideo) {\r\n item_list_name = 'in_block_video_impression';\r\n Lytics.TriggerInBlockVideoImpression({\r\n url: this.blockData.products[0].url,\r\n page_number: this.page.page_num,\r\n })\r\n }\r\n\r\n const products = this.blockData.products.filter(p => p.sku !== 'Play' && p.sku !== 'url');\r\n \r\n Lytics.addToEventQueue({\r\n item_list_name,\r\n page_number: this.page.page_num,\r\n items: products.map((p, i) => {\r\n return {\r\n product_id: p.sku,\r\n name: p.productEn || p.productFr,\r\n name_en: p.productEn,\r\n name_fr: p.productFr,\r\n price: p.regularPrice,\r\n position: i,\r\n sale_price: p.salePrice,\r\n category: p.mainCategoryEn || p.mainCategoryFr,\r\n category_2: p.subCategoryEn || p.subCategoryFr,\r\n image_url: p.productImage,\r\n quantity: 1,\r\n }\r\n })\r\n })\r\n\r\n if (this.isAdPage) {\r\n Lytics.TriggerAdImpression({\r\n name: this.page.name,\r\n url: this.blockData.linkUrl,\r\n image_url: this.blockData.images[0]?.image,\r\n size: `${this.page.pageWidth}x${this.page.pageHeight}`\r\n })\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</script>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerBlock.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerBlock.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlyerBlock.vue?vue&type=template&id=3a8136b1&\"\nimport script from \"./FlyerBlock.vue?vue&type=script&lang=js&\"\nexport * from \"./FlyerBlock.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div\r\n v-if=\"searchResults || this.displayPage\"\r\n class=\"section-container\"\r\n :class=\"{\r\n 'mar-b': page.id.includes('adpage') && (this.flyerOrientation == 'vertical'),\r\n 'bg-red': redPages.includes(page.id),\r\n 'featured-page': page.isAdPage,\r\n 'search-page': page.name === 'search_results' && this.flyerOrientation == 'horizontal',\r\n 'search-page-vertical': page.name === 'search_results' && this.flyerOrientation == 'vertical',\r\n 'no-gap': noGap && this.flyerOrientation == 'horizontal',\r\n 'page-gap': !noGap && this.flyerOrientation == 'horizontal',\r\n 'page-gap-vertical': this.flyerOrientation == 'vertical'\r\n }\"\r\n :page-id=\"page.id\"\r\n :page-num=\"pageNum\"\r\n :index=\"index\"\r\n :style=\"currentSectionStyle\"\r\n ref=\"container\"\r\n >\r\n<!-- <block\r\n v-for=\"(b, index) in blocks\"\r\n :key=\"page.id + '_block_' + index\"\r\n :element=\"b\"\r\n :device=\"device\"\r\n :parent=\"page\"\r\n :parent-col-count=\"colCount\"\r\n :searchResults=\"searchResults\"\r\n :unit-width=\"unitWidth\"\r\n :unit-height=.unitHeight\"\r\n :isAdPage=\"page.isAdPage\"\r\n :root-scroll-container=\"rootScrollContainer\"\r\n />-->\r\n <flyer-block v-for=\"(b, index) in blocks\" :key=\"page.id + '_block_' + index\"\r\n :blockKey=\"generateBlockKey(page.id, index)\" :block-data=\"b\"\r\n :page=\"{ pageHeight, pageWidth, ...page, unitWidth, unitHeight }\" :root-scroll-container=\"rootScrollContainer\" />\r\n <div v-if=\"page.name !== 'search_results'\" class=\"basebar\" :class=\"{ clickable: basebarLink }\" :style=\"basebarStyle\"\r\n @click=\"handleBasebarClick\">\r\n\r\n <img alt=\"Basebar Featured\" v-if=\"basebarImagePath\" :src=\"basebarImagePath\" loading=\"lazy\" />\r\n <!-- <div class=\"overlay\"></div> -->\r\n <ExpandingDisclaimer v-if=\"this.page.disclaimer && this.displayMode === 'mobile'\"\r\n :disclaimer=\"this.page.disclaimer\" />\r\n <p v-else-if=\"this.page.disclaimer\">{{ this.page.disclaimer }}</p>\r\n\r\n <!-- <div class=\"basebar\" :class=\"{ clickable: basebarLink }\" :style=\"basebarStyle\" @click=\"handleBasebarClick\"> -->\r\n </div>\r\n <!-- <div >\r\n <p>{{ zonedDisclaimer }} 123</p>\r\n </div> -->\r\n </div>\r\n</template>\r\n<script>\r\n//import Block from \"./block.component\";\r\nimport { mapState, mapGetters } from 'vuex';\r\nimport { getClosestDPI } from \"@/store/modules/scale\";\r\nimport FlyerBlock from \"@/components/block/FlyerBlock.vue\";\r\nimport ExpandingDisclaimer from \"@/components/ExpandingDisclaimer\";\r\nimport Lytics from \"@/classes/Lytics\";\r\n//import FlyerPage from \"@/classes/FlyerPage\";\r\n\r\nlet bbcount = 0;\r\n\r\nexport default {\r\n props: [\"page\", \"page-num\", \"device\", \"index\", \"searchResults\", \"prevDocumentName\", \"rootScrollContainer\"],\r\n components: {\r\n FlyerBlock,\r\n ExpandingDisclaimer\r\n },\r\n computed: {\r\n ...mapGetters([\"language\"]),\r\n ...mapState(['columnView', 'zonesArray', 'apiUrl']),\r\n ...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n ...mapGetters('scale', ['imageDPI']),\r\n ...mapGetters(['isRexall']),\r\n\r\n /**\r\n *\r\n * @returns number\r\n */\r\n unitWidth() {\r\n if (this.grid['fitCols']) {\r\n const fc = this.grid['fitCols'];\r\n const cols = this.colCount;\r\n return this.page.unitWidth * (fc / cols);\r\n }\r\n /* const fp = new FlyerPage(this.page);\r\n return fp.getModeUnitWidth(this.virtualDisplayMode);*/\r\n return this.page.unitWidth;\r\n },\r\n\r\n /**\r\n *\r\n * @returns number\r\n */\r\n unitHeight() {\r\n if (this.grid['fitCols']) {\r\n const fc = this.grid['fitCols'];\r\n const cols = this.colCount;\r\n return this.page.unitHeight * (fc / cols);\r\n }\r\n /*const fp = new FlyerPage(this.page);\r\n return fp.getModeUnitHeight(this.virtualDisplayMode);*/\r\n return this.page.unitHeight;\r\n },\r\n\r\n displayPage() {\r\n return this.page.blocks.some(block => !block.placement || block.placement?.[this.displayMode].visible)\r\n },\r\n\r\n blocks() {\r\n const dm = this.flyerOrientation === 'vertical' && this.displayMode === 'desktop' ? 'tablet' : this.displayMode;\r\n return this.page.blocks.filter(block => !block.placement || block.placement?.[dm].visible);\r\n },\r\n\r\n pageDom() {\r\n return this.$refs.container;\r\n },\r\n\r\n showImages() {\r\n return true;\r\n },\r\n\r\n isAdPage() {\r\n return this.page.isAdPage;\r\n },\r\n\r\n grid() {\r\n return this.page.grids[this.virtualDisplayMode];\r\n /*\t\t if (this.flyerOrientation === 'vertical' && this.displayMode === 'desktop') {\r\n return this.page.grids['tablet'];\r\n } else {\r\n return this.page.grids[this.device];\r\n }*/\r\n },\r\n\r\n virtualDisplayMode() {\r\n if (this.flyerOrientation === 'vertical' && this.displayMode !== 'mobile') {\r\n return 'tablet';\r\n }\r\n return this.displayMode;\r\n },\r\n\r\n colCount() {\r\n return this.grid.colCount;\r\n\r\n /*const fp = new FlyerPage(this.page);\r\n return fp.getModeCols(this.virtualDisplayMode);*/\r\n //if ((this.columnView || window.innerWidth < 800) && this.searchResults && this.device !== 'mobile') {\r\n /*if (this.flyerOrientation === 'vertical' && this.displayMode !== 'mobile') {\r\n return fp.getModeCols('tablet'); // this.page.grids['tablet'].colCount;\r\n } else {\r\n return fp.getModeCols(this.displayMode); // this.page.grids[this.device].colCount;\r\n }*/\r\n },\r\n\r\n rowCount() {\r\n return this.grid.rowCount;\r\n /*const fp = new FlyerPage(this.page);\r\n return fp.getModeRows(this.virtualDisplayMode);*/\r\n },\r\n pageHeight() {\r\n return this.rowCount * this.unitHeight;\r\n },\r\n pageWidth() {\r\n return this.colCount * this.unitWidth;\r\n },\r\n grids() {\r\n return this.page.grids;\r\n },\r\n noGap() {\r\n return this.page?.noGapAfterPage;\r\n },\r\n currentSectionStyle: function () {\r\n return {\r\n ...this.grid['style'],\r\n gridTemplateColumns: `repeat(${this.colCount},${(this.unitWidth) + \"px\"})`,\r\n ...this.gridRowTemplate\r\n };\r\n },\r\n gridRowTemplate: function () {\r\n /* if (this.flyerOrientation === 'horizontal') {\r\n return {gridTemplateRows: `repeat(${this.rowCount},${this.unitHeight}px)`}\r\n }*/\r\n return { gridTemplateRows: `repeat(${this.rowCount},${this.unitHeight}px)` }\r\n },\r\n basebarObj() {\r\n if (!this.page.basebars || this.page.name === 'search_results') return null;\r\n let images = this.page.basebars[this.displayMode] || this.page.basebars['desktop']; //Missing tablet basebar object...\r\n\r\n if (images.length) {\r\n images.sort((a, b) => {\r\n return a.resolution - b.resolution;\r\n })\r\n\r\n const highestRes = images.slice(-1).pop();\r\n if (highestRes) return highestRes;\r\n else {\r\n const obj = getClosestDPI(this.imageDPI, images);\r\n return obj;\r\n }\r\n /*let obj = images.find((item) => {\r\n // console.log(\"basebar resolution finding \", this.imageDPI)\r\n return item.resolution == this.imageDPI;\r\n });\r\n\r\n if (!obj) {\r\n obj = images.find(image => image.resolution > this.imageDPI);\r\n }*/\r\n\r\n\r\n }\r\n return null;\r\n },\r\n basebarImagePath() {\r\n if (this.basebarObj) {\r\n return this.basebarObj.image;\r\n }\r\n return null;\r\n },\r\n basebarLink() {\r\n return this.basebarObj?.url || null;\r\n },\r\n basebarStyle: function () {\r\n return {\r\n gridColumn: `span ${this.grid.colCount}`,\r\n // display: `${this.page.basebars ? \"block\" : \"none\"}` //are we forcing basebars all the time ignoring json?\r\n };\r\n }\r\n },\r\n data() {\r\n return {\r\n bbid: bbcount++,\r\n redPages: [\r\n '5f73e3bd87768b4b119a0d81',\r\n '5f73e54b87768b4b119a0f39'\r\n ]\r\n };\r\n },\r\n methods: {\r\n\r\n hasBasebar: function () {\r\n return this.page.basebars[this.device].visible;\r\n },\r\n\r\n handleBasebarClick() {\r\n if (this.basebarLink) {\r\n window.open(this.basebarLink);\r\n Lytics.TriggerLinkClick({ url: this.basebarLink, page_number: this.page.page_num });\r\n }\r\n },\r\n generateBlockKey(pageId, index) {\r\n return `${pageId}_block_${index}`\r\n }\r\n }\r\n};\r\n</script>\r\n<style scoped>\r\n.section-container.featured-page {\r\n display: block;\r\n height: 100%;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.section-container.featured-page>.block {\r\n grid-area: unset !important;\r\n display: block;\r\n /* height: 100%; */\r\n}\r\n\r\n.section-container.featured-page>.block>.image {\r\n width: auto !important;\r\n height: available !important;\r\n\r\n}\r\n\r\n.section-container {\r\n display: grid;\r\n grid-auto-flow: dense;\r\n\r\n}\r\n\r\n.section-container.search-page {\r\n grid-auto-flow: column dense;\r\n}\r\n\r\n.section-container.search-page-vertical {\r\n /* grid-auto-flow: column dense; */\r\n /*grid-template-columns: repeat(4, 287px) !important;*/\r\n /* /*Commented since it creates a gap btwn block in category search in vertical mode.*/\r\n}\r\n\r\n\r\n.section-container.bg-red {\r\n background-color: #ED1C24;\r\n}\r\n\r\n.section-container.bg-red .basebar {\r\n background-color: #FFF;\r\n margin: 0 -1px;\r\n width: calc(100% + 2px);\r\n height: calc(100% + 2px);\r\n}\r\n\r\n.section-container.no-gap {\r\n margin-right: 0px;\r\n}\r\n\r\n.section-container.page-gap {\r\n margin-right: 20px;\r\n}\r\n\r\n.section-container.page-gap-vertical{\r\n margin-bottom:10px;\r\n}\r\n\r\n.basebar {\r\n width: 100%;\r\n order: 999;\r\n padding-top: 5px;\r\n display: block;\r\n}\r\n\r\n.basebar img {\r\n width: 100%;\r\n}\r\n\r\n.basebar p {\r\n font-size: 6px;\r\n text-align: center;\r\n padding: 0 5px;\r\n line-height: 1.2;\r\n}\r\n\r\n.basebar.clickable {\r\n cursor: pointer;\r\n}\r\n\r\n[mode='tablet'] .basebar,\r\n[mode='mobile'] .basebar,\r\n.column-view .basebar {\r\n padding-bottom: 5px;\r\n}\r\n\r\n.section-container.mar-b {\r\n margin-bottom: 10px;\r\n}\r\n\r\n.overlay {\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n position: absolute;\r\n}\r\n\r\n.basebar {\r\n\r\n position: relative;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./flyerSection.component.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./flyerSection.component.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./flyerSection.component.vue?vue&type=template&id=d7348722&scoped=true&\"\nimport script from \"./flyerSection.component.vue?vue&type=script&lang=js&\"\nexport * from \"./flyerSection.component.vue?vue&type=script&lang=js&\"\nimport style0 from \"./flyerSection.component.vue?vue&type=style&index=0&id=d7348722&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d7348722\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div\r\n class=\"responsive-grid\"\r\n :class=\"{'update':zIndex, 'update2':!zIndex, 'column-view': columnView, 'no-gap': noGapAttr}\"\r\n :flyer-orientation=\"flyerOrientation\"\r\n :style=\"currentGridStyle\"\r\n >\r\n <flyer-section v-for=\"(p,i) in flyerPages\"\r\n :key=\"p.id + '_' + i\"\r\n :page=\"p\"\r\n :prevDocumentName=\"i > 0 ? flyerPages[i - 1].documentName : null\"\r\n :device=\"displayMode\"\r\n :index=\"i\"\r\n :page-num=\"p.page_num\"\r\n :root-scroll-container=\"rootScrollContainer\"\r\n ></flyer-section>\r\n <!-- div class=\"trans-dot\" :style=\"dotStyle\"></div -->\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\n// import $ from \"jquery\";\r\n//import { debounce } from \"lodash\";\r\nimport FlyerSection from \"./flyerSection.component.vue\";\r\n//import Page from \"@/classes/Page\";\r\nimport {mapState, mapGetters} from 'vuex';\r\nexport default {\r\n components: {\r\n FlyerSection,\r\n },\r\n props: [\r\n \"flyerPages\",\r\n \"rootScrollContainer\"\r\n ],\r\n\r\n computed: {\r\n ...mapState(['columnView']),\r\n ...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n ...mapGetters('config', ['branding', 'features', \"rootStyle\"]),\r\n ...mapState('scale', ['currentScale']),\r\n\r\n pageCount(){\r\n return this.flyerPages.length;\r\n },\r\n\r\n noGapAttr(){\r\n return this.flyerPages.some(page=> page.noGapAfterPage) && this.flyerOrientation == 'horizontal'\r\n },\r\n\r\n currentGrid() {\r\n switch (this.displayMode){\r\n case 'mobile':\r\n return this.gridPhone;\r\n break;\r\n\r\n case 'tablet':\r\n return this.gridTablet;\r\n break;\r\n }\r\n return this.gridDesktop;\r\n },\r\n\r\n currentLayoutDirection(){\r\n return this.flyerOrientation == 'vertical'? this.LayoutDirections.VERTICAL : this.LayoutDirections.HORIZONTAL;\r\n },\r\n\r\n dotStyle(){\r\n return {\r\n top: '20px',\r\n left: `${this.dotLeft}px`\r\n }\r\n },\r\n\r\n currentGridStyle: function () {\r\n const styles = {\r\n 0: {\r\n gridTemplateColumns: `repeat(${this.flyerPages.length},max-content)`\r\n },\r\n 1: {\r\n gridTemplateRows: `repeat(${this.flyerPages.length},max-content)`\r\n }\r\n };\r\n return styles[this.currentLayoutDirection];\r\n },\r\n\r\n narrowBroadOffset() {\r\n // TODO: if this is a narrow broad ratio flyer\r\n return this.size.outerWidth < 930 ? 0 : -0.5;\r\n }\r\n /*gridStyles:function(){\r\n return {\r\n 0: {\r\n gridTemplateColumns: `repeat(${this.flyerPages.length},max-content)`,\r\n transform:`scale(${this.currentScale})`\r\n },\r\n 1: {\r\n gridTemplateRows: `repeat(${this.flyerPages.length},max-content)`,\r\n transform:`scale(${this.zoomLevel + this.mobileGridDefaultScale})`\r\n }\r\n };\r\n },\r\n currentDevice: function () {\r\n //Page.SetMode(this.currentGrid.name);\r\n //Page.UpdatePageBounds();\r\n return this.currentGrid.name;\r\n },*/\r\n },\r\n\r\n data: function () {\r\n return {\r\n LayoutDirections: {\r\n HORIZONTAL: 0,\r\n VERTICAL: 1,\r\n },\r\n //currentLayoutDirection: 0,\r\n // gridStyles: {\r\n // 0: {\r\n // gridTemplateColumns: `repeat(${this.flyerPages.length},max-content)`,\r\n // transform:`scale(${this.gridScale})`\r\n // },\r\n // 1: {\r\n // gridTemplateRows: `repeat(${this.flyerPages.length},max-content)`,\r\n // transform:`scale(${this.gridScale})`\r\n // },\r\n // },\r\n allBlocks: [],\r\n activeSearch: false,\r\n blocksWithoutBasebars: [],\r\n blocks: [],\r\n winWidth: undefined,\r\n winHeight: undefined,\r\n pxRatio: 1,\r\n gridDesktop: undefined,\r\n gridPhone: undefined,\r\n gridTablet: undefined,\r\n gridWidth: undefined,\r\n zIndex: false,\r\n visibleBlocks: [],\r\n /*currentGrid: {\r\n name: \"desktop\",\r\n },*/\r\n desktopGridDefaultScale: 1,\r\n mobileGridDefaultScale: 1,\r\n gridScale: 0,\r\n gridStyle2: {\r\n transform: \"\",\r\n width: \"\",\r\n },\r\n fixedBasebars: [],\r\n gridPadding: {\r\n top: 25,\r\n left: 0,\r\n },\r\n blockSize: {\r\n width: 281,\r\n height: 267,\r\n },\r\n dotLeft: 0\r\n };\r\n },\r\n mounted() {\r\n this.createDesktopGrid();\r\n // console.log(\"gridDesktop\", this.gridDesktop);\r\n this.createPhoneGrid();\r\n // console.log(\"gridPhone\", this.gridPhone);\r\n this.createTabletGrid();\r\n // console.log(\"gridTablet\", this.gridTablet);\r\n\r\n /*const container = document.querySelector('.grid-container');\r\n const clipper = document.querySelector('.grid-scale-clipper');\r\n const grid = document.querySelector('#resp-grid');\r\n\r\n container.addEventListener('scroll', () => {\r\n const clipperLeft = clipper.getBoundingClientRect().left;\r\n const gridLeft = grid.getBoundingClientRect().left;\r\n const origin = (Math.abs( clipperLeft ) + (clipperLeft - gridLeft) + window.innerWidth/2) * (1 / this.currentScale);\r\n this.dotLeft = origin;\r\n //this.$store.commit('scale/SET_TRANSFORM_ORIGIN', origin);\r\n //console.log('GridLeft Diff:', clipperLeft - gridLeft);\r\n //grid.style.left = (clipperLeft - gridLeft) + 'px';\r\n })*/\r\n\r\n\r\n // this.windowResized();\r\n //let targetGrid = this.selectGrid();\r\n //this.currentGrid = targetGrid;\r\n\r\n /*setTimeout(() => {\r\n this.desktopGridDefaultScale = Page.GetBaseScale();\r\n }, 100)*/\r\n\r\n // this.switchGrid(targetGrid, false);\r\n\r\n // window.addEventListener(\"resize\", debounce(this.windowResized,200));\r\n },\r\n methods: {\r\n\r\n createDesktopGrid: function () {\r\n this.gridDesktop = this.createGrid(\"desktop\", 5, 5, 0, 0);\r\n },\r\n createPhoneGrid: function () {\r\n this.gridPhone = this.createGrid(\"mobile\", 0, 3, 600, 1);\r\n },\r\n createTabletGrid: function () {\r\n this.gridTablet = this.createGrid(\"tablet\", 0, 5, 800, 1);\r\n // this.gridTablet = this.createGrid(\"tablet\", 0, 5, 1600, 1);\r\n },\r\n createGrid: function (\r\n name,\r\n rowsPerGroup,\r\n countPerRow,\r\n breakpoint,\r\n direction\r\n ) {\r\n let g = [];\r\n let columnCount =\r\n direction == 0 ? countPerRow * this.pageCount : countPerRow;\r\n if (rowsPerGroup == 0) rowsPerGroup = this.blocks.length;\r\n // console.log(\"rows per group\", rowsPerGroup);\r\n for (let i = 0; i < rowsPerGroup; i++) {\r\n g[i] = [];\r\n for (let j = 0; j < columnCount; j++) g[i][j] = -1;\r\n }\r\n return {\r\n name: name,\r\n breakpoint: breakpoint,\r\n layout: g,\r\n rowsPerGroup: rowsPerGroup,\r\n countPerRow: countPerRow,\r\n direction: direction,\r\n };\r\n },\r\n\r\n isMobile: function () {\r\n let check = false;\r\n (function (a) {\r\n if (\r\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(\r\n a\r\n ) ||\r\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\r\n a.substr(0, 4)\r\n )\r\n )\r\n check = true;\r\n })(navigator.userAgent || navigator.vendor || window.opera);\r\n return check;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style>\r\n.responsive-grid {\r\n width: fit-content;\r\n transform-origin: top left;\r\n background-color: #fff;\r\n /* transition: transform 0.2s; */\r\n /* overflow: auto; */\r\n position: relative;\r\n /* height: 100%; */\r\n /*top: -13px;*/\r\n /* top: 0; */\r\n display: grid;\r\n column-gap: 20px;\r\n /* row-gap: 20px; */\r\n transition: 0.2s transform;\r\n}\r\n\r\n.no-gap{\r\n column-gap:0 !important;\r\n}\r\n.section-container {\r\n /* box-shadow:0 0 10px rgba(0,0,0,0.5); */\r\n}\r\n.padding-filler {\r\n position: relative;\r\n}\r\n\r\n.column-view {\r\n /* max-width: 1200px; */\r\n margin: 0 auto;\r\n width: 100%;\r\n}\r\n\r\n.trans-dot{\r\n position: absolute;\r\n width: 40px;\r\n height: 40px;\r\n background-color: red;\r\n border: solid 2px #fff;\r\n border-radius: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 9999;\r\n}\r\n\r\n@media screen and (min-width: 628px) {\r\n .responsive-grid {\r\n /*top: -13px;*/\r\n /* top: -12px; */\r\n }\r\n}\r\n@media screen and (min-width: 1256px) {\r\n .responsive-grid {\r\n /*top: -15px;*/\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./responsiveGrid.component.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./responsiveGrid.component.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./responsiveGrid.component.vue?vue&type=template&id=1de249ae&\"\nimport script from \"./responsiveGrid.component.vue?vue&type=script&lang=js&\"\nexport * from \"./responsiveGrid.component.vue?vue&type=script&lang=js&\"\nimport style0 from \"./responsiveGrid.component.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.features.enhancedSearch)?_c('div',{staticClass:\"wpr search-results-wrapper\",class:{\n\t'col': _vm.columnView,\n\t'search-open': _vm.showMobileSearchBar,\n\tdisabled: _vm.tourVisible\n}},[_c('div',{staticClass:\"search-results\"},[(!_vm.hits.length && !_vm.loading)?_c('div',{staticClass:\"no-results\"},[_vm._v(\" \"+_vm._s(_vm.content.search.noResultsMessage)+\" Â \"),_c('span',{staticClass:\"queryMsg\"},[(_vm.getUrlParameter('language') === 'en')?_c('span',[_vm._v(\"\\\"\")]):_c('span',[_vm._v(\" <<\")]),_vm._v(_vm._s(_vm.query)),(_vm.getUrlParameter('language') === 'en')?_c('span',[_vm._v(\"\\\"\")]):_c('span',[_vm._v(\">>\")]),_vm._v(\"...\")]),_c('div',{staticClass:\"no-results-suggestions\"},_vm._l((_vm.content.search.noResults),function(item){return _c('div',{key:item.title,staticClass:\"suggestion-element\"},[_c('span',{staticClass:\"no-results-title\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('p',{staticClass:\"no-results-message\"},[_vm._v(\" \"+_vm._s(item.message)+\" \")])])}),0)]):(_vm.hits.length)?_c('scroll-container',{staticClass:\"search-results\",attrs:{\"id\":\"search-scroll-container\",\"align\":_vm.flyerOrientation == 'vertical' ? 'center' : 'left',\"enable-scroll-buttons\":_vm.displayMode != 'mobile',\"fit-axis\":_vm.flyerOrientation == 'horizontal' ? 'y' : 'x',\"orientation\":_vm.flyerOrientation,\"zoom-level\":_vm.zoomLevel},on:{\"contentResize\":_vm.onResize,\"resize\":_vm.onScrollContainerResize}},[_c('responsive-grid',{attrs:{\"id\":\"resp-grid\",\"search-results\":true,\"root-scroll-container\":\"search-scroll-container\",\"flyer-pages\":_vm.generateResultsPageFromHits(_vm.hits)}})],1):_vm._e()],1)]):_c('div',{staticClass:\"wpr search-results-wrapper\",class:{\n\t'col': _vm.columnView,\n\t'search-open': _vm.showMobileSearchBar,\n\tdisabled: _vm.tourVisible\n}},[(_vm.noResults)?_c('div',{staticClass:\"no-results\"},[_vm._v(\" \"+_vm._s(_vm.content.search.noResultsMessage)+\" Â \"),_c('span',{staticClass:\"queryMsg\"},[(_vm.getUrlParameter('language') === 'en')?_c('span',[_vm._v(\"\\\"\")]):_c('span',[_vm._v(\" <<\")]),_vm._v(_vm._s(_vm.query)),(_vm.getUrlParameter('language') === 'en')?_c('span',[_vm._v(\"\\\"\")]):_c('span',[_vm._v(\">>\")]),_vm._v(\"...\")]),_c('div',{staticClass:\"no-results-suggestions\"},_vm._l((_vm.content.search.noResults),function(item){return _c('div',{key:item.title,staticClass:\"suggestion-element\"},[_c('span',{staticClass:\"no-results-title\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('p',{staticClass:\"no-results-message\"},[_vm._v(\" \"+_vm._s(item.message)+\" \")])])}),0)]):_c('scroll-container',{staticClass:\"search-results\",attrs:{\"id\":\"search-scroll-container\",\"align\":_vm.flyerOrientation == 'vertical' ? 'center' : 'left',\"enable-scroll-buttons\":_vm.displayMode != 'mobile',\"fit-axis\":_vm.flyerOrientation == 'horizontal' ? 'y' : 'x',\"orientation\":_vm.flyerOrientation,\"zoom-level\":_vm.zoomLevel},on:{\"contentResize\":_vm.onResize,\"resize\":_vm.onScrollContainerResize}},[_c('responsive-grid',{attrs:{\"id\":\"resp-grid\",\"search-results\":true,\"root-scroll-container\":\"search-scroll-container\",\"flyer-pages\":_vm.resultsPage}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",staticClass:\"scroll-container\",class:{poweredByTCWrapper: _vm.poweredByTC},attrs:{\"tabindex\":\"0\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }return _vm.scrollLeft.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }return _vm.scrollRight.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }return _vm.scrollUp.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }return _vm.scrollDown.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"-\",undefined,$event.key,undefined)){ return null; }return _vm.zoomOut.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==91){ return null; }return _vm.handleCmd($event)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==93){ return null; }return _vm.handleCmd($event)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==224){ return null; }return _vm.handleCmd($event)}],\"keyup\":[function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==187){ return null; }return _vm.zoomIn.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==61){ return null; }return _vm.zoomIn.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==107){ return null; }return _vm.zoomIn.apply(null, arguments)}]}},[_c('div',{ref:\"touchLayer\",staticClass:\"touch-layer\",class:_vm.isScrolling? 'scrolling':''},[_c('div',{ref:\"content\",staticClass:\"scroll-item\"},[_vm._t(\"default\")],2)]),(_vm.enableScrollBars)?_c('scroll-bar',{class:{ show: _vm.showScrollBar, active: !!Math.round(_vm.maxScrollX), alwaysShow : _vm.alwaysShowScroll },attrs:{\"mode\":\"horizontal\",\"max\":_vm.maxScrollX,\"value\":_vm.scrollX,\"thumb-size\":_vm.xViewPerc},on:{\"change\":_vm.onScrollChange,\"scrollState\":_vm.handleScrollState},scopedSlots:_vm._u([{key:\"thumb-content\",fn:function(){return [_vm._t(\"scroll-thumb-x\")]},proxy:true}],null,true)}):_vm._e(),(_vm.enableScrollBars)?_c('scroll-bar',{class:{ show: _vm.showScrollBar, active: !!Math.round(_vm.maxScrollY), alwaysShow : _vm.alwaysShowScroll },attrs:{\"mode\":\"vertical\",\"max\":_vm.maxScrollY,\"value\":_vm.scrollY,\"thumb-size\":_vm.yViewPErc},on:{\"change\":_vm.onScrollChange,\"scrollState\":_vm.handleScrollState},scopedSlots:_vm._u([{key:\"thumb-content\",fn:function(){return [_vm._t(\"scroll-thumb-y\")]},proxy:true}],null,true)}):_vm._e(),_c('span',{class:{ 'arrow horizontal left': true, 'is-visible': _vm.leftArrowVisible && _vm.enableScrollButtons, transparency: _vm.hasTransparentNavArrows },on:{\"click\":_vm.scrollLeft}}),_c('span',{class:{ 'arrow horizontal right': true, 'is-visible': _vm.rightArrowVisible && _vm.enableScrollButtons, transparency: _vm.hasTransparentNavArrows },on:{\"click\":_vm.scrollRight}}),_c('span',{class:{ 'arrow vertical up': true, 'is-visible': _vm.upArrowVisible && _vm.enableScrollButtons, transparency: _vm.hasTransparentNavArrows },on:{\"click\":_vm.scrollUp}}),_c('span',{class:{ 'arrow vertical down': true, 'is-visible': _vm.downArrowVisible && _vm.enableScrollButtons, transparency: _vm.hasTransparentNavArrows },on:{\"click\":_vm.scrollDown}}),(this.language === 'en')?_c('span',[(_vm.scrollToTopVisible && _vm.enableScrollToTopButton)?_c('div',{staticClass:\"toTheTop\",on:{\"click\":_vm.scrollToTop}}):_vm._e()]):_c('span',[(_vm.scrollToTopVisible && _vm.enableScrollToTopButton)?_c('div',{staticClass:\"toTheTopFr\",on:{\"click\":_vm.scrollToTop}}):_vm._e()]),( _vm.poweredByTCVisible)?_c('PoweredByTC'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable no-case-declarations */\r\n\r\nimport Hammer from 'hammerjs';\r\n\r\n/**\r\n * Recalculate Child x,y to match constraints of parent\r\n * @param pRect - Parent Rect\r\n * @param cRect - Child REct\r\n * @returns {*}\r\n */\r\nconst constrainRect = (pRect, cRect, align = 'center') => {\r\n\r\n\t//console.log('Constrain Rect: childRect:', Object.assign({}, cRect), ' pRect:', pRect)\r\n\r\n\tconst trans = rectToJSON(cRect);\r\n\r\n\t//Constrain left scroll\r\n\tif( cRect.width < pRect.width && align == 'center'){\r\n\t\tconst pcx = pRect.x + (pRect.width - cRect.width) / 2;\r\n\t\tif(cRect.x > pcx || cRect.width < pRect.width){\r\n\t\t\ttrans.x += pcx - cRect.x;\r\n\t\t}\r\n\t} else {\r\n\t\tif(cRect.x > pRect.x || cRect.width < pRect.width){\r\n\t\t\ttrans.x += pRect.x - cRect.x;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t//If the child is wider than the parent and scrolled past the right right most edge\r\n\tif(cRect.right < pRect.right && cRect.width >= pRect.width){\r\n\t\ttrans.x += (pRect.right - cRect.right);\r\n\t}\r\n\r\n\tif(cRect.y > pRect.y || cRect.height < pRect.height){\r\n\t\ttrans.y += pRect.y - cRect.y;\r\n\t}\r\n\r\n\tif(cRect.bottom < pRect.bottom && cRect.height >= pRect.height){\r\n\t\ttrans.y += (pRect.bottom - cRect.bottom);\r\n\t}\r\n\r\n\t//console.log('Constrain Rect: trans:', trans)\r\n\r\n\treturn trans;\r\n}\r\n\r\n\r\n/*const calcRectTransform = (rect, curTrans, newTrans) => {\r\n\r\n\tconst mTrans = Object.assign({}, rect, curTrans, newTrans);\r\n\r\n\tconst scale = (1 / curTrans.scale) * mTrans.scale; //normalize scale\r\n\r\n\t//console.log('calcRectTransform: childRect:', Object.assign({}, rect), ' scale:', scale)\r\n\r\n\r\n\r\n\r\n\tconst width = rect.width * scale;\r\n\tconst height = rect.height * scale;\r\n\r\n\tlet x = mTrans.x;\r\n\tlet y = mTrans.y;\r\n\r\n\tconst ox = (width - rect.width) * ((-rect.x + mTrans.ox) / rect.width );\r\n\tconst oy = (height - rect.height) * ((-rect.y + mTrans.oy) / rect.height );\r\n\tx -= ox;\r\n\ty -= oy;\r\n\r\n\treturn rectToJSON({x,y,width,height});\r\n}*/\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nconst isEqualObj = (obj1, obj2) => {\r\n\tconst allKeys = Object.assign({}, obj1, obj2);\r\n\tfor(let p in allKeys){\r\n\t\tif(obj1[p] != obj2[p])return false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\n/*\r\nconst compareRects = (r1, r2, cmpr = ['x', 'y', 'width', 'height']) =>{\r\n\tfor(let p of cmpr){\r\n\t\tconsole.log(`compare ${p}:`, r1[p] , ' == ', r2[p]);\r\n\t\tif(r1[p] != r2[p]) return false;\r\n\t}\r\n\r\n\treturn true;\r\n}\r\n*/\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nconst getRelRect = (r1, r2, scale) => {\r\n\tconst rScale = 1 / scale;\r\n\tconst x = (r1.x - r2.x) * rScale;\r\n\tconst y = (r1.y - r2.y) * rScale;\r\n\tconst width = r1.width * rScale;\r\n\tconst height = r1.width * rScale;\r\n\tconst top = y;\r\n\tconst left = x;\r\n\tconst right = x + width;\r\n\tconst bottom = y + height;\r\n\treturn {x, y, width, height, top, bottom, left, right};\r\n}\r\n\r\nconst rectToJSON = (rect) => {\r\n\tconst x = rect.x;\r\n\tconst y = rect.y;\r\n\tconst width = rect.width;\r\n\tconst height = rect.height;\r\n\tconst top = y;\r\n\tconst left = x;\r\n\tconst right = x + width;\r\n\tconst bottom = y + height;\r\n\r\n\t//console.log('rectToJSON:', {x, y, width, height, top, bottom, left, right})\r\n\r\n\treturn {x, y, width, height, top, bottom, left, right};\r\n}\r\n\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction traceObj(o, tab = ''){\r\n\tfor(let p in o){\r\n\t\tconst val = o[p];\r\n\t\tconsole.log(tab + p + ' = ' + val);\r\n\t}\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction inertia(t, b, c, d) {\r\n\tlet ts = (t /= d) * t, tc = ts * t;\r\n\treturn b + c * (-1 * ts * ts + 4 * tc + -6 * ts + 4 * t);\r\n}\r\n\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction easeOutCubic(t, b, c, d) {\r\n\tt /= d;\r\n\tt--;\r\n\treturn c*(t*t*t + 1) + b;\r\n}\r\n\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction easeOutQuint (t, b, c, d) {\r\n\tt /= d;\r\n\tt--;\r\n\treturn c*(t*t*t*t*t + 1) + b;\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction easeOutSine(t, b, c, d) {\r\n\treturn c * Math.sin(t/d * (Math.PI/2)) + b;\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction easeOutExpo(t, b, c, d) {\r\n\treturn c * ( -Math.pow( 2, -10 * t/d ) + 1 ) + b;\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction easeOutCirc(t, b, c, d) {\r\n\tt /= d;\r\n\tt--;\r\n\treturn c * Math.sqrt(1 - t*t) + b;\r\n}\r\n\r\n\r\n/**\r\n *\r\n * @param t - Current Time\r\n * @param b - Start Value\r\n * @param c - Change in value\r\n * @param d - Duration\r\n * @returns {*}\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\nfunction easeOutQuad (t, b, c, d) {\r\n\tt /= d;\r\n\treturn -c * t*(t-2) + b;\r\n}\r\n\r\nexport default class ScrollZoom{\r\n\tconstructor(vue) {\r\n\r\n\t\tconst parentDom = vue.$refs.container;\r\n\t\tconst childDom = vue.$refs.content;\r\n\r\n\t\tthis.vue = vue;\r\n\t\tthis.container = parentDom;\r\n\t\tthis.content = childDom;\r\n\t\tthis.parentRect = rectToJSON(parentDom.getBoundingClientRect());\r\n\t\tthis.childRect = rectToJSON(childDom.getBoundingClientRect());\r\n\t\tthis.transAnimId = null;\r\n\t\tthis.resizeAnimId = null;\r\n\t\tthis.maxWidth = null;\r\n\r\n\t\tthis.pr = 1 / window.devicePixelRatio;\r\n\t\tthis.enabled = true;\r\n this.pinched = 0;\r\n\t\tthis.minScale = 0.125;\r\n\r\n\t\tthis.emitChange = true;\r\n\r\n\t\tthis.pendingEvents = {};\r\n\r\n\t\tthis.zoom = 0;\r\n\r\n\t\tthis.fitAxis = 'y'; //x or y\r\n\r\n\t\tthis.align = 'center';\r\n\r\n\t\tthis.velocity = null;\r\n\r\n\t\t//this.dot = document.getElementById('dot');\r\n\t\tthis.hammer = new Hammer(vue.$refs.touchLayer);\r\n\t\tthis.transform = {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0,\r\n\t\t\tscale: 1,\r\n\t\t\tox: 0,\r\n\t\t\toy: 0\r\n\t\t}\r\n\t\t\r\n\t\tthis.observer = new ResizeObserver(this._onResize);\r\n\t\t\r\n\t\tthis.observer.observe(this.container);\r\n\t\tthis.observer.observe(this.content);\r\n\r\n\t\tthis.applyTransform({}, {resize:this});\r\n\r\n\t\tthis.hammer.get('pinch').set({enable: true});\r\n\t\tthis.hammer.get('pan').set({threshold: 0});\r\n\t\t//this.hammer.get('press').set({time: 0, threshold: 100});\r\n\t\tthis.pStart = 0;\r\n\t\tthis.tempX = 0;\r\n\t\tthis.tempY = 0;\r\n\t\tthis.pdt = {x:0, y:0}\r\n\t\tthis.hammer.on('pinchstart', (e) => {\r\n\t\t\t//e.preventDefault();\r\n\t\t\t\r\n\t\t\tthis.pdt.x = 0;\r\n\t\t\tthis.pdt.y = 0;\r\n\t\t\tthis.pStart = this.zoom;\r\n\t\t\tthis.applyTransform({ox:e.center.x, oy:e.center.y}, {touchstart:this})\r\n\t\t})\r\n\r\n\t\tthis.hammer.on('pinchend pinchcancel', (e) => {\r\n\t\t\tthis.applyTransform({ox:e.center.x, oy:e.center.y}, {touchend:this})\r\n\t\t})\r\n\r\n\t\tthis.hammer.on('pinch', (e) => {\r\n\t\t\tconst xd = e.deltaX - this.pdt.x;\r\n\t\t\tconst yd = e.deltaY - this.pdt.y;\r\n\t\t\tthis.pdt.x = e.deltaX;\r\n\t\t\tthis.pdt.y = e.deltaY;\r\n\t\t\tthis.zoom = this.pStart + (e.scale - 1);\r\n\t\t\tthis.pinched = 5;\r\n\t\t\tthis.applyTransform({'+x': xd, '+y': yd, ox:e.center.x, oy:e.center.y}, {zoom:this})\r\n\t\t})\r\n\t\tthis.hammer.on('panstart', this._inputStart);\r\n\t\tthis.hammer.on('pan', this._inputEvent);\r\n\t\tthis.hammer.on('panend pancancel', this._inputEnd);\r\n\r\n\t\tvue.$refs.touchLayer.addEventListener('touchstart', () => {\r\n\t\t\tthis.velocity = null;\r\n\t\t})\r\n\r\n\t\tvue.$refs.touchLayer.addEventListener('touchcancel', () => {\r\n\t\t\tif(!this.velocity){\r\n\t\t\t\tthis.applyTransform({}, {'touchend':true})\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.container.addEventListener('wheel', (e) => {\r\n\r\n\t\t\tconst prevent = () => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.returnValue = false;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.applyTransform({'-x':e.deltaX, '-y':e.deltaY}, {'wheelScroll':e})\r\n\r\n\t\t\tif(this.getScrollY() != 0 && this.getScrollY() != this.getScrollMaxY()){\r\n\t\t\t\t//console.log('Prevent wheel propagation')\r\n\t\t\t\treturn prevent();\r\n\t\t\t}\r\n\r\n\t\t\tif(this.getScrollX() != 0 && this.getScrollX() != this.getScrollMaxX()){\r\n\t\t\t\t//console.log('Prevent wheel propagation')\r\n\t\t\t\treturn prevent();\r\n\t\t\t}\r\n\r\n\t\t}, {passive: false})\r\n\r\n\t\t/*this.content.addEventListener('transitionend', (e) => {\r\n\t\t\tif(e.target == this.content){\r\n\t\t\t\tthis.childRect = rectToJSON(this.content.getBoundingClientRect());\r\n\t\t\t\tthis.applyTransform();\r\n\t\t\t\t//console.log('ScrollZoom Transition End:', e)\r\n\t\t\t}\r\n\r\n\t\t}, {passive: true})*/\r\n\r\n\t}\r\n\t_inputStart = (e) => {\r\n\r\n\t\tif(!this.enabled)return;\r\n\r\n\t\tthis.velocity = null;\r\n\r\n\t\tthis.tempX = this.transform.x || 0;\r\n\t\tthis.tempY = this.transform.y || 0;\r\n\r\n\t\t//console.log('_inputStart:', e.type, ' tempX:', this.tempX, ' tempY:', this.tempY)\r\n\r\n\t\tthis.zStart = this.zoom;\r\n\r\n\t\tconst trans = {};\r\n\t\tconst emit = {'touchstart': this}\r\n\r\n\t\temit[e.type] = this;\r\n\r\n\t\t// if(e.type == 'pinchstart'){\r\n\t\t// \tthis.pdt.x = 0;\r\n\t\t// \tthis.pdt.y = 0;\r\n\t\t// \tthis.pStart = this.zoom;\r\n\t\t// \tthis.applyTransform({ox:e.center.x, oy:e.center.y}, {touchstart:this})\r\n\t\t// }\r\n\r\n\t\tthis.applyTransform(trans, emit);\r\n\t}\r\n\t_inputEvent = (e) => {\r\n\r\n\t\tif(!this.enabled)return;\r\n\t\t//console.log('_inputEvent:', e.type)\r\n\t\tconst trans = {};\r\n\t\tconst emit = {};\r\n\r\n\t\tthis.velocity = null;\r\n\r\n\t\temit[e.type] = this;\r\n\r\n\t if(!this.pinched) {\r\n\t\t\ttrans.x = e.deltaX + this.tempX;\r\n\t\t\ttrans.y = e.deltaY + this.tempY;\r\n\t\t} else {\r\n\t\t\tthis.pinched--;\r\n\t\t}\r\n\r\n\t\tthis.applyTransform(trans, emit);\r\n\t}\r\n\r\n\t_inputEnd = (e) => {\r\n\t\tif(!this.enabled)return;\r\n\t\t//console.log('_inputEnd:', e.type)\r\n\t\tconst emit = {'touchend': this}\r\n\t\temit[e.type] = this;\r\n\r\n\t\tif(e.overallVelocity){\r\n\t\t\tconst vx = e.velocityX * 20;\r\n\t\t\tconst vy = e.velocityY * 20;\r\n\t\t\tthis.velocity = {\r\n\t\t\t\tx: vx,\r\n\t\t\t\ty: vy,\r\n\t\t\t\ttx: 0,\r\n\t\t\t\tty: 0\r\n\t\t\t};\r\n\t\t\t//console.log('overallVwelocity:',e)\r\n\t\t}\r\n\r\n\t\t//console.log('Touch End:', e);\r\n\r\n\t\t/*const trans = {};\r\n\r\n\t\ttrans.x = e.deltaX + this.tempX;\r\n\t\ttrans.y = e.deltaY + this.tempY;*/\r\n\r\n\t\t//let ox = this.parentRect.x + this.parentRect.width/2;\r\n\t\t//let oy = this.parentRect.y + this.parentRect.height/2;\r\n\r\n\t\tthis.applyTransform({}, emit);\r\n\t}\r\n\r\n\t_onResize = (entries) => {\r\n\t\tthis.searchInputFocused = this.vue.$store.getters.isSearchInputFocused;\r\n\t\tif(this.searchInputFocused) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst events = {\r\n\t\t\tresize: this\r\n\t\t}\r\n\t\tfor(const entry of entries){\r\n\t\t\tif(entry.contentRect){\r\n\t\t\t\tif(entry.target == this.container){\r\n\t\t\t\t\tthis.parentRect = rectToJSON(entry.contentRect);\r\n\t\t\t\t\tevents.containerResize = this;\r\n\t\t\t\t} else if(entry.target == this.content) {\r\n\t\t\t\t\tthis.childRect = rectToJSON(entry.contentRect);\r\n\t\t\t\t\tevents.contentResize = this;\r\n\t\t\t\t\t//console.log('Content Size Change: w:', this.childRect.width, ' h:', this.childRect.height)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//console.log('ScrollZoom onResize');\r\n\r\n\t\tlet ox = this.parentRect.x + this.parentRect.width/2;\r\n\t\tlet oy = this.parentRect.y + this.parentRect.height/2;\r\n\r\n\t\tthis.applyTransform({ox, oy}, events);\r\n\t}\r\n\r\n\tdestroy(){\r\n\t\tif(this.transAnimId != null)cancelAnimationFrame(this.transAnimId);\r\n\t\tthis.observer.disconnect();\r\n\t\tthis.hammer.destroy();\r\n\t}\r\n\r\n\tmoveContent(x, y){\r\n\t\tthis.applyTransform({x, y});\r\n\t}\r\n\r\n\tscale(s){\r\n\t\tthis.applyTransform({scale : s});\r\n\t}\r\n\tgetScale(){\r\n\t\treturn this.transform.scale;\r\n\t}\r\n\r\n\tgetCurrentScale = () => {\r\n\t\tif(this.childRect.width > this.childRect.height){\r\n\t\t\treturn this.content.offsetWidth / this.childRect.width;\r\n\t\t}\r\n\t\treturn this.content.offsetHeight/ this.childRect.height;\r\n\t}\r\n\r\n\tgetFitHeightScale(h = null){\r\n\t\tconst height = h || this.parentRect.height;\r\n\t\treturn height / this.content.offsetHeight;\r\n\t}\r\n\r\n\tfitHeight(h) {\r\n\t\tthis.scale(this.getFitHeightScale(h));\r\n\t}\r\n\r\n getFitWidthScale(w = null){\r\n\r\n\t\tconst width = w || this.parentRect.width\r\n\t\treturn width / this.content.offsetWidth;\r\n\t}\r\n\r\n\tfitWidth(w) {\r\n\t\tthis.scale(this.getFitWidthScale(w));\r\n\t}\r\n\r\n\tsetTransformOrigin(x,y){\r\n\t\tthis.applyTransform({ox:x, oy:y});\r\n\t}\r\n\r\n\tscrollTo(x, y){\r\n\t\tthis.applyTransform({x:-x, y:-y});\r\n\t}\r\n\r\n\tsetScrollX(x) {\r\n\t\tthis.applyTransform({x:-x});\r\n\t}\r\n\r\n\tsetScrollY(y) {\r\n\t\tthis.applyTransform({y:-y});\r\n\t}\r\n\r\n\tgetScrollX(){\r\n\t\treturn Math.floor(Math.abs(this.transform.x));\r\n\t}\r\n\tgetScrollY(){\r\n\t\treturn Math.floor(Math.abs(this.transform.y));\r\n\t}\r\n\r\n\tgetScrollMaxX() {\r\n\t\tconst w = Math.floor(this.content.offsetWidth * this.transform.scale);\r\n\t\treturn Math.abs(Math.min(0, this.parentRect.width - w));\r\n\t}\r\n\r\n\tgetContentWidth() {\r\n\t\treturn Math.floor(this.content.offsetWidth * this.transform.scale);\r\n\t}\r\n\tgetViewWidth() {\r\n\t\treturn this.parentRect.width;\r\n\t}\r\n\r\n\tgetScrollMaxY(){\r\n\r\n\t\tconst h = Math.floor(this.content.offsetHeight * this.transform.scale);\r\n\t\t//console.log('getScrollMaxY:', (this.parentRect.height - h));\r\n\t\t//console.log('transform.scale', this.transform.scale);\r\n\t\treturn Math.abs(Math.min(0, this.parentRect.height - h));\r\n\t}\r\n\r\n\tgetContentHeight() {\r\n\t\treturn Math.floor(this.content.offsetHeight * this.transform.scale);\r\n\t}\r\n\tgetViewHeight() {\r\n\t\treturn this.parentRect.height;\r\n\t}\r\n\r\n\tupdate(){\r\n\t\t//console.log('fitAxis:', this.fitAxis)\r\n\t\tthis.applyTransform({}, {resize:this})\r\n\t}\r\n\r\n\tapplyTransform = (transform = {}, events = {}, triggerEvents = true) => {\r\n\r\n\t\t//console.log('apply Transform:', transform, ' events:', events)\r\n\r\n\t\tif(this.transAnimId != null)cancelAnimationFrame(this.transAnimId);\r\n\r\n\t\tif(this.childRect.height <= 0 || this.childRect.width <= 0 || this.parentRect.height <= 0 || this.parentRect.width <= 0)return;\r\n\r\n\t\tconst {rect: newChildRect, transform: newTransform} = this.calcRectTransform(transform)\r\n\r\n\t\tif(triggerEvents){\r\n\t\t\tif(newChildRect.x !== this.childRect.x || newChildRect.y !== this.childRect.y){\r\n\t\t\t\tthis.pendingEvents.scroll = this;\r\n\t\t\t}\r\n\t\t\tif(newChildRect.width !== this.childRect.width || newChildRect.height !== this.childRect.height){\r\n\t\t\t\tthis.pendingEvents.resize = this;\r\n\t\t\t}\r\n\t\t\tObject.assign(this.pendingEvents, events); //Force an event\r\n\t\t}\r\n\r\n\r\n\t\tObject.assign(this.childRect, newChildRect);// this.content.getBoundingClientRect();\r\n\r\n\t\tObject.assign(this.transform, newTransform);\r\n\r\n\t\t\r\n\t\t\r\n\t\tthis.transAnimId = requestAnimationFrame(() => {\r\n\t\t\tthis.transAnimId = null;\r\n\t\t\tconst ele = this.content;\r\n\t\t\tele.style.transform = `matrix(${this.transform.scale}, 0, 0, ${this.transform.scale}, ${this.transform.x}, ${this.transform.y})`;\r\n\t\t\tthis.vue.onChange(this, Object.assign({}, this.pendingEvents));\r\n\t\t\tthis.pendingEvents = {};\r\n\t\t\tif(this.velocity){\r\n\t\t\t\tconst ease = inertia;\r\n\t\t\t\tconst vx = this.velocity.x;\r\n\t\t\t\tconst vy = this.velocity.y;\r\n\t\t\t\tconst tx = this.velocity.tx;\r\n\t\t\t\tconst ty = this.velocity.ty;\r\n\t\t\t\tlet trans = null;\r\n\t\t\t\t//const xi = this.velocity.xi;\r\n\r\n\t\t\t\tif(tx < Math.abs(vx)){\r\n\t\t\t\t\tconst t = this.velocity.tx;\r\n\t\t\t\t\tconst b = vx;\r\n\t\t\t\t\tconst c = -b;\r\n\t\t\t\t\tconst d = Math.abs(vx);\r\n\t\t\t\t\tthis.velocity.tx += d/100;\r\n\t\t\t\t\t//console.log('Ease:', ease(t, b, c, d), `t:${t}, b:${b}, c:${c}, d:${d}`);\r\n\r\n\t\t\t\t\tif(!trans){\r\n\t\t\t\t\t\ttrans = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttrans['+x'] = ease(t, b, c, d);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(ty < Math.abs(vy)){\r\n\t\t\t\t\tconst t = this.velocity.ty;\r\n\t\t\t\t\tconst b = vy;\r\n\t\t\t\t\tconst c = -b;\r\n\t\t\t\t\tconst d = Math.abs(vy);\r\n\t\t\t\t\tthis.velocity.ty += d/100;\r\n\t\t\t\t\t//console.log('Ease:', ease(t, b, c, d), `t:${t}, b:${b}, c:${c}, d:${d}`);\r\n\r\n\t\t\t\t\tif(!trans){\r\n\t\t\t\t\t\ttrans = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttrans['+y'] = ease(t, b, c, d);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//console.log(\"Trans:\", JSON.parse(JSON.stringify(trans)));\r\n\r\n\t\t\t\tif(trans && (Math.abs(trans['+x']) > 0.9 || Math.abs(trans['+y']) > 0.9)){\r\n\t\t\t\t\tthis.applyTransform(trans, {'momentum':true})\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.velocity = null;\r\n\t\t\t\t\tthis.applyTransform({}, {'touchend':true})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//console.log(JSON.parse(JSON.stringify(this.transform)) )\r\n\t\t})\r\n\t}\r\n\r\n\tapplyTransformDelta = (delta) => {\r\n\t\tconst o = {};\r\n\t\tlet prop;\r\n\t\tfor(let p in delta){\r\n\t\t\tswitch (p.charAt(0)) {\r\n\t\t\t\tcase '-':\r\n\t\t\t\t\tprop = p.slice(1);\r\n\t\t\t\t\to[prop] = this.transform[prop] - delta[p];\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase '+':\r\n\t\t\t\t\tprop = p.slice(1);\r\n\t\t\t\t\to[prop] = this.transform[prop] + delta[p];\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase '*':\r\n\t\t\t\t\tprop = p.slice(1);\r\n\t\t\t\t\to[prop] = this.transform[prop] * delta[p];\r\n\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\to[p] = delta[p];\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\treturn o;\r\n\t}\r\n\r\n\tgetChildSize = () => {\r\n\t\treturn {\r\n\t\t\twidth: this.content.offsetWidth,\r\n\t\t\theight: this.content.offsetHeight\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tcalcRectTransform = (transform) => {\r\n\r\n\t\tconst rect = rectToJSON(this.childRect);\r\n\r\n\t\t//console.log('calcRecTransform:', transform, ' child rect:', rect);\r\n\r\n\t\tconst mTrans = Object.assign({}, rect, this.transform, this.applyTransformDelta(transform));\r\n\r\n\t\t//const cRect = this.content.getBoundingClientRect();\r\n\r\n\t\t//console.log('mTrans:', mTrans)\r\n\r\n\r\n\r\n\t\t//Check for fitted scale\r\n\t\tif(this.fitAxis) {\r\n\t\t\tconst maxW = this.maxWidth? Math.min(this.parentRect.width, this.maxWidth): null;\r\n\t\t\tconst fitScale = this.fitAxis === 'y'? this.getFitHeightScale(): this.getFitWidthScale(maxW);\r\n\t\t\tmTrans.scale = fitScale + (fitScale * this.zoom);\r\n\t\t}\r\n\r\n\t\t//Check for scale limits\r\n\t\tif(mTrans.scale < this.minScale)mTrans.scale = this.minScale; //Constrain Scale\r\n\t\tif(this.maxScale && mTrans.scale > this.maxScale)mTrans.scale = this.maxScale;\r\n\r\n\r\n\r\n\t\tconst scale = this.getCurrentScale() * mTrans.scale; //normalize scale\r\n\t\tconst diffScale = mTrans.scale - this.transform.scale;\r\n\r\n\t\tconst width = rect.width * scale;\r\n\t\tconst height = rect.height * scale;\r\n\r\n\t\tlet x = mTrans.x;\r\n\t\tlet y = mTrans.y;\r\n\r\n\t\t//console.log('diffScale:', diffScale)\r\n\r\n\t\tif(x && diffScale) {\r\n\t\t\tconst ox = (width - rect.width) * ((-rect.x + mTrans.ox) / rect.width);\r\n\t\t\tx -= ox;\r\n\t\t}\r\n\r\n\t\tif(y && diffScale){\r\n\t\t\tconst oy = (height - rect.height) * ((-rect.y + mTrans.oy) / rect.height );\r\n\t\t\ty -= oy;\r\n\t\t}\r\n\r\n\t\t/*if(this.transform.y){\r\n\r\n\t\t}*/\r\n\r\n\t\t//console.log(`x: ${x}, y: ${y}`);\r\n\r\n\r\n\t\tconst nRect = roundRect(constrainRect(this.parentRect, rectToJSON({x,y,width,height}), this.align));\r\n\t\t//console.log('nRect:', nRect);\r\n\r\n\t\troundRect(mTrans);\r\n\r\n\t\treturn {rect:nRect, transform: { x:nRect.x, y:nRect.y, scale:mTrans.scale, ox:mTrans.ox, oy:mTrans.oy}};\r\n\t}\r\n\r\n}\r\n\r\nconst roundRect = (rect) => {\r\n\tconst props = ['x','y','width','height', 'top','bottom', 'ox', 'oy'];\r\n\tfor(let i=0 ; i < props.length; i++){\r\n\t\tconst p = props[i];\r\n\t\tif(!isNaN(rect[p])){\r\n\t\t\t//rect[p] = Math.ceil(rect[p]);\r\n\t\t}\r\n\t}\r\n\treturn rect;\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"scroll-bar \" + _vm.mode)},[_c('div',{ref:\"track\",staticClass:\"scroll-track\",style:(_vm.trackStyle)},[_c('div',{ref:\"scrollThumb\",staticClass:\"scroll-thumb\",style:(_vm.style)},[_vm._t(\"thumb-content\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div :class=\"`scroll-bar ${mode}`\">\r\n <div class=\"scroll-track\" ref=\"track\" :style=\"trackStyle\">\r\n <div class=\"scroll-thumb\" :style=\"style\" ref=\"scrollThumb\"><slot name=\"thumb-content\" /></div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ScrollZoom from \"@/classes/ScrollZoom\";\r\nimport Hammer from 'hammerjs';\r\nimport Lytics from \"../../classes/Lytics\";\r\nimport { mapState } from \"vuex\";\r\n\r\nexport default {\r\n name: \"ScrollBar\",\r\n props: {\r\n mode:{\r\n type: String,\r\n default: 'horizontal'\r\n },\r\n scroller: {\r\n type: ScrollZoom\r\n },\r\n max:{\r\n type: Number,\r\n default: 100\r\n },\r\n min:{\r\n type: Number,\r\n default: 0\r\n },\r\n thumbSize:{\r\n type: Number,\r\n default: null\r\n },\r\n value:{\r\n type: Number,\r\n default: 0\r\n },\r\n alwaysShow:{\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n mounted() {\r\n const mc = new Hammer(this.$refs.scrollThumb);\r\n let tempDelta = {x:0, y:0}\r\n\r\n mc.get('pan').set({direction: Hammer[this.axis == 'x'? 'DIRECTION_HORIZONTAL': 'DIRECTION_VERTICAL'], threshold: 0 });\r\n\r\n mc.on('panstart', () => {\r\n tempDelta.x = 0;\r\n tempDelta.y = 0;\r\n this.$emit('scrollState', true);\r\n })\r\n\r\n mc.on('panend pancancel', (e) => {\r\n this.$emit('scrollState', false);\r\n if (e.distance > 50) {\r\n Lytics.TriggerScrollBarClick({\r\n orientation: this.axis === 'x' ? 'horizontal' : 'vertical',\r\n page_number: this.currentPageNumber,\r\n scroll_direction: e[`delta${this.axis.toUpperCase()}`] > 0 ? 'forward' : 'backward',\r\n });\r\n }\r\n })\r\n\r\n mc.on('pan', (e) => {\r\n if(!this.$refs.track)return;\r\n const dist = this.max - this.min;\r\n const track = this.$refs.track.getBoundingClientRect();\r\n const movement = e['delta' + this.axis.toUpperCase()] - tempDelta[this.axis];\r\n\r\n tempDelta.x = e.deltaX;\r\n tempDelta.y = e.deltaY;\r\n\r\n const pDist = movement/track[this.axis === 'x'? 'width': 'height']\r\n\r\n //console.log('pDist:', pDist, ' dist:', dist);\r\n\r\n const scroll = {};\r\n scroll[`+${this.axis}`] = -dist * pDist;\r\n this.$emit('change', scroll);\r\n\r\n })\r\n },\r\n\r\n computed:{\r\n ...mapState(['currentPageNumber']),\r\n\r\n axis() {\r\n return this.mode == 'horizontal'? 'x':'y';\r\n },\r\n style(){\r\n let val;\r\n if (isNaN(this.value)) {\r\n val = ((0 - this.min) / (this.max - this.min)) * 100;\r\n } else {\r\n val = ((this.value - this.min) / (this.max - this.min)) * 100;\r\n }\r\n const axis = this.mode == 'horizontal'? 'left':'top';\r\n const style = {};\r\n\r\n style[axis] = `${val}%`;\r\n\r\n /*if(this.thumbSize) {\r\n const wh = {'horizontal': 'width', 'vertical': 'height'};\r\n const trackPerc = this.thumbSize;\r\n const percDiff = 100 - trackPerc;\r\n const thumbPerc = 100 * percDiff;\r\n style[wh[this.mode]] = `${ thumbPerc }%`;\r\n }*/\r\n\r\n\r\n return style;\r\n },\r\n\r\n trackMargin () {\r\n if(this.thumbSize) {\r\n return this.thumbSize / 2;\r\n }\r\n return 135\r\n },\r\n\r\n trackStyle() {\r\n const style = {};\r\n /*if(this.mode === 'vertical') {\r\n style['top'] = `${this.trackMargin}%`;\r\n style['bottom'] = `${this.trackMargin}%`;\r\n } else {\r\n style['left'] = `${this.trackMargin}%`;\r\n style['right'] = `${this.trackMargin}%`;\r\n }*/\r\n\r\n return style;\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n\r\n<style>\r\n :root {\r\n --scroll-bar-width: 28px;\r\n --scroll-bar-thumb-size: 135px;\r\n --scroll-bar-track-margin: 67.5px;\r\n }\r\n</style>\r\n\r\n<style scoped lang=\"scss\">\r\n .scroll-bar{\r\n position:absolute;\r\n /*border: solid 1px #545454;*/\r\n background-color: rgba(255,255,255, 0.2);\r\n display: none;\r\n pointer-events: none;\r\n &.active{\r\n display: block;\r\n transition: all 0.3s;\r\n transition-delay: 2s;\r\n }\r\n\r\n /*z-index:99999;*/\r\n transform: translateZ(0px);\r\n opacity: 0;\r\n &:hover, &.show, &.alwaysShow{\r\n transition-delay: unset;\r\n opacity: 1;\r\n }\r\n\r\n .scroll-track{\r\n position: absolute;\r\n\r\n }\r\n &.horizontal {\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: var(--scroll-bar-width);\r\n\r\n\r\n .scroll-track {\r\n height: inherit;\r\n top:0px;\r\n left: var(--scroll-bar-track-margin);\r\n right: var(--scroll-bar-track-margin);\r\n pointer-events: none;\r\n }\r\n .scroll-thumb{\r\n height: inherit;\r\n width: var(--scroll-bar-thumb-size);\r\n transform: translateX(-50%);\r\n pointer-events: all;\r\n }\r\n }\r\n &.vertical {\r\n right: 0;\r\n top:0;\r\n bottom: 0;\r\n width: var(--scroll-bar-width);\r\n height: 100%;\r\n pointer-events: all;\r\n pointer-events: all;\r\n\r\n .scroll-track {\r\n width: inherit;\r\n left:0;\r\n top: var(--scroll-bar-track-margin);\r\n bottom: var(--scroll-bar-track-margin);\r\n }\r\n\r\n .scroll-thumb{\r\n height: var(--scroll-bar-thumb-size);\r\n width: inherit;\r\n transform: translateY(-50%);\r\n }\r\n }\r\n\r\n .scroll-thumb{\r\n position:absolute;\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n border-radius: 16px;\r\n /*transition: all 0.2s;*/\r\n }\r\n }\r\n\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScrollBar.vue?vue&type=template&id=0d7d1c10&scoped=true&\"\nimport script from \"./ScrollBar.vue?vue&type=script&lang=js&\"\nexport * from \"./ScrollBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ScrollBar.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./ScrollBar.vue?vue&type=style&index=1&id=0d7d1c10&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d7d1c10\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.config.enabled)?_c('button',_vm._b({staticClass:\"btn powered-by-tc\"},'button',_vm.config.attrs,false),[_c('p',{staticClass:\"powered-by\"},[_c('span',[_vm._v(_vm._s(_vm.content.poweredByTC))]),_c('svg',{attrs:{\"viewBox\":\"58 200.9231 32 14.0996\",\"width\":\"26\",\"height\":\"14.0996\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',{attrs:{\"transform\":\"matrix(0.007233000360429286, 0, 0, -0.007233000360429286, 58.098720550537095, 218.1186828613281)\",\"fill\":\"#fff\",\"stroke\":\"none\"}},[_c('path',{attrs:{\"d\":\"M850 2060 c-156 -99 -290 -187 -297 -196 -18 -24 -18 -345 -1 -362 7 -7 43 -12 90 -12 72 0 78 -2 83 -22 2 -13 6 -180 8 -373 l3 -350 27 -80 c33 -99 59 -142 126 -210 58 -59 142 -104 241 -131 79 -22 338 -26 383 -6 l27 12 -2 187 -3 188 -120 5 c-134 6 -153 13 -202 77 l-28 36 0 331 0 331 175 5 175 5 0 190 0 190 -175 5 -175 5 -3 178 c-2 176 -3 177 -25 176 -12 -1 -150 -81 -307 -179z\"}}),_c('path',{attrs:{\"d\":\"M2159 1890 c-240 -59 -439 -225 -543 -452 -54 -117 -70 -196 -70 -338 0 -142 16 -221 70 -338 84 -185 236 -333 422 -412 169 -72 396 -80 572 -21 52 18 126 50 163 72 89 53 197 154 197 184 0 16 -37 58 -129 144 -71 66 -134 121 -141 121 -6 0 -32 -18 -57 -40 -160 -141 -392 -143 -541 -5 -249 230 -119 646 215 691 98 13 232 -32 316 -106 25 -22 52 -40 60 -40 19 0 267 262 267 282 0 21 -94 108 -165 153 -76 49 -180 91 -270 110 -102 21 -270 18 -366 -5z\"}}),_c('path',{attrs:{\"d\":\"M3609 1332 c-187 -97 -187 -367 0 -464 95 -50 217 -36 296 34 121 107 121 289 0 396 -79 70 -201 84 -296 34z\"}})])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <button v-if=\"config.enabled\" class=\"btn powered-by-tc\" v-bind=\"config.attrs\">\r\n <p class=\"powered-by\">\r\n\t\t\t\t\t<span>{{content.poweredByTC}}</span>\r\n <svg viewBox=\"58 200.9231 32 14.0996\" width=\"26\" height=\"14.0996\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g transform=\"matrix(0.007233000360429286, 0, 0, -0.007233000360429286, 58.098720550537095, 218.1186828613281)\" fill=\"#fff\" stroke=\"none\">\r\n <path d=\"M850 2060 c-156 -99 -290 -187 -297 -196 -18 -24 -18 -345 -1 -362 7 -7 43 -12 90 -12 72 0 78 -2 83 -22 2 -13 6 -180 8 -373 l3 -350 27 -80 c33 -99 59 -142 126 -210 58 -59 142 -104 241 -131 79 -22 338 -26 383 -6 l27 12 -2 187 -3 188 -120 5 c-134 6 -153 13 -202 77 l-28 36 0 331 0 331 175 5 175 5 0 190 0 190 -175 5 -175 5 -3 178 c-2 176 -3 177 -25 176 -12 -1 -150 -81 -307 -179z\"/>\r\n <path d=\"M2159 1890 c-240 -59 -439 -225 -543 -452 -54 -117 -70 -196 -70 -338 0 -142 16 -221 70 -338 84 -185 236 -333 422 -412 169 -72 396 -80 572 -21 52 18 126 50 163 72 89 53 197 154 197 184 0 16 -37 58 -129 144 -71 66 -134 121 -141 121 -6 0 -32 -18 -57 -40 -160 -141 -392 -143 -541 -5 -249 230 -119 646 215 691 98 13 232 -32 316 -106 25 -22 52 -40 60 -40 19 0 267 262 267 282 0 21 -94 108 -165 153 -76 49 -180 91 -270 110 -102 21 -270 18 -366 -5z\"/>\r\n <path d=\"M3609 1332 c-187 -97 -187 -367 0 -464 95 -50 217 -36 296 34 121 107 121 289 0 396 -79 70 -201 84 -296 34z\"/>\r\n </g>\r\n </svg>\r\n\t\t\t\t</p>\r\n </button>\r\n </template>\r\n \r\n <script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\n export default {\r\n name: \"PoweredByTC\",\r\n mixins: [featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'poweredByTC'\r\n\t\t}\r\n\t},\r\n }\r\n </script>\r\n \r\n <style lang=\"scss\">\r\n .flyer-content button.powered-by-tc {\r\n margin: 0 auto !important;\r\n cursor: default;\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n width: 155px;\r\n min-width: 150px;\r\n bottom: 0px;\r\n background: #000;\r\n height: 34px;\r\n display:flex;\r\n padding: 0 25px;\r\n min-height: unset;\r\n border-radius: 12px 12px 0 0;\r\n -webkit-tap-highlight-color: transparent;\r\n\r\n .powered-by{\r\n color: #fff;\r\n display: flex;\r\n align-items: center;\r\n font-size: 12px;\r\n span {\r\n position: unset;\r\n margin-left: 3px ;\r\n }\r\n }\r\n &:hover {\r\n filter: none;\r\n color: unset;\r\n \r\n }\r\n }\r\n button.powered-by-tc {\r\n display: none;\r\n }\r\n \r\n </style>\r\n ","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoweredByTC.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoweredByTC.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PoweredByTC.vue?vue&type=template&id=31738300&\"\nimport script from \"./PoweredByTC.vue?vue&type=script&lang=js&\"\nexport * from \"./PoweredByTC.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PoweredByTC.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div ref=\"container\" class=\"scroll-container\" :class=\"{poweredByTCWrapper: poweredByTC}\" tabindex=\"0\"\r\n v-on:keydown.left=\"scrollLeft\"\r\n v-on:keydown.right=\"scrollRight\"\r\n v-on:keydown.up=\"scrollUp\"\r\n v-on:keydown.down=\"scrollDown\"\r\n @keydown.-=\"zoomOut\"\r\n @keyup.187=\"zoomIn\"\r\n @keyup.61=\"zoomIn\"\r\n @keyup.107=\"zoomIn\"\r\n @keydown.91=\"handleCmd($event)\"\r\n @keydown.93=\"handleCmd($event)\"\r\n @keydown.224=\"handleCmd($event)\"\r\n >\r\n <div class=\"touch-layer\" :class=\"isScrolling? 'scrolling':''\" ref=\"touchLayer\">\r\n <div class=\"scroll-item\" ref=\"content\">\r\n <slot />\r\n </div>\r\n\r\n </div>\r\n\r\n <scroll-bar v-if=\"enableScrollBars\" :class=\"{ show: showScrollBar, active: !!Math.round(maxScrollX), alwaysShow : alwaysShowScroll }\"\r\n mode=\"horizontal\" :max=\"maxScrollX\" :value=\"scrollX\" @change=\"onScrollChange\" @scrollState=\"handleScrollState\"\r\n :thumb-size=\"xViewPerc\">\r\n <template #thumb-content>\r\n <slot name=\"scroll-thumb-x\" />\r\n </template>\r\n </scroll-bar>\r\n <scroll-bar v-if=\"enableScrollBars\" :class=\"{ show: showScrollBar, active: !!Math.round(maxScrollY), alwaysShow : alwaysShowScroll }\" mode=\"vertical\"\r\n :max=\"maxScrollY\" :value=\"scrollY\" @change=\"onScrollChange\" @scrollState=\"handleScrollState\"\r\n :thumb-size=\"yViewPErc\">\r\n <template #thumb-content>\r\n <slot name=\"scroll-thumb-y\" />\r\n </template>\r\n </scroll-bar>\r\n\r\n\r\n <span :class=\"{ 'arrow horizontal left': true, 'is-visible': leftArrowVisible && enableScrollButtons, transparency: hasTransparentNavArrows }\"\r\n @click=\"scrollLeft\"></span>\r\n <span :class=\"{ 'arrow horizontal right': true, 'is-visible': rightArrowVisible && enableScrollButtons, transparency: hasTransparentNavArrows }\"\r\n @click=\"scrollRight\"></span>\r\n\r\n <span :class=\"{ 'arrow vertical up': true, 'is-visible': upArrowVisible && enableScrollButtons, transparency: hasTransparentNavArrows }\"\r\n @click=\"scrollUp\"></span>\r\n <span :class=\"{ 'arrow vertical down': true, 'is-visible': downArrowVisible && enableScrollButtons, transparency: hasTransparentNavArrows }\"\r\n @click=\"scrollDown\"></span>\r\n\r\n\r\n <!-- <div v-if=\"scrollToTopVisible && enableScrollToTopButton\" class=\"toTheTop\" @click=\"scrollToTop\"/> -->\r\n <span v-if=\"this.language === 'en'\">\r\n <div v-if=\"scrollToTopVisible && enableScrollToTopButton\" class=\"toTheTop\" @click=\"scrollToTop\" />\r\n </span>\r\n <span v-else>\r\n <div v-if=\"scrollToTopVisible && enableScrollToTopButton\" class=\"toTheTopFr\" @click=\"scrollToTop\" />\r\n </span>\r\n <PoweredByTC v-if=\" poweredByTCVisible\" />\r\n \r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nconst mounted = [];\r\n\r\nimport ScrollZoom from \"@/classes/ScrollZoom\";\r\nimport ScrollBar from \"@/components/scroll-container/ScrollBar\";\r\n\r\nimport PoweredByTC from \"@/components/buttons/PoweredByTC.vue\"\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport Lytics from \"../../classes/Lytics\";\r\n\r\nexport default {\r\n name: \"ScrollContainer\",\r\n components: {ScrollBar, PoweredByTC},\r\n props: {\r\n orientation: {\r\n type: String,\r\n default: () => {\r\n return 'horizontal'\r\n }\r\n },\r\n maxWidth: {\r\n type: Number,\r\n default: () => {\r\n return 900\r\n }\r\n },\r\n align: {\r\n type: String,\r\n default: () => {\r\n return 'center'\r\n }\r\n },\r\n zoomLevel: {\r\n type: Number,\r\n default: () => {\r\n return 0;\r\n }\r\n },\r\n syncGlobalZoom: {\r\n type: Boolean,\r\n default: true\r\n },\r\n scale: {\r\n type: [Number, String],\r\n default: null\r\n },\r\n fitAxis: {\r\n type: String,\r\n default: () => {\r\n return null;\r\n }\r\n },\r\n enableScrollBars: {\r\n type: Boolean,\r\n default: true\r\n },\r\n enableScrollButtons: {\r\n type: Boolean,\r\n default: true\r\n },\r\n enableScrollToTopButton: {\r\n type: Boolean,\r\n default: true\r\n },\r\n scrollBarAutoSize: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data() {\r\n return {\r\n maxScrollX: 0,\r\n maxScrollY: 0,\r\n scrollX: 0,\r\n scrollY: 0,\r\n isScrolling: false,\r\n showScrollBar: false,\r\n contentHeight: 0,\r\n contentWidth: 0,\r\n viewHeight: 0,\r\n viewWidth: 0,\r\n tid: null,\r\n timeout: null,\r\n }\r\n },\r\n mounted() {\r\n mounted.push(this);\r\n\r\n this._sz = new ScrollZoom(this);\r\n this._sz.fitAxis = this.fitAxis;\r\n this._sz.zoom = this.zoomLevel;\r\n this._sz.maxWidth = this.maxWidth;\r\n this._sz.align = this.align;\r\n\r\n this.contentHeight = this._sz.content.offsetHeight;\r\n this.contentWidth = this._sz.content.offsetWidth;\r\n\r\n this.viewHeight = this._sz.getViewHeight();\r\n this.viewWidth = this._sz.getViewWidth();\r\n\r\n this.$refs.content.addEventListener('transitionend', (e) => {\r\n\r\n if (e.target == this.$refs.content) {\r\n this.$emit('change', this);\r\n }\r\n\r\n })\r\n\r\n this._sz.update();\r\n //this.updateScale(this._sz.getScale());\r\n\r\n\r\n setTimeout(() => {\r\n this.scroll({ y: 0, x: 0 });\r\n this.$emit('ready', this);\r\n }, 10)\r\n\r\n\r\n\r\n //console.log('Mounted ScrollContainers:', mounted);\r\n },\r\n\r\n beforeDestroy() {\r\n const index = mounted.findIndex((item) => {\r\n return item._uid == this._uid\r\n })\r\n if (index >= 0) {\r\n mounted.splice(index, 1)\r\n }\r\n\r\n this._sz.destroy();\r\n //console.log('UnMounted ScrollContainers:', mounted);\r\n },\r\n\r\n methods: {\r\n ...mapActions('scale', ['zoomIn', 'zoomOut', 'updateScale', 'setZoomLevel', 'setScrollY', 'updateScrollX', 'setManualZoom']),\r\n ...mapActions('screen', ['handleWindowResize']),\r\n ...mapActions(['setCurrentPageIndex']),\r\n\r\n handleCmd(e) {\r\n console.log(\"called handleCmd, you presed\", e.keyCode);\r\n if (e.keyCode == 187 && e.metaKey) {\r\n console.log(\"pressed command + key on mac\", e.keyCode);\r\n this.zoomIn();\r\n } else if ((e.keyCode == 189 && e.metaKey)) {\r\n console.log(\"pressed command - key on mac\", e.keyCode);\r\n this.zoomOut();\r\n }\r\n },\r\n\r\n onChange(scroller, events) {\r\n //console.log('ScrollContainer Event:', scroller)\r\n this.maxScrollX = scroller.getScrollMaxX();\r\n this.maxScrollY = scroller.getScrollMaxY();\r\n this.scrollX = scroller.getScrollX();\r\n this.scrollY = scroller.getScrollY();\r\n\r\n this.contentHeight = this._sz.content.offsetHeight;\r\n this.contentWidth = this._sz.content.offsetWidth;\r\n\r\n this.viewHeight = this._sz.getViewHeight();\r\n this.viewWidth = this._sz.getViewWidth();\r\n\r\n if (events.touchstart) {\r\n this.isScrolling = true;\r\n }\r\n\r\n if (this.isScrolling) {\r\n delete events.resize;\r\n }\r\n\r\n if (events.touchend) {\r\n this.isScrolling = false;\r\n }\r\n\r\n if (events.wheelScroll) {\r\n // const e = events.wheelScroll;\r\n // const pr = window.devicePixelRatio;\r\n // console.log((Math.abs(e.deltaX) > pr) || (Math.abs(e.deltaY) > pr))\r\n // console.log('Wheel Scroll:', events.wheelScroll);\r\n // this.isScrolling = (Math.abs(e.deltaX) > pr) || (Math.abs(e.deltaY) > pr);\r\n clearTimeout(this.timeout);\r\n this.timeout = setTimeout(() => {\r\n this.isScrolling = false;\r\n }, 250);\r\n this.isScrolling = true;\r\n }\r\n\r\n if (events.momentum) {\r\n this.isScrolling = true;\r\n }\r\n\r\n\r\n\r\n\r\n this.$emit('change', this);\r\n\r\n for (let p in events) {\r\n this.$emit(p, this);\r\n switch (p) {\r\n case 'resize': {\r\n const screenWidth = window.innerWidth;\r\n const zoomFactor = Math.pow(screenWidth / 1920, 10)\r\n const calculatedZoom = Math.max(0, Math.min(0.25, zoomFactor * 0.25));\r\n if (!this.manualZoom ) {\r\n if(this.flyerOrientation === 'vertical' && this.displayMode === 'desktop' && this.flyerDrawer) \r\n { this.setZoomLevel(calculatedZoom); } \r\n }\r\n //TODO - Investigate why this was needed, (removed to see what breaks)\r\n //this.handleWindowResize();\r\n break;\r\n }\r\n case 'zoom':\r\n //this.setZoomLevel(this._sz.zoom);\r\n break;\r\n case 'pinchend':\r\n // console.log('Pinch End Updating Scale')\r\n if (this.syncGlobalZoom) this.setZoomLevel(this._sz.zoom);\r\n this._sz.zoom = this.zoomLevel;\r\n this._sz.update();\r\n this.updateScale(this._sz.getScale());\r\n this.updateScrollX(this._sz.getScrollX());\r\n break;\r\n case 'touchend':\r\n if (this.displayMode === 'desktop') {\r\n if (this.syncGlobalZoom) this.setZoomLevel(this._sz.zoom);\r\n }\r\n break;\r\n }\r\n }\r\n this.showScrollBar = true;\r\n clearTimeout(this.scrollBarTimeoutID);\r\n this.scrollBarTimeoutID = setTimeout(() => {\r\n this.showScrollBar = false;\r\n }, 500);\r\n\r\n if (!this.additionalItemInputFocus && !this.emailInputFocus && !this.showSideBar) {\r\n // this.focus();\r\n }\r\n\r\n //console.log('maxScrollY:', this.maxScrollY, ' scrollY:', this.scrollY)\r\n\r\n },\r\n\r\n onScrollContainerZoom(scroller) {\r\n if (this.syncGlobalZoom) this.setZoomLevel(scroller.zoom);\r\n },\r\n\r\n onScrollChange(delta) {\r\n //console.log('onScrollChange Delta:', delta);\r\n this._sz.applyTransform(delta);\r\n },\r\n\r\n eventScroll(scroll, e){\r\n if (e.key === 'ArrowDown' && this.scrollY !== 0) {\r\n this.setScrollY(this.scrollY)\r\n }\r\n \r\n const prevent = () => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n e.returnValue = false;\r\n return false;\r\n }\r\n this.scroll(scroll);\r\n if (this.scrollY != 0 && this.scrollY != this.maxScrollY) {\r\n return prevent();\r\n } \r\n },\r\n\r\n scroll(scroll) {\r\n this._sz.velocity = null;\r\n this.isScrolling = false;\r\n this._sz.applyTransform(scroll);\r\n },\r\n getScroll() {\r\n return { x: this._sz.getScrollX(), y: this._sz.getScrollY() };\r\n },\r\n getController() {\r\n return this._sz;\r\n },\r\n getMaxScroll() {\r\n return { x: this._sz.getScrollMaxX(), y: this._sz.getScrollMaxY() };\r\n },\r\n\r\n handleScrollState(state) {\r\n //console.log('handleScrollState:', state)\r\n this._sz.enabled = !state;\r\n this.isScrolling = state;\r\n\r\n //this.$refs.container.focus();\r\n\r\n },\r\n\r\n scrollLeft() {\r\n Lytics.TriggerScrollButtonClick({\r\n orientation: 'horizontal',\r\n page_number: this.currentPageNumber,\r\n scroll_direction: 'backward'\r\n })\r\n if( this.features.scroll?.isFullPageScroll ) {\r\n this.$nextTick(() => {\r\n const prevPageIndex = this.currentPageIndex - 1;\r\n this.$root.$emit('trigger-scroll-to-index', prevPageIndex);\r\n }) \r\n } else {\r\n this.scroll({ '+x': 300 });\r\n }\r\n \r\n \r\n },\r\n scrollRight() {\r\n Lytics.TriggerScrollButtonClick({\r\n orientation: 'horizontal',\r\n page_number: this.currentPageNumber,\r\n scroll_direction: 'forward'\r\n })\r\n if(this.features.scroll?.isFullPageScroll) {\r\n this.$nextTick(() => {\r\n const nextPageIndex = this.currentPageIndex + 1;\r\n this.$root.$emit('trigger-scroll-to-index', nextPageIndex);\r\n })\r\n } else {\r\n this.scroll({ '+x': -300 });\r\n }\r\n },\r\n\r\n scrollUp() {\r\n if(this.features.scroll?.isFullPageScroll) {\r\n this.scroll({ '+y': 550 });\r\n } else {\r\n this.scroll({ '+y': 300});\r\n }\r\n Lytics.TriggerScrollButtonClick({\r\n orientation: 'vertical',\r\n page_number: this.currentPageNumber,\r\n scroll_direction: 'backward'\r\n })\r\n },\r\n\r\n scrollDown() {\r\n if(this.features.scroll?.isFullPageScroll) {\r\n this.scroll({ '+y': -550 });\r\n } else {\r\n this.scroll({ '+y': -300 });\r\n }\r\n \r\n this.setScrollY(this.scrollY + 250)\r\n Lytics.TriggerScrollButtonClick({\r\n orientation: 'vertical',\r\n page_number: this.currentPageNumber,\r\n scroll_direction: 'forward'\r\n })\r\n },\r\n\r\n\r\n scrollToTop() {\r\n this.scroll({ y: 0 });\r\n },\r\n\r\n focus() {\r\n this.$refs.container.focus();\r\n // console.log('flyer focussed')\r\n },\r\n\r\n getContainerDom() {\r\n return this.$refs.container;\r\n }\r\n\r\n\r\n },\r\n computed: {\r\n //...mapState('scale', ['zoomLevel']),\r\n ...mapState('scale', ['zoomMin', 'zoomMax', 'manualZoom', 'curentScale']),\r\n ...mapState(['searchInputFocused','showSideBar', 'currentPageNumber', 'currentPageIndex']),\r\n ...mapState('shoppingList',['additionalItemInputFocus','emailInputFocus']),\r\n ...mapState(['columnView', 'currentStore', 'pdf']),\r\n\t ...mapGetters(['language']),\r\n ...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n ...mapGetters('config', ['branding', 'features', \"rootStyle\"]),\r\n \r\n poweredByTCVisible(){\r\n let isPoweredByTC = this.features?.poweredByTC?.enabled\r\n return isPoweredByTC && this.scrollY >= this.maxScrollY - 5 && this.flyerOrientation == 'vertical'\r\n },\r\n poweredByTC() {\r\n let isPoweredByTC = this.features?.poweredByTC?.enabled\r\n return isPoweredByTC && this.flyerOrientation == 'vertical'\r\n },\r\n alwaysShowScroll(){\r\n return this.features?.scroll?.alwaysShowScroll ?? false;\r\n },\r\n hasTransparentNavArrows(){\r\n return (this.features?.navigationArrows?.transparent) ?? true;\r\n },\r\n /*fitAxis() {\r\n return this.orientation == 'horizontal' ? 'y' : 'x';\r\n },*/\r\n\r\n\r\n leftArrowVisible() {\r\n this.$root.$emit((this.scrollX === 0 ? 'hide-arrow' : 'show-arrow'),'left')\r\n return this.scrollX > 0 && this.maxScrollX;\r\n },\r\n\r\n rightArrowVisible() {\r\n this.$root.$emit((this.scrollX < Math.floor(this.maxScrollX) ? 'show-arrow' : 'hide-arrow'),'right')\r\n return this.scrollX < Math.floor(this.maxScrollX);\r\n },\r\n\r\n upArrowVisible() {\r\n this.$root.$emit((this.scrollY === 0 ? 'hide-arrow' : 'show-arrow'),'up')\r\n return this.scrollY > (1 / devicePixelRatio);\r\n },\r\n\r\n downArrowVisible() {\r\n this.$root.$emit((this.scrollY < Math.ceil(this.maxScrollY-1) ? 'show-arrow' : 'hide-arrow'),'down')\r\n return (this.scrollY < Math.ceil(this.maxScrollY)-1);\r\n },\r\n\r\n scrollToTopVisible() {\r\n return this.scrollY > 0 && this.orientation == 'vertical';\r\n },\r\n \r\n xViewPerc() {\r\n return (this.viewWidth / this.contentWidth) * 100;\r\n },\r\n yViewPErc() {\r\n return (this.viewHeight / this.contentHeight) * 100;\r\n },\r\n flyerDrawer() {\r\n return this.features.flyerSelector._flyerOrientation['+vertical']?.['_display']?.['+desktop']?.position === 'left';\r\n }\r\n\r\n },\r\n\r\n watch: {\r\n orientation() {\r\n this._sz.fitAxis = this.fitAxis;\r\n if(this.flyerOrientation === 'vertical' && this.displayMode === 'desktop') {\r\n\t\t\t this.setManualZoom(false)\r\n this.setZoomLevel(this.zoomLevel)\r\n\t\t\t } else {\r\n this.setZoomLevel(0)\r\n }\r\n // this.setZoomLevel(this.zoomLevel)\r\n /*if(val == 'horizontal'){\r\n this._sz.setScrollX( -this.scrollY )\r\n } else {\r\n this._sz.setScrollY( -this.scrollX )\r\n }*/\r\n this._sz.update();\r\n \r\n },\r\n displayMode() {\r\n if(this.displayMode !== 'desktop') {\r\n this.setZoomLevel(0)\r\n }\r\n },\r\n zoomLevel(val) {\r\n //console.log('Watch Zoom Level', val)\r\n this._sz.zoom = val;\r\n this._sz.update();\r\n //this.updateScale(this._sz.getScale());\r\n },\r\n maxWidth(val) {\r\n this._sz.maxWidth = val;\r\n this._sz.update();\r\n },\r\n // searchInputFocused(val){\r\n // if(!val){\r\n // this.focus();\r\n // }\r\n // },\r\n align(val) {\r\n this._sz.align = val;\r\n this._sz.update();\r\n }\r\n }\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.scroll-container:focus {\r\n outline: none;\r\n}\r\n.scroll-container{\r\n min-height: 10px;\r\n}\r\n.scroll-container.poweredByTCWrapper {\r\n padding-bottom: 25px !important;\r\n}\r\n\r\n.toTheTop {\r\n display: block;\r\n width: 90px;\r\n height: 90px;\r\n background: url('/images/back-tothe-top-mobile.png') no-repeat center 45%;\r\n background-size: 77% auto;\r\n position: absolute;\r\n /* right: 45px; */\r\n bottom: 20px;\r\n cursor: pointer;\r\n filter: drop-shadow(2px 4px 6px black);\r\n opacity: 0.9;\r\n cursor: pointer;\r\n z-index: 5;\r\n}\r\n\r\n.toTheTopFr {\r\n display: block;\r\n width: 90px;\r\n height: 90px;\r\n background: url('/images/back-tothe-top-mobile-fr-png.png') no-repeat center 45%;\r\n background-size: 68% auto;\r\n position: absolute;\r\n /* right: 45px; */\r\n bottom: 20px;\r\n cursor: pointer;\r\n filter: drop-shadow(2px 4px 6px black);\r\n opacity: 0.9;\r\n cursor: pointer;\r\n z-index: 5;\r\n}\r\n\r\n@media screen and (max-width: 628px) {\r\n .scroll-container.poweredByTCWrapper{\r\n padding-bottom: 30px !important;\r\n}\r\n .arrow {\r\n display: none;\r\n }\r\n\r\n .scroll-bar.horizontal {\r\n display: none;\r\n }\r\n}\r\n\r\n@media screen and (min-width: 628px) {\r\n\r\n .toTheTop {\r\n display: none;\r\n }\r\n\r\n .toTheTopFr {\r\n display: none;\r\n }\r\n}\r\n\r\n@media screen and (min-width: 1256px) {\r\n .toTheTop {\r\n display: none;\r\n }\r\n\r\n .toTheTopFr {\r\n display: none;\r\n }\r\n}\r\n\r\n.arrow {\r\n position: absolute;\r\n background-size: contain;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50%;\r\n opacity: 1;\r\n transition: opacity 200ms, filter 100ms;\r\n /*box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.5);*/\r\n filter: drop-shadow(0px 0px 0px #222);\r\n cursor: pointer;\r\n display: none;\r\n}\r\n\r\n.arrow.transparency{\r\n opacity: 0.4 !important;\r\n}\r\n\r\n.arrow.is-visible {\r\n display: block;\r\n}\r\n\r\n.arrow.transparency:hover {\r\n opacity: 0.9 !important;\r\n filter: drop-shadow(3px 2px 3px #222);\r\n}\r\n\r\n.arrow:active {\r\n filter: drop-shadow(0px 0px 0px #222);\r\n}\r\n\r\n.arrow.horizontal {\r\n top: 50%;\r\n transform: translateY(-50%);\r\n}\r\n\r\n.arrow.vertical {\r\n left: 50%;\r\n transform: translateX(-50%);\r\n touch-action: none;\r\n}\r\n\r\n.arrow.left {\r\n background-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n left: 35px;\r\n}\r\n\r\n.arrow.right {\r\n background-image: url(\"/images/moveright-arrow-desktop.png\");\r\n right: 35px;\r\n}\r\n\r\n.arrow.up {\r\n background-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n transform: rotate(90deg) translateY(-50%);\r\n transform-origin: top left;\r\n top: 35px;\r\n}\r\n\r\n.arrow.down {\r\n background-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n transform: rotate(-90deg) translateY(50%);\r\n transform-origin: bottom left;\r\n bottom: 35px;\r\n}\r\n\r\n.scroll-container {\r\n position: relative;\r\n overflow: hidden;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.scroll-item {\r\n width: max-content;\r\n height: max-content;\r\n transform: translateZ(0px);\r\n transition: transform 0.3s;\r\n transform-origin: top left;\r\n}\r\n\r\n.scrolling .scroll-item {\r\n transition: none;\r\n pointer-events: none;\r\n touch-action: none;\r\n}\r\n\r\n.scroll-container * {\r\n -webkit-backface-visibility: hidden;\r\n}\r\n\r\n.touch-layer {\r\n position: relative;\r\n left: 0px;\r\n right: 0px;\r\n top: 0px;\r\n bottom: 0px;\r\n height: 100%;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollContainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScrollContainer.vue?vue&type=template&id=55ab09a8&scoped=true&\"\nimport script from \"./ScrollContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./ScrollContainer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ScrollContainer.vue?vue&type=style&index=0&id=55ab09a8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55ab09a8\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div v-if=\"features.enhancedSearch\" :class=\"{\r\n\t\t'col': columnView,\r\n\t\t'search-open': showMobileSearchBar,\r\n\t\tdisabled: tourVisible\r\n\t}\" class=\"wpr search-results-wrapper\">\r\n\r\n\t\t<div class=\"search-results\">\r\n\t\t\t<div v-if=\"!hits.length && !loading\" class=\"no-results\"> {{ content.search.noResultsMessage }} \r\n\t\t\t\t<span class=\"queryMsg\">\r\n\t\t\t\t\t<span v-if=\"getUrlParameter('language') === 'en'\">\"</span>\r\n\t\t\t\t\t<span v-else> <<</span>{{ query }}<span v-if=\"getUrlParameter('language') === 'en'\">\"</span>\r\n\t\t\t\t\t<span v-else>>></span>...</span>\r\n\t\t\t\t<div class=\"no-results-suggestions\">\r\n\t\t\t\t\t<div v-for=\"item in content.search.noResults\" :key=\"item.title\" class=\"suggestion-element\">\r\n\t\t\t\t\t\t<span class=\"no-results-title\"> {{ item.title }} </span>\r\n\t\t\t\t\t\t<p class=\"no-results-message\">\r\n\t\t\t\t\t\t\t{{ item.message }}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<scroll-container v-else-if=\"hits.length\" id=\"search-scroll-container\"\r\n\t\t\t\t:align=\"flyerOrientation == 'vertical' ? 'center' : 'left'\" :enable-scroll-buttons=\"displayMode != 'mobile'\"\r\n\t\t\t\t:fit-axis=\"flyerOrientation == 'horizontal' ? 'y' : 'x'\" :orientation=\"flyerOrientation\" :zoom-level=\"zoomLevel\"\r\n\t\t\t\tclass=\"search-results\" @contentResize=\"onResize\" @resize=\"onScrollContainerResize\">\r\n\t\t\t\t<responsive-grid id=\"resp-grid\" :search-results=\"true\" root-scroll-container=\"search-scroll-container\"\r\n\t\t\t\t\t:flyer-pages=\"generateResultsPageFromHits(hits)\"></responsive-grid>\r\n\t\t\t</scroll-container>\r\n\t\t</div>\r\n\t\t<!-- FeatureToast /-->\r\n\t\t<!-- <button @click=\"resetFilters\">Back To<br v-if=\"!columnView\"> Current Flyer</button> -->\r\n\t</div>\r\n\t<div v-else :class=\"{\r\n\t\t'col': columnView,\r\n\t\t'search-open': showMobileSearchBar,\r\n\t\tdisabled: tourVisible\r\n\t}\" class=\"wpr search-results-wrapper\">\r\n\t\t<div v-if=\"noResults\" class=\"no-results\"> {{ content.search.noResultsMessage }} \r\n\t\t\t<span class=\"queryMsg\">\r\n\t\t\t\t<span v-if=\"getUrlParameter('language') === 'en'\">\"</span>\r\n\t\t\t\t<span v-else> <<</span>{{ query }}<span v-if=\"getUrlParameter('language') === 'en'\">\"</span>\r\n\t\t\t\t<span v-else>>></span>...</span>\r\n\r\n\t\t\t<div class=\"no-results-suggestions\">\r\n\t\t\t\t<div v-for=\"item in content.search.noResults\" :key=\"item.title\" class=\"suggestion-element\">\r\n\t\t\t\t\t<span class=\"no-results-title\"> {{ item.title }} </span>\r\n\t\t\t\t\t<p class=\"no-results-message\">\r\n\t\t\t\t\t\t{{ item.message }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</div>\r\n\r\n\r\n\t\t</div>\r\n\t\t<scroll-container v-else id=\"search-scroll-container\" :align=\"flyerOrientation == 'vertical' ? 'center' : 'left'\"\r\n\t\t\t:enable-scroll-buttons=\"displayMode != 'mobile'\" :fit-axis=\"flyerOrientation == 'horizontal' ? 'y' : 'x'\"\r\n\t\t\t:orientation=\"flyerOrientation\" :zoom-level=\"zoomLevel\" class=\"search-results\" @contentResize=\"onResize\"\r\n\t\t\t@resize=\"onScrollContainerResize\">\r\n\t\t\t<responsive-grid id=\"resp-grid\" :search-results=\"true\" root-scroll-container=\"search-scroll-container\"\r\n\t\t\t\tv-bind:flyer-pages=\"resultsPage\"></responsive-grid>\r\n\t\t</scroll-container>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport GridComponent from \"@/components/responsiveGrid.component.vue\";\r\nimport Page from \"@/classes/Page\";\r\nimport { mapActions, mapState, mapGetters } from 'vuex';\r\nimport ScrollContainer from \"@/components/scroll-container/ScrollContainer\";\r\n//import FeatureToast from \"@/components/Toasts/FeatureToast\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tScrollContainer,\r\n\t\tResponsiveGrid: GridComponent\r\n\t},\r\n\r\n\tprops: ['scale'],\r\n\r\n\tcomputed: {\r\n\t\t...mapState(['columnView']),\r\n\t\t...mapState('search', ['showMobileSearchBar', 'saving', 'categories', 'subCategories', 'hits', 'loading']),\r\n\t\t...mapGetters('search', ['filteredItems']),\r\n\t\t...mapGetters('screen', ['flyerOrientation', 'displayMode']),\r\n\t\t...mapGetters('scale', ['defPage','defPageGrid']),\r\n\t\t...mapState('scale', ['zoomLevel']),\r\n\t\t...mapState('toast', ['tourVisible']),\r\n\t\t...mapGetters(['content', 'language', 'findBlocksBySKUs', 'storeId', 'dealId']),\r\n\t\t...mapGetters('filters', ['searchQuery']),\r\n\t\t...mapGetters('config', ['features']),\r\n\r\n\r\n\t\tquery() {\r\n\t\t\treturn this.searchQuery?.text;\r\n\t\t},\r\n\r\n\t\tresultsPage() {\r\n\t\t\tconst page = Page.GenerateSearchPage(this.filteredItems, this.defPage.type,this.defPageGrid);\r\n\t\t\treturn [page];\r\n\t\t},\r\n\r\n\t\tnoResults() {\r\n\t\t\treturn !this.resultsPage[0].blocks.length;\r\n\t\t},\r\n\r\n\t\tbanner() {\r\n\t\t\treturn AppConfig?.AppConf?.algolia_id\r\n\t\t}\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions('search', ['resetFilters']),\r\n\t\t...mapActions('scale', ['updateScale']),\r\n\r\n\t\tgenerateResultsPageFromHits(hits) {\r\n\t\t\tconst skus = hits.map(hit => hit.sku);\r\n\t\t\tconsole.log('SKUs:', skus)\r\n\t\t\tconst page = Page.GenerateSearchPage(this.findBlocksBySKUs(skus), this.defPage.type);\r\n\t\t\treturn [page];\r\n\t\t},\r\n\r\n\t\tonScrollContainerResize(scroller) {\r\n\t\t\tthis.updateScale(scroller._sz.getScale());\r\n\t\t},\r\n\r\n\t\tonResize() {\r\n\t\t\t//scroller.scroll({x: 0, y: 0});\r\n\t\t},\r\n\r\n\t\tgetUrlParameter(name) {\r\n\t\t\tname = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n\t\t\tvar regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n\t\t\tvar results = regex.exec(window.location.search);\r\n\t\t\treturn results === null\r\n\t\t\t\t? \"\"\r\n\t\t\t\t: decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n\t\t},\r\n\r\n\t\tcheckIfScrolling() {\r\n\t\t\treturn document.querySelector('.search-results .section-container')\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.wpr {\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\talign-items: center;\r\n\twidth: 100%;\r\n\tz-index: 98;\r\n\tbackground-color: rgba(0, 0, 0, 0.5);\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n}\r\n\r\n.wpr.search-open {\r\n\ttop: 201px;\r\n}\r\n\r\n.wpr.col {\r\n\tflex-direction: column;\r\n}\r\n\r\n.queryMsg {\r\n\tcolor: #000000;\r\n}\r\n\r\n.queryMsgSubheader {\r\n\tfont-size: 18px !important;\r\n}\r\n\r\n\r\n.search-results {\r\n\theight: 100%;\r\n\twidth: 100%;\r\n\tbackground-color: #fff;\r\n\tpadding-bottom: 26px;\r\n}\r\n\r\n.no-results {\r\n\tfont-size: 21px;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\talign-items: center;\r\n\ttext-align: center;\r\n\tbackground-color: #fff;\r\n\tjustify-content: center;\r\n\tfont-weight: bolder;\r\n\tpadding-top: 30px;\r\n}\r\n\r\n\r\n.no-results-suggestions {\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\tmargin-top: 30px;\r\n\twidth: 60%;\r\n\tmargin-left: 20%;\r\n}\r\n\r\n.suggestion-element {\r\n\tpadding: 10px;\r\n\twidth: 33%;\r\n\tborder-right: none;\r\n\r\n}\r\n\r\n.suggestion-element:not(:last-child) {\r\n\tborder-right: 1px solid lightgrey;\r\n}\r\n\r\n\r\n.no-results-title {\r\n\tcolor: #000000;\r\n}\r\n\r\n.no-results-message {\r\n\tfont-size: 16px;\r\n\tfont-weight: normal !important;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n.col .search-results {\r\n\twidth: 100%;\r\n\tmax-width: inherit;\r\n\t/*overflow-y: scroll;\r\n\toverflow-x: hidden;*/\r\n}\r\n\r\n.col .search-results>* {\r\n\tjustify-content: center;\r\n\ttransform-origin: top;\r\n\tmargin-bottom: 20px;\r\n}\r\n\r\nbutton {\r\n\tbackground-color: #ED1C24;\r\n\tcolor: #FFF;\r\n\tborder: 1px solid #AFAFAF;\r\n\tborder-radius: 4px;\r\n\tfont-size: 14px;\r\n\tfont-weight: 700;\r\n\tpadding: 10px 50px;\r\n\tmargin: auto;\r\n\twhite-space: nowrap;\r\n\tcursor: pointer;\r\n}\r\n\r\n@media (max-width: 1024px) {\r\n\r\n\t/*.wpr {\r\n\t\tflex-direction: column;\r\n\t}\r\n\r\n\t.wpr.pad-top {\r\n\t\ttop: 242px;\r\n\t}*/\r\n\t.wpr button {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.queryMsgSubheader {\r\n\t\tfont-size: 16px !important;\r\n\t}\r\n\r\n\t.no-results-suggestions {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\twidth: 100%;\r\n\t\tmargin: 0;\r\n\t}\r\n\r\n\t.no-results {\r\n\t\tfont-size: 18.5px;\r\n\t\ttext-align: left;\r\n\t\tpadding: 35px;\r\n\t}\r\n\r\n\t.suggestion-element {\r\n\t\tmargin-top: 20px;\r\n\t\twidth: 100%;\r\n\t\tborder-right: none;\r\n\t\tpadding: 0;\r\n\t}\r\n\r\n\t.suggestion-element:not(:last-child) {\r\n\t\tborder-bottom: 1px solid lightgrey !important;\r\n\t\tborder-right: none !important;\r\n\t}\r\n\r\n\t.no-results-title {\r\n\t\tcolor: #000000;\r\n\t\tfont-size: 19px;\r\n\t}\r\n\r\n\t.no-results-message {\r\n\t\tfont-size: 15px;\r\n\t\tfont-weight: normal !important;\r\n\t\tmargin-top: 10px;\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\r\n\t.search-results {\r\n\t\twidth: 100%;\r\n\t\tmax-width: inherit;\r\n\t\t/* max-height: 80%; */\r\n\t\t/*overflow-y: scroll;\r\n\t\toverflow-x: hidden;*/\r\n\t}\r\n\r\n}\r\n\r\n.search-results-wrapper>div {\r\n\theight: 100%;\r\n\twidth: 100%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchResults.vue?vue&type=template&id=6d85ef20&scoped=true&\"\nimport script from \"./SearchResults.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchResults.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchResults.vue?vue&type=style&index=0&id=6d85ef20&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d85ef20\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHelp),expression:\"showHelp\"}],staticClass:\"modal-wpr\"},[_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeHelp),expression:\"closeHelp\"}],class:(\"modal \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"header\"},[_c('h2',[_vm._v(_vm._s(_vm.content.howto.help))]),_c('a',{staticClass:\"close-btn\",on:{\"click\":function($event){return _vm.toggleHelp(false)}}},[_c('img',{attrs:{\"alt\":\"close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('scroll-container',{attrs:{\"enable-scroll-bars\":true,\"max-width\":2000,\"align\":\"center\",\"fit-axis\":'x',\"enable-scroll-buttons\":false,\"sync-global-zoom\":false},on:{\"ready\":_vm.onScrollReady}},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('help-screen')],1)]),_c('div',{staticClass:\"help-footer desktop\"},[_c('div',{staticClass:\"subtitle desktop\"},[_vm._v(_vm._s(_vm.content.howto.info))]),_c('div',{staticClass:\"subtitle mobile\"},[_vm._v(_vm._s(_vm.content.howto.info))]),_c('button',{staticClass:\"button walkthrough\",attrs:{\"aria-label\":_vm.content.howto.tour},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.viewTour.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.howto.tour))])])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-screen\"},[_c('config-style-injector',{attrs:{\"root-selector\":\".help-screen\",\"config\":_vm.config}}),_vm._l((_vm.sections),function(section,index){return _c('help-section',{key:(\"help-screen-section-\" + index),attrs:{\"item-data\":section}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-section\"},[(!!_vm.title)?_c('div',{staticClass:\"title\"},[_c('hr'),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.title)}}),_c('hr')]):_vm._e(),_c('div',{staticClass:\"item-list\",style:(_vm.listStyle)},_vm._l((_vm.items),function(item,index){return _c('help-screen-item',{key:(\"help-section-item-\" + (item.title || index)),attrs:{\"item-data\":item}})}),1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-screen-item\"},[(_vm.type === 'html')?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.itemHtml)}}):_c('fragment',[(_vm.iconHtml)?_c('div',{staticClass:\"icon\",domProps:{\"innerHTML\":_vm._s(_vm.iconHtml)}}):_c('img',_vm._b({staticClass:\"icon\"},'img',_vm.icon,false)),_c('div',{staticClass:\"title-desc\"},[_c('h4',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.desc))])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"help-screen-item\">\r\n\t\t<div v-if=\"type === 'html'\" v-html=\"itemHtml\" />\r\n\t\t<fragment v-else>\r\n\t\t\t<div v-if=\"iconHtml\" class=\"icon\" v-html=\"iconHtml\"></div>\r\n\t\t\t<img v-else class=\"icon\" v-bind=\"icon\"/>\r\n\t\t\t<div class=\"title-desc\">\r\n\t\t\t\t<h4 class=\"title\">{{ title }}</h4>\r\n\t\t\t\t<div class=\"desc\">{{ desc }}</div>\r\n\t\t\t</div>\r\n\t\t</fragment>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\tname: \"HelpScreenItem\",\r\n\tprops: {\r\n\t\titemData: {\r\n\t\t\ttype: Object\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\ticonHtml() {\r\n\t\t\treturn this?.icon.html;\r\n\t\t},\r\n\t\ticon() {\r\n\t\t\treturn this.itemData.icon\r\n\t\t},\r\n\t\ttitle() {\r\n\t\t\treturn this.itemData.title;\r\n\t\t},\r\n\t\tdesc() {\r\n\t\t\treturn this.itemData.desc;\r\n\t\t},\r\n\t\ttype() {\r\n\t\t\treturn this.itemData?.type;\r\n\t\t},\r\n\t\titemHtml() {\r\n\t\t\treturn this.itemData.html;\r\n\t\t}\r\n\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.help-screen-item {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n\r\n .title {\r\n\ttext-transform: uppercase;\r\n\tfont-size: 14px;\r\n\tpadding-top: 12px;\r\n\tpadding-bottom: 6px;\r\n }\r\n\r\n .icon {\r\n\theight: 30px;\r\n }\r\n .icon.fullscreen {\r\n\theight: 20px;\r\n\tmargin-top: 6px;\r\n }\r\n\r\n .desc {\r\n\tfont-size: 12px;\r\n }\r\n\r\n [mode='tablet'] &, [mode='mobile'] & {\r\n\tflex-direction: row;\r\n\t//column-gap: 25px;\r\n\talign-items: flex-start;\r\n\r\n\t.title-desc {\r\n\t text-align: left;\r\n\t}\r\n\r\n\t.title {\r\n\t padding: 0;\r\n\t}\r\n\t> * {\r\n\t\tmargin-right: 25px;\r\n\t}\r\n }\r\n\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpScreenItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpScreenItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelpScreenItem.vue?vue&type=template&id=51d489a4&\"\nimport script from \"./HelpScreenItem.vue?vue&type=script&lang=js&\"\nexport * from \"./HelpScreenItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HelpScreenItem.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"help-section\">\r\n\t\t<div v-if=\"!!title\" class=\"title\">\r\n\t\t\t<hr/>\r\n\t\t\t<h3 v-html=\"title\" />\r\n\t\t\t<hr/>\r\n\t\t</div>\r\n\t\t<div :style=\"listStyle\" class=\"item-list\">\r\n\t\t\t<help-screen-item\r\n\t\t\t\t\tv-for=\"(item, index) in items\"\r\n\t\t\t\t\t:key=\"`help-section-item-${item.title || index}`\"\r\n\t\t\t\t\t:item-data=\"item\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport HelpScreenItem from \"@/features/help/HelpScreenItem.vue\";\r\n\r\nexport default {\r\n\tname: \"HelpSection\",\r\n\tcomponents: {HelpScreenItem},\r\n\tprops: {\r\n\t\titemData: {\r\n\t\t\ttype: Object\r\n\t\t}\r\n\r\n\t},\r\n\tcomputed: {\r\n\t\ttitle() {\r\n\t\t\treturn this.itemData.title;\r\n\t\t},\r\n\t\titems() {\r\n\t\t\treturn this.itemData.items;\r\n\t\t},\r\n\t\tlistStyle() {\r\n\t\t\tconst itemCount = Math.min(this.items.length, 4);\r\n\t\t\treturn {\r\n\t\t\t\tgridTemplateColumns: `repeat(${itemCount}, 1fr)`\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.help-section {\r\n > .title {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tpadding-bottom: 12px;\r\n\r\n\t\thr {\r\n\t\t flex-basis: 100%;\r\n\t\t}\r\n\r\n\t\th3 {\r\n\t\t padding: 0 2em;\r\n\t\t font-size: 16px;\r\n\t\t white-space: nowrap;\r\n\t\t text-transform: uppercase;\r\n\t\t}\r\n }\r\n\r\n .item-list {\r\n\t\tdisplay: grid;\r\n\t\tcolumn-gap: 40px;\r\n\t\t//row-gap: 24px;\r\n\t\tbackground-color: #eee;\r\n\t\tpadding: 12px;\r\n\t\t[mode='tablet'] &, [mode='mobile'] &{\r\n\t\t\tdisplay: flex;\r\n\t\t flex-direction: column;\r\n\t\t\tbackground-color: initial;\r\n\t\t\t> * {\r\n\t\t\t\tmargin-bottom: 24px;\r\n\t\t\t}\r\n\t\t}\r\n }\r\n\r\n\r\n\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpSection.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelpSection.vue?vue&type=template&id=3eb2e4a1&\"\nimport script from \"./HelpSection.vue?vue&type=script&lang=js&\"\nexport * from \"./HelpSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HelpSection.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.config)?_c('div',{staticClass:\"style-injector\",domProps:{\"innerHTML\":_vm._s(_vm.style)}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div v-if=\"config\" class=\"style-injector\" v-html=\"style\"/>\r\n</template>\r\n\r\n<script>\r\n//import sass from 'sass'\r\n\r\nconst less = require('less');\r\nexport default {\r\n\tname: \"ConfigStyleInjector\",\r\n\tprops: {\r\n\t\tconfig: {\r\n\t\t\ttype: Object\r\n\t\t},\r\n\t\trootSelector: {\r\n\t\t\ttype: String\r\n\t\t}\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tstyle: null\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tstyles() {\r\n\t\t\treturn this.config?.styles;\r\n\t\t},\r\n\t\tcss() {\r\n\t\t\treturn this.config?.css;\r\n\t\t}\r\n\t\t/*style() {\r\n\t\t\tif (this.config?.styles) {\r\n\r\n\r\n\t\t\t\tconst id = this.rootSelector;\r\n\t\t\t\tconst styles = this.config.styles;\r\n\t\t\t\tlet s = [];\r\n\t\t\t\tfor (let p in styles) {\r\n\t\t\t\t\ts.push(`${p}:${styles[p]}`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//console.log('Sass Compile:', sass.compileString(s.join(';')));\r\n\r\n\t\t\t\treturn `<style>\r\n ${id} {\r\n ${s.join(';')}\r\n }\r\n </style>`;\r\n\t\t\t}\r\n\t\t\treturn '';\r\n\t\t}*/\r\n\t},\r\n\tmounted() {\r\n\t\tthis.updateStyles()\r\n\t},\r\n\tmethods: {\r\n\t\tasync updateStyles() {\r\n\t\t\tconst id = this.rootSelector;\r\n\t\t\tlet css = [];\r\n\t\t\tif (this.styles) {\r\n\t\t\t\tconst styles = this.styles;\r\n\t\t\t\tlet s = [];\r\n\t\t\t\tfor (let p in styles) {\r\n\t\t\t\t\ts.push(`${p}:${styles[p]}`);\r\n\t\t\t\t}\r\n\t\t\t\tcss.push(s.join(';'));\r\n\t\t\t}\r\n\r\n\t\t\tif(this.css){\r\n\t\t\t\tcss.push(this.css);\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\tconst s = `${id} {${css.join(';')}}`.trim();\r\n\r\n\t\t\t// console.log(`CSS Styles (${id}) :`, s);\r\n\r\n\t\t\tconst style = await less.render(s);\r\n\r\n\t\t\t// console.log(\"Less Style:\", style);\r\n\r\n\t\t\tthis.style = `<style>${style.css}</style>`;\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\tstyles() {\r\n\t\t\tthis.updateStyles();\r\n\t\t},\r\n\t\tcss() {\r\n\t\t\tthis.updateStyles()\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.style-injector {\r\n\tdisplay: none;\r\n}\r\n</style>\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigStyleInjector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigStyleInjector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConfigStyleInjector.vue?vue&type=template&id=056470d5&scoped=true&\"\nimport script from \"./ConfigStyleInjector.vue?vue&type=script&lang=js&\"\nexport * from \"./ConfigStyleInjector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConfigStyleInjector.vue?vue&type=style&index=0&id=056470d5&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"056470d5\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"help-screen\">\r\n\t <config-style-injector :root-selector=\"`.help-screen`\" :config=\"config\" />\r\n\t\t<help-section\r\n\t\t\t\tv-for=\"(section, index) in sections\"\r\n\t\t\t\t:key=\"`help-screen-section-${index}`\"\r\n\t\t\t\t:item-data=\"section\"\r\n\t\t/>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport HelpSection from \"@/features/help/HelpSection.vue\";\r\nimport {mapGetters} from \"vuex\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\n\r\nexport default {\r\n\tname: \"HelpScreen\",\r\n\tcomponents: {ConfigStyleInjector, HelpSection},\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'helpScreen'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['content']),\r\n\t\tsections() {\r\n\t\t\treturn this.config.sections;\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.help-screen {\r\n row-gap: 12px;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelpScreen.vue?vue&type=template&id=b4d0035a&\"\nimport script from \"./HelpScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./HelpScreen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HelpScreen.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"modal-wpr\" v-show=\"showHelp\">\r\n\r\n <div :class=\"`modal ${flyerOrientation}`\" v-click-outside=\"closeHelp\" >\r\n <div class=\"header\">\r\n <h2>{{ content.howto.help }}</h2>\r\n <a class=\"close-btn\" @click=\"toggleHelp(false)\">\r\n <img alt=\"close\" src=\"/images/icon-close-white.svg\">\r\n </a>\r\n </div>\r\n\r\n <div class=\"content\" ref=\"toastContent\">\r\n <scroll-container\r\n :enable-scroll-bars=\"true\"\r\n :max-width=\"2000\"\r\n align=\"center\"\r\n :fit-axis=\"'x'\"\r\n :enable-scroll-buttons=\"false\"\r\n @ready=\"onScrollReady\"\r\n :sync-global-zoom=\"false\"\r\n >\r\n\r\n <div :class=\"`content-container ${flyerOrientation}`\">\r\n <help-screen />\r\n<!-- <div class=\"desktop\">\r\n <div :class=\"`${flyerOrientation}`\">\r\n <div>\r\n <FeatureHeading>{{ content.howto.tip }}</FeatureHeading>\r\n <div class=\"feature\">\r\n <!– Flyer List (Sidebar) –>\r\n <div class=\"description\">\r\n <div class=\"button-preview\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"/icons/icon-flyerdrawer_v1.svg\" />\r\n<!– <span class=\"pull-button\"\r\n data-tour-item=\"sidebar\"\r\n aria-label=\"Sidebar Pull Button\"\r\n :class=\"{fr:language=='fr'}\"\r\n >\r\n <span class=\"flyericon-text\" :class=\"{fr:language=='fr'}\">\r\n <img src=\"/images/icon-flyer.svg\" class=\"flyer-book\" width=\"16px\" height=\"14px\" style=\"opacity:1\" :alt=\"content.seeOtherFlyers\" />\r\n <span class=\"seeOtherFlyers\" style=\"font-size:9px;text-align: left\">{{content.seeOtherFlyers}}</span>\r\n </span>\r\n <span>\r\n <img src=\"/images/right-arrow-only.svg\" class=\"arrow\" :class=\"{fr:language=='fr'}\" width=\"12px\" height=\"12px\" :alt=\"content.openSideBar\" />\r\n </span>\r\n </span>–>\r\n\r\n <h4 class=\"desktop\">{{ content.howto.flyerList }}</h4>\r\n <h4 class=\"mobile\">{{ content.howto.flyerList }}</h4>\r\n <div class=\"subtitle desktop\">{{ content.howto.flyerListSubtitle }}</div>\r\n <div class=\"subtitle mobile\">{{ content.howto.flyerListSubtitle }}</div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!– Search & filter –>\r\n <div class=\"description\">\r\n <div class=\"button-preview\">\r\n <button :aria-label=\"content.howto.searchBtn\" class=\"search-toggle btn has-tooltip\">\r\n\r\n <svg data-v-29e8c3c6=\"\" xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 512 512\">\r\n <path data-v-29e8c3c6=\"\" fill=\"currentColor\" d=\"M495 466.2L377.2 348.4c29.2-35.6 46.8-81.2 46.8-130.9C424 103.5 331.5 11 217.5 11 103.4 11 11 103.5 11 217.5S103.4 424 217.5 424c49.7 0 95.2-17.5 130.8-46.7L466.1 495c8 8 20.9 8 28.9 0 8-7.9 8-20.9 0-28.8zm-277.5-83.3C126.2 382.9 52 308.7 52 217.5S126.2 52 217.5 52C308.7 52 383 126.3 383 217.5s-74.3 165.4-165.5 165.4z\"></path>\r\n </svg>\r\n </button>\r\n <h4 class=\"desktop\">{{ content.howto.search }}</h4>\r\n <h4 class=\"mobile\">{{ content.howto.searchMob }}</h4>\r\n <div class=\"subtitle desktop\">{{ content.howto.filter }}</div>\r\n <div class=\"subtitle mobile\">{{ content.howto.filterMob }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"description desktop\">\r\n <div class=\"button-preview\">\r\n <a class=\"pdf-btn btn has-tooltip\">\r\n <img alt=\"Download PDF\" src=\"/images/icon-pdf.svg\">\r\n </a>\r\n <h4>{{ content.howto.pdf }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.download }}</div>\r\n </div>\r\n </div>\r\n\r\n <!–OTHER FLYERS –>\r\n<!– <div class=\"description\">–>\r\n<!– <div class=\"button-preview\">–>\r\n<!– <button aria-label=\"other flyers\" class=\"other-btn btn\">–>\r\n<!– <svg width=\"24\" height=\"17\" xmlns=\"http://www.w3.org/2000/svg\">–>\r\n<!– <g fill-rule=\"nonzero\" fill=\"none\">–>\r\n<!– <path d=\"M23.53 1.38h-1.58V.86c.01-.2-.13-.39-.33-.45C20.52.14 19.4 0 18.26 0 16.4 0 13.86.4 12 2.25 10.13.39 7.58 0 5.72 0 4.6 0 3.46.14 2.37.41a.45.45 0 00-.34.45v.52H.47c-.26 0-.47.2-.47.45v14.35c0 .25.2.45.47.45.08 0 .15-.02.22-.06.05-.02 4.7-2.48 11.2-.9H12.1c6.52-1.6 11.17.86 11.2.9.15.08.32.08.47 0a.45.45 0 00.23-.39V1.83c0-.24-.2-.45-.47-.45z\" fill=\"#545454\"/>–>\r\n<!– <g fill=\"#FFF\">–>\r\n<!– <path d=\"M5.36 12.6a19 19 0 00-2.36.16V1.3C3.84 1.09 4.7 1 5.57 1 7.2 1 9.43 1.38 11 3.14L11 14c-.9-.6-2.66-1.4-5.64-1.4zM13 3.14C14.56 1.39 16.8 1 18.42 1a12 12 0 012.58.29v11.48c-.78-.1-1.56-.16-2.35-.16-2.96 0-4.73.8-5.65 1.39V3.14z\"/>–>\r\n<!– </g>–>\r\n<!– </g>–>\r\n<!– </svg>–>\r\n<!– </button>–>\r\n<!– <h4>{{ content.howto.other }}</h4>–>\r\n<!– <div class=\"subtitle\">{{ content.howto.click }}</div>–>\r\n<!– </div>–>\r\n<!– </div>–>\r\n\r\n\r\n <!– Shopping List –>\r\n<!– <div class=\"description\">–>\r\n<!– <div class=\"button-preview\">–>\r\n<!– <button aria-label=\"other flyers\" class=\"other-btn btn\">–>\r\n<!– <!– <span class=\"notify-badge\">0</span> –>–>\r\n<!– <svg width=\"34px\" height=\"34px\" viewBox=\"0 0 34 34\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">–>\r\n<!– <g id=\"-Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">–>\r\n<!– <g id=\"SuperC-header---English\" transform=\"translate(-1868.000000, -23.000000)\">–>\r\n<!– <g id=\"icon---list\" transform=\"translate(1868.000000, 23.000000)\">–>\r\n<!– <path d=\"M30,0 C32.209139,0 34,1.790861 34,4 L34,30 C34,32.209139 32.209139,34 30,34 L4,34 C1.790861,34 0,32.209139 0,30 L0,4 C0,1.790861 1.790861,0 4,0 L30,0 Z M30,1 L4,1 C2.40231912,1 1.09633912,2.24891996 1.00509269,3.82372721 L1,4 L1,30 C1,31.5976809 2.24891996,32.9036609 3.82372721,32.9949073 L4,33 L30,33 C31.5976809,33 32.9036609,31.75108 32.9949073,30.1762728 L33,30 L33,4 C33,2.40231912 31.75108,1.09633912 30.1762728,1.00509269 L30,1 Z\" id=\"Rectangle-Copy-14\" fill=\"\" fill-rule=\"nonzero\"></path>–>\r\n<!– <g id=\"Group\" transform=\"translate(7.000000, 9.000000)\" fill=\"#545454\">–>\r\n<!– <rect id=\"Rectangle-Copy-34\" x=\"6\" y=\"0\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-37\" x=\"0\" y=\"0\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-35\" x=\"6\" y=\"7\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-38\" x=\"0\" y=\"7\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-36\" x=\"6\" y=\"14\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-39\" x=\"0\" y=\"14\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– </g>–>\r\n<!– </g>–>\r\n<!– </g>–>\r\n<!– </g>–>\r\n<!– </svg>–>\r\n<!– </button>–>\r\n<!– <h4>{{ content.howto.shoppingList }}</h4>–>\r\n<!– <div class=\"subtitle\">{{ content.howto.shoppingListText }}</div>–>\r\n<!– </div>–>\r\n<!– </div>–>\r\n\r\n\r\n <!– details –>\r\n <div class=\"description\">\r\n <div class=\"button-preview\">\r\n <img alt=\"\" width=\"22px\" src=\"/icons/icon-hand-point.svg\" />\r\n <h4>{{ content.howto.details }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.detailsText }}</div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"section-group\">\r\n <!– Navigation Desktop –>\r\n <div>\r\n <FeatureHeading>{{ content.howto.nav }}</FeatureHeading>\r\n <div class=\"feature navigation\">\r\n <div class=\"description desktop\">\r\n <div class=\"button-preview\">\r\n <div class=\"btn btn--lg page\">\r\n <div class=\"page-num\">Page 5 OF 30</div>\r\n </div>\r\n\r\n <h4>{{ content.howto.pageScroll }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.scroll }}</div>\r\n </div>\r\n </div>\r\n <div class=\"description desktop\">\r\n <div class=\"button-preview\">\r\n <img alt=\"\" src=\"/icons/icon-onefinger-dragall.svg\" />\r\n <h4>{{ content.howto.drag }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.dragText }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!– View Options Desktop –>\r\n <div>\r\n <FeatureHeading>{{ content.howto.screen }}</FeatureHeading>\r\n <div class=\"feature\">\r\n <div class=\"description desktop\">\r\n <div class=\"button-preview\">\r\n <div class=\"zoom-group\" data-tour-item=\"zoom\">\r\n <button class=\"zoom-out\" :aria-label=\"content.zoomOut\" disabled><img :alt=\"content.zoomOut\" src=\"/images/icon-decrease.svg\" /></button>\r\n <div class=\"zoom-percent\">100%</div>\r\n <button class=\"zoom-in\" :aria-label=\"content.zoomIn\" disabled><img :alt=\"content.zoomIn\" src=\"/images/icon-increase.svg\" /></button>\r\n <button class=\"zoom-100\" :aria-label=\"content.resetZoom\" disabled>\r\n <svg width=\"22\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18 4l-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 01-2.8-.7l-1.46 1.46A7.93 7.93 0 0011 16c4.42 0 8-3.58 8-8h3l-4-4zM5 8c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0011 0C6.58 0 3 3.58 3 8H0l4 4 4-4H5z\" fill=\"currentColor\" fill-rule=\"nonzero\"/></svg>\r\n <!– <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-refresh-ccw\">\r\n <path d=\"M1 4v6h6M23 20v-6h-6\"/>\r\n <path d=\"M20.49 9A9 9 0 005.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 013.51 15\"/>\r\n </svg> –>\r\n </button>\r\n </div>\r\n <!– <div class=\"zoom-group\">\r\n <button aria-label=\"Zoom Out\" class=\"zoom-out has-tooltip\">\r\n <img alt=\"Zoom Out\" src=\"/images/icon-decrease-size.svg\">\r\n </button>\r\n <button aria-label=\"Reset Zoom\" disabled=\"disabled\" class=\"zoom-100 has-tooltip\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-refresh-ccw\">\r\n <path data-v-29e8c3c6=\"\" d=\"M1 4v6h6M23 20v-6h-6\"></path>\r\n <path data-v-29e8c3c6=\"\" d=\"M20.49 9A9 9 0 005.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 013.51 15\"></path>\r\n </svg>\r\n </button>\r\n <button aria-label=\"Zoom In\" class=\"zoom-in has-tooltip\">\r\n <img alt=\"Zoom In\" src=\"/images/icon-increase-size.svg\">\r\n </button>\r\n </div> –>\r\n <h4>{{ content.howto.zoom }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.symbols }}</div>\r\n </div>\r\n </div>\r\n <div class=\"description desktop\">\r\n <div class=\"button-preview\">\r\n <div class=\"btn btn--lg\">\r\n <svg width=\"24\" height=\"30\" viewBox=\"0 0 16 20\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.57 15.57v-7.8H10.3v7.8H6.86L11.43 20 16 15.57h-3.43zM4.57 0L0 4.43h3.43v7.8H5.7v-7.8h3.43L4.57 0z\" fill=\"currentColor\" fill-rule=\"nonzero\"/>\r\n </svg>\r\n </div>\r\n <h4>{{ content.howto.toggle }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.horizontal }}</div>\r\n </div>\r\n </div>\r\n <div class=\"description desktop\">\r\n <div class=\"button-preview\">\r\n <div class=\"btn btn--lg\">\r\n <svg width=\"18\" height=\"18\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\">\r\n <path d=\"M2 9H0v5h5v-2H2V9zM0 5h2V2h3V0H0v5zm12 7H9v2h5V9h-2v3zM9 0v2h3v3h2V0H9z\" fill=\"currentColor\" fill-rule=\"nonzero\"></path>\r\n </svg>\r\n </div>\r\n <h4>{{ content.howto.fullscreen }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.fullscreenText }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"mobile\">\r\n <!– Flyer List –>\r\n <div class=\"description\">\r\n <div style=\"\">\r\n <span class=\"pull-button\"\r\n data-tour-item=\"sidebar\"\r\n aria-label=\"Sidebar Pull Button\"\r\n :class=\"{fr:language=='fr'}\"\r\n >\r\n <span class=\"flyericon-text\" :class=\"{fr:language=='fr'}\">\r\n <img src=\"/images/icon-flyer.svg\" class=\"flyer-book\" width=\"16px\" height=\"14px\" style=\"opacity: 1\" :alt=\"content.seeOtherFlyers\" />\r\n <span class=\"seeOtherFlyers\" style=\"font-size:9px\">{{content.seeOtherFlyers}}</span>\r\n </span>\r\n <span>\r\n <img src=\"/images/right-arrow-only.svg\" class=\"arrow\" :class=\"{fr:this.language=='fr'}\" width=\"12px\" height=\"12px\" :alt=\"content.openSideBar\" />\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"mobile-content\">\r\n <h4>{{ content.howto.flyerList }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.flyerListSubtitle }}</div>\r\n </div>\r\n </div>\r\n\r\n <!– Other Flyers Mobile –>\r\n<!– <div class=\"description\">–>\r\n<!– <div><button aria-label=\"other flyers\" class=\"other-btn btn\">–>\r\n<!– <svg width=\"24\" height=\"17\" xmlns=\"http://www.w3.org/2000/svg\">–>\r\n<!– <g fill-rule=\"nonzero\" fill=\"none\">–>\r\n<!– <path d=\"M23.53 1.38h-1.58V.86c.01-.2-.13-.39-.33-.45C20.52.14 19.4 0 18.26 0 16.4 0 13.86.4 12 2.25 10.13.39 7.58 0 5.72 0 4.6 0 3.46.14 2.37.41a.45.45 0 00-.34.45v.52H.47c-.26 0-.47.2-.47.45v14.35c0 .25.2.45.47.45.08 0 .15-.02.22-.06.05-.02 4.7-2.48 11.2-.9H12.1c6.52-1.6 11.17.86 11.2.9.15.08.32.08.47 0a.45.45 0 00.23-.39V1.83c0-.24-.2-.45-.47-.45z\" fill=\"#545454\"/>–>\r\n<!– <g fill=\"#FFF\">–>\r\n<!– <path d=\"M5.36 12.6a19 19 0 00-2.36.16V1.3C3.84 1.09 4.7 1 5.57 1 7.2 1 9.43 1.38 11 3.14L11 14c-.9-.6-2.66-1.4-5.64-1.4zM13 3.14C14.56 1.39 16.8 1 18.42 1a12 12 0 012.58.29v11.48c-.78-.1-1.56-.16-2.35-.16-2.96 0-4.73.8-5.65 1.39V3.14z\"/>–>\r\n<!– </g>–>\r\n<!– </g>–>\r\n<!– </svg>–>\r\n<!– </button></div>–>\r\n<!– <div class=\"mobile-content\">–>\r\n<!– <h4>{{ content.howto.other }}</h4>–>\r\n<!– <div class=\"subtitle\">{{ content.howto.click }}</div>–>\r\n<!– </div>–>\r\n<!– </div>–>\r\n\r\n <!– Search Mobile –>\r\n <div class=\"description\">\r\n <div><button aria-label=\"Toggle Search\" class=\"search-toggle btn has-tooltip\">\r\n <span class=\"desktop\">{{ content.howto.searchBtn }}</span>\r\n <svg data-v-29e8c3c6=\"\" xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 512 512\">\r\n <path data-v-29e8c3c6=\"\" fill=\"currentColor\" d=\"M495 466.2L377.2 348.4c29.2-35.6 46.8-81.2 46.8-130.9C424 103.5 331.5 11 217.5 11 103.4 11 11 103.5 11 217.5S103.4 424 217.5 424c49.7 0 95.2-17.5 130.8-46.7L466.1 495c8 8 20.9 8 28.9 0 8-7.9 8-20.9 0-28.8zm-277.5-83.3C126.2 382.9 52 308.7 52 217.5S126.2 52 217.5 52C308.7 52 383 126.3 383 217.5s-74.3 165.4-165.5 165.4z\"></path>\r\n </svg>\r\n </button></div>\r\n <div class=\"mobile-content\">\r\n <h4>{{ content.howto.searchMob }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.filterMob }}</div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!– Filters mobile–>\r\n<!– <div class=\"description\">–>\r\n<!– <div><button aria-label=\"\" class=\"btn\">–>\r\n<!– <svg width=\"18\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\">–>\r\n<!– <g fill=\"currentColor\" fill-rule=\"evenodd\">–>\r\n<!– <path d=\"M0 15h18v-2H0v2zM0 1v2h18V1H0zm0 8h18V7H0v2z\" fill-rule=\"nonzero\"></path>–>\r\n<!– <circle cx=\"14\" cy=\"2\" r=\"2\"></circle>–>\r\n<!– <circle cx=\"4\" cy=\"8\" r=\"2\"></circle>–>\r\n<!– <circle cx=\"11\" cy=\"14\" r=\"2\"></circle>–>\r\n<!– </g>–>\r\n<!– </svg>–>\r\n<!– </button></div>–>\r\n<!– <div class=\"mobile-content\">–>\r\n<!– <h4>{{ content.howto.filterSingle }}</h4>–>\r\n<!– <div class=\"subtitle\">{{ content.howto.filterSingleText }}</div>–>\r\n<!– </div>–>\r\n<!– </div>–>\r\n\r\n <!– Full Screen Mobile –>\r\n <div class=\"description\">\r\n <div>\r\n <div class=\"btn btn--lg\">\r\n <svg width=\"18\" height=\"18\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\">\r\n <path d=\"M2 9H0v5h5v-2H2V9zM0 5h2V2h3V0H0v5zm12 7H9v2h5V9h-2v3zM9 0v2h3v3h2V0H9z\" fill=\"currentColor\" fill-rule=\"nonzero\"></path>\r\n </svg>\r\n </div></div>\r\n <div class=\"mobile-content\">\r\n <h4>{{ content.howto.fullscreen }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.fullscreenText }}</div>\r\n </div>\r\n </div>\r\n\r\n <!– Shopping List Mobile –>\r\n<!– <div class=\"description\">–>\r\n<!– <div>–>\r\n<!– <div class=\"btn btn--lg\">–>\r\n<!– <!– <span class=\"notify-badge\">0</span> –>–>\r\n<!– <svg width=\"34px\" height=\"34px\" viewBox=\"0 0 34 34\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">–>\r\n<!– <g id=\"-Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">–>\r\n<!– <g id=\"SuperC-header---English\" transform=\"translate(-1868.000000, -23.000000)\">–>\r\n<!– <g id=\"icon---list\" transform=\"translate(1868.000000, 23.000000)\">–>\r\n<!– <path d=\"M30,0 C32.209139,0 34,1.790861 34,4 L34,30 C34,32.209139 32.209139,34 30,34 L4,34 C1.790861,34 0,32.209139 0,30 L0,4 C0,1.790861 1.790861,0 4,0 L30,0 Z M30,1 L4,1 C2.40231912,1 1.09633912,2.24891996 1.00509269,3.82372721 L1,4 L1,30 C1,31.5976809 2.24891996,32.9036609 3.82372721,32.9949073 L4,33 L30,33 C31.5976809,33 32.9036609,31.75108 32.9949073,30.1762728 L33,30 L33,4 C33,2.40231912 31.75108,1.09633912 30.1762728,1.00509269 L30,1 Z\" id=\"Rectangle-Copy-14\" fill=\"\" fill-rule=\"nonzero\"></path>–>\r\n<!– <g id=\"Group\" transform=\"translate(7.000000, 9.000000)\" fill=\"#545454\">–>\r\n<!– <rect id=\"Rectangle-Copy-34\" x=\"6\" y=\"0\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-37\" x=\"0\" y=\"0\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-35\" x=\"6\" y=\"7\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-38\" x=\"0\" y=\"7\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-36\" x=\"6\" y=\"14\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– <rect id=\"Rectangle-Copy-39\" x=\"0\" y=\"14\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>–>\r\n<!– </g>–>\r\n<!– </g>–>\r\n<!– </g>–>\r\n<!– </g>–>\r\n<!– </svg>–>\r\n<!– </div></div>–>\r\n<!– <div class=\"mobile-content\">–>\r\n<!– <h4>{{ content.howto.shoppingList }}</h4>–>\r\n<!– <div class=\"subtitle\">{{ content.howto.shoppingListText }}</div>–>\r\n<!– </div>–>\r\n<!– </div>–>\r\n\r\n <div class=\"description\">\r\n <div><img alt=\"\" src=\"/images/icon-navigation.svg\" /></div>\r\n <div class=\"mobile-content\">\r\n <h4>{{ content.howto.nav }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.navMob }}</div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"description\">\r\n <div><img alt=\"\" width=\"22px\" src=\"/icons/icon-hand-point.svg\" /></div>\r\n <div class=\"mobile-content\">\r\n <h4>{{ content.howto.details }}</h4>\r\n <div class=\"subtitle\">{{ content.howto.detailsText }}</div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>-->\r\n </div>\r\n </scroll-container>\r\n <div class=\"help-footer desktop\">\r\n <div class=\"subtitle desktop\">{{ content.howto.info }}</div>\r\n <div class=\"subtitle mobile\">{{ content.howto.info }}</div>\r\n <button :aria-label=\"content.howto.tour\" class=\"button walkthrough\" @click.stop.prevent=\"viewTour\">{{ content.howto.tour }}</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ClickOutside from 'vue-click-outside'\r\nimport {mapActions, mapGetters, mapState} from 'vuex';\r\n//import FeatureHeading from '../../features/help/FeatureHeading.vue';\r\nimport ScrollContainer from \"@/components/scroll-container/ScrollContainer\";\r\nimport HelpScreen from \"@/features/help/HelpScreen.vue\";\r\n\r\n\r\nexport default {\r\n components: {\r\n // eslint-disable-next-line vue/no-unused-components\r\n HelpScreen,\r\n ScrollContainer,\r\n /*FeatureHeading*/\r\n },\r\n directives: {\r\n ClickOutside\r\n },\r\n\r\n data() {\r\n return {\r\n toastContent: null,\r\n ready: false\r\n }\r\n },\r\n\r\n computed: {\r\n ...mapGetters(['content','language']),\r\n ...mapGetters('screen', ['flyerOrientation']),\r\n ...mapState('toast', ['showHelp']),\r\n\r\n columnView(){\r\n return this.flyerOrientation === 'vertical';\r\n }\r\n },\r\n\r\n methods: {\r\n ...mapActions('toast', ['toggleHelp', 'viewTour']),\r\n onScrollReady(c){\r\n c._sz.scale(1);\r\n },\r\n\r\n closeHelp(){\r\n if(this.ready){\r\n this.toggleHelp(false);\r\n // console.log('close help');\r\n }\r\n }\r\n\r\n // hashCode(s) {\r\n // var h = 0, l = s.length, i = 0;\r\n // if ( l > 0 )\r\n // while (i < l)\r\n // h = (h << 5) - h + s.charCodeAt(i++) | 0;\r\n // return h;\r\n // }\r\n },\r\n\r\n mounted() {\r\n // this.payload.id = this.hashCode(this.$refs.feature.innerText);\r\n // this.checkDisplayToast(this.payload.id);\r\n this.toastContent = this.$refs.toastContent;\r\n\r\n },\r\n\r\n watch:{\r\n/* showHelp(v){\r\n if(v){\r\n setTimeout(() => {\r\n this.ready = true;\r\n }, 1000)\r\n }\r\n this.ready = false;\r\n\r\n }*/\r\n }\r\n\r\n // }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n .description{\r\n display: flex;\r\n flex-flow: row;\r\n text-align: left;\r\n align-items: center;\r\n > :first-child{\r\n width: calc(55px + 1em);\r\n }\r\n .mobile-content{\r\n flex-basis: 100%;\r\n }\r\n .pull-button{\r\n .arrow{\r\n top:2.5%;\r\n left:58px;\r\n }\r\n .fr{\r\n left:72px;\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n.modal-wpr {\r\n\r\n --scroll-bar-width: 10px;\r\n --scroll-bar-thumb-size: 135px;\r\n --scroll-bar-track-margin: 67.5px;\r\n\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-flow: column;\r\n\r\n\r\n\r\n .modal {\r\n background-color: #FFF;\r\n /*margin-top: 75px;*/\r\n border: 1px solid #BBBBBB;\r\n border-radius: 4px;\r\n /* overflow: auto;*/\r\n max-height: calc(100% - 1em);\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n display:flex;\r\n flex-flow: column;\r\n max-width: calc(100% - 4em);\r\n\r\n .header {\r\n background-color: var(--secondary-color);\r\n color: var(--primary-text-color);\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 10px;\r\n\r\n h2 {\r\n font-size: 18px;\r\n text-transform: uppercase;\r\n font-weight: 400;\r\n }\r\n\r\n .close-btn {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .subtitle {\r\n padding-top: 6px;\r\n font-size: 12px;\r\n }\r\n\r\n .content {\r\n display: flex;\r\n flex-direction: column;\r\n color: #545454;\r\n position: relative;\r\n flex: 1 1 auto;\r\n overflow: hidden;\r\n /*.scroll-container{\r\n position: absolute;\r\n top:0px;\r\n bottom:0px;\r\n left:0px;\r\n right:0px;\r\n }*/\r\n .content-container{\r\n text-align:center;\r\n padding: 8px;\r\n }\r\n\r\n\r\n\r\n .help-footer{\r\n text-align: center;\r\n border-top: 1px solid #545454;\r\n padding: 6px 0px 15px;\r\n }\r\n\r\n .f-half {\r\n display: flex;\r\n column-gap: 1em;\r\n\r\n flex-direction: column;\r\n\r\n > div {\r\n flex-basis: 100%;\r\n display: flex;\r\n flex-flow: column;\r\n }\r\n }\r\n\r\n .content-container{\r\n width: 700px;\r\n }\r\n\r\n .feature {\r\n background: #eee;\r\n margin: 12px 0;\r\n display: flex;\r\n justify-content: center;\r\n flex: 1;\r\n //flex-wrap: wrap;\r\n .description {\r\n display: flex;\r\n font-size: 14px;\r\n padding: 15px 0;\r\n flex: 1 1 25%;\r\n .button-preview {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n padding: 0 20px;\r\n\r\n h4 {\r\n text-transform: uppercase;\r\n padding-top: 16px;\r\n white-space: nowrap;\r\n }\r\n\r\n .subtitle {\r\n text-align: center;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.pull-button{\r\n padding:4px;\r\n margin-top:-6px;\r\n width:35px;\r\n height:53px;\r\n background-color: rgba(0,0,0,0.75);\r\n opacity: 1;\r\n display: flex;\r\n justify-content: center;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.7);\r\n border-top-right-radius: 10px;\r\n border-bottom-right-radius: 10px;\r\n border-top: 1px solid #FFFFFF;\r\n border-right: 1px solid #FFFFFF;\r\n border-bottom: 1px solid #FFFFFF;\r\n color:#FFFFFF;\r\n}\r\n\r\n.pull-button.fr{\r\n height:55px;\r\n width:50px;\r\n margin-top:-5px;\r\n padding-left:4px;\r\n}\r\n.flyericon-text{\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n}\r\n\r\n.arrow{\r\n top:5.5%;\r\n left:102px;\r\n display:flex;\r\n width:4px;\r\n opacity:0.9;\r\n cursor: default;\r\n}\r\n\r\n.arrow.fr{\r\n top:4.5%;\r\n left:124px;\r\n}\r\n\r\n.notify-badge{\r\n position:absolute;\r\n right:-10px;\r\n top:-10px;\r\n background:red;\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 20px;\r\n height: 20px;\r\n text-align: center;\r\n border-radius: 50%;\r\n color:white;\r\n font-size:10px;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover{\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n /*padding: 5px;*/\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n position: relative;\r\n}\r\n\r\n\r\n.search-toggle {\r\n display: flex;\r\n align-items: center;\r\n width: auto;\r\n padding: 5px 12px;\r\n background: var(--button-background);\r\n color: var(--button-text-color);\r\n border: var(--button-border);\r\n font-size: 0.75em;\r\n box-shadow: unset;\r\n cursor: pointer;\r\n pointer-events: unset;\r\n}\r\n\r\n.search-toggle > span {\r\n margin-right: 8px;\r\n text-transform: uppercase;\r\n}\r\n\r\n\r\n.zoom-group {\r\n display: flex;\r\n justify-self: end;\r\n /*margin: 0 2px;*/\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n height: 34px;\r\n background-color: #FFF;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n}\r\n\r\n.zoom-group > * {\r\n border: 0;\r\n}\r\n\r\n.zoom-in {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.zoom-in:disabled {\r\n cursor: inherit;\r\n}\r\n\r\n.zoom-percent {\r\n font-size: 14px;\r\n color: #545454;\r\n display: flex;\r\n align-items: center;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.zoom-100 {\r\n font-size: 14px;\r\n padding: 0 8px;\r\n border-left: 1px solid #BBB;\r\n cursor: inherit;\r\n}\r\n\r\n.zoom-out {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.zoom-in, .zoom-out{\r\n padding: 0;\r\n width: 30px;\r\n}\r\n\r\n.zoom-out img, .zoom-in img{\r\n vertical-align: middle;\r\n}\r\n\r\n\r\n\r\n.zoom-out:disabled {\r\n cursor: inherit;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n text-align: left !important;\r\n }\r\n}\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n}*/\r\n\r\n.navigation{\r\n .description{\r\n flex-basis: 50%;\r\n justify-content: center;\r\n }\r\n}\r\n\r\n@media only screen and (max-height: 850px ) and (min-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: row !important;\r\n }\r\n .content-container{\r\n width: 1060px;\r\n .feature {\r\n flex-wrap: nowrap;\r\n .description{\r\n .pull-button{\r\n .arrow{\r\n top:7.5%;\r\n left:146px;\r\n }\r\n .fr{\r\n left:152px;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .section-group{\r\n display: flex;\r\n div:first-child .feature{\r\n margin-right: 8px;\r\n }\r\n div:last-child .feature{\r\n margin-left: 8px;\r\n }\r\n > div {\r\n display:flex;\r\n flex: 1 1 50%;\r\n flex-direction: column;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px){\r\n .modal-wpr .modal{\r\n .content {\r\n .content-container{\r\n width: 575px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n\r\n\r\n\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n /*.description {\r\n padding-top: 10px;\r\n padding-left: 100px;\r\n padding-bottom: 70px;\r\n position: relative;\r\n }*/\r\n\r\n /*.btn.page {\r\n transform: rotate(90deg);\r\n width: 146px;\r\n position: absolute;\r\n left: 0;\r\n bottom: 38%;\r\n }*/\r\n\r\n\r\n h4, .subtitle {\r\n text-align: left;\r\n width: 100%;\r\n }\r\n .subtitle + .subtitle {\r\n margin-top: 1em;\r\n }\r\n }\r\n}\r\n\r\n/* Mobile */\r\n@media (max-width: 1200px) {\r\n // .walkthrough {\r\n // display: none;\r\n // }\r\n}\r\n@media (max-width: 1023px) {\r\n .walkthrough {\r\n display: none;\r\n }\r\n .mobile {\r\n display: flex !important;\r\n }\r\n .desktop {\r\n display: none !important;\r\n }\r\n\r\n .modal-wpr .modal {\r\n /* margin-top: 140px;\r\n width: 90% !important;*/\r\n\r\n .content {\r\n .f-half {\r\n /*flex-direction: row !important;*/\r\n }\r\n .content-container{\r\n width: 400px;\r\n min-height:500px;\r\n }\r\n }\r\n\r\n .header {\r\n padding-bottom: 4px;\r\n h2 {\r\n font-size: 14px;\r\n }\r\n }\r\n }\r\n\r\n .heading {\r\n display: none;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n display: block;\r\n background: none;\r\n padding: 0 6%;\r\n\r\n .description {\r\n padding: 0;\r\n margin-bottom: 20px;\r\n height: 50px;\r\n }\r\n\r\n .button-preview {\r\n display: block;\r\n position: relative;\r\n padding-left: 60px;\r\n width: 100%;\r\n\r\n h4 {\r\n padding: 0;\r\n }\r\n\r\n .subtitle {\r\n text-align: left;\r\n }\r\n\r\n .btn {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n }\r\n }\r\n\r\n .search-toggle {\r\n padding: 5px 8px;\r\n }\r\n\r\n .subtitle.mobile {\r\n text-align: center;\r\n margin-bottom: 20px;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatureToast.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatureToast.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FeatureToast.vue?vue&type=template&id=e7dcd480&scoped=true&\"\nimport script from \"./FeatureToast.vue?vue&type=script&lang=js&\"\nexport * from \"./FeatureToast.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FeatureToast.vue?vue&type=style&index=0&id=e7dcd480&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e7dcd480\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.ready)?_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeTour),expression:\"closeTour\"}],staticClass:\"tour-window\",style:(_vm.position)},[_c('div',[_c('div',{staticClass:\"arrow\",style:(_vm.arrowPos)}),_c('div',{staticClass:\"tour-window-root\"},[_c('div',{staticClass:\"heading\"}),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"item-name\"},[_vm._v(_vm._s(_vm.tourData.title))]),_vm._v(\" \"+_vm._s(_vm.tourData.text)+\" \")]),_c('div',{staticClass:\"buttons\"},[_c('button',{staticClass:\"flyer-tour-btn skip-button\",class:{lastItem:_vm.isLastItem},attrs:{\"aria-label\":_vm.skipCaption},on:{\"click\":_vm.skip}},[_c('img',{staticClass:\"icon-close\",attrs:{\"src\":_vm.getIcon(),\"alt\":\"Skip Tour\"}}),_c('span',[_vm._v(_vm._s(_vm.skipCaption))])]),_c('div',{ref:\"progressTrack\",staticClass:\"progress-track\",class:{lastItem:_vm.isLastItem}},[_c('span',{ref:\"progressThumb\",staticClass:\"progress-thumb\"})]),_c('button',{staticClass:\"flyer-tour-btn next\",class:{lastItem:_vm.isLastItem},attrs:{\"aria-label\":_vm.nextCaption},on:{\"click\":_vm.next}},[_c('span',[_vm._v(_vm._s(_vm.nextCaption))]),_c('img',{staticClass:\"icon-chevron\",attrs:{\"src\":\"/images/icon-chevron.svg\",\"alt\":\"next\"}})])])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"ready\" v-click-outside=\"closeTour\" :style=\"position\" class=\"tour-window\">\r\n <div>\r\n <div :style=\"arrowPos\" class=\"arrow\"></div>\r\n <div class=\"tour-window-root\">\r\n <div class=\"heading\"> </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"item-name\">{{ tourData.title }}</div>\r\n {{ tourData.text }}\r\n </div>\r\n <div class=\"buttons\">\r\n <button :aria-label=\"skipCaption\" class=\"flyer-tour-btn skip-button\" :class=\"{lastItem:isLastItem}\" @click=\"skip\">\r\n <img :src=\"getIcon()\" alt=\"Skip Tour\" class=\"icon-close\">\r\n <span>{{ skipCaption }}</span>\r\n </button>\r\n\r\n <div class=\"progress-track\" ref=\"progressTrack\" :class=\"{lastItem:isLastItem}\">\r\n <span class=\"progress-thumb\" ref=\"progressThumb\">\r\n<!-- {{ `${index + 1} ${content.of} ${totalItems}` }}-->\r\n </span>\r\n </div>\r\n\r\n <button :aria-label=\"nextCaption\" class=\"flyer-tour-btn next\" :class=\"{lastItem:isLastItem}\" @click=\"next\">\r\n <span>{{ nextCaption }}</span>\r\n <img src=\"/images/icon-chevron.svg\" alt=\"next\" class=\"icon-chevron\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters} from \"vuex\";\r\nimport ClickOutside from 'vue-click-outside'\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport Lytics from \"@/classes/Lytics\";\r\n//import AppConfig from \"@/classes/AppConfig\";\r\n\r\nfunction calcDist(p1, p2) {\r\n return Math.sqrt((p2.x - p1.x) ^ 2 + (p2.y - p1.y) ^ 2);\r\n}\r\n\r\nexport default {\r\n name: \"TourWindow\",\r\n mixins: [featureMixin],\r\n data() {\r\n return {\r\n featurePath: 'tour',\r\n items: [],\r\n index: 0,\r\n position: null,\r\n arrowPos: null,\r\n padding: 10,\r\n subHeaderState: null,\r\n ready: false,\r\n filteredItems: []\r\n }\r\n },\r\n directives: {\r\n ClickOutside\r\n },\r\n computed: {\r\n ...mapGetters(['content', 'highlightResults']),\r\n ...mapGetters('filters', ['isFilterPanelOpen']),\r\n tourOrder() {\r\n return [\r\n 'sidebar',\r\n 'fullscreen',\r\n 'searchFilter',\r\n this.highlightResults ? null : 'search',\r\n 'filterCategories',\r\n 'discountFilter',\r\n 'clearDiscount',\r\n 'exitSearch',\r\n 'zoom',\r\n 'orientation',\r\n 'pdf',\r\n 'otherFlyers',\r\n 'shoppingList',\r\n 'help',\r\n ].filter(item => item !== null);\r\n },\r\n isVisible() {\r\n return this.ready;\r\n },\r\n tourData() {\r\n return this.content.walkthrough[this.tourId] || {};\r\n },\r\n tourId() {\r\n return this.filteredItems[this.index];\r\n },\r\n nextCaption() {\r\n if (this.isLastItem) return this.content.finish;\r\n return this.content.next;\r\n },\r\n skipCaption() {\r\n if (this.isLastItem) return this.content.restart;\r\n return this.content.skipTour;\r\n },\r\n isLastItem() {\r\n return this.index == (this.totalItems - 1)\r\n },\r\n totalItems() {\r\n return this.filteredItems.length;\r\n },\r\n includeFilterPanel() {\r\n return this.config?.includeFilterPanel;\r\n }\r\n },\r\n mounted() {\r\n if(this.includeFilterPanel) {\r\n this.subHeaderState = this.isFilterPanelOpen;\r\n this.setFilterPanelState(true);\r\n }\r\n\r\n /*if(AppConfig.AppConf?.title.toLowerCase().includes(\"ct\".toLowerCase()))\r\n this.setFilterPanelState(true);*/\r\n this.$nextTick(() => {\r\n setTimeout(() => {\r\n const ti = document.querySelectorAll(\"[data-tour-item]\");\r\n /*\tconsole.log('Tour Items:', ti)*/\r\n if (ti.length < 1) {\r\n this.dismissTour();\r\n return;\r\n }\r\n this.items = [];\r\n ti.forEach((node) => {\r\n this.items.push({\r\n node,\r\n item: node.getAttribute('data-tour-item'),\r\n rect: node.getBoundingClientRect(),\r\n dist: calcDist({x: 0, y: 0}, node.getBoundingClientRect())\r\n })\r\n //this.items.push(node.getAttribute('data-tour-item'))\r\n })\r\n\r\n // console.log('Items Rects:', this.items);\r\n\r\n this.filteredItems = this.items.filter((item) => {\r\n return item.rect.width && item.rect.height && this.content.walkthrough[item.item];\r\n }).sort((a, b) => {\r\n return a.rect.left - b.rect.left;\r\n }).map((item) => {\r\n return item.item;\r\n })\r\n\r\n // console.log('Filtered Tour Items:', this.filteredItems);\r\n\r\n /*this.filteredItems = this.tourOrder.filter((item) => {\r\n return this.items.includes(item);\r\n })*/\r\n\r\n\r\n this.refresh();\r\n this.observer = new ResizeObserver(this.refresh);\r\n this.observer.observe(document.querySelector('#app'));\r\n this.ready = true;\r\n }, 100);\r\n\r\n }\r\n )\r\n Lytics.TriggerTutorialViews();\r\n },\r\n\r\n beforeDestroy() {\r\n if(this.includeFilterPanel) {\r\n this.setFilterPanelState(this.subHeaderState);\r\n }\r\n if (this.observer) this.observer.disconnect();\r\n },\r\n\r\n methods: {\r\n ...mapActions('toast', ['dismissTour']),\r\n ...mapActions('filters', ['setFilterPanelState']),\r\n refresh() {\r\n // if(window.innerWidth < 1200){\r\n if (window.innerWidth < 1023) {\r\n this.dismissTour();\r\n return;\r\n }\r\n const tourWindow = document.querySelector('.tour-window');\r\n if (!tourWindow) return;\r\n const item = document.querySelector(`[data-tour-item='${this.tourId}']`);\r\n const container = document.querySelector('#app').getBoundingClientRect();\r\n let pos = null;\r\n let arrowPos = null\r\n if (item) {\r\n\r\n const bounds = item.getBoundingClientRect();\r\n const wb = tourWindow.getBoundingClientRect();\r\n let targetMid = bounds.left + (bounds.width / 2);\r\n\r\n let left = bounds.left - (wb.width - bounds.width) / 2;\r\n let bottom = bounds.bottom + this.padding;\r\n\r\n if (left < container.left) {\r\n left = container.left + this.padding;\r\n }\r\n\r\n if (left + wb.width > container.right) {\r\n left = (container.right - wb.width) - this.padding;\r\n }\r\n\r\n pos = {\r\n top: bottom + 'px',\r\n left: left + 'px'\r\n }\r\n\r\n arrowPos = {\r\n left: 'calc(50% + ' + (targetMid - (left + wb.width / 2)) + 'px)'\r\n }\r\n\r\n }\r\n this.position = pos;\r\n this.arrowPos = arrowPos;\r\n },\r\n getIcon(){\r\n return !this.isLastItem ? '/images/icon-close-red.svg' : '/images/icon-restart.svg'\r\n },\r\n next() {\r\n if (this.isLastItem) {\r\n this.dismissTour(true);\r\n Lytics.TriggerTutorialComplete(this.totalItems);\r\n } else {\r\n if (this.index < this.items.length - 1) this.index++;\r\n this.moveThumb()\r\n this.refresh()\r\n }\r\n },\r\n moveThumb(){\r\n const progressTrackWidth = this.$refs.progressTrack.offsetWidth;\r\n const thumbWidth = this.$refs.progressThumb.offsetWidth;\r\n const maxMovement = progressTrackWidth - thumbWidth;\r\n\r\n const movement = (this.index / (this.totalItems-0.9))*maxMovement;\r\n const maxThumbPosition = progressTrackWidth - thumbWidth\r\n this.$refs.progressThumb.style.left = Math.min(movement, maxThumbPosition) + 0.8 + 'px'\r\n },\r\n prev() {\r\n if (this.index > 0) this.index--;\r\n this.refresh();\r\n },\r\n skip() {\r\n if (!this.isLastItem) {\r\n this.dismissTour(true);\r\n Lytics.TriggerTutorialSkip(this.index + 1, this.totalItems)\r\n } else {\r\n this.index = 0;\r\n this.moveThumb()\r\n this.refresh();\r\n }\r\n\r\n },\r\n closeTour() {\r\n console.log('closeTour')\r\n this.dismissTour(true);\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.tour-window {\r\n position: absolute;\r\n z-index: 1000;\r\n font-size: 14px;\r\n width: 325px;\r\n transition: All 300ms;\r\n\r\n * {\r\n transition: All 300ms;\r\n }\r\n\r\n filter: drop-shadow(2px 2px 3px #000);\r\n\r\n .tour-window-root {\r\n border-radius: 4px;\r\n overflow: hidden;\r\n background-color: #fff;\r\n\r\n .heading {\r\n display: flex;\r\n justify-content: space-between;\r\n background-color: var(--secondary-color);\r\n color: var(--primary-text-color);\r\n border-bottom: 1px solid #eee;\r\n margin: 0;\r\n padding: 5px 10px;\r\n }\r\n\r\n .content {\r\n padding: 1em;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5em;\r\n line-height:20px;\r\n\r\n .item-name {\r\n font-weight: bold;\r\n color: var(--secondary-color);\r\n }\r\n }\r\n }\r\n\r\n .buttons {\r\n padding: 0 0.9em 1em;\r\n display: flex;\r\n gap: 0.5em;\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n\r\n .flyer-tour-btn{\r\n border: none;\r\n white-space: nowrap;\r\n padding: 0;\r\n display:flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n font-weight: 900;\r\n }\r\n .flyer-tour-btn.lastItem{\r\n white-space: pre-wrap;\r\n }\r\n\r\n .flyer-tour-btn.skip-button {\r\n color: #EE3124;\r\n\r\n\r\n span:hover{\r\n filter:brightness(90%);\r\n }\r\n\r\n &:hover {\r\n filter: none;\r\n }\r\n\r\n .icon-close{\r\n width:1em;\r\n margin-right:5px;\r\n }\r\n .icon-close:hover{\r\n filter:brightness(90%)\r\n }\r\n }\r\n\r\n .progress-track{\r\n background: #E6E6E6;\r\n width: 39%;\r\n height: 5px;\r\n border-radius:10px;\r\n position: relative;\r\n\r\n .progress-thumb{\r\n background: #c8c9c7;\r\n border-radius:10px;\r\n position:absolute;\r\n height: 100%;\r\n width: 20px;\r\n transition: left 0.5s ease;\r\n }\r\n }\r\n .progress-track.lastItem{\r\n margin-left:-5px;\r\n }\r\n\r\n .flyer-tour-btn.next.lastItem{\r\n padding-left: 10px;\r\n }\r\n\r\n .flyer-tour-btn.next{\r\n color: var(--tertiary-color);\r\n\r\n\r\n span:hover{\r\n filter:brightness(90%);\r\n }\r\n\r\n &:hover {\r\n filter: none;\r\n }\r\n\r\n .icon-chevron{\r\n width:1em;\r\n margin-left:5px;\r\n }\r\n .icon-chevron:hover{\r\n filter:brightness(90%)\r\n }\r\n\r\n }\r\n\r\n\r\n .arrow {\r\n position: absolute;\r\n transform: translate(-50%, -50%) rotateZ(45deg);\r\n width: 12px;\r\n height: 12px;\r\n background-color: var(--secondary-color);\r\n top: 0;\r\n z-index: -1;\r\n }\r\n}\r\n\r\n// @media (max-width: 1023px) {\r\n// .tour-window {\r\n// display: none;\r\n// }\r\n// }\r\n\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TourWindow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TourWindow.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TourWindow.vue?vue&type=template&id=167f9d1e&scoped=true&\"\nimport script from \"./TourWindow.vue?vue&type=script&lang=js&\"\nexport * from \"./TourWindow.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TourWindow.vue?vue&type=style&index=0&id=167f9d1e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"167f9d1e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-wpr\"},[_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeVideo),expression:\"closeVideo\"}],staticClass:\"modal\"},[_c('div',{staticClass:\"modal-header\"},[_c('button',{staticClass:\"closeBtn\",attrs:{\"aria-label\":\"Close\",\"data-dismiss\":\"modal\",\"type\":\"button\"},on:{\"click\":_vm.closeVideo}},[_c('img',{attrs:{\"src\":\"/images/icon-close-white.svg\",\"alt\":\"\"}})])]),_c('video',{ref:\"video\",attrs:{\"src\":_vm.videoSrc,\"autoplay\":\"\",\"controls\":\"\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeVideo.apply(null, arguments)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"modal-wpr\">\r\n\t\t<div v-click-outside=\"closeVideo\" class=\"modal\">\r\n\t\t\t<div class=\"modal-header\">\r\n\t\t\t\t<button aria-label=\"Close\" class=\"closeBtn\" data-dismiss=\"modal\" type=\"button\" @click=\"closeVideo\">\r\n\t\t\t\t\t<img src=\"/images/icon-close-white.svg\" alt=\"\" />\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<video ref=\"video\" :src=\"videoSrc\" autoplay controls @keyup.esc=\"closeVideo\"></video>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters, mapState } from 'vuex'\r\nimport Lytics from \"@/classes/Lytics\";\r\nimport ClickOutside from 'vue-click-outside'\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tdirectives: {\r\n\t\tClickOutside\r\n\t},\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: \"videoModal\",\r\n\t\t\tupdateVideoProgress: null\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapState(['currentVideo']),\r\n\t\t...mapGetters('config', ['branding']),\r\n\t\taccessKey() {\r\n\t\t\treturn this?.config?.accessKey || '';\r\n\t\t},\r\n\t\tvideoSrc() {\r\n\t\t\treturn `${this.currentVideo}`;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tmethods: {\r\n\t\t...mapActions(['setCurrentVideo']),\r\n\r\n\t\tcloseVideo() {\r\n\t\t\tthis.setCurrentVideo(null);\r\n\t\t},\r\n\r\n\t\tvideoLoadedLytics() {\r\n\t\t\tconsole.log('video length', this.$refs.video.duration)\r\n\t\t\tLytics.TriggerVideoLength({\r\n\t\t\t\tlength: this.$refs.video.duration\r\n\t\t\t})\r\n\r\n\t\t\tLytics.TriggerVideoClick(\r\n\t\t\t\tthis.videoSrc,\r\n\t\t\t\tthis.$refs.video.duration\r\n\t\t\t)\r\n\t\t},\r\n\r\n\t\tvideoProgressLytics(progress) {\r\n\t\t\tLytics.TriggerVideoProgress({\r\n\t\t\t\turl: this.videoSrc,\r\n\t\t\t\tduration: this.$refs.video.duration,\r\n\t\t\t\tprogress\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\r\n\tmounted() {\r\n\t\tconst video = this.$refs.video;\r\n\t\tlet lastPercentageLogged = 0;\r\n\r\n\t\tthis.updateVideoProgress = () => {\r\n\t\t\tconst percentagePlayed = Math.floor((100 / video.duration) * video.currentTime);\r\n\r\n\t\t\tif (percentagePlayed >= 25 && lastPercentageLogged < 25) {\r\n\t\t\t\tthis.videoProgressLytics(25);\r\n\t\t\t\tlastPercentageLogged = 25;\r\n\t\t\t} else if (percentagePlayed >= 50 && lastPercentageLogged < 50) {\r\n\t\t\t\tthis.videoProgressLytics(50);\r\n\t\t\t\tlastPercentageLogged = 50;\r\n\t\t\t} else if (percentagePlayed >= 75 && lastPercentageLogged < 75) {\r\n\t\t\t\tthis.videoProgressLytics(75);\r\n\t\t\t\tlastPercentageLogged = 75;\r\n\t\t\t} else if (percentagePlayed >= 100 && lastPercentageLogged < 100) {\r\n\t\t\t\tthis.videoProgressLytics(100);\r\n\t\t\t\tLytics.TriggerVideoCompletion({\r\n\t\t\t\t\turl: this.videoSrc,\r\n\t\t\t\t\tduration: this.$refs.video.duration,\r\n\t\t\t\t});\r\n\t\t\t\tlastPercentageLogged = 100;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvideo.addEventListener('timeupdate', this.updateVideoProgress, false)\r\n\t\t\r\n\t\tthis.$refs.video.focus();\r\n\t\tthis.$refs.video.addEventListener('loadeddata', this.videoLoadedLytics, false)\r\n\t},\r\n\r\n\tbeforeDestroy() {\r\n\t\tthis.$refs.video.removeEventListener('loadeddata', this.videoLoadedLytics)\r\n\t\tthis.$refs.video.removeEventListener('timeupdate', this.updateVideoProgress)\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.modal-header {\r\n\tdisplay: flex !important;\r\n\tflex-flow: row-reverse !important;\r\n}\r\n\r\n.closeBtn {\r\n\twidth: 25px;\r\n\theight: 25px;\r\n\tposition: absolute;\r\n\tz-index: 99;\r\n\tborder-radius: 50px;\r\n\tbackground-color: red;\r\n\tborder: none;\r\n\tmargin: 10px;\r\n}\r\n\r\n.modal-wpr {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tright: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tbackground-color: rgba(0, 0, 0, 0.75);\r\n\tz-index: 99;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tflex-flow: column;\r\n\r\n\t.modal {\r\n\t\tmax-width: 95%;\r\n max-height: 82%;\r\n margin-top: 1.5em;\r\n\r\n\t\tvideo {\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 100%;\r\n max-height: 80vh;\r\n max-width: 80vw;\r\n object-fit: contain;\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VideoModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VideoModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VideoModal.vue?vue&type=template&id=0fddef36&scoped=true&\"\nimport script from \"./VideoModal.vue?vue&type=script&lang=js&\"\nexport * from \"./VideoModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VideoModal.vue?vue&type=style&index=0&id=0fddef36&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0fddef36\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled && _vm.showPdp)?_c('div',{ref:\"pdpPopup\",staticClass:\"modal-wpr\",on:{\"click\":_vm.closePdp}},[_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closePdp),expression:\"closePdp\"}],class:(\"modal \" + _vm.flyerOrientation),on:{\"click\":function($event){$event.stopPropagation();}}},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.content.pdpTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.closePdp,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closePdp.apply(null, arguments)}}},[_c('img',{attrs:{\"src\":\"/images/icon-close-white.svg\",\"alt\":\"Close\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"pdpContainer\"},[(_vm.isAdonis)?[_c('h2',[_vm._v(\" \"+_vm._s(_vm.currentProduct.productDescription)+\" \")])]:[(_vm.currentProduct.productFr!==null)?_c('h2',{attrs:{\"tabindex\":\"0\"}},[_vm._v(_vm._s(_vm.currentProduct.productFr))]):_vm._e(),(_vm.currentProduct.productEn && _vm.currentProduct.productFr)?_c('h2',[_vm._v(\" | \")]):_vm._e(),(_vm.currentProduct.productEn !==null)?_c('h2',[_vm._v(\" \"+_vm._s(_vm.currentProduct.productEn)+\" \")]):_vm._e()],_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.currentProduct.productImage}}),(_vm.language == 'en')?_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.currentProduct.priceQuantity)?_c('span',[_vm._v(_vm._s(_vm.currentProduct.priceQuantity)+\"/ \")]):_vm._e(),(_vm.currentProduct.salePricePrefixEn)?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.salePricePrefixEn)+\" \")]):_vm._e(),(\n _vm.currentProduct.salePrice == null ||\n _vm.currentProduct.salePrice === '' ||\n _vm.currentProduct.salePrice === '$NaN' ||\n _vm.currentProduct.salePrice === 'NaN$'\n )?_c('span'):_vm._e(),(_vm.currentProduct.salePrice === null && _vm.currentProduct.salePriceFr !== null)?_c('span',[_vm._v(\"$\"+_vm._s(_vm.currentProduct.salePriceFr))]):(_vm.currentProduct.salePrice==='3.99 Ã 7.99')?_c('span',[_vm._v(\" $3.99 Ã $7.99\")]):(isNaN(_vm.currentProduct.salePrice))?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.salePrice)+\" \")]):(_vm.currentProduct.salePrice.includes('Ã '))?_c('span',[_vm._v(\" $\"+_vm._s(_vm.currentProduct.salePrice)+\" \")]):_c('span',[_vm._v(\" $\"+_vm._s(parseFloat(_vm.currentProduct.salePrice).toFixed(2)))]),(_vm.currentProduct.promoUnitEn)?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.promoUnitEn)+\" \")]):_vm._e(),(_vm.currentProduct.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.currentProduct.alternatePrice))]):_vm._e()])]):_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.currentProduct.priceQuantity)?_c('span',[_vm._v(_vm._s(_vm.currentProduct.priceQuantity)+\"/ \")]):_vm._e(),(_vm.currentProduct.salePricePrefixFr)?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.salePricePrefixFr)+\" \")]):_vm._e(),(\n _vm.currentProduct.salePrice == null ||\n _vm.currentProduct.salePrice === '' ||\n _vm.currentProduct.salePrice === '$NaN' ||\n _vm.currentProduct.salePrice === 'NaN$'\n )?_c('span'):_vm._e(),(_vm.currentProduct.salePrice === null && _vm.currentProduct.salePriceFr !== null)?_c('span',[_vm._v(_vm._s(_vm.currentProduct.salePriceFr.replaceAll(\".\", \",\"))+\"$\")]):(_vm.currentProduct.salePrice==='3.99 Ã 7.99')?_c('span',[_vm._v(\" 3,99$ Ã 7,99$\")]):(isNaN(_vm.currentProduct.salePrice))?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.salePrice)+\" \")]):(_vm.currentProduct.salePrice.includes('Ã '))?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.salePrice.replaceAll(\".\", \",\"))+\"$\")]):_c('span',[_vm._v(\" \"+_vm._s(parseFloat(_vm.currentProduct.salePrice) .toFixed(2) .replace(\".\", \",\"))+\"$\")]),(_vm.currentProduct.promoUnitFr)?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.promoUnitFr)+\" \")]):_vm._e(),(_vm.currentProduct.alternatePriceFr)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.currentProduct.alternatePriceFr))]):_vm._e()])]),(_vm.currentProduct.savingsEn)?_c('div',{staticClass:\"savings\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.savingsPrefix)+\" \"+_vm._s(_vm.currentProduct.savingsEn)+\" \"+_vm._s(_vm.currentProduct.savingsSuffix))])]):_vm._e(),_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.pdpValidFrom))])]),_c('div',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(_vm.flyerDate(_vm.currentProduct.validFrom, _vm.currentProduct.validTo))}})]),(_vm.currentProduct.bodyFr || _vm.currentProduct.bodyEn)?_c('div',{staticClass:\"detail\"},[_c('span',[_vm._v(_vm._s(_vm.content.pdpDetails))]),_c('p',{staticClass:\"detail-content\"},[_vm._v(\" \"+_vm._s(_vm.currentProduct.bodyFr && _vm.currentProduct.bodyEn ? ((_vm.currentProduct.bodyFr) + \" | \" + (_vm.currentProduct.bodyEn)) : _vm.currentProduct.bodyFr || _vm.currentProduct.bodyEn)+\" \")])]):_vm._e(),_c('p',{staticClass:\"disclaimer-content\"},[_vm._v(_vm._s(_vm.content.disclaimer))]),_c('div',{staticClass:\"addtoList-container\"},[(_vm.checkProductInSL(_vm.currentProduct))?_c('button',{staticClass:\"pdpAddToList removeFromList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleRemoveFromList(_vm.currentProduct)}}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.content.pdpRemoveFromList)+\" \")])]):(_vm.listEnabled)?_c('button',{staticClass:\"pdpAddToList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleAddToList(_vm.currentProduct)}}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.content.pdpAddToList)+\" \")])]):_vm._e()])],2)])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div\r\n\t\t\tv-if=\"enabled && showPdp\"\r\n\t\t\tref=\"pdpPopup\"\r\n\t\t\tclass=\"modal-wpr\"\r\n\t\t\t@click=\"closePdp\"\r\n\t>\r\n\t\t<div v-click-outside=\"closePdp\" @click.stop=\"\" :class=\"`modal ${flyerOrientation}`\">\r\n\t\t\t<h2 class=\"header\">\r\n\t\t\t\t<span class=\"pdpTitle\">{{ content.pdpTitle }}</span>\r\n\t\t\t\t<button :aria-label=\"content.pdpClose\" class=\"close-btn\" tabindex=\"0\" @click=\"closePdp\" @keydown.esc=\"closePdp\">\r\n\t\t\t\t\t<img src=\"/images/icon-close-white.svg\" alt=\"Close\" />\r\n\t\t\t\t</button>\r\n\t\t\t</h2>\r\n\r\n\t\t\t<div ref=\"toastContent\" class=\"content\">\r\n\t\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t\t<div class=\"pdpContainer\">\r\n\t\t\t\t\t\t<template v-if=\"isAdonis\">\r\n\t\t\t\t\t\t\t<h2> {{ currentProduct.productDescription}} </h2>\r\n\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t<template v-else>\r\n\t\t\t\t\t\t <h2 v-if=\"currentProduct.productFr!==null\" tabindex=\"0\">{{ currentProduct.productFr }}</h2>\r\n\t\t\t\t\t\t <h2 v-if=\"currentProduct.productEn && currentProduct.productFr\"> | </h2>\r\n\t\t\t\t\t\t <h2 v-if=\"currentProduct.productEn !==null\"> {{currentProduct.productEn}} </h2>\r\n\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t<img :src=\"currentProduct.productImage\" class=\"productImage\"/>\r\n\t\t\t\t\t\t<div v-if=\"language == 'en'\" class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t\t<h2>\r\n <span v-if=\"currentProduct.priceQuantity\"\r\n >{{ currentProduct.priceQuantity }}/\r\n </span>\r\n\r\n\t\t\t\t\t\t\t\t<span v-if=\"currentProduct.salePricePrefixEn\"> {{ currentProduct.salePricePrefixEn }} </span>\r\n\t\t\t\t\t\t\t\t<!-- <span> ${{ parseFloat(currentProduct.salePrice).toFixed(2) }}</span> -->\r\n\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\t\tv-if=\"\r\n currentProduct.salePrice == null ||\r\n currentProduct.salePrice === '' ||\r\n currentProduct.salePrice === '$NaN' ||\r\n currentProduct.salePrice === 'NaN$'\r\n \"\r\n\t\t\t\t\t\t\t\t></span>\r\n\t\t\t\t\t\t\t\t<span v-if=\"currentProduct.salePrice === null && currentProduct.salePriceFr !== null\">${{ currentProduct.salePriceFr}}</span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"currentProduct.salePrice==='3.99 Ã 7.99'\">\r\n $3.99 Ã $7.99</span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"isNaN(currentProduct.salePrice)\">\r\n {{ currentProduct.salePrice }}\r\n </span>\r\n\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"currentProduct.salePrice.includes('Ã ')\">\r\n ${{ currentProduct.salePrice }}\r\n </span>\r\n\r\n\t\t\t\t\t\t\t\t<span v-else>\r\n ${{ parseFloat(currentProduct.salePrice).toFixed(2) }}</span\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<!-- <span v-else> ${{currentProduct.salePrice}}</span> -->\r\n\r\n\t\t\t\t\t\t\t\t<span v-if=\"currentProduct.promoUnitEn\">\r\n {{ currentProduct.promoUnitEn }}\r\n </span>\r\n\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\t\tv-if=\"currentProduct.alternatePrice\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"alternatePrice\"\r\n\t\t\t\t\t\t\t\t>{{ currentProduct.alternatePrice }}</span\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div v-else class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t\t<h2>\r\n <span v-if=\"currentProduct.priceQuantity\"\r\n >{{ currentProduct.priceQuantity }}/\r\n </span>\r\n\t\t\t\t\t\t\t\t<!-- <span v-html=\"showPriceFr(currentProduct.salePrice)\"> $ </span> -->\r\n\r\n\t\t\t\t\t\t\t\t<span v-if=\"currentProduct.salePricePrefixFr\"> {{ currentProduct.salePricePrefixFr }} </span>\r\n\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\t\tv-if=\"\r\n currentProduct.salePrice == null ||\r\n currentProduct.salePrice === '' ||\r\n currentProduct.salePrice === '$NaN' ||\r\n currentProduct.salePrice === 'NaN$'\r\n \"\r\n\t\t\t\t\t\t\t\t></span>\r\n\t\t\t\t\t\t\t\t<span v-if=\"currentProduct.salePrice === null && currentProduct.salePriceFr !== null\">{{ currentProduct.salePriceFr.replaceAll(\".\", \",\")}}$</span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"currentProduct.salePrice==='3.99 Ã 7.99'\">\r\n 3,99$ Ã 7,99$</span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"isNaN(currentProduct.salePrice)\">\r\n {{ currentProduct.salePrice }}\r\n </span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"currentProduct.salePrice.includes('Ã ')\">\r\n {{ currentProduct.salePrice.replaceAll(\".\", \",\") }}$</span>\r\n\t\t\t\t\t\t\t\t<span v-else>\r\n {{\r\n\t\t\t\t\t\t\t\t\t\tparseFloat(currentProduct.salePrice)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.toFixed(2)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.replace(\".\", \",\")\r\n\t\t\t\t\t\t\t\t\t}}$</span\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<span v-if=\"currentProduct.promoUnitFr\">\r\n {{ currentProduct.promoUnitFr }}\r\n </span>\r\n\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\t\tv-if=\"currentProduct.alternatePriceFr\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"alternatePrice\">{{ currentProduct.alternatePriceFr }}</span>\r\n\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div class=\"savings\" v-if=\"currentProduct.savingsEn\">\r\n <span>\r\n {{ currentProduct.savingsPrefix }}\r\n {{ currentProduct.savingsEn }}\r\n {{ currentProduct.savingsSuffix }}</span\r\n >\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"validity\">\r\n <span\r\n ><strong>{{ content.pdpValidFrom }}</strong></span>\r\n\t\t\t\t\t\t\t<div class=\"date\" v-html=\"flyerDate(currentProduct.validFrom, currentProduct.validTo)\"></div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div v-if=\"currentProduct.bodyFr || currentProduct.bodyEn\" class=\"detail\">\r\n\t\t\t\t\t\t\t<span>{{ content.pdpDetails }}</span>\r\n\t\t\t\t\t\t\t<p class=\"detail-content\">\r\n\t\t\t\t\t\t\t\t{{ currentProduct.bodyFr && currentProduct.bodyEn \r\n\t\t\t\t\t\t\t\t ? `${currentProduct.bodyFr} | ${currentProduct.bodyEn}` \r\n\t\t\t\t\t\t\t\t\t: currentProduct.bodyFr || currentProduct.bodyEn\r\n\t\t\t\t\t\t\t }}\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<p class=\"disclaimer-content\">{{ content.disclaimer }}</p>\r\n\r\n\t\t\t\t\t\t<div class=\"addtoList-container\">\r\n\t\t\t\t\t\t\t<button v-if=\"checkProductInSL(currentProduct)\"\r\n\t\t\t\t\t\t\t class=\"pdpAddToList removeFromList\"\r\n\t\t\t\t\t\t\t tabindex=\"0\"\r\n\t\t\t\t\t\t\t @click=\"handleRemoveFromList(currentProduct)\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<span> {{ content.pdpRemoveFromList }} </span>\r\n\t\t\t\t\t\t\t</button>\r\n\r\n\t\t\t\t\t\t\t<button v-else-if=\"listEnabled\"\r\n\t\t\t\t\t\t\t class=\"pdpAddToList\"\r\n\t\t\t\t\t\t\t tabindex=\"0\"\r\n\t\t\t\t\t\t\t @click=\"handleAddToList(currentProduct)\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<span> {{ content.pdpAddToList }} </span>\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport ClickOutside from \"vue-click-outside\";\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\nexport default {\r\n\tdirectives: {\r\n\t\tClickOutside,\r\n\t},\r\n\tmixins: [featureMixin],\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttoastContent: null,\r\n\t\t\tready: false,\r\n\t\t\tfeaturePath: 'pdp',\r\n\t\t\tfeatureEvents: ['productRegionClick']\r\n\t\t};\r\n\t},\r\n\tmounted() {\r\n\t\t// console.log(this.$refs.pdpPopup);\r\n\t\t/*if(this.enabled){\r\n\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\tpdpFocus.focus();\r\n\t\t\t}*/\r\n\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters([\"content\", \"language\"]),\r\n\t\t...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n\t\t...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n\t\t...mapState(\"shoppingList\", [\"shoppingList\"]),\r\n\t\t...mapGetters(\"pdp\", {pdpEnabled: \"enabled\"}),\r\n\t\t...mapState(\"pdp\", {showPdp: \"isVisible\", currentProduct: \"product\"}),\r\n\t\t...mapGetters('shoppingList', {listEnabled: 'enabled'}),\r\n\r\n\t\tcolumnView() {\r\n\t\t\treturn this.flyerOrientation === \"vertical\";\r\n\t\t},\r\n\r\n\t\tenabled() {\r\n\t\t\treturn this.pdpEnabled && this.config.mode === 'internal';\r\n\t\t},\r\n\t\tisAdonis(){\r\n if(AppConfig.AppConf?.title.toLowerCase().includes(\"adonis\".toLowerCase())){\r\n return true\r\n }\r\n else return false\r\n },\r\n\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions([\"setPdpDisplay\", \"setCurrentProduct\"]),\r\n\t\t...mapActions(\"shoppingList\", [\"setAddToList\", \"setRemoveFromList\"]),\r\n\t\t...mapActions(\"pdp\", [\"close\", \"open\"]),\r\n\r\n\t\tonFeatureEvent(event, data) {\r\n\t\t\tif (this.config.enabled) {\r\n\t\t\t\t// console.log('PDP Event:', data.product)\r\n\t\t\t\tif (this.config.mode === 'internal' && data.actionType !== 'url'&& data.sku !== 'url' && !data.isVideo) {\r\n\t\t\t\t\tthis.open(data.product);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tclosePdp() {\r\n\t\t\tif (this.ready) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t},\r\n\t\thandleAddToList(product) {\r\n\t\t\t// console.log(\"Handle add to list\", product)\r\n\t\t\tconst additionalItemFlag = false;\r\n\t\t\tthis.setAddToList({product, additionalItemFlag});\r\n\t\t},\r\n\r\n\t\thandleRemoveFromList(product) {\r\n\t\t\tthis.setRemoveFromList(product);\r\n\t\t},\r\n\r\n\t\tcheckProductInSL(product) {\r\n\t\t\tlet item = this.shoppingList.filter(function (e) {\r\n\t\t\t\treturn e.sku == product.sku;\r\n\t\t\t});\r\n\t\t\tif (item.length > 0) return true;\r\n\t\t\telse return false;\r\n\t\t},\r\n\t\tshowPriceFr(price) {\r\n\t\t\tif (!price) return;\r\n\r\n\t\t\treturn (\r\n\t\t\t\tparseFloat(price)\r\n\t\t\t\t\t.toFixed(2)\r\n\t\t\t\t\t.replace(\".\", \",\") + \" $\"\r\n\t\t\t); //adds zeros\r\n\t\t\t// return(frPrice+\" $\")\r\n\t\t\t// console.log('price is' + (price.toFixed(2)))\r\n\t\t\t// return((price).replace(\".\",\",\")+\" $\")\r\n\t\t},\r\n\t\tshowPriceEn(price) {\r\n\t\t\tif (!price) return;\r\n\t\t\t// let enPrice = price.replace(\",\",\".\")\r\n\t\t\telse if (price.includes(\"$\")) {\r\n\t\t\t\tlet priceWith$ = price.replace(\"$\", \"\");\r\n\t\t\t\tif (priceWith$.includes(\",\")) {\r\n\t\t\t\t\tlet enPrice = priceWith$.replaceAll(\",\", \".\");\r\n\t\t\t\t\treturn \"$\" + enPrice;\r\n\t\t\t\t}\r\n\t\t\t\treturn \"$\" + priceWith$;\r\n\t\t\t}\r\n\t\t\treturn \"$\" + price.replace(\",\", \".\");\r\n\t\t},\r\n\t\tflyerDate(validFrom, validTo) {\r\n\t\t\tconst start = validFrom ? moment.utc(validFrom) : moment.utc(this.currentFlyer.startDate);\r\n\t\t\tconst endDate = validFrom ? moment.utc(validTo) : moment.utc(this.currentFlyer.endDate);\r\n\t\t\tif (this.language === \"en\") {\r\n\t\t\t\tif (this.currentProduct.sku === \"10024392\") {\r\n\t\t\t\t\t// console.log(\"roses\");\r\n\t\t\t\t\treturn `${moment(\"2022-02-12\").format(\"MMMM D, YYYY\")} to ${moment(\"2022-02-14\").format(\"MMMM D,YYYY\")}`;\r\n\t\t\t\t} else\r\n\t\t\t\treturn `${start.locale('en').format(\"MMMM D, YYYY\")} to ${endDate.locale('en').format(\"MMMM D, YYYY\")}`;\r\n\t\t\t} else {\r\n\t\t\t\tif (this.currentProduct.sku === \"10024392\")\r\n\t\t\t\t\treturn `${moment(\"2022-02-12\").format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${moment(\"2022-02-14\").format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n\t\t\t\telse\r\n\t\t\t\t\treturn `${start.format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>'\r\n\t\t\t\t\t)}`;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\twatch: {\r\n\t\tshowPdp(val) {\r\n\t\t\tif (val) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.ready = true;\r\n\t\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\t\tpdpFocus.focus();\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t\tthis.ready = false;\r\n\t\t},\r\n\t},\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n\r\n .description {\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\ttext-align: left;\r\n\talign-items: flex-end;\r\n\r\n\t> :first-child {\r\n\t width: calc(55px + 1em);\r\n\t}\r\n\r\n\t.mobile-content {\r\n\t flex-basis: 100%;\r\n\t}\r\n }\r\n}\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n top: 0px;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n\tbackground-color: var(--secondary-color);\r\n\t/*margin-top: 75px;*/\r\n\tborder: 1px solid #bbbbbb;\r\n\t/* overflow: auto;*/\r\n\tmax-height: calc(100% - 1em);\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tdisplay: flex;\r\n\tflex-flow: column;\r\n\tmax-width: calc(100% - 4em);\r\n\r\n\t.header {\r\n\t background-color: var(--secondary-color);\r\n\t color: var(--primary-text-color);\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 18px;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 400;\r\n\t }\r\n\r\n\t .close-btn {\r\n\t\tcursor: pointer;\r\n\t\t\t&:hover{\r\n\t\t\t\tbackground: none;\r\n\t\t\t\tfilter: unset;\r\n\t\t\t}\r\n\t }\r\n\t}\r\n\r\n\t.subtitle {\r\n\t padding-top: 6px;\r\n\t font-size: 12px;\r\n\t}\r\n\r\n\t.content {\r\n\t padding: 8px;\r\n\t background-color: #fff;\r\n\t color: #545454;\r\n\t position: relative;\r\n\t flex: 1 0 auto;\r\n\t overflow: auto;\r\n\t // margin:0px 10px 10px 10px;\r\n\t margin: 10px 10px 17px;\r\n\t min-height: 250px;\r\n\t max-height: calc(100% - 4em);\r\n\t /*.scroll-container{\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:0px;\r\n\t\t\t\t\tbottom:0px;\r\n\t\t\t\t\tleft:0px;\r\n\t\t\t\t\tright:0px;\r\n\t\t\t\t}*/\r\n\t .content-container {\r\n\t\ttext-align: left;\r\n\t\t//width:300px;\r\n\t }\r\n\r\n\t .f-half {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\r\n\t\tflex-direction: column;\r\n\r\n\t\t> div {\r\n\t\t flex-basis: 100%;\r\n\t\t display: flex;\r\n\t\t flex-flow: column;\r\n\t\t}\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 350px;\r\n\t }\r\n\r\n\t .feature {\r\n\t\tbackground: #eee;\r\n\t\tmargin: 12px 0;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\tflex: 1;\r\n\r\n\t\t.description {\r\n\t\t display: flex;\r\n\t\t font-size: 14px;\r\n\t\t padding: 15px 0;\r\n\r\n\t\t .button-preview {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\talign-items: center;\r\n\t\t\tpadding: 0 20px;\r\n\r\n\t\t\th4 {\r\n\t\t\t text-transform: uppercase;\r\n\t\t\t padding-top: 16px;\r\n\t\t\t white-space: nowrap;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t text-align: center;\r\n\t\t\t}\r\n\t\t }\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n.pdpTitle {\r\n font-size: 18px;\r\n font-weight: bold;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n\r\n h2 {\r\n\tfont-size: 18px;\r\n\tline-height: 1.1em;\r\n }\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tmax-height: 200px;\r\n\tmax-width: 120px;\r\n\twidth: auto;\r\n\theight: auto;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tmargin: auto;\r\n }\r\n\r\n .price {\r\n\tdisplay: flex;\r\n\tcolor: #ee3124;\r\n\tfont-weight: 900;\r\n }\r\n\r\n span.alternatePrice {\r\n\tdisplay: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n\tcolor: #000;\r\n\tfont-size: 13px;\r\n\tfont-weight: normal;\r\n\tmargin-left: 5px;\r\n }\r\n\r\n .savings {\r\n\tcolor: #ee3124;\r\n\tfont-size: 12px;\r\n }\r\n\r\n .detail {\r\n\tfont-size: 15px;\r\n\tmargin-top: 10px;\r\n\tfont-weight: 900;\r\n\r\n\t.detail-content {\r\n\t font-size: 12px;\r\n\t font-weight: normal;\r\n\t}\r\n }\r\n\r\n .disclaimer-content {\r\n\tfont-size: 9px;\r\n\tfont-weight: normal;\r\n\tmargin-top: 10px;\r\n\tfont-style: italic;\r\n }\r\n\r\n & .validity {\r\n\tfont-size: 13px;\r\n\tmargin-top: 10px;\r\n }\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #bbb;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n margin: 0px 10px 0px 10px;\r\n}\r\n\r\n.pdpAddToList {\r\n display: flex;\r\n flex-grow: 0.7;\r\n cursor: pointer;\r\n width: 100%;\r\n border-radius: 5px;\r\n // margin-top:15px;\r\n // margin-bottom:15px;\r\n // margin-right: 10px;\r\n margin: 15px 0px 10px 0px;\r\n background-color: var(--tertiary-color);\r\n color: #fff;\r\n padding: 8px;\r\n justify-content: center;\r\n max-width: calc(100vw - 7em);\r\n font-weight: normal;\r\n\r\n &.removeFromList {\r\n\tbackground-color: #EE3124;\r\n }\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n .description {\r\n\tflex-basis: 50%;\r\n\tjustify-content: center;\r\n }\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 300px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t// width: 575px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t//width: 300px;\r\n\t\t.productImage {\r\n\t\t // max-height: 50%;\r\n\t\t // max-width: 50%;\r\n\t\t max-height: 180px;\r\n\t\t max-width: 85px;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\t/*.description {\r\n\t\t\t\tpadding-top: 10px;\r\n\t\t\t\tpadding-left: 100px;\r\n\t\t\t\tpadding-bottom: 70px;\r\n\t\t\t\tposition: relative;\r\n\t\t\t}*/\r\n\r\n\t/*.btn.page {\r\n\t\t\t\ttransform: rotate(90deg);\r\n\t\t\t\twidth: 146px;\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\tbottom: 38%;\r\n\t\t\t}*/\r\n\r\n\th4,\r\n\t.subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle + .subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n .content-container {\r\n\twidth: 300px;\r\n }\r\n}\r\n\r\n@media (max-width: 850px) {\r\n /*.modal-wpr {\r\n top: 125px;\r\n }*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n /*.modal-wpr {\r\n top: 125px;\r\n }*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n /*.modal-wpr {\r\n top: 65px;\r\n }*/\r\n .walkthrough {\r\n\tdisplay: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n\tdisplay: flex !important;\r\n }\r\n .desktop {\r\n\tdisplay: none !important;\r\n }\r\n\r\n .modal-wpr .modal {\r\n\t/* margin-top: 140px;\r\n\t\t\twidth: 90% !important;*/\r\n\twidth: 338px;\r\n\r\n\t.content {\r\n\t .f-half {\r\n\t\t/*flex-direction: row !important;*/\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 400px;\r\n\t }\r\n\t}\r\n\r\n\t.header {\r\n\t padding-bottom: 4px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 14px;\r\n\t }\r\n\t}\r\n }\r\n\r\n .heading {\r\n\tdisplay: none;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n\tdisplay: block;\r\n\tbackground: none;\r\n\tpadding: 0 6%;\r\n\r\n\t.description {\r\n\t padding: 0;\r\n\t margin-bottom: 20px;\r\n\t height: 50px;\r\n\t}\r\n\r\n\t.button-preview {\r\n\t display: block;\r\n\t position: relative;\r\n\t padding-left: 60px;\r\n\t width: 100%;\r\n\r\n\t h4 {\r\n\t\tpadding: 0;\r\n\t }\r\n\r\n\t .subtitle {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .btn {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t }\r\n\t}\r\n }\r\n\r\n .subtitle.mobile {\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpPopup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpPopup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdpPopup.vue?vue&type=template&id=f36bcaf0&scoped=true&\"\nimport script from \"./PdpPopup.vue?vue&type=script&lang=js&\"\nexport * from \"./PdpPopup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdpPopup.vue?vue&type=style&index=0&id=f36bcaf0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f36bcaf0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled && _vm.showPdp)?_c('div',{ref:\"pdpPopup\",staticClass:\"modal-wpr\",on:{\"click\":_vm.closePdp}},[_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closePdp),expression:\"closePdp\"}],class:(\"modal \" + _vm.flyerOrientation),on:{\"click\":function($event){$event.stopPropagation();}}},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.content.pdpTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.closePdp,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closePdp.apply(null, arguments)}}},[_c('img',{attrs:{\"src\":\"/images/icon-close-white.svg\",\"alt\":\"Close\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"pdpContainer\"},[(_vm.config.showProductName !== undefined && _vm.config.showProductName)?_c('span',[(_vm.currentProduct.productFr!==null)?_c('h2',{attrs:{\"tabindex\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.currentProduct.productFr)+\" \")]):_vm._e(),(_vm.currentProduct.productEn && _vm.currentProduct.productFr)?_c('h2',[_vm._v(\" | \")]):_vm._e(),(_vm.currentProduct.productEn !==null)?_c('h2',[_vm._v(\" \"+_vm._s(_vm.currentProduct.productEn)+\" \")]):_vm._e()]):_vm._e(),_c('div',{class:{productImageContainer:_vm.checkClient}},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.currentProduct.productImage}})]),(_vm.language == 'en')?_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.currentProduct.priceQuantity && _vm.is3DaySale)?_c('span',[_vm._v(_vm._s(_vm.currentProduct.priceQuantity)+\" \")]):_vm._e(),(_vm.currentProduct.salePricePrefixEn)?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.salePricePrefixEn)+\" \")]):_vm._e(),(!_vm.isBogo && _vm.currentProduct.salePrice)?_c('span',[_vm._v(\" \"+_vm._s(_vm.getSalePrice))]):_vm._e(),(!_vm.isBogo && _vm.currentProduct.promoUnitEn && _vm.getSalePrice!=='')?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.promoUnitEn)+\" \")]):_vm._e(),(_vm.currentProduct.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.currentProduct.alternatePrice))]):_vm._e()]),(!_vm.isBogo && !_vm.isSwipeAndSave && _vm.is3DaySale && _vm.currentProduct.limitQty)?_c('span',{staticClass:\"limit\"},[_vm._v(\" Â \"+_vm._s(_vm.currentProduct.limitQty))]):_vm._e()]):_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.currentProduct.priceQuantity)?_c('span',[_vm._v(_vm._s(_vm.currentProduct.priceQuantity)+\"/\")]):_vm._e(),(_vm.currentProduct.salePricePrefixFr)?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.salePricePrefixFr)+\" \")]):_vm._e(),(_vm.currentProduct.promoUnitFr)?_c('span',[_vm._v(\" \"+_vm._s(_vm.currentProduct.promoUnitFr)+\" \")]):_vm._e(),(_vm.currentProduct.alternatePriceFr)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(\" \"+_vm._s(_vm.currentProduct.alternatePriceFr)+\" \")]):_vm._e()])]),(_vm.currentProduct.savingsEn && !_vm.currentProduct.salePrice)?_c('div',{staticClass:\"savings\",class:{limit: _vm.isBogo}},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.currentProduct.savingsPrefix)+\" \"+_vm._s(_vm.currentProduct.savingsEn)+\" \"+_vm._s(_vm.currentProduct.savingsSuffix)+\" \")])]):_vm._e(),(_vm.is3DaySale)?_c('div',{staticClass:\"daysOnly\"},[_vm._v(\" \"+_vm._s(_vm.currentProduct.tierEachPrice)+\" \")]):_vm._e(),_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.pdpValidFrom))])]),_c('div',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(_vm.flyerDate)}})]),(_vm.currentProduct.contents || _vm.currentProduct.bodyFr || _vm.currentProduct.bodyEn)?_c('div',{staticClass:\"detail\"},[_c('span',[_vm._v(_vm._s(_vm.content.pdpDetails))]),_c('p',{staticClass:\"detail-content\"},[_vm._v(_vm._s(_vm.getContents || _vm.currentProduct.bodyFr || _vm.currentProduct.bodyEn))])]):_vm._e(),_c('p',{staticClass:\"disclaimer-content\"},[_vm._v(_vm._s(_vm.content.disclaimer))]),_c('div',{staticClass:\"addtoList-container\"},[(_vm.checkProductInSL(_vm.currentProduct))?_c('button',{staticClass:\"shopOptions removeFromList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleRemoveFromList(_vm.currentProduct)}}},[_vm._v(\" \"+_vm._s(_vm.content.pdpRemoveFromList)+\" \")]):(_vm.listEnabled)?_c('button',{staticClass:\"shopOptions pdpAddToList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleAddToList(_vm.currentProduct)}}},[_vm._v(\" \"+_vm._s(_vm.content.pdpAddToList)+\" \")]):_vm._e(),(_vm.config.shopNow && !_vm.isBogo && !_vm.isSwipeAndSave && _vm.currentProduct.url)?_c('button',{staticClass:\"shopOptions shopNow\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.gotoInstaCart()}}},[_vm._v(\"Shop Now\")]):_vm._e()])])])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div\r\n v-if=\"enabled && showPdp\"\r\n ref=\"pdpPopup\"\r\n class=\"modal-wpr\"\r\n @click=\"closePdp\"\r\n >\r\n <div v-click-outside=\"closePdp\" @click.stop=\"\" :class=\"`modal ${flyerOrientation}`\">\r\n <h2 class=\"header\">\r\n <span class=\"pdpTitle\">{{ content.pdpTitle }}</span>\r\n <button :aria-label=\"content.pdpClose\" class=\"close-btn\" tabindex=\"0\" @click=\"closePdp\" @keydown.esc=\"closePdp\">\r\n <img src=\"/images/icon-close-white.svg\" alt=\"Close\" />\r\n </button>\r\n </h2>\r\n\r\n <div ref=\"toastContent\" class=\"content\">\r\n <div :class=\"`content-container ${flyerOrientation}`\">\r\n <div class=\"pdpContainer\">\r\n\t\t\t\t\t\t<span v-if=\"config.showProductName !== undefined && config.showProductName\">\r\n <h2 v-if=\"currentProduct.productFr!==null\" tabindex=\"0\"> {{ currentProduct.productFr }} </h2>\r\n\t\t\t\t\t\t <h2 v-if=\"currentProduct.productEn && currentProduct.productFr\"> | </h2>\r\n\t\t\t\t\t\t <h2 v-if=\"currentProduct.productEn !==null\"> {{currentProduct.productEn}} </h2>\r\n </span>\r\n\r\n <div :class=\"{productImageContainer:checkClient}\">\r\n <img :src=\"currentProduct.productImage\" class=\"productImage\"/>\r\n </div>\r\n <div v-if=\"language == 'en'\" class=\"price\" tabindex=\"0\">\r\n <h2>\r\n <span v-if=\"currentProduct.priceQuantity && is3DaySale\"\r\n >{{ currentProduct.priceQuantity }}\r\n </span>\r\n\r\n <span v-if=\"currentProduct.salePricePrefixEn\"> {{ currentProduct.salePricePrefixEn }} </span>\r\n\r\n <span v-if=\"!isBogo && currentProduct.salePrice\"> {{ getSalePrice }}</span>\r\n\r\n <span v-if=\"!isBogo && currentProduct.promoUnitEn && getSalePrice!==''\"> {{ currentProduct.promoUnitEn }} </span>\r\n\r\n <span\r\n v-if=\"currentProduct.alternatePrice\"\r\n class=\"alternatePrice\"\r\n >{{ currentProduct.alternatePrice }}</span>\r\n </h2>\r\n <span class=\"limit\" v-if=\"!isBogo && !isSwipeAndSave && is3DaySale && currentProduct.limitQty\"> {{ currentProduct.limitQty }}</span>\r\n </div>\r\n\r\n <div v-else class=\"price\" tabindex=\"0\">\r\n <h2>\r\n <span v-if=\"currentProduct.priceQuantity\">{{ currentProduct.priceQuantity }}/</span>\r\n\r\n <span v-if=\"currentProduct.salePricePrefixFr\"> {{ currentProduct.salePricePrefixFr }} </span>\r\n\r\n <span v-if=\"currentProduct.promoUnitFr\"> {{ currentProduct.promoUnitFr }} </span>\r\n <span v-if=\"currentProduct.alternatePriceFr\"\r\n class=\"alternatePrice\">\r\n\t\t\t\t\t\t\t\t\t{{ currentProduct.alternatePriceFr }}\r\n\t\t\t\t\t\t\t\t</span>\r\n </h2>\r\n </div>\r\n\r\n <div class=\"savings\" :class=\"{limit: isBogo}\" v-if=\"currentProduct.savingsEn && !currentProduct.salePrice\">\r\n <h2>\r\n {{ currentProduct.savingsPrefix }}\r\n {{ currentProduct.savingsEn }}\r\n {{ currentProduct.savingsSuffix }}\r\n </h2>\r\n </div>\r\n\r\n <div class=\"daysOnly\" v-if=\"is3DaySale\">\r\n {{ currentProduct.tierEachPrice}}\r\n </div>\r\n\r\n <div class=\"validity\">\r\n <span\r\n ><strong>{{ content.pdpValidFrom }}</strong></span>\r\n <div class=\"date\" v-html=\"flyerDate\"></div>\r\n </div>\r\n\r\n <div v-if=\"currentProduct.contents || currentProduct.bodyFr || currentProduct.bodyEn\" class=\"detail\">\r\n <span>{{ content.pdpDetails }}</span>\r\n <p class=\"detail-content\">{{ getContents || currentProduct.bodyFr || currentProduct.bodyEn }}</p>\r\n </div>\r\n\r\n <p class=\"disclaimer-content\">{{ content.disclaimer }}</p>\r\n\r\n <div class=\"addtoList-container\">\r\n <button v-if=\"checkProductInSL(currentProduct)\"\r\n class=\"shopOptions removeFromList\"\r\n tabindex=\"0\"\r\n @click=\"handleRemoveFromList(currentProduct)\"\r\n >\r\n {{ content.pdpRemoveFromList }}\r\n </button>\r\n\r\n <button v-else-if=\"listEnabled\"\r\n class=\"shopOptions pdpAddToList\"\r\n tabindex=\"0\"\r\n @click=\"handleAddToList(currentProduct)\"\r\n >\r\n {{ content.pdpAddToList }}\r\n </button>\r\n\r\n\r\n <button v-if=\"config.shopNow && !isBogo && !isSwipeAndSave && currentProduct.url\" tabindex=\"0\" class=\"shopOptions shopNow\" @click=\"gotoInstaCart()\">Shop Now</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ClickOutside from \"vue-click-outside\";\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\nimport router from \"@/router\";\r\nimport Lytics from \"../../classes/Lytics\";\r\n\r\nexport default {\r\n directives: {\r\n ClickOutside,\r\n },\r\n mixins: [featureMixin],\r\n\r\n data() {\r\n return {\r\n toastContent: null,\r\n ready: false,\r\n featurePath: 'pdp',\r\n featureEvents: ['productRegionClick']\r\n };\r\n },\r\n mounted() {\r\n // console.log(this.$refs.pdpPopup);\r\n /*if(this.enabled){\r\n const pdpFocus = this.$refs.pdpPopup;\r\n pdpFocus.focus();\r\n }*/\r\n\r\n },\r\n computed: {\r\n ...mapGetters([\"content\", \"language\"]),\r\n ...mapState(['currentPageNumber']),\r\n ...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n ...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n ...mapState(\"shoppingList\", [\"shoppingListV1\"]),\r\n ...mapGetters(\"pdp\", {pdpEnabled: \"enabled\"}),\r\n ...mapState(\"pdp\", {showPdp: \"isVisible\", currentProduct: \"product\"}),\r\n ...mapGetters('shoppingList', {listEnabled: 'enabled'}),\r\n\r\n checkClient(){\r\n return AppConfig.AppConf?.title.toLowerCase().includes(\"rexall\".toLowerCase()) ? true : false;\r\n },\r\n\r\n isBogo(){\r\n return this.currentProduct?.tags?.includes('bogo')\r\n },\r\n\r\n isSwipeAndSave(){\r\n if(this.currentProduct===null) return;\r\n return this.currentProduct.tags?.includes('S&S');\r\n },\r\n\r\n is3DaySale(){\r\n if(this.currentProduct===null) return;\r\n const date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n //subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day) that are passed as parameters\r\n const startDate= moment(this.currentProduct.validFrom).subtract(1,\"days\")\r\n const endDate= moment(this.currentProduct.validTo).add(1,\"days\")\r\n if((this.currentProduct.validFrom !== this.currentFlyer.startDate) && (this.currentProduct.validTo !== this.currentFlyer.endDate) ||\r\n (this.currentProduct.validFromROW !== this.currentFlyer.startDate) && (this.currentProduct.validToROW !== this.currentFlyer.endDate)){\r\n return moment(date).isBetween(startDate, endDate);\r\n }\r\n else\r\n return false\r\n },\r\n\r\n flyerDate(){\r\n if(this.currentProduct===null) return;\r\n let startDate,endDate;\r\n if(this.isSwipeAndSave){\r\n startDate = moment(this.currentFlyer.startDate)\r\n endDate = moment(this.currentFlyer.endDate)\r\n }\r\n\r\n else if(this.is3DaySale){\r\n startDate = moment(this.currentProduct.validFrom);\r\n endDate = moment(this.currentProduct.validTo)\r\n }\r\n else{\r\n if(this.currentProduct.validFromROW !== null){\r\n startDate = moment(this.currentProduct.validFromROW)\r\n endDate = moment(this.currentProduct.validToROW)\r\n }\r\n else{\r\n startDate = moment(this.currentProduct.validFrom);\r\n endDate = moment(this.currentProduct.validTo)\r\n }\r\n }\r\n\r\n if (this.language === 'en') {\r\n return `${moment.utc(startDate).locale(this.language).format('MMMM D, YYYY')} to ${moment.utc(endDate).locale(this.language).format('MMMM D, YYYY')}`\r\n } else {\r\n return `${startDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n }\r\n\r\n },\r\n\r\n\r\n\r\n getSalePrice(){\r\n if(this.currentProduct===null) return\r\n let price\r\n const date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n //subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day)\r\n const startDate= moment(this.currentProduct.validFromROW).subtract(1,\"days\")\r\n const endDate= moment(this.currentProduct.validToROW).add(1,\"days\")\r\n if(this.isSwipeAndSave ){\r\n if(this.currentProduct?.savingsEn){\r\n price = this.currentProduct.savingsPrefix+' '+this.currentProduct.savingsEn\r\n return price\r\n }\r\n else {\r\n price=this.currentProduct.salePrice\r\n }\r\n }\r\n\r\n else if(this.is3DaySale)\r\n price = this.currentProduct?.salePrice\r\n else if(this.currentProduct.rowPrice && moment(date).isBetween(startDate, endDate))\r\n price = this.currentProduct?.rowPrice;\r\n else\r\n price = this.currentProduct?.rowPrice ;\r\n\r\n if(price==null)\r\n return ''\r\n\r\n\r\n else{\r\n if(this.currentProduct?.savingsEn){\r\n price = this.currentProduct.savingsPrefix+' '+this.currentProduct.savingsEn\r\n return price\r\n }\r\n else {\r\n if(price.trim() !== '') {\r\n // do nothing to test\r\n } else {\r\n price=this.currentProduct.salePrice;\r\n\r\n }\r\n\r\n }\r\n }\r\n return this.currentProduct?.priceSign?.includes('$') ? `${this.currentProduct.priceSign}${(price)} ` : `${price}${this.currentProduct.priceSign}` ;\r\n },\r\n\r\n getContents(){\r\n return this.currentProduct?.contents\r\n },\r\n\r\n columnView() {\r\n return this.flyerOrientation === \"vertical\";\r\n },\r\n\r\n enabled() {\r\n return this.pdpEnabled && this.config.mode === 'internal';\r\n }\r\n\r\n },\r\n\r\n methods: {\r\n ...mapActions([\"setPdpDisplay\", \"setCurrentProduct\"]),\r\n ...mapActions(\"shoppingList\", [\"setAddToList\", \"setRemoveFromList\", \"handleFlyerDate\"]),\r\n ...mapActions(\"pdp\", [\"close\", \"open\"]),\r\n\r\n onFeatureEvent(event, data) {\r\n if (this.config.enabled) {\r\n // console.log('PDP Event:', data.product)\r\n if (this.config.mode === 'internal' && data.actionType !== 'url' && data.sku !== 'url' && !data.isVideo) {\r\n this.open(data.product);\r\n }\r\n }\r\n },\r\n\r\n closePdp() {\r\n if (this.ready) {\r\n this.close();\r\n }\r\n },\r\n handleAddToList(product) {\r\n // console.log(\"Handle add to list\", product)\r\n const additionalItemFlag = false;\r\n const version = 'v1'\r\n this.handleFlyerDate(this.flyerDate)\r\n this.setAddToList({product, additionalItemFlag,version});\r\n\r\n },\r\n\r\n handleRemoveFromList(product) {\r\n const version = 'v1'\r\n this.setRemoveFromList({product,version});\r\n },\r\n\r\n checkProductInSL(product) {\r\n let item = this.shoppingListV1.filter(function (e) {\r\n return e.sku == product.sku;\r\n });\r\n if (item.length > 0) return true;\r\n else return false;\r\n },\r\n\r\n gotoInstaCart(){\r\n window.open(this.currentProduct.url)\r\n Lytics.TransferToMerchantClick({\r\n page_number: this.currentPageNumber,\r\n })\r\n }\r\n },\r\n\r\n watch: {\r\n showPdp(val) {\r\n if (val) {\r\n this.$nextTick(() => {\r\n const detailText = document.querySelector('.content .detail-content')\r\n if(detailText) {\r\n detailText.innerHTML = detailText.innerHTML\r\n \r\n .replace(/\\*\\*/g, '<br>**')\r\n .replace(/(^|\\s)\\*(?=\\S)/g, '<br>*')\r\n .replace(/-/g, '‑')\r\n }\r\n })\r\n setTimeout(() => {\r\n this.ready = true;\r\n const pdpFocus = this.$refs.pdpPopup;\r\n pdpFocus.focus();\r\n }, 100);\r\n }\r\n this.ready = false;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n margin-top:-1px;\r\n top: 0px;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n background-color: var(--secondary-color);\r\n /*margin-top: 75px;*/\r\n border: 1px solid #bbbbbb;\r\n /* overflow: auto;*/\r\n max-height: calc(100% - 1em);\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n flex-flow: column;\r\n min-width: 300px;\r\n max-width: 370px;\r\n\r\n\r\n .header {\r\n background-color: var(--secondary-color);\r\n color: var(--primary-text-color);\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 10px;\r\n\r\n h2 {\r\n font-size: 18px;\r\n text-transform: uppercase;\r\n font-weight: 400;\r\n }\r\n\r\n .close-btn {\r\n cursor: pointer;\r\n &:hover{\r\n background: none;\r\n filter: unset;\r\n }\r\n }\r\n }\r\n\r\n .subtitle {\r\n padding-top: 6px;\r\n font-size: 12px;\r\n }\r\n\r\n .content {\r\n padding: 8px;\r\n background-color: #fff;\r\n color: #545454;\r\n position: relative;\r\n flex: 1 0 auto;\r\n overflow: auto;\r\n // margin:0px 10px 10px 10px;\r\n margin: 10px 10px 17px;\r\n min-height: 250px;\r\n max-height: calc(100% - 4em);\r\n\r\n .content-container {\r\n text-align: left;\r\n //width:300px;\r\n }\r\n\r\n .f-half {\r\n display: flex;\r\n column-gap: 1em;\r\n\r\n flex-direction: column;\r\n\r\n > div {\r\n flex-basis: 100%;\r\n display: flex;\r\n flex-flow: column;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.pdpTitle {\r\n font-size: 18px;\r\n font-weight: bold;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n\r\n h2 {\r\n font-size: 18px;\r\n }\r\n\r\n .productImageContainer{\r\n background-color:#eee;\r\n padding: 5px 0;\r\n margin-bottom: 10px;\r\n border: 1px solid darkgray;\r\n display: flex;\r\n justify-content: center;\r\n }\r\n .productImage {\r\n // max-height: 60%;\r\n // max-width: 60%;\r\n display:flex;\r\n max-height: 200px;\r\n max-width: 120px;\r\n }\r\n\r\n .price {\r\n display: flex;\r\n color: #ee3124;\r\n }\r\n\r\n span.alternatePrice {\r\n display: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n color: #000;\r\n font-size: 13px;\r\n font-weight: normal;\r\n margin-left: 5px;\r\n }\r\n\r\n .savings {\r\n color: #ee3124 !important;\r\n font-size: 18px;\r\n margin-top:5px;\r\n }\r\n .limit{\r\n font-weight: 900;\r\n color: #000;\r\n font-size: 1.5em;\r\n }\r\n\r\n .detail {\r\n font-size: 1.3em;\r\n margin-top: 10px;\r\n font-weight: 900;\r\n\r\n .detail-content {\r\n font-size: 12px;\r\n font-weight: normal;\r\n white-space: break-spaces;\r\n }\r\n }\r\n\r\n .disclaimer-content {\r\n font-size: 9px;\r\n font-weight: normal;\r\n margin-top: 10px;\r\n font-style: italic;\r\n }\r\n\r\n .daysOnly{\r\n margin-top:10px;\r\n font-size: 1.5em;\r\n font-weight: 900;\r\n }\r\n\r\n & .validity {\r\n font-size: 13px;\r\n margin-top: 10px;\r\n }\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #bbb;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n display: flex;\r\n}\r\n\r\n.shopOptions{\r\n display: flex;\r\n flex: 1;\r\n cursor: pointer;\r\n border-radius: 5px;\r\n margin: 10px 5px;\r\n color: #fff;\r\n padding: 8px;\r\n justify-content: center;\r\n font-weight: normal;\r\n height:55px;\r\n\r\n &.shopNow{\r\n background-color: var(--secondary-color);\r\n }\r\n\r\n &.pdpAddToList {\r\n background-color: var(--tertiary-color);\r\n }\r\n\r\n &.removeFromList {\r\n background-color: #EE3124;\r\n }\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n text-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n .content {\r\n .f-half {\r\n flex-direction: row !important;\r\n }\r\n\r\n .content-container {\r\n width: 308px;\r\n\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n .content {\r\n .content-container {\r\n //width: 300px;\r\n .productImage {\r\n // max-height: 50%;\r\n // max-width: 50%;\r\n max-height: 180px;\r\n max-width: 85px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\r\n h4,\r\n .subtitle {\r\n text-align: left;\r\n width: 100%;\r\n }\r\n\r\n .subtitle + .subtitle {\r\n margin-top: 1em;\r\n }\r\n }\r\n .content-container {\r\n width: 308px;\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpPopupV1.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpPopupV1.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdpPopupV1.vue?vue&type=template&id=02e9d7c4&scoped=true&\"\nimport script from \"./PdpPopupV1.vue?vue&type=script&lang=js&\"\nexport * from \"./PdpPopupV1.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdpPopupV1.vue?vue&type=style&index=0&id=02e9d7c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02e9d7c4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showShoppingList),expression:\"showShoppingList\"}],ref:\"shoppingListPopUp\",staticClass:\"modal-wpr\",class:{'showFilters':_vm.showFilters },attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm.closeShoppingList}},[_c('config-style-injector',{attrs:{\"config\":_vm.config,\"root-selector\":((_vm.$options._scopeId) + \".modal-wpr\")}}),_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}],class:(\"modal \" + _vm.flyerOrientation),on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"header\"},[_c('span',{staticClass:\"shoppingListTitle\"},[_vm._v(_vm._s(_vm.content.shoppingList.shoppingListTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.shoppingList.closeShoppingList},on:{\"click\":_vm.closeShoppingList}},[_c('img',{attrs:{\"alt\":\"Close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[(_vm.shoppingList.length>0)?_c('div',{staticClass:\"itemsContainer\"},_vm._l((_vm.shoppingList),function(product){return _c('div',{key:product.sku,staticClass:\"itemElement\"},[_c('div',{staticClass:\"left_section\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":product.productImage,\"alt\":\"\"}})]),_c('div',{staticClass:\"productDetailsContainer\"},[_c('div',{staticClass:\"row1\"},[_c('div',{staticClass:\"productTitle\"},[_vm._v(_vm._s(product.productFr)+\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(product.productFr && product.productEn),expression:\"product.productFr && product.productEn\"}]},[_vm._v(\"|\")]),_vm._v(\" \"+_vm._s(product.productEn))]),_c('div',{staticClass:\"qtyGroup\"},[_c('button',{staticClass:\"qty-out\",attrs:{\"disabled\":product.quantity == 1},on:{\"click\":function($event){return _vm.handleQtyChange(product.sku,'minus')}}},[_c('svg',{attrs:{\"height\":\"2px\",\"version\":\"1.1\",\"viewBox\":\"0 0 12 2\",\"width\":\"12px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"icon - decrease-size copy 2\")]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"SuperC---ShoppingList---EN\",\"fill\":\"#545454\",\"fill-rule\":\"nonzero\",\"transform\":\"translate(-1808.000000, -173.000000)\"}},[_c('polygon',{attrs:{\"id\":\"icon---decrease-size-copy-2\",\"points\":\"1820 175 1808 175 1808 173 1820 173\"}})])])])]),_c('div',{staticClass:\"qty-percent\"},[_vm._v(_vm._s(product.quantity))]),_c('button',{staticClass:\"qty-in\",on:{\"click\":function($event){return _vm.handleQtyChange(product.sku,'plus')}}},[_c('svg',{attrs:{\"height\":\"12px\",\"version\":\"1.1\",\"viewBox\":\"0 0 12 12\",\"width\":\"12px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"SuperC---ShoppingList---EN\",\"fill\":\"#545454\",\"fill-rule\":\"nonzero\",\"transform\":\"translate(-1872.000000, -168.000000)\"}},[_c('polygon',{attrs:{\"id\":\"icon---increase-size-copy-2\",\"points\":\"1884 174.857143 1878.85714 174.857143 1878.85714 180 1877.14286 180 1877.14286 174.857143 1872 174.857143 1872 173.142857 1877.14286 173.142857 1877.14286 168 1878.85714 168 1878.85714 173.142857 1884 173.142857\"}})])])])])])]),_c('div',{staticClass:\"row2\"},[(!product.productImage.includes('generic'))?_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.shoppingListValidFrom)+\" \")])]),_c('span',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(_vm.flyerDate(product.validFrom,product.validTo))}})]):_vm._e()]),_c('div',{staticClass:\"row3\"},[(product.salePrice==='$NaN' || product.salePrice==='NaN$' || product.salePrice==='' || product.salePrice==null )?_c('div',{staticClass:\"salePrice\"}):(product.salePrice==='3.99 Ã 7.99' && _vm.language=='fr')?_c('span',{staticClass:\"salePrice\"},[_vm._v(\" 3,99$ Ã 7,99$\")]):(product.salePrice==='3.99 Ã 7.99' && _vm.language=='en')?_c('span',{staticClass:\"salePrice\"},[_vm._v(\" $3.99 Ã $7.99\")]):_c('div',{staticClass:\"salePrice\"},[(product.salePricePrefix)?_c('span',[_vm._v(\" \"+_vm._s(product.salePricePrefix)+\" \")]):_vm._e(),(product.priceQuantity)?_c('span',[_vm._v(_vm._s(product.priceQuantity)+\" / \")]):_vm._e(),_vm._v(\" \"+_vm._s(product.salePrice)+\" \")]),(product.promoUnitFr)?_c('span',[_vm._v(\" \"+_vm._s(product.promoUnitFr)+\" \")]):_vm._e(),_c('button',{staticClass:\"delIcon\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleDeleteItem(product)}}},[_c('svg',{attrs:{\"height\":\"33px\",\"version\":\"1.1\",\"viewBox\":\"0 0 33 33\",\"width\":\"33px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(_vm._s(_vm.content.shoppingList.deleteItem))]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"SuperC---ShoppingList---FR\",\"transform\":\"translate(-1863.000000, -213.000000)\"}},[_c('g',{attrs:{\"id\":\"Trash\",\"transform\":\"translate(1863.954673, 213.500445)\"}},[_c('rect',{attrs:{\"id\":\"Rectangle\",\"height\":\"32\",\"width\":\"32\",\"x\":\"0\",\"y\":\"0\"}}),_c('path',{attrs:{\"id\":\"Shape\",\"d\":\"M26.9995112,6 L22,6 L22,5 C21.9981277,3.34392191 20.6560781,2.00187233 19,2 L13,2 C11.3439219,2.00187233 10.0018723,3.34392191 10,5 L10,6 L4.99951125,6 C4.4472265,6 3.99951125,6.44771525 3.99951125,7 C3.99951125,7.55228475 4.4472265,8 4.99951125,8 L5.99951125,8 L5.99951125,26 C6.0007739,27.1040461 6.89546518,27.9987373 7.99951125,28 L23.9995112,28 C25.1035573,27.9987373 25.9982486,27.1040461 25.9995112,26 L25.9995112,8 L26.9995112,8 C27.551796,8 27.9995112,7.55228475 27.9995112,7 C27.9995112,6.44771525 27.551796,6 26.9995112,6 L26.9995112,6 Z M14,21 C14,21.5522847 13.5522847,22 13,22 C12.4477153,22 12,21.5522847 12,21 L12,13 C12,12.4477153 12.4477153,12 13,12 C13.5522847,12 14,12.4477153 14,13 L14,21 Z M20,21 C20,21.5522847 19.5522847,22 19,22 C18.4477153,22 18,21.5522847 18,21 L18,13 C18,12.4477153 18.4477153,12 19,12 C19.5522847,12 20,12.4477153 20,13 L20,21 Z M20,6 L12,6 L12,5 C12.0006317,4.44797711 12.4479771,4.00063167 13,4 L19,4 C19.5520229,4.00063167 19.9993683,4.44797711 20,5 L20,6 Z\",\"fill\":\"#ADADAD\",\"fill-rule\":\"nonzero\"}})])])])])])])])])}),0):_c('div',{staticClass:\"itemsContainer\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"flex-direction\":\"column\",\"padding\":\"20px\",\"text-align\":\"center\"}},[_c('h3',{staticClass:\"h3-fontsize\"},[_c('strong',[_vm._v(_vm._s(_vm.content.shoppingList.noItemsInSLTitle))])]),_c('br'),_c('p',{staticClass:\"p-fontsize\"},[_vm._v(_vm._s(_vm.content.shoppingList.noItemsInSLMsg)+\" \")])]),_c('div',{staticClass:\"addItemContainer\"},[_c('div',{staticClass:\"addItemContainer_content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.additionalItem),expression:\"additionalItem\"}],ref:\"additional-item\",staticClass:\"txtAddItem\",attrs:{\"aria-label\":_vm.content.shoppingList.addItemPlaceholder,\"placeholder\":_vm.content.shoppingList.addItemPlaceholder,\"tabindex\":\"0\",\"type\":\"text\"},domProps:{\"value\":(_vm.additionalItem)},on:{\"blur\":function($event){return _vm.setAdditionalItemInputFocus(false)},\"focus\":function($event){return _vm.setAdditionalItemInputFocus(true)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleAdditionalItem.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.additionalItem=$event.target.value}}}),_c('button',{staticClass:\"addItem\",attrs:{\"disabled\":_vm.additionalItem.length<2,\"aria-label\":\"addItem\"},on:{\"click\":_vm.handleAdditionalItem}},[_vm._v(_vm._s(_vm.content.shoppingList.addItem))])])]),(_vm.shoppingList.length>0)?_c('div',{staticClass:\"optionsContainer\"},[_c('button',{staticClass:\"btnOptions\",on:{\"click\":function($event){return _vm.toggleEmail(!_vm.email.value)}}},[_c('img',{attrs:{\"src\":_vm.getImage('email'),\"alt\":\"Email\"}})]),_c('button',{staticClass:\"btnOptions\",on:{\"click\":_vm.handlePrint}},[_c('img',{attrs:{\"src\":_vm.getImage('print'),\"alt\":\"Print\"}})]),_c('button',{staticClass:\"btnOptions\",on:{\"click\":function($event){return _vm.toggleClear(!_vm.clear.value)}}},[_c('img',{attrs:{\"src\":_vm.getImage('clear'),\"alt\":\"Clear\"}})])]):_vm._e(),(_vm.email.emailReady && !_vm.email.emailSent && !_vm.emailError)?_c('div',{staticClass:\"emailBody\"},[_c('span',{staticClass:\"emailTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailTitle))]),_c('button',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"height\":\"20\",\"width\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"fill\":\"#80868B\",\"mask\":\"url(#b)\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])])]),_c('div',{staticClass:\"emailMessage\"},[_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailWarning))]),_c('div',{staticClass:\"emailTxtBoxContainer\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.emailAddress),expression:\"emailAddress\"}],ref:\"search-input\",staticClass:\"txtAddItem\",attrs:{\"placeholder\":_vm.content.shoppingList.emailPlaceholder,\"aria-label\":\"Entrez votre adresse courriel\",\"tabindex\":\"0\",\"type\":\"text\"},domProps:{\"value\":(_vm.emailAddress)},on:{\"blur\":function($event){return _vm.setEmailInputFocus(false)},\"focus\":function($event){return _vm.setEmailInputFocus(true)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleEmail()},\"input\":function($event){if($event.target.composing){ return; }_vm.emailAddress=$event.target.value}}}),_c('button',{staticClass:\"addItem\",attrs:{\"disabled\":_vm.isValidEmail,\"aria-label\":\"addItem\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleEmail()}}},[_vm._v(_vm._s(_vm.content.shoppingList.send))])])]):_vm._e(),(_vm.clear.clearReady && !_vm.clear.clearDone)?_c('div',{staticClass:\"emailBody\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_c('svg',{attrs:{\"height\":\"20\",\"width\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"fill\":\"#80868B\",\"mask\":\"url(#b)\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"clearTitle\"},[_c('span',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(_vm._s(_vm.content.shoppingList.clearTitle))])]),_c('div',{staticClass:\"clearBtnContainer\"},[_c('button',{staticClass:\"clearItemYes\",attrs:{\"aria-label\":\"yes\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.yes))]),_c('button',{staticClass:\"clearItemNo\",attrs:{\"aria-label\":\"no\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.no))])])]):_vm._e(),(!_vm.email.emailReady && _vm.email.emailSent && !_vm.emailError)?_c('div',{staticClass:\"emailSent\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"height\":\"20\",\"width\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"fill\":\"#80868B\",\"mask\":\"url(#b)\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"emailSentTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailSentTitle))])]),_c('div',{staticClass:\"emailSentMessage\"},[_c('span',{staticClass:\"emailSentCheck\"},[_c('svg',{attrs:{\"height\":\"32px\",\"version\":\"1.1\",\"viewBox\":\"0 0 32 32\",\"width\":\"32px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"icon - checkmark\")]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"SuperC---ShoppingList---FR---Email-Confirmation\",\"fill\":\"#333333\",\"fill-rule\":\"nonzero\",\"transform\":\"translate(-1517.000000, -764.000000)\"}},[_c('path',{attrs:{\"id\":\"icon---checkmark\",\"d\":\"M1533,764 C1524.16429,764 1517,771.164286 1517,780 C1517,788.835714 1524.16429,796 1533,796 C1541.83571,796 1549,788.835714 1549,780 C1549,771.164286 1541.83571,764 1533,764 Z M1541.20714,774.65 L1531.27143,787.4 C1531.19286,787.478571 1531.06429,787.65 1530.90714,787.65 C1530.74286,787.65 1530.63571,787.535714 1530.54286,787.442857 C1530.45,787.35 1524.90714,782.021429 1524.90714,782.021429 L1524.8,781.914286 C1524.75714,781.85 1524.72143,781.771429 1524.72143,781.685714 C1524.72143,781.6 1524.75714,781.521429 1524.8,781.457143 C1524.82857,781.428571 1524.85,781.407143 1524.87857,781.371429 C1525.42857,780.792857 1526.54286,779.621429 1526.61429,779.55 C1526.70714,779.457143 1526.78571,779.335714 1526.95714,779.335714 C1527.13571,779.335714 1527.25,779.485714 1527.33571,779.571429 C1527.42143,779.657143 1530.55,782.664286 1530.55,782.664286 L1538.5,772.45 C1538.57143,772.392857 1538.65714,772.35 1538.75,772.35 C1538.84286,772.35 1538.92857,772.385714 1539,772.442857 L1541.18571,774.164286 C1541.24286,774.235714 1541.27857,774.321429 1541.27857,774.414286 C1541.28571,774.507143 1541.25,774.585714 1541.20714,774.65 L1541.20714,774.65 Z\"}})])])])]),_c('span',[_c('b',[_vm._v(_vm._s(_vm.content.shoppingList.emailSentMessage))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailSentMessage2))])]),_c('p',{staticClass:\"emailSentMessage\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleResend.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.emailSentResent))])])]):_vm._e(),(!_vm.email.emailReady && !_vm.email.emailSent && _vm.emailError)?_c('div',{staticClass:\"emailSent\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"height\":\"20\",\"width\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"fill\":\"#80868B\",\"mask\":\"url(#b)\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"emailSentTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailErrorTitle))])]),_c('div',{staticClass:\"emailSentMessage\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailErrorMsg1)),_c('br'),_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailErrorMsg2))])]),_c('p',{staticClass:\"emailSentMessage\"},[_c('b',[_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailErrorMsg3)+\" \")])])]):_vm._e(),(!_vm.clear.clearReady && _vm.clear.clearDone && _vm.shoppingList.length==0)?_c('div',{staticClass:\"emailBody1\"},[_c('div',{staticClass:\"clearDone\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.clearDoneMessage))])]),_c('p',{staticStyle:{\"text-align\":\"center\",\"margin-bottom\":\"8px\"}},[_c('button',{staticClass:\"clearItemYes\",attrs:{\"aria-label\":\"yes\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.clearClose))])])]):_vm._e()])])])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div v-if=\"enabled\" v-show=\"showShoppingList\" ref=\"shoppingListPopUp\" :class=\"{'showFilters':showFilters }\" class=\"modal-wpr\" tabindex=\"0\" @click=\"closeShoppingList\">\r\n\t\t<config-style-injector :config=\"config\" :root-selector=\"`${$options._scopeId}.modal-wpr`\"/>\r\n\t\t<div v-click-outside=\"onClickOutside\" :class=\"`modal ${flyerOrientation}`\" @click.stop=\"\">\r\n\t\t\t<div class=\"header\">\r\n\t\t\t\t<span class=\"shoppingListTitle\">{{ content.shoppingList.shoppingListTitle }}</span>\r\n\t\t\t\t<button :aria-label=\"content.shoppingList.closeShoppingList\" class=\"close-btn\" @click=\"closeShoppingList\">\r\n\t\t\t\t\t<img alt=\"Close\" src=\"/images/icon-close-white.svg\">\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"content\">\r\n\t\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t\t<!-- <div :class=\"`${flyerOrientation}`\"> -->\r\n\t\t\t\t\t<!-- ITEMS IN SHOPPING LIST CODE STARTS-->\r\n\r\n\t\t\t\t\t<div v-if=\"shoppingList.length>0\" class=\"itemsContainer\">\r\n\t\t\t\t\t\t<div v-for=\"product in shoppingList\" :key=\"product.sku\" class=\"itemElement\">\r\n\t\t\t\t\t\t\t<div class=\"left_section\">\r\n\t\t\t\t\t\t\t\t<img :src=\"product.productImage\" alt=\"\" class=\"productImage\">\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"productDetailsContainer\">\r\n\t\t\t\t\t\t\t\t<div class=\"row1\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"productTitle\">{{ product.productFr }} <span v-show=\"product.productFr && product.productEn\">|</span> {{ product.productEn }}</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<div class=\"qtyGroup\">\r\n\t\t\t\t\t\t\t\t\t\t<button :disabled=\"product.quantity == 1\" class=\"qty-out\" @click=\"handleQtyChange(product.sku,'minus')\">\r\n\t\t\t\t\t\t\t\t\t\t\t<!-- <img :alt=\"content.qtyOut\" src=\"/images/icon-decrease.svg\" /> -->\r\n\t\t\t\t\t\t\t\t\t\t\t<svg height=\"2px\" version=\"1.1\" viewBox=\"0 0 12 2\" width=\"12px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<title>icon - decrease-size copy 2</title>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<g id=\"TransCon-Direction\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<g id=\"SuperC---ShoppingList---EN\" fill=\"#545454\" fill-rule=\"nonzero\" transform=\"translate(-1808.000000, -173.000000)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<polygon id=\"icon---decrease-size-copy-2\" points=\"1820 175 1808 175 1808 173 1820 173\"></polygon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"qty-percent\">{{ product.quantity }}</div>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"qty-in\"\r\n\t\t\t\t\t\t\t\t\t\t @click=\"handleQtyChange(product.sku,'plus')\">\r\n\t\t\t\t\t\t\t\t\t\t\t<!-- <img :alt=\"content.qtyIn\" src=\"/images/icon-increase.svg\" /> -->\r\n\t\t\t\t\t\t\t\t\t\t\t<svg height=\"12px\" version=\"1.1\" viewBox=\"0 0 12 12\" width=\"12px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<g id=\"TransCon-Direction\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<g id=\"SuperC---ShoppingList---EN\" fill=\"#545454\" fill-rule=\"nonzero\" transform=\"translate(-1872.000000, -168.000000)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<polygon id=\"icon---increase-size-copy-2\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t points=\"1884 174.857143 1878.85714 174.857143 1878.85714 180 1877.14286 180 1877.14286 174.857143 1872 174.857143 1872 173.142857 1877.14286 173.142857 1877.14286 168 1878.85714 168 1878.85714 173.142857 1884 173.142857\"></polygon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<div class=\"row2\">\r\n\t\t\t\t\t\t\t\t\t<div v-if=\"!product.productImage.includes('generic')\" class=\"validity\">\r\n\t\t\t\t\t\t\t\t\t\t<span><strong>{{ content.shoppingListValidFrom }} </strong></span>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"date\" v-html=\"flyerDate(product.validFrom,product.validTo)\"></span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<div class=\"row3\">\r\n\t\t\t\t\t\t\t\t\t<!-- <div class=\"salePrice\">{{ product.salePrice }}</div> -->\r\n\r\n\t\t\t\t\t\t\t\t\t<div v-if=\"product.salePrice==='$NaN' || product.salePrice==='NaN$' || product.salePrice==='' || product.salePrice==null \" class=\"salePrice\"></div>\r\n\t\t\t\t\t\t\t\t\t<span v-else-if=\"product.salePrice==='3.99 Ã 7.99' && language=='fr'\" class=\"salePrice\">\r\n 3,99$ Ã 7,99$</span>\r\n\t\t\t\t\t\t\t\t\t<span v-else-if=\"product.salePrice==='3.99 Ã 7.99' && language=='en'\" class=\"salePrice\">\r\n $3.99 Ã $7.99</span>\r\n\t\t\t\t\t\t\t\t\t<div v-else class=\"salePrice\">\r\n\t\t\t\t\t\t\t\t\t\t<span v-if=\"product.salePricePrefix\"> {{ product.salePricePrefix }} </span>\r\n\t\t\t\t\t\t\t\t\t\t<span v-if=\"product.priceQuantity\">{{ product.priceQuantity }} / </span>\r\n\t\t\t\t\t\t\t\t\t\t{{ product.salePrice }}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<span v-if=\"product.promoUnitFr\"> {{ product.promoUnitFr }} </span>\r\n\t\t\t\t\t\t\t\t\t<button class=\"delIcon\" @click.stop.prevent=\"handleDeleteItem(product)\">\r\n\t\t\t\t\t\t\t\t\t\t<!-- <img src=\"images/icon-trash.svg\" class=\"delIcon\" @click=\"handleDeleteItem(product)\"> -->\r\n\t\t\t\t\t\t\t\t\t\t<svg height=\"33px\" version=\"1.1\" viewBox=\"0 0 33 33\" width=\"33px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t\t\t<title>{{ content.shoppingList.deleteItem }}</title>\r\n\t\t\t\t\t\t\t\t\t\t\t<g id=\"TransCon-Direction\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<g id=\"SuperC---ShoppingList---FR\" transform=\"translate(-1863.000000, -213.000000)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<g id=\"Trash\" transform=\"translate(1863.954673, 213.500445)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect id=\"Rectangle\" height=\"32\" width=\"32\" x=\"0\" y=\"0\"></rect>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<path id=\"Shape\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t d=\"M26.9995112,6 L22,6 L22,5 C21.9981277,3.34392191 20.6560781,2.00187233 19,2 L13,2 C11.3439219,2.00187233 10.0018723,3.34392191 10,5 L10,6 L4.99951125,6 C4.4472265,6 3.99951125,6.44771525 3.99951125,7 C3.99951125,7.55228475 4.4472265,8 4.99951125,8 L5.99951125,8 L5.99951125,26 C6.0007739,27.1040461 6.89546518,27.9987373 7.99951125,28 L23.9995112,28 C25.1035573,27.9987373 25.9982486,27.1040461 25.9995112,26 L25.9995112,8 L26.9995112,8 C27.551796,8 27.9995112,7.55228475 27.9995112,7 C27.9995112,6.44771525 27.551796,6 26.9995112,6 L26.9995112,6 Z M14,21 C14,21.5522847 13.5522847,22 13,22 C12.4477153,22 12,21.5522847 12,21 L12,13 C12,12.4477153 12.4477153,12 13,12 C13.5522847,12 14,12.4477153 14,13 L14,21 Z M20,21 C20,21.5522847 19.5522847,22 19,22 C18.4477153,22 18,21.5522847 18,21 L18,13 C18,12.4477153 18.4477153,12 19,12 C19.5522847,12 20,12.4477153 20,13 L20,21 Z M20,6 L12,6 L12,5 C12.0006317,4.44797711 12.4479771,4.00063167 13,4 L19,4 C19.5520229,4.00063167 19.9993683,4.44797711 20,5 L20,6 Z\" fill=\"#ADADAD\" fill-rule=\"nonzero\"></path>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t\t</button>\r\n\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div v-else class=\"itemsContainer\" style=\"display:flex; justify-content: center; flex-direction: column; padding:20px;text-align: center\">\r\n\r\n\t\t\t\t\t\t<h3 class=\"h3-fontsize\"><strong>{{ content.shoppingList.noItemsInSLTitle }}</strong></h3><br/>\r\n\t\t\t\t\t\t<p class=\"p-fontsize\">{{ content.shoppingList.noItemsInSLMsg }} </p>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<!-- ITEMS IN SHOPPING LIST ENDS -->\r\n\t\t\t\t\t<div class=\"addItemContainer\">\r\n\t\t\t\t\t\t<div class=\"addItemContainer_content\">\r\n\t\t\t\t\t\t\t<input ref=\"additional-item\" v-model=\"additionalItem\"\r\n\t\t\t\t\t\t\t :aria-label=\"content.shoppingList.addItemPlaceholder\"\r\n\t\t\t\t\t\t\t :placeholder=\"content.shoppingList.addItemPlaceholder\"\r\n\t\t\t\t\t\t\t class=\"txtAddItem\"\r\n\t\t\t\t\t\t\t tabindex=\"0\"\r\n\t\t\t\t\t\t\t type=\"text\"\r\n\t\t\t\t\t\t\t @blur=\"setAdditionalItemInputFocus(false)\"\r\n\t\t\t\t\t\t\t @focus=\"setAdditionalItemInputFocus(true)\"\r\n\t\t\t\t\t\t\t @keyup.enter=\"handleAdditionalItem\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<button :disabled=\"additionalItem.length<2\" aria-label=\"addItem\" class=\"addItem\" @click=\"handleAdditionalItem\">{{ content.shoppingList.addItem }}</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-if=\"shoppingList.length>0\" class=\"optionsContainer\">\r\n\t\t\t\t\t\t<button class=\"btnOptions\" @click=\"toggleEmail(!email.value)\"><img :src=\"getImage('email')\" alt=\"Email\"></button>\r\n\t\t\t\t\t\t<button class=\"btnOptions\" @click=\"handlePrint\"><img :src=\"getImage('print')\" alt=\"Print\"></button>\r\n\t\t\t\t\t\t<button class=\"btnOptions\" @click=\"toggleClear(!clear.value)\"><img :src=\"getImage('clear')\" alt=\"Clear\"></button>\r\n </div>\r\n\r\n\t\t\t\t\t\t<div v-if=\"email.emailReady && !email.emailSent && !emailError\" class=\"emailBody\">\r\n <span class=\"emailTitle\">\r\n <span>{{ content.shoppingList.emailTitle }}</span>\r\n <button class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg height=\"20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g fill=\"#80868B\" mask=\"url(#b)\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n </span>\r\n\t\t\t\t\t\t\t<div class=\"emailMessage\"> {{ content.shoppingList.emailWarning }}</div>\r\n\r\n\t\t\t\t\t\t\t<div class=\"emailTxtBoxContainer\">\r\n\t\t\t\t\t\t\t\t<input ref=\"search-input\" v-model=\"emailAddress\"\r\n\t\t\t\t\t\t\t\t :placeholder=\"content.shoppingList.emailPlaceholder\"\r\n\t\t\t\t\t\t\t\t aria-label=\"Entrez votre adresse courriel\"\r\n\t\t\t\t\t\t\t\t class=\"txtAddItem\"\r\n\t\t\t\t\t\t\t\t tabindex=\"0\"\r\n\t\t\t\t\t\t\t\t type=\"text\"\r\n\t\t\t\t\t\t\t\t @blur=\"setEmailInputFocus(false)\"\r\n\t\t\t\t\t\t\t\t @focus=\"setEmailInputFocus(true)\"\r\n\t\t\t\t\t\t\t\t @keyup.enter=\"handleEmail()\"\r\n\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<button :disabled=\"isValidEmail\" aria-label=\"addItem\" class=\"addItem\" @click.stop.prevent=\"handleEmail()\">{{ content.shoppingList.send }}</button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div v-if=\"clear.clearReady && !clear.clearDone\" class=\"emailBody\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeClear\">\r\n <svg height=\"20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g fill=\"#80868B\" mask=\"url(#b)\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n\t\t\t\t\t\t\t<div class=\"clearTitle\">\r\n\t\t\t\t\t\t\t\t<span style=\"text-align: center\">{{ content.shoppingList.clearTitle }}</span>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"clearBtnContainer\">\r\n\t\t\t\t\t\t\t\t<button aria-label=\"yes\" class=\"clearItemYes\" @click.stop.prevent=\"handleClear\">{{ content.shoppingList.yes }}</button>\r\n\t\t\t\t\t\t\t\t<button aria-label=\"no\" class=\"clearItemNo\" @click.stop.prevent=\"closeClear\">{{ content.shoppingList.no }}</button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div v-if=\"!email.emailReady && email.emailSent && !emailError\" class=\"emailSent\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg height=\"20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g fill=\"#80868B\" mask=\"url(#b)\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n\t\t\t\t\t\t\t<div class=\"emailSentTitle\">\r\n\t\t\t\t\t\t\t\t<span>{{ content.shoppingList.emailSentTitle }}</span>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"emailSentMessage\">\r\n <span class=\"emailSentCheck\">\r\n <svg height=\"32px\" version=\"1.1\" viewBox=\"0 0 32 32\" width=\"32px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <title>icon - checkmark</title>\r\n <g id=\"TransCon-Direction\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n <g id=\"SuperC---ShoppingList---FR---Email-Confirmation\" fill=\"#333333\" fill-rule=\"nonzero\" transform=\"translate(-1517.000000, -764.000000)\">\r\n <path id=\"icon---checkmark\"\r\n d=\"M1533,764 C1524.16429,764 1517,771.164286 1517,780 C1517,788.835714 1524.16429,796 1533,796 C1541.83571,796 1549,788.835714 1549,780 C1549,771.164286 1541.83571,764 1533,764 Z M1541.20714,774.65 L1531.27143,787.4 C1531.19286,787.478571 1531.06429,787.65 1530.90714,787.65 C1530.74286,787.65 1530.63571,787.535714 1530.54286,787.442857 C1530.45,787.35 1524.90714,782.021429 1524.90714,782.021429 L1524.8,781.914286 C1524.75714,781.85 1524.72143,781.771429 1524.72143,781.685714 C1524.72143,781.6 1524.75714,781.521429 1524.8,781.457143 C1524.82857,781.428571 1524.85,781.407143 1524.87857,781.371429 C1525.42857,780.792857 1526.54286,779.621429 1526.61429,779.55 C1526.70714,779.457143 1526.78571,779.335714 1526.95714,779.335714 C1527.13571,779.335714 1527.25,779.485714 1527.33571,779.571429 C1527.42143,779.657143 1530.55,782.664286 1530.55,782.664286 L1538.5,772.45 C1538.57143,772.392857 1538.65714,772.35 1538.75,772.35 C1538.84286,772.35 1538.92857,772.385714 1539,772.442857 L1541.18571,774.164286 C1541.24286,774.235714 1541.27857,774.321429 1541.27857,774.414286 C1541.28571,774.507143 1541.25,774.585714 1541.20714,774.65 L1541.20714,774.65 Z\"></path>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n\t\t\t\t\t\t\t\t<span><b>{{ content.shoppingList.emailSentMessage }}</b> <br/> {{ content.shoppingList.emailSentMessage2 }}</span>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<p class=\"emailSentMessage\"><a href=\"#\" @click.stop.prevent=\"handleResend\">{{ content.shoppingList.emailSentResent }}</a></p>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div v-if=\"!email.emailReady && !email.emailSent && emailError\" class=\"emailSent\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg height=\"20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g fill=\"#80868B\" mask=\"url(#b)\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n\t\t\t\t\t\t\t<div class=\"emailSentTitle\">\r\n\t\t\t\t\t\t\t\t<span>{{ content.shoppingList.emailErrorTitle }}</span>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"emailSentMessage\">\r\n\t\t\t\t\t\t\t\t<span>{{ content.shoppingList.emailErrorMsg1 }}<br/> {{ content.shoppingList.emailErrorMsg2 }}</span>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<p class=\"emailSentMessage\"><b> {{ content.shoppingList.emailErrorMsg3 }} </b></p>\r\n\t\t\t\t\t\t</div>\r\n\r\n\r\n\t\t\t\t\t<div v-if=\"!clear.clearReady && clear.clearDone && shoppingList.length==0\" class=\"emailBody1\">\r\n\t\t\t\t\t\t<div class=\"clearDone\">\r\n\t\t\t\t\t\t\t<span>{{ content.shoppingList.clearDoneMessage }}</span>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<p style=\"text-align: center;margin-bottom: 8px\">\r\n\t\t\t\t\t\t\t<button aria-label=\"yes\" class=\"clearItemYes\" @click.stop.prevent=\"closeClear\">{{ content.shoppingList.clearClose }}</button>\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</div>\r\n\r\n\r\n\t\t\t\t</div>\r\n\r\n\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from 'vuex';\r\nimport moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\nexport default {\r\n\tcomponents: {ConfigStyleInjector},\r\n\tmixins: [featureMixin],\r\n\tprops: {\r\n\t\tdeal: String,\r\n\t},\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'shoppingList',\r\n\t\t\tready: false,\r\n\t\t\tadditionalItem: '',\r\n\t\t\temail: {\r\n\t\t\t\tvalue: false,\r\n\t\t\t\temailReady: false,\r\n\t\t\t\temailSent: false,\r\n\t\t\t},\r\n\t\t\temailAddress: '',\r\n\t\t\tclear: {\r\n\t\t\t\tvalue: false,\r\n\t\t\t\tclearReady: false,\r\n\t\t\t\tclearDone: false\r\n\t\t\t},\r\n\r\n\t\t}\r\n\t},\r\n\r\n\tcomputed: {\r\n\t\t...mapGetters(['content', 'language']),\r\n\t\t...mapGetters('screen', ['flyerOrientation']),\r\n\t\t...mapState('shoppingList', ['showShoppingList', 'shoppingList', 'emailError']),\r\n\t\t...mapGetters('landingPage', ['currentFlyer']),\r\n\t\t...mapState(['showFilters']),\r\n\r\n\r\n\t\tisValidEmail() {\r\n\t\t\treturn !/^(([^<>()[\\]\\\\.,;:\\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(this.emailAddress)\r\n\t\t},\r\n\r\n\t},\r\n\r\n\r\n\tmethods: {\r\n\t\t...mapActions('shoppingList', ['setAdditionalItemInputFocus', 'toggleShoppingList', 'setAddToList', 'skuAddToList', 'setRemoveFromList', 'quantityChange', 'clearAll', 'sendEmail', 'setEmailError', 'setEmailInputFocus']),\r\n\r\n\t\tgetImage(val) {\r\n\t\t\tif (val === \"email\") {\r\n\t\t\t\tif (this.email.value)\r\n\t\t\t\t\treturn `/images/Email-${this.language}-GRN.svg`\r\n\r\n\t\t\t\telse\r\n\t\t\t\t\treturn `/images/Email-${this.language}-Grey.svg`\r\n\t\t\t}\r\n\t\t\tif (val == \"clear\") {\r\n\r\n\t\t\t\tif (this.clear.value)\r\n\t\t\t\t\treturn `/images/Clear-${this.language}-GRN.svg`\r\n\r\n\t\t\t\telse\r\n\t\t\t\t\treturn `/images/Clear-${this.language}-Grey.svg`\r\n\t\t\t}\r\n\t\t\tif (val == \"print\")\r\n\t\t\t\treturn `/images/Print-${this.language}-Grey.svg`\r\n\t\t},\r\n\r\n\t\tcloseHelp() {\r\n\t\t\tif (this.ready) {\r\n\t\t\t\tthis.toggleShoppingList(false);\r\n\t\t\t\t// console.log('close shoppinglist');\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\thandleQtyChange(sku, operation) {\r\n\t\t\tthis.quantityChange({sku, operation});\r\n\t\t},\r\n\r\n\t\tcloseEmail() {\r\n\t\t\tthis.email.value = false;\r\n\t\t\tthis.email.emailReady = false;\r\n\t\t\tthis.email.emailSent = false;\r\n\t\t\tthis.setEmailError(false);\r\n\t\t\tthis.emailAddress = ''\r\n\t\t},\r\n\t\tcloseClear() {\r\n\t\t\tthis.clear.value = false;\r\n\t\t\tthis.clear.clearReady = false;\r\n\t\t\tthis.clear.clearDone = false;\r\n\t\t},\r\n\r\n\t\tflyerDate(validFrom, validTo) {\r\n\t\t\tconst start = validFrom ? moment.utc(validFrom) : '';\r\n\t\t\tconst endDate = validTo ? moment.utc(validTo) : '';\r\n\t\t\tif (this.language === 'en') {\r\n\t\t\t\treturn `${start.locale('en').format('MMMM D, YYYY')} to ${endDate.locale('en').format('MMMM D, YYYY')}`;\r\n\t\t\t} else {\r\n\t\t\t\treturn `${start.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\thandleDeleteItem(element) {\r\n\t\t\tthis.setRemoveFromList(element);\r\n\t\t},\r\n\r\n\t\thandleAdditionalItem() {\r\n\t\t\tif (this.additionalItem == '') return\r\n\r\n\t\t\tconst additionalItemFlag = true;\r\n\t\t\tconst additionalItem = this.additionalItem\r\n\t\t\tthis.additionalItem = '';\r\n\t\t\tthis.clear.value = false;\r\n\t\t\tthis.email.value = false;\r\n\t\t\tthis.setAddToList({additionalItem, additionalItemFlag});\r\n\r\n\t\t},\r\n\r\n\t\thandlePrint() {\r\n\r\n\t\t\tvar i = 0;\r\n\t\t\tvar printWindow = window.open(\"\");\r\n\t\t\tprintWindow.document.write(`<html><head><link rel=\"icon\" href=\"./images/metro_favicon.png\"><title>${AppConfig?.AppConf?.title}-Print ShoppingList</title></head><style>\r\n.print_container_background{\r\n /*overflow-y:visible;*/\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 9999;\r\n display: flex;\r\n justify-content: center;\r\n align-items: flex-start;\r\n transition: opacity .3s ease;\r\n}\r\n\r\n.print_container{\r\n width: 700px;\r\n /* display: flex;\r\n justify-content: space-between; */\r\n font-weight: bold;\r\n margin-top: 15px;\r\n}\r\n.print_header {\r\n display: flex;\r\n justify-content: space-between;\r\n margin-top: 15px;\r\n padding-right: 10px;\r\n align-items: center;\r\n border-top: 1px solid lightgrey;\r\n border-right: 1px solid lightgrey;\r\n border-bottom: 1px solid lightgrey;\r\n}\r\n\r\n.logo{\r\n width:220px;\r\n}\r\n\r\n.title{\r\n font-size:20px;\r\n font-weight: bold;\r\n}\r\n\r\n.print_quantity {\r\n display: flex;\r\n justify-content: space-between;\r\n padding-right: 10px;\r\n align-items: center;\r\n padding: 20px 10px 10px 10px;\r\n border-bottom: 3px solid lightgrey;\r\n font-size: 14px;\r\n}\r\n\r\na{\r\n cursor: pointer;\r\n color:#0000EE;\r\n display: block;\r\n text-decoration: underline;\r\n font-size: 12px;;\r\n}\r\n\r\n.productImage{\r\n max-height: 100%;\r\n max-width: 100%;\r\n width: auto;\r\n height: 37px;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n}\r\n\r\n.itemElement{\r\n display:flex;\r\n justify-content: space-between;\r\n padding:15px;\r\n border-bottom: 1px solid lightgrey;\r\n align-items: center;\r\n}\r\n\r\n.checklist {\r\n width: 35px;\r\n height: 35px;\r\n border: 1px solid gray;\r\n left: 5px;\r\n top: 0;\r\n bottom: 0;\r\n /* margin: auto; */\r\n cursor: pointer;\r\n}\r\n\r\n.productDetails {\r\n display: flex;\r\n flex-direction: column;\r\n width:75%;\r\n}\r\n\r\n.productTitle, .productPrice{\r\n font-weight: bold;\r\n font-size: 13px;\r\n}\r\n\r\n.productPrice {\r\n font-size: 14px;\r\n}\r\n\r\n.validityTitle {\r\n font-size: 12px;\r\n}\r\n\r\n.validityDate {\r\n font-size: 12px;\r\n /* color: var(--primary-color); */\r\n color: #EE3124;\r\n margin-left: 2px;\r\n font-weight: 500;\r\n}\r\n\r\n.disclaimer {\r\n font-size: 10px;\r\n font-weight: 400;\r\n margin-top: 15px;\r\n}\r\n\r\n@media print{\r\n* {\r\n display:inline;\r\n overflow: auto !important;\r\n}\r\nscript, style {\r\n display:none;\r\n}\r\n.itemElement{\r\npage-break-inside: avoid;\r\n}\r\n}\r\n\r\n</style>` +\r\n\t\t\t\t`<body style=\"font-family: Lato, sans-serif;\">`);\r\n\t\t\tprintWindow.document.write(`<body>` +\r\n\t\t\t\t`<div class=\"print_container_background\">\r\n <div class=\"print_container\">\r\n <div class=\"row\">\r\n <a onclick=\"window.print();\">` + this.content.shoppingList.shoppingListPrint + `</a>\r\n </div>` +\r\n\r\n\t\t\t\t`<div class=\"print_header\">\r\n <img src='/images/${AppConfig?.AppConf?.title}_logo.jpg' class=\"logo\">\r\n <div class=\"title\">` + this.content.shoppingList.shoppingListTitle + `</div>\r\n </div>\r\n\r\n <div class=\"print_quantity\">\r\n <div>` + this.shoppingList.length + ` ` + this.content.shoppingList.items + `</div>\r\n <div>` + this.content.shoppingList.productQuantityTitle + `</div>\r\n </div>\r\n <div class=\"itemsContainer\">`)\r\n\r\n\t\t\twhile (i < this.shoppingList.length) {\r\n\t\t\t\tprintWindow.document.write(`<div class=\"itemElement\">\r\n <span class=\"checklist\"> </span>\r\n <span style=\"width:10%\">\r\n <img src=\"` + this.shoppingList[i].productImage + `\" class=\"productImage\" alt=` + this.shoppingList[i].productEn + `>\r\n </span>\r\n <div class=\"productDetails\">\r\n <span class=\"productTitle\">`)\r\n\t\t\t\tif (this.shoppingList[i].productFr !== null)\r\n\t\t\t\t\tprintWindow.document.write(`<span>` + this.shoppingList[i].productFr + `</span>`)\r\n\r\n\t\t\t\tif (this.shoppingList[i].productEn && this.shoppingList[i].productFr)\r\n\t\t\t\t\tprintWindow.document.write(`<span> | </span>`)\r\n\r\n\t\t\t\tif (this.shoppingList[i].productEn !== null)\r\n\t\t\t\t\tprintWindow.document.write(this.shoppingList[i].productEn)\r\n\r\n\t\t\t\tprintWindow.document.write(`<br/>`)\r\n\r\n if (this.shoppingList[i].salePricePrefix)\r\n printWindow.document.write(`<span>` + this.shoppingList[i].salePricePrefix + ' ' + `</span>`)\r\n\t\t\t\tif (this.shoppingList[i].priceQuantity) {\r\n\t\t\t\t\tprintWindow.document.write(\r\n\t\t\t\t\t\t`<span class=\"productPrice\">` +\r\n\t\t\t\t\t\tthis.shoppingList[i].priceQuantity + `<span> / </span>` +\r\n\t\t\t\t\t\tthis.shoppingList[i].salePrice +\r\n\t\t\t\t\t\t`</span>`);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tprintWindow.document.write(`<span class=\"productPrice\">` + this.shoppingList[i].salePrice + `</span>`);\r\n\t\t\t\t}\r\n\t\t\t\tif (!this.shoppingList[i].productImage.includes('generic')) {\r\n\t\t\t\t\tprintWindow.document.write(`<div>\r\n <span class=\"validityTitle\">` +\r\n\t\t\t\t\t\tthis.content.shoppingList.shoppingListValidFrom +\r\n\t\t\t\t\t\t`:</span> <span class=\"validityDate\">` + this.flyerDate(this.shoppingList[i].validFrom, this.shoppingList[i].validTo) + `</span></div>`)\r\n\t\t\t\t}\r\n\t\t\t\tprintWindow.document.write(`\r\n </div>\r\n <div>` + this.shoppingList[i].quantity + `</div>\r\n </div>`)\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t\tprintWindow.document.write(`<div class=\"disclaimer\">` + this.content.shoppingList.printDisclaimer + `</div>`\r\n\t\t\t\t+ `</body></html>`)\r\n\t\t},\r\n\r\n\t\tcloseShoppingList() {\r\n\t\t\tif (this.showShoppingList) {\r\n\t\t\t\tthis.additionalItem = ''\r\n\t\t\t\tthis.emailAddress = ''\r\n\t\t\t\tthis.email.value = false;\r\n\t\t\t\tthis.email.emailReady = false;\r\n\t\t\t\tthis.email.emailSent = false;\r\n\t\t\t\tthis.setEmailError(false);\r\n\t\t\t\tthis.clear.value = false;\r\n\t\t\t\tthis.clear.clearReady = false;\r\n\t\t\t\tthis.clear.clearDone = false;\r\n\t\t\t\tthis.toggleShoppingList(false);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClickOutside() {\r\n\t\t\tif (this.ready) {\r\n\t\t\t\tthis.closeShoppingList();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// closeShoppingList1() {\r\n\t\t// //console.log( this.ready);\r\n\t\t// if (this.ready) {\r\n\t\t// this.toggleShoppingList(false);\r\n\t\t// //console.log(\"click outside sl\", this.ready);\r\n\t\t// }\r\n\t\t// },\r\n\r\n\t\ttoggleEmail(val) {\r\n\t\t\tthis.email.value = val\r\n\t\t\tif (this.email.value) {\r\n\t\t\t\tthis.email.emailReady = true;\r\n\t\t\t\tthis.email.emailSent = false;\r\n\t\t\t\tthis.setEmailError(false);\r\n\t\t\t\tthis.clear.value = false;\r\n\t\t\t\tthis.clear.clearReady = false;\r\n\t\t\t\tthis.clear.clearDone = false;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis.email.emailReady = false;\r\n\t\t\t\tthis.email.emailSent = false;\r\n\t\t\t\tthis.setEmailError(false);\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\ttoggleClear(val) {\r\n\t\t\tthis.clear.value = val\r\n\t\t\tif (this.clear.value) {\r\n\t\t\t\tthis.clear.clearReady = true;\r\n\t\t\t\tthis.clear.clearDone = false;\r\n\t\t\t\tthis.email.value = false;\r\n\t\t\t\tthis.email.emailReady = false;\r\n\t\t\t\tthis.email.emailSent = false;\r\n\t\t\t\tthis.setEmailError(false);\r\n\t\t\t} else {\r\n\t\t\t\tthis.clear.clearReady = false;\r\n\t\t\t\tthis.clear.clearDone = false;\r\n\t\t\t}\r\n\r\n\t\t},\r\n\t\tgetUrlParameter(name) {\r\n\t\t\tname = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n\t\t\tvar regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\r\n\t\t\tvar results = regex.exec(window.location.search);\r\n\t\t\treturn results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n\t\t},\r\n\r\n\t\tasync handleEmail() {\r\n\t\t\tif (this.emailAddress === '')\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!this.isValidEmail) {\r\n\t\t\t\tthis.email.emailReady = false;\r\n\t\t\t\tlet emailBody = {\r\n\t\t\t\t\tdeal: this.deal,\r\n\t\t\t\t\tstoreId: this.getUrlParameter(\"storeId\"),\r\n\t\t\t\t\tlang: this.getUrlParameter(\"language\") === \"fr\" ? \"bil\" : \"en\",\r\n\t\t\t\t\tshoppingList: this.shoppingList,\r\n\t\t\t\t\tto: this.emailAddress\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// console.log(emailBody);\r\n\t\t\t\tawait this.sendEmail(emailBody);\r\n\r\n\t\t\t\t// this.emailAddress=''\r\n\t\t\t\tif (this.emailError == false)\r\n\t\t\t\t\tthis.email.emailSent = true;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\thandleResend() {\r\n\t\t\tthis.email.emailSent = false;\r\n\t\t\tthis.email.emailReady = true;\r\n\t\t},\r\n\r\n\t\thandleClear() {\r\n\t\t\tthis.clear.clearReady = false;\r\n\t\t\tthis.clear.clearDone = true;\r\n\t\t\tthis.clearAll()\r\n\t\t\tsetTimeout(() => this.clear.clearDone = false, 9000)\r\n\t\t},\r\n\r\n\t},\r\n\r\n\twatch: {\r\n\t\tshowShoppingList(v) {\r\n\t\t\tif (v) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.ready = true;\r\n\t\t\t\t}, 1000)\r\n\t\t\t}\r\n\t\t\tthis.ready = false;\r\n\t\t}\r\n\t},\r\n\r\n\tmounted() {\r\n\t\t// console.log(this.$refs.shoppingListPopUp);\r\n\t\tconst shoppingListPopUpFocus = this.$refs.shoppingListPopUp;\r\n\t\tif(shoppingListPopUpFocus)shoppingListPopUpFocus.focus();\r\n\r\n\t\tconst skuAddToList = this.skuAddToList;\r\n\t\tconst setRemoveFromList = this.setRemoveFromList;\r\n\t\twindow.addEventListener('message', async event => {\r\n\t\t\tif (event.data.action === 'addToShoppingList') {\r\n\t\t\t\t// add to shopping list\r\n\t\t\t\tconst skuAdded = await skuAddToList(event.data.sku)\r\n\r\n\t\t\t\t// confirm added to shopping list\r\n\t\t\t\tif (skuAdded) {\r\n\t\t\t\t\twindow.parent.postMessage({action: 'confirmation', message: `${event.data.sku} added to shopping list.`}, '*')\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.parent.postMessage({action: 'error', message: `${event.data.sku} wasn't found.`}, '*')\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (event.data.action === 'removeFromShoppingList') {\r\n\t\t\t\t// delete from shopping list\r\n\t\t\t\tconst skuAdded = await setRemoveFromList({sku: event.data.sku})\r\n\r\n\t\t\t\t// confirm deleted from shopping list\r\n\t\t\t\tif (skuAdded) {\r\n\t\t\t\t\twindow.parent.postMessage({action: 'confirmation', message: `${event.data.sku} removed from shopping list.`}, '*')\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.parent.postMessage({action: 'error', message: `${event.data.sku} wasn't found.`}, '*')\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, false);\r\n\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.left_section {\r\n margin-right: 15px;\r\n height: 55px;\r\n width: 20%;\r\n float: left;\r\n}\r\n\r\n.productDetailsContainer {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.row1 {\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n.row3 {\r\n display: flex;\r\n justify-content: space-between;\r\n padding-top: 12px;\r\n}\r\n\r\n.itemsContainer {\r\n min-height: 150px;\r\n max-height: 275px;\r\n //max-width: calc(100vw - 6em);\r\n overflow-y: auto;\r\n padding: 0 10px 0 10px;\r\n}\r\n\r\n.h3-fontsize {\r\n font-size: 17px;\r\n padding: 0 15px 0 15px;\r\n line-height: 1.4em;\r\n}\r\n\r\n.p-fontsize {\r\n font-size: 15px;\r\n padding: 0 15px 0 15px;\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.itemElement {\r\n // display:flex;\r\n // justify-content: space-between;\r\n //justify-content: center;\r\n border-bottom: 1px solid lightgrey;\r\n //margin-bottom: 15px;\r\n padding: 10px 5px;\r\n}\r\n\r\n.productTitle {\r\n font-size: 15px;\r\n font-weight: bold;\r\n line-height: 1.1em;\r\n padding-right: 10px;\r\n word-break: break-word;\r\n}\r\n\r\n.productImage {\r\n //height:50px;\r\n max-height: 100%;\r\n max-width: 100%;\r\n width: auto;\r\n height: auto;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n}\r\n\r\n.validity {\r\n font-size: 13px;\r\n}\r\n\r\n.delIcon {\r\n cursor: pointer;\r\n // height:28px;\r\n}\r\n\r\n.salePrice {\r\n font-size: 15px;\r\n font-weight: bold;\r\n}\r\n\r\n.right_section {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n justify-content: space-between;\r\n}\r\n\r\n.optionsContainer{\r\n position: relative;\r\n display:flex;\r\n justify-content: center;\r\n flex:0.9;\r\n //max-width: calc(100vw - 6em);\r\n padding:8px 5px;\r\n}\r\n\r\n.btnOptions{\r\n // width:30%;\r\n cursor:pointer;\r\n border-radius:5px;\r\n border:none;\r\n}\r\n\r\n.btnOptions > img {\r\n object-fit: contain;\r\n margin-right: 5px;\r\n max-width: 125px;\r\n //width:120px;\r\n width: 100%;\r\n}\r\n\r\n.clear {\r\n background-color: green;\r\n color: white;\r\n}\r\n\r\n.qtyGroup {\r\n display: flex;\r\n justify-self: end;\r\n /*margin: 0 2px;*/\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n height: 34px;\r\n}\r\n\r\n.qtyGroup > * {\r\n background: none;\r\n border: 0;\r\n}\r\n\r\n.qty-in {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n}\r\n\r\n.qty-percent {\r\n font-size: 14px;\r\n color: #545454;\r\n display: flex;\r\n align-items: center;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.qty-out {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.addItemContainer {\r\n //max-width: calc(100vw - 6em);\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n position: relative;\r\n z-index: 103;\r\n background-color: #FFF;\r\n padding: 0 3px;\r\n\r\n\r\n .addItemContainer_content {\r\n\tdisplay: flex;\r\n\twidth: 100%;\r\n\tjustify-content: center;\r\n\t//max-width: calc(100vw - 6em);\r\n }\r\n}\r\n\r\n.emailTxtBoxContainer {\r\n //margin-top:10px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 10px auto;\r\n}\r\n\r\n.txtAddItem {\r\n flex: 0.9;\r\n outline: none;\r\n //flex-grow: 1;\r\n border-style: solid;\r\n border-radius: 3px;\r\n border-width: 1px;\r\n text-indent: 1em;\r\n font-size: 11px;\r\n width: 90%;\r\n}\r\n\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n\r\n .description {\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\ttext-align: left;\r\n\talign-items: flex-end;\r\n\r\n\t> :first-child {\r\n\t width: calc(55px + 1em);\r\n\t}\r\n\r\n\t.mobile-content {\r\n\t flex-basis: 100%;\r\n\t}\r\n }\r\n}\r\n\r\n.addItem {\r\n //width: 25%;\r\n padding: 10px;\r\n background-color: var(--tertiary-color);\r\n color: #FFF;\r\n border: none;\r\n border-radius: 3px;\r\n margin-left: -2px;\r\n font-weight: 200;\r\n}\r\n\r\n.addItem:disabled {\r\n background-color: var(--primary-color);\r\n opacity: 0.6;\r\n}\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 99;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n\r\n .modal {\r\n\tbackground-color: var(--secondary-color);\r\n\t/*margin-top: 75px;*/\r\n\tborder: 1px solid #BBBBBB;\r\n\t/* overflow: auto;*/\r\n\tmax-height: calc(100% - 1em);\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tdisplay: flex;\r\n\tflex-flow: column;\r\n\tmax-width: calc(100% - 4em);\r\n\r\n\t.header {\r\n\t background-color: var(--secondary-color);\r\n\t color: var(--primary-text-color);\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 18px;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 400;\r\n\t }\r\n\r\n\t .close-btn {\r\n\t\tcursor: pointer;\r\n\r\n\t\t&:hover {\r\n\t\t background: none;\r\n\t\t filter: unset;\r\n\t\t}\r\n\t }\r\n\t}\r\n\r\n\t.subtitle {\r\n\t padding-top: 6px;\r\n\t font-size: 12px;\r\n\t}\r\n\r\n\t.content {\r\n\t //padding: 8px;\r\n line-height: 20px;\r\n\t background-color: #FFF;\r\n\t color: #545454;\r\n\t position: relative;\r\n\t flex: 1 0 auto;\r\n overflow-x: hidden;\r\n\t overflow-y: auto;\r\n\t // margin:0px 10px 10px 10px;\r\n\t margin: 10px;\r\n\t min-height: 200px;\r\n\t // overflow-y: scroll;\r\n\t max-width: 400px;\r\n\t max-height: calc(100% - 3.5em);\r\n\t /*.scroll-container{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop:0px;\r\n\t\t\t\tbottom:0px;\r\n\t\t\t\tleft:0px;\r\n\t\t\t\tright:0px;\r\n\t\t\t}*/\r\n\t .content-container {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .f-half {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\r\n\t\tflex-direction: column;\r\n\r\n\t\t> div {\r\n\t\t flex-basis: 100%;\r\n\t\t display: flex;\r\n\t\t flex-flow: column;\r\n\t\t}\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 380px;\r\n\t }\r\n\r\n\t .feature {\r\n\t\tbackground: #eee;\r\n\t\tmargin: 12px 0;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\tflex: 1;\r\n\r\n\t\t.description {\r\n\t\t display: flex;\r\n\t\t font-size: 14px;\r\n\t\t padding: 15px 0;\r\n\r\n\t\t .button-preview {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\talign-items: center;\r\n\t\t\tpadding: 0 20px;\r\n\r\n\t\t\th4 {\r\n\t\t\t text-transform: uppercase;\r\n\t\t\t padding-top: 16px;\r\n\t\t\t white-space: nowrap;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t text-align: center;\r\n\t\t\t}\r\n\t\t }\r\n\t\t}\r\n\t }\r\n\t}\r\n\r\n .emailBody{\r\n background-color: lightgrey;\r\n bottom: 86%;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n }\r\n .emailBody1{\r\n background-color: lightgrey;\r\n margin-top:10px;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n }\r\n\r\n\t.emailTitle {\r\n\t font-weight: bold;\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\t font-size: 15px;\r\n\t}\r\n\r\n\t.emailMessage {\r\n\t margin-left: 10px;\r\n\t margin-right: 10px;\r\n\t font-size: 14px;\r\n\t}\r\n\r\n\t.emailSent {\r\n background-color: lightgrey;\r\n bottom: 86%;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n\t}\r\n\r\n\t.emailSentTitle {\r\n\t font-weight: bold;\r\n\t display: flex;\r\n\t justify-content: center;\r\n\t font-size: 15px;\r\n\t padding: 5px;\r\n\t margin-bottom: 5px;\r\n\t}\r\n\r\n\t.emailSentCheck {\r\n\t margin-right: 10px;\r\n\t}\r\n\r\n\t.emailSentMessage {\r\n\t font-size: 14px;\r\n\t display: flex;\r\n\t justify-content: center;\r\n\t margin-bottom: 5px;\r\n\t}\r\n\r\n\t.emailClose {\r\n\t cursor: pointer;\r\n\t display: flex;\r\n\t justify-content: flex-end;\r\n\t}\r\n\r\n\t.clearTitle {\r\n\t font-weight: bold;\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t margin-top: 5px;\r\n\t padding: 10px;\r\n\t font-size: 15px;\r\n\t}\r\n\r\n\t.clearItemYes {\r\n\t width: 25%;\r\n\t padding: 10px;\r\n\t background-color: var(--secondary-color);\r\n\t color: #FFF;\r\n\t border: none;\r\n\t border-radius: 3px;\r\n\t margin-left: -3px;\r\n\t margin-right: 10px;\r\n\t}\r\n\r\n\t.clearItemNo {\r\n\t width: 25%;\r\n\t padding: 10px;\r\n\t background-color: var(--primary-color);\r\n\t opacity: 0.4;\r\n\t color: #FFF;\r\n\t border: none;\r\n\t border-radius: 3px;\r\n\t margin-left: -3px;\r\n\t margin-right: 5px;\r\n\t}\r\n\r\n\t.clearBtnContainer {\r\n\t display: flex;\r\n\t justify-content: center;\r\n\t margin: 10px auto;\r\n\t}\r\n\r\n\t.clearDone {\r\n\t display: flex;\r\n\t justify-content: center;\r\n\t padding: 20px;\r\n\t font-weight: 600;\r\n\t text-align: center;\r\n\t}\r\n }\r\n}\r\n\r\n.shoppingListTitle {\r\n font-size: 20px;\r\n font-weight: bold;\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.qty-group {\r\n display: flex;\r\n justify-self: end;\r\n /*margin: 0 2px;*/\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n height: 34px;\r\n background-color: #FFF;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n}\r\n\r\n.qty-group > * {\r\n border: 0;\r\n}\r\n\r\n.qty-in {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in:disabled {\r\n cursor: inherit;\r\n}\r\n\r\n.qty-percent {\r\n font-size: 14px;\r\n color: #545454;\r\n display: flex;\r\n align-items: center;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.qty-100 {\r\n font-size: 14px;\r\n padding: 0 8px;\r\n border-left: 1px solid #BBB;\r\n cursor: inherit;\r\n}\r\n\r\n.qty-out {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in, .qty-out {\r\n padding: 0;\r\n width: 30px;\r\n}\r\n\r\n.qty-out img, .qty-in img {\r\n vertical-align: middle;\r\n}\r\n\r\n\r\n.qty-out:disabled {\r\n cursor: inherit;\r\n opacity: 0.5;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n}*/\r\n\r\n.navigation {\r\n .description {\r\n\tflex-basis: 50%;\r\n\tjustify-content: center;\r\n }\r\n}\r\n\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 400px;\r\n\t }\r\n\r\n\t .itemsContainer {\r\n\t\t// min-height: 84px;\r\n\t\t// max-height: 99px;\r\n\t }\r\n\t}\r\n }\r\n\r\n}\r\n\r\n// @media only screen and (max-height: 850px ) and (min-width: 600px){\r\n// .modal-wpr .modal{\r\n// .content {\r\n// .itemsContainer{\r\n// min-height: 84px;\r\n// max-height: 99px;\r\n// }\r\n// }\r\n// }\r\n// }\r\n@media only screen and (max-height: 450px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t min-height: 167px;\r\n\t overflow-y: auto;\r\n\r\n\t .content-container {\r\n\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t// width: 575px;\r\n\t\t//width: 315px;\r\n\t\t.itemsContainer {\r\n\t\t //min-height:160px;\r\n\t\t max-height: 195px;\r\n\r\n\t\t .productImage {\r\n\t\t\tmax-height: 80%;\r\n\t\t\tmax-width: 80%;\r\n\t\t }\r\n\r\n\t\t .qtyGroup {\r\n\t\t\theight: 32px;;\r\n\t\t }\r\n\r\n\t\t .qty-in, .qty-out {\r\n\t\t\twidth: 29px;\r\n\t\t }\r\n\r\n\t\t .qty-percent {\r\n\t\t\tfont-size: 14px;\r\n\t\t }\r\n\r\n\t\t .delIcon {\r\n\t\t\tcursor: pointer;\r\n\t\t\t// height:28px;\r\n\t\t\tsvg {\r\n\t\t\t //height:30px;\r\n\t\t\t width: 28px\r\n\t\t\t}\r\n\t\t }\r\n\t\t}\r\n\r\n\t\t.addItemContainer_content {\r\n\t\t display: flex;\r\n\t\t width: 100%;\r\n margin-bottom: 5px;\r\n\t\t //justify-content: flex-start;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal.vertical{\r\n max-width: calc(100% - 1em);\r\n .content {\r\n .content-container {\r\n .optionsContainer{\r\n column-gap: 10px;\r\n .btnOptions {\r\n padding: 0;\r\n > img {\r\n min-width:102%;\r\n margin-right: unset;\r\n //transform: scale(1.2);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n\r\n\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\t/*.description {\r\n\t\t\tpadding-top: 10px;\r\n\t\t\tpadding-left: 100px;\r\n\t\t\tpadding-bottom: 70px;\r\n\t\t\tposition: relative;\r\n\t\t}*/\r\n\r\n\t/*.btn.page {\r\n\t\t\ttransform: rotate(90deg);\r\n\t\t\twidth: 146px;\r\n\t\t\tposition: absolute;\r\n\t\t\tleft: 0;\r\n\t\t\tbottom: 38%;\r\n\t\t}*/\r\n\r\n\r\n\th4, .subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle + .subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n .content-container {\r\n\twidth: 400px;\r\n }\r\n}\r\n\r\n/*@media (max-width: 850px) {\r\n .modal-wpr{\r\n top:60px;\r\n }\r\n .modal-wpr.showFilters{\r\n top:175px !important;\r\n }\r\n}\r\n\r\n/*Tablet */\r\n/*@media only screen\r\nand (min-device-width: 768px)\r\nand (max-device-width: 1024px)\r\n{\r\n .modal-wpr{\r\n top:60px;\r\n }\r\n .modal-wpr.showFilters {\r\n top: 118px;\r\n }\r\n}*/\r\n/* Mobile */\r\n/*@media (min-width: 1024px) and (max-width: 1200px) {\r\n .modal-wpr{\r\n top:65px;\r\n }\r\n .walkthrough {\r\n display: none;\r\n }\r\n}*/\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n\tdisplay: flex !important;\r\n }\r\n .desktop {\r\n\tdisplay: none !important;\r\n }\r\n\r\n .modal {\r\n\t// width:338px;\r\n }\r\n\r\n .modal-wpr .modal {\r\n\t/* margin-top: 140px;\r\n\t\t width: 90% !important;*/\r\n\t//width: 338px;\r\n\r\n\t.content {\r\n\t .f-half {\r\n\t\t/*flex-direction: row !important;*/\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t//width: 400px;\r\n\t }\r\n\t}\r\n\r\n\t.header {\r\n\t padding-bottom: 4px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 14px;\r\n\t }\r\n\t}\r\n }\r\n\r\n .heading {\r\n\tdisplay: none;\r\n }\r\n .h3-fontsize {\r\n\tpadding: 0;\r\n }\r\n .p-fontsize {\r\n\tpadding: 0;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n\tdisplay: block;\r\n\tbackground: none;\r\n\tpadding: 0 6%;\r\n\r\n\t.description {\r\n\t padding: 0;\r\n\t margin-bottom: 20px;\r\n\t height: 50px;\r\n\t}\r\n\r\n\t.button-preview {\r\n\t display: block;\r\n\t position: relative;\r\n\t padding-left: 60px;\r\n\t width: 100%;\r\n\r\n\t h4 {\r\n\t\tpadding: 0;\r\n\t }\r\n\r\n\t .subtitle {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .btn {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t }\r\n\t}\r\n }\r\n\r\n .subtitle.mobile {\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n }\r\n}\r\n\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShoppingList.vue?vue&type=template&id=baca32ca&scoped=true&\"\nimport script from \"./ShoppingList.vue?vue&type=script&lang=js&\"\nexport * from \"./ShoppingList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShoppingList.vue?vue&type=style&index=0&id=baca32ca&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"baca32ca\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showShoppingListV1),expression:\"showShoppingListV1\"}],ref:\"shoppingListPopUp\",staticClass:\"modal-wpr\",class:{'showFilters':_vm.showFilters },attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm.closeShoppingListV1}},[_c('config-style-injector',{attrs:{\"root-selector\":((_vm.$options._scopeId) + \".modal-wpr\"),\"config\":_vm.config}}),_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}],class:(\"modal \" + _vm.flyerOrientation),on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"header\"},[_c('span',{staticClass:\"shoppingListTitle\"},[_vm._v(_vm._s(_vm.content.shoppingList.shoppingListTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.shoppingList.closeShoppingList},on:{\"click\":_vm.closeShoppingListV1}},[_c('img',{attrs:{\"src\":\"/images/icon-close-white.svg\",\"alt\":\"Close\"}})])]),_c('div',{staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[(_vm.shoppingListV1.length>0)?_c('div',{staticClass:\"itemsContainer\"},_vm._l((_vm.shoppingListV1),function(product){return _c('div',{key:product.sku,staticClass:\"itemElement\"},[_c('div',{staticClass:\"left_section\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":product.productImage,\"alt\":\"\"}})]),_c('div',{staticClass:\"productDetailsContainer\"},[_c('div',{staticClass:\"row1\"},[_c('div',{staticClass:\"productTitle\",class:{rexall_productTitle:_vm.isRexall}},[_vm._v(_vm._s(product.priceQuantity)+\" \"+_vm._s(product.salePrice)+\" \"),(_vm.config.showProductName !== undefined && _vm.config.showProductName)?_c('span',[_vm._v(\" \"+_vm._s(product.productFr)+\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(product.productFr && product.productEn),expression:\"product.productFr && product.productEn\"}]},[_vm._v(\"|\")]),_vm._v(\" \"+_vm._s(product.productEn))]):_vm._e(),(product.limitQty)?_c('span',{staticStyle:{\"color\":\"black\"}},[_vm._v(_vm._s(product.limitQty)+\" \")]):_vm._e()]),_c('div',{staticClass:\"qtyGroup\"},[_c('button',{staticClass:\"qty-out\",attrs:{\"disabled\":product.quantity == 1},on:{\"click\":function($event){return _vm.handleQtyChange(product.sku,'minus')}}},[_c('svg',{attrs:{\"width\":\"12px\",\"height\":\"2px\",\"viewBox\":\"0 0 12 2\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"ShoppingList---EN\",\"transform\":\"translate(-1808.000000, -173.000000)\",\"fill\":\"#545454\",\"fill-rule\":\"nonzero\"}},[_c('polygon',{attrs:{\"id\":\"icon---decrease-size-copy-2\",\"points\":\"1820 175 1808 175 1808 173 1820 173\"}})])])])]),_c('div',{staticClass:\"qty-percent\"},[_vm._v(_vm._s(product.quantity))]),_c('button',{staticClass:\"qty-in\",on:{\"click\":function($event){return _vm.handleQtyChange(product.sku,'plus')}}},[_c('svg',{attrs:{\"width\":\"12px\",\"height\":\"12px\",\"viewBox\":\"0 0 12 12\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"SuperC---ShoppingList---EN\",\"transform\":\"translate(-1872.000000, -168.000000)\",\"fill\":\"#545454\",\"fill-rule\":\"nonzero\"}},[_c('polygon',{attrs:{\"id\":\"icon---increase-size-copy-2\",\"points\":\"1884 174.857143 1878.85714 174.857143 1878.85714 180 1877.14286 180 1877.14286 174.857143 1872 174.857143 1872 173.142857 1877.14286 173.142857 1877.14286 168 1878.85714 168 1878.85714 173.142857 1884 173.142857\"}})])])])])])]),_c('div',{staticClass:\"row2\"},[(!product.productImage.includes('generic'))?_c('div',{staticClass:\"validity\"},[(_vm.isRexall===true)?_c('strong',[_vm._v(\"Valid \")]):_vm._e(),_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.shoppingListValidFrom)+\" \")])]),_c('span',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(product.flyerDate)}})]):_vm._e()]),_c('div',{staticClass:\"row3\"},[_c('div',{staticStyle:{\"font-size\":\"13px\"},domProps:{\"innerHTML\":_vm._s(product.contents)}}),(product.promoUnitFr)?_c('span',[_vm._v(\" \"+_vm._s(product.promoUnitFr)+\" \")]):_vm._e(),_c('button',{staticClass:\"delIcon\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleDeleteItem(product)}}},[_c('svg',{attrs:{\"width\":\"33px\",\"height\":\"33px\",\"viewBox\":\"0 0 33 33\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(_vm._s(_vm.content.shoppingList.deleteItem))]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"transform\":\"translate(-1863.000000, -213.000000)\"}},[_c('g',{attrs:{\"id\":\"Trash\",\"transform\":\"translate(1863.954673, 213.500445)\"}},[_c('rect',{attrs:{\"id\":\"Rectangle\",\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\"}}),_c('path',{attrs:{\"d\":\"M26.9995112,6 L22,6 L22,5 C21.9981277,3.34392191 20.6560781,2.00187233 19,2 L13,2 C11.3439219,2.00187233 10.0018723,3.34392191 10,5 L10,6 L4.99951125,6 C4.4472265,6 3.99951125,6.44771525 3.99951125,7 C3.99951125,7.55228475 4.4472265,8 4.99951125,8 L5.99951125,8 L5.99951125,26 C6.0007739,27.1040461 6.89546518,27.9987373 7.99951125,28 L23.9995112,28 C25.1035573,27.9987373 25.9982486,27.1040461 25.9995112,26 L25.9995112,8 L26.9995112,8 C27.551796,8 27.9995112,7.55228475 27.9995112,7 C27.9995112,6.44771525 27.551796,6 26.9995112,6 L26.9995112,6 Z M14,21 C14,21.5522847 13.5522847,22 13,22 C12.4477153,22 12,21.5522847 12,21 L12,13 C12,12.4477153 12.4477153,12 13,12 C13.5522847,12 14,12.4477153 14,13 L14,21 Z M20,21 C20,21.5522847 19.5522847,22 19,22 C18.4477153,22 18,21.5522847 18,21 L18,13 C18,12.4477153 18.4477153,12 19,12 C19.5522847,12 20,12.4477153 20,13 L20,21 Z M20,6 L12,6 L12,5 C12.0006317,4.44797711 12.4479771,4.00063167 13,4 L19,4 C19.5520229,4.00063167 19.9993683,4.44797711 20,5 L20,6 Z\",\"id\":\"Shape\",\"fill\":\"#ADADAD\",\"fill-rule\":\"nonzero\"}})])])])])])])])])}),0):_c('div',{staticClass:\"itemsContainer\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"flex-direction\":\"column\",\"padding\":\"20px\",\"text-align\":\"center\"}},[_c('h3',{staticClass:\"h3-fontsize\"},[_c('strong',[_vm._v(_vm._s(_vm.content.shoppingList.noItemsInSLTitle))])]),_c('br'),_c('p',{staticClass:\"p-fontsize\"},[_vm._v(_vm._s(_vm.content.shoppingList.noItemsInSLMsg)+\" \")])]),_c('div',{staticClass:\"addItemContainer\"},[_c('div',{staticClass:\"addItemContainer_content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.additionalItem),expression:\"additionalItem\"}],ref:\"additional-item\",staticClass:\"txtAddItem\",attrs:{\"type\":\"text\",\"placeholder\":_vm.content.shoppingList.addItemPlaceholder,\"aria-label\":_vm.content.shoppingList.addItemPlaceholder,\"tabindex\":\"0\"},domProps:{\"value\":(_vm.additionalItem)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleAdditionalItem.apply(null, arguments)},\"focus\":function($event){return _vm.setAdditionalItemInputFocus(true)},\"blur\":function($event){return _vm.setAdditionalItemInputFocus(false)},\"input\":function($event){if($event.target.composing){ return; }_vm.additionalItem=$event.target.value}}}),_c('button',{staticClass:\"addItem\",attrs:{\"aria-label\":\"addItem\",\"disabled\":_vm.additionalItem.length<2},on:{\"click\":_vm.handleAdditionalItem}},[_vm._v(_vm._s(_vm.content.shoppingList.addItem))])])]),(_vm.shoppingListV1.length>0)?_c('div',{staticClass:\"optionsContainer\"},[_c('button',{staticClass:\"btnOptions\",on:{\"click\":function($event){return _vm.toggleEmail(!_vm.email.value)}}},[_c('img',{attrs:{\"src\":_vm.getImage('email'),\"alt\":\"Email\"}})]),_c('button',{staticClass:\"btnOptions\",on:{\"click\":_vm.handlePrint}},[_c('img',{attrs:{\"src\":_vm.getImage('print'),\"alt\":\"Print\"}})]),_c('button',{staticClass:\"btnOptions\",on:{\"click\":function($event){return _vm.toggleClear(!_vm.clear.value)}}},[_c('img',{attrs:{\"src\":_vm.getImage('clear'),\"alt\":\"Clear\"}})])]):_vm._e(),(_vm.email.emailReady && !_vm.email.emailSent && !_vm.emailError)?_c('div',{staticClass:\"emailBody\"},[_c('span',{staticClass:\"emailTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailTitle))]),_c('button',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"mask\":\"url(#b)\",\"fill\":\"#80868B\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])])]),_c('div',{staticClass:\"emailMessage\"},[_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailWarning)+\" \")]),_c('div',{staticClass:\"emailTxtBoxContainer\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.emailAddress),expression:\"emailAddress\"}],ref:\"search-input\",staticClass:\"txtAddItem\",attrs:{\"type\":\"text\",\"placeholder\":_vm.content.shoppingList.emailPlaceholder,\"aria-label\":\"Entrez votre adresse courriel\",\"tabindex\":\"0\"},domProps:{\"value\":(_vm.emailAddress)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleEmail()},\"focus\":function($event){return _vm.setEmailInputFocus(true)},\"blur\":function($event){return _vm.setEmailInputFocus(false)},\"input\":function($event){if($event.target.composing){ return; }_vm.emailAddress=$event.target.value}}}),_c('button',{staticClass:\"addItem\",attrs:{\"aria-label\":\"addItem\",\"disabled\":_vm.isValidEmail},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleEmail()}}},[_vm._v(_vm._s(_vm.content.shoppingList.send))])])]):_vm._e(),(_vm.clear.clearReady && !_vm.clear.clearDone)?_c('div',{staticClass:\"emailBody\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"mask\":\"url(#b)\",\"fill\":\"#80868B\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"clearTitle\"},[_c('span',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(_vm._s(_vm.content.shoppingList.clearTitle))])]),_c('div',{staticClass:\"clearBtnContainer\"},[_c('button',{staticClass:\"clearItemYes\",attrs:{\"aria-label\":\"yes\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.yes))]),_c('button',{staticClass:\"clearItemNo\",attrs:{\"aria-label\":\"no\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.no))])])]):_vm._e(),(!_vm.email.emailReady && _vm.email.emailSent && !_vm.emailError)?_c('div',{staticClass:\"emailSent\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"mask\":\"url(#b)\",\"fill\":\"#80868B\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"emailSentTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailSentTitle))])]),_c('div',{staticClass:\"emailSentMessage\"},[_c('span',{staticClass:\"emailSentCheck\"},[_c('svg',{attrs:{\"width\":\"32px\",\"height\":\"32px\",\"viewBox\":\"0 0 32 32\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"icon - checkmark\")]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"ShoppingList---FR---Email-Confirmation\",\"transform\":\"translate(-1517.000000, -764.000000)\",\"fill\":\"#333333\",\"fill-rule\":\"nonzero\"}},[_c('path',{attrs:{\"d\":\"M1533,764 C1524.16429,764 1517,771.164286 1517,780 C1517,788.835714 1524.16429,796 1533,796 C1541.83571,796 1549,788.835714 1549,780 C1549,771.164286 1541.83571,764 1533,764 Z M1541.20714,774.65 L1531.27143,787.4 C1531.19286,787.478571 1531.06429,787.65 1530.90714,787.65 C1530.74286,787.65 1530.63571,787.535714 1530.54286,787.442857 C1530.45,787.35 1524.90714,782.021429 1524.90714,782.021429 L1524.8,781.914286 C1524.75714,781.85 1524.72143,781.771429 1524.72143,781.685714 C1524.72143,781.6 1524.75714,781.521429 1524.8,781.457143 C1524.82857,781.428571 1524.85,781.407143 1524.87857,781.371429 C1525.42857,780.792857 1526.54286,779.621429 1526.61429,779.55 C1526.70714,779.457143 1526.78571,779.335714 1526.95714,779.335714 C1527.13571,779.335714 1527.25,779.485714 1527.33571,779.571429 C1527.42143,779.657143 1530.55,782.664286 1530.55,782.664286 L1538.5,772.45 C1538.57143,772.392857 1538.65714,772.35 1538.75,772.35 C1538.84286,772.35 1538.92857,772.385714 1539,772.442857 L1541.18571,774.164286 C1541.24286,774.235714 1541.27857,774.321429 1541.27857,774.414286 C1541.28571,774.507143 1541.25,774.585714 1541.20714,774.65 L1541.20714,774.65 Z\",\"id\":\"icon---checkmark\"}})])])])]),_c('span',[_c('b',[_vm._v(_vm._s(_vm.content.shoppingList.emailSentMessage))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailSentMessage2))])]),_c('p',{staticClass:\"emailSentMessage\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleResend.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.emailSentResent))])])]):_vm._e(),(!_vm.email.emailReady && !_vm.email.emailSent && _vm.emailError)?_c('div',{staticClass:\"emailSent\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"mask\":\"url(#b)\",\"fill\":\"#80868B\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"emailSentTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailErrorTitle))])]),_c('div',{staticClass:\"emailSentMessage\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailErrorMsg1)),_c('br'),_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailErrorMsg2))])]),_c('p',{staticClass:\"emailSentMessage\"},[_c('b',[_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailErrorMsg3)+\" \")])])]):_vm._e(),(!_vm.clear.clearReady && _vm.clear.clearDone && _vm.shoppingListV1.length===0)?_c('div',{staticClass:\"emailBody1\"},[_c('div',{staticClass:\"clearDone\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.clearDoneMessage))])]),_c('p',{staticStyle:{\"text-align\":\"center\",\"margin-bottom\":\"8px\"}},[_c('button',{staticClass:\"clearItemYes\",attrs:{\"aria-label\":\"yes\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.clearClose))])])]):_vm._e()])])])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"enabled\" class=\"modal-wpr\" :class=\"{'showFilters':showFilters }\" v-show=\"showShoppingListV1\" tabindex=\"0\" ref=\"shoppingListPopUp\" @click=\"closeShoppingListV1\">\r\n <config-style-injector :root-selector=\"`${$options._scopeId}.modal-wpr`\" :config=\"config\" />\r\n <div :class=\"`modal ${flyerOrientation}`\" @click.stop=\"\" v-click-outside=\"onClickOutside\" >\r\n <div class=\"header\" >\r\n <span class=\"shoppingListTitle\">{{ content.shoppingList.shoppingListTitle }}</span>\r\n <button class=\"close-btn\" :aria-label=\"content.shoppingList.closeShoppingList\" @click=\"closeShoppingListV1\">\r\n <img src=\"/images/icon-close-white.svg\" alt=\"Close\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div :class=\"`content-container ${flyerOrientation}`\">\r\n <!-- <div :class=\"`${flyerOrientation}`\"> -->\r\n <!-- ITEMS IN SHOPPING LIST CODE STARTS-->\r\n\r\n <div class=\"itemsContainer\" v-if=\"shoppingListV1.length>0\">\r\n <div class=\"itemElement\" v-for=\"product in shoppingListV1\" :key=\"product.sku\">\r\n <div class=\"left_section\">\r\n <img :src=\"product.productImage\" class=\"productImage\" alt=\"\">\r\n </div>\r\n <div class=\"productDetailsContainer\">\r\n <div class=\"row1\">\r\n <div class=\"productTitle\" :class=\"{rexall_productTitle:isRexall}\">{{product.priceQuantity}} {{product.salePrice}}\r\n <span v-if=\"config.showProductName !== undefined && config.showProductName\"> {{product.productFr}}\r\n <span v-show=\"product.productFr && product.productEn\">|</span> {{ product.productEn }}</span>\r\n <span v-if=\"product.limitQty\" style=\"color:black\">{{ product.limitQty}} </span>\r\n </div>\r\n\r\n <div class=\"qtyGroup\">\r\n <button class=\"qty-out\" :disabled=\"product.quantity == 1\" @click=\"handleQtyChange(product.sku,'minus')\">\r\n <!-- <img :alt=\"content.qtyOut\" src=\"/images/icon-decrease.svg\" /> -->\r\n <svg width=\"12px\" height=\"2px\" viewBox=\"0 0 12 2\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g id=\"ShoppingList---EN\" transform=\"translate(-1808.000000, -173.000000)\" fill=\"#545454\" fill-rule=\"nonzero\">\r\n <polygon id=\"icon---decrease-size-copy-2\" points=\"1820 175 1808 175 1808 173 1820 173\"></polygon>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n <div class=\"qty-percent\">{{ product.quantity }}</div>\r\n <button class=\"qty-in\"\r\n @click=\"handleQtyChange(product.sku,'plus')\">\r\n <!-- <img :alt=\"content.qtyIn\" src=\"/images/icon-increase.svg\" /> -->\r\n <svg width=\"12px\" height=\"12px\" viewBox=\"0 0 12 12\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g id=\"SuperC---ShoppingList---EN\" transform=\"translate(-1872.000000, -168.000000)\" fill=\"#545454\" fill-rule=\"nonzero\">\r\n <polygon id=\"icon---increase-size-copy-2\" points=\"1884 174.857143 1878.85714 174.857143 1878.85714 180 1877.14286 180 1877.14286 174.857143 1872 174.857143 1872 173.142857 1877.14286 173.142857 1877.14286 168 1878.85714 168 1878.85714 173.142857 1884 173.142857\"></polygon>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row2\">\r\n <div class=\"validity\" v-if=\"!product.productImage.includes('generic')\">\r\n <strong v-if=\"isRexall===true\">Valid </strong>\r\n <span><strong>{{ content.shoppingListValidFrom }} </strong></span>\r\n <span class=\"date\" v-html=\"product.flyerDate\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row3\">\r\n <!-- <div class=\"salePrice\">{{ product.salePrice }}</div> -->\r\n\r\n <div style=\"font-size:13px\" v-html=\"product.contents\"> </div>\r\n\r\n <span v-if=\"product.promoUnitFr\"> {{ product.promoUnitFr }} </span>\r\n <button class=\"delIcon\" @click.stop.prevent=\"handleDeleteItem(product)\">\r\n <!-- <img src=\"images/icon-trash.svg\" class=\"delIcon\" @click=\"handleDeleteItem(product)\"> -->\r\n <svg width=\"33px\" height=\"33px\" viewBox=\"0 0 33 33\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <title>{{ content.shoppingList.deleteItem }}</title>\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(-1863.000000, -213.000000)\">\r\n <g id=\"Trash\" transform=\"translate(1863.954673, 213.500445)\">\r\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"32\" height=\"32\"></rect>\r\n <path d=\"M26.9995112,6 L22,6 L22,5 C21.9981277,3.34392191 20.6560781,2.00187233 19,2 L13,2 C11.3439219,2.00187233 10.0018723,3.34392191 10,5 L10,6 L4.99951125,6 C4.4472265,6 3.99951125,6.44771525 3.99951125,7 C3.99951125,7.55228475 4.4472265,8 4.99951125,8 L5.99951125,8 L5.99951125,26 C6.0007739,27.1040461 6.89546518,27.9987373 7.99951125,28 L23.9995112,28 C25.1035573,27.9987373 25.9982486,27.1040461 25.9995112,26 L25.9995112,8 L26.9995112,8 C27.551796,8 27.9995112,7.55228475 27.9995112,7 C27.9995112,6.44771525 27.551796,6 26.9995112,6 L26.9995112,6 Z M14,21 C14,21.5522847 13.5522847,22 13,22 C12.4477153,22 12,21.5522847 12,21 L12,13 C12,12.4477153 12.4477153,12 13,12 C13.5522847,12 14,12.4477153 14,13 L14,21 Z M20,21 C20,21.5522847 19.5522847,22 19,22 C18.4477153,22 18,21.5522847 18,21 L18,13 C18,12.4477153 18.4477153,12 19,12 C19.5522847,12 20,12.4477153 20,13 L20,21 Z M20,6 L12,6 L12,5 C12.0006317,4.44797711 12.4479771,4.00063167 13,4 L19,4 C19.5520229,4.00063167 19.9993683,4.44797711 20,5 L20,6 Z\" id=\"Shape\" fill=\"#ADADAD\" fill-rule=\"nonzero\"></path>\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div v-else class=\"itemsContainer\" style=\"display:flex; justify-content: center; flex-direction: column; padding:20px;text-align: center\" >\r\n\r\n <h3 class=\"h3-fontsize\"><strong>{{ content.shoppingList.noItemsInSLTitle }}</strong></h3><br/>\r\n <p class=\"p-fontsize\" >{{ content.shoppingList.noItemsInSLMsg }} </p>\r\n </div>\r\n\r\n <!-- ITEMS IN SHOPPING LIST ENDS -->\r\n <div class=\"addItemContainer\">\r\n <div class=\"addItemContainer_content\">\r\n <input type=\"text\" :placeholder=\"content.shoppingList.addItemPlaceholder\"\r\n :aria-label=\"content.shoppingList.addItemPlaceholder\"\r\n class=\"txtAddItem\"\r\n v-model=\"additionalItem\"\r\n tabindex=\"0\"\r\n ref=\"additional-item\"\r\n @keyup.enter=\"handleAdditionalItem\"\r\n @focus=\"setAdditionalItemInputFocus(true)\"\r\n @blur=\"setAdditionalItemInputFocus(false)\"\r\n >\r\n <button class=\"addItem\" @click=\"handleAdditionalItem\" aria-label=\"addItem\" :disabled=\"additionalItem.length<2\">{{ content.shoppingList.addItem }}</button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"optionsContainer\" v-if=\"shoppingListV1.length>0\">\r\n <button class=\"btnOptions\" @click=\"toggleEmail(!email.value)\"><img :src=\"getImage('email')\" alt=\"Email\"></button>\r\n <button class=\"btnOptions\" @click=\"handlePrint\"> <img :src=\"getImage('print')\" alt=\"Print\"> </button>\r\n <button class=\"btnOptions\" @click=\"toggleClear(!clear.value)\"><img :src=\"getImage('clear')\" alt=\"Clear\"></button>\r\n </div>\r\n\r\n <div class=\"emailBody\" v-if=\"email.emailReady && !email.emailSent && !emailError\">\r\n <span class=\"emailTitle\">\r\n <span>{{ content.shoppingList.emailTitle }}</span>\r\n <button class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg width=\"20\" height=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g mask=\"url(#b)\" fill=\"#80868B\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n </span>\r\n <div class=\"emailMessage\"> {{ content.shoppingList.emailWarning }} </div>\r\n\r\n <div class=\"emailTxtBoxContainer\">\r\n <input type=\"text\" :placeholder=\"content.shoppingList.emailPlaceholder\"\r\n aria-label=\"Entrez votre adresse courriel\"\r\n class=\"txtAddItem\"\r\n ref=\"search-input\"\r\n v-model=\"emailAddress\"\r\n tabindex=\"0\"\r\n @keyup.enter=\"handleEmail()\"\r\n @focus=\"setEmailInputFocus(true)\"\r\n @blur=\"setEmailInputFocus(false)\"\r\n\r\n >\r\n <button class=\"addItem\" @click.stop.prevent=\"handleEmail()\" aria-label=\"addItem\" :disabled=\"isValidEmail\">{{ content.shoppingList.send }}</button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"emailBody\" v-if=\"clear.clearReady && !clear.clearDone\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeClear\">\r\n <svg width=\"20\" height=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g mask=\"url(#b)\" fill=\"#80868B\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <div class=\"clearTitle\">\r\n <span style=\"text-align: center\">{{ content.shoppingList.clearTitle }}</span>\r\n </div>\r\n <div class=\"clearBtnContainer\">\r\n <button class=\"clearItemYes\" @click.stop.prevent=\"handleClear\" aria-label=\"yes\">{{ content.shoppingList.yes }}</button>\r\n <button class=\"clearItemNo\" @click.stop.prevent=\"closeClear\" aria-label=\"no\">{{ content.shoppingList.no }}</button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"emailSent\" v-if=\"!email.emailReady && email.emailSent && !emailError\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg width=\"20\" height=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g mask=\"url(#b)\" fill=\"#80868B\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <div class=\"emailSentTitle\">\r\n <span>{{content.shoppingList.emailSentTitle}}</span>\r\n </div>\r\n <div class=\"emailSentMessage\">\r\n <span class=\"emailSentCheck\">\r\n <svg width=\"32px\" height=\"32px\" viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <title>icon - checkmark</title>\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g id=\"ShoppingList---FR---Email-Confirmation\" transform=\"translate(-1517.000000, -764.000000)\" fill=\"#333333\" fill-rule=\"nonzero\">\r\n <path d=\"M1533,764 C1524.16429,764 1517,771.164286 1517,780 C1517,788.835714 1524.16429,796 1533,796 C1541.83571,796 1549,788.835714 1549,780 C1549,771.164286 1541.83571,764 1533,764 Z M1541.20714,774.65 L1531.27143,787.4 C1531.19286,787.478571 1531.06429,787.65 1530.90714,787.65 C1530.74286,787.65 1530.63571,787.535714 1530.54286,787.442857 C1530.45,787.35 1524.90714,782.021429 1524.90714,782.021429 L1524.8,781.914286 C1524.75714,781.85 1524.72143,781.771429 1524.72143,781.685714 C1524.72143,781.6 1524.75714,781.521429 1524.8,781.457143 C1524.82857,781.428571 1524.85,781.407143 1524.87857,781.371429 C1525.42857,780.792857 1526.54286,779.621429 1526.61429,779.55 C1526.70714,779.457143 1526.78571,779.335714 1526.95714,779.335714 C1527.13571,779.335714 1527.25,779.485714 1527.33571,779.571429 C1527.42143,779.657143 1530.55,782.664286 1530.55,782.664286 L1538.5,772.45 C1538.57143,772.392857 1538.65714,772.35 1538.75,772.35 C1538.84286,772.35 1538.92857,772.385714 1539,772.442857 L1541.18571,774.164286 C1541.24286,774.235714 1541.27857,774.321429 1541.27857,774.414286 C1541.28571,774.507143 1541.25,774.585714 1541.20714,774.65 L1541.20714,774.65 Z\" id=\"icon---checkmark\"></path>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <span><b>{{ content.shoppingList.emailSentMessage }}</b> <br/> {{ content.shoppingList.emailSentMessage2 }}</span>\r\n </div>\r\n\r\n <p class=\"emailSentMessage\"><a href=\"#\" @click.stop.prevent=\"handleResend\">{{ content.shoppingList.emailSentResent }}</a></p>\r\n </div>\r\n\r\n <div class=\"emailSent\" v-if=\"!email.emailReady && !email.emailSent && emailError\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg width=\"20\" height=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g mask=\"url(#b)\" fill=\"#80868B\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <div class=\"emailSentTitle\">\r\n <span>{{content.shoppingList.emailErrorTitle}}</span>\r\n </div>\r\n <div class=\"emailSentMessage\">\r\n <span>{{ content.shoppingList.emailErrorMsg1 }}<br/> {{ content.shoppingList.emailErrorMsg2 }}</span>\r\n </div>\r\n\r\n <p class=\"emailSentMessage\"><b> {{ content.shoppingList.emailErrorMsg3 }} </b> </p>\r\n </div>\r\n\r\n <div class=\"emailBody1\" v-if=\"!clear.clearReady && clear.clearDone && shoppingListV1.length===0\">\r\n <div class=\"clearDone\">\r\n <span>{{ content.shoppingList.clearDoneMessage }}</span>\r\n </div>\r\n\r\n <p style=\"text-align: center;margin-bottom: 8px\"><button class=\"clearItemYes\" @click.stop.prevent=\"closeClear\" aria-label=\"yes\">{{ content.shoppingList.clearClose }}</button></p>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from 'vuex';\r\n//import moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\n\r\nexport default {\r\n components: {ConfigStyleInjector},\r\n mixins:[featureMixin],\r\n props:{\r\n deal: String,\r\n },\r\n\r\n data() {\r\n return {\r\n featurePath: 'shoppingList',\r\n ready: false,\r\n additionalItem:'',\r\n email:{\r\n value:false,\r\n emailReady:false,\r\n emailSent:false,\r\n },\r\n emailAddress:'',\r\n clear:{\r\n value:false,\r\n clearReady:false,\r\n clearDone:false\r\n },\r\n\r\n }\r\n },\r\n\r\n computed: {\r\n ...mapGetters(['content', 'language']),\r\n ...mapGetters('screen', ['flyerOrientation']),\r\n ...mapState('shoppingList',['showShoppingListV1','shoppingListV1','emailError']),\r\n ...mapGetters('shoppingList',['getVersion']),\r\n ...mapGetters('landingPage', ['currentFlyer']),\r\n ...mapState(['showFilters']),\r\n\r\n isRexall(){\r\n return AppConfig.AppConf?.title.toLowerCase().includes(\"rexall\".toLowerCase()) ? true : false;\r\n },\r\n\r\n isValidEmail(){\r\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(this.emailAddress)\r\n },\r\n\r\n },\r\n\r\n\r\n methods: {\r\n ...mapActions('shoppingList',['setAdditionalItemInputFocus','toggleShoppingList','toggleShoppingListV1','setAddToList','skuAddToList','setRemoveFromList','quantityChange','clearAll','sendEmail','setEmailError','setEmailInputFocus']),\r\n getContents(p){\r\n console.log('p is '+p)\r\n return p=p.replace(/(\\b[A-Z]{2,}\\b)/g,\"<strong>$1</strong>\");\r\n },\r\n\r\n getImage(val){\r\n if(val===\"email\"){\r\n if(this.email.value)\r\n return `/images/Email-${this.language}-GRN.svg`\r\n\r\n else\r\n return `/images/Email-${this.language}-Grey.svg`\r\n }\r\n if(val===\"clear\"){\r\n\r\n if(this.clear.value)\r\n return `/images/Clear-${this.language}-GRN.svg`\r\n\r\n else\r\n return `/images/Clear-${this.language}-Grey.svg`\r\n }\r\n if(val===\"print\")\r\n return `/images/Print-${this.language}-Grey.svg`\r\n },\r\n\r\n closeHelp(){\r\n if(this.ready){\r\n this.toggleShoppingList(false);\r\n // console.log('close shoppinglist');\r\n }\r\n },\r\n\r\n handleQtyChange(sku,operation){\r\n const version = 'v1'\r\n this.quantityChange({sku,operation,version});\r\n },\r\n\r\n closeEmail(){\r\n this.email.value=false;\r\n this.email.emailReady=false;\r\n this.email.emailSent=false;\r\n this.setEmailError(false);\r\n this.emailAddress=''\r\n },\r\n closeClear(){\r\n this.clear.value=false;\r\n this.clear.clearReady=false;\r\n this.clear.clearDone=false;\r\n },\r\n\r\n // flyerDate(validFrom,validTo){\r\n // const start = validFrom ? moment.utc(validFrom) : moment(this.currentFlyer.startDate);\r\n // const endDate = validTo ? moment.utc(validTo) : moment(this.currentFlyer.endDate);\r\n // if (this.language === 'en') {\r\n // return `${start.locale('en').format('MMMM D, YYYY')} to ${endDate.locale('en').format('MMMM D, YYYY')}`;\r\n // } else {\r\n // return `${start.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n // }\r\n // },\r\n\r\n handleDeleteItem(product){\r\n const version = this.getVersion\r\n this.setRemoveFromList({product, version});\r\n },\r\n\r\n handleAdditionalItem() {\r\n if(this.additionalItem === '') return\r\n\r\n const additionalItemFlag = true;\r\n const additionalItem = this.additionalItem\r\n this.additionalItem='';\r\n this.clear.value=false;\r\n this.email.value=false;\r\n const version=this.getVersion\r\n this.setAddToList({ additionalItem, additionalItemFlag,version});\r\n },\r\n\r\n handlePrint(){\r\n\r\n var i=0;\r\n var printWindow = window.open(\"\");\r\n printWindow.document.write(`<html lang=\"en\"><head><link rel=\"icon\" href=\"./images/metro_favicon.png\"><title>${AppConfig?.AppConf?.title}-Print ShoppingList</title></head><style>\r\n.print_container_background{\r\n /*overflow-y:visible;*/\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 9999;\r\n display: flex;\r\n justify-content: center;\r\n align-items: flex-start;\r\n transition: opacity .3s ease;\r\n}\r\n\r\n.print_container{\r\n width: 700px;\r\n /* display: flex;\r\n justify-content: space-between; */\r\n font-weight: bold;\r\n margin-top: 15px;\r\n}\r\n.print_header {\r\n display: flex;\r\n justify-content: space-between;\r\n margin-top: 15px;\r\n padding-right: 10px;\r\n align-items: center;\r\n border-top: 1px solid lightgrey;\r\n border-right: 1px solid lightgrey;\r\n border-bottom: 1px solid lightgrey;\r\n}\r\n\r\n.logo{\r\n width:220px;\r\n}\r\n\r\n.title{\r\n font-size:20px;\r\n font-weight: bold;\r\n}\r\n\r\n.print_quantity {\r\n display: flex;\r\n justify-content: space-between;\r\n padding-right: 10px;\r\n align-items: center;\r\n padding: 20px 10px 10px 10px;\r\n border-bottom: 3px solid lightgrey;\r\n font-size: 14px;\r\n}\r\n\r\na{\r\n cursor: pointer;\r\n color:#0000EE;\r\n text-display: block;\r\n text-decoration: underline;\r\n font-size: 12px;;\r\n}\r\n\r\n.productImage{\r\n max-height: 100%;\r\n max-width: 100%;\r\n width: auto;\r\n height: 37px;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n}\r\n\r\n.itemElement{\r\n display:flex;\r\n justify-content: space-between;\r\n padding:15px;\r\n border-bottom: 1px solid lightgrey;\r\n align-items: center;\r\n}\r\n\r\n.checklist {\r\n width: 35px;\r\n height: 35px;\r\n border: 1px solid gray;\r\n left: 5px;\r\n top: 0;\r\n bottom: 0;\r\n /* margin: auto; */\r\n}\r\n\r\n.productDetails {\r\n display: flex;\r\n flex-direction: column;\r\n width:75%;\r\n}\r\n\r\n.productTitle, .productPrice{\r\n font-weight: bold;\r\n font-size: 13px;\r\n}\r\n\r\n.productPrice {\r\n font-size: 14px;\r\n}\r\n\r\n.validityTitle {\r\n font-size: 12px;\r\n}\r\n\r\n.validityDate {\r\n font-size: 12px;\r\n /* color: var(--primary-color); */\r\n color: #EE3124;\r\n margin-left: 2px;\r\n font-weight: 500;\r\n}\r\n\r\n.disclaimer {\r\n font-size: 10px;\r\n font-weight: 400;\r\n margin-top: 15px;\r\n}\r\n\r\n@media print{\r\n* {\r\n display:inline;\r\n overflow: auto !important;\r\n}\r\nscript, style {\r\n display:none;\r\n}\r\n.itemElement{\r\npage-break-inside: avoid;\r\n}\r\n}\r\n\r\n</style>` +\r\n `<body style=\"font-family: Lato, sans-serif;\">`);\r\n printWindow.document.write(`<body>`+\r\n `<div class=\"print_container_background\">\r\n <div class=\"print_container\">\r\n <div class=\"row\">\r\n <a onclick=\"window.print();\">`+ this.content.shoppingList.shoppingListPrint+ `</a>\r\n </div>`+\r\n\r\n `<div class=\"print_header\">\r\n <img src='/images/${AppConfig?.AppConf?.title}_logo.jpg' class=\"logo\">\r\n <div class=\"title\">`+ this.content.shoppingList.shoppingListTitle +`</div>\r\n </div>\r\n\r\n <div class=\"print_quantity\">\r\n <div>`+ this.shoppingListV1.length +` `+ this.content.shoppingList.items +`</div>\r\n <div>`+ this.content.shoppingList.productQuantityTitle +`</div>\r\n </div>\r\n <div class=\"itemsContainer\">`)\r\n\r\n while (i < this.shoppingListV1.length) {\r\n printWindow.document.write(`<div class=\"itemElement\">\r\n <span class=\"checklist\"> </span>\r\n <span style=\"width:10%\">\r\n <img src=\"`+this.shoppingListV1[i].productImage+`\" class=\"productImage\" alt=`+this.shoppingListV1[i].productEn+`>\r\n </span>\r\n <div class=\"productDetails\">\r\n <span class=\"productTitle\">`)\r\n if(this.config.showProductName !== undefined && this.config.showProductName){\r\n if(this.shoppingListV1[i].productFr !==null)\r\n printWindow.document.write(`<span>`+this.shoppingList[i].salePrice + this.shoppingListV1[i].productFr + `</span>`)\r\n\r\n if(this.shoppingListV1[i].productEn && this.shoppingListV1[i].productFr)\r\n printWindow.document.write(`<span> | </span>`)\r\n\r\n if(this.shoppingListV1[i].productEn !==null)\r\n printWindow.document.write(this.shoppingListV1[i].productEn)\r\n\r\n printWindow.document.write(`<br/>`)\r\n }\r\n\r\n if (this.shoppingListV1[i].priceQuantity){\r\n printWindow.document.write(\r\n `<span class=\"productPrice\">` +\r\n this.shoppingListV1[i].priceQuantity + `<span> `+ this.shoppingListV1[i].salePrice +`</span>` +\r\n `</span>` );\r\n }\r\n\r\n else {\r\n printWindow.document.write(`<span class=\"productPrice\">`);\r\n if(this.shoppingListV1[i].salePricePrefix)\r\n printWindow.document.write(`<span>`+this.shoppingListV1[i].salePricePrefix+ ' '+this.shoppingListV1[i].salePrice+`</span>`)\r\n else\r\n printWindow.document.write(this.shoppingListV1[i].salePrice +\r\n `</span>`);\r\n }\r\n if(this.shoppingListV1[i].limitQty)\r\n printWindow.document.write(' '+this.shoppingListV1[i].limitQty)\r\n if(!this.shoppingListV1[i].productImage.includes('generic')) {\r\n printWindow.document.write(`<div>\r\n <span class=\"validityTitle\">` +\r\n this.content.shoppingList.shoppingListValidFrom +\r\n `:</span> <span class=\"validityDate\">` + this.shoppingListV1[i].flyerDate + `</span></div>`)\r\n }\r\n printWindow.document.write(`\r\n </div>\r\n <div>`+this.shoppingListV1[i].quantity +`</div>\r\n </div>`)\r\n i++;\r\n }\r\n printWindow.document.write(`<div class=\"disclaimer\">`+ this.content.shoppingList.printDisclaimer +`</div>`\r\n +`</body></html>`)\r\n },\r\n\r\n closeShoppingListV1() {\r\n if (this.showShoppingListV1) {\r\n this.additionalItem=''\r\n this.emailAddress=''\r\n this.email.value=false;\r\n this.email.emailReady=false;\r\n this.email.emailSent=false;\r\n this.setEmailError(false);\r\n this.clear.value=false;\r\n this.clear.clearReady=false;\r\n this.clear.clearDone=false;\r\n this.toggleShoppingListV1(false);\r\n }\r\n },\r\n\r\n onClickOutside() {\r\n if(this.ready) {\r\n this.closeShoppingListV1();\r\n }\r\n },\r\n\r\n // closeShoppingList1() {\r\n // //console.log( this.ready);\r\n // if (this.ready) {\r\n // this.toggleShoppingList(false);\r\n // //console.log(\"click outside sl\", this.ready);\r\n // }\r\n // },\r\n\r\n toggleEmail(val){\r\n this.email.value = val\r\n if(this.email.value){\r\n this.email.emailReady=true;\r\n this.email.emailSent=false;\r\n this.setEmailError(false);\r\n this.clear.value=false;\r\n this.clear.clearReady=false;\r\n this.clear.clearDone=false;\r\n\r\n }\r\n else{\r\n this.email.emailReady=false;\r\n this.email.emailSent =false;\r\n this.setEmailError(false);\r\n }\r\n\r\n },\r\n\r\n toggleClear(val){\r\n this.clear.value = val\r\n if(this.clear.value){\r\n this.clear.clearReady=true;\r\n this.clear.clearDone=false;\r\n this.email.value=false;\r\n this.email.emailReady=false;\r\n this.email.emailSent=false;\r\n this.setEmailError(false);\r\n }\r\n else{\r\n this.clear.clearReady=false;\r\n this.clear.clearDone =false;\r\n }\r\n\r\n },\r\n getUrlParameter(name) {\r\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n var regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\r\n var results = regex.exec(window.location.search);\r\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n },\r\n\r\n async handleEmail(){\r\n if(this.emailAddress=='')\r\n return\r\n\r\n if(!this.isValidEmail){\r\n this.email.emailReady=false;\r\n let emailBody = {\r\n deal:this.deal,\r\n storeId : this.getUrlParameter(\"storeId\"),\r\n lang: this.getUrlParameter(\"language\") === \"fr\" ? \"bil\" : \"en\",\r\n shoppingList: this.shoppingListV1,\r\n to:this.emailAddress\r\n }\r\n // console.log(emailBody);\r\n await this.sendEmail(emailBody);\r\n\r\n if(this.emailError==false)\r\n this.email.emailSent=true;\r\n }\r\n },\r\n\r\n handleResend(){\r\n this.email.emailSent=false;\r\n this.email.emailReady=true;\r\n },\r\n\r\n handleClear(){\r\n this.clear.clearReady = false;\r\n this.clear.clearDone=true;\r\n this.clearAll()\r\n setTimeout(()=> this.clear.clearDone=false,9000)\r\n },\r\n\r\n },\r\n\r\n watch:{\r\n showShoppingListV1(v){\r\n if(v){\r\n this.$nextTick(() => {\r\n const shoppingProduct = document.querySelectorAll('.itemElement')\r\n shoppingProduct.forEach((product) => {\r\n const detailText = product.querySelector('.row3 div')\r\n if(detailText && !detailText.dataset.styled) {\r\n detailText.innerHTML = detailText.innerHTML\r\n .replace(/\\*\\*/g, '<br>**')\r\n .replace(/(^|\\s)\\*(?=\\S)/g, '<br>*').replace(/-/g, '‑')\r\n detailText.dataset.styled = true;\r\n }\r\n })\r\n })\r\n setTimeout(() => {\r\n this.ready = true;\r\n }, 1000)\r\n }\r\n this.ready = false;\r\n }\r\n },\r\n\r\n mounted() {\r\n // console.log(this.$refs.shoppingListPopUp);\r\n const shoppingListPopUpFocus = this.$refs.shoppingListPopUp;\r\n shoppingListPopUpFocus.focus();\r\n\r\n const skuAddToList = this.skuAddToList;\r\n const setRemoveFromList = this.setRemoveFromList;\r\n window.addEventListener('message', async event => {\r\n if (event.data.action === 'addToShoppingList') {\r\n // add to shopping list\r\n const skuAdded = await skuAddToList(event.data.sku)\r\n\r\n // confirm added to shopping list\r\n if (skuAdded) {\r\n window.parent.postMessage({action: 'confirmation', message: `${event.data.sku} added to shopping list.`}, '*')\r\n } else {\r\n window.parent.postMessage({action: 'error', message: `${event.data.sku} wasn't found.`}, '*')\r\n }\r\n }\r\n if (event.data.action === 'removeFromShoppingList') {\r\n // delete from shopping list\r\n const skuAdded = await setRemoveFromList({sku: event.data.sku})\r\n\r\n // confirm deleted from shopping list\r\n if (skuAdded) {\r\n window.parent.postMessage({action: 'confirmation', message: `${event.data.sku} removed from shopping list.`}, '*')\r\n } else {\r\n window.parent.postMessage({action: 'error', message: `${event.data.sku} wasn't found.`}, '*')\r\n }\r\n }\r\n }, false);\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.left_section{\r\n margin-right:15px;\r\n height: 55px;\r\n width: 20%;\r\n float: left;\r\n}\r\n.productDetailsContainer {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.row1{\r\n display:flex;\r\n justify-content: space-between;\r\n margin-bottom: 8px;\r\n}\r\n\r\n.row3{\r\n display:flex;\r\n justify-content: space-between;\r\n padding-top: 12px;\r\n white-space: break-spaces;\r\n}\r\n\r\n.itemsContainer{\r\n min-height:150px;\r\n max-height:300px;\r\n //max-width: calc(100vw - 6em);\r\n overflow-y:auto;\r\n padding:0 10px 0 10px;\r\n}\r\n.h3-fontsize {\r\n font-size: 17px;\r\n padding:0 15px 0 15px;\r\n line-height: 1.4em;\r\n}\r\n.p-fontsize {\r\n font-size: 15px;\r\n padding:0 15px 0 15px;\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display:none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.itemElement{\r\n // display:flex;\r\n // justify-content: space-between;\r\n //justify-content: center;\r\n border-bottom: 1px solid lightgrey;\r\n //margin-bottom: 15px;\r\n padding: 10px 5px;\r\n}\r\n\r\n.productTitle{\r\n font-size:15px;\r\n font-weight: bold;\r\n line-height:1.1em;\r\n padding-right: 10px;\r\n word-break: break-word;\r\n}\r\n\r\n.rexall_productTitle{\r\n color: #EE3124;\r\n}\r\n\r\n.productImage{\r\n //height:50px;\r\n max-height: 100%;\r\n max-width: 100%;\r\n width: auto;\r\n height: auto;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n}\r\n\r\n.validity{\r\n font-size:13px;\r\n}\r\n\r\n.delIcon{\r\n cursor:pointer;\r\n width:25px;\r\n // height:28px;\r\n}\r\n\r\n.salePrice{\r\n font-size:15px;\r\n font-weight: bold;\r\n}\r\n\r\n.right_section{\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n justify-content: space-between;\r\n}\r\n\r\n.optionsContainer{\r\n position: relative;\r\n display:flex;\r\n justify-content: center;\r\n flex:0.9;\r\n //max-width: calc(100vw - 6em);\r\n padding:8px 5px;\r\n}\r\n\r\n.btnOptions{\r\n // width:30%;\r\n cursor:pointer;\r\n border-radius:5px;\r\n border:none;\r\n}\r\n.btnOptions > img {\r\n object-fit: contain;\r\n margin-right:5px;\r\n max-width:125px;\r\n //width:120px;\r\n width:100%;\r\n}\r\n\r\n.clear{\r\n background-color: green;\r\n color:white;\r\n}\r\n\r\n.qtyGroup {\r\n display: flex;\r\n justify-self: end;\r\n /*margin: 0 2px;*/\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n height: 34px;\r\n}\r\n\r\n.qtyGroup > * {\r\n background: none;\r\n border: 0;\r\n}\r\n\r\n.qty-in {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n}\r\n\r\n.qty-percent {\r\n font-size: 14px;\r\n color: #545454;\r\n display: flex;\r\n align-items: center;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.qty-out {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.addItemContainer{\r\n //max-width: calc(100vw - 6em);\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n position: relative;\r\n z-index: 103;\r\n background-color: #FFF;\r\n padding-bottom: 10px;\r\n padding-top: 3px;\r\n .addItemContainer_content{\r\n display: flex;\r\n width: 100%;\r\n justify-content: center;\r\n //max-width: calc(100vw - 6em);\r\n }\r\n}\r\n\r\n.emailTxtBoxContainer{\r\n //margin-top:10px;\r\n display:flex;\r\n justify-content: center;\r\n margin: 10px auto;\r\n}\r\n\r\n.txtAddItem{\r\n flex:0.9;\r\n outline:none;\r\n //flex-grow: 1;\r\n border-style: solid;\r\n border-radius: 3px;\r\n border-width: 1px;\r\n text-indent: 1em;\r\n font-size: 14px;\r\n width: 90%;\r\n}\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n .description{\r\n display: flex;\r\n flex-flow: row;\r\n text-align: left;\r\n align-items: flex-end;\r\n > :first-child{\r\n width: calc(55px + 1em);\r\n }\r\n .mobile-content{\r\n flex-basis: 100%;\r\n }\r\n }\r\n}\r\n\r\n.addItem{\r\n //width: 25%;\r\n padding:10px;\r\n background-color: var(--secondary-color);\r\n color:#FFF;\r\n border: none;\r\n border-radius: 3px;\r\n margin-left: -1px;\r\n font-weight: 200;\r\n}\r\n\r\n.addItem:disabled{\r\n background-color: var(--primary-color);\r\n opacity:0.6;\r\n}\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 100;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n\r\n\r\n .modal {\r\n background-color: var(--secondary-color);\r\n /*margin-top: 75px;*/\r\n border: 1px solid #BBBBBB;\r\n /* overflow: auto;*/\r\n max-height: calc(100% - 1em);\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n display:flex;\r\n flex-flow: column;\r\n max-width: calc(100% - 4em);\r\n\r\n .header {\r\n background-color: var(--secondary-color);\r\n color: var(--primary-text-color);\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 10px;\r\n\r\n h2 {\r\n font-size: 18px;\r\n text-transform: uppercase;\r\n font-weight: 400;\r\n }\r\n\r\n .close-btn {\r\n cursor: pointer;\r\n &:hover{\r\n background: none;\r\n filter: unset;\r\n }\r\n }\r\n }\r\n\r\n .subtitle {\r\n padding-top: 6px;\r\n font-size: 12px;\r\n }\r\n\r\n .content {\r\n //padding: 8px;\r\n background-color: #FFF;\r\n color: #545454;\r\n position: relative;\r\n flex: 1 0 auto;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n // margin:0px 10px 10px 10px;\r\n margin: 10px;\r\n min-height:200px;\r\n // overflow-y: scroll;\r\n max-width:400px;\r\n max-height: calc(100% - 3.5em);\r\n /*.scroll-container{\r\n position: absolute;\r\n top:0px;\r\n bottom:0px;\r\n left:0px;\r\n right:0px;\r\n }*/\r\n .content-container{\r\n text-align:left;\r\n }\r\n\r\n .f-half {\r\n display: flex;\r\n column-gap: 1em;\r\n\r\n flex-direction: column;\r\n\r\n > div {\r\n flex-basis: 100%;\r\n display: flex;\r\n flex-flow: column;\r\n }\r\n }\r\n\r\n .content-container{\r\n // width: 380px;\r\n }\r\n\r\n .feature {\r\n background: #eee;\r\n margin: 12px 0;\r\n display: flex;\r\n justify-content: center;\r\n flex: 1;\r\n .description {\r\n display: flex;\r\n font-size: 14px;\r\n padding: 15px 0;\r\n\r\n .button-preview {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n padding: 0 20px;\r\n\r\n h4 {\r\n text-transform: uppercase;\r\n padding-top: 16px;\r\n white-space: nowrap;\r\n }\r\n\r\n .subtitle {\r\n text-align: center;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n .emailBody{\r\n background-color: lightgrey;\r\n bottom: 86%;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n }\r\n .emailBody1{\r\n background-color: lightgrey;\r\n margin-bottom:-5px;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n }\r\n .emailTitle{\r\n font-weight: bold;\r\n display: flex;\r\n justify-content: space-between;\r\n padding:10px;\r\n font-size:15px;\r\n }\r\n .emailMessage{\r\n margin-left:10px;\r\n margin-right:10px;\r\n font-size:14px;\r\n }\r\n\r\n .emailSent {\r\n background-color: lightgrey;\r\n bottom: 86%;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n }\r\n\r\n .emailSentTitle{\r\n font-weight: bold;\r\n display: flex;\r\n justify-content: center;\r\n font-size: 15px;\r\n padding:5px;\r\n margin-bottom:5px;\r\n }\r\n .emailSentCheck{\r\n margin-right:10px;\r\n }\r\n\r\n .emailSentMessage{\r\n font-size:14px;\r\n display:flex;\r\n justify-content: center;\r\n margin-bottom: 5px;\r\n }\r\n .emailClose{\r\n cursor:pointer;\r\n display:flex;\r\n justify-content: flex-end;\r\n }\r\n .clearTitle{\r\n font-weight: bold;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-top:5px;\r\n padding:10px;\r\n font-size:15px;\r\n }\r\n .clearItemYes{\r\n width: 25%;\r\n padding:10px;\r\n background-color: var(--secondary-color);\r\n color:#FFF;\r\n border: none;\r\n border-radius: 3px;\r\n margin-left: -3px;\r\n margin-right:5px;\r\n }\r\n .clearItemNo{\r\n width: 25%;\r\n padding:10px;\r\n background-color: var(--primary-color);\r\n opacity: 0.4;\r\n color:#FFF;\r\n border: none;\r\n border-radius: 3px;\r\n margin-left: -3px;\r\n margin-right:5px;\r\n }\r\n .clearBtnContainer{\r\n display: flex;\r\n justify-content: center;\r\n margin: 10px auto;\r\n }\r\n .clearDone{\r\n display:flex;\r\n justify-content: center;\r\n padding:20px;\r\n font-weight: 600;\r\n text-align: center;\r\n }\r\n }\r\n}\r\n\r\n.shoppingListTitle{\r\n font-size:20px;\r\n font-weight: bold;\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover{\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.qty-group {\r\n display: flex;\r\n justify-self: end;\r\n /*margin: 0 2px;*/\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n height: 34px;\r\n background-color: #FFF;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n}\r\n\r\n.qty-group > * {\r\n border: 0;\r\n}\r\n\r\n.qty-in {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in:disabled {\r\n cursor: inherit;\r\n}\r\n\r\n.qty-percent {\r\n font-size: 14px;\r\n color: #545454;\r\n display: flex;\r\n align-items: center;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.qty-100 {\r\n font-size: 14px;\r\n padding: 0 8px;\r\n border-left: 1px solid #BBB;\r\n cursor: inherit;\r\n}\r\n\r\n.qty-out {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in, .qty-out{\r\n padding: 0;\r\n width: 30px;\r\n}\r\n\r\n.qty-out img, .qty-in img{\r\n vertical-align: middle;\r\n}\r\n\r\n\r\n\r\n.qty-out:disabled {\r\n cursor: inherit;\r\n opacity: 0.5;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n text-align: left !important;\r\n }\r\n}\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n}*/\r\n\r\n.navigation{\r\n .description{\r\n flex-basis: 50%;\r\n justify-content: center;\r\n }\r\n}\r\n\r\n\r\n\r\n@media only screen and (max-height: 850px ) and (min-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: row !important;\r\n }\r\n .content-container{\r\n width: 400px;\r\n }\r\n .itemsContainer{\r\n // min-height: 84px;\r\n // max-height: 99px;\r\n }\r\n }\r\n }\r\n\r\n}\r\n// @media only screen and (max-height: 850px ) and (min-width: 600px){\r\n// .modal-wpr .modal{\r\n// .content {\r\n// .itemsContainer{\r\n// min-height: 84px;\r\n// max-height: 99px;\r\n// }\r\n// }\r\n// }\r\n// }\r\n@media only screen and (max-height: 450px ) {\r\n .modal-wpr .modal{\r\n .content {\r\n min-height:167px;\r\n overflow-y:auto;\r\n .content-container{\r\n\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n@media only screen and (max-width: 700px){\r\n .modal-wpr .modal{\r\n .content {\r\n .content-container{\r\n // width: 575px;\r\n //width: 315px;\r\n .itemsContainer {\r\n //min-height:160px;\r\n max-height: 195px;\r\n .productImage{\r\n max-height: 80%;\r\n max-width: 80%;\r\n }\r\n .qtyGroup{\r\n height: 32px;;\r\n }\r\n .qty-in, .qty-out {\r\n width:29px;\r\n }\r\n .qty-percent {\r\n font-size: 14px;\r\n }\r\n .delIcon{\r\n cursor:pointer;\r\n // height:28px;\r\n svg{\r\n //height:30px;\r\n width:28px\r\n }\r\n }\r\n }\r\n .addItemContainer_content{\r\n display: flex;\r\n width: 100%;\r\n //justify-content: flex-start;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal.vertical{\r\n max-width: calc(100% - 1em);\r\n .content {\r\n .content-container {\r\n .optionsContainer{\r\n column-gap: 10px;\r\n .btnOptions {\r\n padding: 0;\r\n > img {\r\n min-width:105%;\r\n margin-right: unset;\r\n //transform: scale(1.2);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n\r\n\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n /*.description {\r\n padding-top: 10px;\r\n padding-left: 100px;\r\n padding-bottom: 70px;\r\n position: relative;\r\n }*/\r\n\r\n /*.btn.page {\r\n transform: rotate(90deg);\r\n width: 146px;\r\n position: absolute;\r\n left: 0;\r\n bottom: 38%;\r\n }*/\r\n\r\n\r\n h4, .subtitle {\r\n text-align: left;\r\n width: 100%;\r\n }\r\n .subtitle + .subtitle {\r\n margin-top: 1em;\r\n }\r\n }\r\n .content-container{\r\n width: 400px;\r\n }\r\n}\r\n/*@media (max-width: 850px) {\r\n .modal-wpr{\r\n top:60px;\r\n }\r\n .modal-wpr.showFilters{\r\n top:175px !important;\r\n }\r\n}\r\n\r\n/*Tablet */\r\n/*@media only screen\r\nand (min-device-width: 768px)\r\nand (max-device-width: 1024px)\r\n{\r\n .modal-wpr{\r\n top:60px;\r\n }\r\n .modal-wpr.showFilters {\r\n top: 118px;\r\n }\r\n}*/\r\n/* Mobile */\r\n/*@media (min-width: 1024px) and (max-width: 1200px) {\r\n .modal-wpr{\r\n top:65px;\r\n }\r\n .walkthrough {\r\n display: none;\r\n }\r\n}*/\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n display: flex !important;\r\n }\r\n .desktop {\r\n display: none !important;\r\n }\r\n\r\n .modal {\r\n // width:338px;\r\n }\r\n\r\n .modal-wpr .modal {\r\n /* margin-top: 140px;\r\n width: 90% !important;*/\r\n //width: 338px;\r\n\r\n .content {\r\n .f-half {\r\n /*flex-direction: row !important;*/\r\n }\r\n .content-container{\r\n //width: 400px;\r\n }\r\n }\r\n\r\n .header {\r\n padding-bottom: 4px;\r\n h2 {\r\n font-size: 14px;\r\n }\r\n }\r\n }\r\n\r\n .heading {\r\n display: none;\r\n }\r\n .h3-fontsize {\r\n padding:0;\r\n }\r\n .p-fontsize {\r\n padding:0;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n display: block;\r\n background: none;\r\n padding: 0 6%;\r\n\r\n .description {\r\n padding: 0;\r\n margin-bottom: 20px;\r\n height: 50px;\r\n }\r\n .button-preview {\r\n display: block;\r\n position: relative;\r\n padding-left: 60px;\r\n width: 100%;\r\n h4 {\r\n padding: 0;\r\n }\r\n .subtitle {\r\n text-align: left;\r\n }\r\n .btn {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n }\r\n }\r\n .subtitle.mobile {\r\n text-align: center;\r\n margin-bottom: 20px;\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListV1.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListV1.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShoppingListV1.vue?vue&type=template&id=317bfd5f&scoped=true&\"\nimport script from \"./ShoppingListV1.vue?vue&type=script&lang=js&\"\nexport * from \"./ShoppingListV1.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShoppingListV1.vue?vue&type=style&index=0&id=317bfd5f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"317bfd5f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showShoppingListV2),expression:\"showShoppingListV2\"}],ref:\"shoppingListPopUp\",staticClass:\"modal-wpr\",class:{'showFilters':_vm.showFilters },attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm.closeShoppingListV2}},[_c('config-style-injector',{attrs:{\"root-selector\":((_vm.$options._scopeId) + \".modal-wpr\"),\"config\":_vm.config}}),_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}],class:(\"modal \" + _vm.flyerOrientation),on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"header\"},[_c('span',{staticClass:\"shoppingListTitle\"},[_vm._v(_vm._s(_vm.content.shoppingList.shoppingListTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.shoppingList.closeShoppingList},on:{\"click\":_vm.closeShoppingListV2}},[_c('img',{attrs:{\"src\":\"/images/icon-close-white.svg\",\"alt\":\"Close\"}})])]),_c('div',{staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[(_vm.shoppingListV2.length>0)?_c('div',{staticClass:\"itemsContainer\"},_vm._l((_vm.shoppingListV2),function(product){return _c('div',{key:product.sku,staticClass:\"itemElement\"},[_c('div',{staticClass:\"productImageContainer\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":product.productImage,\"alt\":\"\"}})]),_c('div',{staticClass:\"productDetailsContainer\"},[_c('div',{staticClass:\"productPrice\"},[(product.priceQuantity)?_c('span',[_vm._v(_vm._s(product.priceQuantity)+\" / \")]):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.formatPrice(product.salePrice)))]),(product.promoUnit)?_c('span',[_vm._v(\" \"+_vm._s(product.promoUnit)+\" \")]):_vm._e(),(product.limitQty)?_c('span',{staticStyle:{\"color\":\"black\",\"font-size\":\"14px\"}},[_vm._v(\" \"+_vm._s(product.limitQty)+\" \")]):_vm._e()]),(!product.salePricePrefix.includes('null'))?_c('div',{staticClass:\"discountPrice\"},[_vm._v(_vm._s(_vm.formatPrice(product.salePricePrefix)))]):_vm._e(),(_vm.language=='en')?_c('div',{staticClass:\"productTitle\"},[_vm._v(_vm._s(product.productEn))]):_c('div',{staticClass:\"productTitle\"},[_vm._v(_vm._s(product.productFr))]),_c('div',{staticClass:\"description\",domProps:{\"innerHTML\":_vm._s(_vm.getContents(product.contents))}})]),_c('div',{staticClass:\"qty-del-btns\"},[_c('div',{staticClass:\"qtyGroup\"},[_c('button',{staticClass:\"qty-out\",attrs:{\"disabled\":product.quantity == 1},on:{\"click\":function($event){return _vm.handleQtyChange(product.sku,'minus')}}},[_c('svg',{attrs:{\"width\":\"12px\",\"height\":\"2px\",\"viewBox\":\"0 0 12 2\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"ShoppingList---EN\",\"transform\":\"translate(-1808.000000, -173.000000)\",\"fill\":\"#545454\",\"fill-rule\":\"nonzero\"}},[_c('polygon',{attrs:{\"id\":\"icon---decrease-size-copy-2\",\"points\":\"1820 175 1808 175 1808 173 1820 173\"}})])])])]),_c('div',{staticClass:\"qty-percent\"},[_vm._v(_vm._s(product.quantity))]),_c('button',{staticClass:\"qty-in\",on:{\"click\":function($event){return _vm.handleQtyChange(product.sku,'plus')}}},[_c('svg',{attrs:{\"width\":\"12px\",\"height\":\"12px\",\"viewBox\":\"0 0 12 12\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"SuperC---ShoppingList---EN\",\"transform\":\"translate(-1872.000000, -168.000000)\",\"fill\":\"#545454\",\"fill-rule\":\"nonzero\"}},[_c('polygon',{attrs:{\"id\":\"icon---increase-size-copy-2\",\"points\":\"1884 174.857143 1878.85714 174.857143 1878.85714 180 1877.14286 180 1877.14286 174.857143 1872 174.857143 1872 173.142857 1877.14286 173.142857 1877.14286 168 1878.85714 168 1878.85714 173.142857 1884 173.142857\"}})])])])])]),_c('button',{staticClass:\"delIcon\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleDeleteItem(product)}}},[_c('svg',{attrs:{\"width\":\"33px\",\"height\":\"33px\",\"viewBox\":\"0 0 33 33\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(_vm._s(_vm.content.shoppingList.deleteItem))]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"transform\":\"translate(-1863.000000, -213.000000)\"}},[_c('g',{attrs:{\"id\":\"Trash\",\"transform\":\"translate(1863.954673, 213.500445)\"}},[_c('rect',{attrs:{\"id\":\"Rectangle\",\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\"}}),_c('path',{attrs:{\"d\":\"M26.9995112,6 L22,6 L22,5 C21.9981277,3.34392191 20.6560781,2.00187233 19,2 L13,2 C11.3439219,2.00187233 10.0018723,3.34392191 10,5 L10,6 L4.99951125,6 C4.4472265,6 3.99951125,6.44771525 3.99951125,7 C3.99951125,7.55228475 4.4472265,8 4.99951125,8 L5.99951125,8 L5.99951125,26 C6.0007739,27.1040461 6.89546518,27.9987373 7.99951125,28 L23.9995112,28 C25.1035573,27.9987373 25.9982486,27.1040461 25.9995112,26 L25.9995112,8 L26.9995112,8 C27.551796,8 27.9995112,7.55228475 27.9995112,7 C27.9995112,6.44771525 27.551796,6 26.9995112,6 L26.9995112,6 Z M14,21 C14,21.5522847 13.5522847,22 13,22 C12.4477153,22 12,21.5522847 12,21 L12,13 C12,12.4477153 12.4477153,12 13,12 C13.5522847,12 14,12.4477153 14,13 L14,21 Z M20,21 C20,21.5522847 19.5522847,22 19,22 C18.4477153,22 18,21.5522847 18,21 L18,13 C18,12.4477153 18.4477153,12 19,12 C19.5522847,12 20,12.4477153 20,13 L20,21 Z M20,6 L12,6 L12,5 C12.0006317,4.44797711 12.4479771,4.00063167 13,4 L19,4 C19.5520229,4.00063167 19.9993683,4.44797711 20,5 L20,6 Z\",\"id\":\"Shape\",\"fill\":\"#ADADAD\",\"fill-rule\":\"nonzero\"}})])])])])])]),(!product.productImage.includes('generic'))?_c('div',{staticClass:\"validity\"},[(_vm.isRexall===true)?_c('strong',[_vm._v(\"Valid \")]):_vm._e(),_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.shoppingListValidFrom)+\" \")])]),_c('span',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(product.flyerDate)}})]):_vm._e()])}),0):_c('div',{staticClass:\"itemsContainer\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"flex-direction\":\"column\",\"padding\":\"20px\",\"text-align\":\"center\"}},[_c('h3',{staticClass:\"h3-fontsize\"},[_c('strong',[_vm._v(_vm._s(_vm.content.shoppingList.noItemsInSLTitle))])]),_c('br'),_c('p',{staticClass:\"p-fontsize\"},[_vm._v(_vm._s(_vm.content.shoppingList.noItemsInSLMsg)+\" \")])]),_c('div',{staticClass:\"addItemContainer\"},[_c('div',{staticClass:\"addItemContainer_content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.additionalItem),expression:\"additionalItem\"}],ref:\"additional-item\",staticClass:\"txtAddItem\",attrs:{\"type\":\"text\",\"placeholder\":_vm.content.shoppingList.addItemPlaceholder,\"aria-label\":_vm.content.shoppingList.addItemPlaceholder,\"tabindex\":\"0\"},domProps:{\"value\":(_vm.additionalItem)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleAdditionalItem.apply(null, arguments)},\"focus\":function($event){return _vm.setAdditionalItemInputFocus(true)},\"blur\":function($event){return _vm.setAdditionalItemInputFocus(false)},\"input\":function($event){if($event.target.composing){ return; }_vm.additionalItem=$event.target.value}}}),_c('button',{staticClass:\"addItem\",attrs:{\"aria-label\":\"addItem\",\"disabled\":_vm.additionalItem.length<2},on:{\"click\":_vm.handleAdditionalItem}},[_vm._v(_vm._s(_vm.content.shoppingList.addItem))])])]),(_vm.shoppingListV2.length>0)?_c('div',{staticClass:\"optionsContainer\"},[_c('button',{staticClass:\"btnOptions\",on:{\"click\":_vm.handlePrint}},[_c('img',{attrs:{\"src\":_vm.getImage('print'),\"alt\":\"Print\"}})]),_c('button',{staticClass:\"btnOptions\",on:{\"click\":function($event){return _vm.toggleClear(!_vm.clear.value)}}},[_c('img',{attrs:{\"src\":_vm.getImage('clear'),\"alt\":\"Clear\"}})])]):_vm._e(),(_vm.email.emailReady && !_vm.email.emailSent && !_vm.emailError)?_c('div',{staticClass:\"emailBody\"},[_c('span',{staticClass:\"emailTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailTitle))]),_c('button',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"mask\":\"url(#b)\",\"fill\":\"#80868B\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])])]),_c('div',{staticClass:\"emailMessage\"},[_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailWarning)+\" \")]),_c('div',{staticClass:\"emailTxtBoxContainer\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.emailAddress),expression:\"emailAddress\"}],ref:\"search-input\",staticClass:\"txtAddItem\",attrs:{\"type\":\"text\",\"placeholder\":_vm.content.shoppingList.emailPlaceholder,\"aria-label\":\"Entrez votre adresse courriel\",\"tabindex\":\"0\"},domProps:{\"value\":(_vm.emailAddress)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleEmail()},\"focus\":function($event){return _vm.setEmailInputFocus(true)},\"blur\":function($event){return _vm.setEmailInputFocus(false)},\"input\":function($event){if($event.target.composing){ return; }_vm.emailAddress=$event.target.value}}}),_c('button',{staticClass:\"addItem\",attrs:{\"aria-label\":\"addItem\",\"disabled\":_vm.isValidEmail},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleEmail()}}},[_vm._v(_vm._s(_vm.content.shoppingList.send))])])]):_vm._e(),(_vm.clear.clearReady && !_vm.clear.clearDone)?_c('div',{staticClass:\"emailBody\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"mask\":\"url(#b)\",\"fill\":\"#80868B\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"clearTitle\"},[_c('span',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(_vm._s(_vm.content.shoppingList.clearTitle))])]),_c('div',{staticClass:\"clearBtnContainer\"},[_c('button',{staticClass:\"clearItemYes\",attrs:{\"aria-label\":\"yes\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.yes))]),_c('button',{staticClass:\"clearItemNo\",attrs:{\"aria-label\":\"no\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.no))])])]):_vm._e(),(!_vm.email.emailReady && _vm.email.emailSent && !_vm.emailError)?_c('div',{staticClass:\"emailSent\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"mask\":\"url(#b)\",\"fill\":\"#80868B\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"emailSentTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailSentTitle))])]),_c('div',{staticClass:\"emailSentMessage\"},[_c('span',{staticClass:\"emailSentCheck\"},[_c('svg',{attrs:{\"width\":\"32px\",\"height\":\"32px\",\"viewBox\":\"0 0 32 32\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"icon - checkmark\")]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"ShoppingList---FR---Email-Confirmation\",\"transform\":\"translate(-1517.000000, -764.000000)\",\"fill\":\"#333333\",\"fill-rule\":\"nonzero\"}},[_c('path',{attrs:{\"d\":\"M1533,764 C1524.16429,764 1517,771.164286 1517,780 C1517,788.835714 1524.16429,796 1533,796 C1541.83571,796 1549,788.835714 1549,780 C1549,771.164286 1541.83571,764 1533,764 Z M1541.20714,774.65 L1531.27143,787.4 C1531.19286,787.478571 1531.06429,787.65 1530.90714,787.65 C1530.74286,787.65 1530.63571,787.535714 1530.54286,787.442857 C1530.45,787.35 1524.90714,782.021429 1524.90714,782.021429 L1524.8,781.914286 C1524.75714,781.85 1524.72143,781.771429 1524.72143,781.685714 C1524.72143,781.6 1524.75714,781.521429 1524.8,781.457143 C1524.82857,781.428571 1524.85,781.407143 1524.87857,781.371429 C1525.42857,780.792857 1526.54286,779.621429 1526.61429,779.55 C1526.70714,779.457143 1526.78571,779.335714 1526.95714,779.335714 C1527.13571,779.335714 1527.25,779.485714 1527.33571,779.571429 C1527.42143,779.657143 1530.55,782.664286 1530.55,782.664286 L1538.5,772.45 C1538.57143,772.392857 1538.65714,772.35 1538.75,772.35 C1538.84286,772.35 1538.92857,772.385714 1539,772.442857 L1541.18571,774.164286 C1541.24286,774.235714 1541.27857,774.321429 1541.27857,774.414286 C1541.28571,774.507143 1541.25,774.585714 1541.20714,774.65 L1541.20714,774.65 Z\",\"id\":\"icon---checkmark\"}})])])])]),_c('span',[_c('b',[_vm._v(_vm._s(_vm.content.shoppingList.emailSentMessage))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailSentMessage2))])]),_c('p',{staticClass:\"emailSentMessage\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleResend.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.emailSentResent))])])]):_vm._e(),(!_vm.email.emailReady && !_vm.email.emailSent && _vm.emailError)?_c('div',{staticClass:\"emailSent\"},[_c('span',{staticClass:\"emailClose\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeEmail.apply(null, arguments)}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('g',{attrs:{\"mask\":\"url(#b)\",\"fill\":\"#80868B\"}},[_c('path',{attrs:{\"d\":\"M0 0h20v20H0z\"}})])])])]),_c('div',{staticClass:\"emailSentTitle\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailErrorTitle))])]),_c('div',{staticClass:\"emailSentMessage\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.emailErrorMsg1)),_c('br'),_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailErrorMsg2))])]),_c('p',{staticClass:\"emailSentMessage\"},[_c('b',[_vm._v(\" \"+_vm._s(_vm.content.shoppingList.emailErrorMsg3)+\" \")])])]):_vm._e(),(!_vm.clear.clearReady && _vm.clear.clearDone && _vm.shoppingListV2.length===0)?_c('div',{staticClass:\"emailBody1\"},[_c('div',{staticClass:\"clearDone\"},[_c('span',[_vm._v(_vm._s(_vm.content.shoppingList.clearDoneMessage))])]),_c('p',{staticStyle:{\"text-align\":\"center\",\"margin-bottom\":\"8px\"}},[_c('button',{staticClass:\"clearItemYes\",attrs:{\"aria-label\":\"yes\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeClear.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.content.shoppingList.clearClose))])])]):_vm._e()])])])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"enabled\" class=\"modal-wpr\" :class=\"{'showFilters':showFilters }\" v-show=\"showShoppingListV2\" tabindex=\"0\" ref=\"shoppingListPopUp\" @click=\"closeShoppingListV2\">\r\n <config-style-injector :root-selector=\"`${$options._scopeId}.modal-wpr`\" :config=\"config\" />\r\n <div :class=\"`modal ${flyerOrientation}`\" @click.stop=\"\" v-click-outside=\"onClickOutside\" >\r\n <div class=\"header\" >\r\n <span class=\"shoppingListTitle\">{{ content.shoppingList.shoppingListTitle }}</span>\r\n <button class=\"close-btn\" :aria-label=\"content.shoppingList.closeShoppingList\" @click=\"closeShoppingListV2\">\r\n <img src=\"/images/icon-close-white.svg\" alt=\"Close\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div :class=\"`content-container ${flyerOrientation}`\">\r\n <!-- <div :class=\"`${flyerOrientation}`\"> -->\r\n <!-- ITEMS IN SHOPPING LIST CODE STARTS-->\r\n\r\n <div class=\"itemsContainer\" v-if=\"shoppingListV2.length>0\">\r\n\r\n<!-- <!– PHARMA DISCLAIMER –>\r\n <div class=\"pharma-disclaimer-container\" v-if=\"hasPharma\">\r\n <h2> {{ content.pharmaDisclaimer.title }} </h2>\r\n <h3> affiliés à <span><img src=\"/icons/favicon/jean-coutu.ico\" /> Jean Coutu</span> vous offrent des\r\n produits et des conseils pour votre santé</h3>\r\n <strong>MESSAGE IMPORTANT</strong>\r\n <p> {{ content.pharmaDisclaimer.message }}</p>\r\n </div>-->\r\n\r\n\r\n <div class=\"itemElement\" v-for=\"product in shoppingListV2\" :key=\"product.sku\">\r\n <div class=\"productImageContainer\">\r\n <img :src=\"product.productImage\" class=\"productImage\" alt=\"\">\r\n </div>\r\n\r\n <div class=\"productDetailsContainer\">\r\n <div class=\"productPrice\">\r\n <span v-if=\"product.priceQuantity\">{{product.priceQuantity}} / </span>\r\n <span>{{formatPrice(product.salePrice)}}</span>\r\n <span v-if=\"product.promoUnit\"> {{ product.promoUnit }} </span>\r\n <span v-if=\"product.limitQty\" style=\"color:black;font-size:14px\"> {{ product.limitQty}} </span>\r\n </div>\r\n\r\n <div class=\"discountPrice\" v-if=\"!product.salePricePrefix.includes('null')\">{{ formatPrice(product.salePricePrefix) }}</div>\r\n\r\n <div class=\"productTitle\" v-if=\"language=='en'\">{{product.productEn}}</div>\r\n <div class=\"productTitle\" v-else>{{product.productFr}}</div>\r\n\r\n <div class=\"description\" v-html=\"getContents(product.contents)\"></div>\r\n\r\n </div>\r\n\r\n <div class=\"qty-del-btns\">\r\n\r\n <div class=\"qtyGroup\">\r\n <button class=\"qty-out\" :disabled=\"product.quantity == 1\" @click=\"handleQtyChange(product.sku,'minus')\">\r\n <!-- <img :alt=\"content.qtyOut\" src=\"/images/icon-decrease.svg\" /> -->\r\n <svg width=\"12px\" height=\"2px\" viewBox=\"0 0 12 2\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g id=\"ShoppingList---EN\" transform=\"translate(-1808.000000, -173.000000)\" fill=\"#545454\" fill-rule=\"nonzero\">\r\n <polygon id=\"icon---decrease-size-copy-2\" points=\"1820 175 1808 175 1808 173 1820 173\"></polygon>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n <div class=\"qty-percent\">{{ product.quantity }}</div>\r\n <button class=\"qty-in\"\r\n @click=\"handleQtyChange(product.sku,'plus')\">\r\n <!-- <img :alt=\"content.qtyIn\" src=\"/images/icon-increase.svg\" /> -->\r\n <svg width=\"12px\" height=\"12px\" viewBox=\"0 0 12 12\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g id=\"SuperC---ShoppingList---EN\" transform=\"translate(-1872.000000, -168.000000)\" fill=\"#545454\" fill-rule=\"nonzero\">\r\n <polygon id=\"icon---increase-size-copy-2\" points=\"1884 174.857143 1878.85714 174.857143 1878.85714 180 1877.14286 180 1877.14286 174.857143 1872 174.857143 1872 173.142857 1877.14286 173.142857 1877.14286 168 1878.85714 168 1878.85714 173.142857 1884 173.142857\"></polygon>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <button class=\"delIcon\" @click.stop.prevent=\"handleDeleteItem(product)\">\r\n <!-- <img src=\"images/icon-trash.svg\" class=\"delIcon\" @click=\"handleDeleteItem(product)\"> -->\r\n <svg width=\"33px\" height=\"33px\" viewBox=\"0 0 33 33\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <title>{{ content.shoppingList.deleteItem }}</title>\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(-1863.000000, -213.000000)\">\r\n <g id=\"Trash\" transform=\"translate(1863.954673, 213.500445)\">\r\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"32\" height=\"32\"></rect>\r\n <path d=\"M26.9995112,6 L22,6 L22,5 C21.9981277,3.34392191 20.6560781,2.00187233 19,2 L13,2 C11.3439219,2.00187233 10.0018723,3.34392191 10,5 L10,6 L4.99951125,6 C4.4472265,6 3.99951125,6.44771525 3.99951125,7 C3.99951125,7.55228475 4.4472265,8 4.99951125,8 L5.99951125,8 L5.99951125,26 C6.0007739,27.1040461 6.89546518,27.9987373 7.99951125,28 L23.9995112,28 C25.1035573,27.9987373 25.9982486,27.1040461 25.9995112,26 L25.9995112,8 L26.9995112,8 C27.551796,8 27.9995112,7.55228475 27.9995112,7 C27.9995112,6.44771525 27.551796,6 26.9995112,6 L26.9995112,6 Z M14,21 C14,21.5522847 13.5522847,22 13,22 C12.4477153,22 12,21.5522847 12,21 L12,13 C12,12.4477153 12.4477153,12 13,12 C13.5522847,12 14,12.4477153 14,13 L14,21 Z M20,21 C20,21.5522847 19.5522847,22 19,22 C18.4477153,22 18,21.5522847 18,21 L18,13 C18,12.4477153 18.4477153,12 19,12 C19.5522847,12 20,12.4477153 20,13 L20,21 Z M20,6 L12,6 L12,5 C12.0006317,4.44797711 12.4479771,4.00063167 13,4 L19,4 C19.5520229,4.00063167 19.9993683,4.44797711 20,5 L20,6 Z\" id=\"Shape\" fill=\"#ADADAD\" fill-rule=\"nonzero\"></path>\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n\r\n </div>\r\n\r\n <div class=\"validity\" v-if=\"!product.productImage.includes('generic')\">\r\n <strong v-if=\"isRexall===true\">Valid </strong>\r\n <span><strong>{{ content.shoppingListValidFrom }} </strong></span>\r\n <span class=\"date\" v-html=\"product.flyerDate\"></span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div v-else class=\"itemsContainer\" style=\"display:flex; justify-content: center; flex-direction: column; padding:20px;text-align: center\" >\r\n\r\n <h3 class=\"h3-fontsize\"><strong>{{ content.shoppingList.noItemsInSLTitle }}</strong></h3><br/>\r\n <p class=\"p-fontsize\" >{{ content.shoppingList.noItemsInSLMsg }} </p>\r\n </div>\r\n\r\n <!-- ITEMS IN SHOPPING LIST ENDS -->\r\n <div class=\"addItemContainer\">\r\n <div class=\"addItemContainer_content\">\r\n <input type=\"text\" :placeholder=\"content.shoppingList.addItemPlaceholder\"\r\n :aria-label=\"content.shoppingList.addItemPlaceholder\"\r\n class=\"txtAddItem\"\r\n v-model=\"additionalItem\"\r\n tabindex=\"0\"\r\n ref=\"additional-item\"\r\n @keyup.enter=\"handleAdditionalItem\"\r\n @focus=\"setAdditionalItemInputFocus(true)\"\r\n @blur=\"setAdditionalItemInputFocus(false)\"\r\n >\r\n <button class=\"addItem\" @click=\"handleAdditionalItem\" aria-label=\"addItem\" :disabled=\"additionalItem.length<2\">{{ content.shoppingList.addItem }}</button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"optionsContainer\" v-if=\"shoppingListV2.length>0\">\r\n<!-- <button class=\"btnOptions\" @click=\"toggleEmail(!email.value)\"><img :src=\"getImage('email')\" alt=\"Email\"></button>-->\r\n <button class=\"btnOptions\" @click=\"handlePrint\"> <img :src=\"getImage('print')\" alt=\"Print\"> </button>\r\n <button class=\"btnOptions\" @click=\"toggleClear(!clear.value)\"><img :src=\"getImage('clear')\" alt=\"Clear\"></button>\r\n </div>\r\n\r\n <div class=\"emailBody\" v-if=\"email.emailReady && !email.emailSent && !emailError\">\r\n <span class=\"emailTitle\">\r\n <span>{{ content.shoppingList.emailTitle }}</span>\r\n <button class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg width=\"20\" height=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g mask=\"url(#b)\" fill=\"#80868B\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n </span>\r\n <div class=\"emailMessage\"> {{ content.shoppingList.emailWarning }} </div>\r\n\r\n <div class=\"emailTxtBoxContainer\">\r\n <input type=\"text\" :placeholder=\"content.shoppingList.emailPlaceholder\"\r\n aria-label=\"Entrez votre adresse courriel\"\r\n class=\"txtAddItem\"\r\n ref=\"search-input\"\r\n v-model=\"emailAddress\"\r\n tabindex=\"0\"\r\n @keyup.enter=\"handleEmail()\"\r\n @focus=\"setEmailInputFocus(true)\"\r\n @blur=\"setEmailInputFocus(false)\"\r\n\r\n >\r\n <button class=\"addItem\" @click.stop.prevent=\"handleEmail()\" aria-label=\"addItem\" :disabled=\"isValidEmail\">{{ content.shoppingList.send }}</button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"emailBody\" v-if=\"clear.clearReady && !clear.clearDone\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeClear\">\r\n <svg width=\"20\" height=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g mask=\"url(#b)\" fill=\"#80868B\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <div class=\"clearTitle\">\r\n <span style=\"text-align: center\">{{ content.shoppingList.clearTitle }}</span>\r\n </div>\r\n <div class=\"clearBtnContainer\">\r\n <button class=\"clearItemYes\" @click.stop.prevent=\"handleClear\" aria-label=\"yes\">{{ content.shoppingList.yes }}</button>\r\n <button class=\"clearItemNo\" @click.stop.prevent=\"closeClear\" aria-label=\"no\">{{ content.shoppingList.no }}</button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"emailSent\" v-if=\"!email.emailReady && email.emailSent && !emailError\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg width=\"20\" height=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g mask=\"url(#b)\" fill=\"#80868B\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <div class=\"emailSentTitle\">\r\n <span>{{content.shoppingList.emailSentTitle}}</span>\r\n </div>\r\n <div class=\"emailSentMessage\">\r\n <span class=\"emailSentCheck\">\r\n <svg width=\"32px\" height=\"32px\" viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <title>icon - checkmark</title>\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g id=\"ShoppingList---FR---Email-Confirmation\" transform=\"translate(-1517.000000, -764.000000)\" fill=\"#333333\" fill-rule=\"nonzero\">\r\n <path d=\"M1533,764 C1524.16429,764 1517,771.164286 1517,780 C1517,788.835714 1524.16429,796 1533,796 C1541.83571,796 1549,788.835714 1549,780 C1549,771.164286 1541.83571,764 1533,764 Z M1541.20714,774.65 L1531.27143,787.4 C1531.19286,787.478571 1531.06429,787.65 1530.90714,787.65 C1530.74286,787.65 1530.63571,787.535714 1530.54286,787.442857 C1530.45,787.35 1524.90714,782.021429 1524.90714,782.021429 L1524.8,781.914286 C1524.75714,781.85 1524.72143,781.771429 1524.72143,781.685714 C1524.72143,781.6 1524.75714,781.521429 1524.8,781.457143 C1524.82857,781.428571 1524.85,781.407143 1524.87857,781.371429 C1525.42857,780.792857 1526.54286,779.621429 1526.61429,779.55 C1526.70714,779.457143 1526.78571,779.335714 1526.95714,779.335714 C1527.13571,779.335714 1527.25,779.485714 1527.33571,779.571429 C1527.42143,779.657143 1530.55,782.664286 1530.55,782.664286 L1538.5,772.45 C1538.57143,772.392857 1538.65714,772.35 1538.75,772.35 C1538.84286,772.35 1538.92857,772.385714 1539,772.442857 L1541.18571,774.164286 C1541.24286,774.235714 1541.27857,774.321429 1541.27857,774.414286 C1541.28571,774.507143 1541.25,774.585714 1541.20714,774.65 L1541.20714,774.65 Z\" id=\"icon---checkmark\"></path>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <span><b>{{ content.shoppingList.emailSentMessage }}</b> <br/> {{ content.shoppingList.emailSentMessage2 }}</span>\r\n </div>\r\n\r\n <p class=\"emailSentMessage\"><a href=\"#\" @click.stop.prevent=\"handleResend\">{{ content.shoppingList.emailSentResent }}</a></p>\r\n </div>\r\n\r\n <div class=\"emailSent\" v-if=\"!email.emailReady && !email.emailSent && emailError\">\r\n <span class=\"emailClose\" @click.stop.prevent=\"closeEmail\">\r\n <svg width=\"20\" height=\"20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n <path id=\"a\" d=\"M15.83 5.34l-1.17-1.17L10 8.82 5.34 4.17 4.17 5.34 8.82 10l-4.65 4.66 1.17 1.17L10 11.18l4.66 4.65 1.17-1.17L11.18 10z\"/>\r\n </defs>\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <mask id=\"b\" fill=\"#fff\">\r\n <use xlink:href=\"#a\"/>\r\n </mask>\r\n <g mask=\"url(#b)\" fill=\"#80868B\">\r\n <path d=\"M0 0h20v20H0z\"/>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <div class=\"emailSentTitle\">\r\n <span>{{content.shoppingList.emailErrorTitle}}</span>\r\n </div>\r\n <div class=\"emailSentMessage\">\r\n <span>{{ content.shoppingList.emailErrorMsg1 }}<br/> {{ content.shoppingList.emailErrorMsg2 }}</span>\r\n </div>\r\n\r\n <p class=\"emailSentMessage\"><b> {{ content.shoppingList.emailErrorMsg3 }} </b> </p>\r\n </div>\r\n\r\n <div class=\"emailBody1\" v-if=\"!clear.clearReady && clear.clearDone && shoppingListV2.length===0\">\r\n <div class=\"clearDone\">\r\n <span>{{ content.shoppingList.clearDoneMessage }}</span>\r\n </div>\r\n\r\n <p style=\"text-align: center;margin-bottom: 8px\"><button class=\"clearItemYes\" @click.stop.prevent=\"closeClear\" aria-label=\"yes\">{{ content.shoppingList.clearClose }}</button></p>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from 'vuex';\r\n//import moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\n\r\nexport default {\r\n components: {ConfigStyleInjector},\r\n mixins:[featureMixin],\r\n props:{\r\n deal: String,\r\n },\r\n\r\n data() {\r\n return {\r\n featurePath: 'shoppingList',\r\n ready: false,\r\n additionalItem:'',\r\n email:{\r\n value:false,\r\n emailReady:false,\r\n emailSent:false,\r\n },\r\n emailAddress:'',\r\n clear:{\r\n value:false,\r\n clearReady:false,\r\n clearDone:false\r\n },\r\n\r\n }\r\n },\r\n\r\n computed: {\r\n ...mapGetters(['content', 'language']),\r\n ...mapGetters('screen', ['flyerOrientation']),\r\n ...mapState('shoppingList',['showShoppingListV2','shoppingListV2','emailError']),\r\n ...mapGetters('shoppingList',['getVersion']),\r\n ...mapState(['showFilters']),\r\n\r\n isRexall(){\r\n return AppConfig.AppConf?.title.toLowerCase().includes(\"rexall\".toLowerCase()) ? true : false;\r\n },\r\n\r\n isValidEmail(){\r\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(this.emailAddress)\r\n },\r\n hasPharma(){\r\n return this.shoppingListV2.some((p)=> p.pharma==true)\r\n },\r\n },\r\n\r\n\r\n methods: {\r\n ...mapActions('shoppingList',['setAdditionalItemInputFocus','toggleShoppingList','toggleShoppingListV2','setAddToList','skuAddToList','setRemoveFromList','quantityChange','clearAll','sendEmail','setEmailError','setEmailInputFocus']),\r\n getContents(p){\r\n return p.replace(/\\s\\•/g, '\\n•');\r\n },\r\n\r\n getImage(val){\r\n if(val===\"email\"){\r\n if(this.email.value)\r\n return `/images/Email-${this.language}-GRN.svg`\r\n\r\n else\r\n return `/images/Email-${this.language}-Grey.svg`\r\n }\r\n if(val===\"clear\"){\r\n\r\n if(this.clear.value)\r\n return `/images/Clear-${this.language}-GRN.svg`\r\n\r\n else\r\n return `/images/Clear-${this.language}-Grey.svg`\r\n }\r\n if(val===\"print\")\r\n return `/images/Print-${this.language}-Grey.svg`\r\n },\r\n\r\n closeHelp(){\r\n if(this.ready){\r\n this.toggleShoppingList(false);\r\n // console.log('close shoppinglist');\r\n }\r\n },\r\n\r\n handleQtyChange(sku,operation){\r\n const version = 'v2'\r\n this.quantityChange({sku,operation,version});\r\n },\r\n\r\n closeEmail(){\r\n this.email.value=false;\r\n this.email.emailReady=false;\r\n this.email.emailSent=false;\r\n this.setEmailError(false);\r\n this.emailAddress=''\r\n },\r\n closeClear(){\r\n this.clear.value=false;\r\n this.clear.clearReady=false;\r\n this.clear.clearDone=false;\r\n },\r\n\r\n // flyerDate(validFrom,validTo){\r\n // const start = validFrom ? moment.utc(validFrom) : moment(this.currentFlyer.startDate);\r\n // const endDate = validTo ? moment.utc(validTo) : moment(this.currentFlyer.endDate);\r\n // if (this.language === 'en') {\r\n // return `${start.locale('en').format('MMMM D, YYYY')} to ${endDate.locale('en').format('MMMM D, YYYY')}`;\r\n // } else {\r\n // return `${start.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n // }\r\n // },\r\n\r\n handleDeleteItem(product){\r\n const version = this.getVersion\r\n this.setRemoveFromList({product, version});\r\n },\r\n\r\n formatPrice(salePrice){\r\n if (salePrice=='null' || !salePrice || salePrice === '$NaN' || salePrice === 'NaN$') {\r\n return '';\r\n }\r\n\r\n if(!isNaN(salePrice)) {\r\n salePrice = parseFloat(salePrice).toFixed(2);\r\n if(this.language === 'fr') {\r\n salePrice = salePrice.replace('.', ',');\r\n }\r\n }\r\n return this.formatCurrency(salePrice);\r\n },\r\n formatCurrency(currency) {\r\n const lang = this.language;\r\n if(currency === null || currency === undefined)return;\r\n\r\n const str = String(currency).replaceAll('$', '');\r\n\r\n const regex = /\\d+([.,])\\d{2}/g;\r\n\r\n const replacedString = str.replace(regex, (match) => {\r\n if(lang === 'fr') {\r\n match = match.replace('.', ',') + '$';\r\n } else {\r\n match = '$' + match.replace(',', '.');\r\n }\r\n return match;\r\n });\r\n if (replacedString === str)\r\n return String(currency)\r\n\r\n return replacedString\r\n },\r\n\r\n handleAdditionalItem() {\r\n if(this.additionalItem === '') return\r\n\r\n const additionalItemFlag = true;\r\n const additionalItem = this.additionalItem\r\n this.additionalItem='';\r\n this.clear.value=false;\r\n this.email.value=false;\r\n const version=this.getVersion\r\n this.setAddToList({ additionalItem, additionalItemFlag,version});\r\n },\r\n\r\n handlePrint() {\r\n\r\n var i = 0;\r\n var printWindow = window.open(\"\");\r\n printWindow.document.write(`<html><head><link rel=\"icon\" href=\"./images/metro_favicon.png\"><title>${AppConfig?.AppConf?.title}-Print ShoppingList</title></head><style>\r\n.print_container_background{\r\n /*overflow-y:visible;*/\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 9999;\r\n display: flex;\r\n justify-content: center;\r\n align-items: flex-start;\r\n transition: opacity .3s ease;\r\n}\r\n\r\n.print_container{\r\n width: 700px;\r\n /* display: flex;\r\n justify-content: space-between; */\r\n font-weight: bold;\r\n margin-top: 15px;\r\n}\r\n.print_header {\r\n display: flex;\r\n justify-content: space-between;\r\n margin-top: 15px;\r\n padding-right: 10px;\r\n align-items: center;\r\n border-top: 1px solid lightgrey;\r\n border-right: 1px solid lightgrey;\r\n border-bottom: 1px solid lightgrey;\r\n}\r\n\r\n.logo{\r\n width:220px;\r\n}\r\n\r\n.title{\r\n font-size:20px;\r\n font-weight: bold;\r\n}\r\n\r\n.print_quantity {\r\n display: flex;\r\n justify-content: space-between;\r\n padding-right: 10px;\r\n align-items: center;\r\n padding: 20px 10px 10px 10px;\r\n border-bottom: 3px solid lightgrey;\r\n font-size: 14px;\r\n}\r\n\r\na{\r\n cursor: pointer;\r\n color:#0000EE;\r\n text-display: block;\r\n text-decoration: underline;\r\n font-size: 12px;;\r\n}\r\n\r\n.productImage{\r\n max-height: 100%;\r\n max-width: 100%;\r\n width: auto;\r\n height: 37px;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n}\r\n\r\n.itemElement{\r\n display:flex;\r\n justify-content: space-between;\r\n padding:15px;\r\n border-bottom: 1px solid lightgrey;\r\n align-items: center;\r\n}\r\n\r\n.checklist {\r\n width: 35px;\r\n height: 35px;\r\n border: 1px solid gray;\r\n left: 5px;\r\n top: 0;\r\n bottom: 0;\r\n /* margin: auto; */\r\n cursor: pointer;\r\n}\r\n\r\n.productDetails {\r\n display: flex;\r\n flex-direction: column;\r\n width:75%;\r\n}\r\n\r\n.productTitle, .productPrice{\r\n font-weight: bold;\r\n font-size: 13px;\r\n}\r\n\r\n.productPrice {\r\n font-size: 14px;\r\n}\r\n\r\n.validityTitle {\r\n font-size: 12px;\r\n}\r\n\r\n.validityDate {\r\n font-size: 12px;\r\n /* color: var(--primary-color); */\r\n color: #EE3124;\r\n margin-left: 2px;\r\n font-weight: 500;\r\n}\r\n\r\n.disclaimer {\r\n font-size: 10px;\r\n font-weight: 400;\r\n margin-top: 15px;\r\n}\r\n\r\n@media print{\r\n* {\r\n display:inline;\r\n overflow: auto !important;\r\n}\r\nscript, style {\r\n display:none;\r\n}\r\n.itemElement{\r\npage-break-inside: avoid;\r\n}\r\n}\r\n\r\n</style>` +\r\n `<body style=\"font-family: Lato, sans-serif;\">`);\r\n printWindow.document.write(`<body>` +\r\n `<div class=\"print_container_background\">\r\n <div class=\"print_container\">\r\n <div class=\"row\">\r\n <a onclick=\"window.print();\">` + this.content.shoppingList.shoppingListPrint + `</a>\r\n </div>` +\r\n\r\n `<div class=\"print_header\">\r\n <img src='/images/${AppConfig?.AppConf?.title}_logo.jpg' class=\"logo\">\r\n <div class=\"title\">` + this.content.shoppingList.shoppingListTitle + `</div>\r\n </div>\r\n\r\n <div class=\"print_quantity\">\r\n <div>` + this.shoppingListV2.length + ` ` + this.content.shoppingList.items + `</div>\r\n <div>` + this.content.shoppingList.productQuantityTitle + `</div>\r\n </div>\r\n <div class=\"itemsContainer\">`)\r\n\r\n while (i < this.shoppingListV2.length) {\r\n printWindow.document.write(`<div class=\"itemElement\">\r\n <span class=\"checklist\"> </span>\r\n <span style=\"width:10%\">\r\n <img src=\"` + this.shoppingListV2[i].productImage + `\" class=\"productImage\" alt=` + this.shoppingListV2[i].productEn + `>\r\n </span>\r\n <div class=\"productDetails\">\r\n <span class=\"productTitle\">`)\r\n\r\n if (this.shoppingListV2[i].productEn !== null)\r\n printWindow.document.write(this.shoppingListV2[i].productEn)\r\n\r\n printWindow.document.write(`<br/>`)\r\n\r\n if (this.shoppingListV2[i].priceQuantity) {\r\n printWindow.document.write(\r\n `<span class=\"productPrice\">` +\r\n this.shoppingListV2[i].priceQuantity + `<span>/ </span>` +\r\n this.formatPrice(this.shoppingListV2[i].salePrice) +\r\n `</span>`);\r\n } else {\r\n printWindow.document.write(`<span class=\"productPrice\">`);\r\n printWindow.document.write(this.formatPrice(this.shoppingListV2[i].salePrice) +\r\n `</span>`);\r\n }\r\n if (this.shoppingListV2[i].salePricePrefix && !this.shoppingListV2[i].salePricePrefix.includes('null'))\r\n printWindow.document.write('<div>'+this.formatPrice(this.shoppingListV2[i].salePricePrefix) +' </div>')\r\n\r\n printWindow.document.write(this.shoppingListV2[i].limitQty)\r\n\r\n if (!this.shoppingListV2[i].productImage.includes('generic')) {\r\n printWindow.document.write(`<div class=\"validityTitle\">`+\r\n this.content.shoppingList.shoppingListValidFrom +\r\n `: <span class=\"validityDate\">` + this.shoppingListV2[i].flyerDate + `</span></div>`)\r\n }\r\n printWindow.document.write(`\r\n </div>\r\n <div class=\"qty\">` + this.shoppingListV2[i].quantity + `</div>\r\n </div>`)\r\n i++;\r\n }\r\n printWindow.document.write(`<div class=\"disclaimer\">` + this.content.shoppingList.printDisclaimer + `</div>`\r\n + `</body></html>`)\r\n },\r\n\r\n closeShoppingListV2() {\r\n if (this.showShoppingListV2) {\r\n this.additionalItem=''\r\n this.emailAddress=''\r\n this.email.value=false;\r\n this.email.emailReady=false;\r\n this.email.emailSent=false;\r\n this.setEmailError(false);\r\n this.clear.value=false;\r\n this.clear.clearReady=false;\r\n this.clear.clearDone=false;\r\n this.toggleShoppingListV2(false);\r\n }\r\n },\r\n\r\n onClickOutside() {\r\n if(this.ready) {\r\n this.closeShoppingListV2();\r\n }\r\n },\r\n\r\n // closeShoppingList1() {\r\n // //console.log( this.ready);\r\n // if (this.ready) {\r\n // this.toggleShoppingList(false);\r\n // //console.log(\"click outside sl\", this.ready);\r\n // }\r\n // },\r\n\r\n toggleEmail(val){\r\n this.email.value = val\r\n if(this.email.value){\r\n this.email.emailReady=true;\r\n this.email.emailSent=false;\r\n this.setEmailError(false);\r\n this.clear.value=false;\r\n this.clear.clearReady=false;\r\n this.clear.clearDone=false;\r\n\r\n }\r\n else{\r\n this.email.emailReady=false;\r\n this.email.emailSent =false;\r\n this.setEmailError(false);\r\n }\r\n\r\n },\r\n\r\n toggleClear(val){\r\n this.clear.value = val\r\n if(this.clear.value){\r\n this.clear.clearReady=true;\r\n this.clear.clearDone=false;\r\n this.email.value=false;\r\n this.email.emailReady=false;\r\n this.email.emailSent=false;\r\n this.setEmailError(false);\r\n }\r\n else{\r\n this.clear.clearReady=false;\r\n this.clear.clearDone =false;\r\n }\r\n\r\n },\r\n getUrlParameter(name) {\r\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n var regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\r\n var results = regex.exec(window.location.search);\r\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n },\r\n\r\n async handleEmail(){\r\n if(this.emailAddress=='')\r\n return\r\n\r\n if(!this.isValidEmail){\r\n this.email.emailReady=false;\r\n let emailBody = {\r\n deal:this.deal,\r\n storeId : this.getUrlParameter(\"storeId\"),\r\n lang: this.getUrlParameter(\"language\") === \"fr\" ? \"bil\" : \"en\",\r\n shoppingList: this.shoppingListV2,\r\n to:this.emailAddress\r\n }\r\n // console.log(emailBody);\r\n await this.sendEmail(emailBody);\r\n\r\n if(this.emailError==false)\r\n this.email.emailSent=true;\r\n }\r\n },\r\n\r\n handleResend(){\r\n this.email.emailSent=false;\r\n this.email.emailReady=true;\r\n },\r\n\r\n handleClear(){\r\n this.clear.clearReady = false;\r\n this.clear.clearDone=true;\r\n this.clearAll()\r\n setTimeout(()=> this.clear.clearDone=false,9000)\r\n },\r\n\r\n },\r\n\r\n watch:{\r\n showShoppingListV2(v){\r\n if(v){\r\n this.$nextTick(() => {\r\n const shoppingProduct = document.querySelectorAll('.itemElement')\r\n shoppingProduct.forEach((product) => {\r\n const detailText = product.querySelector('.row3 div')\r\n if(detailText && !detailText.dataset.styled) {\r\n detailText.innerHTML = detailText.innerHTML\r\n .replace(/\\*\\*/g, '<br>**')\r\n .replace(/(^|\\s)\\*(?=\\S)/g, '<br>*').replace(/-/g, '‑')\r\n detailText.dataset.styled = true;\r\n }\r\n })\r\n })\r\n setTimeout(() => {\r\n this.ready = true;\r\n }, 1000)\r\n }\r\n this.ready = false;\r\n }\r\n },\r\n\r\n mounted() {\r\n // console.log(this.$refs.shoppingListPopUp);\r\n const shoppingListPopUpFocus = this.$refs.shoppingListPopUp;\r\n shoppingListPopUpFocus.focus();\r\n\r\n const skuAddToList = this.skuAddToList;\r\n const setRemoveFromList = this.setRemoveFromList;\r\n window.addEventListener('message', async event => {\r\n if (event.data.action === 'addToShoppingList') {\r\n // add to shopping list\r\n const skuAdded = await skuAddToList(event.data.sku)\r\n\r\n // confirm added to shopping list\r\n if (skuAdded) {\r\n window.parent.postMessage({action: 'confirmation', message: `${event.data.sku} added to shopping list.`}, '*')\r\n } else {\r\n window.parent.postMessage({action: 'error', message: `${event.data.sku} wasn't found.`}, '*')\r\n }\r\n }\r\n if (event.data.action === 'removeFromShoppingList') {\r\n // delete from shopping list\r\n const skuAdded = await setRemoveFromList({sku: event.data.sku})\r\n\r\n // confirm deleted from shopping list\r\n if (skuAdded) {\r\n window.parent.postMessage({action: 'confirmation', message: `${event.data.sku} removed from shopping list.`}, '*')\r\n } else {\r\n window.parent.postMessage({action: 'error', message: `${event.data.sku} wasn't found.`}, '*')\r\n }\r\n }\r\n }, false);\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.itemElement{\r\n display:flex;\r\n justify-content: space-between;\r\n border-bottom: 1px solid lightgrey;\r\n padding: 10px 5px;\r\n flex-wrap: wrap;\r\n font-size:0.9em;\r\n\r\n .productImageContainer{\r\n margin-right:15px;\r\n flex: 0.2;\r\n float: left;\r\n background-color: #fff;\r\n padding: 5px 0;\r\n margin-bottom: 10px;\r\n border: 1.5px solid lightgrey;\r\n display: flex;\r\n justify-content: center;\r\n max-height: 95px;\r\n\r\n .productImage{\r\n object-fit: contain;\r\n height: auto;\r\n max-width:80px\r\n }\r\n }\r\n\r\n .productDetailsContainer {\r\n display: flex;\r\n flex-direction: column;\r\n flex: 0.7;\r\n\r\n .productTitle{\r\n font-weight: bold;\r\n }\r\n\r\n .description{\r\n white-space: pre-wrap ;\r\n }\r\n }\r\n\r\n .qty-del-btns{\r\n flex: 0.1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n flex-wrap: wrap-reverse;\r\n }\r\n\r\n .validity{\r\n margin-top: 5px;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n.itemsContainer{\r\n min-height:150px;\r\n max-height:300px;\r\n //max-width: calc(100vw - 6em);\r\n overflow-y:auto;\r\n padding:0 10px 0 10px;\r\n\r\n .pharma-disclaimer-container{\r\n padding: 5px 5px;\r\n margin: 5px 0;\r\n border: 1.5px solid lightgrey;\r\n display: flex;\r\n flex-direction: column;\r\n text-align: center;\r\n\r\n h2{\r\n color: var(--secondary-color);\r\n font-size:1.3em;\r\n\r\n }\r\n h3{\r\n color: var(--secondary-color);\r\n font-size: 1em;\r\n margin-bottom: 5px;\r\n\r\n span{\r\n color: #EE3124;\r\n\r\n img{\r\n width:1.1em;\r\n }\r\n }\r\n }\r\n p{\r\n font-size:0.7em;\r\n }\r\n }\r\n}\r\n\r\n.h3-fontsize {\r\n font-size: 17px;\r\n padding:0 15px 0 15px;\r\n line-height: 1.4em;\r\n}\r\n.p-fontsize {\r\n font-size: 15px;\r\n padding:0 15px 0 15px;\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display:none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n\r\n\r\n.productPrice{\r\n font-size:15px;\r\n color: #EE3124;\r\n font-weight: bold;\r\n line-height:1.1em;\r\n padding-right: 10px;\r\n word-break: break-word;\r\n}\r\n\r\n.discountPrice{\r\n font-weight: bold;\r\n}\r\n\r\n\r\n\r\n.delIcon{\r\n cursor:pointer;\r\n width:25px;\r\n // height:28px;\r\n}\r\n\r\n.salePrice{\r\n font-size:15px;\r\n font-weight: bold;\r\n}\r\n\r\n.right_section{\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n justify-content: space-between;\r\n}\r\n\r\n.optionsContainer{\r\n position: relative;\r\n display:flex;\r\n justify-content: center;\r\n flex:0.9;\r\n //max-width: calc(100vw - 6em);\r\n padding:8px 5px;\r\n}\r\n\r\n.btnOptions{\r\n // width:30%;\r\n cursor:pointer;\r\n border-radius:5px;\r\n border:none;\r\n}\r\n.btnOptions > img {\r\n object-fit: contain;\r\n margin-right:5px;\r\n max-width:125px;\r\n //width:120px;\r\n width:100%;\r\n}\r\n\r\n.clear{\r\n background-color: green;\r\n color:white;\r\n}\r\n\r\n.qtyGroup {\r\n display: flex;\r\n justify-self: end;\r\n /*margin: 0 2px;*/\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n height: 34px;\r\n}\r\n\r\n.qtyGroup > * {\r\n background: none;\r\n border: 0;\r\n}\r\n\r\n.qty-in {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n}\r\n\r\n.qty-percent {\r\n font-size: 14px;\r\n color: #545454;\r\n display: flex;\r\n align-items: center;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.qty-out {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.addItemContainer{\r\n //max-width: calc(100vw - 6em);\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n position: relative;\r\n z-index: 103;\r\n background-color: #FFF;\r\n padding-bottom: 10px;\r\n padding-top: 3px;\r\n .addItemContainer_content{\r\n display: flex;\r\n width: 100%;\r\n justify-content: center;\r\n //max-width: calc(100vw - 6em);\r\n }\r\n}\r\n\r\n.emailTxtBoxContainer{\r\n //margin-top:10px;\r\n display:flex;\r\n justify-content: center;\r\n margin: 10px auto;\r\n}\r\n\r\n.txtAddItem{\r\n flex:0.9;\r\n outline:none;\r\n //flex-grow: 1;\r\n border-style: solid;\r\n border-radius: 3px;\r\n border-width: 1px;\r\n text-indent: 1em;\r\n font-size: 14px;\r\n width: 90%;\r\n}\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n .description{\r\n display: flex;\r\n flex-flow: row;\r\n text-align: left;\r\n align-items: flex-end;\r\n > :first-child{\r\n width: calc(55px + 1em);\r\n }\r\n .mobile-content{\r\n flex-basis: 100%;\r\n }\r\n }\r\n}\r\n\r\n.addItem{\r\n //width: 25%;\r\n padding:10px;\r\n background-color: var(--secondary-color);\r\n color:#FFF;\r\n border: none;\r\n border-radius: 3px;\r\n margin-left: -1px;\r\n font-weight: 200;\r\n}\r\n\r\n.addItem:disabled{\r\n background-color: var(--primary-color);\r\n opacity:0.6;\r\n}\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 100;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n\r\n\r\n .modal {\r\n background-color: var(--secondary-color);\r\n /*margin-top: 75px;*/\r\n border: 1px solid #BBBBBB;\r\n /* overflow: auto;*/\r\n max-height: calc(100% - 1em);\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n display:flex;\r\n flex-flow: column;\r\n max-width: calc(100% - 4em);\r\n\r\n .header {\r\n background-color: var(--secondary-color);\r\n color: var(--primary-text-color);\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 10px;\r\n\r\n h2 {\r\n font-size: 18px;\r\n text-transform: uppercase;\r\n font-weight: 400;\r\n }\r\n\r\n .close-btn {\r\n cursor: pointer;\r\n &:hover{\r\n background: none;\r\n filter: unset;\r\n }\r\n }\r\n }\r\n\r\n .subtitle {\r\n padding-top: 6px;\r\n font-size: 12px;\r\n }\r\n\r\n .content {\r\n //padding: 8px;\r\n background-color: #FFF;\r\n color: #545454;\r\n position: relative;\r\n flex: 1 0 auto;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n // margin:0px 10px 10px 10px;\r\n margin: 10px;\r\n min-height:200px;\r\n // overflow-y: scroll;\r\n max-width:400px;\r\n max-height: calc(100% - 3.5em);\r\n /*.scroll-container{\r\n position: absolute;\r\n top:0px;\r\n bottom:0px;\r\n left:0px;\r\n right:0px;\r\n }*/\r\n .content-container{\r\n text-align:left;\r\n }\r\n\r\n .f-half {\r\n display: flex;\r\n column-gap: 1em;\r\n\r\n flex-direction: column;\r\n\r\n > div {\r\n flex-basis: 100%;\r\n display: flex;\r\n flex-flow: column;\r\n }\r\n }\r\n\r\n .content-container{\r\n // width: 380px;\r\n }\r\n\r\n .feature {\r\n background: #eee;\r\n margin: 12px 0;\r\n display: flex;\r\n justify-content: center;\r\n flex: 1;\r\n .description {\r\n display: flex;\r\n font-size: 14px;\r\n padding: 15px 0;\r\n\r\n .button-preview {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n padding: 0 20px;\r\n\r\n h4 {\r\n text-transform: uppercase;\r\n padding-top: 16px;\r\n white-space: nowrap;\r\n }\r\n\r\n .subtitle {\r\n text-align: center;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n .emailBody{\r\n background-color: lightgrey;\r\n bottom: 86%;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n }\r\n .emailBody1{\r\n background-color: lightgrey;\r\n margin-bottom:-5px;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n }\r\n .emailTitle{\r\n font-weight: bold;\r\n display: flex;\r\n justify-content: space-between;\r\n padding:10px;\r\n font-size:15px;\r\n }\r\n .emailMessage{\r\n margin-left:10px;\r\n margin-right:10px;\r\n font-size:14px;\r\n }\r\n\r\n .emailSent{\r\n background-color: lightgrey;\r\n bottom: 86%;\r\n padding: 4px;\r\n z-index: 111;\r\n width: 100%;\r\n }\r\n\r\n .emailSentTitle{\r\n font-weight: bold;\r\n display: flex;\r\n justify-content: center;\r\n font-size: 15px;\r\n padding:5px;\r\n margin-bottom:5px;\r\n }\r\n .emailSentCheck{\r\n margin-right:10px;\r\n }\r\n\r\n .emailSentMessage{\r\n font-size:14px;\r\n display:flex;\r\n justify-content: center;\r\n margin-bottom: 5px;\r\n }\r\n .emailClose{\r\n cursor:pointer;\r\n display:flex;\r\n justify-content: flex-end;\r\n }\r\n .clearTitle{\r\n font-weight: bold;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-top:5px;\r\n padding:10px;\r\n font-size:15px;\r\n }\r\n .clearItemYes{\r\n width: 25%;\r\n padding:10px;\r\n background-color: var(--secondary-color);\r\n color:#FFF;\r\n border: none;\r\n border-radius: 3px;\r\n margin-left: -3px;\r\n margin-right:5px;\r\n }\r\n .clearItemNo{\r\n width: 25%;\r\n padding:10px;\r\n background-color: var(--primary-color);\r\n opacity: 0.4;\r\n color:#FFF;\r\n border: none;\r\n border-radius: 3px;\r\n margin-left: -3px;\r\n margin-right:5px;\r\n }\r\n .clearBtnContainer{\r\n display: flex;\r\n justify-content: center;\r\n margin: 10px auto;\r\n }\r\n .clearDone{\r\n display:flex;\r\n justify-content: center;\r\n padding:20px;\r\n font-weight: 600;\r\n text-align: center;\r\n }\r\n }\r\n}\r\n\r\n.shoppingListTitle{\r\n font-size:20px;\r\n font-weight: bold;\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover{\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.qty-group {\r\n display: flex;\r\n justify-self: end;\r\n /*margin: 0 2px;*/\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n height: 34px;\r\n background-color: #FFF;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\r\n}\r\n\r\n.qty-group > * {\r\n border: 0;\r\n}\r\n\r\n.qty-in {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in:disabled {\r\n cursor: inherit;\r\n}\r\n\r\n.qty-percent {\r\n font-size: 14px;\r\n color: #545454;\r\n display: flex;\r\n align-items: center;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.qty-100 {\r\n font-size: 14px;\r\n padding: 0 8px;\r\n border-left: 1px solid #BBB;\r\n cursor: inherit;\r\n}\r\n\r\n.qty-out {\r\n font-size: 0;\r\n line-height: 0;\r\n}\r\n\r\n.qty-in, .qty-out{\r\n padding: 0;\r\n width: 30px;\r\n}\r\n\r\n.qty-out img, .qty-in img{\r\n vertical-align: middle;\r\n}\r\n\r\n\r\n\r\n.qty-out:disabled {\r\n cursor: inherit;\r\n opacity: 0.5;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n text-align: left !important;\r\n }\r\n}\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n}*/\r\n\r\n.navigation{\r\n .description{\r\n flex-basis: 50%;\r\n justify-content: center;\r\n }\r\n}\r\n\r\n\r\n\r\n@media only screen and (max-height: 850px ) and (min-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: row !important;\r\n }\r\n .content-container{\r\n width: 400px;\r\n }\r\n .itemsContainer{\r\n // min-height: 84px;\r\n // max-height: 99px;\r\n }\r\n }\r\n }\r\n\r\n}\r\n// @media only screen and (max-height: 850px ) and (min-width: 600px){\r\n// .modal-wpr .modal{\r\n// .content {\r\n// .itemsContainer{\r\n// min-height: 84px;\r\n// max-height: 99px;\r\n// }\r\n// }\r\n// }\r\n// }\r\n@media only screen and (max-height: 450px ) {\r\n .modal-wpr .modal{\r\n .content {\r\n min-height:167px;\r\n overflow-y:auto;\r\n .content-container{\r\n\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n@media only screen and (max-width: 700px){\r\n .modal-wpr .modal{\r\n .content {\r\n .content-container{\r\n // width: 575px;\r\n //width: 315px;\r\n .itemsContainer {\r\n //min-height:160px;\r\n max-height: 195px;\r\n .productImage{\r\n max-height: 80%;\r\n max-width: 80%;\r\n }\r\n .qtyGroup{\r\n height: 32px;;\r\n }\r\n .qty-in, .qty-out {\r\n width:29px;\r\n }\r\n .qty-percent {\r\n font-size: 14px;\r\n }\r\n .delIcon{\r\n cursor:pointer;\r\n // height:28px;\r\n svg{\r\n //height:30px;\r\n width:28px\r\n }\r\n }\r\n }\r\n .addItemContainer_content{\r\n display: flex;\r\n width: 100%;\r\n //justify-content: flex-start;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal.vertical{\r\n max-width: calc(100% - 1em);\r\n .content {\r\n .content-container {\r\n .optionsContainer{\r\n column-gap: 15px;\r\n .btnOptions {\r\n padding: 0;\r\n > img {\r\n min-width:110%;\r\n margin-right: unset;\r\n //transform: scale(1.2);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n\r\n\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n /*.description {\r\n padding-top: 10px;\r\n padding-left: 100px;\r\n padding-bottom: 70px;\r\n position: relative;\r\n }*/\r\n\r\n /*.btn.page {\r\n transform: rotate(90deg);\r\n width: 146px;\r\n position: absolute;\r\n left: 0;\r\n bottom: 38%;\r\n }*/\r\n\r\n\r\n h4, .subtitle {\r\n text-align: left;\r\n width: 100%;\r\n }\r\n .subtitle + .subtitle {\r\n margin-top: 1em;\r\n }\r\n }\r\n .content-container{\r\n width: 400px;\r\n }\r\n}\r\n/*@media (max-width: 850px) {\r\n .modal-wpr{\r\n top:60px;\r\n }\r\n .modal-wpr.showFilters{\r\n top:175px !important;\r\n }\r\n}\r\n\r\n/*Tablet */\r\n/*@media only screen\r\nand (min-device-width: 768px)\r\nand (max-device-width: 1024px)\r\n{\r\n .modal-wpr{\r\n top:60px;\r\n }\r\n .modal-wpr.showFilters {\r\n top: 118px;\r\n }\r\n}*/\r\n/* Mobile */\r\n/*@media (min-width: 1024px) and (max-width: 1200px) {\r\n .modal-wpr{\r\n top:65px;\r\n }\r\n .walkthrough {\r\n display: none;\r\n }\r\n}*/\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n display: flex !important;\r\n }\r\n .desktop {\r\n display: none !important;\r\n }\r\n\r\n .modal {\r\n // width:338px;\r\n }\r\n\r\n .modal-wpr .modal {\r\n /* margin-top: 140px;\r\n width: 90% !important;*/\r\n //width: 338px;\r\n\r\n .content {\r\n .f-half {\r\n /*flex-direction: row !important;*/\r\n }\r\n .content-container{\r\n //width: 400px;\r\n }\r\n }\r\n\r\n .header {\r\n padding-bottom: 4px;\r\n h2 {\r\n font-size: 14px;\r\n }\r\n }\r\n }\r\n\r\n .heading {\r\n display: none;\r\n }\r\n .h3-fontsize {\r\n padding:0;\r\n }\r\n .p-fontsize {\r\n padding:0;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n display: block;\r\n background: none;\r\n padding: 0 6%;\r\n\r\n .description {\r\n padding: 0;\r\n margin-bottom: 20px;\r\n height: 50px;\r\n }\r\n .button-preview {\r\n display: block;\r\n position: relative;\r\n padding-left: 60px;\r\n width: 100%;\r\n h4 {\r\n padding: 0;\r\n }\r\n .subtitle {\r\n text-align: left;\r\n }\r\n .btn {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n }\r\n }\r\n .subtitle.mobile {\r\n text-align: center;\r\n margin-bottom: 20px;\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShoppingListV2.vue?vue&type=template&id=a89dd5de&scoped=true&\"\nimport script from \"./ShoppingListV2.vue?vue&type=script&lang=js&\"\nexport * from \"./ShoppingListV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShoppingListV2.vue?vue&type=style&index=0&id=a89dd5de&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a89dd5de\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVisible)?_c('div',{class:(\"drawer-container \" + _vm.drawer)},_vm._l((_vm.items),function(comp,id){return _c(comp.component,_vm._b({key:id,tag:\"component\"},'component',comp.attrs,false))}),1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div :class=\"`drawer-container ${drawer}`\" v-if=\"isVisible\">\r\n\t\t<component\r\n\t\t\t\tv-for=\"(comp, id) in items\"\r\n\t\t\t\t:key=\"id\"\r\n\t\t\t\t:is=\"comp.component\"\r\n\t\t\t\tv-bind=\"comp.attrs\"\r\n\t\t/>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapState} from \"vuex\";\r\n\r\nexport default {\r\n\tname: \"DrawerContainer\",\r\n\tprops:{\r\n\t\tdrawer:{\r\n\t\t\ttype: String,\r\n\t\t\trequired: true\r\n\t\t}\r\n\t},\r\n\tcomputed:{\r\n\t\t...mapState('drawer', ['drawerItems']),\r\n\t\tisVisible() {\r\n\t\t\treturn Object.keys(this.items).length > 0;\r\n\t\t},\r\n\t\titems() {\r\n\t\t\treturn this.drawerItems[this.drawer];\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('drawer', ['hasContent'])\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n .feature-header .drawer-container.header {\r\n padding: 1em 1em 0.4em;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawerContainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawerContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DrawerContainer.vue?vue&type=template&id=2eb9e4c4&scoped=true&\"\nimport script from \"./DrawerContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./DrawerContainer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DrawerContainer.vue?vue&type=style&index=0&id=2eb9e4c4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2eb9e4c4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[(!_vm.isInline && _vm.enabled)?_c('sidebar'):_vm._e(),_c('div',{staticClass:\"flyer-selector-controller\",attrs:{\"scrollY\":_vm.scrollY}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dropdown',_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHideDropdown),expression:\"showHideDropdown\"}],class:(\"filter filter-dropdown \" + (_vm.config.name)),scopedSlots:_vm._u([{key:\"btn\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.buttonCaption))]),_c('config-style-injector',{attrs:{\"config\":_vm.config,\"root-selector\":(\".filter-dropdown.\" + (_vm.config.name))}})]},proxy:true},{key:\"body\",fn:function(){return _vm._l((_vm.sections),function(section){return _c('adv-titled-list',{key:section.title,attrs:{\"enable-toggle-all\":!!section.enableToggleAll,\"items\":section.items,\"title\":section.title},on:{\"select\":_vm.onFilterToggle}})})},proxy:true}])},'dropdown',_vm.config.attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bp-dropdown\",class:{ className: _vm.className, 'bp-dropdown--sub': _vm.role }},[_c('span',{class:( _obj = {}, _obj[(\"bp-dropdown__\" + ((_vm.role) ? 'sub' : 'btn'))] = true, _obj[(\"bp-dropdown__\" + ((_vm.role) ? 'sub' : 'btn') + \"--active\")] = !_vm.isHidden, _obj[(_vm.className + \"-bp__btn\")] = _vm.className, _obj[(_vm.className + \"-bp__btn--active\")] = !_vm.isHidden, _obj ),attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm._onToggle,\"mouseenter\":_vm._onBtnEnter,\"mouseleave\":_vm._onBtnLeave,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm._onKeyEnter.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm._closeDropdown.apply(null, arguments)}]}},[_vm._t(\"btn\"),(_vm.isIcon)?_vm._t(\"icon\",function(){\nvar _obj;\nreturn [(_vm.isLoading)?_c('svg',{staticClass:\"bp-dropdown__icon bp-dropdown__icon--spin\",attrs:{\"viewBox\":\"0 0 512 512\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"}})]):_c('svg',{staticClass:\"bp-dropdown__icon\",class:( _obj = {}, _obj[(\"bp-dropdown__icon--\" + _vm.align)] = _vm.align, _obj ),attrs:{\"viewBox\":\"0 0 256 512\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M119.5 326.9L3.5 209.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L128 287.3l100.4-102.2c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L136.5 327c-4.7 4.6-12.3 4.6-17-.1z\"}})])]}):_vm._e()],2),_c('transition',{attrs:{\"name\":\"fade\"}},[(!_vm.isHidden)?_c('div',{staticClass:\"bp-dropdown__body\",class:( _obj$1 = {}, _obj$1[(_vm.className + \"-bp__body\")] = _vm.className, _obj$1['hamburger-dropdown'] = _vm.isCTC, _obj$1 ),style:({ minWidth: (_vm.width + \"px\"), top: (_vm.top + \"px\"), left: (_vm.left + \"px\"), maxHeight: (\"calc(95vh - \" + _vm.top + \"px)\")}),attrs:{\"id\":_vm.id},on:{\"click\":_vm._onBodyClick,\"mouseenter\":_vm._onBodyEnter,\"mouseleave\":_vm._onBodyLeave,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm._onKeyDown.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.isHidden = true}],\"focusout\":_vm._onTab}},[_vm._t(\"body\")],2):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"bp-dropdown\" :class=\"{ className, 'bp-dropdown--sub': role }\">\r\n <span :class=\"{ [`bp-dropdown__${(role) ? 'sub' : 'btn'}`]: true, [`bp-dropdown__${(role) ? 'sub' : 'btn'}--active`]: !isHidden, [`${className}-bp__btn`]: className, [`${className}-bp__btn--active`]: !isHidden }\"\r\n tabindex=\"0\" \r\n @click=\"_onToggle\"\r\n @mouseenter=\"_onBtnEnter\"\r\n @mouseleave=\"_onBtnLeave\"\r\n @keydown.enter=\"_onKeyEnter\"\r\n @keydown.esc=\"_closeDropdown\">\r\n <slot name=\"btn\"></slot>\r\n <slot name=\"icon\" v-if=\"isIcon\">\r\n <svg v-if=\"isLoading\"\r\n class=\"bp-dropdown__icon bp-dropdown__icon--spin\"\r\n viewBox=\"0 0 512 512\">\r\n <path fill=\"currentColor\" d=\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"></path>\r\n </svg>\r\n <svg v-else\r\n class=\"bp-dropdown__icon\"\r\n :class=\"{ [`bp-dropdown__icon--${align}`]: align }\"\r\n viewBox=\"0 0 256 512\">\r\n <path fill=\"currentColor\" d=\"M119.5 326.9L3.5 209.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L128 287.3l100.4-102.2c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L136.5 327c-4.7 4.6-12.3 4.6-17-.1z\"></path>\r\n </svg>\r\n </slot>\r\n </span>\r\n <transition name=\"fade\">\r\n <div v-if=\"!isHidden\"\r\n class=\"bp-dropdown__body\"\r\n :id=\"id\"\r\n :style=\"{ minWidth: `${width}px`, top: `${top}px`, left: `${left}px`, maxHeight: `calc(95vh - ${top}px)`}\"\r\n :class=\"{ [`${className}-bp__body`]: className, 'hamburger-dropdown': isCTC }\"\r\n @click=\"_onBodyClick\"\r\n @mouseenter=\"_onBodyEnter\"\r\n @mouseleave=\"_onBodyLeave\"\r\n @keydown.tab=\"_onKeyDown\"\r\n @keydown.esc=\"isHidden = true\"\r\n @focusout=\"_onTab\">\r\n <slot name=\"body\"></slot>\r\n </div>\r\n </transition>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters} from 'vuex';\r\n export default {\r\n name: 'bp-vuejs-dropdown',\r\n\r\n props: {\r\n role: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n\r\n unscroll: {\r\n type: [HTMLElement, String],\r\n required: false,\r\n default: null\r\n },\r\n\r\n align: {\r\n type: String,\r\n required: false,\r\n default: 'bottom'\r\n },\r\n\r\n x: {\r\n type: Number,\r\n required: false,\r\n default: 0\r\n },\r\n\r\n y: {\r\n type: Number,\r\n required: false,\r\n default: 0\r\n },\r\n\r\n beforeOpen: {\r\n type: Function,\r\n required: false,\r\n default: resolve => resolve()\r\n },\r\n\r\n trigger: {\r\n type: String,\r\n required: false,\r\n default: 'click'\r\n },\r\n\r\n closeOnClick: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n\r\n isIcon: {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n\r\n className: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n initialIsHidden: {\r\n type: Boolean,\r\n default: true,\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n isHidden: this.initialIsHidden,\r\n isLoading: false,\r\n isTabPressed: false,\r\n id: null,\r\n timeout: null,\r\n\r\n top: undefined,\r\n right: undefined,\r\n bottom: undefined,\r\n left: undefined,\r\n width: undefined\r\n }\r\n },\r\n\r\n watch: {\r\n isHidden(isHidden) {\r\n if (this.unscroll) {\r\n const el = (this.unscroll instanceof HTMLElement) ?\r\n this.unscroll : document.querySelector(this.unscroll);\r\n\r\n if (el) {\r\n el.style.overflow = (!isHidden) ? 'hidden' : '';\r\n }\r\n }\r\n }\r\n },\r\n\r\n created() {\r\n const $root = this.$root;\r\n\r\n // --- hide dropdown if other dropdowns show\r\n // --- or document clicked\r\n $root.$on('bp-dropdown:open', () => {\r\n this.isHidden = true;\r\n $root.$emit('dropdown-hidden-updated', true);\r\n });\r\n $root.$on('bp-dropdown:hide', () => {\r\n this.isHidden = true;\r\n $root.$emit('dropdown-hidden-updated', false);\r\n });\r\n\r\n // --- hide dropdown on document click event\r\n if (this.trigger === 'click' && !$root['is-bp-dropdown']) {\r\n Object.defineProperty($root, 'is-bp-dropdown', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: true\r\n });\r\n\r\n document.onmousedown = (e) => {\r\n const target = e.target;\r\n const dropdown = target.closest('.bp-dropdown__btn') || target.closest('.bp-dropdown__body');\r\n\r\n if (!dropdown) {\r\n $root.$emit('bp-dropdown:hide');\r\n }\r\n }\r\n }\r\n\r\n this.id = 'bp-dropdown-' + this.generateRandomId();\r\n },\r\n computed: {\r\n ...mapGetters(['content','isCTC']),\r\n },\r\n methods: {\r\n // --- generate random id for query selector\r\n generateRandomId() {\r\n return Math.random().toString(36).substring(2, 12);\r\n },\r\n\r\n _onToggle(e) {\r\n if (this.trigger !== 'click') {\r\n return;\r\n }\r\n if (!this.isHidden) this.$root.$emit('dropdown-hidden-updated', false);\r\n\r\n this.checkCustomCallback(e);\r\n },\r\n\r\n _onBtnEnter(e) {\r\n if (this.trigger !== 'hover' || !this.isHidden) {\r\n return;\r\n }\r\n\r\n this.checkCustomCallback(e);\r\n },\r\n\r\n _onBtnLeave(e) {\r\n \r\n if (this.trigger !== 'hover') {\r\n return;\r\n }\r\n\r\n if (this.role) {\r\n this.timeout = setTimeout(() => this.isHidden = true, 100);\r\n }\r\n\r\n const to = e.toElement;\r\n if (!to) {\r\n return;\r\n }\r\n\r\n const isDropdown = to.closest('.bp-dropdown__btn') || to.closest('.bp-dropdown__body');\r\n if (isDropdown) {\r\n return;\r\n }\r\n\r\n this.prepare();\r\n },\r\n \r\n _onKeyEnter(e) {\r\n if(e.key === 'Enter') this.prepare() \r\n },\r\n\r\n _closeDropdown() {\r\n this.isHidden = true;\r\n },\r\n \r\n _onBodyClick() {\r\n if (this.closeOnClick) {\r\n this.isHidden = true;\r\n }\r\n },\r\n\r\n _onBodyEnter() {\r\n if (this.timeout) {\r\n clearTimeout(this.timeout);\r\n }\r\n },\r\n\r\n _onBodyLeave(e) {\r\n if (this.trigger !== 'hover') {\r\n return;\r\n }\r\n\r\n const to = e.toElement;\r\n if (!to) {\r\n return;\r\n }\r\n\r\n if (to.closest('.bp-dropdown__btn') || to.closest('.bp-dropdown__sub')) {\r\n return;\r\n }\r\n\r\n this.prepare();\r\n },\r\n\r\n _onKeyDown(e) {\r\n if(e.key === 'Tab' || e.key === 'Esc') this.isTabPressed = true\r\n },\r\n\r\n _onTab(e) {\r\n if (this.isTabPressed && !this.$el.contains(e.relatedTarget)) {\r\n this.isHidden = true;\r\n }\r\n this.isTabPressed = false;\r\n },\r\n\r\n checkCustomCallback(e) {\r\n if (!this.isHidden) {\r\n this.prepare();\r\n return;\r\n }\r\n\r\n // --- custom callback before open\r\n const promise = new Promise(resolve => {\r\n this.isLoading = true;\r\n this.beforeOpen.call(this, resolve);\r\n });\r\n\r\n promise.then(() => {\r\n this.isLoading = false;\r\n if (!e.target.closest('.bp-dropdown__body')) {\r\n // --- hide dropdown if other dropdowns show\r\n this.$root.$emit('bp-dropdown:open');\r\n }\r\n\r\n setTimeout(this.prepare, 0);\r\n });\r\n\r\n promise.catch(() => { throw Error('bp-dropdown promise error') });\r\n },\r\n\r\n prepare() {\r\n this.isHidden = !this.isHidden;\r\n if (!this.isHidden) {\r\n this.$nextTick(() => {\r\n const button = this.$el.firstElementChild;\r\n const container = document.getElementById(this.id);\r\n\r\n this.setWidth(button.offsetWidth);\r\n this.setPosition(button, container);\r\n });\r\n }\r\n },\r\n\r\n setWidth(width) {\r\n this.width = width;\r\n },\r\n\r\n setPosition(btn, body) {\r\n if (!btn || !body) {\r\n return;\r\n }\r\n\r\n const coords = this.getCoords(btn);\r\n\r\n // --- current position\r\n const currentTop = coords.top;\r\n const currentLeft = coords.left;\r\n\r\n // --- btn size\r\n const btnWidth = btn.offsetWidth;\r\n const btnHeight = btn.offsetHeight;\r\n\r\n // --- body size\r\n const bodyWidth = body.offsetWidth;\r\n const bodyHeight = body.offsetHeight;\r\n\r\n switch(this.align) {\r\n case 'top':\r\n this.top = (currentTop + pageYOffset - bodyHeight);\r\n this.left = (currentLeft + pageXOffset);\r\n break;\r\n case 'right':\r\n this.top = (currentTop + pageYOffset);\r\n this.left = (currentLeft + pageXOffset + btnWidth);\r\n break;\r\n case 'bottom':\r\n this.top = (currentTop + pageYOffset + btnHeight);\r\n this.left = (currentLeft + pageXOffset);\r\n break;\r\n case 'left':\r\n this.top = (currentTop + pageYOffset);\r\n this.left = (currentLeft + pageXOffset - bodyWidth);\r\n break;\r\n default:\r\n this.top = (currentTop + pageYOffset + btnHeight);\r\n this.left = (currentLeft + pageXOffset);\r\n break;\r\n }\r\n\r\n this.top += this.y;\r\n this.left += this.x;\r\n },\r\n\r\n getCoords(el) {\r\n el = el.getBoundingClientRect();\r\n return {\r\n top: el.top - pageYOffset,\r\n left: el.left - pageXOffset\r\n };\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .bp-dropdown--sub {\r\n width: 100%;\r\n }\r\n\r\n .bp-dropdown--sub .bp-dropdown__btn,\r\n .bp-dropdown--sub .bp-dropdown__sub {\r\n width: 100%;\r\n }\r\n\r\n .bp-dropdown--sub .bp-dropdown__icon {\r\n margin-left: auto;\r\n }\r\n\r\n .bp-dropdown__btn {\r\n display: inline-flex;\r\n align-items: center;\r\n padding: 3px 5px;\r\n border: 1px solid #efefef;\r\n cursor: pointer;\r\n transition: background-color .1s ease;\r\n }\r\n\r\n .bp-dropdown__sub {\r\n display: inline-flex;\r\n align-items: center;\r\n }\r\n\r\n .bp-dropdown__btn--active {\r\n background-color: #eee;\r\n }\r\n\r\n .bp-dropdown__icon {\r\n display: inline-block;\r\n width: 15px;\r\n height: 15px;\r\n overflow: visible;\r\n transition: transform .1s ease;\r\n }\r\n\r\n .bp-dropdown__icon--spin {\r\n width: 12px;\r\n height: 12px;\r\n animation: spin 2s infinite linear;\r\n }\r\n\r\n .bp-dropdown__icon--top {\r\n transform: rotate(-180deg);\r\n }\r\n\r\n .bp-dropdown__icon--right {\r\n transform: rotate(-90deg);\r\n }\r\n\r\n .bp-dropdown__icon--bottom {\r\n transform: rotate(0);\r\n }\r\n\r\n .bp-dropdown__icon--left {\r\n transform: rotate(-270deg);\r\n }\r\n\r\n .bp-dropdown__btn--active .bp-dropdown__icon--top,\r\n .bp-dropdown__sub--active .bp-dropdown__icon--top {\r\n transform: rotate(0);\r\n }\r\n\r\n .bp-dropdown__btn--active .bp-dropdown__icon--right,\r\n .bp-dropdown__sub--active .bp-dropdown__icon--right {\r\n transform: rotate(-270deg);\r\n }\r\n\r\n .bp-dropdown__btn--active .bp-dropdown__icon--bottom,\r\n .bp-dropdown__sub--active .bp-dropdown__icon--bottom {\r\n transform: rotate(-180deg);\r\n }\r\n\r\n .bp-dropdown__btn--active .bp-dropdown__icon--left,\r\n .bp-dropdown__sub--active .bp-dropdown__icon--left {\r\n transform: rotate(-90deg);\r\n }\r\n\r\n .bp-dropdown__body {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n padding: 6px 8px;\r\n background-color: #fff;\r\n box-shadow: 0 5px 15px -5px rgba(0, 0, 0, .5);\r\n z-index: 9999;\r\n }\r\n\r\n .fade-enter-active, .fade-leave-active {\r\n transition: opacity .1s;\r\n }\r\n\r\n .fade-enter, .fade-leave-to {\r\n opacity: 0;\r\n }\r\n\r\n @keyframes spin {\r\n 0% {\r\n transform:rotate(0)\r\n }\r\n 100% {\r\n transform:rotate(360deg)\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dropdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dropdown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dropdown.vue?vue&type=template&id=2397e9fe&\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Dropdown.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<dropdown v-show=\"showHideDropdown\" :class=\"`filter filter-dropdown ${config.name}`\" v-bind=\"config.attrs\">\r\n\t\t<template #btn>\r\n\t\t\t<span>{{ buttonCaption }}</span>\r\n\t\t\t<config-style-injector\r\n\t\t\t\t\t:config=\"config\"\r\n\t\t\t\t\t:root-selector=\"`.filter-dropdown.${config.name}`\"\r\n\t\t\t/>\r\n\t\t</template>\r\n\t\t<template #body>\r\n\t\t\t<adv-titled-list\r\n\t\t\t\t\tv-for=\"section in sections\"\r\n\t\t\t\t\t:key=\"section.title\"\r\n\t\t\t\t\t\r\n\t\t\t\t\t:enable-toggle-all=\"!!section.enableToggleAll\"\r\n\t\t\t\t\t:items=\"section.items\"\r\n\t\t\t\t\t:title=\"section.title\"\r\n\t\t\t\t\t@select=\"onFilterToggle\"\r\n\t\t\t/>\r\n\t\t</template>\r\n\r\n\t</dropdown>\r\n</template>\r\n\r\n<script>\r\nimport Dropdown from \"@/components/bp-vuejs-dropdown/Dropdown.vue\"\r\nimport AdvTitledList from \"@/components/lists/AdvTitledList.vue\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\nimport {mapActions, mapGetters} from \"vuex\";\r\n\r\nfunction handleFilterType(fType, qo, sid, item, selected = false) {\r\n\tswitch (fType) {\r\n\t\tcase 'boolean':\r\n\t\t\tqo[item.id || item.label] = selected;\r\n\t\t\tbreak;\r\n\t\tcase 'single':\r\n\t\t\tif (selected) {\r\n\t\t\t\tqo[sid] = item.value || item.label\r\n\t\t\t} else {\r\n\t\t\t\tqo[sid] = '';\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tif (!qo[sid]) {\r\n\t\t\t\tqo[sid] = [];\r\n\t\t\t}\r\n\t\t\tif (selected) qo[sid].push(item.value || item.label)\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tname: \"FilterDropdown\",\r\n\tmixins: [featureMixin],\r\n\tcomponents: {ConfigStyleInjector, AdvTitledList, Dropdown},\r\n\tprops: {\r\n\t\tlabel: {\r\n\t\t\ttype: String\r\n\t\t},\r\n\t\tfilterName: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: 'categories'\r\n\t\t}\r\n\t},\r\n\tdata() {\r\n\t\treturn {}\r\n\t},\r\n\tcomputed: {\r\n ...mapGetters('filters',['hasMadeInCanadaOrQuebecProducts']),\r\n showHideDropdown() {\r\n if(this.config.name==='category' || this.config.name==='waysToSave' || this.config.name==='Metro&Moi' || this.config.name==='brand' || this.config.name==='saving' || this.config.name==='HealthyChoices') return true;\r\n return (this.config.name === 'localProducts' && this.hasMadeInCanadaOrQuebecProducts)\r\n },\r\n\t\tsections() {\r\n\t\t\treturn this._config.sections;\r\n\t\t},\r\n\t\tbuttonCaption() {\r\n\t\t\treturn this.config?.label || this.label\r\n\t\t},\r\n\t\tvalue() {\r\n\t\t\tconst v = {};\r\n\t\t\tthis.sections.forEach((section) => {\r\n\t\t\t\tconst sid = section.id;\r\n\t\t\t\tconst format = section?.format ?? 'array';\r\n\t\t\t\tsection.items.forEach((item) => {\r\n\t\t\t\t\thandleFilterType(format, v, sid, item, item.checkbox.selected);\r\n\t\t\t\t\t/*if (item.checkbox.selected) {\r\n\t\t\t\t\t\t\t\t\t\t\tswitch (format) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'boolean':\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[item.id || item.label] = true;\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'single':\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[sid] = item.value || item.label\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(!v[sid]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[sid] = [];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[sid].push(item.value || item.label)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}*/\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t\tconsole.log('Filter Value Changed:', v);\r\n\t\t\treturn v;\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\tonFilterToggle(f) {\r\n\t\t\tthis.triggerEvent({\r\n\t\t\t\tevent: `filter-toggle-event-${this.config.name}`,\r\n\t\t\t\tdata: f\r\n\t\t\t});\r\n\t\t\tconsole.log('Filter Toggle:', f, ' Value:', this.value);\r\n\t\t\t//\tthis.updateQuery(this.value);\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n<style scoped></style>\r\n<style lang=\"scss\">\r\n\r\n[mode='tablet'], [mode='mobile'] {\r\n .filter-dropdown {\r\n\t.bp-dropdown__body {\r\n\t left: calc(10px + 1em) !important;\r\n\t width: calc(100% - (35px + 1em));\r\n\t}\r\n }\r\n}\r\n[mode='tablet'] {\r\n\t.filter-dropdown {\r\n\t\tflex-basis: 20%;\r\n\t}\r\n}\r\n\r\n[mode='mobile'] {\r\n\t.filter-dropdown {\r\n\t\tflex-basis: 47%;\r\n\t\tmax-width: unset !important;\r\n height: 34px;\r\n\t}\r\n}\r\n\r\n\r\n.filter-dropdown {\r\n --button-background-hover: #efefef;\r\n --filter-arrow-color: var(--text-color);\r\n --filter-arrow-color-hover: var(--filter-arrow-color);\r\n --filter-label-min-width: auto;\r\n\tflex-basis: 12%;\r\n /*height: 100%;\r\n width: 100%;\r\n font-size: 14px;*/\r\n\r\n .filter-style-wrapper {\r\n\tdisplay: none;\r\n }\r\n\r\n svg .dropdown-arrow {\r\n\tfill: var(--filter-arrow-color)\r\n }\r\n\r\n &:hover {\r\n\tsvg .dropdown-arrow {\r\n\t fill: var(--filter-arrow-color-hover)\r\n\t}\r\n }\r\n\r\n .bp-dropdown__body {\r\n\tmargin-top: 10px;\r\n\tborder: var(--button-border);\r\n\tborder-bottom-left-radius: 4px;\r\n\tborder-bottom-right-radius: 4px;\r\n\tpadding: 6px 10px;\r\n\toverflow: auto;\r\n\r\n\t/* width */\r\n\t&::-webkit-scrollbar {\r\n\t width: 8px;\r\n\t}\r\n\r\n\t/* Track */\r\n\t&::-webkit-scrollbar-track {\r\n\t //background: #f1f1f1;\r\n\t display: none;\r\n\t}\r\n\r\n\t/* Handle */\r\n\t&::-webkit-scrollbar-thumb {\r\n\t background: #888;\r\n\t border-radius: 6px;\r\n\t}\r\n\r\n\t/* Handle on hover */\r\n\t&::-webkit-scrollbar-thumb:hover {\r\n\t background: #555;\r\n\t}\r\n }\r\n\r\n .bp-dropdown__btn {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n\tbackground: var(--button-background);\r\n\tcolor: var(--button-text-color);\r\n\tborder: 1px solid #AFAFAF;\r\n\tborder-radius: 4px;\r\n\tfont-size: 1em;\r\n\tpadding: 5px 5px 5px 10px;\r\n\theight: 100%;\r\n\twidth: 100%;\r\n\tcolumn-gap: 5px;\r\n\r\n\ttext-align: left;\r\n\r\n\t&:hover, &.bp-dropdown__btn--active {\r\n\t background: var(--button-background-hover);\r\n\t color: var(--button-text-color-hover);\r\n\t}\r\n\r\n\t> span {\r\n\t white-space: nowrap;\r\n\t overflow: hidden;\r\n\t min-width: var(--filter-label-min-width);\r\n\t}\r\n }\r\n\r\n}\r\n\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDropdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDropdown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterDropdown.vue?vue&type=template&id=5aa3f9c9&scoped=true&\"\nimport script from \"./FilterDropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterDropdown.vue?vue&type=script&lang=js&\"\nimport style1 from \"./FilterDropdown.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5aa3f9c9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.enhancedSearchEnabled)?_c('div',{staticClass:\"full-height\"},[_c('ais-index',{attrs:{\"index-name\":(\"categories_\" + _vm.language + \"_\" + _vm.banner)}},[_c('ais-configure',{attrs:{\"filters\":(\"flyerIds:\" + (_vm.currentFlyer.id))}})],1),_c('ais-autocomplete',{attrs:{\"class-names\":{\n\t\t'ais-Autocomplete': 'full-height',\n\t}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n\tvar currentRefinement = ref.currentRefinement;\n\tvar indices = ref.indices;\n\tvar refine = ref.refine;\nreturn [_c('div',_vm._b({staticClass:\"filter search-bar\",on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.focusPrevButton()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.focusNextButton()}]}},'div',_vm.config.attrs,false),[_c('config-style-injector',{attrs:{\"config\":_vm.config,\"root-selector\":\".search-bar\"}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],ref:\"search-input\",attrs:{\"type\":\"text\",\"placeholder\":_vm.content.searchFlyer},domProps:{\"value\":(_vm.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.value=$event.target.value},function($event){return refine($event.currentTarget.value)}],\"focus\":_vm.handleFocus,\"blur\":_vm.hideDropdown,\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleSubmit(_vm.value)}}}),(_vm.value)?_c('span',{staticClass:\"clear\",on:{\"click\":_vm.clearSearch}},[_c('img',{attrs:{\"alt\":\"clear\",\"src\":\"/images/icon-close.svg\"}})]):_vm._e(),(currentRefinement && currentRefinement.length > 1)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dropdownVisible && _vm.checkIfHitsExist(indices)),expression:\"dropdownVisible && checkIfHitsExist(indices)\"}],ref:\"dropdown\",staticClass:\"dropdown\",on:{\"focusin\":_vm.handleFocus,\"focusout\":_vm.hideDropdown}},_vm._l((_vm.filterIndices(indices)),function(index){return _c('ul',{key:index.indexId},[(index.hits && index.hits.length)?_c('li',[_c('h3',[_vm._v(\" \"+_vm._s(_vm.formatName(index.indexName)))]),_c('ul',[_c('li',_vm._l((index.hits),function(hit,i){return _c('button',{key:hit.objectID,on:{\"click\":function($event){return _vm.handleSuggestionClick(hit, refine)},\"focus\":function($event){return _vm.handleButtonFocus(i)}}},[(hit.titleEn)?_c('ais-highlight',{attrs:{\"hit\":hit,\"attribute\":\"titleEn\"}}):_c('ais-highlight',{attrs:{\"hit\":hit,\"attribute\":\"query\"}})],1)}),0)])]):_vm._e()])}),0):_vm._e(),_c('button',{staticClass:\"search-icon\",attrs:{\"aria-label\":\"search\"},on:{\"click\":function($event){return _vm.handleSubmit(_vm.value)}}},[_c('svg',{attrs:{\"viewBox\":\"0 0 512 512\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',[_c('path',{attrs:{\"d\":\"M495,466.2L377.2,348.4c29.2-35.6,46.8-81.2,46.8-130.9C424,103.5,331.5,11,217.5,11C103.4,11,11,103.5,11,217.5 S103.4,424,217.5,424c49.7,0,95.2-17.5,130.8-46.7L466.1,495c8,8,20.9,8,28.9,0C503,487.1,503,474.1,495,466.2z M217.5,382.9 C126.2,382.9,52,308.7,52,217.5S126.2,52,217.5,52C308.7,52,383,126.3,383,217.5S308.7,382.9,217.5,382.9z\",\"fill\":\"currentColor\"}})])])])],1)]}}],null,false,758666047)}),_c('ais-refinement-list',{attrs:{\"attribute\":\"category\"}})],1):_c('div',{staticClass:\"full-height\"},[_c('div',_vm._b({staticClass:\"filter search-bar\"},'div',_vm.config.attrs,false),[_c('config-style-injector',{attrs:{\"config\":_vm.config,\"root-selector\":\".search-bar\"}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],ref:\"search-input\",staticClass:\"search-input\",attrs:{\"aria-label\":_vm.content.searchFlyer,\"placeholder\":_vm.content.searchFlyer,\"tabindex\":\"0\",\"type\":\"text\"},domProps:{\"value\":(_vm.value)},on:{\"blur\":function($event){return _vm.setSearchFocusState(false)},\"focus\":function($event){return _vm.setSearchFocusState(true)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleSubmit(_vm.value)},\"input\":function($event){if($event.target.composing){ return; }_vm.value=$event.target.value}}}),(_vm.value)?_c('span',{staticClass:\"clear\",on:{\"click\":_vm.clearSearch}},[_c('img',{attrs:{\"alt\":\"clear\",\"src\":\"/images/icon-close.svg\"}})]):_vm._e(),_c('button',{staticClass:\"search-icon\",attrs:{\"aria-label\":\"search\"},on:{\"click\":function($event){return _vm.handleSubmit(_vm.value)}}},[_c('svg',{attrs:{\"viewBox\":\"0 0 512 512\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',[_c('path',{attrs:{\"d\":\"M495,466.2L377.2,348.4c29.2-35.6,46.8-81.2,46.8-130.9C424,103.5,331.5,11,217.5,11C103.4,11,11,103.5,11,217.5 S103.4,424,217.5,424c49.7,0,95.2-17.5,130.8-46.7L466.1,495c8,8,20.9,8,28.9,0C503,487.1,503,474.1,495,466.2z M217.5,382.9 C126.2,382.9,52,308.7,52,217.5S126.2,52,217.5,52C308.7,52,383,126.3,383,217.5S308.7,382.9,217.5,382.9z\",\"fill\":\"currentColor\"}})])])])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div>\r\n\t\t<div v-if=\"enhancedSearchEnabled\" class=\"full-height\">\r\n\t\t\t<ais-index :index-name=\"`categories_${language}_${banner}`\">\r\n\t\t\t\t<ais-configure :filters=\"`flyerIds:${currentFlyer.id}`\" />\r\n\t\t\t</ais-index>\r\n\t\t\t<ais-autocomplete :class-names=\"{\r\n\t\t\t'ais-Autocomplete': 'full-height',\r\n\t\t}\">\r\n\t\t\t\t<template v-slot=\"{ currentRefinement, indices, refine }\">\r\n\t\t\t\t\t<div class=\"filter search-bar\" v-bind=\"config.attrs\" @keydown.up.prevent=\"focusPrevButton()\"\r\n\t\t\t\t\t\t@keydown.down.prevent=\"focusNextButton()\">\r\n\t\t\t\t\t\t<config-style-injector :config=\"config\" :root-selector=\"`.search-bar`\" />\r\n\t\t\t\t\t\t<input ref=\"search-input\" type=\"text\" :placeholder=\"content.searchFlyer\" v-model=\"value\"\r\n\t\t\t\t\t\t\t@input=\"refine($event.currentTarget.value)\" @focus=\"handleFocus\" @blur=\"hideDropdown\"\r\n\t\t\t\t\t\t\t@keypress.enter=\"handleSubmit(value)\">\r\n\t\t\t\t\t\t<span v-if=\"value\" class=\"clear\" @click=\"clearSearch\">\r\n\t\t\t\t\t\t\t<img alt=\"clear\" src=\"/images/icon-close.svg\">\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t<div v-if=\"currentRefinement && currentRefinement.length > 1\" class=\"dropdown\"\r\n\t\t\t\t\t\t\tv-show=\"dropdownVisible && checkIfHitsExist(indices)\" @focusin=\"handleFocus\" @focusout=\"hideDropdown\"\r\n\t\t\t\t\t\t\tref=\"dropdown\">\r\n\t\t\t\t\t\t\t<ul v-for=\"index in filterIndices(indices)\" :key=\"index.indexId\">\r\n\t\t\t\t\t\t\t\t<li v-if=\"index.hits && index.hits.length\">\r\n\t\t\t\t\t\t\t\t\t<h3> {{ formatName(index.indexName) }}</h3>\r\n\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t<button v-for=\"(hit, i) in index.hits\" :key=\"hit.objectID\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t@click=\"handleSuggestionClick(hit, refine)\" @focus=\"handleButtonFocus(i)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ais-highlight v-if=\"hit.titleEn\" :hit=\"hit\" attribute=\"titleEn\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ais-highlight v-else :hit=\"hit\" attribute=\"query\" />\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<button aria-label=\"search\" class=\"search-icon\" @click=\"handleSubmit(value)\">\r\n\t\t\t\t\t\t\t<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t<g>\r\n\t\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\t\td=\"M495,466.2L377.2,348.4c29.2-35.6,46.8-81.2,46.8-130.9C424,103.5,331.5,11,217.5,11C103.4,11,11,103.5,11,217.5 S103.4,424,217.5,424c49.7,0,95.2-17.5,130.8-46.7L466.1,495c8,8,20.9,8,28.9,0C503,487.1,503,474.1,495,466.2z M217.5,382.9 C126.2,382.9,52,308.7,52,217.5S126.2,52,217.5,52C308.7,52,383,126.3,383,217.5S308.7,382.9,217.5,382.9z\"\r\n\t\t\t\t\t\t\t\t\t\tfill=\"currentColor\" />\r\n\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</template>\r\n\t\t\t</ais-autocomplete>\r\n\t\t\t<ais-refinement-list attribute=\"category\" />\r\n\t\t</div>\r\n\t\t<div v-else class=\"full-height\">\r\n\t\t\t<div class=\"filter search-bar\" v-bind=\"config.attrs\">\r\n\t\t\t\t<config-style-injector :config=\"config\" :root-selector=\"`.search-bar`\" />\r\n\t\t\t\t<input ref=\"search-input\" v-model=\"value\" :aria-label=\"content.searchFlyer\" :placeholder=\"content.searchFlyer\"\r\n\t\t\t\t\tclass=\"search-input\" tabindex=\"0\" type=\"text\" @blur=\"setSearchFocusState(false)\"\r\n\t\t\t\t\t@focus=\"setSearchFocusState(true)\" @keyup.enter=\"handleSubmit(value)\" />\r\n\t\t\t\t<span v-if=\"value\" class=\"clear\" @click=\"clearSearch\">\r\n\t\t\t\t\t<img alt=\"clear\" src=\"/images/icon-close.svg\">\r\n\t\t\t\t</span>\r\n\t\t\t\t<button aria-label=\"search\" class=\"search-icon\" @click=\"handleSubmit(value)\">\r\n\t\t\t\t\t<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t<g>\r\n\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\td=\"M495,466.2L377.2,348.4c29.2-35.6,46.8-81.2,46.8-130.9C424,103.5,331.5,11,217.5,11C103.4,11,11,103.5,11,217.5 S103.4,424,217.5,424c49.7,0,95.2-17.5,130.8-46.7L466.1,495c8,8,20.9,8,28.9,0C503,487.1,503,474.1,495,466.2z M217.5,382.9 C126.2,382.9,52,308.7,52,217.5S126.2,52,217.5,52C308.7,52,383,126.3,383,217.5S308.7,382.9,217.5,382.9z\"\r\n\t\t\t\t\t\t\t\tfill=\"currentColor\" />\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex';\r\nimport Lytics from \"@/classes/Lytics\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\nexport default {\r\n\tname: \"SearchBarFilter\",\r\n\tcomponents: { ConfigStyleInjector },\r\n\r\n\tmixins: [featureMixin],\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tvalue: '',\r\n\t\t\tdropdownVisible: false,\r\n\t\t\tblurTimeout: null\r\n\t\t}\r\n\t},\r\n\r\n\tprops: {\r\n\t\thidden: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t}\r\n\t},\r\n\r\n\tmounted() {\r\n\t\tthis.value = this._config.value;\r\n\t},\r\n\r\n\tcomputed: {\r\n\t\t...mapGetters(['content', 'highlightResults', 'language']),\r\n\t\t...mapGetters('filters', [\"searchQuery\"]),\r\n\t\t...mapGetters('config', ['features']),\r\n\t\t...mapGetters('landingPage', ['currentFlyer']),\r\n\r\n\t\tenhancedSearchEnabled() {\r\n\t\t\treturn this.features.enhancedSearch;\r\n\t\t},\r\n\r\n\t\tbanner() {\r\n\t\t\treturn AppConfig?.AppConf?.algolia_id\r\n\t\t}\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions(['setSearchInputFocusState', 'toggleSideBarState']),\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\t...mapActions('search', ['showSearchResults', 'queryAlgolia', 'resetQuery']),\r\n\r\n\t\tfilterIndices(indices) {\r\n\t\t\treturn indices.filter(index => index.indexName.includes('query_suggestions') || index.indexName.includes('categories'));\r\n\t\t},\r\n\r\n\t\tcheckIfHitsExist(indicies) {\r\n\t\t\treturn this.filterIndices(indicies).some(index => !!index.hits.length);\r\n\t\t},\r\n\r\n\t\tclearSearch() {\r\n\t\t\tthis.value = '';\r\n\t\t\tthis._config.value = '';\r\n\t\t\tthis.resetQuery();\r\n\t\t},\r\n\r\n\t\thandleSuggestionClick(hit, cb) {\r\n\t\t\tthis.dropdownVisible = false;\r\n\t\t\tthis.value = hit.titleEn || hit.query;\r\n\t\t\tcb(this.value)\r\n\t\t\tthis.handleSubmit(this.value);\r\n\t\t},\r\n\r\n\t\thandleSubmit(val) {\r\n\t\t\tthis.queryAlgolia(val);\r\n\t\t\tthis.$refs['search-input'].blur();\r\n\t\t\tthis._config.value = val;\r\n\t\t\tconsole.log('Search Query', val);\r\n\t\t\tLytics.TriggerSearch(val);\r\n\t\t\tthis.triggerEvent({\r\n\t\t\t\tevent: `filter-event-${this.config.name}`,\r\n\t\t\t\tdata: val\r\n\t\t\t});\r\n\t\t},\r\n\t\tsetSearchFocusState(val) {\r\n\t\t\tthis.setSearchInputFocusState(val)\r\n\t\t\tthis.toggleSideBarState(false);\r\n\t\t},\r\n\t\thandleSearchUpdate(val) {\r\n\t\t\tconsole.log('search update:', val)\r\n\t\t\tthis.showSearchResults(!!val)\r\n\t\t},\r\n\t\thideDropdown() {\r\n\t\t\t// Check if the input field is the active element\r\n\t\t\tif (document.activeElement === this.$refs['search-input']) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// Use setTimeout to delay hiding the dropdown, so the click event on the dropdown item can be fired\r\n\t\t\tthis.blurTimeout = setTimeout(() => {\r\n\t\t\t\tthis.dropdownVisible = false;\r\n\t\t\t}, 100);\r\n\t\t},\r\n\t\thandleFocus() {\r\n\t\t\tclearTimeout(this.blurTimeout);\r\n\t\t\tthis.dropdownVisible = true;\r\n\t\t},\r\n\t\tformatName(name) {\r\n\t\t\tif (name.startsWith('products_')) {\r\n\t\t\t\treturn this.content.search.didYouMean;\r\n\t\t\t}\r\n\t\t\tif (name.startsWith('categories_')) {\r\n\t\t\t\treturn this.content.search.categories;\r\n\t\t\t}\r\n\t\t},\r\n\t\tfocusNextButton() {\r\n\t\t\tconst buttons = this.$refs['dropdown'].querySelectorAll('button')\r\n\t\t\tconst focusedElement = document.activeElement;\r\n\t\t\tconst index = Array.prototype.indexOf.call(buttons, focusedElement);\r\n\t\t\tif (index >= 0 && index < buttons.length - 1) {\r\n\t\t\t\tbuttons[index + 1].focus();\r\n\t\t\t} else if (index === -1) {\r\n\t\t\t\tbuttons[0].focus();\r\n\t\t\t}\r\n\t\t},\r\n\t\tfocusPrevButton() {\r\n\t\t\tconst buttons = this.$refs['dropdown'].querySelectorAll('button')\r\n\t\t\tconst focusedElement = document.activeElement;\r\n\t\t\tconst index = Array.prototype.indexOf.call(buttons, focusedElement);\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tbuttons[index - 1].focus();\r\n\t\t\t}\r\n\t\t},\r\n\t\thandleButtonFocus(index) {\r\n\t\t\tthis.focusedButton = index\r\n\t\t},\r\n\t},\r\n\twatch: {\r\n\t\tsearchQuery(val) {\r\n\t\t\tconsole.log('search query update:', val)\r\n\t\t\tthis.value = this.config.value;\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.clear {\r\n\tposition: absolute;\r\n\tright: 40px;\r\n\ttop: 51%;\r\n\ttransform: translateY(-50%);\r\n\tline-height: 1em;\r\n\tfont-family: monospace;\r\n\tcursor: pointer;\r\n}\r\n\r\n.search-bar {\r\n\tdisplay: flex;\r\n\tposition: relative;\r\n\tmin-width: 130px;\r\n\t/* flex-grow: 1; */\r\n\tmin-height: 34px;\r\n\theight: 100%;\r\n}\r\n\r\n.search-bar input {\r\n\tflex-basis: 100%;\r\n\tborder: 1px solid #AFAFAF;\r\n\tborder-radius: 4px;\r\n\t;\r\n\t/* border-color: var(--tertiary-color); */\r\n\tfont-size: 16px;\r\n\t/*height: 35px;*/\r\n\ttext-overflow: ellipsis;\r\n\tpadding-left: 1em;\r\n\tpadding-right: 1em;\r\n\twidth: 100%;\r\n}\r\n\r\n.search-bar .search-icon {\r\n\twidth: 30px;\r\n\tcolor: #fff;\r\n\tbackground-color: var(--secondary-color);\r\n\tborder: none;\r\n\tborder-radius: 4px;\r\n\tposition: absolute;\r\n\tright: 0;\r\n\theight: 100%;\r\n\tmin-height: auto;\r\n display: flex;\r\n justify-content: center;\r\n\r\n\tsvg {\r\n\t\twidth: 80%\r\n\t}\r\n\r\n}\r\n\r\n.search-bar .search-icon:hover {\r\n\tfilter: brightness(90%);\r\n}\r\n\r\n\r\nli {\r\n\tlist-style: none;\r\n\tpadding: 0;\r\n\tmargin-bottom: 5px;\r\n}\r\n\r\nh3 {\r\n\tmargin: 0;\r\n\tmargin-bottom: 10px;\r\n\tfont-weight: bold;\r\n}\r\n\r\n.search-bar button {\r\n\tborder: none;\r\n\twidth: 100%;\r\n\tjustify-content: start;\r\n\ttext-align: left;\r\n\tmin-height: auto;\r\n}\r\n\r\n.dropdown {\r\n\tposition: absolute;\r\n\ttop: 103%;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tbackground: white;\r\n\tborder: 1px solid #aaa;\r\n\tz-index: 104;\r\n\tpadding: 15px 8px;\r\n\tborder-bottom-left-radius: 4px;\r\n\tborder-bottom-right-radius: 4px;\r\n\tbox-shadow: 0 3px 10px 0 rgba(0, 0, 0, 0.2);\r\n\r\n\tli button {\r\n\t\tborder: none !important;\r\n\t\tjustify-content: start;\r\n\t\tflex-direction: row;\r\n\r\n\t\tspan {\r\n\t\t\ttext-align: left;\r\n\t\t\ttext-wrap: wrap;\r\n\t\t\tfont-size: 1.2em;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.full-height {\r\n\theight: 100%;\r\n}\r\n</style>\r\n\r\n<style>\r\n.ais-Highlight-highlighted {\r\n\tcolor: var(--secondary-color);\r\n\tbackground: none;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBarFilter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBarFilter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchBarFilter.vue?vue&type=template&id=74abb4db&scoped=true&\"\nimport script from \"./SearchBarFilter.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchBarFilter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchBarFilter.vue?vue&type=style&index=0&id=74abb4db&lang=scss&scoped=true&\"\nimport style1 from \"./SearchBarFilter.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74abb4db\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('config-style-injector',{attrs:{\"config\":_vm.config,\"root-selector\":(\".toggle-button-filter.\" + _vm.className)}}),(_vm.enabled)?_c('button',_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showMetroToggleButton),expression:\"showMetroToggleButton\"}],class:(\"btn toggle-button-filter \" + _vm.className + \" \" + _vm.buttonClass),attrs:{\"id\":\"toggleButton\",\"toggle\":_vm.featureConfig.value? 'on':'off'},on:{\"click\":_vm.toggle,\"dblclick\":_vm.handleDoubleClick,\"mouseup\":function($event){if('button' in $event && $event.button !== 1){ return null; }return _vm.handleTripleClick.apply(null, arguments)}}},'button',_vm.config.attrs,false),[_vm._v(_vm._s(_vm.buttonLabel)+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment>\r\n <config-style-injector :config=\"config\" :root-selector=\"`.toggle-button-filter.${className}`\"/>\r\n <button v-if=\"enabled\" v-show=\"showMetroToggleButton\" id='toggleButton' :class=\"`btn toggle-button-filter ${className} ${buttonClass}`\" :toggle=\"featureConfig.value? 'on':'off'\"\r\n v-bind=\"config.attrs\" @click=\"toggle\" @dblclick=\"handleDoubleClick\"\r\n @click.middle=\"handleTripleClick\">{{ buttonLabel }}\r\n </button>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\nimport {mapActions, mapGetters} from \"vuex\";\r\nimport {kebabCase} from \"lodash\";\r\n\r\n\r\nexport default {\r\n name: \"ToggleButtonFilter\",\r\n components: {ConfigStyleInjector},\r\n mixins: [featureMixin],\r\n methods: {\r\n ...mapActions('events', ['triggerEvent']),\r\n toggle() {\r\n this.featureConfig.value = !this.featureConfig.value;\r\n\r\n this.triggerEvent({\r\n event: `filter-toggle-event-${this.config.name}`,\r\n data: {selected: !!this.featureConfig.value, label: this.config.label}\r\n });\r\n },\r\n\r\n handleDoubleClick() {\r\n setTimeout(() => {\r\n this.featureConfig.value = !this.featureConfig.value;\r\n }, 200)\r\n }\r\n },\r\n computed: {\r\n\r\n ...mapGetters('config', ['branding']),\r\n ...mapGetters('filters',['hasMadeInCanadaOrQuebecProducts']),\r\n\r\n className() {\r\n\t\treturn kebabCase(this.config.name);\r\n },\r\n\r\n buttonLabel() {\r\n return this.config.label;\r\n },\r\n buttonClass() {\r\n return this.buttonLabel === 'ThunderBucks' ? 'thunderbucks-button' : '';\r\n },\r\n showMetroToggleButton() {\r\n if(this.config.name==='cedar' || this.config.name==='beWell') return true;\r\n return ((this.config.name === 'madeInCanada' || this.config.name==='madeInQuebec') && this.hasMadeInCanadaOrQuebecProducts)\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scope>\r\n.toggle-button-filter.Points.thunderbucks-button {\r\n font-family: unset;\r\n font-size: 1em;\r\n color: red;\r\n padding: 0 28px;\r\n background: unset;\r\n background-color: white;\r\n background-image: url(\"/images/Thunderbucks-Button-container-new.svg\");\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n background-size: cover;\r\n}\r\n\r\n.toggle-button-filter.Points.thunderbucks-button[toggle='on'] {\r\n background-color: white;\r\n color: red;\r\n}\r\n\r\n[mode=\"mobile\"] {\r\n\t.toggle-button-filter {\r\n\t\tflex-basis:47%;\r\n\t}\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleButtonFilter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleButtonFilter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToggleButtonFilter.vue?vue&type=template&id=0cdf5716&\"\nimport script from \"./ToggleButtonFilter.vue?vue&type=script&lang=js&\"\nexport * from \"./ToggleButtonFilter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToggleButtonFilter.vue?vue&type=style&index=0&scope=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.clearSearch }),expression:\"{ content: content.clearSearch }\"}],staticClass:\"btn clear-filter-button\",attrs:{\"aria-label\":_vm.content.clearSearch,\"disabled\":!_vm.hasFilters,\"data-tour-item\":\"clearFilter\"},on:{\"click\":_vm.clearFilters}},[_c('svg',{staticClass:\"icon feather feather-refresh-ccw\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('path',{attrs:{\"d\":\"M1 4v6h6M23 20v-6h-6\"}}),_c('path',{attrs:{\"d\":\"M20.49 9A9 9 0 005.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 013.51 15\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <button class=\"btn clear-filter-button\" :aria-label=\"content.clearSearch\" v-tooltip=\"{ content: content.clearSearch }\" @click=\"clearFilters\" :disabled=\"!hasFilters\" data-tour-item=\"clearFilter\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"icon feather feather-refresh-ccw\">\r\n <path d=\"M1 4v6h6M23 20v-6h-6\"/>\r\n <path d=\"M20.49 9A9 9 0 005.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 013.51 15\"/>\r\n </svg>\r\n </button>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters} from \"vuex\";\r\n\r\nexport default {\r\n name: \"ClearFilterButton\",\r\n\tmethods: {\r\n\t\t...mapActions('filters', ['clearFilters'])\r\n\t},\r\n\tcomputed:{\r\n ...mapGetters(['content']),\r\n\t\t...mapGetters('filters', ['hasFilters'])\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n<style lang=\"scss\">\r\n[mode='mobile'],\r\n[mode='tablet'] {\r\n .clear-filter-button{\r\n margin-left: auto;\r\n }\r\n\r\n}</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearFilterButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearFilterButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClearFilterButton.vue?vue&type=template&id=d318a216&scoped=true&\"\nimport script from \"./ClearFilterButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ClearFilterButton.vue?vue&type=script&lang=js&\"\nimport style1 from \"./ClearFilterButton.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d318a216\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"separator\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"separator\"></div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\tname: \"Separator\"\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.separator {\r\n\tborder-left:1px dotted black;\r\n\t/*margin:0px 10px;*/\r\n\theight: 35px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Separator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Separator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Separator.vue?vue&type=template&id=28550d64&scoped=true&\"\nimport script from \"./Separator.vue?vue&type=script&lang=js&\"\nexport * from \"./Separator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Separator.vue?vue&type=style&index=0&id=28550d64&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28550d64\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({staticClass:\"control-panel\"},'div',_vm.config.attrs,false),[_c('config-style-injector',{attrs:{\"root-selector\":\".control-panel\",\"config\":_vm.config}}),_vm._l((_vm.controls),function(control,i){return _c(control.component,_vm._b({key:control.name + i,tag:\"component\"},'component',control.attrs,false))})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"control-panel\" v-bind=\"config.attrs\">\r\n\t <config-style-injector\r\n\t\t\t :root-selector=\"`.control-panel`\"\r\n\t\t\t :config=\"config\"\r\n\t />\r\n\t\t<component\r\n\t\t\t\tv-for=\"(control, i) in controls\"\r\n\t\t\t\t:is=\"control.component\"\r\n\t\t\t\t:key=\"control.name + i\"\r\n\t\t\t\tv-bind=\"control.attrs\"\r\n\t\t/>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {controlDict, FeatureJsonToComponents} from \"@/features/FeatureHelper\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\n\r\n\r\nexport default {\r\n\tname: \"ControlPanel\",\r\n\tcomponents: {ConfigStyleInjector},\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'header.controls'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tcontrols() {\r\n\t\t\treturn FeatureJsonToComponents(this.config.items, controlDict);\r\n\t\t\t/*const o = [];\r\n\t\t\tconst dict = controlDict\r\n\t\t\t// console.log('Controls Dict:', dict)\r\n\t\t\tfor (const name of this.config.items) {\r\n\t\t\t\tif (dict[name]) {\r\n\t\t\t\t\to.push({name, component: dict[name]});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn o;*/\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.control-panel {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\t/*justify-content: flex-end;\r\n\tflex-grow: 1;*/\r\n\t/*column-gap: 0.5em;*/\r\n\r\n & > * {\r\n\t\tmargin-right: 0.5em\r\n }\r\n\r\n & > *:last-child {\r\n\t\tmargin-right: 0;\r\n }\r\n\r\n}\r\n/*.btn {\r\n\tbackground: none;\r\n\tborder: 1px solid #BBB;\r\n\tborder-radius: 4px;\r\n\tpadding: 5px;\r\n\t!*margin: 0 4px;*!\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\theight: 34px;\r\n\tmin-width: 34px;\r\n\tcolor: #333;\r\n\ttransition: none;\r\n}*/\r\n\r\n/*.btn * {\r\n\ttransition: none;\r\n}\r\n\r\n.btn:hover {\r\n\tbackground-color: #EEE;\r\n}*/\r\n\r\n/*.btn.selected {\r\n\tbackground-color: var(--primary-color);\r\n\tcolor: var(--primary-text-color);\r\n}\r\n\r\n.btn.selected:hover {\r\n\tbackground-color: var(--primary-color);\r\n}*/\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ControlPanel.vue?vue&type=template&id=6c294f7f&scoped=true&\"\nimport script from \"./ControlPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./ControlPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ControlPanel.vue?vue&type=style&index=0&id=6c294f7f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c294f7f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({staticClass:\"control-panel-v2\"},'div',_vm.config.attrs,false),[_c('config-style-injector',{attrs:{\"root-selector\":\".control-panel\",\"config\":_vm.config}}),_vm._l((_vm.controls),function(control,i){return _c(control.component,_vm._b({key:control.name + i,tag:\"component\"},'component',control.attrs,false))})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"control-panel-v2\" v-bind=\"config.attrs\">\r\n\t <config-style-injector\r\n\t\t\t :root-selector=\"`.control-panel`\"\r\n\t\t\t :config=\"config\"\r\n\t />\r\n\t\t<component\r\n\t\t\t\tv-for=\"(control, i) in controls\"\r\n\t\t\t\t:is=\"control.component\"\r\n\t\t\t\t:key=\"control.name + i\"\r\n\t\t\t\tv-bind=\"control.attrs\"\r\n\t\t/>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {controlDictV2, FeatureJsonToComponents} from \"@/features/FeatureHelper\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\n\r\n\r\nexport default {\r\n\tname: \"ControlPanelV2\",\r\n\tcomponents: {ConfigStyleInjector},\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'header.controlsV2'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tcontrols() {\r\n\t\t\treturn FeatureJsonToComponents(this.config.items, controlDictV2);\r\n\t\t\t/*const o = [];\r\n\t\t\tconst dict = controlDict\r\n\t\t\t// console.log('Controls Dict:', dict)\r\n\t\t\tfor (const name of this.config.items) {\r\n\t\t\t\tif (dict[name]) {\r\n\t\t\t\t\to.push({name, component: dict[name]});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn o;*/\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n [mode=\"desktop\"] {\r\n\t.control-panel-v2 {\r\n\t\t& > * {\r\n\t border-right: 1px dashed black !important;\r\n border-radius: 0;\r\n\t\tpadding: 0 11px;\r\n\t\r\n &:hover {\r\n\t\tbackground: none;\r\n\t\t span.panel-label {\r\n\t\t\tcolor: var(--secondary-color)\r\n\t\t }\r\n\t}\r\n }\r\n .zoom-controls.separator-left {\r\n\tborder-left: 1px dashed black !important;\r\n\t\r\n }\r\n\t}\r\n}\r\n[mode=\"tablet\"] ,[mode=\"mobile\"]{\r\n\t.control-panel-v2 {\r\n\t\t& > * {\r\n\t\tmargin-right: 0.6em;\r\n\t\t}\r\n\t\tdiv.comp-list-item {\r\n\t\t\tbutton, a {\r\n\t\t\tborder: none !important;\r\n\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\t\tbutton, a {\r\n\t\t\tborder: 1px solid #AFAFAF !important;\r\n\t\t\tborder-radius: 5px !important;\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t.separator-right {\r\n\t\t\t\tborder-right:1px dashed black;\r\n\t\t\t\tpadding-left: 10px;\r\n\t\t\t}\r\n\t\t.panel-label {\r\n\t\tdisplay: none !important;\r\n\t}\r\n\t\r\n }\r\n \r\n}\r\n.control-panel-v2 {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tcolor: #545454 !important;\r\n\r\n\t\r\n\t\tspan{\r\n\t\t\tdisplay: block;\r\n\t\t\ttext-align: center;\r\n\t\t\tcolor: #545454 ;\r\n\t\t\tfont-size: 14px;\r\n\t\t\ttext-wrap: nowrap;\r\n\t}\r\n\r\n & > *:last-child {\r\n\tborder-right: none !important;\r\n\t\tmargin-right: 0;\r\n }\r\n button {\r\n\tborder: none;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\t\r\n\r\n }\r\n\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanelV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanelV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ControlPanelV2.vue?vue&type=template&id=08e6a61c&\"\nimport script from \"./ControlPanelV2.vue?vue&type=script&lang=js&\"\nexport * from \"./ControlPanelV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ControlPanelV2.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({staticClass:\"filter-panel\"},'div',_vm.config.attrs,false),[_c('config-style-injector',{attrs:{\"config\":_vm.config,\"root-selector\":\".filter-panel\"}}),_vm._t(\"left\"),_vm._l((_vm.filters),function(filter){return _c(filter.component,{key:filter.name,tag:\"component\",attrs:{\"feature-config\":filter.config}})}),(_vm.showClearFilterButton)?_c('clear-filter-button'):_vm._e(),_c('toggle-filter-button',{class:{active: _vm.mobileDropdown},on:{\"click\":function($event){_vm.mobileDropdown = !_vm.mobileDropdown}}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn toggle-filter-button\",on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"16px\",\"height\":\"16px\",\"viewBox\":\"0 0 16 16\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"icon-filter\")]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"SuperC---Mobile---4-Column---FR\",\"fill\":\"currentColor\",\"transform\":\"translate(-341.000000, -138.000000)\",\"fill-rule\":\"nonzero\"}},[_c('path',{attrs:{\"d\":\"M356.927045,138.443182 C357.055646,138.753788 357.002693,139.018939 356.768184,139.238636 L351.174023,144.840909 L351.174023,153.272727 C351.174023,153.590909 351.02651,153.814394 350.731483,153.943182 C350.633141,153.981061 350.538581,154 350.447804,154 C350.243554,154 350.073347,153.92803 349.93718,153.784091 L347.032302,150.875 C346.888571,150.731061 346.816705,150.560606 346.816705,150.363636 L346.816705,144.840909 L341.222544,139.238636 C340.988036,139.018939 340.935082,138.753788 341.063684,138.443182 C341.192285,138.147727 341.415446,138 341.733167,138 L356.257561,138 C356.575282,138 356.798443,138.147727 356.927045,138.443182 Z\",\"id\":\"icon-filter\",\"transform\":\"translate(348.995364, 146.000000) scale(-1, 1) translate(-348.995364, -146.000000) \"}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <button class=\"btn toggle-filter-button\" @click=\"$emit('click')\">\r\n <svg class=\"icon\" width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <title>icon-filter</title>\r\n <g id=\"TransCon-Direction\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g id=\"SuperC---Mobile---4-Column---FR\" fill=\"currentColor\" transform=\"translate(-341.000000, -138.000000)\" fill-rule=\"nonzero\">\r\n <path d=\"M356.927045,138.443182 C357.055646,138.753788 357.002693,139.018939 356.768184,139.238636 L351.174023,144.840909 L351.174023,153.272727 C351.174023,153.590909 351.02651,153.814394 350.731483,153.943182 C350.633141,153.981061 350.538581,154 350.447804,154 C350.243554,154 350.073347,153.92803 349.93718,153.784091 L347.032302,150.875 C346.888571,150.731061 346.816705,150.560606 346.816705,150.363636 L346.816705,144.840909 L341.222544,139.238636 C340.988036,139.018939 340.935082,138.753788 341.063684,138.443182 C341.192285,138.147727 341.415446,138 341.733167,138 L356.257561,138 C356.575282,138 356.798443,138.147727 356.927045,138.443182 Z\" id=\"icon-filter\" transform=\"translate(348.995364, 146.000000) scale(-1, 1) translate(-348.995364, -146.000000) \"></path>\r\n </g>\r\n </g>\r\n </svg>\r\n </button>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"ToggleFilterButton\"\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n .toggle-filter-button.btn {\r\n\r\n .icon {\r\n color: #545454;\r\n }\r\n &.active {\r\n &:hover {\r\n background-color: var(--primary-color);\r\n }\r\n background-color: var(--primary-color);\r\n .icon{\r\n color: var(--primary-text-color)\r\n }\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFilterButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFilterButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToggleFilterButton.vue?vue&type=template&id=44589471&\"\nimport script from \"./ToggleFilterButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ToggleFilterButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToggleFilterButton.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"filter-panel\" v-bind=\"config.attrs\">\r\n\t\t<config-style-injector :config=\"config\" :root-selector=\"`.filter-panel`\"/>\r\n\t\t<slot name=\"left\"/>\r\n\r\n\t\t<component\r\n\t\t\t\t:is=\"filter.component\"\r\n\t\t\t\tv-for=\"filter in filters\"\r\n\t\t\t\t:key=\"filter.name\"\r\n\t\t\t\t:feature-config=\"filter.config\"\r\n\t\t/>\r\n\r\n\t\t<clear-filter-button v-if=\"showClearFilterButton\"/>\r\n\t\t<toggle-filter-button :class=\"{active: mobileDropdown}\" @click=\"mobileDropdown = !mobileDropdown\"/>\r\n\r\n\t\t<!-- <transition name=\"fade\">\r\n\t\t\t\t\t\t\t<div v-if=\"mobileDropdown\" class=\"filter-mobile-dropdown\">\r\n\t\t\t\t\t\t\t\t<filter-dropdown\r\n\t\t\t\t\t\t\t\t\t\tv-for=\"filter in dropdowns\"\r\n\t\t\t\t\t\t\t\t\t\t:key=\"filter.name\"\r\n\t\t\t\t\t\t\t\t\t\t:featureConfig=\"filter\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<clear-filter-button @click=\"clearFilters\" :disabled=\"!hasFilters\"/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</transition>-->\r\n\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters} from \"vuex\";\r\nimport ClearFilterButton from \"@/features/filters/buttons/ClearFilterButton.vue\";\r\nimport ToggleFilterButton from \"@/components/buttons/ToggleFilterButton.vue\";\r\nimport ToggleButtonFilter from \"@/features/filters/ToggleButtonFilter.vue\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {filterDict} from \"@/features/FeatureHelper\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\n\r\n\r\nexport default {\r\n\tname: \"FilterPanel\",\r\n\tmixins: [featureMixin],\r\n\tcomponents: {ConfigStyleInjector, ToggleButtonFilter, ToggleFilterButton, ClearFilterButton},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tmobileDropdown: false,\r\n\t\t\tfeaturePath: 'filterPanel'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('filters', [\"searchQuery\", \"hasFilters\", \"filtersByType\", \"filtersByName\"]),\r\n\t\tfilters() {\r\n\t\t\tconst o = [];\r\n\t\t\tconst filterNames = this.config.filters;\r\n\t\t\tconst filters = this.filtersByName;\r\n\t\t\tconst dict = filterDict;\r\n\t\t\tfor (let i = 0; i < filterNames.length; i++) {\r\n\t\t\t\tconst name = filterNames[i];\r\n\t\t\t\tif (filters[name] && dict[filters[name]?.type]) {\r\n\t\t\t\t\to.push({name, component: dict[filters[name].type], config: filters[name]});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn o;\r\n\t\t},\r\n\t\tshowClearFilterButton() {\r\n\t\t\treturn this.config?.showClearButton;\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('search', ['filterProducts']),\r\n\t\t...mapActions('filters', [\"clearFilters\"]),\r\n\t},\r\n\t/*watch: {\r\n\t\t\tsearchQuery(val) {\r\n\t\t\t\t//this.filterProducts(val);\r\n\t\t\t}\r\n\t\t}*/\r\n}\r\n</script>\r\n\r\n\r\n<style lang=\"scss\">\r\n\r\n/*[mode='tablet'], [mode='mobile'] {\r\n .filter-panel {\r\n flex-wrap: wrap;\r\n padding: 10px;\r\n background-color: #F2F2F2;\r\n\r\n > .desktop-only {\r\n display: none;\r\n }\r\n\r\n > .clear-filter-button {\r\n display: none;\r\n }\r\n\r\n .btn.toggle-filter-button {\r\n display: flex;\r\n }\r\n\r\n .filter-mobile-dropdown {\r\n display: flex;\r\n }\r\n }\r\n}*/\r\n\r\n.filter-panel {\r\n display: flex;\r\n //column-gap: 5px;\r\n position: relative;\r\n font-size: 14px;\r\n flex-grow: 1;\r\n\r\n > * {\r\n\tmargin-right: 5px;\r\n }\r\n\r\n .header-drawer & {\r\n\twidth: 100%;\r\n\r\n\t[mode='mobile'] &, [mode='tablet'] & {\r\n\t .filter {\r\n\t\twidth: 100%;\r\n\t }\r\n\t}\r\n\r\n }\r\n\r\n .filter-mobile-dropdown {\r\n\tdisplay: none;\r\n\twidth: 100%;\r\n\ttop: 100%;\r\n\tz-index: 1000;\r\n\tbackground-color: #fff;\r\n\tcolumn-gap: 5px;\r\n\tpadding: 1em;\r\n\tflex-wrap: wrap;\r\n\trow-gap: 15px;\r\n\tbox-shadow: 0px 2px 6px 0px rgb(0 0 0 / 20%);\r\n\tmargin-top: 0.7em;\r\n\tborder-radius: 4px;\r\n\r\n\t> * {\r\n\t flex-grow: 1;\r\n\t flex-basis: 40%;\r\n\t height: 2.5em;\r\n\t}\r\n\r\n\t.clear-filter-button {\r\n\t flex-basis: 35px;\r\n\t}\r\n\r\n }\r\n\r\n .btn.toggle-filter-button {\r\n\tdisplay: none;\r\n }\r\n\r\n /*.btn {\r\n background: none;\r\n border: 1px solid #BBB;\r\n border-radius: 4px;\r\n padding: 5px;\r\n !*margin: 0 4px;*!\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: calc(2.5em + 1px);\r\n min-width: calc(2.5em + 1px);\r\n\r\n transition: none;\r\n\r\n &[disabled] {\r\n pointer-events: none;\r\n opacity: 0.5;\r\n }\r\n\r\n }\r\n\r\n .btn * {\r\n transition: none;\r\n }\r\n\r\n .btn:hover {\r\n background-color: #EEE;\r\n }*/\r\n\r\n .fade-enter-active, .fade-leave-active {\r\n\ttransform-origin: top;\r\n\ttransition: opacity .1s, transform .1s;\r\n }\r\n\r\n .fade-enter {\r\n\topacity: 0;\r\n\ttransform: scaleY(0);\r\n }\r\n\r\n\r\n .fade-leave-to {\r\n\topacity: 0;\r\n\ttransform: scaleY(0);\r\n }\r\n\r\n}\r\n\r\n.drawer-container.header {\r\n .filter-panel {\r\n\t> * {\r\n\t margin-bottom: 10px;\r\n\t}\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterPanel.vue?vue&type=template&id=8a7c51d4&\"\nimport script from \"./FilterPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FilterPanel.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mast-head logo-wpr\"},[_c('div',{staticClass:\"logo-masthead\",on:{\"click\":_vm.handleLogoClick}},[_c('img',_vm._b({},'img',_vm.config.logo,false))]),_c('flyer-validity-dates',{attrs:{\"feature-config\":_vm.config.validityDates}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"date-container\",domProps:{\"innerHTML\":_vm._s(_vm.formatted)}},'span',_vm.config.attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<span class=\"date-container\" v-html=\"formatted\" v-bind=\"config.attrs\"></span>\r\n</template>\r\n<script>\r\n\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {mapGetters} from \"vuex\";\r\nimport moment from \"moment\";\r\n\r\n\r\nfunction parse(str, data) {\r\n\t const m = str?.match(/\\{(.*?)\\}/g);\r\n\t m?.forEach((itm) => {\r\n\t\t // console.log('Parsing:', itm);\r\n\t\t const d = itm.slice(1, -1).split('|').map((i) => i.trim());\r\n\t\t if(!data[d[0]]) return;\r\n\t\t str = str.replace(itm, data[d[0]].format(d[1]));\r\n\t })\r\n\treturn str;\r\n}\r\n\r\nexport default {\r\n\tname: \"FlyerValidityDates\",\r\n\tmixins:[featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'mastHead.validityDates'\r\n\t\t}\r\n\t},\r\n\tcomputed:{\r\n\t\t...mapGetters('landingPage', ['currentFlyer']),\r\n\t\t...mapGetters(['language']),\r\n\t\tstartDate() {\r\n\t\t\treturn moment.utc(this.currentFlyer.startDate).locale(this.language);\r\n\t\t},\r\n\t\tendDate() {\r\n\t\t\treturn moment.utc(this.currentFlyer.endDate).locale(this.language);\r\n\t\t},\r\n\t\tformatted(){\r\n\t\t\treturn parse(this.config.format, { startDate: this.startDate, endDate: this.endDate})\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerValidityDates.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerValidityDates.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlyerValidityDates.vue?vue&type=template&id=5ecec1ea&scoped=true&\"\nimport script from \"./FlyerValidityDates.vue?vue&type=script&lang=js&\"\nexport * from \"./FlyerValidityDates.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ecec1ea\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"mast-head logo-wpr\">\r\n\t\t<div class=\"logo-masthead\" @click=\"handleLogoClick\">\r\n\t\t\t<img v-bind=\"config.logo\">\r\n\t\t</div>\r\n\t\t<flyer-validity-dates :feature-config=\"config.validityDates\" />\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\nimport moment from \"moment\";\r\nimport 'moment/locale/fr-ca';\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport FlyerValidityDates from \"@/features/masthead/FlyerValidityDates.vue\";\r\n\r\nexport default {\r\n\tname: \"LogoDatePanel\",\r\n\tcomponents: { FlyerValidityDates },\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'mastHead'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('config', ['branding', 'features']),\r\n\t\t...mapGetters(['content', 'language']),\r\n\t\t...mapGetters('landingPage', ['currentFlyer', 'previewDate']),\r\n\t\t...mapGetters('screen', ['displayMode']),\r\n\r\n\t},\r\n\tmethods: {\r\n\t\thandleLogoClick() {\r\n\t\t\tthis.$emit('to-top');\r\n\t\t\tif (this.config?.logo?.href) {\r\n\t\t\t\twindow.open(this.config?.logo?.href, this.config?.logo?.target || '_self');\r\n\t\t\t}\r\n\t\t},\r\n\t\tformatDate(date) {\r\n\t\t\tconst m = moment.utc(date);\r\n\t\t\tm.locale(this.language);\r\n\t\t\treturn `<span style='color:#000; font-weight: 500;'>${m.format('dddd')}</span> <span style='color:#EE3124'>${m.format('MMMM D')}</span>`;\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.logo-wpr {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-self: flex-start;\r\n\tmargin-right: auto;\r\n\t// flex-grow: 1;\r\n\t//column-gap: 0.5em;\r\n}\r\n\r\n.logo-masthead {\r\n\tcursor: pointer;\r\n\r\n\timg {\r\n\t\theight: 66px;\r\n\t}\r\n}\r\n\r\n.date-container {\r\n\tletter-spacing: 0.5px;\r\n\tmargin-right: 30px;\r\n\tfont-size: 15px;\r\n\ttext-wrap: nowrap;\r\n\tmargin-left: 1.5em ;\r\n\r\n}\r\n\r\n[mode='tablet'],\r\n[mode='mobile'] {\r\n\t.date-container {\r\n\t\tmargin-top: 8px !important;\r\n\r\n\t}\r\n}\r\n\r\n\r\n.date {\r\n\t// font-weight: 700;\r\n\tfont-family: inherit;\r\n\tmargin-right: 10px;\r\n\t//color: var(--primary-color);\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoDatePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoDatePanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LogoDatePanel.vue?vue&type=template&id=fcc401a8&scoped=true&\"\nimport script from \"./LogoDatePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./LogoDatePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LogoDatePanel.vue?vue&type=style&index=0&id=fcc401a8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fcc401a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip.bottom-center\",value:({ content: _vm.content.helpToolTip}),expression:\"{ content: content.helpToolTip}\",modifiers:{\"bottom-center\":true}}],staticClass:\"btn help\",attrs:{\"data-tour-item\":\"help\",\"tabindex\":\"0\"},on:{\"click\":_vm.toggleHelpComponent}},'button',_vm.config.attrs,false),[(!_vm.showHelp)?_c('img',{attrs:{\"alt\":\"help\",\"src\":\"/images/icon-help-grey1-withoutborder.svg\"}}):_c('svg',{attrs:{\"height\":\"34px\",\"version\":\"1.1\",\"viewBox\":\"0 0 34 34\",\"width\":\"34px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',{attrs:{\"id\":\"Tutorial---Tool-tips\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"Help---Vertical-Scrolling\",\"transform\":\"translate(-1179.000000, -23.000000)\"}},[_c('g',{attrs:{\"id\":\"icon-help-red\",\"transform\":\"translate(1179.000000, 23.000000)\"}},[_c('rect',{attrs:{\"id\":\"Rectangle-Copy-5\",\"fill\":\"currentColor\",\"height\":\"33\",\"rx\":\"4\",\"stroke\":\"\",\"width\":\"33\",\"x\":\"0.5\",\"y\":\"0.5\"}}),_c('path',{attrs:{\"id\":\"icon-help\",\"d\":\"M17,9 C12.584,9 9,12.584 9,17 C9,21.416 12.584,25 17,25 C21.416,25 25,21.416 25,17 C25,12.584 21.416,9 17,9 Z M17.8,22.6 L16.2,22.6 L16.2,21 L17.8,21 L17.8,22.6 Z M19.456,16.4 L18.736,17.136 C18.16,17.72 17.8,18.2 17.8,19.4 L16.2,19.4 L16.2,19 C16.2,18.12 16.56,17.32 17.136,16.736 L18.128,15.728 C18.424,15.44 18.6,15.04 18.6,14.6 C18.6,13.72 17.88,13 17,13 C16.12,13 15.4,13.72 15.4,14.6 L13.8,14.6 C13.8,12.832 15.232,11.4 17,11.4 C18.768,11.4 20.2,12.832 20.2,14.6 C20.2,15.304 19.912,15.944 19.456,16.4 Z\",\"fill\":\"#FFFFFF\",\"fill-rule\":\"nonzero\"}})])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<button v-tooltip.bottom-center=\"{ content: content.helpToolTip}\" class=\"btn help\" data-tour-item=\"help\" tabindex=\"0\" @click=\"toggleHelpComponent\" v-bind=\"config.attrs\">\r\n\t\t<img v-if=\"!showHelp\" alt=\"help\" src=\"/images/icon-help-grey1-withoutborder.svg\"/>\r\n\t\t<svg v-else height=\"34px\" version=\"1.1\" viewBox=\"0 0 34 34\" width=\"34px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t<g id=\"Tutorial---Tool-tips\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t<g id=\"Help---Vertical-Scrolling\" transform=\"translate(-1179.000000, -23.000000)\">\r\n\t\t\t\t\t<g id=\"icon-help-red\" transform=\"translate(1179.000000, 23.000000)\">\r\n\t\t\t\t\t\t<rect id=\"Rectangle-Copy-5\" fill=\"currentColor\" height=\"33\" rx=\"4\" stroke=\"\" width=\"33\" x=\"0.5\" y=\"0.5\"></rect>\r\n\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\tid=\"icon-help\"\r\n\t\t\t\t\t\t\t\td=\"M17,9 C12.584,9 9,12.584 9,17 C9,21.416 12.584,25 17,25 C21.416,25 25,21.416 25,17 C25,12.584 21.416,9 17,9 Z M17.8,22.6 L16.2,22.6 L16.2,21 L17.8,21 L17.8,22.6 Z M19.456,16.4 L18.736,17.136 C18.16,17.72 17.8,18.2 17.8,19.4 L16.2,19.4 L16.2,19 C16.2,18.12 16.56,17.32 17.136,16.736 L18.128,15.728 C18.424,15.44 18.6,15.04 18.6,14.6 C18.6,13.72 17.88,13 17,13 C16.12,13 15.4,13.72 15.4,14.6 L13.8,14.6 C13.8,12.832 15.232,11.4 17,11.4 C18.768,11.4 20.2,12.832 20.2,14.6 C20.2,15.304 19.912,15.944 19.456,16.4 Z\" fill=\"#FFFFFF\" fill-rule=\"nonzero\"></path>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</g>\r\n\t\t\t</g>\r\n\t\t</svg>\r\n\t</button>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"HelpButton\",\r\n\tmixins: [featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'helpScreen.toggleButton'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['content']),\r\n\t\t...mapState('toast', ['showHelp'])\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('toast', ['toggleHelp']),\r\n\r\n\t\ttoggleHelpComponent() {\r\n\t\t\tconsole.log('Toggle Help');\r\n\t\t\tthis.toggleHelp();\r\n\t\t\tthis.$parent.isHidden = !this.$parent.isHidden\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.btn.help {\r\n\tpadding: 0;\r\n\twidth: 35px;\r\n\tcursor: pointer;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelpButton.vue?vue&type=template&id=bdcf3088&scoped=true&\"\nimport script from \"./HelpButton.vue?vue&type=script&lang=js&\"\nexport * from \"./HelpButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HelpButton.vue?vue&type=style&index=0&id=bdcf3088&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bdcf3088\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip.bottom-center\",value:({ content: _vm.content.helpToolTip }),expression:\"{ content: content.helpToolTip }\",modifiers:{\"bottom-center\":true}}],staticClass:\"btn help\",attrs:{\"data-tour-item\":\"help\",\"tabindex\":\"0\"},on:{\"click\":_vm.toggleHelpComponent}},'button',_vm.config.attrs,false),[(!_vm.showHelp)?_c('svg',{attrs:{\"role\":\"img\",\"width\":\"24px\",\"height\":\"24px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"helpIcon\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM12 7.75C11.3787 7.75 10.875 8.25368 10.875 8.875C10.875 9.28921 10.5392 9.625 10.125 9.625C9.71079 9.625 9.375 9.28921 9.375 8.875C9.375 7.42525 10.5503 6.25 12 6.25C13.4497 6.25 14.625 7.42525 14.625 8.875C14.625 9.58584 14.3415 10.232 13.883 10.704C13.7907 10.7989 13.7027 10.8869 13.6187 10.9708C13.4029 11.1864 13.2138 11.3753 13.0479 11.5885C12.8289 11.8699 12.75 12.0768 12.75 12.25V13C12.75 13.4142 12.4142 13.75 12 13.75C11.5858 13.75 11.25 13.4142 11.25 13V12.25C11.25 11.5948 11.555 11.0644 11.8642 10.6672C12.0929 10.3733 12.3804 10.0863 12.6138 9.85346C12.6842 9.78321 12.7496 9.71789 12.807 9.65877C13.0046 9.45543 13.125 9.18004 13.125 8.875C13.125 8.25368 12.6213 7.75 12 7.75ZM12 17C12.5523 17 13 16.5523 13 16C13 15.4477 12.5523 15 12 15C11.4477 15 11 15.4477 11 16C11 16.5523 11.4477 17 12 17Z\",\"fill\":\"#545454\"}})]):_c('svg',{attrs:{\"role\":\"img\",\"height\":\"34px\",\"version\":\"1.1\",\"viewBox\":\"0 0 34 34\",\"width\":\"34px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"aria-labelledby\":\"helpIcon\"}},[_c('title',{attrs:{\"id\":\"helpIcon\"}},[_vm._v(\"Help Icon\")]),_c('g',{attrs:{\"id\":\"Tutorial---Tool-tips\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"Help---Vertical-Scrolling\",\"transform\":\"translate(-1179.000000, -23.000000)\"}},[_c('g',{attrs:{\"id\":\"icon-help-red\",\"transform\":\"translate(1179.000000, 23.000000)\"}},[_c('rect',{attrs:{\"id\":\"Rectangle-Copy-5\",\"fill\":\"currentColor\",\"height\":\"33\",\"rx\":\"4\",\"stroke\":\"\",\"width\":\"33\",\"x\":\"0.5\",\"y\":\"0.5\"}}),_c('path',{attrs:{\"id\":\"icon-help\",\"d\":\"M17,9 C12.584,9 9,12.584 9,17 C9,21.416 12.584,25 17,25 C21.416,25 25,21.416 25,17 C25,12.584 21.416,9 17,9 Z M17.8,22.6 L16.2,22.6 L16.2,21 L17.8,21 L17.8,22.6 Z M19.456,16.4 L18.736,17.136 C18.16,17.72 17.8,18.2 17.8,19.4 L16.2,19.4 L16.2,19 C16.2,18.12 16.56,17.32 17.136,16.736 L18.128,15.728 C18.424,15.44 18.6,15.04 18.6,14.6 C18.6,13.72 17.88,13 17,13 C16.12,13 15.4,13.72 15.4,14.6 L13.8,14.6 C13.8,12.832 15.232,11.4 17,11.4 C18.768,11.4 20.2,12.832 20.2,14.6 C20.2,15.304 19.912,15.944 19.456,16.4 Z\",\"fill\":\"#FFFFFF\",\"fill-rule\":\"nonzero\"}})])])])]),_c('span',[_vm._v(_vm._s(_vm.content.helpBtn))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div>\r\n\t\t<button v-tooltip.bottom-center=\"{ content: content.helpToolTip }\" class=\"btn help\" data-tour-item=\"help\"\r\n\t\t\ttabindex=\"0\" @click=\"toggleHelpComponent\" v-bind=\"config.attrs\">\r\n\t\t\t<svg v-if=\"!showHelp\" role=\"img\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"helpIcon\">\r\n\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n\t\t\t\t\td=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM12 7.75C11.3787 7.75 10.875 8.25368 10.875 8.875C10.875 9.28921 10.5392 9.625 10.125 9.625C9.71079 9.625 9.375 9.28921 9.375 8.875C9.375 7.42525 10.5503 6.25 12 6.25C13.4497 6.25 14.625 7.42525 14.625 8.875C14.625 9.58584 14.3415 10.232 13.883 10.704C13.7907 10.7989 13.7027 10.8869 13.6187 10.9708C13.4029 11.1864 13.2138 11.3753 13.0479 11.5885C12.8289 11.8699 12.75 12.0768 12.75 12.25V13C12.75 13.4142 12.4142 13.75 12 13.75C11.5858 13.75 11.25 13.4142 11.25 13V12.25C11.25 11.5948 11.555 11.0644 11.8642 10.6672C12.0929 10.3733 12.3804 10.0863 12.6138 9.85346C12.6842 9.78321 12.7496 9.71789 12.807 9.65877C13.0046 9.45543 13.125 9.18004 13.125 8.875C13.125 8.25368 12.6213 7.75 12 7.75ZM12 17C12.5523 17 13 16.5523 13 16C13 15.4477 12.5523 15 12 15C11.4477 15 11 15.4477 11 16C11 16.5523 11.4477 17 12 17Z\"\r\n\t\t\t\t\tfill=\"#545454\" />\r\n\t\t\t</svg>\r\n\t\t\t<svg v-else role=\"img\" height=\"34px\" version=\"1.1\" viewBox=\"0 0 34 34\" width=\"34px\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"helpIcon\">\r\n\t\t\t\t<title id=\"helpIcon\">Help Icon</title>\r\n\t\t\t\t<g id=\"Tutorial---Tool-tips\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t\t<g id=\"Help---Vertical-Scrolling\" transform=\"translate(-1179.000000, -23.000000)\">\r\n\t\t\t\t\t\t<g id=\"icon-help-red\" transform=\"translate(1179.000000, 23.000000)\">\r\n\t\t\t\t\t\t\t<rect id=\"Rectangle-Copy-5\" fill=\"currentColor\" height=\"33\" rx=\"4\" stroke=\"\" width=\"33\" x=\"0.5\"\r\n\t\t\t\t\t\t\t\ty=\"0.5\"></rect>\r\n\t\t\t\t\t\t\t<path id=\"icon-help\"\r\n\t\t\t\t\t\t\t\td=\"M17,9 C12.584,9 9,12.584 9,17 C9,21.416 12.584,25 17,25 C21.416,25 25,21.416 25,17 C25,12.584 21.416,9 17,9 Z M17.8,22.6 L16.2,22.6 L16.2,21 L17.8,21 L17.8,22.6 Z M19.456,16.4 L18.736,17.136 C18.16,17.72 17.8,18.2 17.8,19.4 L16.2,19.4 L16.2,19 C16.2,18.12 16.56,17.32 17.136,16.736 L18.128,15.728 C18.424,15.44 18.6,15.04 18.6,14.6 C18.6,13.72 17.88,13 17,13 C16.12,13 15.4,13.72 15.4,14.6 L13.8,14.6 C13.8,12.832 15.232,11.4 17,11.4 C18.768,11.4 20.2,12.832 20.2,14.6 C20.2,15.304 19.912,15.944 19.456,16.4 Z\"\r\n\t\t\t\t\t\t\t\tfill=\"#FFFFFF\" fill-rule=\"nonzero\"></path>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</g>\r\n\t\t\t</svg>\r\n\t\t\t<span>{{ content.helpBtn }}</span>\r\n\t\t</button>\r\n\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport Lytics from \"@/classes/Lytics\";\r\n\r\nexport default {\r\n\tname: \"HelpButtonV2\",\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'helpScreen.toggleButton'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['content']),\r\n\t\t...mapState('toast', ['showHelp'])\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('toast', ['toggleHelp']),\r\n\r\n\t\ttoggleHelpComponent() {\r\n\t\t\tconsole.log('Toggle Help');\r\n\t\t\tthis.toggleHelp();\r\n\t\t\tthis.$parent.isHidden = !this.$parent.isHidden\r\n\t\t\tLytics.TriggerHelpClick();\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\ndiv {\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\r\n\t.btn.help {\r\n\t\tpadding: 0;\r\n\t\tcursor: pointer;\r\n\t\tborder: none;\r\n\t\tbackground: none;\r\n\t\tflex-direction: row;\r\n\r\n\t\tsvg {\r\n\t\t\tmargin-left: 3px;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\n.btn.help:hover>* {\r\n\tcolor: var(--secondary-color);\r\n}</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpButtonV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpButtonV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelpButtonV2.vue?vue&type=template&id=40b178de&scoped=true&\"\nimport script from \"./HelpButtonV2.vue?vue&type=script&lang=js&\"\nexport * from \"./HelpButtonV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HelpButtonV2.vue?vue&type=style&index=0&id=40b178de&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40b178de\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"zoom-group\",attrs:{\"data-tour-item\":\"zoom\"}},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.zoomOut}),expression:\"{ content: content.zoomOut}\"}],staticClass:\"zoom-out\",attrs:{\"aria-label\":_vm.content.zoomOut,\"disabled\":_vm.currentZoom === _vm.zoomMin,\"tabindex\":\"0\"},on:{\"click\":_vm.zoomOutComponent}},[_c('img',{attrs:{\"alt\":_vm.content.zoomOut,\"src\":\"/images/icon-decrease.svg\"}})]),_c('div',{staticClass:\"zoom-percent\"},[_vm._v(_vm._s(_vm.displayedZoomPercentage)+\"%\")]),_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.zoomIn}),expression:\"{ content: content.zoomIn}\"}],staticClass:\"zoom-in\",attrs:{\"aria-label\":_vm.content.zoomIn,\"disabled\":_vm.currentZoom === _vm.zoomMax,\"tabindex\":\"0\"},on:{\"click\":_vm.zoomInComponent}},[_c('img',{attrs:{\"alt\":_vm.content.zoomIn,\"src\":\"/images/icon-increase.svg\"}})]),_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.resetZoom}),expression:\"{ content: content.resetZoom}\"}],staticClass:\"zoom-100\",attrs:{\"aria-label\":_vm.content.resetZoom,\"disabled\":_vm.currentZoom === 0},on:{\"click\":_vm.zoomNormalComponent}},[_c('svg',{attrs:{\"height\":\"16\",\"width\":\"22\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M18 4l-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 01-2.8-.7l-1.46 1.46A7.93 7.93 0 0011 16c4.42 0 8-3.58 8-8h3l-4-4zM5 8c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0011 0C6.58 0 3 3.58 3 8H0l4 4 4-4H5z\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"zoom-group\" data-tour-item=\"zoom\">\r\n\t\t<button v-tooltip=\"{ content: content.zoomOut}\" :aria-label=\"content.zoomOut\" :disabled=\"currentZoom === zoomMin\" class=\"zoom-out\"\r\n\t\t tabindex=\"0\" @click=\"zoomOutComponent\"><img\r\n\t\t\t\t:alt=\"content.zoomOut\" src=\"/images/icon-decrease.svg\"/></button>\r\n\t\t<div class=\"zoom-percent\">{{ displayedZoomPercentage }}%</div>\r\n\t\t<button v-tooltip=\"{ content: content.zoomIn}\" :aria-label=\"content.zoomIn\" :disabled=\"currentZoom === zoomMax\" class=\"zoom-in\"\r\n\t\t tabindex=\"0\" @click=\"zoomInComponent\"><img\r\n\t\t\t\t:alt=\"content.zoomIn\" src=\"/images/icon-increase.svg\"/></button>\r\n\t\t<button v-tooltip=\"{ content: content.resetZoom}\" :aria-label=\"content.resetZoom\" :disabled=\"currentZoom === 0\"\r\n\t\t class=\"zoom-100\" @click=\"zoomNormalComponent\">\r\n\t\t\t<svg height=\"16\" width=\"22\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t<path\r\n\t\t\t\t\t\td=\"M18 4l-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 01-2.8-.7l-1.46 1.46A7.93 7.93 0 0011 16c4.42 0 8-3.58 8-8h3l-4-4zM5 8c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0011 0C6.58 0 3 3.58 3 8H0l4 4 4-4H5z\"\r\n\t\t\t\t\t\tfill=\"currentColor\" fill-rule=\"nonzero\"/>\r\n\t\t\t</svg>\r\n\t\t</button>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\n\r\nexport default {\r\n\tname: \"ZoomControls\",\r\n\tcomputed: {\r\n\t\t...mapGetters(['content']),\r\n\t\t...mapState('scale', ['zoomMin', 'zoomMax', 'zoomLevel']),\r\n\t\tcurrentZoom() {\r\n\t\t\treturn this.zoomLevel;\r\n\t\t},\r\n\t\tdisplayedZoomPercentage() {\r\n\t\t\treturn Math.round(100 + (this.currentZoom * 100));\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('scale', ['zoomIn', 'zoomOut', 'zoomNormal']),\r\n\t\tzoomInComponent() {\r\n\t\t\tthis.zoomIn();\r\n\t\t\tthis.$emit('change', this.currentZoom);\r\n\t\t},\r\n\t\tzoomOutComponent() {\r\n\t\t\tthis.zoomOut();\r\n\t\t\tthis.$emit('change', this.currentZoom);\r\n\t\t},\r\n\t\tzoomNormalComponent() {\r\n\t\t\tthis.zoomNormal();\r\n\t\t\tthis.$emit('change', this.currentZoom);\r\n\t\t},\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.zoom-group {\r\n\tdisplay: flex;\r\n\tjustify-self: end;\r\n\t/*margin: 0 2px;*/\r\n\tborder: 1px solid #BBB;\r\n\tborder-radius: 4px;\r\n\theight: 34px;\r\n}\r\n\r\n.zoom-group > * {\r\n\tbackground: none;\r\n\tborder: 0;\r\n}\r\n\r\n.zoom-in {\r\n\tfont-size: 0px;\r\n\tline-height: 0;\r\n}\r\n\r\n.zoom-in:disabled, .zoom-out:disabled, button:disabled {\r\n\topacity: 0.5;\r\n\tcursor: inherit;\r\n\tpointer-events: none;\r\n}\r\n\r\n.zoom-percent {\r\n\tfont-size: 14px;\r\n\tcolor: #545454;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tpadding-bottom: 1px;\r\n\twidth: 3em;\r\n}\r\n\r\n.zoom-100 {\r\n\tfont-size: 14px;\r\n\tpadding: 0 8px;\r\n\tborder-left: 1px solid #BBB;\r\n}\r\n\r\n.zoom-group > button {\r\n\tborder-radius: 0px;\r\n}\r\n\r\n.zoom-out {\r\n\tfont-size: 0px;\r\n\tline-height: 0;\r\n}\r\n\r\n.zoom-in, .zoom-out {\r\n\tpadding: 0px;\r\n\twidth: 30px;\r\n}\r\n\r\n.zoom-out img, .zoom-in img {\r\n\tvertical-align: middle;\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomControls.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomControls.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ZoomControls.vue?vue&type=template&id=b7e06414&scoped=true&\"\nimport script from \"./ZoomControls.vue?vue&type=script&lang=js&\"\nexport * from \"./ZoomControls.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ZoomControls.vue?vue&type=style&index=0&id=b7e06414&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b7e06414\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"zoom-controls\",class:_vm.isMetro ? 'separator-left' : '',attrs:{\"data-tour-item\":\"zoom\"}},[_c('div',{staticClass:\"zoom-group\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.zoomOut }),expression:\"{ content: content.zoomOut }\"}],staticClass:\"zoom-out\",attrs:{\"aria-label\":_vm.content.zoomOut,\"disabled\":_vm.currentZoom === _vm.zoomMin,\"tabindex\":\"0\"},on:{\"click\":_vm.zoomOutComponent}},[_c('svg',{attrs:{\"role\":\"img\",\"viewBox\":\"258.5786 204.5633 26 26\",\"width\":\"16\",\"height\":\"16\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"zoomOut\"}},[_c('title',{attrs:{\"id\":\"zoomOut\"}},[_vm._v(\"Zoom Out Icon\")]),_c('g',{attrs:{\"transform\":\"matrix(1, 0, 0, 1, 17.262638092041016, -19.728729248046875)\"}},[_c('g',[_c('ellipse',{staticStyle:{\"fill\":\"rgb(216, 216, 216)\",\"stroke\":\"rgb(104, 163, 57)\",\"stroke-width\":\"0px\",\"paint-order\":\"stroke\"},attrs:{\"cx\":\"254.316\",\"cy\":\"237.292\",\"rx\":\"13\",\"ry\":\"13\"}})]),_c('path',{staticStyle:{\"fill\":\"rgb(84, 84, 84)\",\"stroke\":\"rgb(84, 84, 84)\"},attrs:{\"d\":\"M 248.5 237.909 L 260.5 237.909\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])])]),_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.resetZoom }),expression:\"{ content: content.resetZoom }\"}],staticClass:\"zoom-100\",attrs:{\"aria-label\":_vm.content.resetZoom,\"disabled\":_vm.currentZoom === 0},on:{\"click\":_vm.zoomNormalComponent}},[_c('svg',{attrs:{\"role\":\"img\",\"width\":\"22px\",\"height\":\"16px\",\"viewBox\":\"0 0 22 16\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"aria-labelledby\":\"resetIcon\"}},[_c('title',{attrs:{\"id\":\"resetIcon\"}},[_vm._v(\"Reset Icon\")]),_c('g',{attrs:{\"id\":\"Search-&-Filter\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"CT-Digital-CTC-Flyer---Vertical-Scrolling---FilteredSearch-Copy\",\"transform\":\"translate(-1442.000000, -32.000000)\",\"fill\":\"#545454\",\"fill-rule\":\"nonzero\"}},[_c('path',{attrs:{\"d\":\"M1460,36 L1456,40 L1459,40 C1459,43.31 1456.31,46 1453,46 C1451.99,46 1451.03,45.75 1450.2,45.3 L1448.74,46.76 C1449.97,47.54 1451.43,48 1453,48 C1457.42,48 1461,44.42 1461,40 L1464,40 L1460,36 Z M1447,40 C1447,36.69 1449.69,34 1453,34 C1454.01,34 1454.97,34.25 1455.8,34.7 L1457.26,33.24 C1456.03,32.46 1454.57,32 1453,32 C1448.58,32 1445,35.58 1445,40 L1442,40 L1446,44 L1450,40 L1447,40 Z\",\"id\":\"icon-reset\"}})])])])]),_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.zoomIn }),expression:\"{ content: content.zoomIn }\"}],staticClass:\"zoom-in\",attrs:{\"aria-label\":_vm.content.zoomIn,\"disabled\":_vm.currentZoom === _vm.zoomMax,\"tabindex\":\"0\"},on:{\"click\":_vm.zoomInComponent}},[_c('svg',{attrs:{\"role\":\"img\",\"viewBox\":\"231.452 178.053 26 26\",\"width\":\"16\",\"height\":\"16\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"zoomIn\"}},[_c('title',{attrs:{\"id\":\"zoomIn\"}},[_vm._v(\"Zoom In Icon\")]),_c('g',[_c('ellipse',{staticStyle:{\"fill\":\"rgb(216, 216, 216)\",\"stroke\":\"rgb(104, 163, 57)\",\"stroke-width\":\"0\",\"paint-order\":\"stroke\"},attrs:{\"cx\":\"244.452\",\"cy\":\"191.053\",\"rx\":\"13\",\"ry\":\"13\"}}),_c('path',{staticStyle:{\"stroke\":\"rgb(84, 84, 84)\"},attrs:{\"d\":\"M 238 191 L 250 191 M 244 185 L 244 197\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])])])]),_c('span',{staticClass:\"panel-label\"},[_vm._v(_vm._s(_vm.content.pageZoom))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"zoom-controls\" :class=\"isMetro ? 'separator-left' : ''\" data-tour-item=\"zoom\">\r\n\t\t<div class=\"zoom-group\" >\r\n\r\n\t\t\t<button v-tooltip=\"{ content: content.zoomOut }\" :aria-label=\"content.zoomOut\"\r\n\t\t\t\t:disabled=\"currentZoom === zoomMin\" class=\"zoom-out\" tabindex=\"0\" @click=\"zoomOutComponent\">\r\n\t\t\t\t<svg role=\"img\" viewBox=\"258.5786 204.5633 26 26\" width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"zoomOut\">\r\n\t\t\t\t\t<title id=\"zoomOut\">Zoom Out Icon</title>\r\n\t\t\t\t\t<g transform=\"matrix(1, 0, 0, 1, 17.262638092041016, -19.728729248046875)\">\r\n\t\t\t\t\t\t<g>\r\n\t\t\t\t\t\t\t<ellipse\r\n\t\t\t\t\t\t\t\tstyle=\"fill: rgb(216, 216, 216); stroke: rgb(104, 163, 57); stroke-width: 0px; paint-order: stroke;\"\r\n\t\t\t\t\t\t\t\tcx=\"254.316\" cy=\"237.292\" rx=\"13\" ry=\"13\" />\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<path d=\"M 248.5 237.909 L 260.5 237.909\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n\t\t\t\t\t\t\tstroke-linejoin=\"round\" style=\"fill: rgb(84, 84, 84); stroke: rgb(84, 84, 84);\" />\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</svg>\r\n\t\t\t</button>\r\n\t\t\t<!-- <div class=\"zoom-percent\">{{ displayedZoomPercentage }}%</div> -->\r\n\t\t\t<button v-tooltip=\"{ content: content.resetZoom }\" :aria-label=\"content.resetZoom\" :disabled=\"currentZoom === 0\"\r\n\t\t\t\tclass=\"zoom-100\" @click=\"zoomNormalComponent\">\r\n\t\t\t\t<svg role=\"img\" width=\"22px\" height=\"16px\" viewBox=\"0 0 22 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"resetIcon\">\r\n\t\t\t\t\t<title id=\"resetIcon\">Reset Icon</title>\r\n\t\t\t\t\t<g id=\"Search-&-Filter\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n\t\t\t\t\t\t<g id=\"CT-Digital-CTC-Flyer---Vertical-Scrolling---FilteredSearch-Copy\"\r\n\t\t\t\t\t\t\ttransform=\"translate(-1442.000000, -32.000000)\" fill=\"#545454\" fill-rule=\"nonzero\">\r\n\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\td=\"M1460,36 L1456,40 L1459,40 C1459,43.31 1456.31,46 1453,46 C1451.99,46 1451.03,45.75 1450.2,45.3 L1448.74,46.76 C1449.97,47.54 1451.43,48 1453,48 C1457.42,48 1461,44.42 1461,40 L1464,40 L1460,36 Z M1447,40 C1447,36.69 1449.69,34 1453,34 C1454.01,34 1454.97,34.25 1455.8,34.7 L1457.26,33.24 C1456.03,32.46 1454.57,32 1453,32 C1448.58,32 1445,35.58 1445,40 L1442,40 L1446,44 L1450,40 L1447,40 Z\"\r\n\t\t\t\t\t\t\t\tid=\"icon-reset\"></path>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</svg>\r\n\t\t\t</button>\r\n\t\t\t<button v-tooltip=\"{ content: content.zoomIn }\" :aria-label=\"content.zoomIn\" :disabled=\"currentZoom === zoomMax\"\r\n\t\t\t\tclass=\"zoom-in\" tabindex=\"0\" @click=\"zoomInComponent\">\r\n\t\t\t\t<svg role=\"img\" viewBox=\"231.452 178.053 26 26\" width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\taria-labelledby=\"zoomIn\">\r\n\t\t\t\t\t<title id=\"zoomIn\">Zoom In Icon</title>\r\n\t\t\t\t\t<g>\r\n\t\t\t\t\t\t<ellipse\r\n\t\t\t\t\t\t\tstyle=\"fill: rgb(216, 216, 216); stroke: rgb(104, 163, 57); stroke-width: 0; paint-order: stroke;\"\r\n\t\t\t\t\t\t\tcx=\"244.452\" cy=\"191.053\" rx=\"13\" ry=\"13\" />\r\n\t\t\t\t\t\t<path d=\"M 238 191 L 250 191 M 244 185 L 244 197\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n\t\t\t\t\t\t\tstroke-linejoin=\"round\" style=\"stroke: rgb(84, 84, 84);\" />\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</svg>\r\n\t\t\t</button>\r\n\r\n\t\t</div>\r\n\t\t<span class=\"panel-label\">{{ content.pageZoom }}</span>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport Lytics from \"@/classes/Lytics\";\r\n\r\nexport default {\r\n\tname: \"ZoomControlsV2\",\r\n\tcomputed: {\r\n\t\t...mapGetters(['content', 'isMetro']),\r\n\t\t...mapState('scale', ['zoomMin', 'zoomMax', 'zoomLevel']),\r\n\t\tcurrentZoom() {\r\n\t\t\treturn this.zoomLevel;\r\n\t\t},\r\n\t\tdisplayedZoomPercentage() {\r\n\t\t\treturn Math.round(100 + (this.currentZoom * 100));\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('scale', ['zoomIn', 'zoomOut', 'zoomNormal', 'setManualZoom']),\r\n\t\tzoomInComponent() {\r\n\t\t\tthis.setManualZoom(true)\r\n\t\t\tthis.zoomIn();\r\n\t\t\tthis.$emit('change', this.currentZoom);\r\n\t\t\tLytics.TriggerZoom(true)\r\n\t\t},\r\n\t\tzoomOutComponent() {\r\n\t\t\tthis.setManualZoom(true)\r\n\t\t\tthis.zoomOut();\r\n\t\t\tthis.$emit('change', this.currentZoom);\r\n\t\t\tLytics.TriggerZoom(false)\r\n\t\t},\r\n\t\tzoomNormalComponent() {\r\n\t\t\tthis.setManualZoom(true)\r\n\t\t\tthis.zoomNormal();\r\n\t\t\tthis.$emit('change', this.currentZoom);\r\n\t\t},\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.zoom-controls {\r\n\r\n\t&:hover {\r\n\t\tcolor: var(--secondary-color);\r\n\r\n\t\t.zoom-100 svg g path {\r\n\t\t\tfill: var(--secondary-color);\r\n\t\t\tstroke: none !important;\r\n\t\t}\r\n\r\n\t\tsvg g path {\r\n\t\t\tstroke: var(--secondary-color) !important;\r\n\t\t}\r\n\r\n\t\tsvg g ellipse {\r\n\t\t\tfill: var(--secondary-color) !important;\r\n\t\t\topacity: 0.1 !important;\r\n\t\t}\r\n\t}\r\n\r\n\t.zoom-group {\r\n\t\tdisplay: flex;\r\n\t\tjustify-self: end;\r\n\r\n\t\t>* {\r\n\t\t\tbackground: none;\r\n\t\t\tborder: 0;\r\n\t\t\tmin-height: unset;\r\n\t\t}\r\n\r\n\t\t>button {\r\n\t\t\tborder-radius: 0;\r\n\t\t\tmin-width: 15px;\r\n\r\n\t\t\t&:disabled {\r\n\t\t\t\topacity: 0.5;\r\n\t\t\t\tcursor: inherit;\r\n\t\t\t\tpointer-events: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.zoom-in,\r\n\t\t.zoom-out {\r\n\t\t\tpadding: 0;\r\n\t\t\twidth: 20px;\r\n\t\t\tfont-size: 0;\r\n\t\t\tline-height: 0;\r\n\r\n\t\t\timg {\r\n\t\t\t\tvertical-align: middle;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n}</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomControlsV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomControlsV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ZoomControlsV2.vue?vue&type=template&id=4c8dc425&scoped=true&\"\nimport script from \"./ZoomControlsV2.vue?vue&type=script&lang=js&\"\nexport * from \"./ZoomControlsV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ZoomControlsV2.vue?vue&type=style&index=0&id=4c8dc425&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c8dc425\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.toggleView}),expression:\"{ content: content.toggleView}\"}],staticClass:\"column-toggle btn\",class:_vm.flyerOrientation === 'vertical' ? 'rotate selected' : '',attrs:{\"aria-label\":_vm.content.toggleView,\"data-tour-item\":\"orientation\",\"tabindex\":\"0\"},on:{\"click\":_vm.toggleColumnView}},'button',_vm.config.attrs,false),[_c('svg',{attrs:{\"height\":\"20\",\"width\":\"16\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M12.57 15.57v-7.8H10.3v7.8H6.86L11.43 20 16 15.57h-3.43zM4.57 0L0 4.43h3.43v7.8H5.7v-7.8h3.43L4.57 0z\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\"}})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<button v-if=\"enabled\" v-tooltip=\"{ content: content.toggleView}\" :aria-label=\"content.toggleView\"\r\n\t :class=\"flyerOrientation === 'vertical' ? 'rotate selected' : ''\" class=\"column-toggle btn\"\r\n\t data-tour-item=\"orientation\" tabindex=\"0\"\r\n\t @click=\"toggleColumnView\" v-bind=\"config.attrs\">\r\n\t\t<svg height=\"20\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t<path\r\n\t\t\t\t\td=\"M12.57 15.57v-7.8H10.3v7.8H6.86L11.43 20 16 15.57h-3.43zM4.57 0L0 4.43h3.43v7.8H5.7v-7.8h3.43L4.57 0z\"\r\n\t\t\t\t\tfill=\"currentColor\" fill-rule=\"nonzero\"/>\r\n\t\t</svg>\r\n\t</button>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"ToggleFlyerOrientationButton\",\r\n\tmixins: [featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'toggleView'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['content']),\r\n\t\t...mapGetters('screen', [\"flyerOrientation\"]),\r\n\t\t...mapGetters('config', ['features'])\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions([\"toggleColumnView\"])\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.rotate svg {\r\n\ttransform: rotate(90deg);\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFlyerOrientationButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFlyerOrientationButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToggleFlyerOrientationButton.vue?vue&type=template&id=749f5b1a&scoped=true&\"\nimport script from \"./ToggleFlyerOrientationButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ToggleFlyerOrientationButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToggleFlyerOrientationButton.vue?vue&type=style&index=0&id=749f5b1a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"749f5b1a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.toggleView }),expression:\"{ content: content.toggleView }\"}],staticClass:\"column-toggle btn\",class:_vm.flyerOrientation === 'vertical' ? 'rotate selected' : '',attrs:{\"aria-label\":_vm.content.toggleView,\"data-tour-item\":\"orientation\",\"tabindex\":\"0\"},on:{\"click\":_vm.toggleColumnView}},'button',_vm.config.attrs,false),[_c('svg',{attrs:{\"role\":\"img\",\"viewBox\":\"540.2053 273.8605 19 23.042\",\"width\":\"19\",\"height\":\"22.042\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"toggleView\"}},[_c('title',{attrs:{\"id\":\"toggleView\"}},[_vm._v(\"Toggle Orientation Icon\")]),_c('g',{attrs:{\"transform\":\"matrix(1.4785990715026855, 0, 0, 1, 192.72116088867188, 185.62751770019528)\"}},[_c('g',[_c('rect',{staticStyle:{\"stroke\":\"#545454\",\"fill\":\"rgb(255, 255, 255)\",\"fill-opacity\":\"0\",\"transform-origin\":\"-54.428px 99.754px\",\"stroke-width\":\"1.3842px\"},attrs:{\"x\":\"235.009\",\"y\":\"88.233\",\"width\":\"12.85\",\"height\":\"23.042\",\"rx\":\"1\",\"ry\":\"1\"}}),_c('g',{attrs:{\"transform\":\"matrix(1.133328, 0, 0, 1.133328, -31.865427, -12.150104)\"}},[_c('g',{attrs:{\"id\":\"g-2\",\"transform\":\"matrix(0.03636, 0, 0, 0.029297, 231.960709, 91.129326)\"}})])])]),_c('polygon',{attrs:{\"points\":\"550.302 291.392 550.302 278.358 551.833 279.889 552.566 279.158 549.783 276.375 547 279.158 547.733 279.889 549.265 278.357 549.265 291.393 547.733 289.86 547 290.592 549.783 293.375 552.566 290.592 551.833 289.86\"}})]),_c('span',{staticClass:\"panel-label\"},[_vm._v(_vm._s(_vm.flyerOrientation === 'vertical' ? _vm.content.horizontal : _vm.content.vertical)+\" \")])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<button v-if=\"enabled\" v-tooltip=\"{ content: content.toggleView }\" :aria-label=\"content.toggleView\"\r\n\t\t:class=\"flyerOrientation === 'vertical' ? 'rotate selected' : ''\" class=\"column-toggle btn\"\r\n\t\tdata-tour-item=\"orientation\" tabindex=\"0\" @click=\"toggleColumnView\" v-bind=\"config.attrs\">\r\n\r\n\t\t<svg role=\"img\" viewBox=\"540.2053 273.8605 19 23.042\" width=\"19\" height=\"22.042\" xmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"toggleView\">\r\n\t\t\t<title id=\"toggleView\">Toggle Orientation Icon</title>\r\n\t\t\t<g transform=\"matrix(1.4785990715026855, 0, 0, 1, 192.72116088867188, 185.62751770019528)\">\r\n\t\t\t\t<g>\r\n\t\t\t\t\t<rect\r\n\t\t\t\t\t\tstyle=\"stroke: #545454; fill: rgb(255, 255, 255); fill-opacity: 0; transform-origin: -54.428px 99.754px; stroke-width: 1.3842px;\"\r\n\t\t\t\t\t\tx=\"235.009\" y=\"88.233\" width=\"12.85\" height=\"23.042\" rx=\"1\" ry=\"1\" />\r\n\t\t\t\t\t<g transform=\"matrix(1.133328, 0, 0, 1.133328, -31.865427, -12.150104)\">\r\n\t\t\t\t\t\t<g id=\"g-2\" transform=\"matrix(0.03636, 0, 0, 0.029297, 231.960709, 91.129326)\" style=\"\" />\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</g>\r\n\t\t\t</g>\r\n\t\t\t<polygon\r\n\t\t\t\tpoints=\"550.302 291.392 550.302 278.358 551.833 279.889 552.566 279.158 549.783 276.375 547 279.158 547.733 279.889 549.265 278.357 549.265 291.393 547.733 289.86 547 290.592 549.783 293.375 552.566 290.592 551.833 289.86\"\r\n\t\t\t\tstyle=\"\" />\r\n\t\t</svg>\r\n\t\t<span class=\"panel-label\">{{ flyerOrientation === 'vertical' ? content.horizontal : content.vertical }} </span>\r\n\t</button>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"ToggleFlyerOrientationButtonV2\",\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'toggleView'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['content']),\r\n\t\t...mapGetters('screen', [\"flyerOrientation\"]),\r\n\t\t...mapGetters('config', ['features'])\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions([\"toggleColumnView\"])\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n[mode=\"desktop\"] {\r\n\tbutton.column-toggle {\r\n\t\tmin-width: 82px;\r\n\t\tmargin-top:4px;\r\n\t}\r\n}\r\n\r\n[mode='tablet'],\r\n[mode='mobile'] {\r\n\tbutton.column-toggle {\r\n\t\tdisplay: none\r\n\t}\r\n}\r\n\r\nbutton.column-toggle {\r\n\t&.selected {\r\n\t\tbackground: unset !important;\r\n\t\tcolor: unset !important;\r\n\t}\r\n\r\n\t&:hover {\r\n\t\tcolor: var(--secondary-color) !important;\r\n\r\n\t\tsvg {\r\n\t\t\trect {\r\n\t\t\t\tstroke: var(--secondary-color) !important;\r\n\t\t\t}\r\n\r\n\t\t\tpolygon {\r\n\t\t\t\tfill: var(--secondary-color);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\n.rotate svg {\r\n\ttransform: rotate(90deg);\r\n}</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFlyerOrientationButtonV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFlyerOrientationButtonV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToggleFlyerOrientationButtonV2.vue?vue&type=template&id=28479ecf&scoped=true&\"\nimport script from \"./ToggleFlyerOrientationButtonV2.vue?vue&type=script&lang=js&\"\nexport * from \"./ToggleFlyerOrientationButtonV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToggleFlyerOrientationButtonV2.vue?vue&type=style&index=0&id=28479ecf&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28479ecf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.toggleFullscreen, classes: 'last'}),expression:\"{ content: content.toggleFullscreen, classes: 'last'}\"}],staticClass:\"fullscreen-toggle btn\",class:{ selected: _vm.isFullscreen },attrs:{\"aria-label\":_vm.content.toggleFullscreen,\"data-tour-item\":\"fullscreen\",\"tabindex\":\"0\"},on:{\"click\":_vm.handleFullScreen}},'button',_vm.config.attrs,false),[(!_vm.isFullscreen)?_c('svg',{attrs:{\"height\":\"18\",\"viewBox\":\"0 0 14 14\",\"width\":\"18\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M2 9H0v5h5v-2H2V9zM0 5h2V2h3V0H0v5zm12 7H9v2h5V9h-2v3zM9 0v2h3v3h2V0H9z\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\"}})]):_c('svg',{attrs:{\"height\":\"18\",\"viewBox\":\"0 0 14 14\",\"width\":\"18\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M3 14h2V9H0v2h3v3zM5 0H3v3H0v2h5V0zm6 11h3V9H9v5h2v-3zm3-6V3h-3V0H9v5h5z\",\"fill\":\"currentColor\"}})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<button v-if=\"enabled\" v-tooltip=\"{ content: content.toggleFullscreen, classes: 'last'}\" :aria-label=\"content.toggleFullscreen\"\r\n\t :class=\"{ selected: isFullscreen }\" class=\"fullscreen-toggle btn\"\r\n\t data-tour-item=\"fullscreen\"\r\n\t tabindex=\"0\"\r\n\t @click=\"handleFullScreen\" v-bind=\"config.attrs\">\r\n\t\t<svg v-if=\"!isFullscreen\" height=\"18\" viewBox=\"0 0 14 14\" width=\"18\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t<path d=\"M2 9H0v5h5v-2H2V9zM0 5h2V2h3V0H0v5zm12 7H9v2h5V9h-2v3zM9 0v2h3v3h2V0H9z\" fill=\"currentColor\"\r\n\t\t\t fill-rule=\"nonzero\"/>\r\n\t\t</svg>\r\n\t\t<svg v-else height=\"18\" viewBox=\"0 0 14 14\" width=\"18\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t<path d=\"M3 14h2V9H0v2h3v3zM5 0H3v3H0v2h5V0zm6 11h3V9H9v5h2v-3zm3-6V3h-3V0H9v5h5z\" fill=\"currentColor\"/>\r\n\t\t</svg>\r\n\t</button>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"ToggleFullscreenButton\",\r\n\tmixins: [featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'fullScreen'\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tif(this.config?.trigger !== 'internal'){\r\n\t\t\tdocument.addEventListener('keydown', this.onEscape)\r\n\t\t}\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\tdocument.removeEventListener('keydown', this.onEscape);\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters([\"content\"]),\r\n\t\t...mapState('screen', ['fullScreenToggle']),\r\n\t\t...mapGetters('screen', ['isFullscreen'])\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('screen', ['toggleFullScreen', \"setFullScreenState\"]),\r\n\t\tonEscape(e) {\r\n\t\t\t//console.log('Key Press:', e)\r\n\t\t\tif(e.key === 'Escape')this.setFullScreenState(false);\r\n\t\t},\r\n\t\thandleFullScreen() {\r\n\t\t\tthis.toggleFullScreen();\r\n\t\t\tthis.$root.$emit('dropdown-hidden-updated', this.$parent.isHidden)\r\n\t\t\tthis.$parent.isHidden = !this.$parent.isHidden\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFullscreenButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFullscreenButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToggleFullscreenButton.vue?vue&type=template&id=8c9b6d0a&scoped=true&\"\nimport script from \"./ToggleFullscreenButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ToggleFullscreenButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8c9b6d0a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.toggleFullscreen, classes: 'last' }),expression:\"{ content: content.toggleFullscreen, classes: 'last' }\"}],staticClass:\"fullscreen-toggle btn\",class:{ selected: _vm.isFullscreen , customMobile: _vm.isMetro},attrs:{\"aria-label\":_vm.content.toggleFullscreen,\"data-tour-item\":\"fullscreen\",\"tabindex\":\"0\"},on:{\"click\":_vm.handleFullScreen}},'button',_vm.config.attrs,false),[(!_vm.isFullscreen)?_c('div',[_c('svg',{staticClass:\"default-fullscreen\",attrs:{\"role\":\"img\",\"viewBox\":\"189.985 -40.354 14.394 15\",\"width\":\"16.394\",\"height\":\"17\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"fullscreenDefault\"}},[_c('title',{attrs:{\"id\":\"fullscreenDefault\"}},[_vm._v(\"Toggle fullscreen\")]),_c('path',{attrs:{\"d\":\"M 204.379 -39.739 C 204.379 -40.082 204.107 -40.354 203.764 -40.354 L 198.232 -40.354 C 197.882 -40.354 197.622 -40.078 197.622 -39.729 C 197.622 -39.379 197.882 -39.123 198.232 -39.123 L 203.148 -39.123 L 203.138 -34.184 C 203.138 -33.835 203.404 -33.568 203.754 -33.568 C 204.103 -33.569 204.369 -33.835 204.369 -34.184 L 204.379 -39.729 C 204.379 -39.731 204.379 -39.732 204.379 -39.734 C 204.379 -39.736 204.379 -39.737 204.379 -39.739 Z\"}}),_c('path',{attrs:{\"d\":\"M 196.132 -26.585 L 191.216 -26.585 L 191.216 -31.51 C 191.216 -31.858 190.95 -32.125 190.6 -32.125 C 190.252 -32.125 189.985 -31.859 189.985 -31.51 L 189.985 -25.979 C 189.985 -25.977 189.985 -25.975 189.985 -25.974 C 189.985 -25.972 189.985 -25.971 189.985 -25.969 C 189.985 -25.626 190.257 -25.354 190.6 -25.354 L 196.132 -25.354 C 196.481 -25.354 196.742 -25.629 196.742 -25.979 C 196.742 -26.328 196.481 -26.585 196.132 -26.585 Z\"}})]),_c('svg',{staticClass:\"rollover-fullscreen\",attrs:{\"role\":\"img\",\"viewBox\":\"208 -22 25.757 24.771\",\"width\":\"29.757\",\"height\":\"22.771\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"fullscreenRollover\"}},[_c('title',{attrs:{\"id\":\"fullscreenRollover\"}},[_vm._v(\"Toggle fullscreen Hover\")]),_c('path',{attrs:{\"d\":\"M 233.757 -21.385 C 233.757 -21.728 233.485 -22 233.142 -22 L 227.61 -22 C 227.26 -22 227 -21.724 227 -21.375 C 227 -21.025 227.26 -20.769 227.61 -20.769 L 232.526 -20.769 L 232.516 -15.83 C 232.516 -15.481 232.782 -15.214 233.132 -15.214 C 233.481 -15.215 233.747 -15.481 233.747 -15.83 L 233.757 -21.375 C 233.757 -21.377 233.757 -21.378 233.757 -21.38 C 233.757 -21.382 233.757 -21.383 233.757 -21.385 Z\"}}),_c('path',{attrs:{\"d\":\"M 214.147 1.54 L 209.231 1.54 L 209.231 -3.385 C 209.231 -3.733 208.965 -4 208.615 -4 C 208.267 -4 208 -3.734 208 -3.385 L 208 2.146 C 208 2.148 208 2.15 208 2.151 C 208 2.153 208 2.154 208 2.156 C 208 2.499 208.272 2.771 208.615 2.771 L 214.147 2.771 C 214.496 2.771 214.757 2.496 214.757 2.146 C 214.757 1.797 214.496 1.54 214.147 1.54 Z\"}}),_c('g',{attrs:{\"transform\":\"matrix(1, 0, 0, 1, -19.728729248046875, -20.961776733398438)\"}},[_c('ellipse',{staticStyle:{\"stroke\":\"rgb(0, 0, 0)\",\"fill\":\"rgb(64, 13, 13)\"},attrs:{\"cx\":\"236.128\",\"cy\":\"16.201\",\"rx\":\"0.6\",\"ry\":\"0.6\"}}),_c('ellipse',{staticStyle:{\"stroke\":\"rgb(0, 0, 0)\",\"fill\":\"rgb(64, 13, 13)\"},attrs:{\"cx\":\"240.444\",\"cy\":\"11.577\",\"rx\":\"0.6\",\"ry\":\"0.6\"}}),_c('ellipse',{staticStyle:{\"stroke\":\"rgb(0, 0, 0)\",\"fill\":\"rgb(64, 13, 13)\"},attrs:{\"cx\":\"245\",\"cy\":\"7\",\"rx\":\"0.6\",\"ry\":\"0.6\"}})])])]):_c('div',[_c('svg',{staticClass:\"default-fullscreen\",attrs:{\"role\":\"img\",\"viewBox\":\"186 71 20.757 18.771\",\"width\":\"19.757\",\"height\":\"17.771\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"exitfullscreen\"}},[_c('title',{attrs:{\"id\":\"exitFullscreen\"}},[_vm._v(\"Exit fullscreen\")]),_c('path',{staticStyle:{\"transform-origin\":\"203.379px 74.393px\"},attrs:{\"d\":\"M 206.757 71.615 C 206.757 71.272 206.485 71 206.142 71 L 200.61 71 C 200.26 71 200 71.276 200 71.625 C 200 71.975 200.26 72.231 200.61 72.231 L 205.526 72.231 L 205.516 77.17 C 205.516 77.519 205.782 77.786 206.132 77.786 C 206.481 77.785 206.747 77.519 206.747 77.17 L 206.757 71.625 C 206.757 71.623 206.757 71.622 206.757 71.62 C 206.757 71.618 206.757 71.617 206.757 71.615 Z\",\"transform\":\"matrix(-1, 0, 0, -1, -0.000030517578, -0.000015258789)\"}}),_c('path',{staticStyle:{\"transform-origin\":\"189.379px 86.3855px\"},attrs:{\"d\":\"M 192.147 88.54 L 187.231 88.54 L 187.231 83.615 C 187.231 83.267 186.965 83 186.615 83 C 186.267 83 186 83.266 186 83.615 L 186 89.146 C 186 89.148 186 89.15 186 89.151 C 186 89.153 186 89.154 186 89.156 C 186 89.499 186.272 89.771 186.615 89.771 L 192.147 89.771 C 192.496 89.771 192.757 89.496 192.757 89.146 C 192.757 88.797 192.496 88.54 192.147 88.54 Z\",\"transform\":\"matrix(-1, 0, 0, -1, 0, 0)\"}}),_c('ellipse',{staticStyle:{\"stroke\":\"rgb(0, 0, 0)\",\"fill\":\"rgb(64, 13, 13)\"},attrs:{\"cx\":\"196.507\",\"cy\":\"80.24\",\"rx\":\"0.6\",\"ry\":\"0.6\"}})]),_c('svg',{staticClass:\"rollover-fullscreen exit\",attrs:{\"role\":\"img\",\"viewBox\":\"195 171 15.757 15.771\",\"width\":\"15.757\",\"height\":\"15.771\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"exitRollover\"}},[_c('title',{attrs:{\"id\":\"exitRollover\"}},[_vm._v(\"Exit fullscreen Hover\")]),_c('path',{staticStyle:{\"transform-origin\":\"207.378px 174.393px\"},attrs:{\"d\":\"M 210.756 171.615 C 210.756 171.272 210.484 171 210.141 171 L 204.609 171 C 204.259 171 203.999 171.276 203.999 171.625 C 203.999 171.975 204.259 172.231 204.609 172.231 L 209.525 172.231 L 209.515 177.17 C 209.515 177.519 209.781 177.786 210.131 177.786 C 210.48 177.785 210.746 177.519 210.746 177.17 L 210.756 171.625 C 210.756 171.623 210.756 171.622 210.756 171.62 C 210.756 171.618 210.756 171.617 210.756 171.615 Z\",\"transform\":\"matrix(-1, 0, 0, -1, 0.000030517578, -0.000030517578)\"}}),_c('path',{staticStyle:{\"transform-origin\":\"198.378px 183.385px\"},attrs:{\"d\":\"M 201.146 185.539 L 196.23 185.539 L 196.23 180.614 C 196.23 180.266 195.964 179.999 195.614 179.999 C 195.266 179.999 194.999 180.265 194.999 180.614 L 194.999 186.145 C 194.999 186.147 194.999 186.149 194.999 186.15 C 194.999 186.152 194.999 186.153 194.999 186.155 C 194.999 186.498 195.271 186.77 195.614 186.77 L 201.146 186.77 C 201.495 186.77 201.756 186.495 201.756 186.145 C 201.756 185.796 201.495 185.539 201.146 185.539 Z\",\"transform\":\"matrix(-1, 0, 0, -1, 0, -0.000030517578)\"}})])]),_c('span',{staticClass:\"panel-label\"},[_vm._v(_vm._s(!_vm.isFullscreen ? _vm.content.walkthrough.fullscreen.title : _vm.content.exitFullscreen))])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<button v-if=\"enabled\" v-tooltip=\"{ content: content.toggleFullscreen, classes: 'last' }\"\r\n\t\t:aria-label=\"content.toggleFullscreen\" :class=\"{ selected: isFullscreen , customMobile: isMetro}\" class=\"fullscreen-toggle btn\"\r\n\t\tdata-tour-item=\"fullscreen\" tabindex=\"0\" @click=\"handleFullScreen\" v-bind=\"config.attrs\">\r\n\r\n\t\t<div v-if=\"!isFullscreen\">\r\n\t\t\t<svg role=\"img\" class=\"default-fullscreen\" viewBox=\"189.985 -40.354 14.394 15\" width=\"16.394\" height=\"17\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"fullscreenDefault\">\r\n\t\t\t\t<title id=\"fullscreenDefault\">Toggle fullscreen</title>\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M 204.379 -39.739 C 204.379 -40.082 204.107 -40.354 203.764 -40.354 L 198.232 -40.354 C 197.882 -40.354 197.622 -40.078 197.622 -39.729 C 197.622 -39.379 197.882 -39.123 198.232 -39.123 L 203.148 -39.123 L 203.138 -34.184 C 203.138 -33.835 203.404 -33.568 203.754 -33.568 C 204.103 -33.569 204.369 -33.835 204.369 -34.184 L 204.379 -39.729 C 204.379 -39.731 204.379 -39.732 204.379 -39.734 C 204.379 -39.736 204.379 -39.737 204.379 -39.739 Z\" />\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M 196.132 -26.585 L 191.216 -26.585 L 191.216 -31.51 C 191.216 -31.858 190.95 -32.125 190.6 -32.125 C 190.252 -32.125 189.985 -31.859 189.985 -31.51 L 189.985 -25.979 C 189.985 -25.977 189.985 -25.975 189.985 -25.974 C 189.985 -25.972 189.985 -25.971 189.985 -25.969 C 189.985 -25.626 190.257 -25.354 190.6 -25.354 L 196.132 -25.354 C 196.481 -25.354 196.742 -25.629 196.742 -25.979 C 196.742 -26.328 196.481 -26.585 196.132 -26.585 Z\" />\r\n\t\t\t</svg>\r\n\t\t\t<svg role=\"img\" class=\"rollover-fullscreen\" viewBox=\"208 -22 25.757 24.771\" width=\"29.757\" height=\"22.771\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"fullscreenRollover\">\r\n\t\t\t\t<title id=\"fullscreenRollover\">Toggle fullscreen Hover</title>\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M 233.757 -21.385 C 233.757 -21.728 233.485 -22 233.142 -22 L 227.61 -22 C 227.26 -22 227 -21.724 227 -21.375 C 227 -21.025 227.26 -20.769 227.61 -20.769 L 232.526 -20.769 L 232.516 -15.83 C 232.516 -15.481 232.782 -15.214 233.132 -15.214 C 233.481 -15.215 233.747 -15.481 233.747 -15.83 L 233.757 -21.375 C 233.757 -21.377 233.757 -21.378 233.757 -21.38 C 233.757 -21.382 233.757 -21.383 233.757 -21.385 Z\" />\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M 214.147 1.54 L 209.231 1.54 L 209.231 -3.385 C 209.231 -3.733 208.965 -4 208.615 -4 C 208.267 -4 208 -3.734 208 -3.385 L 208 2.146 C 208 2.148 208 2.15 208 2.151 C 208 2.153 208 2.154 208 2.156 C 208 2.499 208.272 2.771 208.615 2.771 L 214.147 2.771 C 214.496 2.771 214.757 2.496 214.757 2.146 C 214.757 1.797 214.496 1.54 214.147 1.54 Z\" />\r\n\t\t\t\t<g transform=\"matrix(1, 0, 0, 1, -19.728729248046875, -20.961776733398438)\">\r\n\t\t\t\t\t<ellipse style=\"stroke: rgb(0, 0, 0); fill: rgb(64, 13, 13);\" cx=\"236.128\" cy=\"16.201\" rx=\"0.6\"\r\n\t\t\t\t\t\try=\"0.6\" />\r\n\t\t\t\t\t<ellipse style=\"stroke: rgb(0, 0, 0); fill: rgb(64, 13, 13);\" cx=\"240.444\" cy=\"11.577\" rx=\"0.6\"\r\n\t\t\t\t\t\try=\"0.6\" />\r\n\t\t\t\t\t<ellipse style=\"stroke: rgb(0, 0, 0); fill: rgb(64, 13, 13);\" cx=\"245\" cy=\"7\" rx=\"0.6\" ry=\"0.6\" />\r\n\t\t\t\t</g>\r\n\t\t\t</svg>\r\n\t\t</div>\r\n\t\t<div v-else>\r\n\t\t\t<svg role=\"img\" class=\"default-fullscreen\" viewBox=\"186 71 20.757 18.771\" width=\"19.757\" height=\"17.771\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"exitfullscreen\">\r\n\t\t\t\t<title id=\"exitFullscreen\">Exit fullscreen</title>\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M 206.757 71.615 C 206.757 71.272 206.485 71 206.142 71 L 200.61 71 C 200.26 71 200 71.276 200 71.625 C 200 71.975 200.26 72.231 200.61 72.231 L 205.526 72.231 L 205.516 77.17 C 205.516 77.519 205.782 77.786 206.132 77.786 C 206.481 77.785 206.747 77.519 206.747 77.17 L 206.757 71.625 C 206.757 71.623 206.757 71.622 206.757 71.62 C 206.757 71.618 206.757 71.617 206.757 71.615 Z\"\r\n\t\t\t\t\tstyle=\"transform-origin: 203.379px 74.393px;\"\r\n\t\t\t\t\ttransform=\"matrix(-1, 0, 0, -1, -0.000030517578, -0.000015258789)\" />\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M 192.147 88.54 L 187.231 88.54 L 187.231 83.615 C 187.231 83.267 186.965 83 186.615 83 C 186.267 83 186 83.266 186 83.615 L 186 89.146 C 186 89.148 186 89.15 186 89.151 C 186 89.153 186 89.154 186 89.156 C 186 89.499 186.272 89.771 186.615 89.771 L 192.147 89.771 C 192.496 89.771 192.757 89.496 192.757 89.146 C 192.757 88.797 192.496 88.54 192.147 88.54 Z\"\r\n\t\t\t\t\tstyle=\"transform-origin: 189.379px 86.3855px;\" transform=\"matrix(-1, 0, 0, -1, 0, 0)\" />\r\n\t\t\t\t<ellipse style=\"stroke: rgb(0, 0, 0); fill: rgb(64, 13, 13);\" cx=\"196.507\" cy=\"80.24\" rx=\"0.6\" ry=\"0.6\" />\r\n\t\t\t</svg>\r\n\r\n\t\t\t<svg role=\"img\" class=\"rollover-fullscreen exit\" viewBox=\"195 171 15.757 15.771\" width=\"15.757\" height=\"15.771\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"exitRollover\">\r\n\t\t\t\t<title id=\"exitRollover\">Exit fullscreen Hover</title>\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M 210.756 171.615 C 210.756 171.272 210.484 171 210.141 171 L 204.609 171 C 204.259 171 203.999 171.276 203.999 171.625 C 203.999 171.975 204.259 172.231 204.609 172.231 L 209.525 172.231 L 209.515 177.17 C 209.515 177.519 209.781 177.786 210.131 177.786 C 210.48 177.785 210.746 177.519 210.746 177.17 L 210.756 171.625 C 210.756 171.623 210.756 171.622 210.756 171.62 C 210.756 171.618 210.756 171.617 210.756 171.615 Z\"\r\n\t\t\t\t\tstyle=\"transform-origin: 207.378px 174.393px;\"\r\n\t\t\t\t\ttransform=\"matrix(-1, 0, 0, -1, 0.000030517578, -0.000030517578)\" />\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M 201.146 185.539 L 196.23 185.539 L 196.23 180.614 C 196.23 180.266 195.964 179.999 195.614 179.999 C 195.266 179.999 194.999 180.265 194.999 180.614 L 194.999 186.145 C 194.999 186.147 194.999 186.149 194.999 186.15 C 194.999 186.152 194.999 186.153 194.999 186.155 C 194.999 186.498 195.271 186.77 195.614 186.77 L 201.146 186.77 C 201.495 186.77 201.756 186.495 201.756 186.145 C 201.756 185.796 201.495 185.539 201.146 185.539 Z\"\r\n\t\t\t\t\tstyle=\"transform-origin: 198.378px 183.385px;\" transform=\"matrix(-1, 0, 0, -1, 0, -0.000030517578)\" />\r\n\t\t\t</svg>\r\n\t\t\t\r\n\t\t</div>\r\n\t\t<span class=\"panel-label\">{{ !isFullscreen ? content.walkthrough.fullscreen.title : content.exitFullscreen }}</span>\r\n\t\t<!-- <svg v-if=\"!isFullscreen\" height=\"18\" viewBox=\"0 0 14 14\" width=\"18\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t<path d=\"M2 9H0v5h5v-2H2V9zM0 5h2V2h3V0H0v5zm12 7H9v2h5V9h-2v3zM9 0v2h3v3h2V0H9z\" fill=\"currentColor\"\r\n\t\t\t fill-rule=\"nonzero\"/>\r\n\t\t</svg>\r\n\t\t\r\n\t\t<svg v-else height=\"18\" viewBox=\"0 0 14 14\" width=\"18\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t<path d=\"M3 14h2V9H0v2h3v3zM5 0H3v3H0v2h5V0zm6 11h3V9H9v5h2v-3zm3-6V3h-3V0H9v5h5z\" fill=\"currentColor\"/>\r\n\t\t</svg> -->\r\n\t</button>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"ToggleFullscreenButtonV2\",\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'fullScreen'\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tif (this.config?.trigger !== 'internal') {\r\n\t\t\tdocument.addEventListener('keydown', this.onEscape)\r\n\t\t}\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\tdocument.removeEventListener('keydown', this.onEscape);\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters([\"content\"]),\r\n\t\t...mapState('screen', ['fullScreenToggle']),\r\n\t\t...mapGetters('screen', ['isFullscreen']),\r\n\t\t...mapGetters(['isMetro']),\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('screen', ['toggleFullScreen', \"setFullScreenState\"]),\r\n\t\tonEscape(e) {\r\n\t\t\t//console.log('Key Press:', e)\r\n\t\t\tif (e.key === 'Escape') this.setFullScreenState(false);\r\n\t\t},\r\n\t\thandleFullScreen() {\r\n\t\t\tthis.toggleFullScreen();\r\n\t\t\tthis.$root.$emit('dropdown-hidden-updated', this.$parent.isHidden)\r\n\t\t\tthis.$parent.isHidden = !this.$parent.isHidden\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n[mode=\"desktop\"] {\r\n\tbutton.fullscreen-toggle {\r\n\t\tmin-width: 90px;\r\n\t \r\n\t\tdiv {\r\n\t\t\tmargin-top: 4px;\r\n\t\t\t.rollover-fullscreen {\r\n\t\t\t\tmin-height: 22px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\nbutton.fullscreen-toggle {\r\n\t&.selected {\r\n\t\tbackground: unset !important;\r\n\t\tcolor: unset !important;\r\n\t}\r\n\r\n\t&:hover {\r\n\t\tcolor: var(--secondary-color) !important;\r\n\r\n\t\t.default-fullscreen {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\r\n\t\t.rollover-fullscreen {\r\n\t\t\tdisplay: block;\r\n\r\n\t\t\tg ellipse {\r\n\t\t\t\tstroke: var(--secondary-color) !important;\r\n\t\t\t\tfill: var(--secondary-color) !important;\r\n\t\t\t}\r\n\r\n\t\t\tpath {\r\n fill: var(--secondary-color) !important\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n .default-fullscreen {\r\n\t\tdisplay: block;\r\n\t}\r\n .rollover-fullscreen {\r\n\t\tdisplay: none;\r\n\r\n\t}\r\n svg path,\r\n\tbutton svg ellipse {\r\n\t\tfill: #545454;\r\n\t}\r\n}\r\n\r\n[mode=\"desktop\"] {\r\n\t.default-fullscreen {\r\n\t\tmargin-bottom: 5px;\r\n\t}\r\n\r\n}\r\n[mode=\"mobile\"] {\r\n\tbutton.customMobile{\r\n\t\tmargin-left: 7px;\r\n\t}\r\n\r\n}</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFullscreenButtonV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFullscreenButtonV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToggleFullscreenButtonV2.vue?vue&type=template&id=481057d2&scoped=true&\"\nimport script from \"./ToggleFullscreenButtonV2.vue?vue&type=script&lang=js&\"\nexport * from \"./ToggleFullscreenButtonV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToggleFullscreenButtonV2.vue?vue&type=style&index=0&id=481057d2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"481057d2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.downloadPDF}),expression:\"{ content: content.downloadPDF}\"}],staticClass:\"pdf-btn btn\",attrs:{\"href\":_vm.downloadablePDF,\"data-tour-item\":\"pdf\",\"download\":\"\",\"tabindex\":\"0\",\"target\":\"_blank\"},on:{\"click\":_vm.closeHamburgerMenu}},[_c('img',{attrs:{\"alt\":_vm.content.downloadPDF,\"src\":\"/images/icon-pdf.svg\"}})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<a v-if=\"enabled\" v-tooltip=\"{ content: content.downloadPDF}\" :href=\"downloadablePDF\" class=\"pdf-btn btn\" data-tour-item=\"pdf\"\r\n\t download tabindex=\"0\" @click=\"closeHamburgerMenu\" target=\"_blank\">\r\n\t\t<img :alt=\"content.downloadPDF\" src=\"/images/icon-pdf.svg\"/></a>\r\n</template>\r\n\r\n<script>\r\nimport {mapGetters} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"PdfDownloadButton\",\r\n\tmixins:[featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'pdfDownload'\r\n\t\t}\r\n\t},\r\n\tcomputed:{\r\n\t\t...mapGetters([\"content\"]),\r\n\t\t...mapGetters('config', ['features']),\r\n\t\t...mapGetters('landingPage', ['downloadablePDF']),\r\n\t},\r\n\tmethods: {\r\n\t\tcloseHamburgerMenu() {\r\n\t\t\tthis.$parent.isHidden = !this.$parent.isHidden\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfDownloadButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfDownloadButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdfDownloadButton.vue?vue&type=template&id=f056f1ea&scoped=true&\"\nimport script from \"./PdfDownloadButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PdfDownloadButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f056f1ea\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdf-download\"},[(_vm.enabled)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.downloadPDF }),expression:\"{ content: content.downloadPDF }\"}],staticClass:\"pdf-btn btn\",attrs:{\"tabindex\":\"0\",\"role\":\"button\",\"href\":_vm.downloadablePDF,\"data-tour-item\":\"pdf\"},on:{\"click\":_vm.closeHamburgerMenu}},[_c('svg',{attrs:{\"role\":\"img\",\"width\":\"20\",\"height\":\"24\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-labelledby\":\"downloadPdf\"}},[_c('path',{attrs:{\"d\":\"M12.02 0c.82 0 1.24.17 1.82.75l5.4 5.41c.59.58.76 1 .76 1.82V22.4c0 1.15-.45 1.6-1.6 1.6H1.6C.45 24 0 23.55 0 22.4V1.6C0 .45.45 0 1.6 0zm6.58 17.02H1.4v5.16c0 .3.12.42.42.42h16.36c.3 0 .42-.12.42-.42v-5.16zM9.6 11c-.54 0-1.05.03-1.44.1v4.63c.26.04.65.07 1.2.07.93 0 1.69-.2 2.18-.6.46-.4.79-1.02.79-1.92 0-.83-.31-1.41-.8-1.78-.46-.34-1.04-.5-1.93-.5zm-4.07 0c-.65 0-1.11.04-1.44.1v4.65h1.06v-1.69c.1.02.22.03.36.03.63 0 1.17-.16 1.53-.5.28-.27.44-.66.44-1.12 0-.46-.2-.85-.5-1.1-.32-.24-.79-.37-1.45-.37zm10.38.03h-2.88v4.72h1.07v-1.9h1.7V13h-1.7V11.9h1.8v-.88zm-6.2.79c.92 0 1.49.52 1.48 1.5 0 1.12-.63 1.65-1.6 1.65-.13 0-.27 0-.36-.02v-3.09c.09-.02.24-.04.48-.04zm-4.12-.02c.53 0 .83.26.83.7 0 .48-.35.77-.92.77-.15 0-.26-.01-.35-.03v-1.4c.07-.01.22-.04.44-.04zm6.86-10.4H1.82c-.3 0-.42.12-.42.42v7.96h17.2V7.55c0-.15-.06-.21-.2-.21h-4.14c-1.15 0-1.6-.45-1.6-1.6V1.61c0-.15-.06-.21-.21-.21z\",\"fill\":\"#545454\",\"fill-rule\":\"nonzero\"}})]),_c('span',[_vm._v(_vm._s(_vm.content.downloadPDF))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"pdf-download\">\r\n\t\t<a v-if=\"enabled\" tabindex=\"0\" role=\"button\" v-tooltip=\"{ content: content.downloadPDF }\" :href=\"downloadablePDF\" class=\"pdf-btn btn\"\r\n\t\t\tdata-tour-item=\"pdf\" @click=\"closeHamburgerMenu\">\r\n\t\t\t<svg role=\"img\" width=\"20\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"downloadPdf\">\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M12.02 0c.82 0 1.24.17 1.82.75l5.4 5.41c.59.58.76 1 .76 1.82V22.4c0 1.15-.45 1.6-1.6 1.6H1.6C.45 24 0 23.55 0 22.4V1.6C0 .45.45 0 1.6 0zm6.58 17.02H1.4v5.16c0 .3.12.42.42.42h16.36c.3 0 .42-.12.42-.42v-5.16zM9.6 11c-.54 0-1.05.03-1.44.1v4.63c.26.04.65.07 1.2.07.93 0 1.69-.2 2.18-.6.46-.4.79-1.02.79-1.92 0-.83-.31-1.41-.8-1.78-.46-.34-1.04-.5-1.93-.5zm-4.07 0c-.65 0-1.11.04-1.44.1v4.65h1.06v-1.69c.1.02.22.03.36.03.63 0 1.17-.16 1.53-.5.28-.27.44-.66.44-1.12 0-.46-.2-.85-.5-1.1-.32-.24-.79-.37-1.45-.37zm10.38.03h-2.88v4.72h1.07v-1.9h1.7V13h-1.7V11.9h1.8v-.88zm-6.2.79c.92 0 1.49.52 1.48 1.5 0 1.12-.63 1.65-1.6 1.65-.13 0-.27 0-.36-.02v-3.09c.09-.02.24-.04.48-.04zm-4.12-.02c.53 0 .83.26.83.7 0 .48-.35.77-.92.77-.15 0-.26-.01-.35-.03v-1.4c.07-.01.22-.04.44-.04zm6.86-10.4H1.82c-.3 0-.42.12-.42.42v7.96h17.2V7.55c0-.15-.06-.21-.2-.21h-4.14c-1.15 0-1.6-.45-1.6-1.6V1.61c0-.15-.06-.21-.21-.21z\"\r\n\t\t\t\t\tfill=\"#545454\" fill-rule=\"nonzero\" />\r\n\t\t\t</svg>\r\n\t\t\t<!-- <img :alt=\"content.downloadPDF\" src=\"/images/icon-pdf.svg\"/> -->\r\n\t\t <span>{{ content.downloadPDF }}</span>\r\n\t\t</a>\r\n\t\t\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"PdfDownloadButtonV2\",\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'pdfDownload'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters([\"content\"]),\r\n\t\t...mapGetters('config', ['features']),\r\n\t\t...mapGetters('landingPage', ['downloadablePDF']),\r\n\t},\r\n\tmethods: {\r\n\t\tcloseHamburgerMenu() {\r\n\t\t\tthis.$parent.isHidden = !this.$parent.isHidden\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.pdf-download {\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\r\n\ta {\r\n\t\tborder: none;\r\n\t\tbackground: none;\r\n\t\ttext-decoration: none;\r\n\t\t\r\n\t}\r\n\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfDownloadButtonV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfDownloadButtonV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdfDownloadButtonV2.vue?vue&type=template&id=64c74552&scoped=true&\"\nimport script from \"./PdfDownloadButtonV2.vue?vue&type=script&lang=js&\"\nexport * from \"./PdfDownloadButtonV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdfDownloadButtonV2.vue?vue&type=style&index=0&id=64c74552&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64c74552\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.shoppingListToolTip, classes: 'last'}),expression:\"{ content: content.shoppingListToolTip, classes: 'last'}\"}],staticClass:\"btn has-tooltip\",class:{active: _vm.isActive},attrs:{\"aria-label\":_vm.content.shoppingListToolTip},on:{\"click\":_vm.toggle}},'button',_vm.config.attrs,false),[_c('svg',{attrs:{\"width\":\"22px\",\"height\":\"20px\",\"viewBox\":\"5 10 24 14\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',{attrs:{\"id\":\"-Symbols\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"SuperC-header---English\",\"transform\":\"translate(-1868.000000, -23.000000)\"}},[_c('g',{attrs:{\"id\":\"icon---list\",\"transform\":\"translate(1868.000000, 23.000000)\"}},[_c('g',{staticClass:\"line-fill\",attrs:{\"id\":\"Group\",\"transform\":\"translate(7.000000, 9.000000)\"}},[_c('rect',{attrs:{\"id\":\"Rectangle-Copy-34\",\"x\":\"6\",\"y\":\"0\",\"width\":\"14\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-37\",\"x\":\"0\",\"y\":\"0\",\"width\":\"3\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-35\",\"x\":\"6\",\"y\":\"7\",\"width\":\"14\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-38\",\"x\":\"0\",\"y\":\"7\",\"width\":\"3\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-36\",\"x\":\"6\",\"y\":\"14\",\"width\":\"14\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-39\",\"x\":\"0\",\"y\":\"14\",\"width\":\"3\",\"height\":\"3\",\"rx\":\"1.5\"}})])])])])]),(_vm.count)?_c('div',{staticClass:\"count-badge\"},[_vm._v(_vm._s(_vm.count))]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<button :class=\"{active: isActive}\" v-if=\"enabled\" class=\"btn has-tooltip\" v-tooltip=\"{ content: content.shoppingListToolTip, classes: 'last'}\" :aria-label=\"content.shoppingListToolTip\" v-bind=\"config.attrs\" @click=\"toggle\">\r\n\t<svg width=\"22px\" height=\"20px\" viewBox=\"5 10 24 14\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t<g id=\"-Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n\t\t\t<g id=\"SuperC-header---English\" transform=\"translate(-1868.000000, -23.000000)\">\r\n\t\t\t\t<g id=\"icon---list\" transform=\"translate(1868.000000, 23.000000)\">\r\n\t\t\t\t\t<g class=\"line-fill\" id=\"Group\" transform=\"translate(7.000000, 9.000000)\">\r\n\t\t\t\t\t\t<rect id=\"Rectangle-Copy-34\" x=\"6\" y=\"0\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t<rect id=\"Rectangle-Copy-37\" x=\"0\" y=\"0\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t<rect id=\"Rectangle-Copy-35\" x=\"6\" y=\"7\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t<rect id=\"Rectangle-Copy-38\" x=\"0\" y=\"7\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t<rect id=\"Rectangle-Copy-36\" x=\"6\" y=\"14\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t<rect id=\"Rectangle-Copy-39\" x=\"0\" y=\"14\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</g>\r\n\t\t\t</g>\r\n\t\t</g>\r\n\t</svg>\r\n\t<div v-if=\"count\" class=\"count-badge\">{{ count }}</div>\r\n</button>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"ShoppingListToggleButton\",\r\n\tmixins: [featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'shoppingList'\r\n\t\t}\r\n\t},\r\n\tcomputed:{\r\n\t\t...mapGetters('config', ['features']),\r\n\t\t...mapState('shoppingList', ['showShoppingList', 'showShoppingListV1','shoppingList','shoppingListV1']),\r\n ...mapGetters('shoppingList',['getVersion']),\r\n\t\tcount() {\r\n\t\t\treturn this.getVersion==='v1' ? this.shoppingListV1.length : this.shoppingList.length;\r\n\t\t},\r\n isActive(){\r\n return this.getVersion==='v1' ? this.showShoppingListV1 : this.showShoppingList\r\n }\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('shoppingList', ['toggleShoppingList','toggleShoppingListV1']),\r\n\t\ttoggle() {\r\n this.getVersion==='v1' ? this.toggleShoppingListV1(!this.showShoppingListV1) : this.toggleShoppingList(!this.showShoppingList);\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\tbutton {\r\n\t\t&.active{\r\n\t\t\tbackground-color: rgb(84, 84, 84) !important;\r\n\t\t\tsvg {\r\n\t\t\t\t.line-fill {\r\n\t\t\t\t\tfill: #fff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsvg {\r\n\t\t\t.line-fill {\r\n\t\t\t\tfill: #545454;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t.btn {\r\n\t\tposition: relative;\r\n\t}\r\n\t.count-badge{\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t\tposition: absolute;\r\n\t\tbackground-color: red;\r\n\t\ttop: -0.9em;\r\n\t\tright: -0.9em;\r\n\t\tborder-radius: 50%;\r\n\t\theight: 1.8em;\r\n\t\tmin-width: 1.8em;\r\n\t\tfont-size: 0.8em;\r\n\t\tcolor: #fff;\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListToggleButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListToggleButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShoppingListToggleButton.vue?vue&type=template&id=49ec28ce&scoped=true&\"\nimport script from \"./ShoppingListToggleButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ShoppingListToggleButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShoppingListToggleButton.vue?vue&type=style&index=0&id=49ec28ce&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49ec28ce\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"shopping-list-wrapper\",attrs:{\"data-tour-item\":\"shoppingList\"}},[(_vm.enabled)?_c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.shoppingListToolTip, classes: 'last' }),expression:\"{ content: content.shoppingListToolTip, classes: 'last' }\"}],staticClass:\"btn has-tooltip\",class:{ active: _vm.isActive },attrs:{\"aria-label\":_vm.content.shoppingListToolTip},on:{\"click\":_vm.toggle}},'button',_vm.config.attrs,false),[_c('svg',{attrs:{\"role\":\"img\",\"width\":\"25px\",\"height\":\"22px\",\"viewBox\":\"5 10 24 14\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"aria-labelledby\":\"shoppingList\"}},[_c('title',{attrs:{\"id\":\"shoppingList\"}},[_vm._v(\"Shopping List\")]),_c('g',{attrs:{\"id\":\"-Symbols\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"icon---English\",\"transform\":\"translate(-1868.000000, -22.000000)\"}},[_c('g',{attrs:{\"id\":\"icon---list\",\"transform\":\"translate(1868.000000, 23.000000)\"}},[_c('g',{staticClass:\"line-fill\",attrs:{\"id\":\"Group\",\"transform\":\"translate(7.000000, 9.000000)\"}},[_c('rect',{attrs:{\"id\":\"Rectangle-Copy-34\",\"x\":\"6\",\"y\":\"0\",\"width\":\"14\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-37\",\"x\":\"0\",\"y\":\"0\",\"width\":\"3\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-35\",\"x\":\"6\",\"y\":\"7\",\"width\":\"14\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-38\",\"x\":\"0\",\"y\":\"7\",\"width\":\"3\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-36\",\"x\":\"6\",\"y\":\"14\",\"width\":\"14\",\"height\":\"3\",\"rx\":\"1.5\"}}),_c('rect',{attrs:{\"id\":\"Rectangle-Copy-39\",\"x\":\"0\",\"y\":\"14\",\"width\":\"3\",\"height\":\"3\",\"rx\":\"1.5\"}})])])])])]),_c('span',{staticClass:\"panel-label\"},[_vm._v(_vm._s(_vm.content.shoppingList.shoppingListDesc))]),(_vm.count)?_c('div',{staticClass:\"count-badge\"},[_vm._v(_vm._s(_vm.count))]):_vm._e()]):_vm._e(),_c('span',{staticClass:\"separator-right\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"shopping-list-wrapper\" data-tour-item=\"shoppingList\">\r\n\t\t<button :class=\"{ active: isActive }\" v-if=\"enabled\" class=\"btn has-tooltip\"\r\n\t\t\tv-tooltip=\"{ content: content.shoppingListToolTip, classes: 'last' }\" :aria-label=\"content.shoppingListToolTip\"\r\n\t\t\tv-bind=\"config.attrs\" @click=\"toggle\">\r\n\t\t\t<svg role=\"img\" width=\"25px\" height=\"22px\" viewBox=\"5 10 24 14\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"shoppingList\">\r\n\t\t\t\t<title id=\"shoppingList\">Shopping List</title>\r\n\t\t\t\t<g id=\"-Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n\t\t\t\t\t<g id=\"icon---English\" transform=\"translate(-1868.000000, -22.000000)\">\r\n\t\t\t\t\t\t<g id=\"icon---list\" transform=\"translate(1868.000000, 23.000000)\">\r\n\t\t\t\t\t\t\t<g class=\"line-fill\" id=\"Group\" transform=\"translate(7.000000, 9.000000)\">\r\n\t\t\t\t\t\t\t\t<rect id=\"Rectangle-Copy-34\" x=\"6\" y=\"0\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t\t\t<rect id=\"Rectangle-Copy-37\" x=\"0\" y=\"0\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t\t\t<rect id=\"Rectangle-Copy-35\" x=\"6\" y=\"7\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t\t\t<rect id=\"Rectangle-Copy-38\" x=\"0\" y=\"7\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t\t\t<rect id=\"Rectangle-Copy-36\" x=\"6\" y=\"14\" width=\"14\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t\t\t<rect id=\"Rectangle-Copy-39\" x=\"0\" y=\"14\" width=\"3\" height=\"3\" rx=\"1.5\"></rect>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</g>\r\n\t\t\t</svg>\r\n\t\t\t<span class=\"panel-label\">{{ content.shoppingList.shoppingListDesc }}</span>\r\n\r\n\t\t\t<div v-if=\"count\" class=\"count-badge\">{{ count }}</div>\r\n\r\n\r\n\t\t</button>\r\n\t\t<span class=\"separator-right\"></span>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"ShoppingListToggleButtonV2\",\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'shoppingList'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('config', ['features']),\r\n\t\t...mapState('shoppingList', ['showShoppingList', 'showShoppingListV1', 'showShoppingListV2','shoppingList', 'shoppingListV1','shoppingListV2']),\r\n\t\t...mapGetters('shoppingList', ['getVersion']),\r\n\t\tcount() {\r\n const v = this.getVersion;\r\n if(v==='v1') return this.shoppingListV1.length\r\n else if(v==='v2') return this.shoppingListV2.length\r\n else return this.shoppingList.length\r\n\t\t},\r\n\t\tisActive() {\r\n const v = this.getVersion;\r\n if(v==='v1') return this.showShoppingListV1\r\n else if(v==='v2') return this.showShoppingListV2\r\n else return this.showShoppingList\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n ...mapActions('shoppingList', ['toggleShoppingList','toggleShoppingListV1','toggleShoppingListV2']),\r\n\t\ttoggle() {\r\n const v = this.getVersion;\r\n if(v==='v1') return this.toggleShoppingListV1(!this.showShoppingListV1)\r\n else if(v==='v2') return this.toggleShoppingListV2(!this.showShoppingListV2)\r\n else return this.toggleShoppingList(!this.showShoppingList);\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.shopping-list-wrapper {\r\n\tdisplay: inline-flex;\r\n\r\n\r\n\tbutton {\r\n\t\tmargin-left: -20px;\r\n\t\tpadding: 0 11px;\r\n\t\tbackground: none;\r\n\r\n\t\t&.active {\r\n\t\t\tbackground: none !important;\r\n\r\n\t\t}\r\n\r\n\t\t&:hover {\r\n\t\t\tsvg {\r\n\t\t\t\t.line-fill {\r\n\t\t\t\t\tfill: var(--secondary-color);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsvg {\r\n\t\t\t.line-fill {\r\n\t\t\t\tfill: #545454;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.panel-label {\r\n\t\t\tmargin-top: 4px;\r\n\t\t}\r\n\r\n\t}\r\n\r\n}\r\n\r\n\r\n.btn {\r\n\tposition: relative;\r\n}\r\n\r\n.count-badge {\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tposition: absolute;\r\n\tbackground-color: red;\r\n\ttop: -0.3em;\r\n\tright: -0.5em;\r\n\tborder-radius: 50%;\r\n\theight: 1.8em;\r\n\tmin-width: 1.8em;\r\n\tfont-size: 0.8em;\r\n\tcolor: #fff;\r\n}\r\n\r\n[mode='tablet'],\r\n[mode='mobile'] {\r\n\t.shopping-list-wrapper {\r\n\t\tbutton {\r\n\t\t\tmargin-left: 10px;\r\n\t\t\tpadding: 0;\r\n\r\n\t\t\t.count-badge {\r\n\t\t\t\ttop: -1em;\r\n\t\t\t\tright: -0.9em;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListToggleButtonV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListToggleButtonV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShoppingListToggleButtonV2.vue?vue&type=template&id=9d06f284&scoped=true&\"\nimport script from \"./ShoppingListToggleButtonV2.vue?vue&type=script&lang=js&\"\nexport * from \"./ShoppingListToggleButtonV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShoppingListToggleButtonV2.vue?vue&type=style&index=0&id=9d06f284&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9d06f284\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.lang.toggleSearch}),expression:\"{ content: lang.toggleSearch}\"}],staticClass:\"btn filter-drawer-toggle-button\",class:{selected: _vm.isOpen},domProps:{\"innerHTML\":_vm._s(_vm.caption)},on:{\"click\":_vm.toggleFilters}},'button',_vm.config.attrs,false),[_c('config-style-injector',{attrs:{\"config\":_vm.config,\"root-selector\":\".filter-drawer-toggle-button\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<button v-tooltip=\"{ content: lang.toggleSearch}\" :class=\"{selected: isOpen}\" class=\"btn filter-drawer-toggle-button\" v-bind=\"config.attrs\" @click=\"toggleFilters\" v-html=\"caption\">\r\n\t\t<config-style-injector\r\n\t\t\t\t:config=\"config\"\r\n\t\t\t\t:root-selector=\"`.filter-drawer-toggle-button`\"\r\n\t\t/>\r\n\t</button>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n//import FilterPanel from \"@/features/filters/FilterPanel.vue\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\n\r\nexport default {\r\n\tname: \"FilterDrawerToggleButton\",\r\n\tcomponents: {ConfigStyleInjector},\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'filterToggleButton',\r\n\t\t\tdrawer: 'header'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapState('drawer', ['drawerItems']),\r\n\t\t...mapGetters('filters', [\"isFilterPanelOpen\"]),\r\n\t\tisOpen() {\r\n\t\t\treturn this.isFilterPanelOpen;\r\n\t\t},\r\n\t\tcaption() {\r\n\t\t\treturn this.config.label || 'Search'\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('filters', [\"setFilterPanelState\"]),\r\n\t\ttoggleFilters() {\r\n\t\t\tthis.setFilterPanelState(!this.isOpen);\r\n\t\t}\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\tthis.setFilterPanelState(false);\r\n\t\t//this.removeFromDrawer( {id: 'filters', drawer: this.drawer});\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\nbutton.filter-drawer-toggle-button {\r\n\tbackground: var(--button-background);\r\n\tcolor: #545454 ;\r\n\tmargin-right: auto;\r\n\r\n\t&.selected {\r\n\t\tbackground: #F2F2F2 !important;\r\n\t\tcolor: var(--secondary-color) !important;\r\n\t\tfilter: unset !important;\r\n\t\tsvg \r\n\t\tg {\r\n\t\t\tg {\r\n\t\t\t\tpath {\r\n\t\t\t\t\tcolor: #545454;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDrawerToggleButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDrawerToggleButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterDrawerToggleButton.vue?vue&type=template&id=5e076a6b&scoped=true&\"\nimport script from \"./FilterDrawerToggleButton.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterDrawerToggleButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FilterDrawerToggleButton.vue?vue&type=style&index=0&id=5e076a6b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e076a6b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.searchBar)?_c('search-bar-filter',{attrs:{\"featureConfig\":_vm.searchBar}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <search-bar-filter v-if=\"searchBar\" :featureConfig=\"searchBar\" />\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters} from 'vuex';\r\nimport SearchBarFilter from \"@/features/filters/SearchBarFilter.vue\";\r\n\r\nexport default {\r\n name: \"SearchBarFilterStandAlone\",\r\n\tcomponents: {SearchBarFilter},\r\n\r\n computed: {\r\n\t\t...mapGetters('filters', ['filtersByType', 'searchQuery']),\r\n\t searchBar() {\r\n\t\t\treturn this.filtersByType['searchbar'][0];\r\n\t }\r\n },\r\n\tmethods:{\r\n\t\t...mapActions('search', ['filterProducts'])\r\n\t},\r\n\twatch: {\r\n\t\tsearchQuery(val) {\r\n\t\t\tthis.filterProducts(val);\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBarFilterStandAlone.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBarFilterStandAlone.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchBarFilterStandAlone.vue?vue&type=template&id=5d2435ef&scoped=true&\"\nimport script from \"./SearchBarFilterStandAlone.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchBarFilterStandAlone.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d2435ef\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('bp-vuejs-dropdown',{staticClass:\"hamburger-menu-button\",attrs:{\"initialIsHidden\":_vm.isHidden},scopedSlots:_vm._u([{key:\"btn\",fn:function(){return [_c('button',{staticClass:\"btn\"},[_c('svg',{attrs:{\"height\":\"17px\",\"version\":\"1.1\",\"viewBox\":\"0 0 18 17\",\"width\":\"18px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"icon-hamburger\")]),_c('g',{attrs:{\"id\":\"TransCon-Direction\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{staticClass:\"hamburger-lines\",attrs:{\"id\":\"SuperC---Mobile---4-Column---FR\",\"fill\":\"#545454\",\"transform\":\"translate(-24.000000, -137.000000)\"}},[_c('path',{attrs:{\"id\":\"icon-hamburger\",\"d\":\"M40.5,151 C41.3284271,151 42,151.671573 42,152.5 C42,153.328427 41.3284271,154 40.5,154 L25.5,154 C24.6715729,154 24,153.328427 24,152.5 C24,151.671573 24.6715729,151 25.5,151 L40.5,151 Z M40.5,144 C41.3284271,144 42,144.671573 42,145.5 C42,146.328427 41.3284271,147 40.5,147 L25.5,147 C24.6715729,147 24,146.328427 24,145.5 C24,144.671573 24.6715729,144 25.5,144 L40.5,144 Z M40.5,137 C41.3284271,137 42,137.671573 42,138.5 C42,139.328427 41.3284271,140 40.5,140 L25.5,140 C24.6715729,140 24,139.328427 24,138.5 C24,137.671573 24.6715729,137 25.5,137 L40.5,137 Z\"}})])])])])]},proxy:true},{key:\"body\",fn:function(){return _vm._l((_vm.listItems),function(comp){return _c('div',{key:comp.name,staticClass:\"comp-list-item\"},[_c(comp.component,{tag:\"component\"}),_c('span',{staticClass:\"desc\"},[_vm._v(_vm._s(comp.desc))])],1)})},proxy:true},{key:\"icon\",fn:function(){return [_c('span')]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<bp-vuejs-dropdown class=\"hamburger-menu-button\" :initialIsHidden=\"isHidden\">\r\n\t\t<template #btn>\r\n\t\t\t<button class=\"btn\">\r\n\t\t\t\t<svg height=\"17px\" version=\"1.1\" viewBox=\"0 0 18 17\" width=\"18px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t<title>icon-hamburger</title>\r\n\t\t\t\t\t<g id=\"TransCon-Direction\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t\t\t<g id=\"SuperC---Mobile---4-Column---FR\" class=\"hamburger-lines\" fill=\"#545454\" transform=\"translate(-24.000000, -137.000000)\">\r\n\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"icon-hamburger\"\r\n\t\t\t\t\t\t\t\t\td=\"M40.5,151 C41.3284271,151 42,151.671573 42,152.5 C42,153.328427 41.3284271,154 40.5,154 L25.5,154 C24.6715729,154 24,153.328427 24,152.5 C24,151.671573 24.6715729,151 25.5,151 L40.5,151 Z M40.5,144 C41.3284271,144 42,144.671573 42,145.5 C42,146.328427 41.3284271,147 40.5,147 L25.5,147 C24.6715729,147 24,146.328427 24,145.5 C24,144.671573 24.6715729,144 25.5,144 L40.5,144 Z M40.5,137 C41.3284271,137 42,137.671573 42,138.5 C42,139.328427 41.3284271,140 40.5,140 L25.5,140 C24.6715729,140 24,139.328427 24,138.5 C24,137.671573 24.6715729,137 25.5,137 L40.5,137 Z\"></path>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</svg>\r\n\t\t\t</button>\r\n\t\t</template>\r\n\t\t<template #body>\r\n\t\t\t<div v-for=\"comp in listItems\"\r\n\t\t\t :key=\"comp.name\"\r\n\t\t\t class=\"comp-list-item\"\r\n\t\t\t>\r\n\t\t\t\t<component\r\n\t\t\t\t\t\t:is=\"comp.component\"\r\n\t\t\t\t/>\r\n\t\t\t\t<span class=\"desc\">{{ comp.desc }}</span>\r\n\t\t\t</div>\r\n\r\n\t\t</template>\r\n\t\t<template #icon><span></span></template>\r\n\t</bp-vuejs-dropdown>\r\n\r\n</template>\r\n\r\n<script>\r\nimport BpVuejsDropdown from \"@/components/bp-vuejs-dropdown/Dropdown.vue\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {controlDict} from \"@/features/FeatureHelper\";\r\n\r\nexport default {\r\n\tname: \"HamburgerMenuButton\",\r\n\tmixins: [featureMixin],\r\n\tcomponents: {BpVuejsDropdown},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tisHidden: true,\r\n\t\t\tfeaturePath: 'header.controls.hamburgerMenu'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tlistItems() {\r\n\t\t\tconst items = this.config.items;\r\n\t\t\tconst o = [];\r\n\r\n\t\t\tfor (let item of items) {\r\n\t\t\t\tif (controlDict[item.component]) {\r\n\t\t\t\t\to.push({name: item.component, component: controlDict[item.component], desc: item.desc});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn o;\r\n\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n[mode='tablet'], [mode='mobile'] {\r\n\t.hamburger-menu-button {\r\n\t\t.bp-dropdown__body {\r\n\t\t\tleft: 1em !important;\r\n\t\t\twidth: calc(100% - 2em);\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.hamburger-menu-button {\r\n\r\n\t.hamburger-lines {\r\n\t\tfill: #545454\r\n\t}\r\n\r\n\t.bp-dropdown__body {\r\n\t\tborder-radius: 4px;\r\n\t}\r\n\r\n\t.bp-dropdown__btn {\r\n\t\tpadding: 0px;\r\n\t\tborder: none;\r\n\r\n\t\t&.bp-dropdown__btn--active {\r\n\t\t\tbackground-color: #545454;\r\n\t\t\t.hamburger-lines {\r\n\t\t\t\tfill: #E5E5E5;\r\n\t\t\t}\r\n\t\t\t.btn:hover{\r\n\t\t\t\tbackground-color: inherit;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.comp-list-item {\r\n\t\tdisplay: flex;\r\n\t\t//column-gap: 1em;\r\n\t\talign-items: center;\r\n\t\tpadding: 0.5em 1em;\r\n\t\t\r\n\t\t> * {\r\n\t\t\tmargin-right: 1em;\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HamburgerMenuButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HamburgerMenuButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HamburgerMenuButton.vue?vue&type=template&id=07ec87d4&\"\nimport script from \"./HamburgerMenuButton.vue?vue&type=script&lang=js&\"\nexport * from \"./HamburgerMenuButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HamburgerMenuButton.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('custom-bp-vuejs-dropdown',{staticClass:\"hamburger-menu-button\",attrs:{\"initialIsHidden\":_vm.isHidden},scopedSlots:_vm._u([{key:\"btn\",fn:function(){return [_c('button',{staticClass:\"btn\"},[_c('svg',{staticClass:\"bi bi-three-dots\",attrs:{\"role\":\"img\",\"width\":\"20px\",\"height\":\"20px\",\"viewBox\":\"0 0 16 16\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"#545454\",\"aria-labelledby\":\"showMoreIcon\"}},[_c('path',{attrs:{\"d\":\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"}})]),_c('span',{staticClass:\"panel-label\"},[_vm._v(_vm._s(_vm.content.more))])])]},proxy:true},{key:\"body\",fn:function(){return _vm._l((_vm.listItems),function(comp){return _c('div',{key:comp.name,staticClass:\"comp-list-item\"},[_c(comp.component,{tag:\"component\"})],1)})},proxy:true},{key:\"icon\",fn:function(){return [_c('span')]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<custom-bp-vuejs-dropdown class=\"hamburger-menu-button\" :initialIsHidden=\"isHidden\">\r\n\t\t<template #btn>\r\n\t\t\t<button class=\"btn\">\r\n\t\t\t\t<svg role=\"img\" width=\"20px\" height=\"20px\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#545454\"\r\n\t\t\t\t\tclass=\"bi bi-three-dots\" aria-labelledby=\"showMoreIcon\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t<path\r\n\t\t\t\t\t\td=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\" />\r\n\t\t\t\t</svg>\r\n\t\t\t\t<span class=\"panel-label\">{{ content.more }}</span>\r\n\t\t\t</button>\r\n\r\n\t\t</template>\r\n\t\t<template #body>\r\n\t\t\t<div v-for=\"comp in listItems\" :key=\"comp.name\" class=\"comp-list-item\">\r\n\t\t\t\t<component :is=\"comp.component\" />\r\n\t\t\t</div>\r\n\r\n\t\t</template>\r\n\t\t<template #icon><span></span></template>\r\n\t</custom-bp-vuejs-dropdown>\r\n</template>\r\n\r\n<script>\r\nimport BpVuejsDropdown from \"@/components/bp-vuejs-dropdown/Dropdown.vue\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport { controlDictV2 } from \"@/features/FeatureHelper\";\r\nimport {mapGetters} from \"vuex\";\r\n\r\nexport default {\r\n\tname: \"HamburgerMenuButtonV2\",\r\n\tmixins: [featureMixin],\r\n\tcomponents: { CustomBpVuejsDropdown: {\r\n\t\textends: BpVuejsDropdown,\r\n\t\tmethods: {\r\n\t\t\t_onBodyLeave(e) {\r\n\t\t\t\tif (this.trigger !== 'hover') {\r\n\t\t\t\t\treturn;\r\n }\r\n \r\n\r\n const to = e.toElement;\r\n if (!to) {\r\n return;\r\n }\r\n\r\n if (to.closest('.bp-dropdown__btn') || to.closest('.bp-dropdown__sub')) {\r\n return;\r\n }\r\n\t\t\t\tif (to.closest('div.tooltip-inner')) {\r\n\t\t\t\t\treturn;\r\n }\r\n\t\t\t\tthis.prepare();\r\n },\r\n\t\t}\r\n\t} },\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tisHidden: true,\r\n\t\t\tfeaturePath: 'header.controlsV2.hamburgerMenu-v2'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('screen', ['displayMode']),\r\n\t\tlistItems() {\r\n\t\t\tconst items = this.config.items;\r\n\t\t\tconst o = [];\r\n\r\n\t\t\tfor (let item of items) {\r\n\t\t\t\tif (controlDictV2[item.component]) {\r\n\t\t\t\t\to.push({ name: item.component, component: controlDictV2[item.component], desc: item.desc });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn o;\r\n\r\n\t\t}\r\n\t},\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.hamburger-menu-button {\r\n\t.bp-dropdown__body {\r\n\t\tleft: unset !important;\r\n\t\tright: 1em;\r\n\t\tpadding: 0;\r\n\t}\r\n}\r\n\r\n\r\n[mode='tablet'],\r\n[mode='mobile'] {\r\n\t.hamburger-menu-button {\r\n\t\t.bp-dropdown__body {\r\n\t\t\tleft: 1em !important;\r\n\t\t\twidth: calc(100% - 2em);\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t}\r\n\t\t\r\n\t\t.bp-dropdown__btn {\r\n\t\t\tpadding: 0;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.hamburger-menu-button {\r\n padding: 0 !important;\r\n\r\n\t.hamburger-lines {\r\n\t\tfill: #545454\r\n\t}\r\n\r\n\t.bp-dropdown__body {\r\n\t\ttop: 64px !important;\r\n\t\tborder: 1px solid #AFAFAF;\r\n\t}\r\n\r\n\t.bp-dropdown__btn {\r\n\t\tpadding: 5px 9px;\r\n\t\tborder: none;\r\n\t\tflex-direction: column;\r\n\t\tbackground: none !important;\r\n\r\n\t\t.btn {\r\n\t\t\tborder: none;\r\n\t\t\tborder-radius: 0;\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\r\n\t\t\t&:hover {\r\n\t\t\t\tbackground: none;\r\n\t\t\t\tcolor: var(--secondary-color);\r\n\r\n\t\t\t\tsvg path {\r\n\t\t\t\t\tfill: var(--secondary-color);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tspan {\r\n\t\t\t\tmargin-top: 6px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.bp-dropdown__btn--active {\r\n\t\t\t.hamburger-lines {\r\n\t\t\t\tfill: #E5E5E5;\r\n\t\t\t}\r\n\r\n\t\t\t.btn:hover {\r\n\t\t\t\tbackground-color: inherit;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.comp-list-item {\r\n\t\tdisplay: flex;\r\n\t\t//column-gap: 1em;\r\n\t\talign-items: center;\r\n\t\tpadding: 0.3em 0.5em;\r\n\r\n\t\tspan {\r\n\t\t\tmargin-left: 15px;\r\n\t\t}\r\n\r\n\t\t>* {\r\n\t\t\tmargin-right: 0 0.2em;\r\n\r\n\t\t}\r\n\r\n\t\t&:hover {\r\n\t\t\tcolor: var(--secondary-color);\r\n\r\n\t\t\tsvg path {\r\n\t\t\t\tfill: var(--secondary-color);\r\n\t\t\t}\r\n\r\n\t\t\tspan {\r\n\t\t\t\tcolor: var(--secondary-color);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.comp-list-item:first-child {\r\n\t\tborder-bottom: 1px solid #AFAFAF;\r\n\t}\r\n\r\n\r\n}\r\n\r\n[mode=tablet],\r\n[mode=mobile] {\r\n\t.hamburger-menu-button {\r\n\t\t.bp-dropdown__body {\r\n\t\t\twidth: unset;\r\n\t\t\tleft: unset !important;\r\n\t\t}\r\n\t\t.hamburger-dropdown {\r\n\t\t\ttop: 90px !important;\r\n\t\t}\r\n\t}\r\n}</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HamburgerMenuButtonV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HamburgerMenuButtonV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HamburgerMenuButtonV2.vue?vue&type=template&id=3aa940a0&\"\nimport script from \"./HamburgerMenuButtonV2.vue?vue&type=script&lang=js&\"\nexport * from \"./HamburgerMenuButtonV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HamburgerMenuButtonV2.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.autoClose),expression:\"autoClose\"}],staticClass:\"inline-flyer-selector\",class:_vm.dynamicClasses},'div',_vm.config.attrs,false),[_c('config-style-injector',{attrs:{\"root-selector\":\".inline-flyer-selector\",\"config\":_vm.config}}),_c('div',{staticClass:\"flyer-list\",class:{ open: _vm.showList }},[_c('flyer-thumb-list')],1),_c(_vm.flyerSelectorTemplate,{tag:\"component\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"align-center\"},[_c('div',{staticClass:\"flyer-thumb-list\",attrs:{\"tabindex\":\"0\"}},_vm._l((_vm.thumbs),function(flyer){return _c(_vm.blockComponent,{key:flyer.title,tag:\"component\",attrs:{\"flyer-data\":flyer}})}),1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flyer-thumb-button\",class:{active: _vm.isActive, preview: _vm.isPreview},attrs:{\"aria-label\":_vm.title},on:{\"click\":_vm.gotoFlyer}},[_c('aspect-img',{staticClass:\"thumbnail\",attrs:{\"src\":_vm.thumbnail,\"aspect-ratio\":\"96:72\",\"alt\":_vm.flyerId}}),_c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"dates\"},[_vm._v(_vm._s((_vm.valid + \" \" + _vm.startDate + \" - \" + _vm.endDate)))])]),_c('button',{staticClass:\"btn goto-flyer\"},[_vm._v(_vm._s(_vm.buttonCaption))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('img',_vm._b({staticClass:\"aspect-img\",style:(_vm.style),attrs:{\"src\":_vm.imgSrc}},'img',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <img :src=\"imgSrc\" class=\"aspect-img\" :style=\"style\" v-bind=\"$attrs\" />\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\tname: \"AspectImg\",\r\n\tprops: {\r\n\t\taspectRatio: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null\r\n\t\t},\r\n\t\tsrc: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tstyle() {\r\n\t\t\tconst style = {};\r\n\t\t\tif(this.aspectRatio) {\r\n\t\t\t\tconst ratios = this.aspectRatio.split(':');\r\n\t\t\t\tconst r = (Number(ratios[1]) / Number(ratios[0])) * 100;\r\n\t\t\t\tstyle.paddingTop = `${r}%`;\r\n\t\t\t\tstyle.backgroundImage = `url('${this.src}')`;\r\n style.height = 0;\r\n\t\t\t}\r\n\t\t\treturn style;\r\n\t\t},\r\n\r\n\t\timgSrc() {\r\n\t\t\tif(this.aspectRatio) {\r\n\t\t\t\treturn \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==\";\r\n\t\t\t}\r\n\t\t\treturn this.src;\r\n\t\t}\r\n\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\t.aspect-img {\r\n\t\tbackground-repeat: no-repeat;\r\n\t\tbackground-position: center;\r\n\t\tbackground-size: contain;\r\n\t\timage-rendering: auto;\r\n\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AspectImg.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AspectImg.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AspectImg.vue?vue&type=template&id=684bc572&scoped=true&\"\nimport script from \"./AspectImg.vue?vue&type=script&lang=js&\"\nexport * from \"./AspectImg.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AspectImg.vue?vue&type=style&index=0&id=684bc572&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"684bc572\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"flyer-thumb-button\" :class=\"{active: isActive, preview: isPreview}\" @click=\"gotoFlyer\" :aria-label=\"title\">\r\n\t\t<aspect-img class=\"thumbnail\" :src=\"thumbnail\" aspect-ratio=\"96:72\" :alt=\"flyerId\" />\r\n\t\t<div class=\"details\">\r\n\t\t\t<div class=\"title\">{{ title }}</div>\r\n\t\t\t<div class=\"dates\">{{ `${valid} ${startDate} - ${endDate}`}}</div>\t\t</div>\r\n\t\t<button class=\"btn goto-flyer\">{{ buttonCaption }}</button>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport moment from \"moment\";\r\nimport {mapGetters} from \"vuex\";\r\nimport AspectImg from \"@/components/image/AspectImg.vue\";\r\nimport Rest from \"@/api/Rest\";\r\nimport Lytics from \"../../classes/Lytics\";\r\n\r\nexport default {\r\n\tname: \"FlyerThumbButton\",\r\n\tcomponents: {AspectImg},\r\n\tmixins:[featureMixin],\r\n\tprops:{\r\n\t\tflyerData:{\r\n\t\t\ttype: Object\r\n\t\t}\r\n\t},\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'flyerSelector.flyerThumb'\r\n\t\t}\r\n\t},\r\n\tcomputed:{\r\n\t\t...mapGetters('landingPage', ['currentFlyer']),\r\n\t\t...mapGetters(['language', 'content']),\r\n\t\tdateFormat(){\r\n\t\t\treturn this.config?.dateFormat || '';\r\n\t\t},\r\n\t\tstartDate() {\r\n\t\t\treturn this.formatDate(this.flyerData.startDate);\r\n\t\t},\r\n\t\tendDate() {\r\n\t\t\treturn this.formatDate(this.flyerData.endDate);\r\n\t\t},\r\n\t\tflyerId(){\r\n\t\t\treturn this.flyerData.title;\r\n\t\t},\r\n\t\tisActive(){\r\n\t\t\treturn this.flyerId === this.currentFlyer.title;\r\n\t\t},\r\n\t\tthumbnail() {\r\n\t\t\treturn this.flyerData?.thumbnail;\r\n\t\t},\r\n\t\tvalid() {\r\n\t\t\treturn this.content.landing.valid;\r\n\t\t},\r\n\t\ttitle(){\r\n\t\t\treturn this.flyerData?.flyerTitle;\r\n\t\t},\r\n\t\tflyerType() {\r\n\t\t\treturn this.flyerData?.flyerType;\r\n\t\t},\r\n\t\tisPreview(){\r\n\t\t\treturn this.flyerType === 'preview';\r\n\t\t},\r\n\t\tbuttonCaption(){\r\n\t\t\treturn this.isPreview? this.content?.flyerSelector?.previewFlyer: this.content?.flyerSelector?.viewFlyer;\r\n\t\t}\r\n\r\n\t},\r\n\tmethods:{\r\n\t\tformatDate(d) {\r\n\t\t\treturn moment.utc(d).locale(this.language).format(this.dateFormat);\r\n\t\t},\r\n\t\tgotoFlyer(){\r\n\t\t\tLytics.TriggerDrawerChange();\r\n\t\t\tif(!this.isActive)Rest.NavigateToFlyer(this.flyerId);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.flyer-thumb-button {\r\n\t\tpadding: 0.5em;\r\n\t\tcolor: #000;\r\n\t\tfont-size: 0.7em;\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\trow-gap: 0.5em;\r\n\t\tborder: solid 2px #aeaeae;\r\n\t\tjustify-content: space-between;\r\n\t\tcursor: pointer;\r\n\t\t&.active{\r\n\t\t\tbox-shadow: 0px 0px 6px 0px rgb(0 0 0 / 50%);\r\n\t\t}\r\n\t\t&.active{\r\n\t\t\tborder: solid 2px var(--secondary-color);\r\n\t\t}\r\n\t\t&:hover{\r\n\t\t\tbutton {\r\n\t\t\t\ttext-decoration: underline;\r\n\t\t\t}\r\n\t\t}\r\n\t\t.dates{\r\n\t\t\tfont-weight: bold;\r\n\t\t}\r\n\t\timg, div.thumbnail {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder: solid 1px #aeaeae\r\n\t\t}\r\n\r\n\t\t&.preview{\r\n\t\t\tbutton.goto-flyer{\r\n\t\t\t\tbackground-color: #aeaeae;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbutton.goto-flyer{\r\n\t\t\tcolor: #fff;\r\n\t\t\twidth: 100%;\r\n\t\t\tbackground-color: var(--secondary-color);\r\n\t\t\tborder: none;\r\n\t\t\tborder-radius: 0;\r\n\t\t\tfont-size: 1em;\r\n\t\t\theight: 2.4em;\r\n\t\t}\r\n\t\t.title{\r\n\t\t\tfont-size: 0.9em;\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlyerThumbButton.vue?vue&type=template&id=2b210080&\"\nimport script from \"./FlyerThumbButton.vue?vue&type=script&lang=js&\"\nexport * from \"./FlyerThumbButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlyerThumbButton.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flyer-thumb-button\",class:_vm.dynamicClasses,attrs:{\"aria-label\":_vm.title},on:{\"click\":_vm.gotoFlyer}},[_c('div',{staticClass:\"image-container\"},[_c('div',{staticClass:\"overlay-wrapper\",class:_vm.isPreview ? 'preview' : '',attrs:{\"data-label\":\"Preview\"}},[_c('aspect-img',{staticClass:\"thumbnail\",attrs:{\"src\":_vm.thumbnail,\"alt\":_vm.flyerId,\"title\":_vm.title,\"aspect-ratio\":\"96:72\"}}),(_vm.isPreview)?_c('svg',{staticClass:\"overlay triangle\",attrs:{\"viewBox\":\"127.8511 87.4968 88.1398 25.3117\",\"width\":\"88.1398\",\"height\":\"25.3117\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:bx\":\"https://boxy-svg.com\"}},[_c('path',{staticClass:\"preview-svg\",staticStyle:{\"stroke\":\"rgb(0, 0, 0)\",\"stroke-width\":\"0px\",\"transform-origin\":\"111.276px 112.931px\"},attrs:{\"d\":\"M 111.274 109.635 L 117.592 116.227 L 104.957 116.227 L 111.274 109.635 Z\",\"transform\":\"matrix(-0.087081998587, -0.996200919151, 0.993576109409, -0.117117002606, 20.399955624212, -6.80346138157)\",\"bx:shape\":\"triangle 104.957 109.635 12.635 6.592 0.5 0 1@283031df\"}})]):_vm._e(),(_vm.isPreview)?_c('svg',{staticClass:\"overlay\",attrs:{\"viewBox\":\"127.8511 87.4968 88.1398 25.3117\",\"width\":\"88.1398\",\"height\":\"25.3117\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:bx\":\"https://boxy-svg.com\"}},[_c('rect',{staticClass:\"preview-svg\",staticStyle:{\"stroke\":\"rgb(0, 0, 0)\",\"stroke-width\":\"0px\",\"transform-origin\":\"-130.244px -123.987px\"},attrs:{\"x\":\"-174.054\",\"y\":\"-133.358\",\"width\":\"87.622\",\"height\":\"18.741\",\"transform\":\"matrix(-0.999996006489, 0.002944000531, -0.002475000452, -0.999996960163, 302.401947877153, 220.982758018626)\"}})]):_vm._e(),(_vm.isPreview)?_c('div',{staticClass:\"overlay-text\"},[_vm._v(_vm._s(_vm.content.preview))]):_vm._e()],1)]),_c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.flyerTitle))]),_c('div',{staticClass:\"dates\"},[_vm._v(_vm._s((\" \" + _vm.startDate + \" - \" + _vm.endDate)))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"flyer-thumb-button\"\r\n\t\t:class=\"dynamicClasses\" @click=\"gotoFlyer\" :aria-label=\"title\">\r\n\t\t<div class=\"image-container\">\r\n\t\t\t<div class=\"overlay-wrapper\" :class=\"isPreview ? 'preview' : ''\" data-label=\"Preview\">\r\n\t\t\t\t<aspect-img class=\"thumbnail\" :src=\"thumbnail\" :alt=\"flyerId\" :title=\"title\" aspect-ratio=\"96:72\" />\r\n\t\t\t\t<svg v-if=\"isPreview\" class=\"overlay triangle\" viewBox=\"127.8511 87.4968 88.1398 25.3117\"\r\n\t\t\t\t\twidth=\"88.1398\" height=\"25.3117\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:bx=\"https://boxy-svg.com\">\r\n\t\t\t\t\t<path class=\"preview-svg\" d=\"M 111.274 109.635 L 117.592 116.227 L 104.957 116.227 L 111.274 109.635 Z\"\r\n\t\t\t\t\t\tstyle=\"stroke: rgb(0, 0, 0); stroke-width: 0px; transform-origin: 111.276px 112.931px;\"\r\n\t\t\t\t\t\ttransform=\"matrix(-0.087081998587, -0.996200919151, 0.993576109409, -0.117117002606, 20.399955624212, -6.80346138157)\"\r\n\t\t\t\t\t\tbx:shape=\"triangle 104.957 109.635 12.635 6.592 0.5 0 1@283031df\" />\r\n\r\n\t\t\t\t</svg>\r\n\t\t\t\t<svg v-if=\"isPreview\" class=\"overlay\" viewBox=\"127.8511 87.4968 88.1398 25.3117\" width=\"88.1398\"\r\n\t\t\t\t\theight=\"25.3117\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:bx=\"https://boxy-svg.com\">\r\n\r\n\t\t\t\t\t<rect class=\"preview-svg\" x=\"-174.054\" y=\"-133.358\" width=\"87.622\" height=\"18.741\"\r\n\t\t\t\t\t\tstyle=\"stroke: rgb(0, 0, 0); stroke-width: 0px; transform-origin: -130.244px -123.987px;\"\r\n\t\t\t\t\t\ttransform=\"matrix(-0.999996006489, 0.002944000531, -0.002475000452, -0.999996960163, 302.401947877153, 220.982758018626)\" />\r\n\t\t\t\t</svg>\r\n\t\t\t\t<div v-if=\"isPreview\" class=\"overlay-text\">{{ content.preview }}</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"details\">\r\n\t\t\t<div class=\"title\">{{ flyerTitle }}</div>\r\n\t\t\t<div class=\"dates\">{{ ` ${startDate} - ${endDate}` }}</div>\r\n\t\t</div>\r\n\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport moment from \"moment\";\r\nimport { mapGetters } from \"vuex\";\r\nimport AspectImg from \"@/components/image/AspectImg.vue\";\r\nimport Rest from \"@/api/Rest\";\r\nimport Lytics from \"../../classes/Lytics\";\r\n\r\nexport default {\r\n\tname: \"FlyerThumbButton\",\r\n\tcomponents: { AspectImg },\r\n\tmixins: [featureMixin],\r\n\tprops: {\r\n\t\tflyerData: {\r\n\t\t\ttype: Object\r\n\t\t}\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'flyerSelector.flyerThumb'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('landingPage', ['currentFlyer']),\r\n\t\t...mapGetters(['language', 'content']),\r\n\t\t...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n\t\tisVertical() {\r\n\t\t\treturn this.flyerOrientation === 'vertical';\r\n\t\t},\r\n\t\tisMobile() {\r\n\t\t\treturn this.displayMode === 'mobile';\r\n\t\t},\r\n\t\tdateFormat() {\r\n\t\t\treturn this.config?.dateFormat || '';\r\n\t\t},\r\n\t\tstartDate() {\r\n\t\t\treturn this.formatDate(this.flyerData.startDate);\r\n\t\t},\r\n\t\tendDate() {\r\n\t\t\treturn this.formatDate(this.flyerData.endDate);\r\n\t\t},\r\n\t\tflyerId() {\r\n\t\t\treturn this.flyerData.title;\r\n\t\t},\r\n\t\tflyerTitle() {\r\n\t\t\treturn this.flyerData.flyerTitle.replace('(', '\\u200B(');\r\n\t\t},\r\n\t\tisActive() {\r\n\t\t\treturn this.flyerId === this.currentFlyer.title;\r\n\t\t},\r\n\t\tisConfigurable() {\r\n\t\t\treturn this.flyerOrientation === 'vertical' && this.displayMode === 'desktop' && this.flyerDrawer;\r\n\t\t},\r\n\t\tthumbnail() {\r\n\t\t\treturn this.flyerData?.thumbnail;\r\n\t\t},\r\n\t\tflyerDrawer() {\r\n return this.features.flyerSelector._flyerOrientation['+vertical']?.['_display']?.['+desktop']?.position === 'left';\r\n\t\t},\r\n\t\tvalid() {\r\n\t\t\treturn this.content.landing.valid;\r\n\t\t},\r\n\t\ttitle() {\r\n\t\t\treturn this.flyerData?.flyerTitle;\r\n\t\t},\r\n\t\tflyerType() {\r\n\t\t\treturn this.flyerData?.flyerType;\r\n\t\t},\r\n\t\tisPreview() {\r\n\t\t\treturn this.flyerType === 'preview';\r\n\t\t},\r\n\t\tpreview() {\r\n\t\t\treturn this.content?.flyerSelector?.previewFlyer\r\n\t\t},\r\n\t\tdynamicClasses() {\r\n\t\t\treturn {\r\n\t\t\t\tactive: this.isActive,\r\n\t\t\t preview: this.isPreview,\r\n\t\t\t mobile: this.isMobile,\r\n\t\t\t vertical: this.isVertical,\r\n\t\t\t\tconfigurable: this.isConfigurable\r\n\t\t\t}\r\n\t\t\r\n\t\t}\r\n\r\n\t},\r\n\tmethods: {\r\n\t\tformatDate(d) {\r\n\t\t\treturn moment.utc(d).locale(this.language).format(this.dateFormat);\r\n\t\t},\r\n\t\tgotoFlyer() {\r\n\t\t\tLytics.TriggerDrawerChange();\r\n\t\t\tif (!this.isActive) Rest.NavigateToFlyer(this.flyerId);\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.flyer-thumb-button.vertical.configurable {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tjustify-content: space-between;\r\n\tcursor: pointer;\r\n\r\n\t\r\n}\r\n.flyer-thumb-button {\r\n\tborder: 0;\r\n\tbox-shadow: none;\r\n\r\n\t&.active {\r\n\t\tbox-shadow: none;\r\n\t\tbackground: #ebebeb;\r\n\t\tborder: solid 2px var(--secondary-color);\r\n\r\n\t}\r\n\r\n\t&:hover {\r\n\t\tbackground: #ebebeb;\r\n\r\n\t\tbutton {\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\t}\r\n\r\n\t.image-container {\r\n\t\t.overlay-wrapper {\r\n\t\t\timg {\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\tborder: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.overlay-wrapper.preview {\r\n\t\t\tposition: relative;\r\n\t\t\tz-index: 2;\r\n\r\n\t\t\t.overlay {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 57%;\r\n\t\t\t\tleft: -6.5px;\r\n\t\t\t\tz-index: 1;\r\n\r\n\t\t\t\tpath {\r\n\t\t\t\t\tfill: #333333;\r\n\t\t\t\t\t-webkit-filter: brightness(50%);\r\n\t\t\t\t\tfilter: brightness(50%);\r\n\t\t\t\t}\r\n\r\n\t\t\t\trect {\r\n\t\t\t\t\tfill: #333333;\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.overlay-text {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 59%;\r\n\t\t\t\tleft: 14%;\r\n\t\t\t\tz-index: 2;\r\n\t\t\t\tcolor: white;\r\n\t\t\t}\r\n\r\n\t\t\t.overlay.triangle {\r\n\t\t\t\tz-index: -1;\r\n\t\t\t\ttop: 57%;\r\n\t\t\t\tleft: -6.3px !important;\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t&.preview {\r\n\r\n\t\t.overlay {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\tright: 0;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.flyer-thumb-button.vertical {\r\n\tpadding: 0.5em;\r\n\tcolor: #000;\r\n\tfont-size: 0.7em;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: 1fr 0.85fr;\r\n\trow-gap: 0.5em;\r\n\tjustify-content: space-between;\r\n\tcursor: pointer;\r\n\r\n\t&.active {\r\n\t\tbox-shadow: none;\r\n\t\tbackground: #ebebeb;\r\n\t\tborder: solid 2px var(--secondary-color);\r\n\t}\r\n\r\n\t&:hover {\r\n\t\tbackground: #ebebeb;\r\n\r\n\t\tbutton {\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\t}\r\n\r\n\t.details {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tjustify-content: center;\r\n\t\tfont-size: 1.1em;\r\n\t\tmargin-left: 6px;\r\n\t\tmax-width: 8em;\r\n\t\tmin-width: 8em;\r\n\r\n\t\t.dates {\r\n\r\n\t\t\tfont-weight: bold;\r\n\t\t\tcolor: #434343;\r\n\t\t\tfont-size: 0.9em;\r\n\t\t}\r\n\r\n\t\t.title {\r\n\t\t\tcolor: #636363;\r\n\t\t\tfont-size: 1.1em;\r\n\t\t\tmargin-bottom: 2px;\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t.image-container {\r\n\t\tmax-width: 10em;\r\n\r\n\t\t.overlay-wrapper {\r\n\t\t\timg {\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\tborder: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.overlay-wrapper.preview {\r\n\t\t\tposition: relative;\r\n\r\n\t\t\t.overlay {\r\n\t\t\t\tleft: -6.5px;\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t&.preview {\r\n\t\t.overlay {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\tright: 0;\r\n\t\t\t// background: rgba(117, 117, 117, 0.8);\r\n\t\t}\r\n\t}\r\n\r\n\t.title {\r\n\t\tfont-size: 1em;\r\n\t}\r\n}\r\n\r\n.flyer-thumb-button.vertical.mobile {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tjustify-content: space-between;\r\n\tcursor: pointer;\r\n\r\n\t.text-overlay {\r\n\t\ttransform: translate(-95%, 74%);\r\n\t}\r\n\r\n\t.details {\r\n\t\tfont-size: 1.1em;\r\n\t\tmax-width: 9em;\r\n\t\tmin-width: 9em;\r\n\t}\r\n\r\n\t.title {\r\n\t\tfont-size: 0.9em;\r\n\t}\r\n\r\n\t.dates {\r\n\t\tmax-width: unset;\r\n\t}\r\n\r\n\t.overlay-wrapper.preview {\r\n\r\n\t\t.overlay {\r\n\t\t\tleft: -6px !important;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.flyer-thumb-button.vertical {\r\n\tborder: none;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbButtonVertical.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbButtonVertical.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlyerThumbButtonVertical.vue?vue&type=template&id=9c09f7ac&scoped=true&\"\nimport script from \"./FlyerThumbButtonVertical.vue?vue&type=script&lang=js&\"\nexport * from \"./FlyerThumbButtonVertical.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlyerThumbButtonVertical.vue?vue&type=style&index=0&id=9c09f7ac&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9c09f7ac\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"align-center\">\r\n <div class=\"flyer-thumb-list\" tabindex=\"0\">\r\n \r\n <component :is=\"blockComponent\" v-for=\"flyer in thumbs\" :key=\"flyer.title\" :flyer-data=\"flyer\" />\r\n \r\n </div>\r\n </div>\r\n \r\n</template>\r\n\r\n<script>\r\nimport FlyerThumbButton from \"@/features/flyer-selector/FlyerThumbButton.vue\";\r\nimport FlyerThumbButtonVertical from \"@/features/flyer-selector/FlyerThumbButtonVertical.vue\";\r\nimport {mapGetters} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"FlyerThumbList\",\r\n\tcomponents: {FlyerThumbButton, FlyerThumbButtonVertical},\r\n mixins:[featureMixin],\r\n data(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'flyerSelector',\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('landingPage', ['sortedFlyers']),\r\n ...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n\t\tthumbs() {\r\n return this.sortedFlyers;\r\n\t\t},\r\n blockComponent() {\r\n if (this._config.isCompactView) return FlyerThumbButtonVertical;\r\n else return FlyerThumbButton\r\n \r\n },\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlyerThumbList.vue?vue&type=template&id=060e8012&scoped=true&\"\nimport script from \"./FlyerThumbList.vue?vue&type=script&lang=js&\"\nexport * from \"./FlyerThumbList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"060e8012\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toggle-tab\",on:{\"click\":_vm.toggle}},[_c('img',{staticClass:\"flyer-book\",attrs:{\"src\":\"/images/icon-flyer.svg\",\"width\":\"22px\",\"height\":\"22px\",\"alt\":\"\"}}),_c('span',{staticClass:\"caption\",attrs:{\"data-tour-item\":\"flyer-selector\"}},[_vm._v(_vm._s(_vm.tabCaption))]),_c('rotate-chevron',{attrs:{\"direction\":_vm.chevronDirection}}),(_vm.isPoweredByTC)?_c('PoweredByTC'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"rotate-chevron\",class:( _obj = {}, _obj[_vm.direction] = true, _obj ),attrs:{\"viewBox\":\"0 0 256 512\"}},[_c('path',{attrs:{\"d\":\"M119.5 326.9L3.5 209.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L128 287.3l100.4-102.2c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L136.5 327c-4.7 4.6-12.3 4.6-17-.1z\",\"fill\":\"currentColor\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<svg class=\"rotate-chevron\" :class=\"{[direction]: true}\" viewBox=\"0 0 256 512\">\r\n\t\t<path d=\"M119.5 326.9L3.5 209.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L128 287.3l100.4-102.2c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L136.5 327c-4.7 4.6-12.3 4.6-17-.1z\" fill=\"currentColor\"></path>\r\n\t</svg>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\tname: \"RotateChevron\",\r\n\tprops:{\r\n\t\tdirection:{\r\n\t\t\ttype: String,\r\n\t\t\tdefault: \"down\"\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n<style scoped>\r\n .rotate-chevron {\r\n\t perspective: 1px;\r\n\t\twidth: inherit;\r\n\t\ttransition: transform .1s ease;\r\n}\r\n .bouncy-arrow.left {\r\n\t\t\ttransform: rotate(90deg);\r\n\t\t\tanimation: bounceLeft 1.2s infinite;\r\n\t\t}\r\n\t\t.bouncy-arrow.right {\r\n\t\t\ttransform: rotate(-90deg);\r\n\t\t\tanimation: bounceRight 1.2s infinite;\r\n\t\t}\r\n\t\t.bouncy-arrow.up {\r\n\t\t\ttransform: rotate(180deg);\r\n\t\t\tanimation: bounceUp 1.2s infinite;\r\n\t\t}\r\n\t\t.bouncy-arrow.down {\r\n\t\t\ttransform: rotate(0deg);\r\n\t\t\tanimation: bounceDown 1.2s infinite;\r\n\t\t}\r\n\t\r\n\t\t@keyframes bounceLeft {\r\n\t0%, 100%{\r\n\t\ttransform: matrix(0, 1, -1, 0, 10, 0)\r\n\t}\r\n\t50% {\r\n\t\ttransform: matrix(0, 1, -1, 0, -10, 0)\r\n\t}\r\n }\r\n\t\r\n @keyframes bounceRight {\r\n\t0%, 100%{\r\n\t\ttransform: matrix(0, -1, 1, 0, 10, 0)\r\n\t}\r\n\t50% {\r\n\t\ttransform: matrix(0, -1, 1, 0, -10, 0)\r\n\t}\r\n }\r\n \r\n @keyframes bounceUp{\r\n\t0%, 100%{\r\n\t\ttransform: rotate(180deg) translateY(-10px);\r\n\t}\r\n\t50% {\r\n\t\ttransform: rotate(180deg) translateY(10px);\r\n\t}\r\n }\r\n @keyframes bounceDown{\r\n\t0%, 100%{\r\n\t\ttransform: rotate(0deg) translateY(-10px);\r\n\t}\r\n\t50% {\r\n\t\ttransform: rotate(0deg) translateY(10px);\r\n\t}\r\n }\r\n\r\n\t\t\r\n</style>\r\n<style lang=\"scss\" scoped>\r\n .rotate-chevron {\r\n\t\twidth: inherit;\r\n\t\ttransition: transform .1s ease;\r\n\t\t&.left {\r\n\t\t\ttransform: rotate(90deg);\r\n\t\t}\r\n\t\t&.right {\r\n\t\t\ttransform: rotate(-90deg);\r\n\t\t}\r\n\t\t&.up {\r\n\t\t\ttransform: rotate(180deg);\r\n\t\t}\r\n\t}\r\n</style>\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotateChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotateChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RotateChevron.vue?vue&type=template&id=a5b9c05e&scoped=true&\"\nimport script from \"./RotateChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./RotateChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RotateChevron.vue?vue&type=style&index=0&id=a5b9c05e&scoped=true&lang=css&\"\nimport style1 from \"./RotateChevron.vue?vue&type=style&index=1&id=a5b9c05e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a5b9c05e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"powered-by\"},[_c('span',[_vm._v(_vm._s(_vm.content.poweredByTC))]),_c('svg',{attrs:{\"viewBox\":\"67.8722 199.3108 15.1522 23.0008\",\"width\":\"22.1522\",\"height\":\"29.0008\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',{staticStyle:{\"transform-origin\":\"2267.56px 1264.45px\"},attrs:{\"transform\":\"matrix(0, 0.005208001006, 0.005208001006, 0, -2193.312245009203, -1052.138311554853)\",\"fill\":\"#fff\",\"stroke\":\"none\"}},[_c('path',{attrs:{\"d\":\"M850 2060 c-156 -99 -290 -187 -297 -196 -18 -24 -18 -345 -1 -362 7 -7 43 -12 90 -12 72 0 78 -2 83 -22 2 -13 6 -180 8 -373 l3 -350 27 -80 c33 -99 59 -142 126 -210 58 -59 142 -104 241 -131 79 -22 338 -26 383 -6 l27 12 -2 187 -3 188 -120 5 c-134 6 -153 13 -202 77 l-28 36 0 331 0 331 175 5 175 5 0 190 0 190 -175 5 -175 5 -3 178 c-2 176 -3 177 -25 176 -12 -1 -150 -81 -307 -179z\"}}),_c('path',{attrs:{\"d\":\"M2159 1890 c-240 -59 -439 -225 -543 -452 -54 -117 -70 -196 -70 -338 0 -142 16 -221 70 -338 84 -185 236 -333 422 -412 169 -72 396 -80 572 -21 52 18 126 50 163 72 89 53 197 154 197 184 0 16 -37 58 -129 144 -71 66 -134 121 -141 121 -6 0 -32 -18 -57 -40 -160 -141 -392 -143 -541 -5 -249 230 -119 646 215 691 98 13 232 -32 316 -106 25 -22 52 -40 60 -40 19 0 267 262 267 282 0 21 -94 108 -165 153 -76 49 -180 91 -270 110 -102 21 -270 18 -366 -5z\"}}),_c('path',{attrs:{\"d\":\"M3609 1332 c-187 -97 -187 -367 0 -464 95 -50 217 -36 296 34 121 107 121 289 0 396 -79 70 -201 84 -296 34z\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\r\n <p class=\"powered-by\">\r\n <span>{{ content.poweredByTC }}</span>\r\n <svg viewBox=\"67.8722 199.3108 15.1522 23.0008\" width=\"22.1522\" height=\"29.0008\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g transform=\"matrix(0, 0.005208001006, 0.005208001006, 0, -2193.312245009203, -1052.138311554853)\"\r\n fill=\"#fff\" stroke=\"none\" style=\"transform-origin: 2267.56px 1264.45px;\">\r\n <path\r\n d=\"M850 2060 c-156 -99 -290 -187 -297 -196 -18 -24 -18 -345 -1 -362 7 -7 43 -12 90 -12 72 0 78 -2 83 -22 2 -13 6 -180 8 -373 l3 -350 27 -80 c33 -99 59 -142 126 -210 58 -59 142 -104 241 -131 79 -22 338 -26 383 -6 l27 12 -2 187 -3 188 -120 5 c-134 6 -153 13 -202 77 l-28 36 0 331 0 331 175 5 175 5 0 190 0 190 -175 5 -175 5 -3 178 c-2 176 -3 177 -25 176 -12 -1 -150 -81 -307 -179z\" />\r\n <path\r\n d=\"M2159 1890 c-240 -59 -439 -225 -543 -452 -54 -117 -70 -196 -70 -338 0 -142 16 -221 70 -338 84 -185 236 -333 422 -412 169 -72 396 -80 572 -21 52 18 126 50 163 72 89 53 197 154 197 184 0 16 -37 58 -129 144 -71 66 -134 121 -141 121 -6 0 -32 -18 -57 -40 -160 -141 -392 -143 -541 -5 -249 230 -119 646 215 691 98 13 232 -32 316 -106 25 -22 52 -40 60 -40 19 0 267 262 267 282 0 21 -94 108 -165 153 -76 49 -180 91 -270 110 -102 21 -270 18 -366 -5z\" />\r\n <path\r\n d=\"M3609 1332 c-187 -97 -187 -367 0 -464 95 -50 217 -36 296 34 121 107 121 289 0 396 -79 70 -201 84 -296 34z\" />\r\n </g>\r\n </svg>\r\n </p>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\n\r\nexport default {\r\n name: \"PoweredByTC\",\r\n mixins: [featureMixin],\r\n data() {\r\n return {\r\n featurePath: 'flyerSelector'\r\n }\r\n },\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.inline-flyer-selector {\r\n\r\n\r\n\r\n &.left {\r\n .toggle-tab {\r\n\r\n .powered-by {\r\n rotate: 180deg;\r\n margin-top: auto;\r\n font-size: 10px;\r\n cursor: default;\r\n }\r\n }\r\n\r\n }\r\n\r\n &.top {\r\n .powered-by {\r\n display: none;\r\n }\r\n }\r\n\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoweredByTC.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoweredByTC.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PoweredByTC.vue?vue&type=template&id=05217f8f&\"\nimport script from \"./PoweredByTC.vue?vue&type=script&lang=js&\"\nexport * from \"./PoweredByTC.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PoweredByTC.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"toggle-tab\" @click=\"toggle\">\r\n <img src=\"/images/icon-flyer.svg\" class=\"flyer-book\" width=\"22px\" height=\"22px\" alt=\"\"/>\r\n <span class=\"caption\" data-tour-item=\"flyer-selector\">{{ tabCaption }}</span>\r\n <rotate-chevron :direction=\"chevronDirection\" />\r\n <PoweredByTC v-if=\"isPoweredByTC\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport RotateChevron from \"@/components/buttons/RotateChevron.vue\";\r\nimport PoweredByTC from \"@/features/flyer-selector/inline/PoweredByTC.vue\"\r\nimport Lytics from \"@/classes/Lytics\";\r\n\r\n\r\nexport default {\r\nname: \"InlineFlyerSelectorDefault\",\r\ncomponents: {RotateChevron, PoweredByTC},\r\nmixins:[featureMixin],\r\ndata(){\r\nreturn {\r\n featurePath: 'flyerSelector'\r\n}\r\n},\r\ncomputed:{\r\nisPoweredByTC() {\r\nreturn this.config?.poweredByTC\r\n},\r\nchevronDirection(){\r\n const cd = {\r\n 'left': this.showList? 'left': 'right',\r\n 'right': this.showList? 'right': 'left',\r\n 'top': this.showList? 'up': 'down',\r\n 'bottom': this.showList? 'down': 'up'\r\n }\r\n return cd[this.config.position];\r\n},\r\ntabCaption(){\r\n return this.showList? this.content?.flyerSelector?.hideFlyers: this.content?.flyerSelector?.showFlyers\r\n},\r\nshowList(){\r\n return !!this._config.isVisible;\r\n},\r\n},\r\nmethods:{\r\ntoggle(){\r\n this._config.isVisible = !this._config.isVisible;\r\n Lytics.TriggerDrawerToggle(this._config.isVisible)\r\n},\r\n}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.inline-flyer-selector {\r\n--drawer-open-width: 10em;\r\ndisplay: flex;\r\ncolor: #fff;\r\n.toggle-tab {\r\n position: relative;\r\n background-color: #333333;\r\n display: flex;\r\n writing-mode: vertical-rl;\r\n //column-gap: 0.5em;\r\n cursor: pointer;\r\n align-items: center;\r\n .caption {\r\n rotate: 180deg;\r\n font-size: 0.8em;\r\n }\r\n .rotate-chevron {\r\n width: 0.6em;\r\n }\r\n \r\n}\r\n\r\n&.left{\r\n .toggle-tab {\r\n padding: 1em 0;\r\n width: 38px;\r\n border-radius: 0 4px 4px 0;\r\n > * {\r\n margin-bottom: 0.5em;\r\n }\r\n }\r\n}\r\n&.top{\r\n flex-direction: column;\r\n .toggle-tab {\r\n writing-mode: initial;\r\n justify-content: center;\r\n padding: 0.5em;\r\n border-radius: 0 0 4px 4px;\r\n .caption {\r\n rotate: 0deg;\r\n }\r\n > * {\r\n margin-right: 0.5em;\r\n } \r\n }\r\n}\r\n\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelectorDefault.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelectorDefault.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InlineFlyerSelectorDefault.vue?vue&type=template&id=f7bed57e&\"\nimport script from \"./InlineFlyerSelectorDefault.vue?vue&type=script&lang=js&\"\nexport * from \"./InlineFlyerSelectorDefault.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InlineFlyerSelectorDefault.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toggle-tab\",on:{\"click\":_vm.toggle}},[_c('rotate-chevron',{staticClass:\"bouncy-arrow\",attrs:{\"direction\":_vm.chevronDirection}}),_c('img',{staticClass:\"flyer-book\",attrs:{\"src\":\"/images/icon-flyer.svg\",\"width\":\"22px\",\"height\":\"22px\",\"alt\":\"\"}}),_c('span',{staticClass:\"caption\",attrs:{\"data-tour-item\":\"flyer-selector\"}},[_vm._v(_vm._s(_vm.tabCaption))]),(_vm.isPoweredByTC)?_c('PoweredByTC'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\r\n <div class=\"toggle-tab\" @click=\"toggle\">\r\n <rotate-chevron :direction=\"chevronDirection\" class=\"bouncy-arrow\"/>\r\n <img src=\"/images/icon-flyer.svg\" class=\"flyer-book\" width=\"22px\" height=\"22px\" alt=\"\"/>\r\n <span class=\"caption\" data-tour-item=\"flyer-selector\">{{ tabCaption }}</span>\r\n <PoweredByTC v-if=\"isPoweredByTC\" />\r\n </div>\r\n\r\n\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport RotateChevron from \"@/components/buttons/RotateChevron.vue\";\r\nimport PoweredByTC from \"@/features/flyer-selector/inline/PoweredByTC.vue\"\r\nimport Lytics from \"@/classes/Lytics\";\r\n\r\n\r\nexport default {\r\nname: \"InlineFlyerSelector\",\r\ncomponents: { RotateChevron, PoweredByTC},\r\nmixins:[featureMixin],\r\ndata(){\r\nreturn {\r\n featurePath: 'flyerSelector'\r\n}\r\n},\r\ncomputed:{\r\nisPoweredByTC() {\r\nreturn this.config?.poweredByTC\r\n},\r\nchevronDirection(){\r\n const cd = {\r\n 'left': this.showList? 'left': 'right',\r\n 'right': this.showList? 'right': 'left',\r\n 'top': this.showList? 'up': 'down',\r\n 'bottom': this.showList? 'down': 'up'\r\n }\r\n return cd[this.config.position];\r\n},\r\ntabCaption(){\r\n return this.showList? this.content?.flyerSelector?.hideFlyers: this.content?.flyerSelector?.showFlyers\r\n},\r\nshowList(){\r\n return !!this._config.isVisible;\r\n},\r\n},\r\nmethods:{\r\ntoggle(){\r\n this._config.isVisible = !this._config.isVisible;\r\n Lytics.TriggerDrawerToggle(this._config.isVisible)\r\n},\r\n}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.inline-flyer-selector {\r\n--drawer-open-width: 10em;\r\ndisplay: flex;\r\ncolor: #fff;\r\n.toggle-tab {\r\n position: relative;\r\n background-color: #333333;\r\n display: flex;\r\n writing-mode: vertical-rl;\r\n //column-gap: 0.5em;\r\n cursor: pointer;\r\n align-items: center;\r\n .caption {\r\n rotate: 180deg;\r\n font-size: 0.8em;\r\n }\r\n .rotate-chevron {\r\n width: 0.6em;\r\n }\r\n \r\n}\r\n\r\n\r\n&.left{\r\n .toggle-tab {\r\n padding: 1em 0;\r\n width: 38px;\r\n border-radius: 0 4px 4px 0;\r\n > * {\r\n margin-bottom: 0.5em;\r\n }\r\n }\r\n}\r\n&.top{\r\n flex-direction: column;\r\n .toggle-tab {\r\n writing-mode: initial;\r\n justify-content: center;\r\n padding: 0.5em;\r\n border-radius: 0 0 4px 4px;\r\n .caption {\r\n rotate: 0deg;\r\n }\r\n > * {\r\n margin-right: 0.5em;\r\n } \r\n }\r\n}\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelectorCTC.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelectorCTC.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InlineFlyerSelectorCTC.vue?vue&type=template&id=261135ff&\"\nimport script from \"./InlineFlyerSelectorCTC.vue?vue&type=script&lang=js&\"\nexport * from \"./InlineFlyerSelectorCTC.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InlineFlyerSelectorCTC.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"inline-flyer-selector\" \r\n\t:class=\"dynamicClasses\" \r\n\tv-bind=\"config.attrs\" v-click-outside=\"autoClose\">\r\n\t\t<config-style-injector :root-selector=\"`.inline-flyer-selector`\" :config=\"config\" />\r\n\t\t<div class=\"flyer-list\" :class=\"{ open: showList }\">\r\n\t\t\t<flyer-thumb-list />\r\n\t\t</div>\r\n\t\t <component :is=\"flyerSelectorTemplate\" />\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\nimport FlyerThumbList from \"@/features/flyer-selector/FlyerThumbList.vue\";\r\nimport InlineFlyerSelectorDefault from \"@/features/flyer-selector/inline/InlineFlyerSelectorDefault.vue\"\r\nimport InlineFlyerSelectorCTC from \"@/features/flyer-selector/inline/InlineFlyerSelectorCTC.vue\"\r\nimport Lytics from \"@/classes/Lytics\";\r\nimport { mapGetters, mapState } from \"vuex\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\nexport default {\r\n\tname: \"InlineFlyerSelector\",\r\n\tcomponents: {FlyerThumbList, ConfigStyleInjector},\r\n\tmixins:[featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'flyerSelector',\r\n\t\t\timpressionFired: false,\r\n\t\t\tisHidden: false,\r\n\t\t\tlastScrollPosition: 0,\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n if(this.config.position==='top' && this.config._flyerOrientation['+vertical'].defaultVisibility !== undefined)\r\n this._config.isVisible = this.config._flyerOrientation['+vertical']?.defaultVisibility;\r\n else\r\n this._config.isVisible = true\r\n\r\n if(this.config.defaultVisibility !== undefined && !this._config.__hasLoaded) {\r\n\t\t\tthis._config.isVisible = this.config.defaultVisibility;\r\n\t\t}\r\n\t\tthis._config.__hasLoaded = true;\r\n\t},\r\n\tcomputed:{\r\n\t\t...mapGetters('landingPage', ['sortedFlyers', 'currentFlyer']),\r\n\t\t...mapGetters('raddar', ['isRaddar']),\r\n\t\t...mapGetters('screen', ['displayMode', 'flyerOrientation']),\r\n\t\t...mapState('scale', ['scrollY']),\r\n\t\t...mapState('drawer', ['drawerItems']),\r\n\t\ttemplates() {\r\n return {\r\n ctc: InlineFlyerSelectorCTC,\r\n default: InlineFlyerSelectorDefault\r\n };\r\n },\r\n\tdynamicClasses() {\r\n\t\treturn [\r\n\t\t\tthis.config.position,\r\n\t\t\tthis.isCompactView ? 'compact-view': '',\r\n\t\t\tthis.isVertical ? 'vertical': '',\r\n\t\t\tthis.isMobile ? 'mobile': '',\r\n\t\t\tthis.isConfigurable ? 'configurable': ''\r\n\t\t];\r\n\t},\r\n\tflyerSelectorTemplate() {\r\n const t = this.templates;\r\n return t[this.config.template] || InlineFlyerSelectorDefault;\r\n },\r\n\tisVertical() {\r\n\t\t\treturn this.flyerOrientation === 'vertical';\r\n\t\t},\r\n\t\tisConfigurable() {\r\n\t\t\treturn this.flyerOrientation === 'vertical' && this.displayMode === 'desktop' && this.flyerDrawer;\r\n\t\t},\r\n\t\tflyerDrawer() {\r\n return this.features.flyerSelector._flyerOrientation['+vertical']?.['_display']?.['+desktop']?.position === 'left';\r\n\t\t},\r\n\t\tisCompactView() {\r\n\t\t\treturn this._config.isCompactView\r\n\t\t},\r\n\t\tisMobile() {\r\n\t\t\treturn this.displayMode === 'mobile';\r\n\t\t},\r\n\t\tshowList(){\r\n\t\t\treturn !!this._config.isVisible;\r\n\t\t},\r\n\t},\r\n\tmethods:{\r\n\t\tautoClose(){\r\n\t\t\tif(this.config.autoClose)this._config.isVisible = false;\r\n\t\t},\r\n\r\n\t\ttriggerFlyerImpressions() {\r\n\t\t\tif (!this.showList) return;\r\n\t\t\tif (this.impressionFired) return;\r\n\r\n\t\t\t// filter out current flyer impression so it can be handled by flyer load to account for drawer not opened\r\n\t\t\tconst sortedFlyersMinusCurrentFlyer = this.sortedFlyers.filter(flyer => flyer.title !== this.currentFlyer.title);\r\n\r\n\t\t\tsortedFlyersMinusCurrentFlyer.forEach(flyer => {\r\n\t\t\t\tLytics.TriggerFlyerImpression({ \r\n\t\t\t\t\tflyer,\r\n\t\t\t\t\tclient: AppConfig.AppConf?.retailer,\r\n\t\t\t\t\tbanner: AppConfig.AppConf?.title,\r\n\t\t\t\t\tstore_id: this.$route.query.storeId,\r\n\t\t\t\t\tplatform: this.isRaddar ? \"raddar\" : \"client_site\"\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tthis.impressionFired = true;\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\tshowList: {\r\n\t\t\thandler() {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.triggerFlyerImpressions();\r\n\t\t\t\t}, 500);\r\n\t\t\t},\r\n\t\t\timmediate: true\r\n\t\t},\r\n\t\tscrollY(newValue) {\r\n\t\t\tif (newValue > 30 && this._config.shouldHide && newValue > this.lastScrollPosition && !this.isConfigurable) {\r\n\t\t\t\tthis._config.isVisible = false;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis._config.shoudHide = false;\r\n\t\t\t}\r\n\t\t\tthis.lastScrollPosition = newValue\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.drawer-container.left\t.inline-flyer-selector.configurable {\r\n\t\t--drawer-open-width: 11em;\r\n\t\tdisplay: flex;\r\n\t\tcolor: #fff;\r\n\r\n\t\t&.left{\r\n\t\t\t.flyer-list{\r\n\t\t\t\twidth: 0px;\r\n\t\t\t\t&.open{\r\n\t\t\t\t\twidth: var(--drawer-open-width);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t.image-container {\r\n\t\t\tmax-width: unset;\r\n\t\t}\r\n\t\t.details {\r\n\t\t\t.title {\r\n\t\t\t\tfont-size: 0.9em;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n.inline-flyer-selector.compact-view {\r\n\t.flyer-thumb-button {\r\n\t\t\t\t\t\tdiv.thumbnail {\r\n\t\t\t\t\t\t\tborder: none;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n}\r\n.inline-flyer-selector.vertical.compact-view {\r\n\t&.top {\r\n\r\n\t\t.flyer-list {\r\n\t\t\theight: 0;\r\n\r\n\r\n\t\t\t&.open {\r\n\t\t\t\theight: 7em;\r\n\t\t\t}\r\n\r\n\t\t\t.align-center {\r\n\t\t\t\t// overflow: auto;\r\n\t\t\t\tjustify-content: center;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tbottom: 0;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\tright: 0;\r\n\t\t\t\toverflow-x: auto;\r\n\t\t\t\toverflow-y: hidden;\r\n\r\n\t\t\t\t.flyer-thumb-list {\r\n\t\t\t\t\talign-items: flex-start;\r\n\t\t\t\t\tposition: unset;\r\n\t\t\t\t\t// width: 100%;\r\n\t\t\t\t\t// justify-content: center;\r\n\t\t\t\t\t// overflow: unset;\r\n\t\t\t\t\toverflow-x: auto;\r\n\t\t\t\t overflow-y: hidden;\r\n\r\n\t\t\t\t\t.flyer-thumb-button {\r\n\t\t\t\t\t\twidth: unset;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n.inline-flyer-selector.vertical.mobile.compact-view {\r\n\t&.top {\r\n\r\n\t\t.flyer-list {\r\n\t\t\theight: 0;\r\n\r\n\t\t\t&.open {\r\n\t\t\t\theight: 10.5em;\r\n\t\t\t}\r\n\r\n\t\t\t.align-center {\r\n\t\t\t\t// overflow: auto;\r\n\t\t\t\tjustify-content: unset;\r\n\r\n\r\n\t\t\t}\r\n\r\n\t\t\t.flyer-thumb-list {\r\n\t\t\t\tjustify-content: unset;\r\n\t\t\t\t.flyer-thumb-button {\r\n\t\t\t\t\t\twidth: 11em;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\t.inline-flyer-selector {\r\n\t\t--drawer-open-width: 10em;\r\n\t\tdisplay: flex;\r\n\t\tcolor: #fff;\r\n\t\t.toggle-tab {\r\n\t\t\tposition: relative;\r\n\t\t\tbackground-color: #333333;\r\n\t\t\tdisplay: flex;\r\n\t\t\twriting-mode: vertical-rl;\r\n\t\t\t//column-gap: 0.5em;\r\n\t\t\tcursor: pointer;\r\n\t\t\talign-items: center;\r\n\t\t\t.caption {\r\n\t\t\t\trotate: 180deg;\r\n\t\t\t\tfont-size: 0.8em;\r\n\t\t\t}\r\n\t\t\t.rotate-chevron {\r\n\t\t\t\twidth: 0.6em;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\t.flyer-list{\r\n\t\t\t::-webkit-scrollbar{\r\n\t\t\t\twidth: 8px;\r\n\t\t\t\theight: 8px;\r\n\t\t\t\tborder-radius: 3px;\r\n\t\t\t}\r\n\t\t\t::-webkit-scrollbar-thumb{\r\n\t\t\t\tborder-radius: 4px;\r\n\t\t\t}\r\n\t\t\t::-webkit-scrollbar-track {\r\n\t\t\t\twidth: 8px;\r\n\t\t\t\theight: 8px;\r\n\t\t\t}\r\n\t\t\t::-webkit-scrollbar-track-piece{\r\n\t\t\t\twidth: 8px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.left{\r\n\t\t\t.flyer-list{\r\n\t\t\t\twidth: 0px;\r\n\t\t\t\t&.open{\r\n\t\t\t\t\twidth: var(--drawer-open-width);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t&.top{\r\n\t\t\tflex-direction: column;\r\n\t\t\t.flyer-list{\r\n\t\t\t\theight: 0;\r\n\t\t\t\t&.open{\r\n\t\t\t\t\theight: 12em;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t.flyer-thumb-list {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\t//column-gap: 0.6em;\r\n\t\t\t\tpadding: 0.5em;\r\n\t\t\t\talign-items: center;\r\n\t\t\t\t>* {\r\n\t\t\t\t\tmargin-right: 1em !important;\r\n\t\t\t\t}\r\n\t\t\t\t.flyer-thumb-button {\r\n\t\t\t\t\twidth: 12em;\r\n\t\t\t\t\tflex: none;\r\n\t\t\t\t\tmargin: 0;\r\n\t\t\t\t\theight: fit-content;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.flyer-list {\r\n\t\t\ttransition: width 0.3s cubic-bezier(0.4, 0.0, 0.2, 1), height 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);\r\n\t\t\tposition: relative;\r\n\t\t\t.flyer-thumb-list {\r\n\t\t\t\tposition:absolute;\r\n\t\t\t\ttop:0;\r\n\t\t\t\tbottom:0;\r\n\t\t\t\tleft:0;\r\n\t\t\t\tright:0;\r\n\t\t\t\toverflow: auto;\r\n\t\t\t\t.top &{\r\n\t\t\t\t\tbottom: 0;\r\n\t\t\t\t}\r\n\t\t\t\t.left &{\r\n\t\t\t\t\tright: 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t.flyer-thumb-button {\r\n\t\t\tmargin: 1em;\r\n\t\t}\r\n\t}\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InlineFlyerSelector.vue?vue&type=template&id=4f463df7&\"\nimport script from \"./InlineFlyerSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./InlineFlyerSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InlineFlyerSelector.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.emailSignup.toolTip}),expression:\"{ content: content.emailSignup.toolTip}\"}],staticClass:\"email-signup btn\",attrs:{\"data-tour-item\":\"emailSignup\"},domProps:{\"innerHTML\":_vm._s(_vm.config.label)},on:{\"click\":_vm.showSignup}},'button',_vm.config.attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<button class=\"email-signup btn\" v-tooltip=\"{ content: content.emailSignup.toolTip}\" @click=\"showSignup\" data-tour-item=\"emailSignup\" v-bind=\"config.attrs\" v-html=\"config.label\" >\r\n<!--\t\t<span class=\"signup-text\">{{ content.emailSignup }}</span>\r\n\t\t<img class=\"email-icon\" src=\"/icons/icon-mail.svg\" />-->\r\n\t</button>\r\n</template>\r\n\r\n<script>\r\n\r\nimport {mapActions, mapGetters} from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport Lytics from \"../../classes/Lytics\";\r\n//import ParentComms from \"@/classes/ParentComms\";\r\n\r\nexport default {\r\n\tname: \"emailSignupButton\",\r\n\tmixins:[featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'emailSignup'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['content'])\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\tshowSignup() {\r\n\t\t\tthis.triggerEvent({event: 'emailSignUp'})\r\n\t\t\tLytics.TriggerEmailSignupClick();\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.email-signup {\r\n\tbackground-color: var(--secondary-color) !important;\r\n\tcolor: #fff !important;\r\n\ttext-transform: uppercase;\r\n\r\n\t.email-icon {\r\n\t\twidth: 24px;\r\n\t}\r\n\t&:hover{\r\n\t\tbackground-color: #ca1f25 !important;\r\n\t}\r\n\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emailSignupButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emailSignupButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./emailSignupButton.vue?vue&type=template&id=3f44b62e&scoped=true&\"\nimport script from \"./emailSignupButton.vue?vue&type=script&lang=js&\"\nexport * from \"./emailSignupButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./emailSignupButton.vue?vue&type=style&index=0&id=3f44b62e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f44b62e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"signup-container\"},[_c('button',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.content.emailSignup.toolTip }),expression:\"{ content: content.emailSignup.toolTip }\"}],staticClass:\"email-signup btn\",attrs:{\"data-tour-item\":\"emailSignup\",\"tabindex\":\"0\"},on:{\"click\":_vm.showSignup}},'button',_vm.config.attrs,false),[_c('svg',{attrs:{\"role\":\"img\",\"title\":_vm.content.emailSignup.label,\"aria-labelledby\":\"emailSignup\",\"xmlns:dc\":\"http://purl.org/dc/elements/1.1/\",\"xmlns:cc\":\"http://creativecommons.org/ns#\",\"xmlns:rdf\":\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\"xmlns:svg\":\"http://www.w3.org/2000/svg\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"width\":\"22px\",\"height\":\"24px\",\"viewBox\":\"0 4 32 24\",\"xml:space\":\"preserve\"}},[_c('path',{attrs:{\"id\":\"path3040\",\"fill\":\"#545454\",\"d\":\"M 0,4 V 28 H 32 V 4 H 0 z M 28.149,6 15.998,15.719 3.851,6 H 28.149 z M 2,25.999 V 7.081 L 15.998,18.278 29.999,7.081 V 25.999 H 2 z\"}})]),_c('span',{staticClass:\"panel-label\"},[_vm._v(_vm._s(_vm.content.emailSignup.label))])]),_c('span',{staticClass:\"separator-right\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"signup-container\">\r\n\t\t<button class=\"email-signup btn\" v-tooltip=\"{ content: content.emailSignup.toolTip }\" @click=\"showSignup\"\r\n\t\t\tdata-tour-item=\"emailSignup\" v-bind=\"config.attrs\" tabindex=\"0\">\r\n\t\t\t<!--\t\t<span class=\"signup-text\">{{ content.emailSignup }}</span>\r\n\t\t<img class=\"email-icon\" src=\"/icons/icon-mail.svg\" />-->\r\n\t\t\t<svg role=\"img\" :title=\"content.emailSignup.label\" aria-labelledby=\"emailSignup\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\"\r\n\t\t\t\txmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:svg=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" x=\"0px\" y=\"0px\" width=\"22px\" height=\"24px\"\r\n\t\t\t\tviewBox=\"0 4 32 24\" xml:space=\"preserve\">\r\n\t\t\t\t<path id=\"path3040\" fill=\"#545454\"\r\n\t\t\t\t\td=\"M 0,4 V 28 H 32 V 4 H 0 z M 28.149,6 15.998,15.719 3.851,6 H 28.149 z M 2,25.999 V 7.081 L 15.998,18.278 29.999,7.081 V 25.999 H 2 z\" />\r\n\t\t\t</svg>\r\n\t\t\t<span class=\"panel-label\">{{ content.emailSignup.label }}</span>\r\n\r\n\t\t</button>\r\n\t\t<span class=\"separator-right\"></span>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport Lytics from \"../../classes/Lytics\";\r\n//import ParentComms from \"@/classes/ParentComms\";\r\n\r\nexport default {\r\n\tname: \"emailSignupButtonV2\",\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'emailSignup'\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['content'])\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\tshowSignup() {\r\n\t\t\tthis.triggerEvent({ event: 'emailSignUp' })\r\n\t\t\tLytics.TriggerEmailSignupClick();\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.signup-container {\r\n\tdisplay: inline-flex;\r\n\r\n\tbutton.email-signup {\r\n\t\tmargin-left: 10px;\r\n\t\tpadding: 0;\r\n background: none;\r\n\r\n\t\tsvg {\r\n\t\t\twidth: 22px;\r\n\t\t}\r\n svg path {\r\n fill: var(--secondary-color);\r\n }\r\n\r\n\t\tspan {\r\n\t\t\tfont-size: 14px;\r\n color: var(--secondary-color);\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emailSignupButtonV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emailSignupButtonV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./emailSignupButtonV2.vue?vue&type=template&id=a035890e&scoped=true&\"\nimport script from \"./emailSignupButtonV2.vue?vue&type=script&lang=js&\"\nexport * from \"./emailSignupButtonV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./emailSignupButtonV2.vue?vue&type=style&index=0&id=a035890e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a035890e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({staticClass:\"range-filter\"},'div',_vm.config.attrs,false),[(_vm.config.mode === 'inline')?_c('range-inline',{attrs:{\"items\":_vm._config.items,\"label\":_vm.config.label},on:{\"select\":_vm.onSelect}}):(_vm.config.mode === 'dropdown')?_c('range-dropdown',{attrs:{\"label\":_vm.config.label,\"items\":_vm._config.items},on:{\"select\":_vm.onSelect}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dropdown',{staticClass:\"range-dropdown filter-dropdown\",scopedSlots:_vm._u([{key:\"btn\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.label))])]},proxy:true},{key:\"body\",fn:function(){return [_c('range-list',{attrs:{\"items\":_vm.items},on:{\"select\":function($event){return _vm.$emit('select', $event)}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"range-list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:item.name,class:{'list-item': true, selected:item.selected, active: index === _vm.selected},attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.selectItem(index)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.selectItem(index)}}},[_vm._v(_vm._s(item.label))])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"range-list\">\r\n\t\t<div\r\n\t\t v-for=\"(item, index) in items\"\r\n\t\t :key=\"item.name\"\r\n\t\t :class=\"{'list-item': true, selected:item.selected, active: index === selected}\"\r\n\t\t @click=\"selectItem(index)\"\r\n\t\t\t @keydown.enter=\"selectItem(index)\"\r\n\t\t\t tabindex=\"0\"\r\n\t\t>{{ item.label }}</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\tname: \"RangeList\",\r\n\tprops:{\r\n\t\t'items':{\r\n\t\t\ttype: Array\r\n\t\t}\r\n\t},\r\n\tcomputed:{\r\n\t\tselected(){\r\n\t\t\tconst items = this.items;\r\n\t\t\tlet selected = null;\r\n\t\t\tfor(let i=0; i < items.length; i++){\r\n\t\t\t\tconst item = items[i];\r\n\t\t\t\tif(item.selected) selected = i;\r\n\t\t\t}\r\n\t\t\treturn selected;\r\n\t\t}\r\n\t},\r\n\tmethods:{\r\n\t\tselectItem(index) {\r\n\t\t\tconst items = this.items;\r\n\t\t\tconst shouldDeselect = this.items[index].selected && index == this.selected\r\n\t\t\tfor(let i=0; i < items.length; i++){\r\n\t\t\t\tif(shouldDeselect) {\r\n\t\t\t\t\titems[i].selected = false;\r\n\t\t\t\t} else {const item = items[i];\r\n\t\t\t\t\titem.selected = i <= index;}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\tthis.$emit('select', items[index]);\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.range-list{\r\n\t\t// padding: 4px 0;\r\n\t\t.list-item {\r\n\t\t\tdisplay: flex;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-content: center;\r\n\t\t\tflex-wrap: wrap;\r\n\t\t\theight: 35px;\r\n\t\t\tpadding: 0px 8px;\r\n\t\t\tbackground-color: #fff;\r\n\t\t\tcursor: pointer;\r\n\t\t\tuser-select: none;\r\n\t\t\t&.selected {\r\n\t\t\t\tbackground-color: #d5d5d5;\r\n\t\t\t\t&.active{\r\n\t\t\t\t\tbackground-color: red;\r\n\t\t\t\t\tcolor: #fff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t[mode='tablet'],\r\n\t[mode='mobile'] {\r\n .range-list {\r\n\t\tpadding: 4px 0;\r\n\t }\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangeList.vue?vue&type=template&id=830cd336&\"\nimport script from \"./RangeList.vue?vue&type=script&lang=js&\"\nexport * from \"./RangeList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RangeList.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<dropdown class=\"range-dropdown filter-dropdown\">\r\n\t\t<template #btn>\r\n\t\t\t<span>{{ label }}</span>\r\n\t\t</template>\r\n\t\t<template #body>\r\n\t\t\t<range-list :items=\"items\" @select=\"$emit('select', $event)\"/>\r\n\t\t</template>\r\n\t</dropdown>\r\n</template>\r\n\r\n<script>\r\nimport Dropdown from \"@/components/bp-vuejs-dropdown/Dropdown.vue\";\r\nimport RangeList from \"@/features/filters/range/RangeList.vue\";\r\n\r\nexport default {\r\n\tname: \"RangeDropdown\",\r\n\tcomponents: {RangeList, Dropdown},\r\n\tprops:{\r\n\t\titems:{\r\n\t\t\ttype:Array\r\n\t\t},\r\n\t\tlabel:{\r\n\t\t\ttype: String\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.range-dropdown{\r\n\t\theight: 35px;\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeDropdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeDropdown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangeDropdown.vue?vue&type=template&id=549efc67&\"\nimport script from \"./RangeDropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./RangeDropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RangeDropdown.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"range-inline\"},[_vm._v(\" \"+_vm._s(_vm.label)+\" \"),_c('range-list',{attrs:{\"items\":_vm.items},on:{\"select\":function($event){return _vm.$emit('select', $event)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"range-inline\">\r\n\t\t{{label}} <range-list :items=\"items\" @select=\"$emit('select', $event)\"/>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport RangeList from \"@/features/filters/range/RangeList.vue\";\r\n\r\nexport default {\r\n\tname: \"RangeInline\",\r\n\tcomponents: {RangeList},\r\n\tprops:{\r\n\t\titems:{\r\n\t\t\ttype:Array\r\n\t\t},\r\n\t\tlabel:{\r\n\t\t\ttype: String\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.range-inline {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\t\tflex-wrap: wrap;\r\n\t\talign-items: center;\r\n\t\tmargin-left: 2em;\r\n\t\t.range-list{\r\n\t\t\tdisplay: flex;\r\n\t\t\toverflow: hidden;\r\n\t\t\tborder-radius: 4px;\r\n\t\t\tborder: 1px solid #aeaeae;\r\n\t\t\t.list-item {\r\n\t\t\t\tborder-right: 1px solid #aeaeae;\r\n\t\t\t\t&:last-child{\r\n\t\t\t\t\tborder-right: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeInline.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeInline.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangeInline.vue?vue&type=template&id=06b49831&\"\nimport script from \"./RangeInline.vue?vue&type=script&lang=js&\"\nexport * from \"./RangeInline.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RangeInline.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"range-filter\" v-bind=\"config.attrs\">\r\n\t\t<range-inline v-if=\"config.mode === 'inline'\" :items=\"_config.items\" :label=\"config.label\" @select=\"onSelect\" />\r\n\t\t<range-dropdown v-else-if=\"config.mode === 'dropdown'\" :label=\"config.label\" :items=\"_config.items\" @select=\"onSelect\" />\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport RangeDropdown from \"@/features/filters/range/RangeDropdown.vue\";\r\nimport RangeInline from \"@/features/filters/range/RangeInline.vue\";\r\nimport {mapActions} from \"vuex\";\r\n\r\nexport default {\r\n\tname: \"RangeFilter\",\r\n\tcomponents: {RangeInline, RangeDropdown},\r\n\tmixins:[featureMixin],\r\n\tmethods:{\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\tonSelect(item) {\r\n\t\t\tthis.triggerEvent({\r\n\t\t\t\tevent: `filter-toggle-event-${this.config.name}`,\r\n\t\t\t\tdata: item\r\n\t\t\t})\r\n\t\t\t//console.log('RangeFilter Select:', item)\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\t.range-filter{\r\n\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeFilter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeFilter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangeFilter.vue?vue&type=template&id=722a070e&scoped=true&\"\nimport script from \"./RangeFilter.vue?vue&type=script&lang=js&\"\nexport * from \"./RangeFilter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RangeFilter.vue?vue&type=style&index=0&id=722a070e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"722a070e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn\",on:{\"click\":_vm.handleClick}},[_c('svg',{attrs:{\"viewBox\":\"0 0 512 512\"}},[_c('path',{attrs:{\"d\":\"m420 329c-28 0-54 13-71 35l-170-84c2-8 4-16 4-24 0-8-2-16-4-24l170-84c17 22 43 35 71 35 51 0 92-41 92-92 0-50-41-91-92-91-50 0-91 41-91 91 0 8 1 16 3 24l-169 85c-17-22-44-35-72-35-50 0-91 41-91 91 0 50 41 91 91 91 28 0 55-13 72-35l169 85c-10 38 5 78 38 100 33 21 75 20 106-4 31-24 44-65 31-102-13-37-48-62-87-62z m0-292c31 0 55 24 55 54 0 31-24 55-55 55-30 0-55-24-55-55 0-30 25-54 55-54z m-329 274c-30 0-54-25-54-55 0-30 24-55 54-55 31 0 55 25 55 55 0 30-24 55-55 55z m329 164c-30 0-55-24-55-54 0-31 25-55 55-55 31 0 55 24 55 55 0 30-24 54-55 54z\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {mapActions} from \"vuex\";\r\nimport ParentComms from \"@/classes/ParentComms\";\r\n\r\nexport default {\r\n\tname: \"ShareButton\",\r\n\tmixins:[featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'share',\r\n\t\t\tfeatureEvents: ['iframe-event-share']\r\n\t\t}\r\n\t},\r\n\tmethods:{\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\thandleClick(){\r\n ParentComms.SendEvent('share', { showDialog: true});\r\n\t\t\t//this.triggerEvent({event: 'share-button-click', data: this})\r\n\t\t}/*,\r\n\t\tonFeatureEvent(event, data){\r\n\r\n\t\t}*/\r\n\t}\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<button class=\"btn\" @click=\"handleClick\">\r\n\t\t<svg viewBox=\"0 0 512 512\">\r\n\t\t\t\t<path d=\"m420 329c-28 0-54 13-71 35l-170-84c2-8 4-16 4-24 0-8-2-16-4-24l170-84c17 22 43 35 71 35 51 0 92-41 92-92 0-50-41-91-92-91-50 0-91 41-91 91 0 8 1 16 3 24l-169 85c-17-22-44-35-72-35-50 0-91 41-91 91 0 50 41 91 91 91 28 0 55-13 72-35l169 85c-10 38 5 78 38 100 33 21 75 20 106-4 31-24 44-65 31-102-13-37-48-62-87-62z m0-292c31 0 55 24 55 54 0 31-24 55-55 55-30 0-55-24-55-55 0-30 25-54 55-54z m-329 274c-30 0-54-25-54-55 0-30 24-55 54-55 31 0 55 25 55 55 0 30-24 55-55 55z m329 164c-30 0-55-24-55-54 0-31 25-55 55-55 31 0 55 24 55 55 0 30-24 54-55 54z\"/>\r\n\t\t</svg>\r\n\t</button>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n\tsvg {\r\n\t width: 1rem;\r\n\t height: 1rem;\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShareButton.vue?vue&type=template&id=3032eff5&scoped=true&\"\nimport script from \"./ShareButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ShareButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShareButton.vue?vue&type=style&index=0&id=3032eff5&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3032eff5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn\",class:{'is-fav':_vm.isFav},on:{\"click\":_vm.handleClick}},[_c('svg',{attrs:{\"id\":\"heart\",\"viewBox\":\"0 0 512 512\"}},[_c('path',{attrs:{\"d\":\"m255 90c-23-28-62-64-116-64-76 0-139 64-139 145 0 18 4 37 11 54 12 32 73 95 157 180 31 31 58 58 70 74 5 5 11 7 18 7 7 0 13-3 18-7 12-16 39-42 70-74 84-85 145-148 157-180 7-18 11-36 11-54-1-81-64-145-140-145-54 0-93 36-117 64z m209 81c0 12-2 24-7 36-10 25-96 111-147 164-21 21-40 41-55 56-14-16-33-35-55-56-51-53-137-139-146-164-5-12-7-24-7-36 0-54 41-97 93-97 33 0 64 23 97 70 4 7 11 11 19 11 8 0 15-4 19-11 32-47 63-70 97-70 51 0 92 43 92 97z\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ParentComms from \"@/classes/ParentComms\";\r\n\r\nexport default {\r\n\tname: \"favsButton\",\r\n\tmixins:[featureMixin],\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'favs',\r\n\t\t\tfeatureEvents: ['iframe-event-favs'],\r\n\t\t\tisFav: false\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tParentComms.SendEvent('favs', { action: 'getState'});\r\n\t},\r\n\tmethods: {\r\n\t\thandleClick() {\r\n\t\t\tParentComms.SendEvent('favs', {action: 'toggle'});\r\n\t\t},\r\n\t\tonFeatureEvent(event, data) {\r\n\t\t\tconsole.log('Faves Event:' + event, data);\r\n\t\t\tconst { state } = data?.data;\r\n\t\t\tthis.isFav = state;\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<button class=\"btn\" :class=\"{'is-fav':isFav}\" @click=\"handleClick\">\r\n\t\t<svg id=\"heart\" viewBox=\"0 0 512 512\">\r\n\t\t\t<path d=\"m255 90c-23-28-62-64-116-64-76 0-139 64-139 145 0 18 4 37 11 54 12 32 73 95 157 180 31 31 58 58 70 74 5 5 11 7 18 7 7 0 13-3 18-7 12-16 39-42 70-74 84-85 145-148 157-180 7-18 11-36 11-54-1-81-64-145-140-145-54 0-93 36-117 64z m209 81c0 12-2 24-7 36-10 25-96 111-147 164-21 21-40 41-55 56-14-16-33-35-55-56-51-53-137-139-146-164-5-12-7-24-7-36 0-54 41-97 93-97 33 0 64 23 97 70 4 7 11 11 19 11 8 0 15-4 19-11 32-47 63-70 97-70 51 0 92 43 92 97z\"/>\r\n\t\t</svg>\r\n\t</button>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\nbutton {\r\n &.is-fav {\r\n background-color: red;\r\n fill: #fff;\r\n }\r\n}\r\nsvg {\r\n width: 1rem;\r\n height: 1rem;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./favsButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./favsButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./favsButton.vue?vue&type=template&id=2739feb2&scoped=true&\"\nimport script from \"./favsButton.vue?vue&type=script&lang=js&\"\nexport * from \"./favsButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./favsButton.vue?vue&type=style&index=0&id=2739feb2&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2739feb2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn\",class:_vm.isOpen? 'open':null,on:{\"click\":_vm.toggle}},[_c('svg',{attrs:{\"height\":\"24px\",\"version\":\"1.1\",\"viewBox\":\"0 0 24 24\",\"width\":\"24px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"8A815149-3BD8-4D13-901A-73E8B2711BD6\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"FlyerView_CTC\",\"transform\":\"translate(-1254, -156)\"}},[_c('g',{attrs:{\"id\":\"logo-raddar\",\"transform\":\"translate(1254, 156)\"}},[_c('path',{attrs:{\"id\":\"Fill-14\",\"d\":\"M13.9685553,13.842414 C13.8580114,13.842414 13.7456095,13.8234431 13.635623,13.7834352 C13.125263,13.5974828 12.8605149,13.0285434 13.0444451,12.5125724 C13.2519705,11.9302971 12.9522942,11.2858498 12.3761652,11.0760429 C11.8013368,10.8666116 11.1631545,11.1692069 10.9554434,11.7514822 C10.7715131,12.2674533 10.2091325,12.5352999 9.6984009,12.3491596 C9.1880409,12.1632072 8.9234786,11.5940801 9.10740885,11.078109 C9.68205154,9.46595777 11.4474104,8.62654219 13.0420299,9.20750267 C14.6372068,9.78883881 15.4671224,11.5734187 14.8926655,13.1857578 C14.7484939,13.590533 14.3709724,13.842414 13.9685553,13.842414\",\"fill\":\"#E95B5B\"}}),_c('path',{attrs:{\"id\":\"Fill-16\",\"d\":\"M11.9999814,18.2507264 C8.66285501,18.2507264 5.94793306,15.505768 5.94793306,12.13214 C5.94793306,8.75832424 8.66285501,6.01336578 11.9999814,6.01336578 C15.3371078,6.01336578 18.0520298,8.75832424 18.0520298,12.13214 C18.0520298,12.6806058 17.6122693,13.1252011 17.0697679,13.1252011 C16.5272666,13.1252011 16.0875061,12.6806058 16.0875061,12.13214 C16.0875061,9.85337746 14.253963,7.99948804 11.9999814,7.99948804 C9.74599982,7.99948804 7.91245675,9.85337746 7.91245675,12.13214 C7.91245675,14.4107147 9.74599982,16.2646041 11.9999814,16.2646041 C12.5424828,16.2646041 12.9822433,16.7091995 12.9822433,17.2576653 C12.9822433,17.806131 12.5424828,18.2507264 11.9999814,18.2507264\",\"fill\":\"#7C5AE5\"}}),_c('path',{attrs:{\"id\":\"Fill-18\",\"d\":\"M7.6750381,19.9794266 C7.49426625,19.9794266 7.31145073,19.929088 7.14777139,19.8235271 C5.11562081,18.513032 3.70976203,16.4810791 3.18936947,14.1018271 C2.66897692,11.7227629 3.09610383,9.28096327 4.39216183,7.22647062 C5.68840562,5.17197798 7.69826162,3.75085059 10.0516399,3.22454885 C12.4046465,2.69824711 14.820078,3.13025782 16.8522286,4.4407529 C18.8843792,5.75106015 20.2900522,7.78301311 20.8106305,10.1622651 C21.3310231,12.5415171 20.9038962,14.9833167 19.6078382,17.0376216 C19.315965,17.5000608 18.7089952,17.6360503 18.251399,17.3409682 C17.7939886,17.0458861 17.6596638,16.4320553 17.9513512,15.969616 C18.9653828,14.3625361 19.2996157,12.4522975 18.8923681,10.5910827 C18.4853063,8.72986788 17.3856263,7.14025631 15.7958373,6.11526396 C14.2062341,5.08989594 12.3169546,4.7523641 10.4757942,5.16390125 C8.63481959,5.57543841 7.06249463,6.68720857 6.0486488,8.29447622 C3.95537393,11.6121306 4.92240116,16.0329149 8.2041627,18.1490161 C8.66138729,18.4440982 8.79571211,19.057929 8.50402474,19.5203683 C8.31675031,19.8173287 7.99923839,19.9794266 7.6750381,19.9794266\",\"fill\":\"#552A94\"}}),_c('path',{attrs:{\"id\":\"Fill-20\",\"d\":\"M14.3786454,24 C13.9279234,24 13.5217906,23.6844444 13.420536,23.2212537 C13.3033037,22.6857483 13.6375366,22.15569 14.1674043,22.0371688 C19.5695658,20.8290414 22.9923405,15.4024235 21.7973513,9.94086902 C20.6025478,4.47931455 15.2353145,1.01853314 9.83259567,2.2268483 C4.43043418,3.43516346 1.00765945,8.86159358 2.20246292,14.3233359 C2.31988102,14.8588413 1.98527659,15.3888997 1.45559463,15.507233 C0.925912673,15.6259421 0.401618567,15.2878467 0.284572045,14.7521535 C-1.14432447,8.22127858 2.94840227,1.73266562 9.40844136,0.287871561 C15.8677373,-1.15729816 22.2863457,2.98098873 23.715428,9.5118636 C25.1443245,16.0427385 21.0515977,22.5315393 14.5915586,23.9763333 C14.520216,23.9922989 14.4486876,24 14.3786454,24\",\"fill\":\"#000000\"}})])])])]),_c('span',[_vm._v(_vm._s(_vm.caption))]),_c('svg',{staticClass:\"chevron\",attrs:{\"height\":\"5px\",\"version\":\"1.1\",\"viewBox\":\"0 0 10 5\",\"width\":\"10px\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"253EE906-1F83-4946-BD6F-DFD7507D5715\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"FlyerView_Metro_FRENCH\",\"fill\":\"#333333\",\"fill-rule\":\"nonzero\",\"transform\":\"translate(-1542, -166)\"}},[_c('polygon',{attrs:{\"id\":\"icon-arrowright-red-copy-7\",\"points\":\"1542 166 1547 171 1552 166\"}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\r\nimport {mapActions, mapGetters} from \"vuex\";\r\nimport FilterPanel from \"@/features/filters/FilterPanel.vue\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nexport default {\r\n\tname: \"RaddarFilterToggleButton\",\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tisOpenOld: true\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('drawer', ['hasContent']),\r\n\t\t...mapGetters('screen', ['displayMode']),\r\n\t\tcaption() {\r\n\t\t\treturn this.lang?.raddar?.toggleFilterButton?.caption;\r\n\t\t},\r\n\t\tisOpen() {\r\n\t\t\treturn this.hasContent('header');\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tif (this.displayMode === 'desktop') this.open();\r\n\t},\r\n\tmounted() {\r\n\t\t//this.isOpen = this.hasContent('header');\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('drawer', ['addToDrawer', 'removeFromDrawer']),\r\n\t\topen() {\r\n\t\t\tthis.addToDrawer({id: 'filters', component: FilterPanel, drawer: 'header', attrs: {class: 'raddar-filters', 'feature-config-path': 'raddar.filterPanel'}})\r\n\t\t},\r\n\t\tclose() {\r\n\t\t\tthis.removeFromDrawer({id: 'filters', drawer: 'header'});\r\n\t\t},\r\n\t\ttoggle() {\r\n\t\t\tif (this.hasContent('header')) {\r\n\t\t\t\tthis.close();\r\n\t\t\t} else {\r\n\t\t\t\tthis.open();\r\n\t\t\t}\r\n\t\t\t//this.isOpen = this.hasContent('header');\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<button :class=\"isOpen? 'open':null\" class=\"btn\" @click=\"toggle\">\r\n\t\t<svg height=\"24px\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t<title>8A815149-3BD8-4D13-901A-73E8B2711BD6</title>\r\n\t\t\t<g id=\"R2---Desktop-wireframes\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t<g id=\"FlyerView_CTC\" transform=\"translate(-1254, -156)\">\r\n\t\t\t\t\t<g id=\"logo-raddar\" transform=\"translate(1254, 156)\">\r\n\t\t\t\t\t\t<path id=\"Fill-14\"\r\n\t\t\t\t\t\t d=\"M13.9685553,13.842414 C13.8580114,13.842414 13.7456095,13.8234431 13.635623,13.7834352 C13.125263,13.5974828 12.8605149,13.0285434 13.0444451,12.5125724 C13.2519705,11.9302971 12.9522942,11.2858498 12.3761652,11.0760429 C11.8013368,10.8666116 11.1631545,11.1692069 10.9554434,11.7514822 C10.7715131,12.2674533 10.2091325,12.5352999 9.6984009,12.3491596 C9.1880409,12.1632072 8.9234786,11.5940801 9.10740885,11.078109 C9.68205154,9.46595777 11.4474104,8.62654219 13.0420299,9.20750267 C14.6372068,9.78883881 15.4671224,11.5734187 14.8926655,13.1857578 C14.7484939,13.590533 14.3709724,13.842414 13.9685553,13.842414\"\r\n\t\t\t\t\t\t fill=\"#E95B5B\"></path>\r\n\t\t\t\t\t\t<path id=\"Fill-16\"\r\n\t\t\t\t\t\t d=\"M11.9999814,18.2507264 C8.66285501,18.2507264 5.94793306,15.505768 5.94793306,12.13214 C5.94793306,8.75832424 8.66285501,6.01336578 11.9999814,6.01336578 C15.3371078,6.01336578 18.0520298,8.75832424 18.0520298,12.13214 C18.0520298,12.6806058 17.6122693,13.1252011 17.0697679,13.1252011 C16.5272666,13.1252011 16.0875061,12.6806058 16.0875061,12.13214 C16.0875061,9.85337746 14.253963,7.99948804 11.9999814,7.99948804 C9.74599982,7.99948804 7.91245675,9.85337746 7.91245675,12.13214 C7.91245675,14.4107147 9.74599982,16.2646041 11.9999814,16.2646041 C12.5424828,16.2646041 12.9822433,16.7091995 12.9822433,17.2576653 C12.9822433,17.806131 12.5424828,18.2507264 11.9999814,18.2507264\"\r\n\t\t\t\t\t\t fill=\"#7C5AE5\"></path>\r\n\t\t\t\t\t\t<path id=\"Fill-18\"\r\n\t\t\t\t\t\t d=\"M7.6750381,19.9794266 C7.49426625,19.9794266 7.31145073,19.929088 7.14777139,19.8235271 C5.11562081,18.513032 3.70976203,16.4810791 3.18936947,14.1018271 C2.66897692,11.7227629 3.09610383,9.28096327 4.39216183,7.22647062 C5.68840562,5.17197798 7.69826162,3.75085059 10.0516399,3.22454885 C12.4046465,2.69824711 14.820078,3.13025782 16.8522286,4.4407529 C18.8843792,5.75106015 20.2900522,7.78301311 20.8106305,10.1622651 C21.3310231,12.5415171 20.9038962,14.9833167 19.6078382,17.0376216 C19.315965,17.5000608 18.7089952,17.6360503 18.251399,17.3409682 C17.7939886,17.0458861 17.6596638,16.4320553 17.9513512,15.969616 C18.9653828,14.3625361 19.2996157,12.4522975 18.8923681,10.5910827 C18.4853063,8.72986788 17.3856263,7.14025631 15.7958373,6.11526396 C14.2062341,5.08989594 12.3169546,4.7523641 10.4757942,5.16390125 C8.63481959,5.57543841 7.06249463,6.68720857 6.0486488,8.29447622 C3.95537393,11.6121306 4.92240116,16.0329149 8.2041627,18.1490161 C8.66138729,18.4440982 8.79571211,19.057929 8.50402474,19.5203683 C8.31675031,19.8173287 7.99923839,19.9794266 7.6750381,19.9794266\"\r\n\t\t\t\t\t\t fill=\"#552A94\"></path>\r\n\t\t\t\t\t\t<path id=\"Fill-20\"\r\n\t\t\t\t\t\t d=\"M14.3786454,24 C13.9279234,24 13.5217906,23.6844444 13.420536,23.2212537 C13.3033037,22.6857483 13.6375366,22.15569 14.1674043,22.0371688 C19.5695658,20.8290414 22.9923405,15.4024235 21.7973513,9.94086902 C20.6025478,4.47931455 15.2353145,1.01853314 9.83259567,2.2268483 C4.43043418,3.43516346 1.00765945,8.86159358 2.20246292,14.3233359 C2.31988102,14.8588413 1.98527659,15.3888997 1.45559463,15.507233 C0.925912673,15.6259421 0.401618567,15.2878467 0.284572045,14.7521535 C-1.14432447,8.22127858 2.94840227,1.73266562 9.40844136,0.287871561 C15.8677373,-1.15729816 22.2863457,2.98098873 23.715428,9.5118636 C25.1443245,16.0427385 21.0515977,22.5315393 14.5915586,23.9763333 C14.520216,23.9922989 14.4486876,24 14.3786454,24\"\r\n\t\t\t\t\t\t fill=\"#000000\"></path>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</g>\r\n\t\t\t</g>\r\n\t\t</svg>\r\n\t\t<span>{{ caption }}</span>\r\n\t\t<svg class=\"chevron\" height=\"5px\" version=\"1.1\" viewBox=\"0 0 10 5\" width=\"10px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t<title>253EE906-1F83-4946-BD6F-DFD7507D5715</title>\r\n\t\t\t<g id=\"R2---Desktop-wireframes\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t<g id=\"FlyerView_Metro_FRENCH\" fill=\"#333333\" fill-rule=\"nonzero\" transform=\"translate(-1542, -166)\">\r\n\t\t\t\t\t<polygon id=\"icon-arrowright-red-copy-7\" points=\"1542 166 1547 171 1552 166\"></polygon>\r\n\t\t\t\t</g>\r\n\t\t\t</g>\r\n\t\t</svg>\r\n\t</button>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.chevron {\r\n transition: transform 100ms;\r\n transform: rotate(-90deg);\r\n}\r\n\r\n.open {\r\n font-weight: 600;\r\n background-color: #F5F5F5;\r\n\r\n .chevron {\r\n\ttransform: rotate(0deg);\r\n }\r\n}\r\n\r\nspan {\r\n margin-left: 0.5em;\r\n margin-right: 0.5em;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarFilterToggleButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarFilterToggleButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RaddarFilterToggleButton.vue?vue&type=template&id=aa3e062e&scoped=true&\"\nimport script from \"./RaddarFilterToggleButton.vue?vue&type=script&lang=js&\"\nexport * from \"./RaddarFilterToggleButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RaddarFilterToggleButton.vue?vue&type=style&index=0&id=aa3e062e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aa3e062e\",\n null\n \n)\n\nexport default component.exports","import FilterDropdown from \"@/features/filters/FilterDropdown.vue\";\r\nimport SearchBarFilter from \"@/features/filters/SearchBarFilter.vue\";\r\nimport ToggleButtonFilter from \"@/features/filters/ToggleButtonFilter.vue\";\r\nimport ClearFilterButton from \"@/features/filters/buttons/ClearFilterButton.vue\";\r\nimport Separator from \"@/components/header/Separator.vue\";\r\nimport ControlPanel from \"@/features/ControlPanel.vue\";\r\nimport ControlPanelV2 from \"@/features/ControlPanelV2.vue\";\r\nimport FilterPanel from \"@/features/filters/FilterPanel.vue\";\r\nimport LogoDatePanel from \"@/features/masthead/LogoDatePanel.vue\";\r\nimport HelpButton from \"@/components/buttons/HelpButton.vue\";\r\nimport HelpButtonV2 from \"@/components/buttons/HelpButtonV2\";\r\nimport ToggleFilterButton from \"@/components/buttons/ToggleFilterButton.vue\";\r\nimport ZoomControls from \"@/components/buttons/ZoomControls.vue\";\r\nimport ZoomControlsV2 from \"@/components/buttons/ZoomControlsV2.vue\";\r\nimport ToggleFlyerOrientationButton from \"@/components/buttons/ToggleFlyerOrientationButton.vue\";\r\nimport ToggleFlyerOrientationButtonV2 from \"@/components/buttons/ToggleFlyerOrientationButtonV2.vue\";\r\nimport ToggleFullscreenButton from \"@/components/buttons/ToggleFullscreenButton.vue\";\r\nimport ToggleFullscreenButtonV2 from \"@/components/buttons/ToggleFullscreenButtonV2.vue\";\r\nimport pdfDownloadButton from \"@/components/buttons/PdfDownloadButton.vue\";\r\nimport pdfDownloadButtonV2 from \"@/components/buttons/PdfDownloadButtonV2.vue\";\r\nimport shoppingListToggleButton from \"@/components/buttons/ShoppingListToggleButton.vue\";\r\nimport shoppingListToggleButtonV2 from \"@/components/buttons/ShoppingListToggleButtonV2.vue\";\r\nimport FilterDrawerToggleButton from \"@/features/filters/buttons/FilterDrawerToggleButton.vue\";\r\nimport SearchBar from \"@/features/filters/SearchBarFilterStandAlone.vue\";\r\nimport HamburgerMenuButton from \"@/components/buttons/HamburgerMenuButton.vue\";\r\nimport HamburgerMenuButtonV2 from \"@/components/buttons/HamburgerMenuButtonV2.vue\";\r\nimport InlineFlyerSelector from \"@/features/flyer-selector/inline/InlineFlyerSelector.vue\";\r\nimport EmailSignupButton from \"@/features/email-signup/emailSignupButton.vue\";\r\nimport EmailSignupButtonV2 from \"@/features/email-signup/emailSignupButtonV2.vue\";\r\nimport RangeFilter from \"@/features/filters/range/RangeFilter.vue\";\r\nimport ShareButton from \"@/features/share/ShareButton.vue\";\r\nimport FavsButton from \"@/features/favourites/favsButton.vue\";\r\nimport {isArray, isObject} from \"lodash\";\r\nimport RaddarFilterToggleButton from \"@/features/raddar/buttons/RaddarFilterToggleButton.vue\";\r\n\r\n//import vue from \"vue\";\r\n\r\nconst compDict = {\r\n\tfilter: {\r\n\t\t'dropdown': FilterDropdown,\r\n\t\t'searchbar': SearchBarFilter,\r\n\t\t'toggle-button': ToggleButtonFilter,\r\n\t\t'clear-button': ClearFilterButton,\r\n\t\t'rangeList': RangeFilter\r\n\t},\r\n\tcontrolPanel: {\r\n\t\t'help': HelpButton,\r\n\t\t'filter-toggle': ToggleFilterButton,\r\n\t\t'zoom': ZoomControls,\r\n\t\t'orientation': ToggleFlyerOrientationButton,\r\n\t\t'fullscreen-toggle': ToggleFullscreenButton,\r\n\t\t'pdf-download': pdfDownloadButton,\r\n\t\t'other-flyers': null,\r\n\t\t'shopping-list': shoppingListToggleButton,\r\n\t\t'filter-drawer-toggle': FilterDrawerToggleButton,\r\n\t\t'search-bar': SearchBar,\r\n\t\t'hamburgerMenu': HamburgerMenuButton,\r\n\t\t'emailSignupButton': EmailSignupButton,\r\n\t\t'separator': Separator,\r\n\t\t'share': ShareButton,\r\n\t\t'favs': FavsButton,\r\n\t\t'raddar-filter-toggle': RaddarFilterToggleButton\r\n\t},\r\n\tcontrolPanelV2: {\r\n\t\t'help': HelpButtonV2,\r\n\t\t'filter-toggle': ToggleFilterButton,\r\n\t\t'zoom': ZoomControlsV2,\r\n\t\t'orientation': ToggleFlyerOrientationButtonV2,\r\n\t\t'fullscreen-toggle': ToggleFullscreenButtonV2,\r\n\t\t'pdf-download': pdfDownloadButtonV2,\r\n\t\t'other-flyers': null,\r\n\t\t'shopping-list': shoppingListToggleButtonV2,\r\n\t\t'filter-drawer-toggle': FilterDrawerToggleButton,\r\n\t\t'search-bar': SearchBar,\r\n\t\t'hamburgerMenu-v2': HamburgerMenuButtonV2,\r\n\t\t'emailSignupButton': EmailSignupButtonV2,\r\n\t\t'separator': Separator,\r\n\t\t'share': ShareButton,\r\n\t\t'favs': FavsButton,\r\n\t\t'raddar-filter-toggle': RaddarFilterToggleButton\r\n\t},\r\n\theader: {\r\n\t\tfilterPanel: FilterPanel,\r\n\t\tseparator: Separator,\r\n\t\tcontrols: ControlPanel,\r\n\t\tcontrolsV2: ControlPanelV2,\r\n\t\tmastHead: LogoDatePanel,\r\n\t\thamburgerMenu: HamburgerMenuButton\r\n\t},\r\n\tapp: {\r\n\t\tinlineFlyerSelector: InlineFlyerSelector\r\n\t}\r\n}\r\n\r\n/*for(let p in compDict) {\r\n\tconst sects = compDict[p];\r\n\tconsole.log('CompDict:', sects);\r\n\tfor(let s in sects) {\r\n\t\tconst comp = sects[s];\r\n\t\tif(comp?.name){\r\n\t\t\tconsole.log('Register Comp:', comp);\r\n\t\t\tvue.component(comp.name, comp);\r\n\t\t}\r\n\t}\r\n}*/\r\n\r\n//export const featureCompDict = compDict;\r\nexport const filterDict = compDict.filter;\r\nexport const controlDict = compDict.controlPanel;\r\nexport const controlDictV2 = compDict.controlPanelV2;\r\nexport const headerDict = compDict.header;\r\n\r\nexport const appDict = compDict.app;\r\n\r\n/**\r\n * Search object and return a list of objects paths that contain the key\r\n * @param o - Object to search\r\n * @param key - Property to match\r\n * @param result - an array of object paths\r\n * @param depth - how deep to search\r\n * @param path\r\n * @returns null | String[]\r\n */\r\nexport function findPathsByKey(o, key, result = [], depth = 10, path = null) {\r\n\tif(depth <= 0)return null;\r\n\tfor(let p in o) {\r\n\t\tconst pv = o[p];\r\n\t\tif(p === key) {\r\n\t\t\tresult.push(path);\r\n\t\t} else if (typeof pv === 'object') {\r\n\t\t\tfindPathsByKey(pv, key, result, depth - 1, Array.isArray(o)? `${path}[${p}]`: (!path)? p: `${path}.${p}`);\r\n\t\t}\r\n\t}\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * returns an array of components {component, name, attrs}\r\n * @param {array} items\r\n * @param dict - Component Dictionary\r\n * @returns {*[]}\r\n * @constructor\r\n */\r\nexport function FeatureJsonToComponents(items, dict) {\r\n\tconst o = [];\r\n\tif(isArray(items)) {\r\n\t\t//const dict = headerDict;// featureCompDict.header;\r\n\t\t// console.log('header dict:', dict);\r\n\t\tfor(let p of items) {\r\n\t\t\t/*console.log('inlineItems:', p, dict[p])*/\r\n\t\t\tlet name = p;\r\n\t\t\tlet props = {};\r\n\t\t\tif(isObject(p) && p?.name) {\r\n\t\t\t\tconsole.log('Inline Item is an Object:', p);\r\n\t\t\t\tlet {name: compName, ...rest} = p;\r\n\t\t\t\tname = compName;\r\n\t\t\t\tprops = rest;\r\n\r\n\t\t\t\tconsole.log('Name:', name, ' Props:', props);\r\n\t\t\t}\r\n\t\t\tif(dict[name]) {\r\n\t\t\t\tconst component = dict[name];\r\n\t\t\t\to.push({component, name, attrs:props})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn o;\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}]},[_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.getTooltip}),expression:\"{ content: getTooltip}\"}],staticClass:\"pull-button\",class:{expanded:_vm.showSideBar, 'showFilters':_vm.showFilters, fr:this.language=='fr' },attrs:{\"data-tour-item\":\"sidebar\",\"tabindex\":\"0\",\"aria-label\":\"Sidebar Pull Button\"},on:{\"click\":_vm.toggleSidebar,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.toggleSidebar.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }return _vm.toggleSidebar.apply(null, arguments)}]}},[_c('span',{staticClass:\"flyericon-text\",class:{fr:_vm.language=='fr'}},[_c('img',{staticClass:\"flyer-book\",attrs:{\"src\":\"/images/icon-flyer.svg\",\"width\":\"22px\",\"height\":\"22px\",\"alt\":_vm.showSideBar ? _vm.content.closeSideBar : _vm.content.openSideBar}}),_c('span',{staticClass:\"seeOtherFlyers\"},[_vm._v(_vm._s(_vm.content.seeOtherFlyers))])]),_c('img',{staticClass:\"arrow\",class:{expanded:_vm.showSideBar, fr:this.language=='fr'},attrs:{\"src\":\"/images/right-arrow-only.svg\",\"width\":\"12px\",\"height\":\"12px\",\"alt\":_vm.showSideBar ? _vm.content.closeSideBar : _vm.content.openSideBar}})]),_c('div',{ref:\"sidebar\",staticClass:\"sidebar\",class:{expanded:_vm.showSideBar}},[_c('div',{staticClass:\"sidebar-content\"},[_c('h4',{staticClass:\"more-publications\"},[_vm._v(_vm._s(_vm.content.flyerList))]),_vm._l((_vm.flyers),function(pub){return _c('PublicationPreview',{key:pub.id,ref:pub.title === _vm.currentFlyer.title? 'activeFlyer':null,refInFor:true,attrs:{\"preview\":pub.flyerType === 'preview',\"src\":pub.thumbnail,\"flyerId\":pub.title,\"isActiveFlyer\":pub.title === _vm.currentFlyer.title}},[_c('template',{slot:\"title\"},[_c('span',[_vm._v(\" \"+_vm._s(pub.flyerTitle)+\" \")])]),_c('template',{slot:\"content\"},[_vm._v(\" \"+_vm._s(_vm.content.landing.valid)+\" \"+_vm._s(_vm.formatDate(pub.startDate))+\" – \"+_vm._s(_vm.formatDate(pub.endDate))+\" \")]),(pub.flyerType === 'preview')?_c('template',{slot:\"preview-text\"},[_c('pre',{staticClass:\"preview-text\",domProps:{\"innerHTML\":_vm._s(_vm.content.landing.preview)}})]):_vm._e()],2)})],2)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{ref:\"preview\",staticClass:\"flyer\",class:{active: _vm.isActiveFlyer},attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.updateFlyer(_vm.flyerId)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.updateFlyer(_vm.flyerId)}}},[_c('div',{staticClass:\"img-wpr\"},[_c('aspect-img',{staticClass:\"preview-img\",attrs:{\"src\":_vm.src,\"alt\":\"\",\"aspect-ratio\":\"1:1\"}}),(_vm.preview)?_c('div',{staticClass:\"preview\"},[_c('p',[_vm._t(\"preview-text\")],2)]):_vm._e()],1),_c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"left\"},[_c('p',{staticClass:\"title\"},[_vm._t(\"title\")],2),_c('p',{staticClass:\"dates\"},[_vm._t(\"content\")],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<!-- <router-link-->\r\n\t<!-- class=\"flyer\"-->\r\n\t<!-- :class=\"{ active: isActiveFlyer }\"-->\r\n\t<!-- tabindex=\"0\"-->\r\n\t<!-- :to=\"{-->\r\n\t<!-- name: 'DefaultFlyer',-->\r\n\t<!-- params: { flyerId: flyerId },-->\r\n\t<!-- query: $route.query-->\r\n\t<!-- }\"-->\r\n\t<!-- >-->\r\n\t<a\r\n\t\t\t:class=\"{active: isActiveFlyer}\"\r\n\t\t\tclass=\"flyer\"\r\n\t\t\ttabindex=\"0\"\r\n\t\t\t@click=\"updateFlyer(flyerId)\"\r\n\t\t\t@keydown.enter=\"updateFlyer(flyerId)\"\r\n\t\t\tref=\"preview\"\r\n\t>\r\n\r\n\r\n\t\t\t<div class=\"img-wpr\">\r\n\t\t\t\t<!-- img :src=\"src\" alt=\"\" -->\r\n\t\t\t\t<aspect-img class=\"preview-img\" :src=\"src\" alt=\"\" aspect-ratio=\"1:1\" />\r\n\t\t\t\t<div v-if=\"preview\" class=\"preview\">\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t<slot class=\"preview-text\" name=\"preview-text\"/>\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"details\">\r\n\t\t\t\t<div class=\"left\">\r\n\t\t\t\t\t<p class=\"title\">\r\n\t\t\t\t\t\t<slot name=\"title\"/>\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t<p class=\"dates\">\r\n\t\t\t\t\t\t<slot name=\"content\"/>\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- <div v-if=\"!preview\" class=\"right\">-->\r\n\t\t\t\t<!-- {{ content.landing.viewFlyer }}-->\r\n\t\t\t\t<!-- </div>-->\r\n\r\n\t\t\t</div>\r\n\t</a>\r\n\r\n\t<!-- </a>-->\r\n\t<!-- </router-link>-->\r\n\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions} from 'vuex'\r\nimport AspectImg from \"@/components/image/AspectImg\";\r\nimport Rest from \"@/api/Rest\";\r\n\r\nexport default {\r\n\tcomponents: {AspectImg},\r\n\tprops: {\r\n\t\tpreview: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t},\r\n\r\n\t\tsrc: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true\r\n\t\t},\r\n\r\n\t\tflyerId: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true\r\n\t\t},\r\n\r\n\t\tmoreThanTwoFlyers: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t},\r\n\t\tisActiveFlyer: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t}\r\n\t},\r\n\r\n\tmounted() {\r\n\t\tif(this.isActiveFlyer)this.focus();\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions('landingPage', ['setCurrentFlyer']),\r\n\t\t...mapActions(['setPages']),\r\n\r\n\t\tasync updateFlyer(flyerId) {\r\n\t\t\tconsole.log(\"New flyer requested :\", flyerId)\r\n Rest.NavigateToFlyer(flyerId);\r\n\t\t\t//await this.setCurrentFlyer(flyerId);\r\n\t\t\t//await this.setPages(flyerId)\r\n\t\t},\r\n focus(container) {\r\n if(!container)return;\r\n console.log('Publications Preview Focus:', this.$refs.preview)\r\n const cb = container.getBoundingClientRect();\r\n const fb = this.$refs.preview.getBoundingClientRect();\r\n // console.log('cb:', cb, ' fb:', fb)\r\n container.scrollTo(fb.x - cb.x, fb.y - cb.y)\r\n //this.$refs.preview.scrollIntoView();\r\n }\r\n\t},\r\n\r\n\tcomputed: {\r\n\t\t...mapGetters(['content', \"language\"]),\r\n\r\n\t\tpreviewClass() {\r\n\t\t\tif (!this.preview) return '';\r\n\t\t\tif (this.language === 'en') {\r\n\t\t\t\treturn 'preview'\r\n\t\t\t} else {\r\n\t\t\t\treturn 'apercu'\r\n\t\t\t}\r\n\t\t},\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.active {\r\n\tborder: 3px solid #fff;\r\n\tborder-radius: 10px;\r\n}\r\n\r\n\r\n\t.flyer {\r\n\t\twidth: 100%;\r\n\t\tmargin: 14px;\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tpadding: 7px;\r\n\r\n\t\ttext-decoration: inherit;\r\n\t\tcolor: inherit;\r\n\t\tcursor: pointer;\r\n\t\tflex-shrink: 0;\r\n\t\tcolumn-gap: 5px;\r\n\r\n\t\t.preview-img {\r\n\t\t\tborder-radius: 5px;\r\n\r\n\t\t}\r\n\r\n\t\t.img-wpr {\r\n\t\t\tposition: relative;\r\n\t\t\twidth: 100%;\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\timg {\r\n\t\t\t\t/*position: absolute;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\ttop: 0;*/\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\t//height: auto;\r\n\t\t\t\t//transform: rotateZ(360deg);\r\n\t\t\t\t//transform: rotate(90deg);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.details {\r\n\t\t\tmargin-top: 12px;\r\n\t\t\tdisplay: flex;\r\n\t\t\tjustify-content: space-between;\r\n\r\n\t\t\t.left {\r\n\t\t\t\tmargin-right: 5px;\r\n\t\t\t\ttext-align: left;\r\n\t\t\t}\r\n\r\n\t\t\t.title {\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tcolor: #FFF;\r\n\t\t\t}\r\n\r\n\t\t\t.dates {\r\n\t\t\t\tfont-size: 11px;\r\n\t\t\t\tfont-weight: 600;\r\n\t\t\t\twhite-space: nowrap;\r\n\t\t\t}\r\n\r\n\t\t\t.right {\r\n\t\t\t\tbackground-color: var(--secondary-color);\r\n\t\t\t\tcolor: var(--primary-text-color);\r\n\t\t\t\tfont-size: 10px;\r\n\t\t\t\tpadding: 7px;\r\n\t\t\t\twidth: 112px;\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\tmargin: auto;\r\n\t\t\t\t// width: 45%;\r\n\t\t\t\tmargin-right: 0px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.preview {\r\n\t\t\tposition: absolute;\r\n\t\t\tbottom: 0;\r\n\t\t\tright: 0;\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-shrink: 0;\r\n\t\t\talign-items: flex-end;\r\n\t\t\tjustify-content: flex-end;\r\n\t\t\tbackground: linear-gradient(322deg, var(--tertiary-color) 0%, var(--tertiary-color) 50%, transparent 50%);\r\n\t\t\tbackground-position: 0px 20px;\r\n\t\t\tbackground-repeat: no-repeat;\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 100%;\r\n\t\t\tcolor: var(--primary-text-color);\r\n\t\t\tpadding-right: 5px;\r\n\t\t\tpadding-bottom: 10px;\r\n\t\t\tfont-size: 10px;\r\n\t\t\ttext-align: right;\r\n\r\n\t\t\t.preview-text {\r\n\t\t\t\tfont-family: inherit !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\r\n\r\n/*Tablet*/\r\n@media (min-width: 280px) and (max-width: 1023px) {\r\n\r\n\r\n\t\t.flyer {\r\n\t\t\tposition: relative;\r\n\t\t\twidth: 280px;\r\n\t\t\tpadding: 5px;\r\n\t\t\tmargin: 15px;\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: row;\r\n\t\t\talign-items: center;\r\n\r\n\r\n\t\t\t.img-wpr {\r\n\t\t\t\tjustify-content: center;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\t/*margin-right: 2px;*/\r\n\r\n\t\t\t\t/*img {\r\n\t\t\t\t\twidth: 160px;\r\n\t\t\t\t\theight: auto;\r\n\t\t\t\t\ttransform: rotateZ(360deg);\r\n\t\t\t\t\tposition: relative;\r\n\t\t\t\t\t//transform: rotate(90deg)!important;\r\n\t\t\t\t\tobject-fit: contain;\r\n\t\t\t\t}*/\r\n\t\t\t}\r\n\r\n\t\t\t.details {\r\n\t\t\t\t.dates {\r\n\t\t\t\t\tfont-size: 14px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n}\r\n\r\n/*Mobile*/\r\n/*@media (min-width: 280px) and (max-width: 844px) {\r\n\t.flyer {\r\n\t\twidth: 53vw;\r\n\t\tmax-width: 350px;\r\n\t\theight: 54vw;\r\n\t\tmax-height: 170px;\r\n\t\tmargin: 5px;\r\n\t\tpadding: 5px 5px;\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: row;\r\n\t\talign-items: center;\r\n\r\n\t\t.img-wpr {\r\n\t\t\tjustify-content: center;\r\n\t\t\tdisplay: flex;\r\n\t\t\tmargin-right: 2px;\r\n\r\n\t\t\timg {\r\n\t\t\t\twidth: 150px;\r\n\t\t\t\theight: auto;\r\n\t\t\t\tobject-fit: contain;\r\n\t\t\t\ttransform: rotateZ(360deg);\r\n\t\t\t\tposition: relative;\r\n\t\t\t\t//transform: rotate(90deg) !important;\r\n\t\t\t}\r\n\r\n\t\t\t.details {\r\n\t\t\t\t.dates {\r\n\t\t\t\t\tfont-size: 10px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}*/\r\n\r\n/* iPad Pro 12.9\" Portrait and Landscape */\r\n//@media only screen\r\n//and (min-device-width: 1024px)\r\n//and (max-device-width: 1199px)\r\n//and (-webkit-min-device-pixel-ratio: 2) {\r\n// .flyer{\r\n// width: 50vw;\r\n// max-width: 250px;\r\n// height: 54vw;\r\n// max-height: 170px;\r\n// display: flex;\r\n// flex-direction: row;\r\n// align-items: center;\r\n//\r\n// .img-wpr {\r\n// justify-content: center;\r\n// display: flex;\r\n// margin-right: 2px;\r\n//\r\n// img{\r\n// width: 150px;\r\n// height: auto;\r\n// object-fit:contain;\r\n// transform: rotateZ(360deg);\r\n// position: relative;\r\n// //transform: rotate(90deg) !important;\r\n// }\r\n// }\r\n// }\r\n//}\r\n\r\n@media (min-width: 1550px) {\r\n\t.flyer.xl-responsive {\r\n\t\twidth: 17vw;\r\n\t\theight: 15.57009345vw;\r\n\t}\r\n}\r\n\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicationPreview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicationPreview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PublicationPreview.vue?vue&type=template&id=3699ffca&scoped=true&\"\nimport script from \"./PublicationPreview.vue?vue&type=script&lang=js&\"\nexport * from \"./PublicationPreview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PublicationPreview.vue?vue&type=style&index=0&id=3699ffca&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3699ffca\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div v-if=\"enabled\" v-click-outside=\"onClickOutside\">\r\n <span class=\"pull-button\"\r\n v-tooltip=\"{ content: getTooltip}\"\r\n data-tour-item=\"sidebar\"\r\n :class=\"{expanded:showSideBar, 'showFilters':showFilters, fr:this.language=='fr' }\"\r\n @click=\"toggleSidebar\"\r\n v-on:keydown.enter=\"toggleSidebar\"\r\n v-on:keydown.space=\"toggleSidebar\"\r\n tabindex=\"0\"\r\n aria-label=\"Sidebar Pull Button\"\r\n >\r\n\r\n <span class=\"flyericon-text\" :class=\"{fr:language=='fr'}\">\r\n <img src=\"/images/icon-flyer.svg\" class=\"flyer-book\" width=\"22px\" height=\"22px\" :alt=\"showSideBar ? content.closeSideBar : content.openSideBar\" />\r\n <span class=\"seeOtherFlyers\">{{content.seeOtherFlyers}}</span>\r\n </span>\r\n <img src=\"/images/right-arrow-only.svg\" class=\"arrow\" :class=\"{expanded:showSideBar, fr:this.language=='fr'}\" width=\"12px\" height=\"12px\" :alt=\"showSideBar ? content.closeSideBar : content.openSideBar\" />\r\n </span>\r\n\r\n <div class=\"sidebar\" :class=\"{expanded:showSideBar}\" ref=\"sidebar\" >\r\n <div class=\"sidebar-content\">\r\n <h4 class=\"more-publications\">{{ content.flyerList }}</h4>\r\n\r\n <PublicationPreview\r\n v-for=\"pub in flyers\"\r\n :key=\"pub.id\"\r\n :preview=\"pub.flyerType === 'preview'\"\r\n :src=\"pub.thumbnail\"\r\n :flyerId=\"pub.title\"\r\n :isActiveFlyer=\"pub.title === currentFlyer.title\"\r\n :ref=\"pub.title === currentFlyer.title? 'activeFlyer':null\"\r\n >\r\n <template slot=\"title\">\r\n <span>\r\n {{ pub.flyerTitle }}\r\n </span>\r\n </template>\r\n <template slot=\"content\">\r\n {{ content.landing.valid }} {{ formatDate(pub.startDate) }} – {{ formatDate(pub.endDate) }}\r\n </template>\r\n <template v-if=\"pub.flyerType === 'preview'\" slot=\"preview-text\">\r\n <pre class=\"preview-text\" v-html=\"content.landing.preview\"></pre>\r\n </template>\r\n </PublicationPreview>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport moment from \"moment\";\r\nimport PublicationPreview from '@/components/PublicationPreview.vue'\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\n\r\nexport default {\r\n\tname: 'Sidebar',\r\n components:{\r\n PublicationPreview\r\n },\r\n\tmixins:[featureMixin],\r\n // created() {\r\n // setTimeout(() => this.toggleSideBarState(false), 10000)\r\n // },\r\n mounted() {\r\n\t\tif(this.enabled){\r\n\t\t\tthis.$refs.sidebar.focus()\r\n\t\t\tconsole.log('sidebar focussed')\r\n\t\t}\r\n },\r\n methods:{\r\n ...mapActions(['toggleHamburgerMenu','toggleSideBarState','setPdpDisplay']),\r\n ...mapActions('shoppingList',['toggleShoppingList']),\r\n toggleSidebar(){\r\n this.$refs.sidebar.focus();\r\n this.toggleSideBarState(!this.showSideBar);\r\n //this.toggleShoppingList(false);\r\n //this.toggleHamburgerMenu(false);\r\n //this.setPdpDisplay(false);\r\n console.log('** Active Flyer Preview: ', this.$refs.activeFlyer)\r\n if(this.showSideBar)setTimeout(() => this.$refs.activeFlyer[0]?.focus(this.$refs.sidebar), 500);\r\n },\r\n formatDate(date) {\r\n return moment.utc(date).format('MMM D');\r\n },\r\n getTooltip(){\r\n return this.showSideBar ? this.content.closeSideBar : this.content.openSideBar;\r\n },\r\n\t onClickOutside() {\r\n\t\t if(this.showSideBar) {\r\n\t\t\t\t//console.log('Side Bar Clicked Outside');\r\n\t\t\t\tthis.toggleSideBarState(false);\r\n\t\t\t}\r\n\t }\r\n },\r\n computed:{\r\n ...mapState('search', ['showSubHeader']),\r\n ...mapState('landingPage', ['flyers']),\r\n ...mapGetters('landingPage', ['currentFlyer']),\r\n ...mapState(['showFilters','showSideBar']),\r\n ...mapGetters(['content', 'language']),\r\n\t ...mapGetters('config', ['features']),\r\n\r\n\t enabled() {\r\n\t\t\treturn this?.features?.otherPublications?.mode === 'drawer'\r\n\t },\r\n\r\n getArrow(){\r\n return this.showSideBar ? '/images/left-arrow-only.svg' : '/images/right-arrow-only.svg'\r\n },\r\n\r\n },\r\n // watch:{\r\n // //whenever showSideBar state changes, this triggers..\r\n // showSideBar(){\r\n // this.showSideBar ? setTimeout(() => this.toggleSideBarState(false), 10000) : ''\r\n // }\r\n // }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n.pull-button{\r\n padding:5px;\r\n margin-top:10px;\r\n width:50px;\r\n height:75px;\r\n background-color: rgba(0,0,0,0.75);\r\n opacity: 1;\r\n cursor: pointer;\r\n display: flex;\r\n position: absolute;\r\n z-index:1;\r\n transition: 0.5s;\r\n /*align-items: center;*/\r\n justify-content: center;\r\n vertical-align: center;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.7);\r\n border-top-right-radius: 10px;\r\n border-bottom-right-radius: 10px;\r\n border-top: 1px solid #FFFFFF;\r\n border-right: 1px solid #FFFFFF;\r\n border-bottom: 1px solid #FFFFFF;\r\n color:#FFFFFF;\r\n font-size: 11px;\r\n}\r\n\r\n.pull-button.fr{\r\n width:65px;\r\n}\r\n\r\n.pull-button.subHeaderOpen{\r\n top:120px;\r\n}\r\n\r\n.pull-button.showFilters{\r\n top:-1px;\r\n}\r\n\r\n.arrow{\r\n top:50%;\r\n transition: transform 0.2s;\r\n\r\n}\r\n\r\n.arrow.expanded{\r\n transform: rotate(180deg);\r\n}\r\n\r\n\r\n.pull-button.expanded{\r\n margin-left:250px;\r\n}\r\n\r\n.sidebar{\r\n background-color: rgba(0,0,0,0.75);\r\n width: 0px;\r\n height: 100%;\r\n color:white;\r\n position:absolute;\r\n z-index:1;\r\n align-items: center;\r\n justify-content: center;\r\n font-size:20px;\r\n overflow-x: hidden;\r\n overflow-y:auto;\r\n transition: width 0.5s;\r\n}\r\n\r\n.sidebar.expanded{\r\n width:250px;\r\n}\r\n\r\n.sidebar-content{\r\n padding:15px;\r\n display: flex;\r\n flex-direction: column !important;\r\n align-items: center;\r\n text-align: center;\r\n}\r\n\r\n.more-publications {\r\n position: sticky;\r\n}\r\n\r\n.flyericon-text{\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n//background: #f1f1f1;\r\n display:none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n\r\n\r\n/*Mobile*/\r\n@media (min-width: 280px ) and (max-width: 1023px) {\r\n\r\n .more-publications{\r\n position: sticky;\r\n font-size:15px;\r\n display:none;\r\n }\r\n .pull-button{\r\n width:35px;\r\n height:175px;\r\n padding:5px;\r\n transform: rotate(90deg);\r\n margin-top:-69px;\r\n left:50%;\r\n display:flex;\r\n justify-content: space-evenly;\r\n flex-direction: column-reverse;\r\n align-items: center;\r\n }\r\n .pull-button.fr{\r\n height:195px;\r\n margin-top: -76px;\r\n width:40px;\r\n }\r\n .pull-button.expanded{\r\n margin-top:140px;\r\n margin-left:0px;\r\n }\r\n .pull-button.expanded.fr{\r\n margin-top: 133px !important;\r\n }\r\n\r\n .flyericon-text{\r\n transform: rotate(270deg);\r\n width:105px;\r\n align-items: center;\r\n display:flex;\r\n justify-content: space-between;\r\n margin-bottom:35px;\r\n margin-top:5px;\r\n display:flex;\r\n flex-direction: row;\r\n }\r\n\r\n .flyericon-text.fr{\r\n width:130px;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n margin-bottom: 43px;\r\n }\r\n\r\n .sidebar{\r\n width:100%;\r\n height:0px;\r\n transition: height 0.5s cubic-bezier(0.4, 0.0, 0.2, 1);\r\n overflow-y: hidden;\r\n overflow-x: auto;\r\n }\r\n\r\n\r\n .sidebar.expanded{\r\n width:100%;\r\n height:210px;\r\n transition: height 0.5s ease-out;\r\n transform: translateY(1px);\r\n }\r\n\r\n .sidebar-content{\r\n display:flex;\r\n flex-direction: row !important;\r\n justify-content: flex-start;\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n\t\twidth: fit-content;\r\n }\r\n\r\n .arrow{\r\n width:15px;\r\n height:15px;\r\n margin-bottom:25px;\r\n }\r\n .arrow.fr{\r\n margin-bottom:28px;\r\n }\r\n\r\n\r\n}\r\n\r\n/*Tablet */\r\n/*@media only screen\r\nand (min-device-width: 768px)\r\nand (max-device-width: 1179px)\r\n{\r\n\r\n .sidebar.expanded{\r\n width:100%;\r\n height:210px;\r\n transition: height 0.5s ease-out;\r\n transform: translateY(1px);\r\n }\r\n\r\n .sidebar-content{\r\n display:flex;\r\n flex-direction: row !important;\r\n justify-content: flex-start;\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n }\r\n\r\n .arrow{\r\n width:15px;\r\n height:15px;\r\n margin-bottom:25px;\r\n }\r\n .arrow.fr{\r\n margin-bottom:28px;\r\n }\r\n\r\n\r\n}\r\n\r\n/*Tablet */\r\n@media only screen\r\nand (min-device-width: 768px)\r\nand (max-device-width: 1179px)\r\n{\r\n\r\n .more-publications{\r\n position: sticky;\r\n font-size:15px;\r\n display:none;\r\n }\r\n .pull-button{\r\n width:35px;\r\n height:185px;\r\n padding:20px;\r\n transform: rotate(90deg);\r\n margin-top:-70px;\r\n left:50%;\r\n display:flex;\r\n justify-content: space-evenly;\r\n flex-direction: column-reverse;\r\n align-items: center;\r\n }\r\n .pull-button.fr{\r\n width:45px;\r\n }\r\n\r\n .pull-button.expanded{\r\n margin-top:174px;\r\n margin-left:0px;\r\n }\r\n .pull-button.expanded.fr{\r\n margin-top: 176px !important;\r\n }\r\n\r\n .flyericon-text{\r\n transform: rotate(270deg);\r\n width:105px;\r\n align-items: center;\r\n display:flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n margin-bottom:35px;\r\n margin-top:5px;\r\n }\r\n\r\n .flyericon-text.fr{\r\n width:130px;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n margin-bottom:45px;\r\n }\r\n\r\n .sidebar{\r\n width:100%;\r\n height:0px; transition: height 500ms cubic-bezier(0.4, 0.0, 0.2, 1);\r\n overflow-y: hidden;\r\n overflow-x: auto;\r\n }\r\n\r\n\r\n .sidebar.expanded{\r\n width:100%;\r\n height:245px;\r\n transition: height 0.5s ease-out;\r\n transform: translateY(1px);\r\n }\r\n\r\n .sidebar-content{\r\n display:flex;\r\n flex-direction: row !important;\r\n justify-content: flex-start;\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n }\r\n\r\n .arrow{\r\n width:18px;\r\n height:18px;\r\n margin-bottom:25px;\r\n }\r\n\r\n .arrow.fr{\r\n margin-bottom:49px;\r\n }\r\n\r\n}\r\n\r\n/* iPad Pro 12.9\" Portrait and Landscape */\r\n/*@media only screen*/\r\n/*and (min-device-width: 1024px)*/\r\n/*and (max-device-width: 1199px)*/\r\n/*and (-webkit-min-device-pixel-ratio: 2) {*/\r\n\r\n/* .sidebar.expanded{*/\r\n/* width:100%;*/\r\n/* height:225px;*/\r\n/* transition: height 0.5s ease-out;*/\r\n/* transform: translateY(1px);*/\r\n/* }*/\r\n/* .pull-button.expanded.fr{*/\r\n/* margin-top: 156px !important;*/\r\n/* }*/\r\n/* .pull-button.expanded{*/\r\n/* margin-top:153px;*/\r\n/* }*/\r\n\r\n/* .pull-button{*/\r\n/* margin-top:-75px;*/\r\n/* }*/\r\n/*}*/\r\n\r\n/*Samsung Galaxy Tab S8*/\r\n/*@media only screen\r\nand (min-device-width: 732px)\r\nand (max-device-width: 767px)\r\nand (-webkit-min-device-pixel-ratio: 2){\r\n .more-publications{\r\n position: sticky;\r\n font-size:15px;\r\n display:none;\r\n }\r\n .pull-button{\r\n width:35px;\r\n height:185px;\r\n padding:20px;\r\n transform: rotate(90deg);\r\n margin-top:-70px;\r\n left:50%;\r\n display:flex;\r\n justify-content: space-evenly;\r\n flex-direction: column-reverse;\r\n align-items: center;\r\n }\r\n .pull-button.fr{\r\n width:45px;\r\n }\r\n\r\n .pull-button.expanded{\r\n margin-top:174px;\r\n margin-left:0px;\r\n }\r\n .pull-button.expanded.fr{\r\n margin-top: 176px !important;\r\n }\r\n\r\n .flyericon-text{\r\n transform: rotate(270deg);\r\n width:105px;\r\n align-items: center;\r\n display:flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n margin-bottom:35px;\r\n margin-top:5px;\r\n }\r\n\r\n .flyericon-text.fr{\r\n width:130px;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n margin-bottom:45px;\r\n }\r\n\r\n .sidebar{\r\n width:100%;\r\n height:0px; transition: height 500ms cubic-bezier(0.4, 0.0, 0.2, 1);\r\n overflow: auto;\r\n }\r\n\r\n\r\n .sidebar.expanded{\r\n width:100%;\r\n height:245px;\r\n transition: height 0.5s ease-out;\r\n transform: translateY(1px);\r\n }\r\n\r\n .sidebar-content{\r\n display:flex;\r\n flex-direction: row !important;\r\n justify-content: center;\r\n }\r\n\r\n .arrow{\r\n width:18px;\r\n height:18px;\r\n margin-bottom:25px;\r\n }\r\n\r\n .arrow.fr{\r\n margin-bottom:49px;\r\n }\r\n\r\n}*/\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=0cb572b6&scoped=true&\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=0cb572b6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0cb572b6\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<fragment>\r\n\t\t<sidebar v-if=\"!isInline && enabled\" />\r\n\t\t<div class=\"flyer-selector-controller\" :scrollY=\"scrollY\"></div>\r\n\t</fragment>\r\n\r\n</template>\r\n\r\n<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {mapActions} from \"vuex\";\r\nimport {appDict} from \"@/features/FeatureHelper\";\r\nimport Sidebar from \"@/features/other-flyers/Sidebar.vue\";\r\n\r\nexport default {\r\n\tname: \"FlyerSelectorController\",\r\n\tcomponents: {Sidebar},\r\n\tmixins:[featureMixin],\r\n\tprops:{\r\n scrollY: {\r\n\t\t\ttype: Number,\r\n\t\t}\r\n\t},\r\n\tdata(){\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'flyerSelector'\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.move(this.position);\r\n\t},\r\n\tcomputed:{\r\n\t\tisInline(){\r\n\t\t\treturn this.mode === 'inline';\r\n\t\t},\r\n\t\tmode(){\r\n\t\t\treturn this.config.mode;\r\n\t\t},\r\n\t\tposition() {\r\n\t\t\treturn this.config.position;\r\n\t\t}\r\n\t},\r\n\tmethods:{\r\n\t\t...mapActions('drawer', ['addToDrawer', 'removeFromDrawer']),\r\n\t\tmove(to, from = null){\r\n\t\t\tif(!this.isInline)return;\r\n\t\t\tconst attributes = {\r\n\t\t\t\t...this.config.attrs, scrollY: this.scrollY\r\n\t\t\t}\r\n\t\t\tif(from){\r\n\t\t\t\tthis.removeFromDrawer({id: this.featurePath, drawer: from});\r\n\t\t\t}\r\n\t\t\tif(this.enabled)this.addToDrawer({id: this.featurePath, component: appDict.inlineFlyerSelector, drawer: to, attrs: attributes, key: this.scrollY})\r\n\t\t}\r\n\t},\r\n\twatch:{\r\n\t\tposition(to, from) {\r\n\t\t\tthis.move(to, from);\r\n\t\t},\r\n\t}\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\t.flyer-selector-controller {\r\n\t\tdisplay: none;\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerSelectorController.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerSelectorController.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlyerSelectorController.vue?vue&type=template&id=0b6e110a&scoped=true&\"\nimport script from \"./FlyerSelectorController.vue?vue&type=script&lang=js&\"\nexport * from \"./FlyerSelectorController.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlyerSelectorController.vue?vue&type=style&index=0&id=0b6e110a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b6e110a\",\n null\n \n)\n\nexport default component.exports","\r\nconst block = {\r\n\t\t\"colSpan\": 2,\r\n\t\t\"rowSpan\": 1,\r\n\t\t\"index\": 0,\r\n\t\t\"name\": null,\r\n\t\t\"linkUrl\": \"\",\r\n\t\t\"aspectRatio\": 1,\r\n\t\t\"products\": [],\r\n\t\t\"images\": [],\r\n\t\t\"text\": null,\r\n\t\t\"placement\": {}\r\n\t};\r\n\r\n/*const blockImages = [\r\n\t{\r\n\t\t\"resolution\": 96,\r\n\t\t\"image\": \"\",\r\n\t\t\"width\": 561,\r\n\t\t\"height\": 178\r\n\t},\r\n\t{\r\n\t\t\"resolution\": 150,\r\n\t\t\"image\": \"\",\r\n\t\t\"width\": 877,\r\n\t\t\"height\": 278\r\n\t},\r\n\t{\r\n\t\t\"resolution\": 300,\r\n\t\t\"image\": \"\",\r\n\t\t\"width\": 1754,\r\n\t\t\"height\": 556\r\n\t}\r\n];*/\r\n\r\nconst blockPlacements = {\r\n\t\"desktop\":\r\n\t\t{\r\n\t\t\t\"visible\": true,\r\n\t\t\t\"order\": 0\r\n\t\t},\r\n\t\"tablet\":\r\n\t\t{\r\n\t\t\t\"visible\": true,\r\n\t\t\t\"order\": 0\r\n\t\t},\r\n\t\"mobile\":\r\n\t\t{\r\n\t\t\t\"visible\": true,\r\n\t\t\t\"order\": 0\r\n\t\t}\r\n}\r\n/*\r\nconst genBlock = (colSpan, rowSpan, unitWidth, unitHeight, visibility = {}) => {\r\n\treturn Object.assign({}, block, {colSpan, rowSpan, unitWidth, unitHeight, aspectRatio: (unitWidth * colSpan) / (unitHeight * rowSpan), placement: genVisibility(visibility)});\r\n}*/\r\nconst genVisibility = (visibility = {}) => {\r\n\treturn Object.assign({}, blockPlacements, visibility);\r\n}\r\n\r\nexport default class BlockGen {\r\n\tstatic GenBlock(colSpan, rowSpan, unitWidth, unitHeight, visibility = {}, extra = {}) {\r\n\t\treturn Object.assign({}, block, {colSpan, rowSpan, unitWidth, unitHeight, aspectRatio: (unitWidth * colSpan) / (unitHeight * rowSpan), placement: genVisibility(visibility)}, extra);\r\n\t}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"triangle-rewards-card\"},[(_vm.handleOffersView)?[_c('div',{staticClass:\"content\"},[_c('img',{staticClass:\"logo\",attrs:{\"alt\":_vm.content.offers.rewards,\"src\":(\"/images/triangle/triRewards_logo_\" + (this.language) + \".svg\")}}),_c('div',[_c('div',{staticClass:\"message\"},[(_vm.hasOffers)?_c('span',[_vm._v(_vm._s(_vm.content.offers.this_weeks_deals))]):_c('span',[_vm._v(_vm._s(_vm.content.offers.were_working_on))])])])]),_vm._m(0)]:(_vm.handleDisplayRewardsView)?[_c('div',{staticClass:\"content rewards_signin\"},[_c('div',{staticClass:\"message-box\"},[_c('div',{class:(\" \" + _vm.language)},[_c('h2',{},[_vm._v(_vm._s(_vm.content.offers.rewards_header))]),(_vm.isPreviewFlyer && _vm.isTuesday)?_c('div',{staticClass:\"preview-message\"},[_vm._v(_vm._s(_vm.content.offers.comeback))]):(_vm.isPreviewFlyer && !_vm.isTuesday)?_c('div',{staticClass:\"preview-message\"},[_vm._v(_vm._s(_vm.content.offers.were_working_on)+\" \")]):_c('div',[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.isLoggedIntoCT ? _vm.content.offers.linkRewardsToReveal : _vm.content.offers.rewards_body)}}),_c('button',{on:{\"click\":_vm.triggerUserDialog}},[_vm._v(_vm._s(_vm.isLoggedIntoCT ? _vm.content.offers.link : _vm.content.offers.signin))]),_c('span',{staticClass:\"message-join\"},[_vm._v(_vm._s(_vm.content.offers.rewards_join_pre)+\" \"),_c('b',[_vm._v(_vm._s(_vm.content.offers.rewards))]),_vm._v(_vm._s(_vm.content.offers.rewards_join_post)+\" \"),_c('a',{attrs:{\"href\":(_vm.language === 'en') ? 'https://www.canadiantire.ca/en/triangle-registration.html' : 'https://www.canadiantire.ca/fr/registre.html',\"target\":\"_blank\"}})])])])])]),_vm._m(1),_c('div',{staticClass:\"content rewards_box\"},[_c('img',{attrs:{\"alt\":_vm.content.offers.rewards,\"src\":(\"/images/triangle/triRewards_logo_\" + (this.language) + \".svg\")}}),_c('p',[_vm._v(_vm._s(_vm.content.offers.rewards_text)),_c('sup',[_vm._v(_vm._s(_vm.content.offers.registered_trademark))]),_vm._v(_vm._s(_vm.content.offers.rewards_text_a))]),_c('img',{staticClass:\"rewards_graphic\",attrs:{\"alt\":_vm.content.offers.rewards,\"src\":\"/images/triangle/1_1_Graphic_EN_Desktop.png\"}}),_c('div',{staticClass:\"overlay\"}),_c('span',[_vm._v(_vm._s(_vm.content.offers.click_to_join)+\" \"),_c('a',{attrs:{\"href\":(_vm.language === 'en') ? 'https://www.canadiantire.ca/en/triangle-registration.html' : 'https://www.canadiantire.ca/fr/registre.html',\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.content.offers.join))]),_vm._v(\". \")])])]:_vm._e()],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bands\"},[_c('div'),_c('div'),_c('div')])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bands\"},[_c('div'),_c('div'),_c('div')])}]\n\nexport { render, staticRenderFns }","\r\n<template>\r\n\t<div class=\"triangle-rewards-card\">\r\n\t\t<template v-if=\"handleOffersView\">\r\n\t\t\t<div class=\"content\">\r\n\r\n\t\t\t\t<!-- <br/> -->\r\n\r\n\t\t\t\t<img :alt=\"content.offers.rewards\" :src=\"`/images/triangle/triRewards_logo_${this.language}.svg`\"\r\n\t\t\t\t\tclass=\"logo\" />\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<div class=\"message\">\r\n\t\t\t\t\t\t<span v-if=\"hasOffers\">{{ content.offers.this_weeks_deals }}</span>\r\n\t\t\t\t\t\t<span v-else>{{ content.offers.were_working_on }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- <div v-else class=\"message\">{{ content.offers.comeback }}</div> -->\r\n\t\t\t\t\t<!--br/>\r\n\t\t\t\t<div class=\"fine-print\">Prices are subject to change based on product specifications and/or region</div -->\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</div>\r\n\t\t\t<div class=\"bands\">\r\n\t\t\t\t<div></div>\r\n\t\t\t\t<div></div>\r\n\t\t\t\t<div></div>\r\n\t\t\t</div>\r\n\t\t</template>\r\n\t\t<template v-else-if=\"handleDisplayRewardsView\">\r\n\t\t\t<div class=\"content rewards_signin\">\r\n\t\t\t\t<div class=\"message-box\">\r\n\t\t\t\t\t<div :class=\"` ${language}`\">\r\n\t\t\t\t\t\t<h2 class=\"\">{{ content.offers.rewards_header }}</h2>\r\n\t\t\t\t\t\t<div v-if=\"isPreviewFlyer && isTuesday\" class=\"preview-message\">{{ content.offers.comeback }}</div>\r\n\t\t\t\t\t\t<div v-else-if=\"isPreviewFlyer && !isTuesday\" class=\"preview-message\">{{ content.offers.were_working_on }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-else>\r\n\t\t\t\t\t\t\t<p v-html=\"isLoggedIntoCT ? content.offers.linkRewardsToReveal : content.offers.rewards_body\">\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t<button v-on:click=\"triggerUserDialog\">{{ isLoggedIntoCT ? content.offers.link :\r\n\t\t\t\t\t\t\t\tcontent.offers.signin }}</button>\r\n\t\t\t\t\t\t\t<span class=\"message-join\">{{ content.offers.rewards_join_pre }} <b>{{ content.offers.rewards\r\n\t\t\t\t\t\t\t}}</b>{{ content.offers.rewards_join_post }}\r\n\t\t\t\t\t\t\t\t<a :href=\"(language === 'en') ? 'https://www.canadiantire.ca/en/triangle-registration.html' : 'https://www.canadiantire.ca/fr/registre.html'\"\r\n\t\t\t\t\t\t\t\t\ttarget=\"_blank\"></a>\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"bands\">\r\n\t\t\t\t<div></div>\r\n\t\t\t\t<div></div>\r\n\t\t\t\t<div></div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\" content rewards_box\">\r\n\t\t\t\t<img :alt=\"content.offers.rewards\" :src=\"`/images/triangle/triRewards_logo_${this.language}.svg`\" />\r\n\t\t\t\t<p>{{ content.offers.rewards_text }}<sup>{{ content.offers.registered_trademark }}</sup>{{\r\n\t\t\t\t\tcontent.offers.rewards_text_a }}</p>\r\n\t\t\t\t<img :alt=\"content.offers.rewards\" :src=\"`/images/triangle/1_1_Graphic_EN_Desktop.png`\"\r\n\t\t\t\t\tclass=\"rewards_graphic\" />\r\n\t\t\t\t<div class=\"overlay\"></div>\r\n\t\t\t\t<span>{{ content.offers.click_to_join }}\r\n\t\t\t\t\t<a :href=\"(language === 'en') ? 'https://www.canadiantire.ca/en/triangle-registration.html' : 'https://www.canadiantire.ca/fr/registre.html'\"\r\n\t\t\t\t\t\ttarget=\"_blank\"> {{ content.offers.join }}</a>.\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t</template>\r\n\r\n\r\n\r\n\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\n\r\n\r\nexport default {\r\n\tname: \"TriangleRewardsCard\",\r\n\tmixins: [blockElementMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tshouldApplyStyle: false\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tthis.loadOffers();\r\n\t\tthis.updateBlockClass();\r\n\r\n\t\t//window.addEventListener(\"resize\", this.handleResize());\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('ctUser', ['canViewTriangleRewards', 'isSignedIn', 'offerViewMode', 'hasOffers', 'isLoggedIntoCT', 'hasTriangleID']),\r\n\t\t...mapGetters(['content', 'language']),\r\n\t\tisTuesday() {\r\n\t\t\tconst today = new Date();\r\n\t\t\tconst dayOfWeek = 2;\r\n\t\t\treturn today.getDay() === dayOfWeek;\r\n\t\t},\r\n\t\tisPreviewFlyer() {\r\n\t\t\treturn this.isLoggedIntoCT && this.hasTriangleID && this.offerViewMode === 'preview';\r\n\t\t},\r\n\t\thandleOffersView() {\r\n\t\t\treturn this.isLoggedIntoCT && this.hasTriangleID && this.offerViewMode === 'live';\r\n\t\t},\r\n\t\thandleDisplayRewardsView() {\r\n\t\t\treturn (!this.isLoggedIntoCT && !this.hasTriangleID) || (this.isLoggedIntoCT && !this.hasTriangleID) ||\r\n\t\t\t\t(this.isPreviewFlyer) || (this.isPreviewFlyer && this.isTuesday)\r\n }\r\n\t},\r\n\tmounted() {\r\n\t\tthis.handleResize();\r\n\t\twindow.addEventListener(\"resize\", this.handleResize);\r\n\t},\r\n\tbeforeUnmount() {\r\n\t\twindow.removeEventListener(\"resize\", this.handleResize);\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('ctUser', ['triggerUserDialog', 'updateOfferBlocks', 'loadOffers']),\r\n\t\tgetUrlParameter(name) {\r\n\t\t\tname = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n\t\t\tvar regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n\t\t\tvar results = regex.exec(window.location.search);\r\n\t\t\treturn results === null\r\n\t\t\t\t? \"\"\r\n\t\t\t\t: decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n\t\t},\r\n\t\tupdateBlockClass() {\r\n\t\t\tthis.block.classes['noOffers'] = !this.hasOffers;\r\n\t\t\tthis.block.classes['previewFlyer'] = this.isPreviewFlyer;\r\n\t\t},\r\n\t\thandleResize() {\r\n\t\t\tconst noOffersRewards = document.querySelector(\".noOffers\");\r\n\t\t\tconst parent = noOffersRewards?.closest(\" [mode=mobile] [page-id=triangleRewards].section-container\");\r\n\t\t\tif (parent) {\r\n\t\t\t\tparent.style.gridTemplateRows = \"repeat(3, 193.5px) \";\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\thasOffers() {\r\n\t\t\tthis.updateBlockClass();\r\n\t\t\t//window.addEventListener(\"resize\", this.handleResize());\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.triangle-rewards-card {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tbackground-color: #fff;\r\n\twidth: inherit;\r\n\theight: inherit;\r\n\t/* calc(16em * 0.8235);*/\r\n\ttext-rendering: optimizeLegibility;\r\n\t-webkit-font-smoothing: antialiased;\r\n\tz-index: 999;\r\n\r\n\t/*border: solid 1px #AEAEAE;*/\r\n\t.content {\r\n\t\tposition: relative;\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tflex-basis: 100%;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t\tpadding: 0.4em 2em 0 2em;\r\n\t\ttext-align: center;\r\n\r\n\t\tbutton {\r\n\t\t\tborder: none;\r\n\t\t\tbackground-color: #8bf3eb;\r\n\t\t\twidth: 80%;\r\n\t\t\t// padding:3px;\r\n\t\t\tpadding: 2px;\r\n\t\t\tmargin: 5px;\r\n\t\t\tfont-size: 1.2em;\r\n\t\t}\r\n\r\n\t\t.overlay {\r\n\t\t\ttop: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\tright: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tposition: absolute;\r\n\t\t}\r\n\t}\r\n\r\n\t.rewards_signin {\r\n\t\tborder: solid 1px #AEAEAE;\r\n\t\tmax-height: 30%;\r\n\r\n\t\th2 {\r\n\t\t\tcolor: var(--secondary-color)\r\n\t\t}\r\n\r\n\t\tbutton {\r\n\t\t\tbackground-color: var(--secondary-color);\r\n\t\t\tcolor: #fff;\r\n\t\t\twidth: unset;\r\n\t\t\tmin-height: unset;\r\n\t\t\tpadding: 2.5px 15px 4px;\r\n\t\t\tfont-size: 1em;\r\n\t\t}\r\n\r\n\t\tp {\r\n\t\t\tmargin: 1em 7em;\r\n\t\t}\r\n\r\n\t\t.preview-message {\r\n\t\t\tmargin: 1em 10em;\r\n\t\t}\r\n\r\n\t\t.message-join {\r\n\t\t\tfont-weight: unset;\r\n\t\t}\r\n\r\n\t\t+.bands {\r\n\t\t\theight: 50px;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.rewards_box {\r\n\t\tborder: solid 1px #AEAEAE;\r\n\t\tpadding-top: 2em;\r\n\r\n\t\timg {\r\n\t\t\twidth: 55%;\r\n\t\t\theight: auto;\r\n\t\t}\r\n\r\n\t\tp {\r\n\t\t\tmargin: 1em 6.5em;\r\n\t\t}\r\n\r\n\t\t.rewards_graphic,\r\n\t\tspan {\r\n\t\t\ttransform: translateY(-35px);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t.logo {\r\n\t\twidth: 90%;\r\n\t\tpadding-bottom: 3px;\r\n\t}\r\n\r\n\t.message-box {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.message {\r\n\t\ttext-align: center;\r\n\t\tfont-size: 1.2em;\r\n\t\tfont-weight: 500;\r\n\t}\r\n\r\n\t.message-reveal {\r\n\t\ttext-align: center;\r\n\t\tfont-size: 1em;\r\n\t\tfont-weight: 900;\r\n\r\n\t\t.fr {\r\n\t\t\tfont-size: .9em;\r\n\t\t}\r\n\t}\r\n\r\n\t.message-reveal-fr {\r\n\t\ttext-align: center;\r\n\t\tfont-size: .9em;\r\n\t\tfont-weight: 900;\r\n\t}\r\n\r\n\t.message-join {\r\n\t\ttext-align: center;\r\n\t\tfont-size: .7em;\r\n\t\tfont-weight: 900;\r\n\t\tpadding-bottom: 3px;\r\n\t}\r\n\r\n\t.fine-print {\r\n\t\tfont-size: 0.4em;\r\n\t}\r\n\r\n\t.bands {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tjustify-content: space-evenly;\r\n\t\twidth: 100%;\r\n\t\theight: 1.3em;\r\n\r\n\t\t> :first-child {\r\n\t\t\tbackground-color: #EB2227;\r\n\t\t}\r\n\r\n\t\t> :nth-child(2) {\r\n\t\t\tbackground-color: #83142F;\r\n\t\t}\r\n\r\n\t\t> :last-child {\r\n\t\t\tbackground-color: #78CCC7;\r\n\t\t}\r\n\r\n\t\t>* {\r\n\t\t\tflex-grow: 1;\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n[mode='mobile'] [page-id='triangleRewards'].section-container {\r\n\tposition: relative;\r\n\r\n\t&>.flyer-block.noOffers, &>.flyer-block.previewFlyer{\r\n\t\t// position: absolute;\r\n\t\t// z-index: 100;\r\n\t\t// top: 50%;\r\n\t\t// transform: translateY(-50%);\r\n\t\t// box-shadow: 0px 0px 16px 4px #20202042;\r\n\t\tgrid-area: span 3 / span 2 / auto / auto !important;\r\n\r\n\t}\r\n\r\n\t@-moz-document url-prefix() {\r\n\t\t.block.noOffers {\r\n\t\t\tposition: absolute;\r\n\t\t\tbottom: 100%;\r\n\t\t\ttransform: translateY(-300%);\r\n\t\t}\r\n\t}\r\n}</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TriangleRewardsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TriangleRewardsCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TriangleRewardsCard.vue?vue&type=template&id=6f104d64&scoped=true&\"\nimport script from \"./TriangleRewardsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./TriangleRewardsCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TriangleRewardsCard.vue?vue&type=style&index=0&id=6f104d64&lang=scss&scoped=true&\"\nimport style1 from \"./TriangleRewardsCard.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f104d64\",\n null\n \n)\n\nexport default component.exports","import BlockGen from \"@/features/offers/classes/BlockGen\";\r\nimport TriangleRewardsCard from \"@/features/offers/TriangleRewardsCard.vue\";\r\n\r\nexport default (pages, pagesIndex, insertPageNum, unitWidth, unitHeight, lang) => {\r\n\r\n\tconst offerPage = {\r\n\t\t\"id\": \"triangleRewards\",\r\n\t\t\"publicationId\": \"triangleRewards\",\r\n\t\t\"name\": \"triangleRewards\",\r\n\t\t\"width\": 0,\r\n\t\t\"height\": 0,\r\n\t\t\"isAdPage\": false,\r\n\t\t\"disclaimer\": null,\r\n\t\t\"unitWidth\": unitWidth,\r\n\t\t\"unitHeight\": unitHeight,\r\n\t\t\"countTowardsPageCount\": false,\r\n\t\t\"basebars\": {\r\n\t\t\t\"desktop\": [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"resolution\": 300,\r\n\t\t\t\t\t\"aspectRatio\": 16.1296,\r\n\r\n\t\t\t\t\t\"image\": lang === 'en'? \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_EN.jpg\": \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_FR.jpg\",\r\n\t\t\t\t\t// \"url\": \"https://triangle.canadiantire.ca/en.html\"\r\n\t\t\t\t\t\"url\": lang === \"en\" ? \"https://triangle.canadiantire.ca/en.html\" : \"https://triangle.canadiantire.ca/fr.html\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"resolution\": 150,\r\n\t\t\t\t\t\"aspectRatio\": 16.1296,\r\n\t\t\t\t\t\"image\":lang === 'en'? \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_EN.jpg\": \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_FR.jpg\",\r\n\t\t\t\t\t// \"url\": \"https://triangle.canadiantire.ca/en.html\"\r\n\t\t\t\t\t\"url\": lang === \"en\" ? \"https://triangle.canadiantire.ca/en.html\" : \"https://triangle.canadiantire.ca/fr.html\"\r\n\t\t\t\t}],\r\n\t\t\t\"tablet\": [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"resolution\": 300,\r\n\t\t\t\t\t\"aspectRatio\": 26.889,\r\n\t\t\t\t\t\"image\": lang === 'en'? \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_EN.jpg\": \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_FR.jpg\",\r\n\t\t\t\t\t// \"url\": \"https://triangle.canadiantire.ca/en.html\"\r\n\t\t\t\t\t\"url\": lang === \"en\" ? \"https://triangle.canadiantire.ca/en.html\" : \"https://triangle.canadiantire.ca/fr.html\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"resolution\": 150,\r\n\t\t\t\t\t\"aspectRatio\": 26.889,\r\n\t\t\t\t\t\"image\": lang === 'en'? \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_EN.jpg\": \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_FR.jpg\",\r\n\t\t\t\t\t// \"url\": \"https://triangle.canadiantire.ca/en.html\"\r\n\t\t\t\t\t\"url\": lang === \"en\" ? \"https://triangle.canadiantire.ca/en.html\" : \"https://triangle.canadiantire.ca/fr.html\"\r\n\t\t\t\t}],\r\n\t\t\t\"mobile\": [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"resolution\": 300,\r\n\t\t\t\t\t\"aspectRatio\": 13.936,\r\n\t\t\t\t\t\"image\": lang === 'en'? \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_EN.jpg\": \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_FR.jpg\",\r\n\t\t\t\t\t// \"url\": \"https://triangle.canadiantire.ca/en.html\"\r\n\t\t\t\t\t\"url\": lang === \"en\" ? \"https://triangle.canadiantire.ca/en.html\" : \"https://triangle.canadiantire.ca/fr.html\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"resolution\": 150,\r\n\t\t\t\t\t\"aspectRatio\": 13.936,\r\n\t\t\t\t\t\"image\": lang === 'en'? \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_EN.jpg\": \"/images/triangle/basebars/300dpi/Desktop_Weekly Offers_FR.jpg\",\r\n\t\t\t\t\t// \"url\": \"https://triangle.canadiantire.ca/en.html\"\r\n\t\t\t\t\t\"url\": lang === \"en\" ? \"https://triangle.canadiantire.ca/en.html\" : \"https://triangle.canadiantire.ca/fr.html\"\r\n\t\t\t\t}]\r\n\t\t},\r\n\t\t\"grids\":\r\n\t\t\t{\r\n\t\t\t\t\"desktop\":\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"rowCount\": 4,\r\n\t\t\t\t\t\t\"colCount\": 3\r\n\t\t\t\t\t},\r\n\t\t\t\t\"tablet\":\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"rowCount\": 4,\r\n\t\t\t\t\t\t\"colCount\": 3,\r\n\t\t\t\t\t\t\"fitCols\": 5,\r\n\t\t\t\t\t\t\"style\": {\r\n\t\t\t\t\t\t\t\"fontSize\": \"13px\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\"mobile\":\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"rowCount\": 3,\r\n\t\t\t\t\t\t\"colCount\": 2,\r\n\t\t\t\t\t\t\"fitCols\": 3,\r\n\t\t\t\t\t\t\"style\": {\r\n\t\t\t\t\t\t\t\"fontSize\": \"13px\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t},\r\n\t\t\"blocks\": [\r\n\t\t\tBlockGen.GenBlock(5, 1, unitWidth, unitHeight, {}, {id: 'triangleRewards_card', type: 'component', component: TriangleRewardsCard})\r\n\t\t]\r\n\t}\r\n\tpages.splice(pagesIndex[insertPageNum], 0, offerPage)\r\n\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"deep-link-controller\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\r\n\t<div class=\"deep-link-controller\"></div>\r\n\r\n</template>\r\n\r\n\r\n<script>\r\n\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\n\r\nimport {mapGetters, mapActions} from \"vuex\";\r\n\r\nexport default {\r\n\r\n\tname: \"DeepLinkController\",\r\n\tmixins: [featureMixin],\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\twaysToSave: '',\r\n\t\t\tcategory: '',\r\n\t\t\tsavings: 0,\r\n\t\t\tsearch: ''\r\n\t\t}\r\n\t},\r\n\r\n\tcomputed: {\r\n\t\t...mapGetters('filters', [\"filtersByName\"]),\r\n\t\t...mapGetters(['productsBySKU']),\r\n\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions('filters', [\"setFilterPanelState\"]),\r\n\t\t...mapActions('pdp', ['open']),\r\n\t\tcheckShowPDP() {\r\n\t\t\tconst showPdp = this.$route?.query?.showPDP === '1';\r\n\t\t\tconst sku = this.$route?.hash?.split('#').find((item) => {\r\n\t\t\t\treturn item.includes('sku=');\r\n\t\t\t})?.replace('sku=', '');\r\n\t\t if(showPdp && sku) {\r\n\t\t\t\tthis.open(this.productsBySKU[sku]);\r\n\t\t }\r\n\t\t}\r\n\t},\r\n\r\n\tmounted() {\r\n\t\tthis.search = this.$route.query?.searchTerm;\r\n\t\tconst categoryParam = decodeURIComponent(this.$route.fullPath?.match(/category=(.*)/)?.[1]);\r\n\t\tthis.category = categoryParam.includes('&') ? categoryParam : this.$route.query?.category;\r\n\t\tthis.savings = this.$route.query?.savings;\r\n\t\tthis.waysToSave = this.$route.query?.waysToSave;\r\n\r\n\t\tif (this.search) {\r\n\t\t\tthis.filtersByName['text'].value = this.search;\r\n\t\t\tthis.openFilterPanel\r\n\t\t}\r\n\r\n\t\tif (this.category) {\r\n\t\t\tconst sections = this.filtersByName['category']?.sections;\r\n\t\t\tsections?.forEach((section) => {\r\n\t\t\t\tsection?.items?.forEach((item) => {\r\n\r\n\t\t\t\t\tif (item?.label.toUpperCase() === this.category.toUpperCase()) {\r\n\t\t\t\t\t\titem.checkbox.selected = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\titem?.subItems?.forEach((subItem) => {\r\n\t\t\t\t\t\tif (subItem.label === this.category.toUpperCase()) {\r\n\t\t\t\t\t\t\tsubItem.checkbox.selected = true\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (this.savings) {\r\n\t\t\tlet saving = this.filtersByName['saving']?.items;\r\n\t\t\tif (this.filtersByName['saving']) {\r\n\t\t\t\tsaving.forEach((saving) => {\r\n\t\t\t\t\tif (saving.label.includes(this.savings)) {\r\n\t\t\t\t\t\tsaving.selected = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.waysToSave) {\r\n\t\t\tlet waysToSave = this.filtersByName['waysToSave']?.sections[0]\r\n\t\t\twaysToSave.items.forEach((item) => {\r\n\t\t\t\tif (item.label.toUpperCase() === this.waysToSave.toUpperCase()) {\r\n\t\t\t\t\titem.checkbox.selected = true;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis.$nextTick(() => {\r\n setTimeout(() => {\r\n this.checkShowPDP();\r\n }, 1100)\r\n })\r\n\t}\r\n}\r\n\r\n</script>\r\n\r\n\r\n<style scoped>\r\n\r\n.deep-link-controller {\r\n\tdisplay: none;\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeepLinkController.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeepLinkController.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DeepLinkController.vue?vue&type=template&id=78074775&scoped=true&\"\nimport script from \"./DeepLinkController.vue?vue&type=script&lang=js&\"\nexport * from \"./DeepLinkController.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DeepLinkController.vue?vue&type=style&index=0&id=78074775&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78074775\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"iframe-relay\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\r\n/**\r\n * Listens for messages from parent container and triggers feature events\r\n * Parent messages should match\r\n * {\r\n * event:sting -> event name\r\n * direction:string -> must equal 'to-iframe'\r\n * data:any -> data passed from parent\r\n * }\r\n */\r\n\r\nimport {mapActions} from \"vuex\";\r\n\r\nexport default {\r\n\tname: \"IframeRelay\",\r\n\tmounted() {\r\n\t\twindow.addEventListener(\"message\", this.onMessage);\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\twindow.removeEventListener('message', this.onMessage);\r\n\t},\r\n\tmethods:{\r\n\t\t...mapActions('events', ['triggerEvent']),\r\n\t\tonMessage(msg) {\r\n\t\t\tconst { origin, data, source } = msg;\r\n\t\t\t//console.log(\"Message:\", msg);\r\n\t\t\tif (data?.event && data?.direction === \"to-iframe\") {\r\n\t\t\t\tconsole.log('Iframe Message Received:', data);\r\n\t\t\t\tconst event = data.event;\r\n\t\t\t\tthis.triggerEvent({\r\n\t\t\t\t\tevent: `iframe-event-${event}`,\r\n\t\t\t\t\tdata:{ origin, source , data: data?.data }\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"iframe-relay\"></div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n .iframe-relay {\r\n display: none;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IframeRelay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IframeRelay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IframeRelay.vue?vue&type=template&id=b96ee51a&scoped=true&\"\nimport script from \"./IframeRelay.vue?vue&type=script&lang=js&\"\nexport * from \"./IframeRelay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IframeRelay.vue?vue&type=style&index=0&id=b96ee51a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b96ee51a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"raddar-sync\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import router from \"@/router\";\r\n\r\nexport const RaddarEvent = {\r\n Ping: 'ping',\r\n ShoppingList:{\r\n Add: 'shopping-list-add',\r\n Remove: 'shopping-list-remove',\r\n Quantity: 'shopping-list-qty',\r\n Clear: 'shopping-list-clear',\r\n List: 'shopping-list-list',\r\n GetList: 'shopping-list-getList'\r\n }\r\n}\r\n\r\nconst getters = {\r\n isRaddar(state, getters, rootState, rootGetters) {\r\n if(rootGetters[\"config/features\"]?.raddar?.force)return true;\r\n const fc = router.currentRoute.query?._fc;\r\n if(fc){\r\n return fc?.includes('raddar');\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n getters\r\n}\r\n","<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport ParentComms from \"@/classes/ParentComms\";\r\nimport {RaddarEvent} from \"@/features/raddar/store/raddar\";\r\nimport {isArray} from \"lodash\";\r\n\r\nfunction handleShoppingListEvent(event, data) {\r\n\tconsole.log('Shopping List Event:', data);\r\n\tconst type = event.split('-').pop();\r\n\tif (data?.product?.sku || data?.sku) {\r\n\t\tdata = {sku: data?.product?.sku || data?.sku, publicationId: data.publicationId}\r\n\t}\r\n\tParentComms.SendEvent('shopping-list-event', {type, data});\r\n}\r\n\r\n\r\nexport default {\r\n\tname: \"RaddarSync\",\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\tconst slEvents = [];\r\n\r\n\t\tconsole.log('ShoppingList Events:', RaddarEvent.ShoppingList);\r\n\r\n\t\tfor (let p in RaddarEvent.ShoppingList) {\r\n\t\t\tconst event = RaddarEvent.ShoppingList[p];\r\n\t\t\tslEvents.push(event);\r\n\t\t\tslEvents.push(`iframe-event-${event}`);\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'share',\r\n\t\t\tfeatureEvents: [\r\n\t\t\t\t'iframe-event-zoom',\r\n\t\t\t\t'iframe-event-orientation',\r\n\t\t\t\t'productRegionClick',\r\n\t\t\t\t...slEvents\r\n\t\t\t]\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tthis.shoppingListLoad();\r\n\t},\r\n\tmounted() {\r\n\t\tParentComms.SendEvent(RaddarEvent.Ping, {\r\n\t\t\tflyer: {\r\n\t\t\t\tpublicationId: this.publicationId,\r\n\t\t\t\tstoreId: this.storeId,\r\n\t\t\t\tdealId: this.dealId,\r\n\t\t\t\tlang: this.language\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapState('scale', ['zoomLevel']),\r\n\t\t...mapState('shoppingList', ['shoppingList']),\r\n\t\t...mapGetters('landingPage', ['currentFlyer']),\r\n\t\t...mapGetters(['publicationId', 'storeId', 'dealId', 'language'])\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('scale', ['setZoomLevel']),\r\n\t\t...mapActions(['setColumnView']),\r\n\t\t...mapActions('shoppingList', {\r\n\t\t\tshoppingListAddBySku: 'skuAddToList',\r\n\t\t\tshoppingListClearAll: 'clearAll',\r\n\t\t\tshoppingListRemove: 'setRemoveFromList',\r\n\t\t\tshoppingListLoad: 'handleLocalStorage'\r\n\t\t}),\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param {String} event\r\n\t\t * @param data\r\n\t\t */\r\n\t\tonFeatureEvent(event, data) {\r\n\t\t\tconsole.log('!!!Feature Event:', event, data)\r\n\t\t\tconst value = data?.data;\r\n\t\t\tswitch (event) {\r\n\t\t\t\tcase 'iframe-event-zoom':\r\n\t\t\t\t\tif (!isNaN(value?.scale)) {\r\n\t\t\t\t\t\tconst scale = (value.scale - 100) / 100;\r\n\t\t\t\t\t\tthis.setZoomLevel(scale);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'iframe-event-orientation':\r\n\t\t\t\t\tthis.setColumnView(value?.isColumnView)\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'productRegionClick':\r\n\t\t\t\t\tconsole.log('RaddarSync Product RegionClick:', data);\r\n\t\t\t\t\tParentComms.SendEvent('dealClick', data?.product)\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (event.includes('iframe-event-shopping-list')) {\r\n\t\t\t\tthis.handleShoppingListRequest(event, data);\r\n\t\t\t} else if (event.includes('shopping-list')) {\r\n\t\t\t\thandleShoppingListEvent(event, {...data, publicationId: this.publicationId});\r\n\t\t\t}\r\n\t\t},\r\n\t\thandleShoppingListRequest(event, data) {\r\n\t\t\tconst evt = event.replace('iframe-event-', '');\r\n\t\t\tdata = data?.data;\r\n\t\t\tswitch (evt) {\r\n\t\t\t\tcase RaddarEvent.ShoppingList.Add:\r\n\t\t\t\t\t//console.log('Adding Item to Shopping List:', data);\r\n\t\t\t\t\tthis.shoppingListAddBySku(data?.sku);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase RaddarEvent.ShoppingList.Remove:\r\n\t\t\t\t\tthis.shoppingListRemove(data);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase RaddarEvent.ShoppingList.Clear:\r\n\t\t\t\t\tthis.shoppingListClearAll();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase RaddarEvent.ShoppingList.List:\r\n\t\t\t\t\tif (isArray(data)) {\r\n\t\t\t\t\t\tdata.forEach((item) => {\r\n\t\t\t\t\t\t\tif (item?.sku) this.shoppingListAddBySku(item.sku);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase RaddarEvent.ShoppingList.GetList:\r\n\t\t\t\t\thandleShoppingListEvent(RaddarEvent.ShoppingList.List, [\r\n\t\t\t\t\t\t...this.shoppingList.map((prod) => {\r\n\t\t\t\t\t\t\treturn {sku: prod?.sku}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t])\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\tzoomLevel(val) {\r\n\t\t\tParentComms.SendEvent('zoom', {scale: val});\r\n\t\t}\r\n\t}\r\n\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"raddar-sync\"></div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.raddar-sync {\r\n display: none;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarSync.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarSync.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RaddarSync.vue?vue&type=template&id=64903072&scoped=true&\"\nimport script from \"./RaddarSync.vue?vue&type=script&lang=js&\"\nexport * from \"./RaddarSync.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RaddarSync.vue?vue&type=style&index=0&id=64903072&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64903072\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.config.hide)?_c('header',_vm._b({staticClass:\"feature-header\"},'header',_vm.config.attrs,false),[_c('config-style-injector',{attrs:{\"root-selector\":\"header.feature-header\",\"config\":_vm.config}}),_c('div',{staticClass:\"main-header\"},[_c('div',{staticClass:\"inline-header\"},_vm._l((_vm.inlineItems),function(item){return _c(item.component,_vm._b({key:item.name,tag:\"component\"},'component',item.attrs,false))}),1),_vm._t(\"default\")],2),_c('drawer-container',{attrs:{\"drawer\":\"header\"}}),_c('div',{staticClass:\"mobile-landscape\"},[_c('svg',{attrs:{\"fill\":\"none\",\"height\":\"28\",\"stroke\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"width\":\"28\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"2\"}})]),_c('span',[_vm._v(\"Rotate Device for Menu\")])])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- eslint-disable no-mixed-spaces-and-tabs -->\r\n<template>\r\n\t<header class=\"feature-header\" v-bind=\"config.attrs\" v-if=\"!config.hide\">\r\n\t\t<config-style-injector :root-selector=\"`header.feature-header`\" :config=\"config\" />\r\n\t\t<div class=\"main-header\">\r\n\t\t\t<div class=\"inline-header\">\r\n\r\n\t\t\t\t<component v-for=\"item in inlineItems\" :key=\"item.name\" :is=\"item.component\" v-bind=\"item.attrs\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<slot />\r\n\t\t</div>\r\n\t\t<drawer-container drawer=\"header\" />\r\n\t\t<div class=\"mobile-landscape\">\r\n\t\t\t<svg fill=\"none\" height=\"28\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" width=\"28\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t<path d=\"M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z\" stroke-linecap=\"round\"\r\n\t\t\t\t\tstroke-linejoin=\"round\" stroke-width=\"2\"></path>\r\n\t\t\t</svg>\r\n\t\t\t<span>Rotate Device for Menu</span>\r\n\t\t</div>\r\n\t</header>\r\n</template>\r\n\r\n<script>\r\n//TODO - Find better way to properly bind savings filter value\r\n\r\n\r\nimport { mapActions, mapGetters } from 'vuex';\r\n\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport { FeatureJsonToComponents, headerDict } from \"@/features/FeatureHelper\";\r\nimport DrawerContainer from \"@/components/drawer/DrawerContainer.vue\";\r\nimport ConfigStyleInjector from \"@/components/style-injector/ConfigStyleInjector.vue\";\r\n\r\n\r\nexport default {\r\n\tname: \"AppHeader\",\r\n\tmixins: [featureMixin],\r\n\tcomponents: {\r\n\t\tConfigStyleInjector,\r\n\t\tDrawerContainer\r\n\t},\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: 'header',\r\n\t\t\tshowHamburger: false,\r\n\t\t\tsearch: '',\r\n\t\t}\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions('screen', ['setFullScreen', 'exitFullScreen'])\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters('landingPage', ['currentFlyer', 'previewDate']),\r\n\t\tinlineItems() {\r\n\r\n\t\t\treturn FeatureJsonToComponents(this.config?.inline, headerDict);\r\n\t\t\t/*const o = [];\r\n\t\t\tconst items = this.config?.inline;\r\n\t\t\tif(!items) return o;\r\n\t\t\tconst dict = headerDict;// featureCompDict.header;\r\n\t\t\t// console.log('header dict:', dict);\r\n\t\t\tfor(let p of items) {\r\n\t\t\t\tconsole.log('inlineItems:', p, dict[p])\r\n\t\t\t\tlet name = p;\r\n\t\t\t\tlet props = {};\r\n\t\t\t\tif(isObject(p) && p?.name) {\r\n\t\t\t\t\tconsole.log('Inline Item is an Object:', p);\r\n\t\t\t\t\tlet {name: compName, ...rest} = p;\r\n\t\t\t\t\tname = compName;\r\n\t\t\t\t\tprops = rest;\r\n\r\n\t\t\t\t\tconsole.log('Name:', name, ' Props:', props);\r\n\t\t\t\t}\r\n\t\t\t\tif(dict[name]) {\r\n\t\t\t\t\tconst component = dict[name];\r\n\t\t\t\t\to.push({component, name, attrs:props})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn o;*/\r\n\t\t}\r\n\t},\r\n\r\n\tbeforeMount() {\r\n\t\t// this.setFullScreen(true);\r\n\t\t/*if (this.language === 'fr') {\r\n\t\t\tmoment.locale('fr', {\r\n\t\t\t\tmonths: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\r\n\t\t\t\tmonthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\r\n\t\t\t\tmonthsParseExact: true,\r\n\t\t\t\tweekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\r\n\t\t\t\tweekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\r\n\t\t\t\tweekdaysMin: 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),\r\n\t\t\t\tweekdaysParseExact: true,\r\n\t\t\t\tlongDateFormat: {\r\n\t\t\t\t\tLT: 'HH:mm',\r\n\t\t\t\t\tLTS: 'HH:mm:ss',\r\n\t\t\t\t\tL: 'DD/MM/YYYY',\r\n\t\t\t\t\tLL: 'D MMMM YYYY',\r\n\t\t\t\t\tLLL: 'D MMMM YYYY HH:mm',\r\n\t\t\t\t\tLLLL: 'dddd D MMMM YYYY HH:mm'\r\n\t\t\t\t},\r\n\t\t\t\tcalendar: {\r\n\t\t\t\t\tsameDay: '[Aujourd’hui à ] LT',\r\n\t\t\t\t\tnextDay: '[Demain à ] LT',\r\n\t\t\t\t\tnextWeek: 'dddd [à ] LT',\r\n\t\t\t\t\tlastDay: '[Hier à ] LT',\r\n\t\t\t\t\tlastWeek: 'dddd [dernier à ] LT',\r\n\t\t\t\t\tsameElse: 'L'\r\n\t\t\t\t},\r\n\t\t\t\trelativeTime: {\r\n\t\t\t\t\tfuture: 'dans %s',\r\n\t\t\t\t\tpast: 'il y a %s',\r\n\t\t\t\t\ts: 'quelques secondes',\r\n\t\t\t\t\tm: 'une minute',\r\n\t\t\t\t\tmm: '%d minutes',\r\n\t\t\t\t\th: 'une heure',\r\n\t\t\t\t\thh: '%d heures',\r\n\t\t\t\t\td: 'un jour',\r\n\t\t\t\t\tdd: '%d jours',\r\n\t\t\t\t\tM: 'un mois',\r\n\t\t\t\t\tMM: '%d mois',\r\n\t\t\t\t\ty: 'un an',\r\n\t\t\t\t\tyy: '%d ans'\r\n\t\t\t\t},\r\n\t\t\t\tdayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\r\n\t\t\t\tordinal: function (number) {\r\n\t\t\t\t\treturn number + (number === 1 ? 'er' : '');\r\n\t\t\t\t},\r\n\t\t\t\tmeridiemParse: /PD|MD/,\r\n\t\t\t\tisPM: function (input) {\r\n\t\t\t\t\treturn input.charAt(0) === 'M';\r\n\t\t\t\t},\r\n\t\t\t\t// In case the meridiem units are not separated around 12, then implement\r\n\t\t\t\t// this function (look at locale/id.js for an example).\r\n\t\t\t\t// meridiemHour : function (hour, meridiem) {\r\n\t\t\t\t// return /!* 0-23 hour, given meridiem token and hour 1-12 *!/ ;\r\n\t\t\t\t// },\r\n\t\t\t\tmeridiem: function (hours) {\r\n\t\t\t\t\treturn hours < 12 ? 'PD' : 'MD';\r\n\t\t\t\t},\r\n\t\t\t\tweek: {\r\n\t\t\t\t\tdow: 1, // Monday is the first day of the week.\r\n\t\t\t\t\tdoy: 4 // Used to determine first week of the year.\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}*/\r\n\t},\r\n\r\n\tmounted() {\r\n\t\t// this.exitFullScreen();\r\n\t\twindow.parent.postMessage(\r\n\t\t\twindow.JSON.stringify({\r\n\t\t\t\ttype: 'FLYER-VIEW',\r\n\t\t\t\tflyer: {\r\n\t\t\t\t\tid: this.currentFlyer.title,\r\n\t\t\t\t\tpublicationId: this.currentFlyer.id,\r\n\t\t\t\t\tstoreId: this.$route.query.storeId,\r\n\t\t\t\t\tstarDate: this.currentFlyer.startDate,\r\n\t\t\t\t\tendDate: this.currentFlyer.endDate,\r\n\t\t\t\t\tpreviewDate: this.previewDate\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\t'*'\r\n\t\t)\r\n\t},\r\n\r\n\tbeforeDestroy() {\r\n\t\t// this.setFullScreen(false);\r\n\t\t//this.resetFilters();\r\n\t\t//this.setSubHeaderState(false);\r\n\t\t//this.showSubHeader=false;\r\n\r\n\t\t/*if (this.showHamburgerMenu) {\r\n\t\t\tthis.toggleHamburgerMenu();\r\n\t\t}*/\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.separator {\r\n\tborder-left: 1px dotted black;\r\n\t/*margin:0px 10px;*/\r\n\theight: 35px;\r\n}\r\n\r\nheader {\r\n\twidth: 100%;\r\n\tz-index: 1000;\r\n\tbackground-color: #FFF;\r\n}\r\n\r\n.mobile-landscape {\r\n\tdisplay: none;\r\n}\r\n\r\n.mobile-only {\r\n\tdisplay: none;\r\n}\r\n\r\nheader .inline-header {\r\n\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\t/*padding: 1em;*/\r\n\t//height: 66px;\r\n\t//height: 67px;\r\n\t//padding: 0 18px;\r\n\t//border-bottom: 1px solid #BBB; //removed for SUPDF-198\r\n\t//margin-bottom: 1px; //added for SUPDF-198\r\n\tcolumn-gap: 0.5em;\r\n\tmin-height: 4em;\r\n\r\n\t[mode='tablet'] &,\r\n\t[mode='mobile'] & {\r\n\t\tflex-direction: column;\r\n\r\n\t\t.control-panel,\r\n\t\t.control-panel-v2 {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\n\r\n/*header * {\r\n\ttransition: all 0.5s;\r\n}*/\r\n\r\n.inline-header>.header-right {\r\n\tdisplay: flex;\r\n\tjustify-content: flex-end;\r\n\tcolumn-gap: 4px;\r\n}\r\n\r\n\r\n\r\n\r\n.date-container {\r\n\tfont-size: 15px;\r\n\tmargin-left: 5px;\r\n}\r\n\r\n.date {\r\n\t// font-weight: 700;\r\n\tfont-family: inherit;\r\n\tmargin-right: 10px;\r\n\t//color: var(--primary-color);\r\n}\r\n\r\n/*\r\n.btn {\r\n\tbackground: none;\r\n\tborder: 1px solid #BBB;\r\n\tborder-radius: 4px;\r\n\tpadding: 5px;\r\n\t!*margin: 0 4px;*!\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\theight: 34px;\r\n\tmin-width: 34px;\r\n\tcolor: #333;\r\n\ttransition: none;\r\n}\r\n\r\n.btn * {\r\n\ttransition: none;\r\n}\r\n\r\n.btn:hover {\r\n\tbackground-color: #EEE;\r\n}\r\n\r\n.btn.selected {\r\n\tbackground-color: var(--primary-color);\r\n\tcolor: var(--primary-text-color);\r\n}\r\n\r\n.btn.selected:hover {\r\n\tbackground-color: var(--primary-color);\r\n}\r\n\r\n.btn.help {\r\n\tpadding: 0;\r\n\t// border: 0;\r\n\twidth: 35px;\r\n\tcursor: pointer;\r\n\t// border: 1px solid #BBB;\r\n\t// border-radius: 4px;\r\n}*/\r\n\r\n.header-btn {\r\n\theight: 34px;\r\n\tmin-width: 34px;\r\n\tborder: 1px solid #333;\r\n\tborder-radius: 4px;\r\n\tpadding: 5px 10px;\r\n\tmargin: 0 2px;\r\n\ttext-decoration: none !important;\r\n\tbackground: none;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.column-toggle {\r\n\tpadding: 0px;\r\n\t// width: 30px;\r\n}\r\n\r\n.column-toggle.rotate svg {\r\n\ttransform: rotate(90deg);\r\n}\r\n\r\n.search-toggle {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\t//background-image: url(/images/search-button.svg);\r\n}\r\n\r\n.notify-badge {\r\n\tposition: absolute;\r\n\tright: 5px;\r\n\ttop: 7px;\r\n\tbackground: red;\r\n\ttext-align: center;\r\n\tborder-radius: 30px 30px 30px 30px;\r\n\tcolor: white;\r\n\tpadding: 5px 8px;\r\n\tz-index: 5;\r\n\tfont-size: 10px;\r\n}\r\n\r\n.dropdown .popup {\r\n\tposition: absolute;\r\n\tbackground-color: #FFF;\r\n\tpadding: 15px 0;\r\n\tborder-radius: 4px;\r\n\ttop: 50px;\r\n\tleft: 17px;\r\n\tright: 17px;\r\n\tbox-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);\r\n\t/* z-index: 103; */\r\n\tz-index: 9999;\r\n}\r\n\r\n.search-toggle {\r\n\tbackground-color: var(--tertiary-color);\r\n\tcolor: var(--secondary-text-color);\r\n\tmax-width: 154px;\r\n}\r\n\r\n.search-toggle:hover,\r\n.search-toggle.selected:hover {\r\n\tcolor: initial;\r\n}\r\n\r\n.search-toggle.selected:hover {\r\n\tcolor: #fff;\r\n}\r\n\r\n\r\n.search-toggle>span {\r\n\tmargin-right: 6px;\r\n\ttext-transform: uppercase;\r\n}\r\n\r\n.pdf-btn {\r\n\tpadding: 0;\r\n}\r\n\r\n.other-btn.desktop-only {\r\n\tmargin-right: 5px;\r\n}\r\n\r\n.mobile-menu {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tmargin-right: 7px;\r\n\tjustify-self: end;\r\n\tz-index: 100;\r\n}\r\n\r\n.mobile-element {\r\n\tdisplay: none;\r\n}\r\n\r\n.hamburger {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tjustify-content: space-between;\r\n\twidth: 27px;\r\n\theight: 25px;\r\n}\r\n\r\n.hamburger>div {\r\n\theight: 5px;\r\n\tbackground-color: #80868B;\r\n\r\n}\r\n\r\n.mobile-search-icon {\r\n\tdisplay: none;\r\n\tmargin-left: 40px;\r\n\tmargin-right: 10px;\r\n\twidth: 30px;\r\n\tjustify-self: end;\r\n}\r\n\r\n.mobile-search-bar {\r\n\tdisplay: none;\r\n}\r\n\r\n.break {\r\n\tflex-basis: 100%;\r\n\theight: 0;\r\n}\r\n\r\n.desktop-search-bar {\r\n\tflex-basis: 70%;\r\n\tmargin-right: 5px;\r\n}\r\n\r\n.desktop-menu {\r\n\tflex-basis: 100%;\r\n}\r\n\r\n.mobile.subheader {\r\n\tdisplay: none;\r\n}\r\n\r\n@media (max-width: 1023px) {\r\n\t.desktop-only {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.mobile-only {\r\n\t\tdisplay: inline;\r\n\t}\r\n\r\n\r\n\t.desktop-search-bar {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.mobile-search-bar {\r\n\t\tdisplay: flex;\r\n\t\t/* margin: 10px 6px 5px 0px; */\r\n\t}\r\n\r\n\t.mobile-search-icon {\r\n\t\tdisplay: initial;\r\n\t}\r\n\r\n\t.desktop-menu {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.mobile-menu {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.mobile-element {\r\n\t\tdisplay: initial\r\n\t}\r\n\r\n\theader .inline-header {\r\n\t\t//padding: 0 10px;\r\n\t}\r\n\r\n\tpre.date {\r\n\t\tmargin-right: 0;\r\n\t\tfont-size: 9px;\r\n\t}\r\n\r\n\t.logo-wpr {\r\n\t\twidth: 100%;\r\n\t\tpadding-bottom: 0;\r\n\t\t//padding: 5px 0;\r\n\t}\r\n\r\n\t.header-right> :not(.mobile) {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.mobile.subheader {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between;\r\n\t\talign-items: center;\r\n\t\twidth: 100%;\r\n\t\tposition: relative;\r\n\t\tpadding: 0 12px;\r\n\t\tmargin-top: -67px;\r\n\t\tbackground-color: #F2F2F2;\r\n\t\tborder-top: 1px solid #979797;\r\n\t\tborder-right: 1px solid #979797;\r\n\t\tborder-left: 1px solid #979797;\r\n\t\tborder-bottom: 1px solid #979797;\r\n\t}\r\n\r\n\t.mobile.subheader.shadow {\r\n\t\tbox-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);\r\n\t}\r\n\r\n\t.mobile-left {\r\n\t\tflex-grow: 1;\r\n\t}\r\n\r\n\t.search-bar {\r\n\t\tmax-width: 100%;\r\n\t\theight: 100%;\r\n\t}\r\n\r\n\t.shoppingList-border {\r\n\t\tmargin: 0 4px;\r\n\t}\r\n\r\n\t.subheader>* {\r\n\t\tdisplay: flex;\r\n\t\tpadding: 12px 0;\r\n\t}\r\n\r\n\t.subheader>*>* {\r\n\t\t// margin: 0 5px;\r\n\t}\r\n}\r\n\r\n\r\n/* Mobile Mode */\r\n/*Mobile*/\r\n@media (min-width: 280px) and (max-width: 850px) {\r\n\theader {\r\n\t\tposition: relative;\r\n\t}\r\n\r\n\t.mobile-only {\r\n\t\tdisplay: inline;\r\n\t}\r\n\r\n\t.desktop-only {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.desktop-only-date {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.column-toggle {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.zoom-navbar {\r\n\t\talign-self: flex-end;\r\n\t}\r\n\r\n\t.zoom-navbar .zoom-out,\r\n\t.zoom-navbar .zoom-in,\r\n\t.zoom-navbar .zoom-100 {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.zoom-navbar .fullscreen-toggle>span {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.zoom-navbar .fullscreen-toggle {\r\n\t\twidth: 35px;\r\n\t\tborder: none;\r\n\t\tbackground-size: 26px;\r\n\t\tbackground-position: 0px bottom;\r\n\t\tpadding: 0px;\r\n\t}\r\n\r\n\t.logo-wpr .masthead {\r\n\t\twidth: 250px;\r\n\r\n\t}\r\n\r\n\t.mobile-menu {\r\n\t\talign-self: flex-end;\r\n\t}\r\n\r\n\t.mobile-search-icon {\r\n\t\talign-self: flex-end;\r\n\t}\r\n}\r\n\r\n//@media (max-width: 558px){\r\n// .date-container{\r\n// font-size: 12px;\r\n// }\r\n// .date {\r\n// margin-top: 1vw;\r\n// white-space: nowrap;\r\n// margin-right: 0;\r\n// font-size: 11px;\r\n// }\r\n// .mobile-only{\r\n// display: inline;\r\n// }\r\n// .desktop-only{\r\n// display: none;\r\n// }\r\n//}\r\n\r\n//@media (max-width: 375px){\r\n// .logo-wpr .logo {\r\n// width: 10vw !important;\r\n// }\r\n// .logo-wpr .masthead{\r\n// width: 51vw;\r\n// }\r\n// .logo-masthead {\r\n// margin-right: 1px;\r\n//\r\n// img{\r\n// // height:92%;\r\n// height:66px;\r\n// }\r\n// }\r\n// .date-container {\r\n// margin-left: 1px;\r\n// }\r\n// .date {\r\n// font-size: 10px;\r\n// }\r\n// .mobile-only{\r\n// display: inline;\r\n// }\r\n// .desktop-only{\r\n// display: none;\r\n// }\r\n//}\r\n\r\n//@media (max-width: 330px){\r\n// .logo-masthead {\r\n// margin-right: 1px;\r\n//\r\n// img{\r\n// height:66px;\r\n// }\r\n// }\r\n//}\r\n\r\n\r\n@media (max-width: 1000px) and (max-height: 500px) and (min-device-aspect-ratio: 1/1) {\r\n\r\n\t[is-fullscreen] .main-header {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t[is-fullscreen] .mobile-landscape {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tposition: fixed;\r\n\t\ttop: 20px;\r\n\t\tright: 10px;\r\n\t\tpadding: 5px 10px;\r\n\t\tborder-radius: 4px;\r\n\t\tfont-size: 20px;\r\n\t\tbackground-color: var(--primary-color);\r\n\t\tcolor: var(--primary-text-color);\r\n\t\tbox-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);\r\n\t}\r\n\r\n\t[is-fullscreen] .mobile-landscape span {\r\n\t\tpadding-left: 4px;\r\n\t}\r\n\r\n\t.desktop-only {\r\n\t\tdisplay: inline;\r\n\t}\r\n\r\n\t.mobile-only {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n}\r\n\r\n@media (max-width: 1365px) {\r\n\t.search-toggle {\r\n\t\twidth: 33px;\r\n\t\tbackground-image: url(/images/search.svg);\r\n\t\tbackground-repeat: no-repeat;\r\n\t\tbackground-position: center;\r\n\t\tbackground-size: 64%;\r\n\t\tbackground-color: var(--tertiary-color);\r\n\t\tborder: none;\r\n\t\tborder-radius: 3px;\r\n\r\n\t\t.search-span {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppHeader.vue?vue&type=template&id=e1acc99c&\"\nimport script from \"./AppHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./AppHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppHeader.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isOpen)?_c('div',{staticClass:\"pdp modal-wpr\"},[_c('div',{ref:\"clickableElement\",class:(\"pdp-modal modal \" + _vm.flyerOrientation + \" \" + (_vm.config.template || ''))},[_c(_vm.pdpTemplate,{tag:\"component\",attrs:{\"feature-config-path\":_vm.featurePath,\"product\":_vm.product}})],1),_vm._v(\" + \")]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdp-raddar\"},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.lang.pdpTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.lang.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.close,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.close.apply(null, arguments)}}},[_c('img',{attrs:{\"alt\":\"Close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"handle-border\"},[_c('div',{staticClass:\"pdpContainer\"},[_c('div',{staticClass:\"productImageContainer\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.productImage}})]),(_vm.savings)?_c('div',{staticClass:\"savings\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.savingsPrefix)+\" \"+_vm._s(_vm.savings)+\" \"+_vm._s(_vm.savingsSuffix))])]):_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.salePrice)?_c('span',[(_vm.priceQty)?_c('span',{staticClass:\"price-qty\"},[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),_c('span',{staticClass:\"price-prefix\"},[_vm._v(_vm._s(_vm.pricePrefix))]),_c('span',{staticClass:\"price-price\"},[_vm._v(_vm._s(_vm.salePrice))]),_c('span',{staticClass:\"price-unit\"},[_vm._v(_vm._s(_vm.promoUnit))])]):_vm._e(),(_vm.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.alternatePrice))]):_vm._e()])]),(_vm.showProductName)?_c('div',{staticClass:\"detail\"},[_c('div',{staticClass:\"detail-header\"},[_c('h2',{attrs:{\"tabindex\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.productName)+\" \")])])]):_vm._e(),(_vm.description)?_c('div',{staticClass:\"detail\"},[_c('div',[_c('span',[_vm._v(_vm._s(_vm.lang.pdpDetails))]),_c('p',{staticClass:\"detail-content\",attrs:{\"tabindex\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.htmlDescription)}})])]):_vm._e(),_c('div',{staticClass:\"detail\"},[(_vm.sku)?_c('span',{staticClass:\"product-sku\"},[_vm._v(\"#\"+_vm._s(_vm.sku))]):_vm._e()]),_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.lang.pdpValidFrom))])]),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.htmlValidity)}})])]),_c('div',{staticClass:\"button-container\"},[_c('div',{staticClass:\"button-container\"},[_c('shopping-list-button',{attrs:{\"product\":_vm.product}})],1),_c('div',{staticClass:\"button-container\"},[(_vm.config.allowShare)?_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: \"Share\", placement:'bottom'}),expression:\"{content: `Share`, placement:'bottom'}\"}],staticClass:\"pdp-btn round\",attrs:{\"href\":_vm.productURL,\"target\":\"_blank\"},on:{\"click\":function($event){return _vm.handleShareDeal(_vm.product)}}},[_c('svg',{staticClass:\"icon\",attrs:{\"viewBox\":\"0 0 16 16\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"9D711932-C33A-4FC1-805D-8E2D5C4F78DA\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"raddar_R2_PDP_1.0\",\"transform\":\"translate(-1357, -638)\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\"}},[_c('g',{attrs:{\"id\":\"popup-pdp-copy\",\"transform\":\"translate(1166, 195)\"}},[_c('path',{attrs:{\"d\":\"M204.132987,453.285727 C203.25937,453.292133 202.436771,453.698479 201.900379,454.388586 L196.601505,451.737154 C196.669665,451.497232 196.706139,451.249411 196.709994,451.00001 C196.706139,450.75061 196.669665,450.502788 196.601505,450.262866 L201.900379,447.611434 C202.436771,448.301541 203.25937,448.707887 204.132987,448.714293 C205.709759,448.714293 206.987985,447.435105 206.987985,445.857147 C206.987985,444.279188 205.709759,443 204.132987,443 C202.556216,443 201.27799,444.279188 201.27799,445.857147 C201.281846,446.106547 201.318319,446.354368 201.38648,446.59429 L196.087605,449.245722 C195.551213,448.555615 194.728614,448.14927 193.854997,448.142864 C192.278226,448.142864 191,449.422052 191,451.00001 C191,452.577969 192.278226,453.857157 193.854997,453.857157 C194.728614,453.850751 195.551213,453.444405 196.087605,452.754298 L201.38648,455.40573 C201.070707,456.589151 201.543834,457.842343 202.562665,458.521142 C203.581496,459.199942 204.919331,459.15331 205.888501,458.405217 C206.857671,457.657124 207.242527,456.374027 206.845245,455.21546 C206.447963,454.056893 205.356942,453.280648 204.132987,453.285727 Z\",\"id\":\"icon-share-grey\"}})])])])])]):_vm._e(),(_vm.productURL)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: \"Go To Website\", placement:'bottom'}),expression:\"{content: `Go To Website`, placement:'bottom'}\"}],staticClass:\"pdp-btn round\",attrs:{\"href\":_vm.productURL,\"target\":\"_blank\"}},[_c('svg',{staticClass:\"icon\",attrs:{\"version\":\"1.1\",\"viewBox\":\"0 0 16 16\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"42D445B9-8057-47B2-A7AF-03D5707F36E5\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"raddar_R2_PDP_1.0\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\",\"transform\":\"translate(-1398, -638)\"}},[_c('g',{attrs:{\"id\":\"popup-pdp-copy\",\"transform\":\"translate(1166, 195)\"}},[_c('path',{attrs:{\"id\":\"Icon-website\",\"d\":\"M240,459 C244.41077,459 248,455.41077 248,451 C248,446.58923 244.408265,443 240,443 C235.586725,443 232,446.591735 232,451 C232,455.41077 235.586725,459 240,459 Z M239.371321,448.302442 L239.371321,450.368817 L236.791484,450.368817 C236.824045,449.652473 236.911709,448.958673 237.054477,448.302442 L239.371321,448.302442 L239.371321,448.302442 Z M234.539762,447.045085 C235.190983,446.148403 236.050094,445.427051 237.036944,444.94114 C236.924233,445.116468 236.819036,445.299311 236.716343,445.494678 C236.473388,445.96556 236.260488,446.486537 236.087664,447.045085 L234.539762,447.045085 Z M239.371321,444.397621 L239.371321,447.047589 L237.410144,447.047589 C237.537884,446.699436 237.678147,446.376331 237.830933,446.078272 C238.276769,445.231684 238.810269,444.64809 239.371321,444.397621 Z M236.087664,454.954915 C236.260488,455.513463 236.473388,456.03444 236.716343,456.502818 C236.819036,456.698184 236.924233,456.883532 237.036944,457.056356 C236.050094,456.572949 235.190983,455.851597 234.539762,454.954915 L236.087664,454.954915 Z M239.371321,454.954915 L239.371321,457.604884 C238.810269,457.35191 238.276769,456.768316 237.830933,455.921728 C237.678147,455.623669 237.535379,455.298059 237.410144,454.954915 L239.371321,454.954915 Z M239.371321,451.628679 L239.371321,453.692549 L237.054477,453.692549 C236.911709,453.038823 236.82154,452.347527 236.791484,451.628679 L239.371321,451.628679 Z M233.284909,450.368817 C233.350031,449.652473 233.530369,448.958673 233.81841,448.302442 L235.769568,448.302442 C235.641828,448.968691 235.561678,449.659987 235.531622,450.368817 L233.284909,450.368817 Z M233.284909,451.628679 L235.529117,451.628679 C235.559173,452.337508 235.639324,453.031309 235.769568,453.692549 L233.81841,453.692549 C233.530369,453.038823 233.352536,452.345022 233.284909,451.628679 Z M244.227927,448.302442 L246.176581,448.302442 C246.467126,448.963682 246.644959,449.654978 246.712586,450.368817 L244.468378,450.368817 C244.435817,449.659987 244.355667,448.966187 244.227927,448.302442 Z M246.712586,451.628679 C246.644959,452.345022 246.467126,453.036318 246.179086,453.695053 L244.227927,453.695053 C244.355667,453.033813 244.435817,452.340013 244.468378,451.631183 L246.712586,451.631183 L246.712586,451.628679 Z M243.91484,447.045085 C243.739512,446.486537 243.526612,445.96556 243.281152,445.494678 C243.180964,445.299311 243.073262,445.116468 242.960551,444.94114 C243.949906,445.424546 244.806512,446.145899 245.457733,447.045085 L243.91484,447.045085 Z M240.628679,447.045085 L240.628679,444.397621 C241.187226,444.64809 241.725736,445.231684 242.166562,446.078272 C242.321853,446.376331 242.462116,446.699436 242.587351,447.047589 L240.628679,447.047589 L240.628679,447.045085 Z M240.628679,450.368817 L240.628679,448.302442 L242.945523,448.302442 C243.088291,448.961177 243.17846,449.652473 243.208516,450.368817 L240.628679,450.368817 Z M245.457733,454.954915 C244.806512,455.851597 243.947401,456.572949 242.960551,457.05886 C243.073262,456.883532 243.180964,456.698184 243.281152,456.502818 C243.529117,456.03444 243.739512,455.513463 243.91484,454.954915 L245.457733,454.954915 L245.457733,454.954915 Z M240.628679,453.695053 L240.628679,451.628679 L243.208516,451.628679 C243.17846,452.347527 243.085786,453.038823 242.945523,453.695053 L240.628679,453.695053 Z M240.628679,457.602379 L240.628679,454.954915 L242.587351,454.954915 C242.462116,455.300564 242.321853,455.626174 242.166562,455.924233 C241.723231,456.768316 241.187226,457.35191 240.628679,457.602379 Z\"}})])])])])]):_vm._e()])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.enabled)?_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: _vm.tooltip, placement: 'bottom'}),expression:\"{content: tooltip, placement: 'bottom'}\"}],staticClass:\"pdp-btn round shopping-list-btn\",class:(\"\" + (_vm.isInList? 'in-list':'')),on:{\"click\":_vm.handleClick}},[_c('svg',{staticClass:\"icon\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 600 533.33\"}},[_c('g',[_c('path',{staticClass:\"cls-1\",attrs:{\"d\":\"m33.33,333.33h266.67\"}}),_c('path',{staticClass:\"cls-1\",attrs:{\"d\":\"m33.33,483.33h266.67\"}}),_c('path',{staticClass:\"cls-1\",attrs:{\"d\":\"m33.33,183.33h533.33\"}}),_c('path',{staticClass:\"cls-1\",attrs:{\"d\":\"m33.33,33.33h533.33\"}}),_c('path',{staticClass:\"cls-1 sign\",attrs:{\"d\":\"m400,416.67h166.67\"}}),_c('path',{staticClass:\"cls-1 sign minus\",attrs:{\"d\":\"m483.33,333.33v166.67\"}})])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\r\nimport {mapActions, mapGetters} from \"vuex\";\r\n\r\nexport default {\r\n\tname: \"ShoppingListButton\",\r\n\tprops:{\r\n\t\tproduct: {\r\n\t\t\ttype: Object,\r\n\t\t\trequired: true\r\n\t\t}\r\n\t},\r\n\tcomputed:{\r\n\t\t...mapGetters('shoppingList', ['shoppingListSKUs', 'enabled']),\r\n\t\t...mapGetters(['lang']),\r\n\t\tisInList() {\r\n\t\t\treturn this.shoppingListSKUs.includes(this.product?.sku);\r\n\t\t},\r\n\t\ttooltip() {\r\n\t\t\treturn this.isInList? this.lang?.pdpRemoveFromList: this.lang?.pdpAddToList\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions('shoppingList', ['addProductToList', 'removeProductFromList']),\r\n\t\taddToList(){\r\n\t\t\tthis.addProductToList(this.product);\r\n\t\t},\r\n\t\tremoveFromList(){\r\n\t\t\tthis.removeProductFromList(this.product);\r\n\t\t},\r\n\t\thandleClick(){\r\n\t\t\tif(this.isInList){\r\n\t\t\t\tthis.removeFromList();\r\n\t\t\t} else {\r\n\t\t\t\tthis.addToList();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<div v-if=\"enabled\" class=\"pdp-btn round shopping-list-btn\" :class=\"`${isInList? 'in-list':''}`\" v-tooltip=\"{content: tooltip, placement: 'bottom'}\" @click=\"handleClick\">\r\n\t\t<svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 600 533.33\">\r\n\t\t\t<g>\r\n\t\t\t\t<path class=\"cls-1\" d=\"m33.33,333.33h266.67\"/>\r\n\t\t\t\t<path class=\"cls-1\" d=\"m33.33,483.33h266.67\"/>\r\n\t\t\t\t<path class=\"cls-1\" d=\"m33.33,183.33h533.33\"/>\r\n\t\t\t\t<path class=\"cls-1\" d=\"m33.33,33.33h533.33\"/>\r\n\t\t\t\t<path class=\"cls-1 sign\" d=\"m400,416.67h166.67\"/>\r\n\t\t\t\t<path class=\"cls-1 sign minus\" d=\"m483.33,333.33v166.67\"/>\r\n\t\t\t</g>\r\n\t\t</svg>\r\n\t</div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n.shopping-list-btn {\r\n &.in-list{\r\n\tbackground-color: #E95B5B;\r\n\t.cls-1{\r\n\t stroke: #FFFFFF;\r\n\t &.sign{\r\n\t\t&.minus {\r\n\t\t display: none;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n\r\n .cls-1 {\r\n\tfill: none;\r\n\tstroke: currentColor;\r\n\tstroke-linecap: round;\r\n\tstroke-linejoin: round;\r\n\tstroke-width: 66.67px;\r\n }\r\n\r\n}\r\n\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShoppingListButton.vue?vue&type=template&id=0eb0b5e9&scoped=true&\"\nimport script from \"./ShoppingListButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ShoppingListButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShoppingListButton.vue?vue&type=style&index=0&id=0eb0b5e9&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0eb0b5e9\",\n null\n \n)\n\nexport default component.exports","<template>\r\n\t<div class=\"pdp-raddar\">\r\n\t\t<h2 class=\"header\">\r\n\t\t\t<span class=\"pdpTitle\">{{ lang.pdpTitle }}</span>\r\n\t\t\t<button :aria-label=\"lang.pdpClose\" class=\"close-btn\" tabindex=\"0\" @click=\"close\"\r\n\t\t\t @keydown.esc=\"close\">\r\n\t\t\t\t<img alt=\"Close\" src=\"/images/icon-close-white.svg\"/>\r\n\t\t\t</button>\r\n\t\t</h2>\r\n\t\t<div ref=\"toastContent\" class=\"content\">\r\n\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t<div class=\"handle-border\">\r\n\t\t\t\t\t<div class=\"pdpContainer\">\r\n\t\t\t\t\t\t<div class=\"productImageContainer\">\r\n\t\t\t\t\t\t\t<img :src=\"productImage\" class=\"productImage\"/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-if=\"savings\" class=\"savings\">\r\n\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t{{ savingsPrefix }}\r\n\t\t\t\t\t\t\t\t{{ savings }}\r\n\t\t\t\t\t\t\t\t{{ savingsSuffix }}</span>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div v-else class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t\t<span v-if=\"salePrice\">\r\n\t\t\t\t\t\t\t\t\t<span v-if=\"priceQty\" class=\"price-qty\">{{ priceQty }} /</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"price-prefix\">{{ pricePrefix }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"price-price\">{{ salePrice }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"price-unit\">{{ promoUnit }}</span>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<span v-if=\"alternatePrice\" class=\"alternatePrice\">{{ alternatePrice }}</span>\r\n\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-if=\"showProductName\" class=\"detail\">\r\n\t\t\t\t\t\t\t<div class=\"detail-header\">\r\n\t\t\t\t\t\t\t\t<h2 tabindex=\"0\"> {{ productName }} </h2>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-if=\"description\" class=\"detail\">\r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<span>{{ lang.pdpDetails }}</span>\r\n\t\t\t\t\t\t\t\t<p class=\"detail-content\" tabindex=\"0\" v-html=\"htmlDescription\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"detail\">\r\n\t\t\t\t\t\t\t<span v-if=\"sku\" class=\"product-sku\">#{{ sku }}</span>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div class=\"validity\">\r\n\t\t\t\t\t\t\t<span><strong>{{ lang.pdpValidFrom }}</strong></span>\r\n\t\t\t\t\t\t\t<div v-html=\"htmlValidity\"></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t\t<shopping-list-button :product=\"product\"/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t\t<div v-if=\"config.allowShare\" v-tooltip=\"{content: `Share`, placement:'bottom'}\" :href=\"productURL\" class=\"pdp-btn round\" target=\"_blank\" @click=handleShareDeal(product)>\r\n\t\t\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t<title>9D711932-C33A-4FC1-805D-8E2D5C4F78DA</title>\r\n\t\t\t\t\t\t\t\t\t<g id=\"R2---Desktop-wireframes\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n\t\t\t\t\t\t\t\t\t\t<g id=\"raddar_R2_PDP_1.0\" transform=\"translate(-1357, -638)\" fill=\"currentColor\" fill-rule=\"nonzero\">\r\n\t\t\t\t\t\t\t\t\t\t\t<g id=\"popup-pdp-copy\" transform=\"translate(1166, 195)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<path d=\"M204.132987,453.285727 C203.25937,453.292133 202.436771,453.698479 201.900379,454.388586 L196.601505,451.737154 C196.669665,451.497232 196.706139,451.249411 196.709994,451.00001 C196.706139,450.75061 196.669665,450.502788 196.601505,450.262866 L201.900379,447.611434 C202.436771,448.301541 203.25937,448.707887 204.132987,448.714293 C205.709759,448.714293 206.987985,447.435105 206.987985,445.857147 C206.987985,444.279188 205.709759,443 204.132987,443 C202.556216,443 201.27799,444.279188 201.27799,445.857147 C201.281846,446.106547 201.318319,446.354368 201.38648,446.59429 L196.087605,449.245722 C195.551213,448.555615 194.728614,448.14927 193.854997,448.142864 C192.278226,448.142864 191,449.422052 191,451.00001 C191,452.577969 192.278226,453.857157 193.854997,453.857157 C194.728614,453.850751 195.551213,453.444405 196.087605,452.754298 L201.38648,455.40573 C201.070707,456.589151 201.543834,457.842343 202.562665,458.521142 C203.581496,459.199942 204.919331,459.15331 205.888501,458.405217 C206.857671,457.657124 207.242527,456.374027 206.845245,455.21546 C206.447963,454.056893 205.356942,453.280648 204.132987,453.285727 Z\" id=\"icon-share-grey\"></path>\r\n\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<a v-if=\"productURL\" v-tooltip=\"{content: `Go To Website`, placement:'bottom'}\" :href=\"productURL\" class=\"pdp-btn round\" target=\"_blank\">\r\n\t\t\t\t\t\t\t\t<svg class=\"icon\" version=\"1.1\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t<title>42D445B9-8057-47B2-A7AF-03D5707F36E5</title>\r\n\t\t\t\t\t\t\t\t\t<g id=\"R2---Desktop-wireframes\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t\t\t\t\t\t\t<g id=\"raddar_R2_PDP_1.0\" fill=\"currentColor\" fill-rule=\"nonzero\" transform=\"translate(-1398, -638)\">\r\n\t\t\t\t\t\t\t\t\t\t\t<g id=\"popup-pdp-copy\" transform=\"translate(1166, 195)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<path id=\"Icon-website\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t d=\"M240,459 C244.41077,459 248,455.41077 248,451 C248,446.58923 244.408265,443 240,443 C235.586725,443 232,446.591735 232,451 C232,455.41077 235.586725,459 240,459 Z M239.371321,448.302442 L239.371321,450.368817 L236.791484,450.368817 C236.824045,449.652473 236.911709,448.958673 237.054477,448.302442 L239.371321,448.302442 L239.371321,448.302442 Z M234.539762,447.045085 C235.190983,446.148403 236.050094,445.427051 237.036944,444.94114 C236.924233,445.116468 236.819036,445.299311 236.716343,445.494678 C236.473388,445.96556 236.260488,446.486537 236.087664,447.045085 L234.539762,447.045085 Z M239.371321,444.397621 L239.371321,447.047589 L237.410144,447.047589 C237.537884,446.699436 237.678147,446.376331 237.830933,446.078272 C238.276769,445.231684 238.810269,444.64809 239.371321,444.397621 Z M236.087664,454.954915 C236.260488,455.513463 236.473388,456.03444 236.716343,456.502818 C236.819036,456.698184 236.924233,456.883532 237.036944,457.056356 C236.050094,456.572949 235.190983,455.851597 234.539762,454.954915 L236.087664,454.954915 Z M239.371321,454.954915 L239.371321,457.604884 C238.810269,457.35191 238.276769,456.768316 237.830933,455.921728 C237.678147,455.623669 237.535379,455.298059 237.410144,454.954915 L239.371321,454.954915 Z M239.371321,451.628679 L239.371321,453.692549 L237.054477,453.692549 C236.911709,453.038823 236.82154,452.347527 236.791484,451.628679 L239.371321,451.628679 Z M233.284909,450.368817 C233.350031,449.652473 233.530369,448.958673 233.81841,448.302442 L235.769568,448.302442 C235.641828,448.968691 235.561678,449.659987 235.531622,450.368817 L233.284909,450.368817 Z M233.284909,451.628679 L235.529117,451.628679 C235.559173,452.337508 235.639324,453.031309 235.769568,453.692549 L233.81841,453.692549 C233.530369,453.038823 233.352536,452.345022 233.284909,451.628679 Z M244.227927,448.302442 L246.176581,448.302442 C246.467126,448.963682 246.644959,449.654978 246.712586,450.368817 L244.468378,450.368817 C244.435817,449.659987 244.355667,448.966187 244.227927,448.302442 Z M246.712586,451.628679 C246.644959,452.345022 246.467126,453.036318 246.179086,453.695053 L244.227927,453.695053 C244.355667,453.033813 244.435817,452.340013 244.468378,451.631183 L246.712586,451.631183 L246.712586,451.628679 Z M243.91484,447.045085 C243.739512,446.486537 243.526612,445.96556 243.281152,445.494678 C243.180964,445.299311 243.073262,445.116468 242.960551,444.94114 C243.949906,445.424546 244.806512,446.145899 245.457733,447.045085 L243.91484,447.045085 Z M240.628679,447.045085 L240.628679,444.397621 C241.187226,444.64809 241.725736,445.231684 242.166562,446.078272 C242.321853,446.376331 242.462116,446.699436 242.587351,447.047589 L240.628679,447.047589 L240.628679,447.045085 Z M240.628679,450.368817 L240.628679,448.302442 L242.945523,448.302442 C243.088291,448.961177 243.17846,449.652473 243.208516,450.368817 L240.628679,450.368817 Z M245.457733,454.954915 C244.806512,455.851597 243.947401,456.572949 242.960551,457.05886 C243.073262,456.883532 243.180964,456.698184 243.281152,456.502818 C243.529117,456.03444 243.739512,455.513463 243.91484,454.954915 L245.457733,454.954915 L245.457733,454.954915 Z M240.628679,453.695053 L240.628679,451.628679 L243.208516,451.628679 C243.17846,452.347527 243.085786,453.038823 242.945523,453.695053 L240.628679,453.695053 Z M240.628679,457.602379 L240.628679,454.954915 L242.587351,454.954915 C242.462116,455.300564 242.321853,455.626174 242.166562,455.924233 C241.723231,456.768316 241.187226,457.35191 240.628679,457.602379 Z\"></path>\r\n\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n</template>\r\n\r\n<script>\r\nimport PdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\nimport ShoppingListButton from \"@/features/pdp/buttons/ShoppingListButton.vue\";\r\nimport {mapActions} from \"vuex\";\r\n\r\nexport default {\r\n\tname: \"PdpRaddar\",\r\n\tcomponents: {ShoppingListButton},\r\n\r\n\tmixins: [PdpProductMixin],\r\n\r\n\tmethods:{\r\n\t\t...mapActions('pdp', ['close'])\r\n\t}\r\n\r\n\r\n};\r\n</script>\r\n\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n\r\n .description {\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\ttext-align: left;\r\n\talign-items: flex-end;\r\n\r\n\t> :first-child {\r\n\t width: calc(55px + 1em);\r\n\t}\r\n\r\n\t.mobile-content {\r\n\t flex-basis: 100%;\r\n\t}\r\n }\r\n}\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n top: 0px;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n\t//background-color: var(--secondary-color);\r\n\tbackground-color: #fff;\r\n\t/*margin-top: 75px;*/\r\n\tborder: 1px solid #bbbbbb;\r\n\t/* overflow: auto;*/\r\n\tmax-height: calc(100% - 1em);\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tdisplay: flex;\r\n\tflex-flow: column;\r\n\tmax-width: calc(100% - 4em);\r\n\r\n\t.header {\r\n\t background-color: #261342;\r\n\t color: var(--primary-text-color);\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 18px;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 400;\r\n\t }\r\n\r\n\t .close-btn {\r\n\t\tcursor: pointer;\r\n\r\n\t\t&:hover {\r\n\t\t background: none;\r\n\t\t filter: unset;\r\n\t\t}\r\n\t }\r\n\t}\r\n\r\n\t.subtitle {\r\n\t padding-top: 6px;\r\n\t font-size: 12px;\r\n\t}\r\n\r\n\t.content {\r\n\t padding: 8px;\r\n\t background-color: #fff;\r\n\t color: #545454;\r\n\t position: relative;\r\n\t flex: 1 0 auto;\r\n\t // overflow: auto;\r\n\t // margin:0px 10px 10px 10px;\r\n\t margin: 10px 10px 17px;\r\n\t min-height: 250px;\r\n\t max-height: calc(100% - 4em);\r\n\r\n\r\n\t /*.scroll-container{\r\n\t\tposition: absolute;\r\n\t\ttop:0px;\r\n\t\tbottom:0px;\r\n\t\tleft:0px;\r\n\t\tright:0px;\r\n\t}*/\r\n\t .content-container {\r\n\t\ttext-align: left;\r\n\t\t//width:300px;\r\n\t }\r\n\r\n\t .f-half {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\r\n\t\tflex-direction: column;\r\n\r\n\t\t>div {\r\n\t\t flex-basis: 100%;\r\n\t\t display: flex;\r\n\t\t flex-flow: column;\r\n\t\t}\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 350px;\r\n\t }\r\n\r\n\t .feature {\r\n\t\tbackground: #eee;\r\n\t\tmargin: 12px 0;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\tflex: 1;\r\n\r\n\t\t.description {\r\n\t\t display: flex;\r\n\t\t font-size: 14px;\r\n\t\t padding: 15px 0;\r\n\r\n\t\t .button-preview {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\talign-items: center;\r\n\t\t\tpadding: 0 20px;\r\n\r\n\t\t\th4 {\r\n\t\t\t text-transform: uppercase;\r\n\t\t\t padding-top: 16px;\r\n\t\t\t white-space: nowrap;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t text-align: center;\r\n\t\t\t}\r\n\t\t }\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n.pdpTitle {\r\n font-size: 18px;\r\n font-weight: bold;\r\n margin-top: 6px;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n border: 1px solid #D3D3D3;\r\n padding: 10px;\r\n\r\n h2 {\r\n\tfont-size: 18px;\r\n\tline-height: 1.1em;\r\n\r\n\tspan {\r\n\t font-size: 24px;\r\n\t margin-top: 6px;\r\n\t &.price-unit {\r\n\t\tfont-size: 0.5em;\r\n\t\tmargin-left: 0.3em;\r\n\t }\r\n\t &.price-qty {\r\n\t\tmargin-right: 0.1em;\r\n\t &:empty {\r\n\t display: none;\r\n\t }\r\n\t }\r\n\t}\r\n }\r\n\r\n .productImageContainer {\r\n\tpadding: 5px 0;\r\n\tmargin-bottom: 10px;\r\n\tborder: 1px solid #D3D3D3;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n }\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tmax-height: 200px;\r\n\tmax-width: 90%;\r\n\twidth: auto;\r\n\theight: auto;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tmargin: auto;\r\n }\r\n\r\n .price {\r\n\tdisplay: flex;\r\n\t//color: #ee3124;\r\n\tcolor: #E95B5B;\r\n\tfont-weight: 900;\r\n }\r\n\r\n span.alternatePrice {\r\n\tdisplay: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n\tcolor: #000;\r\n\tfont-size: 13px;\r\n\tfont-weight: normal;\r\n\tmargin-left: 5px;\r\n }\r\n\r\n .savings {\r\n\ttext-transform: uppercase;\r\n\tcolor: #000;\r\n\tfont-size: 17px;\r\n\tfont-weight: 900;\r\n\r\n\tspan {\r\n\t display: block;\r\n\t margin-bottom: 7px;\r\n\t}\r\n }\r\n\r\n .detail {\r\n\tfont-size: 15px;\r\n\tmargin-top: 10px;\r\n\tfont-weight: 900;\r\n\r\n\t.detail-header{\r\n\t display: flex;\r\n\t h2 {\r\n\t\tmargin-right: 5px;\r\n\t }\r\n\t}\r\n\r\n\t.detail-content {\r\n\t font-size: 14px;\r\n\t font-weight: normal;\r\n\t margin: 5px 0 8px;\r\n\r\n\t}\r\n\t.product-sku {\r\n\t font-size: 12px;\r\n\t}\r\n }\r\n\r\n .disclaimer-content {\r\n\tfont-size: 9px;\r\n\tfont-weight: normal;\r\n\tmargin-top: 10px;\r\n\tfont-style: italic;\r\n }\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n &+.subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n .description {\r\n\tflex-basis: 50%;\r\n\tjustify-content: center;\r\n }\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 300px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t// width: 575px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\r\n\t\t//width: 300px;\r\n\t\t.productImage {\r\n\t\t // max-height: 50%;\r\n\t\t // max-width: 50%;\r\n\t\t max-height: 180px;\r\n\t\t max-width: 85px;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\t/*.description {\r\n\t\tpadding-top: 10px;\r\n\t\tpadding-left: 100px;\r\n\t\tpadding-bottom: 70px;\r\n\t\tposition: relative;\r\n\t}*/\r\n\r\n\t/*.btn.page {\r\n\t\ttransform: rotate(90deg);\r\n\t\twidth: 146px;\r\n\t\tposition: absolute;\r\n\t\tleft: 0;\r\n\t\tbottom: 38%;\r\n\t}*/\r\n\r\n\th4,\r\n\t.subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle+.subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n\r\n .content-container {\r\n\twidth: 300px;\r\n }\r\n}\r\n\r\n@media (max-width: 850px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n\r\n /*.modal-wpr {\r\n\ttop: 65px;\r\n}*/\r\n .walkthrough {\r\n\tdisplay: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n\tdisplay: flex !important;\r\n }\r\n\r\n .desktop {\r\n\tdisplay: none !important;\r\n }\r\n\r\n .modal-wpr .modal {\r\n\t/* margin-top: 140px;\r\n\twidth: 90% !important;*/\r\n\twidth: 338px;\r\n\r\n\t.content {\r\n\t .f-half {\r\n\t\t/*flex-direction: row !important;*/\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 400px;\r\n\t }\r\n\t}\r\n\r\n\t.header {\r\n\t padding-bottom: 4px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 14px;\r\n\t }\r\n\t}\r\n }\r\n\r\n .heading {\r\n\tdisplay: none;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n\tdisplay: block;\r\n\tbackground: none;\r\n\tpadding: 0 6%;\r\n\r\n\t.description {\r\n\t padding: 0;\r\n\t margin-bottom: 20px;\r\n\t height: 50px;\r\n\t}\r\n\r\n\t.button-preview {\r\n\t display: block;\r\n\t position: relative;\r\n\t padding-left: 60px;\r\n\t width: 100%;\r\n\r\n\t h4 {\r\n\t\tpadding: 0;\r\n\t }\r\n\r\n\t .subtitle {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .btn {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t }\r\n\t}\r\n }\r\n\r\n .subtitle.mobile {\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n }\r\n}\r\n</style>\r\n\r\n\r\n<!--<style lang=\"scss\" scoped>\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n\r\n .description {\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\ttext-align: left;\r\n\talign-items: flex-end;\r\n\r\n\t> :first-child {\r\n\t width: calc(55px + 1em);\r\n\t}\r\n\r\n\t.mobile-content {\r\n\t flex-basis: 100%;\r\n\t}\r\n }\r\n}\r\n\r\n\r\n.pdpTitle {\r\n font-size: 18px;\r\n font-weight: bold;\r\n margin-top: 6px;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n border: 1px solid #D3D3D3;\r\n padding: 10px;\r\n\r\n h2 {\r\n\tfont-size: 18px;\r\n\tline-height: 1.1em;\r\n\r\n\tspan {\r\n\t font-size: 24px;\r\n\t margin-top: 6px;\r\n\r\n\t}\r\n }\r\n\r\n .productImageContainer {\r\n\tpadding: 5px 0;\r\n\tmargin-bottom: 10px;\r\n\tborder: 1px solid #D3D3D3;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n }\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tmax-height: 200px;\r\n\tmax-width: 90%;\r\n\twidth: auto;\r\n\theight: auto;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tmargin: auto;\r\n }\r\n\r\n .price {\r\n\tdisplay: flex;\r\n\t//color: #ee3124;\r\n\tcolor: #E95B5B;\r\n\tfont-weight: 900;\r\n }\r\n\r\n span.alternatePrice {\r\n\tdisplay: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n\tcolor: #000;\r\n\tfont-size: 13px;\r\n\tfont-weight: normal;\r\n\tmargin-left: 5px;\r\n }\r\n\r\n .savings {\r\n\ttext-transform: uppercase;\r\n\tcolor: #000;\r\n\tfont-size: 17px;\r\n\tfont-weight: 900;\r\n\r\n\tspan {\r\n\t display: block;\r\n\t margin-bottom: 7px;\r\n\t}\r\n }\r\n\r\n .detail {\r\n\tfont-size: 15px;\r\n\tmargin-top: 10px;\r\n\tfont-weight: 900;\r\n\r\n\t.detail-header {\r\n\t display: flex;\r\n\r\n\t h2 {\r\n\t\tmargin-right: 5px;\r\n\t }\r\n\t}\r\n\r\n\t.detail-content {\r\n\t font-size: 14px;\r\n\t font-weight: normal;\r\n\t margin: 5px 0 8px;\r\n\r\n\t}\r\n\r\n\t.product-sku {\r\n\t font-size: 12px;\r\n\t}\r\n }\r\n\r\n .disclaimer-content {\r\n\tfont-size: 9px;\r\n\tfont-weight: normal;\r\n\tmargin-top: 10px;\r\n\tfont-style: italic;\r\n }\r\n\r\n & .validity {\r\n\tfont-size: 13px;\r\n\tmargin-top: 10px;\r\n\r\n\t.date {\r\n\t color: #E95B5B;\r\n\t font-weight: bold;\r\n\t}\r\n\r\n }\r\n}\r\n\r\nbutton, a.goToWebsite {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #bbb;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n display: flex;\r\n margin: 15px 4px 0;\r\n\r\n button, a.goToWebsite {\r\n\tpadding: 5px;\r\n\tmin-height: 34px;\r\n\tmin-width: 34px;\r\n\ttransition: none;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tbackground-color: #D3D3D3;\r\n\tborder-radius: 50%;\r\n\tmargin-right: 10px;\r\n\r\n\timg {\r\n\t width: 1.2rem;\r\n\t height: 1.2rem;\r\n\r\n\t}\r\n }\r\n\r\n .goToWebsite {\r\n\tmargin-left: auto;\r\n\tmargin-right: 0;\r\n }\r\n}\r\n\r\n.pdpAddToList {\r\n // display: flex;\r\n // flex-grow: 0.7;\r\n cursor: pointer;\r\n // width: 100%;\r\n // border-radius: 5px;\r\n // margin-top:15px;\r\n // margin-bottom:15px;\r\n // margin-right: 10px;\r\n // margin: 15px 0px 10px 0px;\r\n // background-color: var(--tertiary-color);\r\n color: #fff;\r\n padding: 8px;\r\n justify-content: center;\r\n // max-width: calc(100vw - 7em);\r\n font-weight: normal;\r\n\r\n &.removeFromList {\r\n\tbackground-color: #EE3124;\r\n }\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n .description {\r\n\tflex-basis: 50%;\r\n\tjustify-content: center;\r\n }\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 300px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t// width: 575px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\r\n\t\t//width: 300px;\r\n\t\t.productImage {\r\n\t\t // max-height: 50%;\r\n\t\t // max-width: 50%;\r\n\t\t max-height: 180px;\r\n\t\t max-width: 85px;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\t/*.description {\r\n\t\tpadding-top: 10px;\r\n\t\tpadding-left: 100px;\r\n\t\tpadding-bottom: 70px;\r\n\t\tposition: relative;\r\n\t}*/\r\n\r\n\t/*.btn.page {\r\n\t\ttransform: rotate(90deg);\r\n\t\twidth: 146px;\r\n\t\tposition: absolute;\r\n\t\tleft: 0;\r\n\t\tbottom: 38%;\r\n\t}*/\r\n\r\n\th4,\r\n\t.subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle + .subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n\r\n .content-container {\r\n\twidth: 300px;\r\n }\r\n}\r\n\r\n@media (max-width: 850px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n\r\n /*.modal-wpr {\r\n\ttop: 65px;\r\n}*/\r\n .walkthrough {\r\n\tdisplay: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n\tdisplay: flex !important;\r\n }\r\n\r\n .desktop {\r\n\tdisplay: none !important;\r\n }\r\n\r\n .modal-wpr .modal {\r\n\t/* margin-top: 140px;\r\n\twidth: 90% !important;*/\r\n\twidth: 338px;\r\n\r\n\t.content {\r\n\t .f-half {\r\n\t\t/*flex-direction: row !important;*/\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 400px;\r\n\t }\r\n\t}\r\n\r\n\t.header {\r\n\t padding-bottom: 4px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 14px;\r\n\t }\r\n\t}\r\n }\r\n\r\n .heading {\r\n\tdisplay: none;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n\tdisplay: block;\r\n\tbackground: none;\r\n\tpadding: 0 6%;\r\n\r\n\t.description {\r\n\t padding: 0;\r\n\t margin-bottom: 20px;\r\n\t height: 50px;\r\n\t}\r\n\r\n\t.button-preview {\r\n\t display: block;\r\n\t position: relative;\r\n\t padding-left: 60px;\r\n\t width: 100%;\r\n\r\n\t h4 {\r\n\t\tpadding: 0;\r\n\t }\r\n\r\n\t .subtitle {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .btn {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t }\r\n\t}\r\n }\r\n\r\n .subtitle.mobile {\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n }\r\n}\r\n</style>-->\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpRaddar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpRaddar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdpRaddar.vue?vue&type=template&id=5fdb35cc&scoped=true&\"\nimport script from \"./PdpRaddar.vue?vue&type=script&lang=js&\"\nexport * from \"./PdpRaddar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdpRaddar.vue?vue&type=style&index=0&id=5fdb35cc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5fdb35cc\",\n null\n \n)\n\nexport default component.exports","export const PDP_MODE_INTERNAL = 'internal';\r\nexport const PDP_MODE_EXTERNAL = 'external'\r\nexport const PDP_EVENT_SHOW = 'pdp_event_show';\r\nexport const PDP_EVENT_HIDE = 'pdp_event_hide';\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdp-default\"},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.content.pdpTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.closePdp,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closePdp.apply(null, arguments)}}},[_c('img',{attrs:{\"alt\":\"Close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"pdpContainer\"},[(_vm.isAdonis)?[_c('h2',[_vm._v(\" \"+_vm._s(_vm.product.productDescription)+\" \")])]:(_vm.isRichelieu)?[_c('div',{staticClass:\"language\",attrs:{\"tabindex\":\"0\"}},[(_vm.product.productFr !== null)?_c('h2',{staticClass:\"french\"},[_vm._v(_vm._s(_vm.product.productFr))]):_vm._e(),(_vm.product.productEn && _vm.product.productFr)?_c('h2',[_vm._v(\" | \")]):_vm._e()]),(_vm.product.productEn !== null)?_c('h2',{staticClass:\"language english\"},[_vm._v(\" \"+_vm._s(_vm.product.productEn)+\" \")]):_vm._e()]:[(_vm.product.productFr!==null)?_c('h2',{ref:\"pdpWindow\",attrs:{\"tabindex\":\"0\"}},[_vm._v(_vm._s(_vm.product.productFr))]):_vm._e(),(_vm.product.productEn && _vm.product.productFr)?_c('h2',[_vm._v(\" | \")]):_vm._e(),(_vm.product.productEn !== null)?_c('h2',[_vm._v(\" \"+_vm._s(_vm.product.productEn)+\" \")]):_vm._e()],_c('div',[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.product.productImage}})]),_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.pricePrefix)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pricePrefix)+\" \")]):_vm._e(),(_vm.priceQty)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),_c('span',[_vm._v(\" \"+_vm._s(_vm.salePrice))]),(_vm.promoUnit)?_c('span',[_vm._v(\" \"+_vm._s(_vm.promoUnit)+\" \")]):_vm._e(),(_vm.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.alternatePrice))]):_vm._e()])]),(_vm.product.savingsEn)?_c('div',{staticClass:\"savings\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.product.savingsPrefix)+\" \"+_vm._s(_vm.product.savingsEn)+\" \"+_vm._s(_vm.product.savingsSuffix))])]):_vm._e(),(_vm.product.savingsFr)?_c('div',{staticClass:\"savings\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.product.savingsPrefixFr)+\" \"+_vm._s(_vm.product.savingsFr)+\" \"+_vm._s(_vm.product.savingsSuffixFr))])]):_vm._e(),_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.pdpValidFrom))])]),_c('div',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(_vm.flyerDate(_vm.product.validFrom, _vm.product.validTo))}})]),(_vm.product.bodyFr || _vm.product.bodyEn)?_c('div',{staticClass:\"detail\"},[_c('span',[_vm._v(_vm._s(_vm.content.pdpDetails))]),_c('p',{staticClass:\"detail-content\"},[_vm._v(\" \"+_vm._s(_vm.getProductDetail)+\" \")])]):_vm._e(),_c('p',{staticClass:\"disclaimer-content\"},[_vm._v(_vm._s(_vm.content.disclaimer))]),_c('div',{staticClass:\"addtoList-container\"},[(_vm.checkProductInSL(_vm.product))?_c('button',{staticClass:\"pdpAddToList removeFromList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleRemoveFromList(_vm.product)}}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.content.pdpRemoveFromList)+\" \")])]):(_vm.listEnabled)?_c('button',{staticClass:\"pdpAddToList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleAddToList(_vm.product)}}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.content.pdpAddToList)+\" \")])]):_vm._e()])],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"pdp-default\">\r\n\t\t<h2 class=\"header\">\r\n\t\t\t<span class=\"pdpTitle\">{{ content.pdpTitle }}</span>\r\n\t\t\t<button :aria-label=\"content.pdpClose\" class=\"close-btn\" tabindex=\"0\" @click=\"closePdp\" @keydown.esc=\"closePdp\">\r\n\t\t\t\t<img alt=\"Close\" src=\"/images/icon-close-white.svg\" />\r\n\t\t\t</button>\r\n\t\t</h2>\r\n\t\t<div ref=\"toastContent\" class=\"content\">\r\n\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t<div class=\"pdpContainer\">\r\n\t\t\t\t\t<template v-if=\"isAdonis\">\r\n\t\t\t\t\t\t<h2> {{ product.productDescription }} </h2>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t\t<template v-else-if=\"isRichelieu\">\r\n\t\t\t\t\t\t <div tabindex=\"0\" class=\"language\">\r\n\t\t\t\t\t\t\t\t<h2 v-if=\"product.productFr !== null\" class=\"french\">{{ product.productFr }}</h2>\r\n\t\t\t\t\t\t\t\t<h2 v-if=\"product.productEn && product.productFr\"> | </h2>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<h2 v-if=\"product.productEn !== null\" class=\"language english\"> {{ product.productEn }} </h2>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t\t<template v-else>\r\n\t\t\t\t\t\t<h2 v-if=\"product.productFr!==null\" tabindex=\"0\" ref=\"pdpWindow\">{{ product.productFr }}</h2>\r\n\t\t\t\t\t\t<h2 v-if=\"product.productEn && product.productFr\"> | </h2>\r\n\t\t\t\t\t\t<h2 v-if=\"product.productEn !== null\"> {{ product.productEn }} </h2>\r\n\t\t\t\t\t</template>\r\n\r\n <div><img :src=\"product.productImage\" class=\"productImage\" /></div>\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\t<div class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t<h2>\r\n <span v-if=\"pricePrefix\"> {{ pricePrefix }} </span>\r\n <span v-if=\"priceQty\">{{ priceQty }} /</span>\r\n\t\t\t\t\t\t\t<span> {{ salePrice }}</span>\r\n\t\t\t\t\t\t\t<span v-if=\"promoUnit\"> {{ promoUnit }} </span>\r\n\t\t\t\t\t\t\t<span v-if=\"alternatePrice\" class=\"alternatePrice\">{{ alternatePrice }}</span>\r\n\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-if=\"product.savingsEn\" class=\"savings\">\r\n\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t{{ product.savingsPrefix }}\r\n\t\t\t\t\t\t\t{{ product.savingsEn }}\r\n\t\t\t\t\t\t\t{{ product.savingsSuffix }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div v-if=\"product.savingsFr\" class=\"savings\">\r\n\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t{{ product.savingsPrefixFr }}\r\n\t\t\t\t\t\t\t{{ product.savingsFr }}\r\n\t\t\t\t\t\t\t{{ product.savingsSuffixFr }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"validity\">\r\n\t\t\t\t\t\t<span><strong>{{ content.pdpValidFrom }}</strong></span>\r\n\t\t\t\t\t\t<div class=\"date\" v-html=\"flyerDate(product.validFrom, product.validTo)\"></div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-if=\"product.bodyFr || product.bodyEn\" class=\"detail\">\r\n\t\t\t\t\t\t<span>{{ content.pdpDetails }}</span>\r\n\t\t\t\t\t\t<p class=\"detail-content\">\r\n\t\t\t\t\t\t\t{{ getProductDetail}}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<p class=\"disclaimer-content\">{{ content.disclaimer }}</p>\r\n\r\n\t\t\t\t\t<div class=\"addtoList-container\">\r\n\t\t\t\t\t\t<button v-if=\"checkProductInSL(product)\" class=\"pdpAddToList removeFromList\" tabindex=\"0\"\r\n\t\t\t\t\t\t\t@click=\"handleRemoveFromList(product)\">\r\n\t\t\t\t\t\t\t<span> {{ content.pdpRemoveFromList }} </span>\r\n\t\t\t\t\t\t</button>\r\n\r\n\t\t\t\t\t\t<button v-else-if=\"listEnabled\" class=\"pdpAddToList\" tabindex=\"0\" @click=\"handleAddToList(product)\">\r\n\t\t\t\t\t\t\t<span> {{ content.pdpAddToList }} </span>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport ClickOutside from \"vue-click-outside\";\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\nimport PdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\n\r\nexport default {\r\n\tdirectives: {\r\n\t\tClickOutside,\r\n\t},\r\n\tmixins: [featureMixin, PdpProductMixin],\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttoastContent: null,\r\n\t\t\tready: true\r\n\t\t};\r\n\t},\r\n\tmounted() {\r\n /*this.$refs.pdpWindow.focus()*/\r\n\t\t// console.log(this.$refs.pdpPopup);\r\n\t\t/*if(this.enabled){\r\n\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\tpdpFocus.focus();\r\n\t\t\t}*/\r\n\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters([\"content\", \"language\"]),\r\n\t\t...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n\t\t...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n\t\t...mapState(\"shoppingList\", [\"shoppingList\"]),\r\n\t\t...mapGetters(\"pdp\", { pdpEnabled: \"enabled\" }),\r\n\t\t...mapGetters('shoppingList', { listEnabled: 'enabled' }),\r\n\r\n\t\tcolumnView() {\r\n\t\t\treturn this.flyerOrientation === \"vertical\";\r\n\t\t},\r\n\r\n\t\tenabled() {\r\n\t\t\treturn this.pdpEnabled && this.config.mode === 'internal';\r\n\t\t},\r\n\t\tgetProductDetail() {\r\n\t\t\tif (this.isRichelieu) {\r\n\t\t\t\treturn (this.language === 'en') ? this.product.bodyEn : this.product.bodyFr\r\n\t\t\t} else {\r\n\t\t\t\treturn this.product.bodyFr && this.product.bodyEn\r\n\t\t\t\t ? `${this.product.bodyFr} | ${this.product.bodyEn}`\r\n\t\t\t\t\t\t\t\t: this.product.bodyFr || this.product.bodyEn\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\r\n\t\t},\r\n\t\tisRichelieu() {\r\n\t\t\tif (AppConfig.AppConf?.title.toLowerCase().includes(\"richelieu\".toLowerCase())) {\r\n\t\t\t\treturn true\r\n\t\t\t} else return false\r\n\t\t},\r\n\t\tisAdonis() {\r\n\t\t\tif (AppConfig.AppConf?.title.toLowerCase().includes(\"adonis\".toLowerCase())) {\r\n\t\t\t\treturn true\r\n\t\t\t} else return false\r\n\t\t},\r\n\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions([\"setPdpDisplay\", \"setCurrentProduct\"]),\r\n\t\t...mapActions(\"shoppingList\", [\"setAddToList\", \"setRemoveFromList\"]),\r\n\t\t...mapActions(\"pdp\", [\"close\", \"open\"]),\r\n\r\n\t\tclosePdp() {\r\n\t\t\tthis.close();\r\n\t\t},\r\n\t\thandleAddToList(product) {\r\n\t\t\t// console.log(\"Handle add to list\", product)\r\n\t\t\tconst additionalItemFlag = false;\r\n\t\t\tthis.setAddToList({ product, additionalItemFlag });\r\n\t\t},\r\n\r\n\t\thandleRemoveFromList(product) {\r\n\t\t\tthis.setRemoveFromList(product);\r\n\t\t},\r\n\r\n\t\tcheckProductInSL(product) {\r\n\t\t\tlet item = this.shoppingList.filter(function (e) {\r\n\t\t\t\treturn e.sku === product.sku;\r\n\t\t\t});\r\n\t\t\treturn item.length > 0;\r\n\t\t},\r\n\t\tshowPriceFr(price) {\r\n\t\t\tif (!price) return;\r\n\r\n\t\t\treturn (\r\n\t\t\t\tparseFloat(price)\r\n\t\t\t\t\t.toFixed(2)\r\n\t\t\t\t\t.replace(\".\", \",\") + \" $\"\r\n\t\t\t); //adds zeros\r\n\r\n\t\t},\r\n\t\tshowPriceEn(price) {\r\n\t\t\tif (!price) return;\r\n\t\t\t// let enPrice = price.replace(\",\",\".\")\r\n\t\t\telse if (price.includes(\"$\")) {\r\n\t\t\t\tlet priceWith$ = price.replace(\"$\", \"\");\r\n\t\t\t\tif (priceWith$.includes(\",\")) {\r\n\t\t\t\t\tlet enPrice = priceWith$.replaceAll(\",\", \".\");\r\n\t\t\t\t\treturn \"$\" + enPrice;\r\n\t\t\t\t}\r\n\t\t\t\treturn \"$\" + priceWith$;\r\n\t\t\t}\r\n\t\t\treturn \"$\" + price.replace(\",\", \".\");\r\n\t\t},\r\n\t\tflyerDate(validFrom, validTo) {\r\n\t\t\tconst start = validFrom ? moment.utc(validFrom) : moment.utc(this.currentFlyer.startDate);\r\n\t\t\tconst endDate = validFrom ? moment.utc(validTo) : moment.utc(this.currentFlyer.endDate);\r\n\t\t\tif (this.language === \"en\") {\r\n\t\t\t\t\treturn `${start.locale('en').format(\"MMMM D, YYYY\")} to ${endDate.locale('en').format(\"MMMM D, YYYY\")}`;\r\n\t\t\t} else {\r\n\t\t\t\t\treturn `${start.format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>'\r\n\t\t\t\t\t)}`;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\twatch: {\r\n\t\tshowPdp(val) {\r\n\t\t\tif (val) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.ready = true;\r\n\t\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\t\tpdpFocus.focus();\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t\tthis.ready = false;\r\n\t\t},\r\n\t},\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.mobile {\r\n\tdisplay: none !important;\r\n\tflex-flow: column;\r\n\trow-gap: 2em;\r\n\tpadding: 1.5em;\r\n\r\n\t.description {\r\n\t\tdisplay: flex;\r\n\t\tflex-flow: row;\r\n\t\ttext-align: left;\r\n\t\talign-items: flex-end;\r\n\r\n\t\t> :first-child {\r\n\t\t\twidth: calc(55px + 1em);\r\n\t\t}\r\n\r\n\t\t.mobile-content {\r\n\t\t\tflex-basis: 100%;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.modal-wpr {\r\n\tposition: absolute;\r\n\ttop: 0px;\r\n\tright: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tbackground-color: rgba(0, 0, 0, 0.75);\r\n\tz-index: 20;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-start;\r\n\talign-items: flex-end;\r\n\tflex-flow: column;\r\n\r\n\t.modal {\r\n\t\tbackground-color: var(--secondary-color);\r\n\t\t/*margin-top: 75px;*/\r\n\t\tborder: 1px solid #bbbbbb;\r\n\t\t/* overflow: auto;*/\r\n\t\tmax-height: calc(100% - 1em);\r\n\t\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\t\tdisplay: flex;\r\n\t\tflex-flow: column;\r\n\t\tmax-width: calc(100% - 4em);\r\n\r\n\t\t.header {\r\n\t\t\tbackground-color: var(--secondary-color);\r\n\t\t\tcolor: var(--primary-text-color);\r\n\t\t\tdisplay: flex;\r\n\t\t\tjustify-content: space-between;\r\n\t\t\tpadding: 10px;\r\n\r\n\t\t\th2 {\r\n\t\t\t\tfont-size: 18px;\r\n\t\t\t\ttext-transform: uppercase;\r\n\t\t\t\tfont-weight: 400;\r\n\t\t\t}\r\n\r\n\t\t\t.close-btn {\r\n\t\t\t\tcursor: pointer;\r\n\r\n\t\t\t\t&:hover {\r\n\t\t\t\t\tbackground: none;\r\n\t\t\t\t\tfilter: unset;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.subtitle {\r\n\t\t\tpadding-top: 6px;\r\n\t\t\tfont-size: 12px;\r\n\t\t}\r\n\r\n\t\t.content {\r\n\t\t\tpadding: 8px;\r\n\t\t\tbackground-color: #fff;\r\n\t\t\tcolor: #545454;\r\n\t\t\tposition: relative;\r\n\t\t\tflex: 1 0 auto;\r\n\t\t\toverflow: auto;\r\n\t\t\t// margin:0px 10px 10px 10px;\r\n\t\t\tmargin: 10px 10px 17px;\r\n\t\t\tmin-height: 250px;\r\n\t\t\tmax-height: calc(100% - 4em);\r\n\r\n\t\t\t/*.scroll-container{\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:0px;\r\n\t\t\t\t\tbottom:0px;\r\n\t\t\t\t\tleft:0px;\r\n\t\t\t\t\tright:0px;\r\n\t\t\t\t}*/\r\n\t\t\t.content-container {\r\n\t\t\t\ttext-align: left;\r\n\t\t\t\t//width:300px;\r\n\t\t\t}\r\n\r\n\t\t\t.f-half {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tcolumn-gap: 1em;\r\n\r\n\t\t\t\tflex-direction: column;\r\n\r\n\t\t\t\t>div {\r\n\t\t\t\t\tflex-basis: 100%;\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\tflex-flow: column;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.content-container {\r\n\t\t\t\t// width: 350px;\r\n\t\t\t}\r\n\r\n\t\t\t.feature {\r\n\t\t\t\tbackground: #eee;\r\n\t\t\t\tmargin: 12px 0;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tjustify-content: center;\r\n\t\t\t\tflex: 1;\r\n\r\n\t\t\t\t.description {\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\tfont-size: 14px;\r\n\t\t\t\t\tpadding: 15px 0;\r\n\r\n\t\t\t\t\t.button-preview {\r\n\t\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\t\tflex-direction: column;\r\n\t\t\t\t\t\talign-items: center;\r\n\t\t\t\t\t\tpadding: 0 20px;\r\n\r\n\t\t\t\t\t\th4 {\r\n\t\t\t\t\t\t\ttext-transform: uppercase;\r\n\t\t\t\t\t\t\tpadding-top: 16px;\r\n\t\t\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t.subtitle {\r\n\t\t\t\t\t\t\ttext-align: center;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.pdpTitle {\r\n\tfont-size: 18px;\r\n\tfont-weight: bold;\r\n}\r\n\r\n.pdpContainer {\r\n\t//margin-left: 10px;\r\n\tmax-width: calc(100vw - 5em);\r\n\r\n\th2 {\r\n\t\tfont-size: 18px;\r\n\t\tline-height: 1.1em;\r\n\t\tdisplay: inline;\r\n\r\n\t}\r\n\t\t\r\n .language {\r\n\t\ttext-wrap: balance;\r\n\t}\r\n\t\r\n\r\n\t.productImage {\r\n\t\t// max-height: 60%;\r\n\t\t// max-width: 60%;\r\n\t\tmax-height: 200px;\r\n\t\tmax-width: 120px;\r\n\t\twidth: auto;\r\n\t\theight: auto;\r\n\t\ttop: 0;\r\n\t\tbottom: 0;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\t\tmargin: auto;\r\n\t}\r\n\r\n\t.price {\r\n\t\tdisplay: flex;\r\n\t\tcolor: #ee3124;\r\n\t\tfont-weight: 900;\r\n\t}\r\n\r\n\tspan.alternatePrice {\r\n\t\tdisplay: inline-block;\r\n\t}\r\n\r\n\t.alternatePrice {\r\n\t\tcolor: #000;\r\n\t\tfont-size: 13px;\r\n\t\tfont-weight: normal;\r\n\t\tmargin-left: 5px;\r\n\t}\r\n\r\n\t.savings {\r\n\t\tcolor: #ee3124;\r\n\t\tfont-size: 16px;\r\n\t}\r\n\r\n\t.detail {\r\n\t\tfont-size: 15px;\r\n\t\tmargin-top: 10px;\r\n\t\tfont-weight: 900;\r\n\r\n\t\t.detail-content {\r\n\t\t\tfont-size: 12px;\r\n\t\t\tfont-weight: normal;\r\n\t\t}\r\n\t}\r\n\r\n\t.disclaimer-content {\r\n\t\tfont-size: 9px;\r\n\t\tfont-weight: normal;\r\n\t\tmargin-top: 10px;\r\n\t\tfont-style: italic;\r\n\t}\r\n\r\n\t& .validity {\r\n\t\tfont-size: 13px;\r\n\t\tmargin-top: 10px;\r\n\t}\r\n}\r\n\r\nbutton {\r\n\tbackground: transparent;\r\n\t// border: 1px solid #ccc;\r\n\ttext-transform: uppercase;\r\n\tfont-weight: 600;\r\n\tcolor: #666;\r\n\tborder-radius: 4px;\r\n\tborder: none;\r\n}\r\n\r\nbutton.button {\r\n\tbackground: #fff;\r\n\tborder: 1px solid #ccc;\r\n\ttext-transform: uppercase;\r\n\tfont-weight: 600;\r\n\tcolor: #666;\r\n\tpadding: 8px 12px;\r\n\tborder-radius: 4px;\r\n\tmargin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n\tbackground: #eee;\r\n\tcolor: #000;\r\n}\r\n\r\n.btn {\r\n\tbackground: #fff;\r\n\tborder: 1px solid #bbb;\r\n\tborder-radius: 4px;\r\n\tpadding: 5px;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\theight: 34px;\r\n\twidth: 34px;\r\n\tcolor: #333;\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tcursor: auto;\r\n\tpointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n\tmargin: 0 10px 0 10px;\r\n}\r\n\r\n.pdpAddToList {\r\n\tdisplay: flex;\r\n\tflex-grow: 0.7;\r\n\tcursor: pointer;\r\n\twidth: 100%;\r\n\tborder-radius: 5px;\r\n\t// margin-top:15px;\r\n\t// margin-bottom:15px;\r\n\t// margin-right: 10px;\r\n\tmargin: 15px 0 10px 0;\r\n\tbackground-color: var(--tertiary-color);\r\n\tcolor: #fff;\r\n\tpadding: 8px;\r\n\tjustify-content: center;\r\n\tmax-width: calc(100vw - 7em);\r\n\tfont-weight: normal;\r\n\r\n\t&.removeFromList {\r\n\t\tbackground-color: #EE3124;\r\n\t}\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n\twidth: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n\t//background: #f1f1f1;\r\n\tdisplay: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n\tbackground: #888;\r\n\tborder-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n\tbackground: #555;\r\n}\r\n\r\n.btn.page {\r\n\twidth: 100%;\r\n\theight: 28px;\r\n\tjustify-content: flex-start;\r\n\tpadding-left: 3%;\r\n\tmargin-bottom: 8px;\r\n\r\n\t&+.subtitle {\r\n\t\ttext-align: left !important;\r\n\t}\r\n}\r\n\r\n.page-num {\r\n\tbackground-color: var(--primary-color);\r\n\tcolor: var(--primary-text-color);\r\n\tborder-radius: 4px;\r\n\tfont-size: 12px;\r\n\tpadding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n\t.description {\r\n\t\tflex-basis: 50%;\r\n\t\tjustify-content: center;\r\n\t}\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n\t.modal-wpr .modal {\r\n\t\t.content {\r\n\t\t\t.f-half {\r\n\t\t\t\tflex-direction: row !important;\r\n\t\t\t}\r\n\r\n\t\t\t.content-container {\r\n\t\t\t\twidth: 300px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n\t.modal-wpr .modal {\r\n\t\t.content {\r\n\t\t\t.content-container {\r\n\t\t\t\t// width: 575px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n\t.modal-wpr .modal {\r\n\t\t.content {\r\n\t\t\t.content-container {\r\n\r\n\t\t\t\t//width: 300px;\r\n\t\t\t\t.productImage {\r\n\t\t\t\t\t// max-height: 50%;\r\n\t\t\t\t\t// max-width: 50%;\r\n\t\t\t\t\tmax-height: 180px;\r\n\t\t\t\t\tmax-width: 85px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n\t.modal-wpr .modal.vertical .content .feature.navigation {\r\n\t\t/*.description {\r\n\t\t\t\tpadding-top: 10px;\r\n\t\t\t\tpadding-left: 100px;\r\n\t\t\t\tpadding-bottom: 70px;\r\n\t\t\t\tposition: relative;\r\n\t\t\t}*/\r\n\r\n\t\t/*.btn.page {\r\n\t\t\t\ttransform: rotate(90deg);\r\n\t\t\t\twidth: 146px;\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\tbottom: 38%;\r\n\t\t\t}*/\r\n\r\n\t\th4,\r\n\t\t.subtitle {\r\n\t\t\ttext-align: left;\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\r\n\t\t.subtitle+.subtitle {\r\n\t\t\tmargin-top: 1em;\r\n\t\t}\r\n\t}\r\n\r\n\t.content-container {\r\n\t\twidth: 300px;\r\n\t}\r\n}\r\n\r\n@media (max-width: 850px) {\r\n\t/*.modal-wpr {\r\n top: 125px;\r\n }*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n\t/*.modal-wpr {\r\n top: 125px;\r\n }*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n\r\n\t/*.modal-wpr {\r\n top: 65px;\r\n }*/\r\n\t.walkthrough {\r\n\t\tdisplay: none;\r\n\t}\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n\t.mobile {\r\n\t\tdisplay: flex !important;\r\n\t}\r\n\r\n\t.desktop {\r\n\t\tdisplay: none !important;\r\n\t}\r\n\r\n\t.modal-wpr .modal {\r\n\t\t/* margin-top: 140px;\r\n\t\t\twidth: 90% !important;*/\r\n\t\twidth: 338px;\r\n\r\n\t\t.content {\r\n\t\t\t.f-half {\r\n\t\t\t\t/*flex-direction: row !important;*/\r\n\t\t\t}\r\n\r\n\t\t\t.content-container {\r\n\t\t\t\t// width: 400px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.header {\r\n\t\t\tpadding-bottom: 4px;\r\n\r\n\t\t\th2 {\r\n\t\t\t\tfont-size: 14px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.heading {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.modal-wpr .modal .content .feature {\r\n\t\tdisplay: block;\r\n\t\tbackground: none;\r\n\t\tpadding: 0 6%;\r\n\r\n\t\t.description {\r\n\t\t\tpadding: 0;\r\n\t\t\tmargin-bottom: 20px;\r\n\t\t\theight: 50px;\r\n\t\t}\r\n\r\n\t\t.button-preview {\r\n\t\t\tdisplay: block;\r\n\t\t\tposition: relative;\r\n\t\t\tpadding-left: 60px;\r\n\t\t\twidth: 100%;\r\n\r\n\t\t\th4 {\r\n\t\t\t\tpadding: 0;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t\ttext-align: left;\r\n\t\t\t}\r\n\r\n\t\t\t.btn {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tleft: 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.subtitle.mobile {\r\n\t\ttext-align: center;\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpDefault.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpDefault.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdpDefault.vue?vue&type=template&id=1a4fa045&scoped=true&\"\nimport script from \"./PdpDefault.vue?vue&type=script&lang=js&\"\nexport * from \"./PdpDefault.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdpDefault.vue?vue&type=style&index=0&id=1a4fa045&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a4fa045\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdp-default-v1\"},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.content.pdpTitle))]),_c('button',{ref:\"pdpWindow\",staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.closePdp,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closePdp.apply(null, arguments)}}},[_c('img',{attrs:{\"alt\":\"Close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"pdpContainer\"},[(_vm.config.showProductName !== undefined && _vm.config.showProductName)?_c('span',[(_vm.productName)?_c('h2',{attrs:{\"tabindex\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.productName)+\" \")]):_vm._e()]):_vm._e(),_c('div',{class:{productImageContainer:_vm.checkClient}},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.productImage,\"alt\":\"ProductImage\"}})]),(_vm.language == 'en')?_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.product.priceQuantity && _vm.is3DaySale)?_c('span',[_vm._v(_vm._s(_vm.priceQty))]):_vm._e(),(_vm.pricePrefix)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pricePrefix)+\" \")]):_vm._e(),(!_vm.isBogo && _vm.salePrice)?_c('span',[_vm._v(\" \"+_vm._s(_vm.getSalePrice))]):_vm._e(),(!_vm.isBogo && _vm.product.promoUnitEn && _vm.getSalePrice!=='')?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.promoUnitEn)+\" \")]):_vm._e(),(_vm.product.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.product.alternatePrice))]):_vm._e()]),(!_vm.isBogo && !_vm.isSwipeAndSave && _vm.is3DaySale && _vm.product.limitQty)?_c('span',{staticClass:\"limit\"},[_vm._v(\"  \"+_vm._s(_vm.product.limitQty))]):_vm._e()]):_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.product.priceQuantity)?_c('span',[_vm._v(_vm._s(_vm.product.priceQuantity)+\"/\")]):_vm._e(),(_vm.product.salePricePrefixFr)?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.salePricePrefixFr)+\" \")]):_vm._e(),(_vm.product.promoUnitFr)?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.promoUnitFr)+\" \")]):_vm._e(),(_vm.product.alternatePriceFr)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(\" \"+_vm._s(_vm.product.alternatePriceFr)+\" \")]):_vm._e()])]),(_vm.product.savingsEn && !_vm.product.salePrice)?_c('div',{staticClass:\"savings\",class:{limit: _vm.isBogo}},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.product.savingsPrefix)+\" \"+_vm._s(_vm.product.savingsEn)+\" \"+_vm._s(_vm.product.savingsSuffix)+\" \")])]):_vm._e(),(_vm.is3DaySale)?_c('div',{staticClass:\"daysOnly\"},[_vm._v(\" \"+_vm._s(_vm.product.tierEachPrice)+\" \")]):_vm._e(),_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.pdpValidFrom))])]),_c('div',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(_vm.flyerDate)}})]),(_vm.description)?_c('div',{staticClass:\"detail\"},[_c('span',[_vm._v(_vm._s(_vm.content.pdpDetails))]),_c('p',{staticClass:\"detail-content\",domProps:{\"innerHTML\":_vm._s(_vm.description)}})]):_vm._e(),_c('p',{staticClass:\"disclaimer-content\"},[_vm._v(_vm._s(_vm.content.disclaimer))]),_c('div',{staticClass:\"addtoList-container\"},[(_vm.checkProductInSL(_vm.product))?_c('button',{staticClass:\"shopOptions removeFromList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleRemoveFromList(_vm.product)}}},[_vm._v(\" \"+_vm._s(_vm.content.pdpRemoveFromList)+\" \")]):(_vm.listEnabled)?_c('button',{staticClass:\"shopOptions pdpAddToList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleAddToList(_vm.product)}}},[_vm._v(\" \"+_vm._s(_vm.content.pdpAddToList)+\" \")]):_vm._e(),(_vm.config.shopNow && !_vm.isBogo && !_vm.isSwipeAndSave && _vm.product.url)?_c('button',{staticClass:\"shopOptions shopNow\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.gotoInstaCart()}}},[_vm._v(\"Shop Now\")]):_vm._e()])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\r\n\t<div class=\"pdp-default-v1\">\r\n\t\t<h2 class=\"header\">\r\n\t\t\t<span class=\"pdpTitle\">{{ content.pdpTitle }}</span>\r\n\t\t\t<button :aria-label=\"content.pdpClose\" class=\"close-btn\" tabindex=\"0\" ref=\"pdpWindow\" @click=\"closePdp\" @keydown.esc=\"closePdp\">\r\n\t\t\t\t<img alt=\"Close\" src=\"/images/icon-close-white.svg\"/>\r\n\t\t\t</button>\r\n\t\t</h2>\r\n\r\n\t\t<div ref=\"toastContent\" class=\"content\">\r\n\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t<div class=\"pdpContainer\">\r\n\t\t\t\t\t<span v-if=\"config.showProductName !== undefined && config.showProductName\">\r\n <h2 v-if=\"productName\" tabindex=\"0\"> {{ productName }} </h2>\r\n\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t<div :class=\"{productImageContainer:checkClient}\">\r\n\t\t\t\t\t\t<img :src=\"productImage\" class=\"productImage\" alt=\"ProductImage\"/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div v-if=\"language == 'en'\" class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t<span v-if=\"product.priceQuantity && is3DaySale\">{{ priceQty }}</span>\r\n\r\n\t\t\t\t\t\t\t<span v-if=\"pricePrefix\"> {{ pricePrefix }} </span>\r\n\r\n\t\t\t\t\t\t\t<span v-if=\"!isBogo && salePrice\"> {{ getSalePrice }}</span>\r\n\r\n\t\t\t\t\t\t\t<span v-if=\"!isBogo && product.promoUnitEn && getSalePrice!==''\"> {{ product.promoUnitEn }} </span>\r\n\r\n\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\tv-if=\"product.alternatePrice\"\r\n\t\t\t\t\t\t\t\t\tclass=\"alternatePrice\"\r\n\t\t\t\t\t\t\t>{{ product.alternatePrice }}</span>\r\n\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t<span v-if=\"!isBogo && !isSwipeAndSave && is3DaySale && product.limitQty\" class=\"limit\"> {{ product.limitQty }}</span>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-else class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t<span v-if=\"product.priceQuantity\">{{ product.priceQuantity }}/</span>\r\n\r\n\t\t\t\t\t\t\t<span v-if=\"product.salePricePrefixFr\"> {{ product.salePricePrefixFr }} </span>\r\n\r\n\t\t\t\t\t\t\t<span v-if=\"product.promoUnitFr\"> {{ product.promoUnitFr }} </span>\r\n\t\t\t\t\t\t\t<span v-if=\"product.alternatePriceFr\"\r\n\t\t\t\t\t\t\t class=\"alternatePrice\">\r\n\t\t\t\t\t\t\t\t\t{{ product.alternatePriceFr }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-if=\"product.savingsEn && !product.salePrice\" :class=\"{limit: isBogo}\" class=\"savings\">\r\n\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t{{ product.savingsPrefix }}\r\n\t\t\t\t\t\t\t{{ product.savingsEn }}\r\n\t\t\t\t\t\t\t{{ product.savingsSuffix }}\r\n\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-if=\"is3DaySale\" class=\"daysOnly\">\r\n\t\t\t\t\t\t{{ product.tierEachPrice }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"validity\">\r\n <span><strong>{{ content.pdpValidFrom }}</strong></span>\r\n\t\t\t\t\t\t<div class=\"date\" v-html=\"flyerDate\"></div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-if=\"description\" class=\"detail\">\r\n\t\t\t\t\t\t<span>{{ content.pdpDetails }}</span>\r\n\t\t\t\t\t\t<p class=\"detail-content\" v-html=\"description\"/>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<p class=\"disclaimer-content\">{{ content.disclaimer }}</p>\r\n\r\n\t\t\t\t\t<div class=\"addtoList-container\">\r\n\t\t\t\t\t\t<button v-if=\"checkProductInSL(product)\"\r\n\t\t\t\t\t\t class=\"shopOptions removeFromList\"\r\n\t\t\t\t\t\t tabindex=\"0\"\r\n\t\t\t\t\t\t @click=\"handleRemoveFromList(product)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ content.pdpRemoveFromList }}\r\n\t\t\t\t\t\t</button>\r\n\r\n\t\t\t\t\t\t<button v-else-if=\"listEnabled\"\r\n\t\t\t\t\t\t class=\"shopOptions pdpAddToList\"\r\n\t\t\t\t\t\t tabindex=\"0\"\r\n\t\t\t\t\t\t @click=\"handleAddToList(product)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ content.pdpAddToList }}\r\n\t\t\t\t\t\t</button>\r\n\r\n\r\n\t\t\t\t\t\t<button v-if=\"config.shopNow && !isBogo && !isSwipeAndSave && product.url\" class=\"shopOptions shopNow\" tabindex=\"0\" @click=\"gotoInstaCart()\">Shop Now</button>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n</template>\r\n\r\n<script>\r\n\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\nimport router from \"@/router\";\r\nimport pdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\nimport Lytics from \"../../../classes/Lytics\";\r\n\r\nexport default {\r\n\r\n\tmixins: [featureMixin, pdpProductMixin],\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttoastContent: null,\r\n\t\t\tready: false,\r\n\t\t\tfeaturePath: 'pdp',\r\n\t\t\tfeatureEvents: ['productRegionClick']\r\n\t\t};\r\n\t},\r\n\tmounted() {\r\n\t\tthis.ready = true;\r\n this.$refs.pdpWindow.focus();\r\n\t\t// console.log(this.$refs.pdpPopup);\r\n\t\t/*if(this.enabled){\r\n\t\t\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\t\t\tpdpFocus.focus();\r\n\t\t\t\t\t}*/\r\n\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapState(['currentPageNumber']),\r\n\t\t...mapGetters([\"content\", \"language\",\"dealId\"]),\r\n\t\t...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n\t\t...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n\t\t...mapState(\"shoppingList\", [\"shoppingListV1\"]),\r\n\t\t...mapGetters(\"pdp\", {pdpEnabled: \"enabled\"}),\r\n\t\t...mapState(\"pdp\", {showPdp: \"isVisible\"}),\r\n\t\t...mapGetters('shoppingList', {listEnabled: 'enabled'}),\r\n\r\n\t\tcheckClient() {\r\n\t\t\treturn !!AppConfig.AppConf?.title.toLowerCase().includes(\"rexall\".toLowerCase());\r\n\t\t},\r\n\r\n\t\tisBogo() {\r\n\t\t\treturn this.product?.tags?.includes('bogo')\r\n\t\t},\r\n\r\n\t\tisSwipeAndSave() {\r\n\t\t\tif (this.product === null) return;\r\n if(this.dealId === 'PP4123' && (this.product.sku==='61328852856'|| this.product.sku==='30772072509')) return true\r\n\t\t\treturn this.product.tags?.includes('S&S');\r\n\t\t},\r\n\r\n\t\tis3DaySale() {\r\n\t\t\tif (this.product === null) return;\r\n\t\t\tconst date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n\t\t\t//subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day) that are passed as parameters\r\n\t\t\tconst startDate = moment(this.product.validFrom).subtract(1, \"days\")\r\n\t\t\tconst endDate = moment(this.product.validTo).add(1, \"days\")\r\n\t\t\tif ((this.product.validFrom !== this.currentFlyer.startDate) && (this.product.validTo !== this.currentFlyer.endDate) ||\r\n\t\t\t\t(this.product.validFromROW !== this.currentFlyer.startDate) && (this.product.validToROW !== this.currentFlyer.endDate)) {\r\n\t\t\t\treturn moment(date).isBetween(startDate, endDate);\r\n\t\t\t} else\r\n\t\t\t\treturn false\r\n\t\t},\r\n\r\n\t\tflyerDate() {\r\n\t\t\tif (this.product === null) return;\r\n\t\t\tlet startDate, endDate;\r\n\t\t\tif (this.isSwipeAndSave) {\r\n\t\t\t\tstartDate = moment(this.currentFlyer.startDate)\r\n\t\t\t\tendDate = moment(this.currentFlyer.endDate)\r\n\t\t\t} else if (this.is3DaySale) {\r\n\t\t\t\tstartDate = moment(this.product.validFrom);\r\n\t\t\t\tendDate = moment(this.product.validTo)\r\n\t\t\t} else {\r\n\t\t\t\tif (this.product.validFromROW !== null) {\r\n\t\t\t\t\tstartDate = moment(this.product.validFromROW)\r\n\t\t\t\t\tendDate = moment(this.product.validToROW)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstartDate = moment(this.product.validFrom);\r\n\t\t\t\t\tendDate = moment(this.product.validTo)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.language === 'en') {\r\n\t\t\t\treturn `${moment.utc(startDate).locale(this.language).format('MMMM D, YYYY')} to ${moment.utc(endDate).locale(this.language).format('MMMM D, YYYY')}`\r\n\t\t\t} else {\r\n\t\t\t\treturn `${startDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\r\n\t\tgetSalePrice() {\r\n\t\t\tif (this.product === null) return\r\n\t\t\tlet price\r\n\t\t\tconst date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n\t\t\t//subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day)\r\n\t\t\tconst startDate = moment(this.product.validFromROW).subtract(1, \"days\")\r\n\t\t\tconst endDate = moment(this.product.validToROW).add(1, \"days\")\r\n\t\t\tif (this.isSwipeAndSave) {\r\n\t\t\t\tif (this.product?.savingsEn) {\r\n\t\t\t\t\tprice = this.product.savingsPrefix + ' ' + this.product.savingsEn\r\n\t\t\t\t\treturn price\r\n\t\t\t\t} else {\r\n\t\t\t\t\tprice = this.product.salePrice\r\n\t\t\t\t}\r\n\t\t\t} else if (this.is3DaySale)\r\n\t\t\t\tprice = this.product?.salePrice\r\n\t\t\telse if (this.product.rowPrice && moment(date).isBetween(startDate, endDate))\r\n\t\t\t\tprice = this.product?.rowPrice;\r\n\t\t\telse\r\n\t\t\t\tprice = this.product?.rowPrice;\r\n\r\n\t\t\tif (price == null)\r\n\t\t\t\treturn ''\r\n\r\n\r\n\t\t\telse {\r\n\t\t\t\tif (this.product?.savingsEn) {\r\n\t\t\t\t\tprice = this.product.savingsPrefix + ' ' + this.product.savingsEn\r\n\t\t\t\t\treturn price\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (price.trim() !== '') {\r\n\t\t\t\t\t\t// do nothing to test\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tprice = this.product.salePrice;\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this.product?.priceSign?.includes('$') ? `${this.product.priceSign}${(price)} ` : `${price}${this.product.priceSign}`;\r\n\t\t},\r\n\r\n\t\tgetContents() {\r\n\t\t\treturn this.product?.contents\r\n\t\t},\r\n\r\n\t\tcolumnView() {\r\n\t\t\treturn this.flyerOrientation === \"vertical\";\r\n\t\t},\r\n\r\n\t\tenabled() {\r\n\t\t\treturn this.pdpEnabled && this.config.mode === 'internal';\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions([\"setPdpDisplay\", \"setCurrentProduct\"]),\r\n\t\t...mapActions(\"shoppingList\", [\"setAddToList\", \"setRemoveFromList\", \"handleFlyerDate\"]),\r\n\t\t...mapActions(\"pdp\", [\"close\", \"open\"]),\r\n\r\n\t\t/*onFeatureEvent(event, data) {\r\n\t\t\tif (this.config.enabled) {\r\n\t\t\t\t// console.log('PDP Event:', data.product)\r\n\t\t\t\tif (this.config.mode === 'internal' && data.sku !== 'url' && !data.isVideo) {\r\n\t\t\t\t\tthis.open(data.product);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},*/\r\n\r\n\t\tclosePdp() {\r\n\t\t\tif (this.ready) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t},\r\n\t\thandleAddToList(product) {\r\n\t\t\t// console.log(\"Handle add to list\", product)\r\n\t\t\tconst additionalItemFlag = false;\r\n\t\t\tconst version = 'v1'\r\n\t\t\tthis.handleFlyerDate(this.flyerDate)\r\n\t\t\tthis.setAddToList({product, additionalItemFlag, version});\r\n\r\n\t\t},\r\n\r\n\t\thandleRemoveFromList(product) {\r\n\t\t\tconst version = 'v1'\r\n\t\t\tthis.setRemoveFromList({product, version});\r\n\t\t},\r\n\r\n\t\tcheckProductInSL(product) {\r\n\t\t\tlet item = this.shoppingListV1.filter(function (e) {\r\n\t\t\t\treturn e.sku == product.sku;\r\n\t\t\t});\r\n\t\t\tif (item.length > 0) return true;\r\n\t\t\telse return false;\r\n\t\t},\r\n\r\n\t\tgotoInstaCart() {\r\n\t\t\twindow.open(this.product.url)\r\n\t\t\tLytics.TransferToMerchantClick({\r\n\t\t\t\tpage_number: this.currentPageNumber,\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\r\n\twatch: {\r\n\t\tready(val) {\r\n\t\t\tif (val) {\r\n\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\tconst detailText = document.querySelector('.content .detail-content')\r\n\t\t\t\t\tif (detailText) {\r\n\t\t\t\t\t\tdetailText.innerHTML = detailText.innerHTML\r\n\t\t\t\t\t\t.replace(/(\\([^)]*\\)|^)(\\s*\\*off reg\\. price)(?=$|\\s+select types\\s+)\\b/gi, '$1\\n$2')\r\n\t\t\t\t\t\t .replace(/(\\b|^)(select types\\s*\\*off reg\\. price|selected types and sizes\\s*\\*off reg\\. price|(\\s*)(\\*off reg\\. price))(?=\\s*$|\\S)/gi, (match, p1, p2, p3, p4) => {\r\n\t\t\t\t\t\t \treturn p2 ? p1 + '\\n' + p2 : p4? p3 + '\\n' + p4 : ''\r\n\t\t\t\t\t\t })\r\n\t\t\t\t\t\t.replace(/(\\b|^)select types(?=\\s*$)/gi, '\\n$&')\r\n\t\t .replace(/(\\b|^)selected types and sizes(?=\\s*$)/gi, '\\n$&')\r\n\t\t\t\t\t\t .replace(/&/g, \"&\")\r\n\t\t\t\t\t\t .replace(/(\\b|^)(rest of week?\\s*(&|,)?\\s*)?(after limit)/gi, (match, p1, p2, p3, p4) => {\r\n\t\t\t\t\t\t\treturn (p2 && p4) ? p1 + p2 + p4 : '\\n' + p4;\r\n\t\t\t\t\t\t })\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\r\n\t\t},\r\n\t},\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n margin-top: -1px;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n\tbackground-color: var(--secondary-color);\r\n\t/*margin-top: 75px;*/\r\n\tborder: 1px solid #bbbbbb;\r\n\t/* overflow: auto;*/\r\n\tmax-height: calc(100% - 1em);\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tdisplay: flex;\r\n\tflex-flow: column;\r\n\tmin-width: 300px;\r\n\tmax-width: 370px;\r\n\r\n\r\n\t.header {\r\n\t background-color: var(--secondary-color);\r\n\t color: var(--primary-text-color);\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 1.3em;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 400;\r\n\t }\r\n\r\n\t .close-btn {\r\n\t\tcursor: pointer;\r\n\r\n\t\t&:hover {\r\n\t\t background: none;\r\n\t\t filter: unset;\r\n\t\t}\r\n\t }\r\n\t}\r\n\r\n\t.subtitle {\r\n\t padding-top: 6px;\r\n\t font-size: 12px;\r\n\t}\r\n\r\n\t.content {\r\n\t padding: 8px;\r\n\t background-color: #fff;\r\n\t color: #545454;\r\n\t position: relative;\r\n\t flex: 1 0 auto;\r\n\t overflow: auto;\r\n\t font-size:0.9em;\r\n\t margin: 10px 10px 17px;\r\n\t min-height: 250px;\r\n\t max-height: calc(100% - 4em);\r\n\r\n\t .content-container {\r\n\t\ttext-align: left;\r\n\t\t//width:300px;\r\n\t }\r\n\r\n\t .f-half {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\r\n\t\tflex-direction: column;\r\n\r\n\t\t> div {\r\n\t\t flex-basis: 100%;\r\n\t\t display: flex;\r\n\t\t flex-flow: column;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n.pdpTitle {\r\n font-size:0.9em;\r\n font-weight: bold;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n\r\n h2 {\r\n\tfont-size: 18px;\r\n }\r\n\r\n .productImageContainer {\r\n\tbackground-color: #eee;\r\n\tpadding: 5px 0;\r\n\tmargin-bottom: 10px;\r\n\tborder: 1px solid darkgray;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n }\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tdisplay: flex;\r\n\tmax-height: 200px;\r\n\tmax-width: 120px;\r\n }\r\n\r\n .price {\r\n\tdisplay: flex;\r\n\tcolor: #ee3124;\r\n }\r\n\r\n span.alternatePrice {\r\n\tdisplay: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n\tcolor: #000;\r\n\tfont-size: 13px;\r\n\tfont-weight: normal;\r\n\tmargin-left: 5px;\r\n }\r\n\r\n .savings {\r\n\tcolor: #ee3124 !important;\r\n\tfont-size: 18px;\r\n\tmargin-top: 5px;\r\n }\r\n\r\n .limit {\r\n\tfont-weight: 900;\r\n\tcolor: #000;\r\n\tfont-size: 1.2em;\r\n }\r\n\r\n .detail {\r\n\tmargin-top: 10px;\r\n\tfont-weight: 900;\r\n\r\n\t.detail-content {\r\n\t font-size: 12px;\r\n\t font-weight: normal;\r\n\t white-space: break-spaces;\r\n\t}\r\n }\r\n\r\n .disclaimer-content {\r\n\tfont-size: 9px;\r\n\tfont-weight: normal;\r\n\tmargin-top: 10px;\r\n\tfont-style: italic;\r\n }\r\n\r\n .daysOnly {\r\n\tmargin-top: 10px;\r\n\tfont-size: 1.1em;\r\n\tfont-weight: 900;\r\n }\r\n\r\n & .validity {\r\n\tmargin-top: 10px;\r\n }\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #bbb;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n display: flex;\r\n}\r\n\r\n.shopOptions {\r\n display: flex;\r\n flex: 1;\r\n cursor: pointer;\r\n border-radius: 5px;\r\n margin: 10px 5px;\r\n color: #fff;\r\n padding: 8px;\r\n justify-content: center;\r\n font-weight: normal;\r\n height: 55px;\r\n\r\n &.shopNow {\r\n\tbackground-color: var(--secondary-color);\r\n }\r\n\r\n &.pdpAddToList {\r\n\tbackground-color: var(--tertiary-color);\r\n }\r\n\r\n &.removeFromList {\r\n\tbackground-color: #EE3124;\r\n }\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 308px;\r\n\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t//width: 300px;\r\n\t\t.productImage {\r\n\t\t // max-height: 50%;\r\n\t\t // max-width: 50%;\r\n\t\t max-height: 180px;\r\n\t\t max-width: 85px;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\r\n\th4,\r\n\t.subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle + .subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n .content-container {\r\n\twidth: 308px;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpDefaultV1.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpDefaultV1.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdpDefaultV1.vue?vue&type=template&id=be231214&scoped=true&\"\nimport script from \"./PdpDefaultV1.vue?vue&type=script&lang=js&\"\nexport * from \"./PdpDefaultV1.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdpDefaultV1.vue?vue&type=style&index=0&id=be231214&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"be231214\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdp-default-v2\"},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.content.pdpTitle))]),_c('button',{ref:\"pdpWindow\",staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.closePdp,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closePdp.apply(null, arguments)}}},[_c('img',{attrs:{\"alt\":\"Close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"pdpContainer\"},[_c('div',{staticClass:\"productImageContainer\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.productImage,\"alt\":\"ProductImage\"}})]),_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.pricePrefix && !_vm.memberPrice)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pricePrefix)+\" \")]):_vm._e(),(_vm.priceQty && !_vm.memberPrice && !_vm.isXDaySale)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),(_vm.memberPrice && _vm.memberPricePrefix)?_c('span',[_vm._v(_vm._s(_vm.toTitleCase(_vm.memberPricePrefix))+\" \")]):_vm._e(),(_vm.memberPrice && _vm.memberPriceQty)?_c('span',[_vm._v(_vm._s(_vm.memberPriceQty)+\" /\")]):_vm._e(),(_vm.memberPrice)?_c('span',[_vm._v(_vm._s(_vm.memberPrice))]):_vm._e(),(_vm.memberPrice && _vm.memberPriceUnit)?_c('span',[_vm._v(\" \"+_vm._s(_vm.memberPriceUnit))]):_vm._e(),(_vm.isXDaySale && _vm.rowPriceQty)?_c('span',[_vm._v(_vm._s(_vm.rowPriceQty)+\" / \")]):_vm._e(),(_vm.isXDaySale && _vm.rowPrice)?_c('span',[_vm._v(\" \"+_vm._s(_vm.rowPrice))]):_vm._e(),(_vm.isXDaySale && _vm.rowSave)?_c('span',[_vm._v(\" \"+_vm._s(_vm.rowSave))]):_vm._e(),(_vm.memberPrice && _vm.rowPriceUnit)?_c('span',[_vm._v(_vm._s(_vm.rowPriceUnit))]):_vm._e(),(!_vm.memberPrice && _vm.salePrice && !_vm.isXDaySale)?_c('span',[_vm._v(\" \"+_vm._s(_vm.salePrice))]):_vm._e(),(!_vm.memberPrice && _vm.salePrice && _vm.isXDaySale)?_c('span',[_vm._v(\" \"+_vm._s(_vm.rowPriceUnit))]):_vm._e(),(!_vm.memberPrice && _vm.promoUnit && !_vm.isXDaySale && _vm.salePrice!=='')?_c('span',[_vm._v(\" \"+_vm._s(_vm.promoUnit)+\" \")]):_vm._e(),_c('div',[((_vm.memberPrice||_vm.memberSave) && _vm.memberSavePrefix)?_c('span',[_vm._v(\" \"+_vm._s(_vm.toTitleCase(_vm.memberSavePrefix)))]):_vm._e(),((_vm.memberPrice || _vm.memberSave))?_c('span',[_vm._v(\" \"+_vm._s(_vm.memberSave))]):_vm._e(),((_vm.memberPrice || _vm.memberSave) && _vm.memberSaveSuffix)?_c('span',[_vm._v(\" \"+_vm._s(_vm.toTitleCase(_vm.memberSaveSuffix)))]):_vm._e()]),(_vm.isXDaySale)?_c('div',{staticClass:\"xdaysaledates\",domProps:{\"innerHTML\":_vm._s(_vm.XDaySaleDates)}}):_vm._e(),(_vm.isXDaySale)?_c('div',{staticClass:\"rowSalePrice\"},[(_vm.priceQty)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.pricePrefix)+\" \"+_vm._s(_vm.salePrice)+\" \"+_vm._s(_vm.promoUnit)+\" \")]),(!_vm.salePrice)?_c('span',[_vm._v(_vm._s(_vm.product.savingsEn)+\" \")]):_vm._e(),(_vm.language=='en')?_c('span',[_vm._v(\"REST OF THE WEEK / LE RESTE DE LA SEMAINE\")]):_c('span',[_vm._v(\"LE RESTE DE LA SEMAINE / REST OF THE WEEK\")])]):_vm._e(),(_vm.product.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.product.alternatePrice))]):_vm._e()]),(_vm.product.savingsEn && !_vm.product.salePrice && !_vm.memberSave && !_vm.isXDaySale)?_c('div',{staticClass:\"savings\"},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.product.savingsPrefix)+\" \"+_vm._s(_vm.product.savingsEn)+\" \"+_vm._s(_vm.product.savingsSuffix)+\" \")])]):_vm._e()]),(_vm.memberSave && _vm.savings)?_c('div',{staticClass:\"discountPrice\"},[_vm._v(\" \"+_vm._s(_vm.savingsPrefix)+\" \"),(_vm.savings)?_c('span',[_vm._v(_vm._s(_vm.savings)+\" \")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.savingsSuffix)+\" \")]):_vm._e(),(_vm.language=='en' && _vm.memberPrice)?_c('div',{staticClass:\"discountPrice\"},[_vm._v(\" \"+_vm._s(_vm.product.salePricePrefixEn)+\" \"),(_vm.priceQty)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.salePrice)+\" \")]):_vm._e(),(_vm.language=='fr' && _vm.memberPrice)?_c('div',{staticClass:\"discountPrice\"},[_vm._v(\" \"+_vm._s(_vm.product.salePricePrefixFr)+\" \"),(_vm.priceQty)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.salePrice)+\" \")]):_vm._e(),_c('div',{staticClass:\"discountPrice\"},[_vm._v(\" \"+_vm._s(_vm.loyaltyPrefix)+\" \"+_vm._s(_vm.loyalty)+\" \"+_vm._s(_vm.loyaltySuffix)+\" \")]),(_vm.product.productEn)?_c('div',{staticClass:\"productName\"},[_vm._v(\" \"+_vm._s(_vm.productName)+\" \")]):_vm._e(),_c('div',{staticClass:\"bodyEn\"},[_vm._v(\" \"+_vm._s(_vm.bodyEn)+\" \")]),(_vm.savings && _vm.salePrice!=='')?_c('div',{staticClass:\"rowSave\"},[_vm._v(\" \"+_vm._s(_vm.savingsPrefix)+\" \"+_vm._s(_vm.savings)+\" \"+_vm._s(_vm.savingsSuffix)+\" \")]):_vm._e(),(_vm.limitQty)?_c('div',{staticClass:\"limitQty\"},[_vm._v(\" \"+_vm._s(_vm.limitQty)+\" \")]):_vm._e(),(!_vm.isXDaySale)?_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.pdpValidFrom))])]),_c('div',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(_vm.flyerDate)}})]):_vm._e(),_c('p',{staticClass:\"disclaimer-content\"},[_vm._v(_vm._s(_vm.content.disclaimer))]),_c('div',{staticClass:\"addtoList-container\"},[(_vm.checkProductInSL(_vm.product))?_c('button',{staticClass:\"shopOptions removeFromList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleRemoveFromList(_vm.product)}}},[_vm._v(\" \"+_vm._s(_vm.content.pdpRemoveFromList)+\" \")]):(_vm.listEnabled)?_c('button',{staticClass:\"shopOptions pdpAddToList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleAddToList(_vm.product)}}},[_vm._v(\" \"+_vm._s(_vm.content.pdpAddToList)+\" \")]):_vm._e()]),(_vm.isPharmaProduct && _vm.config.pharmaDisclaimer.enabled)?_c('div',{staticClass:\"pharma-disclaimer-container\"},[(_vm.showBilingualDisclaimer)?_c('div',{staticClass:\"en-pharma-disclaimer-container\"},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.content.pharmaDisclaimer.titleEn)+\" \")]),_c('h3',[_vm._v(\" affiliated to \"),_c('span',{style:({color: _vm.config.pharmaDisclaimer.logoColor})},[_c('img',{attrs:{\"src\":_vm.getLogo,\"alt\":\"logo\"}}),_vm._v(\" \"+_vm._s(_vm.clientName))]),_vm._v(\" are proud to offer you products and advice for your health\")]),_c('strong',[_vm._v(_vm._s(_vm.content.pharmaDisclaimer.impMsgEn))]),_c('p',[_vm._v(\" \"+_vm._s(_vm.content.pharmaDisclaimer.message1En)+\" \"+_vm._s(_vm.clientName)+\" \"+_vm._s(_vm.content.pharmaDisclaimer.message2En))])]):_vm._e(),_c('div',{staticClass:\"fr-pharma-disclaimer-container\"},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.content.pharmaDisclaimer.titleFr)+\" \")]),_c('h3',[_vm._v(\" affiliés à \"),_c('span',{style:({color: _vm.config.pharmaDisclaimer.logoColor})},[_c('img',{attrs:{\"src\":_vm.getLogo,\"alt\":\"logo\"}}),_vm._v(\" \"+_vm._s(_vm.clientName))]),_vm._v(\" vous offrent des produits et des conseils pour votre santé\")]),_c('strong',[_vm._v(_vm._s(_vm.content.pharmaDisclaimer.imgMsgFr))]),_c('p',[_vm._v(\" \"+_vm._s(_vm.content.pharmaDisclaimer.message1Fr)+\" \"+_vm._s(_vm.clientName)+\" \"+_vm._s(_vm.content.pharmaDisclaimer.message2Fr))])])]):_vm._e()])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\r\n <div class=\"pdp-default-v2\">\r\n <h2 class=\"header\">\r\n <span class=\"pdpTitle\">{{ content.pdpTitle }}</span>\r\n <button :aria-label=\"content.pdpClose\" class=\"close-btn\" tabindex=\"0\" ref=\"pdpWindow\" @click=\"closePdp\" @keydown.esc=\"closePdp\">\r\n <img alt=\"Close\" src=\"/images/icon-close-white.svg\"/>\r\n </button>\r\n </h2>\r\n\r\n <div ref=\"toastContent\" class=\"content\">\r\n <div :class=\"`content-container ${flyerOrientation}`\">\r\n <div class=\"pdpContainer\">\r\n <div class=\"productImageContainer\">\r\n <img :src=\"productImage\" class=\"productImage\" alt=\"ProductImage\"/>\r\n </div>\r\n <div class=\"price\" tabindex=\"0\">\r\n <h2>\r\n <span v-if=\"pricePrefix && !memberPrice\"> {{ pricePrefix }} </span>\r\n <span v-if=\"priceQty && !memberPrice && !isXDaySale\">{{ priceQty }} /</span>\r\n\r\n <span v-if=\"memberPrice && memberPricePrefix\">{{toTitleCase(memberPricePrefix)}} </span>\r\n <span v-if=\"memberPrice && memberPriceQty\">{{memberPriceQty}} /</span>\r\n <span v-if=\"memberPrice\">{{memberPrice}}</span>\r\n <span v-if=\"memberPrice && memberPriceUnit\"> {{memberPriceUnit}}</span>\r\n\r\n <span v-if=\"isXDaySale && rowPriceQty\">{{rowPriceQty}} / </span>\r\n <span v-if=\"isXDaySale && rowPrice\"> {{rowPrice}}</span>\r\n <span v-if=\"isXDaySale && rowSave\"> {{rowSave}}</span>\r\n <span v-if=\"memberPrice && rowPriceUnit\">{{rowPriceUnit}}</span>\r\n <span v-if=\"!memberPrice && salePrice && !isXDaySale\"> {{ salePrice }}</span>\r\n <span v-if=\"!memberPrice && salePrice && isXDaySale\"> {{ rowPriceUnit }}</span>\r\n <span v-if=\"!memberPrice && promoUnit && !isXDaySale && salePrice!==''\"> {{ promoUnit }} </span>\r\n <div>\r\n <span v-if=\"(memberPrice||memberSave) && memberSavePrefix\"> {{ toTitleCase(memberSavePrefix) }}</span>\r\n <span v-if=\"(memberPrice || memberSave)\"> {{ memberSave }}</span>\r\n <span v-if=\"(memberPrice || memberSave) && memberSaveSuffix\"> {{ toTitleCase(memberSaveSuffix) }}</span>\r\n </div>\r\n <div v-if=\"isXDaySale\" class=\"xdaysaledates\" v-html=\"XDaySaleDates\"> </div>\r\n\r\n <div class=\"rowSalePrice\" v-if=\"isXDaySale\">\r\n <span v-if=\"priceQty\">{{priceQty}} /</span>\r\n <span>{{pricePrefix}} {{salePrice}} {{promoUnit}} </span>\r\n <span v-if=\"!salePrice\">{{product.savingsEn}} </span>\r\n <span v-if=\"language=='en'\">REST OF THE WEEK / LE RESTE DE LA SEMAINE</span>\r\n <span v-else>LE RESTE DE LA SEMAINE / REST OF THE WEEK</span>\r\n </div>\r\n\r\n <span\r\n v-if=\"product.alternatePrice\"\r\n class=\"alternatePrice\"\r\n >{{ product.alternatePrice }}</span>\r\n </h2>\r\n\r\n <div v-if=\"product.savingsEn && !product.salePrice && !memberSave && !isXDaySale\" class=\"savings\">\r\n <h2>\r\n {{ product.savingsPrefix }}\r\n {{ product.savingsEn }}\r\n {{ product.savingsSuffix }}\r\n </h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"discountPrice\" v-if=\"memberSave && savings\">\r\n {{savingsPrefix}} <span v-if=\"savings\">{{savings}} </span> {{savingsSuffix}}\r\n </div>\r\n\r\n <div class=\"discountPrice\" v-if=\"language=='en' && memberPrice\">\r\n {{product.salePricePrefixEn}} <span v-if=\"priceQty\">{{priceQty}} /</span> {{salePrice}}\r\n </div>\r\n\r\n <div class=\"discountPrice\" v-if=\"language=='fr' && memberPrice\">\r\n {{product.salePricePrefixFr}} <span v-if=\"priceQty\">{{priceQty}} /</span> {{salePrice}}\r\n </div>\r\n\r\n <div class=\"discountPrice\">\r\n {{loyaltyPrefix}} {{loyalty}} {{loyaltySuffix}}\r\n </div>\r\n\r\n <div class=\"productName\" v-if=\"product.productEn\">\r\n {{productName}}\r\n </div>\r\n <div class=\"bodyEn\">\r\n {{bodyEn}}\r\n </div>\r\n\r\n <!-- <div class=\"rowSave\" v-if=\"rowSave\">\r\n {{rowSave}}\r\n </div> -->\r\n\r\n <div class=\"rowSave\" v-if=\"savings && salePrice!==''\">\r\n {{savingsPrefix}} {{savings}} {{savingsSuffix}}\r\n </div>\r\n\r\n <div v-if=\"limitQty\" class=\"limitQty\">\r\n {{limitQty}}\r\n </div>\r\n\r\n <div class=\"validity\" v-if=\"!isXDaySale\">\r\n <span><strong>{{ content.pdpValidFrom }}</strong></span>\r\n <div class=\"date\" v-html=\"flyerDate\"></div>\r\n </div>\r\n\r\n <p class=\"disclaimer-content\">{{ content.disclaimer }}</p>\r\n\r\n <div class=\"addtoList-container\">\r\n <button v-if=\"checkProductInSL(product)\"\r\n class=\"shopOptions removeFromList\"\r\n tabindex=\"0\"\r\n @click=\"handleRemoveFromList(product)\"\r\n >\r\n {{ content.pdpRemoveFromList }}\r\n </button>\r\n\r\n <button v-else-if=\"listEnabled\"\r\n class=\"shopOptions pdpAddToList\"\r\n tabindex=\"0\"\r\n @click=\"handleAddToList(product)\"\r\n >\r\n {{ content.pdpAddToList }}\r\n </button>\r\n\r\n </div>\r\n\r\n <div class=\"pharma-disclaimer-container\" v-if=\"isPharmaProduct && config.pharmaDisclaimer.enabled\">\r\n <div class=\"en-pharma-disclaimer-container\" v-if=\"showBilingualDisclaimer\">\r\n <h2> {{ content.pharmaDisclaimer.titleEn }} </h2>\r\n <h3> affiliated to <span :style=\"{color: config.pharmaDisclaimer.logoColor}\"><img :src=\"getLogo\" alt=\"logo\" /> {{ clientName }}</span> are proud\r\n to offer you products and advice for your health</h3>\r\n <strong>{{ content.pharmaDisclaimer.impMsgEn }}</strong>\r\n <p> {{ content.pharmaDisclaimer.message1En }} {{clientName}} {{content.pharmaDisclaimer.message2En}}</p>\r\n </div>\r\n\r\n <div class=\"fr-pharma-disclaimer-container\">\r\n <h2> {{ content.pharmaDisclaimer.titleFr }} </h2>\r\n <h3> affiliés à <span :style=\"{color: config.pharmaDisclaimer.logoColor}\"><img :src=\"getLogo\" alt=\"logo\" /> {{ clientName }}</span> vous offrent des\r\n produits et des conseils pour votre santé</h3>\r\n <strong>{{ content.pharmaDisclaimer.imgMsgFr }}</strong>\r\n <p> {{ content.pharmaDisclaimer.message1Fr }} {{clientName}} {{content.pharmaDisclaimer.message2Fr}}</p>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</template>\r\n\r\n<script>\r\n\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport router from \"@/router\";\r\nimport pdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\n\r\nexport default {\r\n\r\n mixins: [featureMixin, pdpProductMixin],\r\n\r\n data() {\r\n return {\r\n toastContent: null,\r\n ready: false,\r\n featurePath: 'pdp',\r\n featureEvents: ['productRegionClick']\r\n };\r\n },\r\n mounted() {\r\n this.ready = true;\r\n this.$refs.pdpWindow.focus();\r\n // console.log(this.$refs.pdpPopup);\r\n /*if(this.enabled){\r\n const pdpFocus = this.$refs.pdpPopup;\r\n pdpFocus.focus();\r\n }*/\r\n\r\n },\r\n computed: {\r\n ...mapGetters([\"content\", \"language\",\"dealId\",\"blockData\",\"isJC\"]),\r\n ...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n ...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n ...mapState(\"shoppingList\", [\"shoppingListV2\"]),\r\n ...mapGetters(\"pdp\", {pdpEnabled: \"enabled\"}),\r\n ...mapState(\"pdp\", {showPdp: \"isVisible\"}),\r\n ...mapGetters('shoppingList', {listEnabled: 'enabled'}),\r\n\r\n isPharmaProduct(){\r\n if(this.product?.tags === null) return false;\r\n return this.product?.tags?.some(txt => txt.toLowerCase() === 'pharma')\r\n },\r\n showBilingualDisclaimer(){\r\n return this.currentFlyer.province === 'NB' || this.currentFlyer.province === 'ON';\r\n },\r\n\r\n getLogo(){\r\n return `/icons/favicon/${AppConfig?.AppConf?.title}.ico`\r\n },\r\n clientName(){\r\n return `${AppConfig?.AppConf?.title}`\r\n },\r\n\r\n isSwipeAndSave() {\r\n if (this.product === null) return;\r\n return this.product.tags?.includes('S&S');\r\n },\r\n\r\n isXDaySale() {\r\n if (this.product === null) return;\r\n const date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n //subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day) that are passed as parameters\r\n const startDate = moment(this.product.validFromROW).subtract(1, \"days\")\r\n const endDate = moment(this.product.validToROW).add(1, \"days\")\r\n if ((this.product.validFrom !== this.currentFlyer.startDate) && (this.product.validTo !== this.currentFlyer.endDate) ||\r\n (this.product.validFromROW !== this.currentFlyer.startDate) && (this.product.validToROW !== this.currentFlyer.endDate)) {\r\n return moment(date).isBetween(startDate, endDate); \r\n } else\r\n return false\r\n },\r\n\r\n XDaySaleDates(){\r\n if (this.product === null) return;\r\n let startDate, endDate;\r\n startDate = moment(this.product.validFromROW)\r\n endDate = moment(this.product.validToROW)\r\n\r\n if (this.language === 'en') {\r\n return `${moment.utc(startDate).locale(this.language).format('MMMM D, YYYY')} to ${moment.utc(endDate).locale(this.language).format('MMMM D, YYYY')}`\r\n } else {\r\n return `${startDate.format('D MMM YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} au ${endDate.format('D MMM YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n }\r\n },\r\n\r\n flyerDate() {\r\n if (this.product === null) return;\r\n let startDate, endDate;\r\n /*if (this.isXDaySale) {\r\n startDate = moment(this.product.validFromROW);\r\n endDate = moment(this.product.validToROW)\r\n } else {\r\n if (this.product.validFrom !== null) {*/\r\n startDate = moment(this.product.validFrom)\r\n endDate = moment(this.product.validTo)\r\n /* } else {\r\n startDate = moment(this.product.validFromROW);\r\n endDate = moment(this.product.validToROW)\r\n }\r\n }*/\r\n\r\n if (this.language === 'en') {\r\n return `${moment.utc(startDate).locale(this.language).format('MMMM D, YYYY')} to ${moment.utc(endDate).locale(this.language).format('MMMM D, YYYY')}`\r\n } else {\r\n return `${startDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n }\r\n\r\n },\r\n\r\n\r\n getSalePrice() {\r\n if (this.product === null) return\r\n let price\r\n const date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n //subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day)\r\n const startDate = moment(this.product.validFromROW).subtract(1, \"days\")\r\n const endDate = moment(this.product.validToROW).add(1, \"days\")\r\n if (this.isSwipeAndSave) {\r\n if (this.product?.savingsEn) {\r\n price = this.product.savingsPrefix + ' ' + this.product.savingsEn\r\n return price\r\n } else {\r\n price = this.product.salePrice\r\n }\r\n } else if (this.isXDaySale)\r\n price = this.product?.salePrice\r\n else if (this.product.rowPrice && moment(date).isBetween(startDate, endDate))\r\n price = this.product?.rowPrice;\r\n else\r\n price = this.product?.rowPrice;\r\n\r\n if (price == null)\r\n return ''\r\n\r\n\r\n else {\r\n if (this.product?.savingsEn) {\r\n price = this.product.savingsPrefix + ' ' + this.product.savingsEn\r\n return price\r\n } else {\r\n if (price.trim() !== '') {\r\n // do nothing to test\r\n } else {\r\n price = this.product.salePrice;\r\n\r\n }\r\n\r\n }\r\n }\r\n return this.product?.priceSign?.includes('$') ? `${this.product.priceSign}${(price)} ` : `${price}${this.product.priceSign}`;\r\n },\r\n\r\n getContents() {\r\n return this.product?.contents\r\n },\r\n\r\n columnView() {\r\n return this.flyerOrientation === \"vertical\";\r\n },\r\n\r\n enabled() {\r\n return this.pdpEnabled && this.config.mode === 'internal';\r\n }\r\n\r\n },\r\n\r\n methods: {\r\n ...mapActions([\"setPdpDisplay\", \"setCurrentProduct\"]),\r\n ...mapActions(\"shoppingList\", [\"setAddToList\", \"setRemoveFromList\", \"handleFlyerDate\"]),\r\n ...mapActions(\"pdp\", [\"close\", \"open\"]),\r\n\r\n /*onFeatureEvent(event, data) {\r\n if (this.config.enabled) {\r\n // console.log('PDP Event:', data.product)\r\n if (this.config.mode === 'internal' && data.sku !== 'url' && !data.isVideo) {\r\n this.open(data.product);\r\n }\r\n }\r\n },*/\r\n\r\n closePdp() {\r\n if (this.ready) {\r\n this.close();\r\n }\r\n },\r\n toTitleCase(str) {\r\n return str.replace(/\\w\\S*/g, (txt) => {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n });\r\n },\r\n handleAddToList(product) {\r\n // console.log(\"Handle add to list\", product)\r\n const additionalItemFlag = false;\r\n const version = 'v2'\r\n const isPharma = this.isPharmaProduct || false;\r\n const isXdaySale = this.isXDaySale || false;\r\n const date = this.isXDaySale ? this.XDaySaleDates : this.flyerDate\r\n this.handleFlyerDate(date)\r\n this.setAddToList({product, additionalItemFlag, version, isPharma, isXdaySale});\r\n },\r\n\r\n handleRemoveFromList(product) {\r\n const version = 'v2'\r\n this.setRemoveFromList({product, version});\r\n },\r\n\r\n checkProductInSL(product) {\r\n let item = this.shoppingListV2.filter(function (e) {\r\n return e.sku == product.sku;\r\n });\r\n if (item.length > 0) return true;\r\n else return false;\r\n },\r\n\r\n gotoInstaCart() {\r\n window.open(this.product.url)\r\n }\r\n },\r\n\r\n watch: {\r\n showPdp(val) {\r\n if (val) {\r\n this.$nextTick(() => {\r\n const detailText = document.querySelector('.content .detail-content')\r\n if (detailText) {\r\n detailText.innerHTML = detailText.innerHTML\r\n\r\n .replace(/\\*\\*/g, '<br>**')\r\n .replace(/(^|\\s)\\*(?=\\S)/g, '<br>*')\r\n .replace(/-/g, '‑')\r\n }\r\n })\r\n setTimeout(() => {\r\n this.ready = true;\r\n const pdpFocus = this.$refs.pdpPopup;\r\n pdpFocus.focus();\r\n }, 100);\r\n }\r\n this.ready = false;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n margin-top: -1px;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n background-color: var(--secondary-color);\r\n /*margin-top: 75px;*/\r\n border: 1px solid #bbbbbb;\r\n /* overflow: auto;*/\r\n max-height: calc(100% - 1em);\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n flex-flow: column;\r\n min-width: 300px;\r\n max-width: 370px;\r\n\r\n .header {\r\n background-color: var(--secondary-color);\r\n color: var(--primary-text-color);\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 10px;\r\n\r\n h2 {\r\n font-size: 1.3em;\r\n text-transform: uppercase;\r\n font-weight: 400;\r\n }\r\n\r\n .close-btn {\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: none;\r\n filter: unset;\r\n }\r\n }\r\n }\r\n\r\n .subtitle {\r\n padding-top: 6px;\r\n font-size: 12px;\r\n }\r\n\r\n .content {\r\n padding: 8px;\r\n background-color: #fff;\r\n color: #545454;\r\n position: relative;\r\n flex: 1 0 auto;\r\n overflow-x: hidden;\r\n font-size:0.9em;\r\n margin: 10px 10px 17px;\r\n min-height: 250px;\r\n max-height: calc(100% - 5em);\r\n max-width: 350px;\r\n\r\n .content-container {\r\n text-align: left;\r\n //width:300px;\r\n }\r\n\r\n .f-half {\r\n display: flex;\r\n column-gap: 1em;\r\n\r\n flex-direction: column;\r\n\r\n > div {\r\n flex-basis: 100%;\r\n display: flex;\r\n flex-flow: column;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.pdpTitle {\r\n font-size:0.9em;\r\n font-weight: bold;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n\r\n h2 {\r\n font-size: 18px;\r\n\r\n .xdaysaledates{\r\n font-size: 16px;\r\n text-transform: uppercase;\r\n }\r\n\r\n .rowSalePrice{\r\n margin:10px 0;\r\n font-weight: bold;\r\n color: black;\r\n font-size:15px;\r\n text-transform: uppercase;\r\n }\r\n }\r\n\r\n .productImageContainer {\r\n background-color: #fff;\r\n padding: 5px 0;\r\n margin-bottom: 10px;\r\n border: 1.5px solid lightgrey;\r\n display: flex;\r\n justify-content: center;\r\n }\r\n\r\n .productImage {\r\n // max-height: 60%;\r\n // max-width: 60%;\r\n display: flex;\r\n max-height: 165px;\r\n max-width: 120px;\r\n }\r\n\r\n .price {\r\n display: flex;\r\n color: #ee3124;\r\n }\r\n\r\n span.alternatePrice {\r\n display: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n color: #000;\r\n font-size: 13px;\r\n font-weight: normal;\r\n margin-left: 5px;\r\n }\r\n\r\n .savings {\r\n color: #ee3124 !important;\r\n font-size: 18px;\r\n margin-top: 5px;\r\n }\r\n\r\n .limit {\r\n font-weight: 900;\r\n color: #000;\r\n font-size: 1.2em;\r\n }\r\n\r\n .productName{\r\n font-weight: 900;\r\n margin-top: 10px;\r\n }\r\n\r\n .bodyEn{\r\n white-space: pre-line;\r\n margin-bottom: 10px;\r\n }\r\n\r\n .rowSave{\r\n margin-top: 10px;\r\n font-weight: 900;\r\n text-transform: uppercase;\r\n }\r\n\r\n .limitQty{\r\n margin-bottom: 10px;\r\n font-weight: 900;\r\n }\r\n\r\n .detail {\r\n margin-top: 10px;\r\n font-weight: 900;\r\n\r\n .detail-content {\r\n font-size: 12px;\r\n font-weight: normal;\r\n white-space: break-spaces;\r\n }\r\n }\r\n\r\n .disclaimer-content {\r\n font-size: 9px;\r\n font-weight: normal;\r\n margin-top: 10px;\r\n font-style: italic;\r\n }\r\n\r\n .daysOnly {\r\n margin-top: 10px;\r\n font-size: 1.1em;\r\n font-weight: 900;\r\n }\r\n\r\n .discountPrice{\r\n text-transform: uppercase;\r\n font-weight: bold;\r\n }\r\n\r\n & .validity {\r\n margin-top: 10px;\r\n }\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #bbb;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n display: flex;\r\n}\r\n\r\n.shopOptions {\r\n display: flex;\r\n flex: 1;\r\n cursor: pointer;\r\n border-radius: 5px;\r\n margin: 10px 0;\r\n color: #fff;\r\n padding: 8px;\r\n justify-content: center;\r\n font-weight: normal;\r\n height: 55px;\r\n\r\n &.shopNow {\r\n background-color: var(--secondary-color);\r\n }\r\n\r\n &.pdpAddToList {\r\n background-color: var(--secondary-color);\r\n }\r\n\r\n &.removeFromList {\r\n background-color: #EE3124;\r\n }\r\n}\r\n\r\n.pharma-disclaimer-container{\r\n padding: 5px 5px;\r\n margin-bottom: 10px;\r\n border: 1.5px solid lightgrey;\r\n display: flex;\r\n flex-direction: column;\r\n text-align: center;\r\n overflow-y:auto;\r\n max-height: 250px;\r\n\r\n h2{\r\n color: var(--secondary-color);\r\n font-size:1.5em;\r\n margin-bottom: 5px;\r\n }\r\n h3{\r\n color: var(--secondary-color);\r\n font-size: 1em;\r\n margin-bottom: 5px;\r\n\r\n .logoColor {\r\n color: #EE3124;\r\n }\r\n\r\n img{\r\n width:1.1em;\r\n }\r\n }\r\n p{\r\n font-size:0.9em;\r\n }\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n text-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n .content {\r\n .f-half {\r\n flex-direction: row !important;\r\n }\r\n\r\n .content-container {\r\n width: 308px;\r\n\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n .content {\r\n .content-container {\r\n //width: 300px;\r\n .productImage {\r\n // max-height: 50%;\r\n // max-width: 50%;\r\n max-height: 180px;\r\n max-width: 85px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\r\n h4,\r\n .subtitle {\r\n text-align: left;\r\n width: 100%;\r\n }\r\n\r\n .subtitle + .subtitle {\r\n margin-top: 1em;\r\n }\r\n }\r\n .content-container {\r\n width: 308px;\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdpV2.vue?vue&type=template&id=4ee0951a&scoped=true&\"\nimport script from \"./PdpV2.vue?vue&type=script&lang=js&\"\nexport * from \"./PdpV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdpV2.vue?vue&type=style&index=0&id=4ee0951a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ee0951a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdp-default\"},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.content.pdpTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.closePdp,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closePdp.apply(null, arguments)}}},[_c('img',{attrs:{\"alt\":\"Close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"pdpContainer\"},[[(_vm.product.productFr!==null)?_c('h2',{ref:\"pdpWindow\",attrs:{\"tabindex\":\"0\"}},[_vm._v(_vm._s(_vm.product.productFr))]):_vm._e(),(_vm.product.productEn && _vm.product.productFr)?_c('h2',[_vm._v(\" | \")]):_vm._e(),(_vm.product.productEn !== null)?_c('h2',[_vm._v(\" \"+_vm._s(_vm.product.productEn)+\" \")]):_vm._e()],_c('div',{staticClass:\"productImageContainer\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.product.productImage}})]),_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.priceQty)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),(_vm.pricePrefix)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pricePrefix)+\" \")]):_vm._e(),_c('span',[_vm._v(\" \"+_vm._s(_vm.salePrice))]),(_vm.promoUnit)?_c('span',[_vm._v(\" \"+_vm._s(_vm.promoUnit)+\" \")]):_vm._e(),(_vm.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.alternatePrice))]):_vm._e()])]),(_vm.product.savingsEn)?_c('div',{staticClass:\"savings\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.product.savingsPrefix)+\" \"+_vm._s(_vm.product.savingsEn)+\" \"+_vm._s(_vm.product.savingsSuffix))])]):(_vm.product.savingsFr)?_c('div',{staticClass:\"savings\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.product.savingsPrefixFr)+\" \"+_vm._s(_vm.product.savingsFr)+\" \"+_vm._s(_vm.product.savingsSuffixFr))])]):_vm._e(),_c('div',{staticClass:\"button-container\",class:!_vm.isProductURL ? 'visibility': ''},[(_vm.isProductURL)?_c('a',{staticClass:\"pdp-btn round\",attrs:{\"href\":_vm.productURLLDF,\"target\":\"_blank\"}},[_c('span',[_vm._v(\"Shop Now\")]),_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 122.6 122.88\"},attrs:{\"version\":\"1.1\",\"id\":\"Layer_1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 122.6 122.88\",\"xml:space\":\"preserve\",\"width\":\"15px\",\"height\":\"15px\"}},[_c('g',[_c('path',{attrs:{\"fill\":\"white\",\"d\":\"M110.6,72.58c0-3.19,2.59-5.78,5.78-5.78c3.19,0,5.78,2.59,5.78,5.78v33.19c0,4.71-1.92,8.99-5.02,12.09 c-3.1,3.1-7.38,5.02-12.09,5.02H17.11c-4.71,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t0-8.99-1.92-12.09-5.02c-3.1-3.1-5.02-7.38-5.02-12.09V17.19 C0,12.48,1.92,8.2,5.02,5.1C8.12,2,12.4,0.08,17.11,0.08h32.98c3.19,0,5.78,2.59,5.78,5.78c0,3.19-2.59,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t5.78-5.78,5.78H17.11 c-1.52,0-2.9,0.63-3.91,1.63c-1.01,1.01-1.63,2.39-1.63,3.91v88.58c0,1.52,0.63,2.9,1.63,3.91c1.01,1.01,2.39,1.63,3.91,1.63h87.95 c1.52,0,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t2.9-0.63,3.91-1.63s1.63-2.39,1.63-3.91V72.58L110.6,72.58z M112.42,17.46L54.01,76.6c-2.23,2.27-5.89,2.3-8.16,0.07 c-2.27-2.23-2.3-5.89-0.07-8.16l56.16-56.87H78.56c-3.19,0-5.78-2.59-5.78-5.78c0-3.19,2.59-5.78,5.78-5.78h26.5 c5.12,0,11.72-0.87,15.65,3.1c2.48,2.51,1.93,22.52,1.61,34.11c-0.08,\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t3-0.15,5.29-0.15,6.93c0,3.19-2.59,5.78-5.78,5.78 c-3.19,0-5.78-2.59-5.78-5.78c0-0.31,0.08-3.32,0.19-7.24C110.96,30.94,111.93,22.94,112.42,17.46L112.42,17.46z\"}})])])]):_vm._e()]),_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.content.pdpValidFrom))])]),_c('div',{staticClass:\"date\",domProps:{\"innerHTML\":_vm._s(_vm.flyerDate(_vm.product.validFrom, _vm.product.validTo))}})]),(_vm.product.bodyFr || _vm.product.bodyEn)?_c('div',{staticClass:\"detail\"},[_c('span',[_vm._v(_vm._s(_vm.content.pdpDetails))]),_c('p',{staticClass:\"detail-content\"},[_vm._v(\" \"+_vm._s(_vm.getProductDetail)+\" \")])]):_vm._e(),_c('p',{staticClass:\"disclaimer-content\"},[_vm._v(_vm._s(_vm.content.disclaimer))])],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"pdp-default\">\r\n\t\t<h2 class=\"header\">\r\n\t\t\t<span class=\"pdpTitle\">{{ content.pdpTitle }}</span>\r\n\t\t\t<button :aria-label=\"content.pdpClose\" class=\"close-btn\" tabindex=\"0\" @click=\"closePdp\" @keydown.esc=\"closePdp\">\r\n\t\t\t\t<img alt=\"Close\" src=\"/images/icon-close-white.svg\" />\r\n\t\t\t</button>\r\n\t\t</h2>\r\n\t\t<div ref=\"toastContent\" class=\"content\">\r\n\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t<div class=\"pdpContainer\">\r\n\t\t\t\t\r\n\t\t\t\t\t<template>\r\n\t\t\t\t\t\t<h2 v-if=\"product.productFr!==null\" tabindex=\"0\" ref=\"pdpWindow\">{{ product.productFr }}</h2>\r\n\t\t\t\t\t\t<h2 v-if=\"product.productEn && product.productFr\"> | </h2>\r\n\t\t\t\t\t\t<h2 v-if=\"product.productEn !== null\"> {{ product.productEn }} </h2>\r\n\t\t\t\t\t</template>\r\n\r\n <div class=\"productImageContainer\"><img :src=\"product.productImage\" class=\"productImage\" /></div>\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\t<div class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t<span v-if=\"priceQty\">{{ priceQty }} /</span>\r\n\t\t\t\t\t\t\t<span v-if=\"pricePrefix\"> {{ pricePrefix }} </span>\r\n\t\t\t\t\t\t\t<span> {{ salePrice }}</span>\r\n\t\t\t\t\t\t\t<span v-if=\"promoUnit\"> {{ promoUnit }} </span>\r\n\t\t\t\t\t\t\t<span v-if=\"alternatePrice\" class=\"alternatePrice\">{{ alternatePrice }}</span>\r\n\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-if=\"product.savingsEn\" class=\"savings\">\r\n\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t{{ product.savingsPrefix }}\r\n\t\t\t\t\t\t\t{{ product.savingsEn }}\r\n\t\t\t\t\t\t\t{{ product.savingsSuffix }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div v-else-if=\"product.savingsFr\" class=\"savings\">\r\n\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t{{ product.savingsPrefixFr }}\r\n\t\t\t\t\t\t\t{{ product.savingsFr }}\r\n\t\t\t\t\t\t\t{{ product.savingsSuffixFr }}</span>\r\n\t\t\t\t\t</div>\r\n \r\n\t\t\t\t\t<div class=\"button-container\" :class=\"!isProductURL ? 'visibility': ''\">\r\n\t\t\t\t\t\t\t <a v-if=\"isProductURL\" :href=\"productURLLDF\" class=\"pdp-btn round\" target=\"_blank\">\r\n\t\t\t\t\t\t\t\t<span>Shop Now</span>\r\n\t\t\t\t\t\t\t\t<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 122.6 122.88\" style=\"enable-background:new 0 0 122.6 122.88\" xml:space=\"preserve\" width=\"15px\" height=\"15px\">\r\n\t\t\t\t\t\t\t\t\t<g>\r\n\t\t\t\t\t\t\t\t\t\t<path fill=\"white\" d=\"M110.6,72.58c0-3.19,2.59-5.78,5.78-5.78c3.19,0,5.78,2.59,5.78,5.78v33.19c0,4.71-1.92,8.99-5.02,12.09 c-3.1,3.1-7.38,5.02-12.09,5.02H17.11c-4.71,\r\n\t\t\t\t\t\t\t\t\t\t0-8.99-1.92-12.09-5.02c-3.1-3.1-5.02-7.38-5.02-12.09V17.19 C0,12.48,1.92,8.2,5.02,5.1C8.12,2,12.4,0.08,17.11,0.08h32.98c3.19,0,5.78,2.59,5.78,5.78c0,3.19-2.59,\r\n\t\t\t\t\t\t\t\t\t\t5.78-5.78,5.78H17.11 c-1.52,0-2.9,0.63-3.91,1.63c-1.01,1.01-1.63,2.39-1.63,3.91v88.58c0,1.52,0.63,2.9,1.63,3.91c1.01,1.01,2.39,1.63,3.91,1.63h87.95 c1.52,0,\r\n\t\t\t\t\t\t\t\t\t\t2.9-0.63,3.91-1.63s1.63-2.39,1.63-3.91V72.58L110.6,72.58z M112.42,17.46L54.01,76.6c-2.23,2.27-5.89,2.3-8.16,0.07 c-2.27-2.23-2.3-5.89-0.07-8.16l56.16-56.87H78.56c-3.19,0-5.78-2.59-5.78-5.78c0-3.19,2.59-5.78,5.78-5.78h26.5 c5.12,0,11.72-0.87,15.65,3.1c2.48,2.51,1.93,22.52,1.61,34.11c-0.08,\r\n\t\t\t\t\t\t\t\t\t\t3-0.15,5.29-0.15,6.93c0,3.19-2.59,5.78-5.78,5.78 c-3.19,0-5.78-2.59-5.78-5.78c0-0.31,0.08-3.32,0.19-7.24C110.96,30.94,111.93,22.94,112.42,17.46L112.42,17.46z\"/>\r\n\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t </a>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div class=\"validity\">\r\n\t\t\t\t\t\t<span><strong>{{ content.pdpValidFrom }}</strong></span>\r\n\t\t\t\t\t\t<div class=\"date\" v-html=\"flyerDate(product.validFrom, product.validTo)\"></div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div v-if=\"product.bodyFr || product.bodyEn\" class=\"detail\">\r\n\t\t\t\t\t\t<span>{{ content.pdpDetails }}</span>\r\n\t\t\t\t\t\t<p class=\"detail-content\">\r\n\t\t\t\t\t\t\t{{ getProductDetail}}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<p class=\"disclaimer-content\">{{ content.disclaimer }}</p>\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport ClickOutside from \"vue-click-outside\";\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\nimport PdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\n\r\nexport default {\r\n\tdirectives: {\r\n\t\tClickOutside,\r\n\t},\r\n\tmixins: [featureMixin, PdpProductMixin],\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttoastContent: null,\r\n\t\t\tready: true\r\n\t\t};\r\n\t},\r\n\tmounted() {\r\n /*this.$refs.pdpWindow.focus()*/\r\n\t\t// console.log(this.$refs.pdpPopup);\r\n\t\t/*if(this.enabled){\r\n\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\tpdpFocus.focus();\r\n\t\t\t}*/\r\n\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters([\"content\", \"language\"]),\r\n\t\t...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n\t\t...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n\t\t...mapState(\"shoppingList\", [\"shoppingList\"]),\r\n\t\t...mapGetters(\"pdp\", { pdpEnabled: \"enabled\" }),\r\n\t\t...mapGetters('shoppingList', { listEnabled: 'enabled' }),\r\n\r\n\t\tcolumnView() {\r\n\t\t\treturn this.flyerOrientation === \"vertical\";\r\n\t\t},\r\n\r\n\t\tenabled() {\r\n\t\t\treturn this.pdpEnabled && this.config.mode === 'internal';\r\n\t\t},\r\n\t\tgetProductDetail() {\r\n\t\t\tif (this.isRichelieu) {\r\n\t\t\t\treturn (this.language === 'en') ? this.product.bodyEn : this.product.bodyFr\r\n\t\t\t} else {\r\n\t\t\t\treturn this.product.bodyFr && this.product.bodyEn\r\n\t\t\t\t ? `${this.product.bodyFr} | ${this.product.bodyEn}`\r\n\t\t\t\t\t\t\t\t: this.product.bodyFr || this.product.bodyEn\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\r\n\t\t},\r\n\t\tisRichelieu() {\r\n\t\t\tif (AppConfig.AppConf?.title.toLowerCase().includes(\"richelieu\".toLowerCase())) {\r\n\t\t\t\treturn true\r\n\t\t\t} else return false\r\n\t\t},\r\n\t\tisAdonis() {\r\n\t\t\tif (AppConfig.AppConf?.title.toLowerCase().includes(\"adonis\".toLowerCase())) {\r\n\t\t\t\treturn true\r\n\t\t\t} else return false\r\n\t\t},\r\n\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions([\"setPdpDisplay\", \"setCurrentProduct\"]),\r\n\t\t...mapActions(\"shoppingList\", [\"setAddToList\", \"setRemoveFromList\"]),\r\n\t\t...mapActions(\"pdp\", [\"close\", \"open\"]),\r\n\r\n\t\tclosePdp() {\r\n\t\t\tthis.close();\r\n\t\t},\r\n\t\thandleAddToList(product) {\r\n\t\t\t// console.log(\"Handle add to list\", product)\r\n\t\t\tconst additionalItemFlag = false;\r\n\t\t\tthis.setAddToList({ product, additionalItemFlag });\r\n\t\t},\r\n\r\n\t\thandleRemoveFromList(product) {\r\n\t\t\tthis.setRemoveFromList(product);\r\n\t\t},\r\n\r\n\t\tcheckProductInSL(product) {\r\n\t\t\tlet item = this.shoppingList.filter(function (e) {\r\n\t\t\t\treturn e.sku === product.sku;\r\n\t\t\t});\r\n\t\t\treturn item.length > 0;\r\n\t\t},\r\n\t\tshowPriceFr(price) {\r\n\t\t\tif (!price) return;\r\n\r\n\t\t\treturn (\r\n\t\t\t\tparseFloat(price)\r\n\t\t\t\t\t.toFixed(2)\r\n\t\t\t\t\t.replace(\".\", \",\") + \" $\"\r\n\t\t\t); //adds zeros\r\n\r\n\t\t},\r\n\t\tshowPriceEn(price) {\r\n\t\t\tif (!price) return;\r\n\t\t\t// let enPrice = price.replace(\",\",\".\")\r\n\t\t\telse if (price.includes(\"$\")) {\r\n\t\t\t\tlet priceWith$ = price.replace(\"$\", \"\");\r\n\t\t\t\tif (priceWith$.includes(\",\")) {\r\n\t\t\t\t\tlet enPrice = priceWith$.replaceAll(\",\", \".\");\r\n\t\t\t\t\treturn \"$\" + enPrice;\r\n\t\t\t\t}\r\n\t\t\t\treturn \"$\" + priceWith$;\r\n\t\t\t}\r\n\t\t\treturn \"$\" + price.replace(\",\", \".\");\r\n\t\t},\r\n\t\tflyerDate(validFrom, validTo) {\r\n\t\t\tconst start = validFrom ? moment.utc(validFrom) : moment.utc(this.currentFlyer.startDate);\r\n\t\t\tconst endDate = validFrom ? moment.utc(validTo) : moment.utc(this.currentFlyer.endDate);\r\n\t\t\tif (this.language === \"en\") {\r\n\t\t\t\t\treturn `${start.locale('en').format(\"MMMM D, YYYY\")} to ${endDate.locale('en').format(\"MMMM D, YYYY\")}`;\r\n\t\t\t} else {\r\n\t\t\t\t\treturn `${start.format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>'\r\n\t\t\t\t\t)}`;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\twatch: {\r\n\t\tshowPdp(val) {\r\n\t\t\tif (val) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.ready = true;\r\n\t\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\t\tpdpFocus.focus();\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t\tthis.ready = false;\r\n\t\t},\r\n\t},\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.mobile {\r\n\tdisplay: none !important;\r\n\tflex-flow: column;\r\n\trow-gap: 2em;\r\n\tpadding: 1.5em;\r\n\r\n\t.description {\r\n\t\tdisplay: flex;\r\n\t\tflex-flow: row;\r\n\t\ttext-align: left;\r\n\t\talign-items: flex-end;\r\n\r\n\t\t> :first-child {\r\n\t\t\twidth: calc(55px + 1em);\r\n\t\t}\r\n\r\n\t\t.mobile-content {\r\n\t\t\tflex-basis: 100%;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.modal-wpr {\r\n\tposition: absolute;\r\n\ttop: 0px;\r\n\tright: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tbackground-color: rgba(0, 0, 0, 0.75);\r\n\tz-index: 20;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-start;\r\n\talign-items: flex-end;\r\n\tflex-flow: column;\r\n\r\n\t.modal {\r\n\t\tbackground-color: var(--secondary-color);\r\n\t\t/*margin-top: 75px;*/\r\n\t\tborder: 1px solid #bbbbbb;\r\n\t\t/* overflow: auto;*/\r\n\t\tmax-height: calc(100% - 1em);\r\n\t\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\t\tdisplay: flex;\r\n\t\tflex-flow: column;\r\n\t\tmax-width: calc(100% - 4em);\r\n\r\n\t\t.header {\r\n\t\t\tbackground-color: var(--secondary-color);\r\n\t\t\tcolor: var(--primary-text-color);\r\n\t\t\tdisplay: flex;\r\n\t\t\tjustify-content: space-between;\r\n\t\t\tpadding: 10px;\r\n\r\n\t\t\th2 {\r\n\t\t\t\tfont-size: 18px;\r\n\t\t\t\ttext-transform: uppercase;\r\n\t\t\t\tfont-weight: 400;\r\n\t\t\t}\r\n\r\n\t\t\t.close-btn {\r\n\t\t\t\tcursor: pointer;\r\n\r\n\t\t\t\t&:hover {\r\n\t\t\t\t\tbackground: none;\r\n\t\t\t\t\tfilter: unset;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.subtitle {\r\n\t\t\tpadding-top: 6px;\r\n\t\t\tfont-size: 12px;\r\n\t\t}\r\n\r\n\t\t.content {\r\n\t\t\tpadding: 8px;\r\n\t\t\tbackground-color: #fff;\r\n\t\t\tcolor: #545454;\r\n\t\t\tposition: relative;\r\n\t\t\tflex: 1 0 auto;\r\n\t\t\toverflow: auto;\r\n\t\t\t// margin:0px 10px 10px 10px;\r\n\t\t\tmargin: 10px 10px 17px;\r\n\t\t\tmin-height: 250px;\r\n\t\t\tmax-height: calc(100% - 4em);\r\n\r\n\t\t\t/*.scroll-container{\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:0px;\r\n\t\t\t\t\tbottom:0px;\r\n\t\t\t\t\tleft:0px;\r\n\t\t\t\t\tright:0px;\r\n\t\t\t\t}*/\r\n\t\t\t.content-container {\r\n\t\t\t\ttext-align: left;\r\n\t\t\t\t//width:300px;\r\n\t\t\t}\r\n\r\n\t\t\t.f-half {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tcolumn-gap: 1em;\r\n\r\n\t\t\t\tflex-direction: column;\r\n\r\n\t\t\t\t>div {\r\n\t\t\t\t\tflex-basis: 100%;\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\tflex-flow: column;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.content-container {\r\n\t\t\t\t// width: 350px;\r\n\t\t\t}\r\n\r\n\t\t\t.feature {\r\n\t\t\t\tbackground: #eee;\r\n\t\t\t\tmargin: 12px 0;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tjustify-content: center;\r\n\t\t\t\tflex: 1;\r\n\r\n\t\t\t\t.description {\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\tfont-size: 14px;\r\n\t\t\t\t\tpadding: 15px 0;\r\n\r\n\t\t\t\t\t.button-preview {\r\n\t\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\t\tflex-direction: column;\r\n\t\t\t\t\t\talign-items: center;\r\n\t\t\t\t\t\tpadding: 0 20px;\r\n\r\n\t\t\t\t\t\th4 {\r\n\t\t\t\t\t\t\ttext-transform: uppercase;\r\n\t\t\t\t\t\t\tpadding-top: 16px;\r\n\t\t\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t.subtitle {\r\n\t\t\t\t\t\t\ttext-align: center;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.pdpTitle {\r\n\tfont-size: 18px;\r\n\tfont-weight: bold;\r\n}\r\n\r\n.pdpContainer {\r\n\t//margin-left: 10px;\r\n\tmax-width: calc(100vw - 5em);\r\n// border: 1px solid #D3D3D3;\r\n// padding: 10px;\r\n\r\n\th2 {\r\n\t\tfont-size: 18px;\r\n\t\tline-height: 1.1em;\r\n\t\tdisplay: inline;\r\n\r\n\t}\r\n\r\n .productImageContainer {\r\n\tpadding: 5px 0;\r\n\tmargin-bottom: 10px;\r\n\tborder: 1px solid #D3D3D3;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tmax-height: 200px;\r\n\tmax-width: 90%;\r\n\twidth: auto;\r\n\theight: auto;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tmargin: auto;\r\n }\r\n }\r\n\r\n \r\n\t\t\r\n .language {\r\n\t\ttext-wrap: balance;\r\n\t}\r\n\t\r\n\r\n\t.productImage {\r\n\t\t// max-height: 60%;\r\n\t\t// max-width: 60%;\r\n\t\tmax-height: 200px;\r\n\t\tmax-width: 120px;\r\n\t\twidth: auto;\r\n\t\theight: auto;\r\n\t\ttop: 0;\r\n\t\tbottom: 0;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\t\tmargin: auto;\r\n\t}\r\n\r\n\t.price {\r\n\t\tdisplay: flex;\r\n\t\tcolor: #ee3124;\r\n\t\tfont-weight: 900;\r\n\t}\r\n\r\n\tspan.alternatePrice {\r\n\t\tdisplay: inline-block;\r\n\t}\r\n\r\n\t.alternatePrice {\r\n\t\tcolor: #000;\r\n\t\tfont-size: 13px;\r\n\t\tfont-weight: normal;\r\n\t\tmargin-left: 5px;\r\n\t}\r\n\r\n\t.savings {\r\n\t\ttext-transform: uppercase;\r\n color: #000;\r\n line-height: 16px;\r\n font-size: 17px;\r\n font-weight: 900;\r\n\t}\r\n\r\n\t.detail {\r\n\t\tfont-size: 15px;\r\n\t\tmargin-top: 10px;\r\n\t\tfont-weight: 900;\r\n\r\n\t\t.detail-content {\r\n\t\t\tfont-size: 12px;\r\n\t\t\tfont-weight: normal;\r\n\t\t}\r\n\t}\r\n\r\n\t.disclaimer-content {\r\n\t\tfont-size: 12px;\r\n color: #6d6e71;\r\n\tmargin: 10px 0;\r\n\t\tfont-style: italic;\r\n\t}\r\n\r\n\t& .validity {\r\n\t\tfont-size: 13px;\r\n\t\tmargin-top: 10px;\r\n\t}\r\n\r\n\t.button-container {\r\n\t\tmargin-top: 10px;\r\n\t\r\n\t.pdp-btn.round {\r\n \r\n\tdisplay: inline-flex;\r\n\tposition: relative;\r\n\tbackground-color: #005daa;\r\n\twidth: unset;\r\n\theight: unset;\r\n\tborder-radius: 6px;\r\n\tpadding: 10px 18px;\r\n\tcolor: white;\r\n text-decoration: none;\r\n font-size: 14px;\r\n font-weight: bold;\r\n\toverflow: hidden;\r\n\t span {\r\n\t\tmargin-right: 10px;\r\n\t }\r\n\t&:hover {\r\n\t filter: brightness(90%);\r\n\t}\r\n \r\n * {\r\n\t-webkit-backface-visibility:unset;\r\n }\r\n}\r\n}\r\n.button-container.visibility {\r\n\tdisplay: none !important;\r\n}\r\n}\r\n\r\nbutton {\r\n\tbackground: transparent;\r\n\t// border: 1px solid #ccc;\r\n\ttext-transform: uppercase;\r\n\tfont-weight: 600;\r\n\tcolor: #666;\r\n\tborder-radius: 4px;\r\n\tborder: none;\r\n}\r\n\r\nbutton.button {\r\n\tbackground: #fff;\r\n\tborder: 1px solid #ccc;\r\n\ttext-transform: uppercase;\r\n\tfont-weight: 600;\r\n\tcolor: #666;\r\n\tpadding: 8px 12px;\r\n\tborder-radius: 4px;\r\n\tmargin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n\tbackground: #eee;\r\n\tcolor: #000;\r\n}\r\n\r\n.btn {\r\n\tbackground: #fff;\r\n\tborder: 1px solid #bbb;\r\n\tborder-radius: 4px;\r\n\tpadding: 5px;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\theight: 34px;\r\n\twidth: 34px;\r\n\tcolor: #333;\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tcursor: auto;\r\n\tpointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n\tmargin: 0 10px 0 10px;\r\n}\r\n\r\n.pdpAddToList {\r\n\tdisplay: flex;\r\n\tflex-grow: 0.7;\r\n\tcursor: pointer;\r\n\twidth: 100%;\r\n\tborder-radius: 5px;\r\n\t// margin-top:15px;\r\n\t// margin-bottom:15px;\r\n\t// margin-right: 10px;\r\n\tmargin: 15px 0 10px 0;\r\n\tbackground-color: var(--tertiary-color);\r\n\tcolor: #fff;\r\n\tpadding: 8px;\r\n\tjustify-content: center;\r\n\tmax-width: calc(100vw - 7em);\r\n\tfont-weight: normal;\r\n\r\n\t&.removeFromList {\r\n\t\tbackground-color: #EE3124;\r\n\t}\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n\twidth: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n\t//background: #f1f1f1;\r\n\tdisplay: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n\tbackground: #888;\r\n\tborder-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n\tbackground: #555;\r\n}\r\n\r\n.btn.page {\r\n\twidth: 100%;\r\n\theight: 28px;\r\n\tjustify-content: flex-start;\r\n\tpadding-left: 3%;\r\n\tmargin-bottom: 8px;\r\n\r\n\t&+.subtitle {\r\n\t\ttext-align: left !important;\r\n\t}\r\n}\r\n\r\n.page-num {\r\n\tbackground-color: var(--primary-color);\r\n\tcolor: var(--primary-text-color);\r\n\tborder-radius: 4px;\r\n\tfont-size: 12px;\r\n\tpadding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n\t.description {\r\n\t\tflex-basis: 50%;\r\n\t\tjustify-content: center;\r\n\t}\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n\t.modal-wpr .modal {\r\n\t\t.content {\r\n\t\t\t.f-half {\r\n\t\t\t\tflex-direction: row !important;\r\n\t\t\t}\r\n\r\n\t\t\t.content-container {\r\n\t\t\t\twidth: 300px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n\t.modal-wpr .modal {\r\n\t\t.content {\r\n\t\t\t.content-container {\r\n\t\t\t\t// width: 575px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n\t.modal-wpr .modal {\r\n\t\t.content {\r\n\t\t\t.content-container {\r\n\r\n\t\t\t\t//width: 300px;\r\n\t\t\t\t.productImage {\r\n\t\t\t\t\t// max-height: 50%;\r\n\t\t\t\t\t// max-width: 50%;\r\n\t\t\t\t\tmax-height: 180px;\r\n\t\t\t\t\tmax-width: 85px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n\t.modal-wpr .modal.vertical .content .feature.navigation {\r\n\t\t/*.description {\r\n\t\t\t\tpadding-top: 10px;\r\n\t\t\t\tpadding-left: 100px;\r\n\t\t\t\tpadding-bottom: 70px;\r\n\t\t\t\tposition: relative;\r\n\t\t\t}*/\r\n\r\n\t\t/*.btn.page {\r\n\t\t\t\ttransform: rotate(90deg);\r\n\t\t\t\twidth: 146px;\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\tbottom: 38%;\r\n\t\t\t}*/\r\n\r\n\t\th4,\r\n\t\t.subtitle {\r\n\t\t\ttext-align: left;\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\r\n\t\t.subtitle+.subtitle {\r\n\t\t\tmargin-top: 1em;\r\n\t\t}\r\n\t}\r\n\r\n\t.content-container {\r\n\t\twidth: 300px;\r\n\t}\r\n}\r\n\r\n@media (max-width: 850px) {\r\n\t/*.modal-wpr {\r\n top: 125px;\r\n }*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n\t/*.modal-wpr {\r\n top: 125px;\r\n }*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n\r\n\t/*.modal-wpr {\r\n top: 65px;\r\n }*/\r\n\t.walkthrough {\r\n\t\tdisplay: none;\r\n\t}\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n\t.mobile {\r\n\t\tdisplay: flex !important;\r\n\t}\r\n\r\n\t.desktop {\r\n\t\tdisplay: none !important;\r\n\t}\r\n\r\n\t.modal-wpr .modal {\r\n\t\t/* margin-top: 140px;\r\n\t\t\twidth: 90% !important;*/\r\n\t\twidth: 338px;\r\n\r\n\t\t.content {\r\n\t\t\t.f-half {\r\n\t\t\t\t/*flex-direction: row !important;*/\r\n\t\t\t}\r\n\r\n\t\t\t.content-container {\r\n\t\t\t\t// width: 400px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.header {\r\n\t\t\tpadding-bottom: 4px;\r\n\r\n\t\t\th2 {\r\n\t\t\t\tfont-size: 14px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.heading {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.modal-wpr .modal .content .feature {\r\n\t\tdisplay: block;\r\n\t\tbackground: none;\r\n\t\tpadding: 0 6%;\r\n\r\n\t\t.description {\r\n\t\t\tpadding: 0;\r\n\t\t\tmargin-bottom: 20px;\r\n\t\t\theight: 50px;\r\n\t\t}\r\n\r\n\t\t.button-preview {\r\n\t\t\tdisplay: block;\r\n\t\t\tposition: relative;\r\n\t\t\tpadding-left: 60px;\r\n\t\t\twidth: 100%;\r\n\r\n\t\t\th4 {\r\n\t\t\t\tpadding: 0;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t\ttext-align: left;\r\n\t\t\t}\r\n\r\n\t\t\t.btn {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tleft: 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.subtitle.mobile {\r\n\t\ttext-align: center;\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDPV3.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDPV3.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PDPV3.vue?vue&type=template&id=6eefdc86&scoped=true&\"\nimport script from \"./PDPV3.vue?vue&type=script&lang=js&\"\nexport * from \"./PDPV3.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PDPV3.vue?vue&type=style&index=0&id=6eefdc86&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6eefdc86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"raddar-pdp-old\"},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.content.pdpTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.content.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.closePdp,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closePdp.apply(null, arguments)}}},[_c('img',{attrs:{\"src\":\"/images/icon-close-white.svg\",\"alt\":\"Close\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"handle-border\"},[_c('div',{staticClass:\"pdpContainer\"},[_c('div',{staticClass:\"productImageContainer\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.product.productImage}})]),(_vm.product.savingsEn)?_c('div',{staticClass:\"savings\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.product.savingsPrefix)+\" \"+_vm._s(_vm.product.savingsEn)+\" \"+_vm._s(_vm.product.savingsSuffix))])]):_vm._e(),(_vm.language == 'en')?_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.product.priceQuantity)?_c('span',[_vm._v(_vm._s(_vm.product.priceQuantity)+\"/ \")]):_vm._e(),(_vm.product.salePricePrefixEn)?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.salePricePrefixEn)+\" \")]):_vm._e(),(_vm.product.salePrice == null ||\n\t\t\t\t\t\t\t\t_vm.product.salePrice === '' ||\n\t\t\t\t\t\t\t\t_vm.product.salePrice === '$NaN' ||\n\t\t\t\t\t\t\t\t_vm.product.salePrice === 'NaN$'\n\t\t\t\t\t\t\t\t)?_c('span'):(_vm.product.salePrice === '3.99 à 7.99')?_c('span',[_vm._v(\" $3.99 à $7.99\")]):(isNaN(_vm.product.salePrice))?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.salePrice)+\" \")]):(_vm.product.salePrice.includes('à '))?_c('span',[_vm._v(\" $\"+_vm._s(_vm.product.salePrice)+\" \")]):_c('span',[_vm._v(\" $\"+_vm._s(parseFloat(_vm.product.salePrice).toFixed(2)))]),(_vm.product.promoUnitEn)?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.promoUnitEn)+\" \")]):_vm._e(),(_vm.product.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.product.alternatePrice))]):_vm._e()])]):_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.product.priceQuantity)?_c('span',[_vm._v(_vm._s(_vm.product.priceQuantity)+\"/ \")]):_vm._e(),(_vm.product.salePricePrefixFr)?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.salePricePrefixFr)+\" \")]):_vm._e(),(_vm.product.salePrice == null ||\n\t\t\t\t\t\t\t\t_vm.product.salePrice === '' ||\n\t\t\t\t\t\t\t\t_vm.product.salePrice === '$NaN' ||\n\t\t\t\t\t\t\t\t_vm.product.salePrice === 'NaN$'\n\t\t\t\t\t\t\t\t)?_c('span'):(_vm.product.salePrice === '3.99 à 7.99')?_c('span',[_vm._v(\" 3,99$ à 7,99$\")]):(isNaN(_vm.product.salePriceFr))?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.salePriceFr)+\" \")]):(_vm.product.salePrice.includes('à '))?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.salePrice.replaceAll(\".\", \",\"))+\"$\")]):_c('span',[_vm._v(\" \"+_vm._s(parseFloat(_vm.product.salePrice) .toFixed(2) .replace(\".\", \",\"))+\"$\")]),(_vm.product.promoUnitFr)?_c('span',[_vm._v(\" \"+_vm._s(_vm.product.promoUnitFr)+\" \")]):_vm._e(),(_vm.product.alternatePriceFr)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.product.alternatePriceFr))]):_vm._e()])]),(_vm.product.contents || _vm.product.bodyFr || _vm.product.bodyEn ||\n\t\t\t\t\t _vm.product.productFr || _vm.product.productEn)?_c('div',{staticClass:\"detail\"},[_c('div',{staticClass:\"detail-header\"},[(_vm.language == 'en' && _vm.product.productEn !== null)?_c('h2',{attrs:{\"tabindex\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.product.productEn)+\" \")]):(_vm.language == 'fr' && _vm.product.productFr !== null)?_c('h2',{attrs:{\"tabindex\":\"0\"}},[_vm._v(_vm._s(_vm.product.productFr))]):_vm._e()]),(_vm.language == 'en')?_c('p',{staticClass:\"detail-content\",attrs:{\"tabindex\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.getContents || _vm.product.bodyEn || _vm.product.bodyFr)+\" \")]):_vm._e(),(_vm.language == 'fr')?_c('p',{staticClass:\"detail-content\",attrs:{\"tabindex\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.getContents || _vm.product.bodyFr || _vm.product.bodyEn)+\" \")]):_vm._e(),(_vm.product.sku)?_c('span',{staticClass:\"product-sku\"},[_vm._v(\"#\"+_vm._s(_vm.product.sku))]):_vm._e()]):_vm._e()]),_c('div',{staticClass:\"addtoList-container\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: \"Add to Shopping List\", placement: 'bottom'}),expression:\"{content: `Add to Shopping List`, placement: 'bottom'}\"}],staticClass:\"pdpAddToList\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handleAddToList(_vm.product)}}},[_c('img',{attrs:{\"src\":\"/icons/add-to-shopping-list.svg\"}})]),(_vm.product.url !== null)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: \"Go To Website\", placement:'bottom'}),expression:\"{content: `Go To Website`, placement:'bottom'}\"}],staticClass:\"goToWebsite\",attrs:{\"href\":_vm.goToWebsite,\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":\"/icons/globe-icon.svg\"}})]):_vm._e()])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"raddar-pdp-old\">\r\n\t\t<h2 class=\"header\">\r\n\t\t\t<span class=\"pdpTitle\">{{ content.pdpTitle }}</span>\r\n\t\t\t<button :aria-label=\"content.pdpClose\" class=\"close-btn\" tabindex=\"0\" @click=\"closePdp\"\r\n\t\t\t @keydown.esc=\"closePdp\">\r\n\t\t\t\t<img src=\"/images/icon-close-white.svg\" alt=\"Close\" />\r\n\t\t\t</button>\r\n\t\t</h2>\r\n\r\n\t\t<div ref=\"toastContent\" class=\"content\">\r\n\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t<div class=\"handle-border\">\r\n\t\t\t\t\t<div class=\"pdpContainer\">\r\n\r\n\t\t\t\t\t\t<!-- <template>\r\n\t\t\t\t\t\t\t\t <h2 v-if=\"currentProduct.productFr !== null\" tabindex=\"0\">{{ currentProduct.productFr }}</h2>\r\n\t\t\t\t\t\t\t\t <h2 v-if=\"currentProduct.productEn && currentProduct.productFr\"> | </h2>\r\n\t\t\t\t\t\t\t\t <h2 v-if=\"currentProduct.productEn !== null\"> {{ currentProduct.productEn }} </h2>\r\n\t\t\t\t\t\t\t\t</template> -->\r\n\t\t\t\t\t\t<div class=\"productImageContainer\">\r\n\t\t\t\t\t\t\t<img :src=\"product.productImage\" class=\"productImage\" />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"savings\" v-if=\"product.savingsEn\">\r\n\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t{{ product.savingsPrefix }}\r\n\t\t\t\t\t\t\t\t{{ product.savingsEn }}\r\n\t\t\t\t\t\t\t\t{{ product.savingsSuffix }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-if=\"language == 'en'\" class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.priceQuantity\">{{ product.priceQuantity }}/\r\n\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.salePricePrefixEn\"> {{ product.salePricePrefixEn }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<!-- <span> ${{ parseFloat(currentProduct.salePrice).toFixed(2) }}</span> -->\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.salePrice == null ||\r\n\t\t\t\t\t\t\t\t\tproduct.salePrice === '' ||\r\n\t\t\t\t\t\t\t\t\tproduct.salePrice === '$NaN' ||\r\n\t\t\t\t\t\t\t\t\tproduct.salePrice === 'NaN$'\r\n\t\t\t\t\t\t\t\t\t\"></span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"product.salePrice === '3.99 à 7.99'\">\r\n\t\t\t\t\t\t\t\t\t$3.99 à $7.99</span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"isNaN(product.salePrice)\">\r\n\t\t\t\t\t\t\t\t\t{{ product.salePrice }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"product.salePrice.includes('à ')\">\r\n\t\t\t\t\t\t\t\t\t${{ product.salePrice }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t<span v-else>\r\n\t\t\t\t\t\t\t\t\t${{ parseFloat(product.salePrice).toFixed(2) }}</span>\r\n\t\t\t\t\t\t\t\t<!-- <span v-else> ${{currentProduct.salePrice}}</span> -->\r\n\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.promoUnitEn\">\r\n\t\t\t\t\t\t\t\t\t{{ product.promoUnitEn }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.alternatePrice\" class=\"alternatePrice\">{{\r\n\t\t\t\t\t\t\t\t\t\tproduct.alternatePrice\r\n\t\t\t\t\t\t\t\t\t}}</span>\r\n\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div v-else class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.priceQuantity\">{{ product.priceQuantity }}/\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<!-- <span v-html=\"showPriceFr(currentProduct.salePrice)\"> $ </span> -->\r\n\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.salePricePrefixFr\"> {{ product.salePricePrefixFr }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.salePrice == null ||\r\n\t\t\t\t\t\t\t\t\tproduct.salePrice === '' ||\r\n\t\t\t\t\t\t\t\t\tproduct.salePrice === '$NaN' ||\r\n\t\t\t\t\t\t\t\t\tproduct.salePrice === 'NaN$'\r\n\t\t\t\t\t\t\t\t\t\"></span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"product.salePrice === '3.99 à 7.99'\">\r\n\t\t\t\t\t\t\t\t\t3,99$ à 7,99$</span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"isNaN(product.salePriceFr)\">\r\n\t\t\t\t\t\t\t\t\t{{ product.salePriceFr }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<span v-else-if=\"product.salePrice.includes('à ')\">\r\n\t\t\t\t\t\t\t\t\t{{ product.salePrice.replaceAll(\".\", \",\") }}$</span>\r\n\t\t\t\t\t\t\t\t<span v-else>\r\n\t\t\t\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t\t\t\tparseFloat(product.salePrice)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.toFixed(2)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.replace(\".\", \",\")\r\n\t\t\t\t\t\t\t\t\t}}$</span>\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.promoUnitFr\">\r\n\t\t\t\t\t\t\t\t\t{{ product.promoUnitFr }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<span v-if=\"product.alternatePriceFr\" class=\"alternatePrice\">{{\r\n\t\t\t\t\t\t\t\t\t\tproduct.alternatePriceFr\r\n\t\t\t\t\t\t\t\t\t}}</span>\r\n\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t</div>\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t\t<div v-if=\"product.contents || product.bodyFr || product.bodyEn ||\r\n\t\t\t\t\t\t product.productFr || product.productEn\"\r\n\t\t\t\t\t\t class=\"detail\">\r\n\t\t\t\t\t\t\t<div class=\"detail-header\">\r\n\t\t\t\t\t\t\t\t<h2 v-if=\"language == 'en' && product.productEn !== null\" tabindex=\"0\"> {{ product.productEn }} </h2>\r\n\t\t\t\t\t\t\t\t<!-- <h2 v-if=\"currentProduct.productEn && currentProduct.productFr\"> | </h2> -->\r\n\t\t\t\t\t\t\t\t<h2 v-else-if=\"language == 'fr' && product.productFr !== null\" tabindex=\"0\">{{ product.productFr }}</h2>\r\n\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<!-- <span>{{ content.pdpDetails }}</span> -->\r\n\t\t\t\t\t\t\t<p v-if=\"language == 'en'\" class=\"detail-content\" tabindex=\"0\">\r\n\t\t\t\t\t\t\t\t{{ getContents || product.bodyEn || product.bodyFr }}\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t<p v-if=\"language == 'fr'\" class=\"detail-content\" tabindex=\"0\">\r\n\t\t\t\t\t\t\t\t{{ getContents || product.bodyFr || product.bodyEn }}\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t<span v-if=\"product.sku\" class=\"product-sku\">#{{ product.sku }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<!-- <div class=\"validity\">\r\n\t\t\t\t\t\t\t<span><strong>{{ content.pdpValidFrom }}</strong></span>\r\n\t\t\t\t\t\t\t<div class=\"date\" v-html=\"flyerDate(currentProduct.validFrom, currentProduct.validTo)\"></div>\r\n\t\t\t\t\t\t</div> -->\r\n\t\t\t\t\t\t<!-- <p class=\"disclaimer-content\">{{ content.disclaimer }}</p> -->\r\n\r\n\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"addtoList-container\">\r\n\t\t\t\t\t\t<!-- <button v-if=\"checkProductInSL(currentProduct)\" class=\"pdpAddToList removeFromList\" tabindex=\"0\"\r\n\t\t\t\t\t\t@click=\"handleRemoveFromList(currentProduct)\">\r\n\t\t\t\t\t\t<span> {{ content.pdpRemoveFromList }} </span>\r\n\t\t\t\t\t</button> -->\r\n\r\n\t\t\t\t\t\t<button class=\"pdpAddToList\" tabindex=\"0\" v-tooltip=\"{content: `Add to Shopping List`, placement: 'bottom'}\"\r\n\t\t\t\t\t\t @click=handleAddToList(product)>\r\n\t\t\t\t\t\t\t<img src=\"/icons/add-to-shopping-list.svg\">\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t<!-- <button class=\"shareDeal\" tabindex=\"0\" v-tooltip=\"{content: `Share This Deal`, placement: 'bottom'}\"\r\n\t\t\t\t\t\t\t\t\t@click=handleShareDeal(currentProduct)>\r\n\t\t\t\t\t\t<img src=\"/icons/share-icon.svg\" >\r\n\t\t\t\t\t</button> -->\r\n\t\t\t\t\t\t<!-- <button class=\"goToWebsite\" tabindex=\"0\" v-tooltip=\"{content: `Go To Website`, placement:'bottom'}\"\r\n\t\t\t\t\t\t\t\t\t@click=handleWebsiteLink(currentProduct)>\r\n\t\t\t\t\t\t<img src=\"/icons/globe-icon.svg\">\r\n\t\t\t\t\t</button> -->\r\n\t\t\t\t\t\t<a v-if=\"product.url !== null\" :href=\"goToWebsite\" class=\"goToWebsite\" v-tooltip=\"{content: `Go To Website`, placement:'bottom'}\" target=\"_blank\">\r\n\t\t\t\t\t\t\t<img src=\"/icons/globe-icon.svg\">\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport ClickOutside from \"vue-click-outside\";\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport moment from \"moment\";\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\nimport pdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\n\r\nexport default {\r\n\tname:\"RaddarPDPOld\",\r\n\tdirectives: {\r\n\t\tClickOutside,\r\n\t},\r\n\tmixins: [featureMixin, pdpProductMixin],\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttoastContent: null,\r\n\t\t\tready: false,\r\n\t\t\tfeaturePath: 'pdp',\r\n\t\t\tfeatureEvents: ['productRegionClick']\r\n\t\t};\r\n\t},\r\n\tmounted() {\r\n\t\t// console.log(this.$refs.pdpPopup);\r\n\t\t/*if(this.enabled){\r\n\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\tpdpFocus.focus();\r\n\t\t\t}*/\r\n\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters([\"content\", \"language\"]),\r\n\t\t...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n\t\t...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n\t\t...mapState(\"shoppingList\", [\"shoppingList\"]),\r\n\t\t...mapGetters(\"pdp\", { pdpEnabled: \"enabled\" }),\r\n\t\t...mapState(\"pdp\", { showPdp: \"isVisible\" }),\r\n\t\t...mapGetters('shoppingList', { listEnabled: 'enabled' }),\r\n\t\tgetContents() {\r\n\t\t\treturn this.product?.contents\r\n\t\t},\r\n\t\tcolumnView() {\r\n\t\t\treturn this.flyerOrientation === \"vertical\";\r\n\t\t},\r\n\r\n\t\tenabled() {\r\n\t\t\treturn this.pdpEnabled && this.config.mode === 'internal';\r\n\t\t},\r\n\t\tisAdonis() {\r\n\t\t\tif (AppConfig.AppConf?.title.toLowerCase().includes(\"adonis\".toLowerCase())) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\telse return false\r\n\t\t},\r\n\t\tgoToWebsite() {\r\n\t\t\tlet url = this.product.url\r\n\t\t\tif (!url.startsWith(\"https://\") && !url.startsWith(\"https://\")) {\r\n\t\t\t\turl = \"https://\" + url;\r\n\t\t\t}\r\n\t\t\treturn url\r\n\t\t},\r\n\r\n\t},\r\n\r\n\tmethods: {\r\n\t\t...mapActions([\"setPdpDisplay\", \"setCurrentProduct\"]),\r\n\t\t...mapActions(\"shoppingList\", [\"setAddToList\", \"setRemoveFromList\"]),\r\n\t\t...mapActions(\"pdp\", [\"close\", \"open\"]),\r\n\r\n\t\tonFeatureEvent(event, data) {\r\n\t\t\tif (this.config.enabled) {\r\n\t\t\t\t// console.log('PDP Event:', data.product)\r\n\t\t\t\tif (this.config.mode === 'internal' && data.actionType !== 'url' && data.sku !== 'url' && !data.isVideo) {\r\n\t\t\t\t\tthis.open(data.product);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tclosePdp() {\r\n\t\t\tif (this.ready) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t},\r\n\t\thandleAddToList(product) {\r\n\t\t\t// console.log(\"Handle add to list\", product)\r\n\r\n\t\t\tconst additionalItemFlag = false;\r\n\t\t\tconst messageData = {\r\n\t\t\t\ttype: 'ADD_TO_SHOPPING_LIST',\r\n\t\t\t\tproduct: JSON.stringify(product),\r\n\t\t\t\tadditionalItemFlag: additionalItemFlag,\r\n\t\t\t}\r\n\t\t\twindow.parent.postMessage(window.JSON.stringify(messageData),'*')\r\n\t\t\tthis.setAddToList({ product, additionalItemFlag });\r\n\t\t},\r\n\r\n\t\thandleRemoveFromList(product) {\r\n\t\t\tthis.setRemoveFromList(product);\r\n\t\t},\r\n\r\n\t\thandleShareDeal(product) {\r\n\t\t\tconst dealData = {\r\n\t\t\t\ttype: 'SHARE_DEAL',\r\n\t\t\t\tproduct: JSON.stringify(product),\r\n\t\t\t}\r\n\t\t\twindow.parent.postMessage(window.JSON.stringify(dealData),'*')\r\n\t\t},\r\n\t\thandleWebsiteLink(product) {\r\n\t\t\tconst linkData = {\r\n\t\t\t\ttype: 'OPEN_BANNER_WEBSITE',\r\n\t\t\t\tproduct: JSON.stringify(product),\r\n\t\t\t}\r\n\t\t\twindow.parent.postMessage(window.JSON.stringify(linkData),'*')\r\n\t\t\tconst urlSegments = window.location.pathname.split('/')[1];\r\n\t\t\tif (urlSegments === `bdcc09c8-2e5c-45d5-89e9-76a67f19c26c`) {\r\n\t\t\t\twindow.location.href = `https://www1.shoppersdrugmart.ca/en/flyer`;\r\n\t\t\t}\r\n\r\n\t\t},\r\n\t\tcheckProductInSL(product) {\r\n\t\t\tlet item = this.shoppingList.filter(function (e) {\r\n\t\t\t\treturn e.sku == product.sku;\r\n\t\t\t});\r\n\t\t\tif (item.length > 0) return true;\r\n\t\t\telse return false;\r\n\t\t},\r\n\t\tshowPriceFr(price) {\r\n\t\t\tif (!price) return;\r\n\r\n\t\t\treturn (\r\n\t\t\t\tparseFloat(price)\r\n\t\t\t\t\t.toFixed(2)\r\n\t\t\t\t\t.replace(\".\", \",\") + \" $\"\r\n\t\t\t); //adds zeros\r\n\t\t\t// return(frPrice+\" $\")\r\n\t\t\t// console.log('price is' + (price.toFixed(2)))\r\n\t\t\t// return((price).replace(\".\",\",\")+\" $\")\r\n\t\t},\r\n\t\tshowPriceEn(price) {\r\n\t\t\tif (!price) return;\r\n\t\t\t// let enPrice = price.replace(\",\",\".\")\r\n\t\t\telse if (price.includes(\"$\")) {\r\n\t\t\t\tlet priceWith$ = price.replace(\"$\", \"\");\r\n\t\t\t\tif (priceWith$.includes(\",\")) {\r\n\t\t\t\t\tlet enPrice = priceWith$.replaceAll(\",\", \".\");\r\n\t\t\t\t\treturn \"$\" + enPrice;\r\n\t\t\t\t}\r\n\t\t\t\treturn \"$\" + priceWith$;\r\n\t\t\t}\r\n\t\t\treturn \"$\" + price.replace(\",\", \".\");\r\n\t\t},\r\n\t\tflyerDate(validFrom, validTo) {\r\n\t\t\tconst start = validFrom ? moment.utc(validFrom) : moment.utc(this.currentFlyer.startDate);\r\n\t\t\tconst endDate = validFrom ? moment.utc(validTo) : moment.utc(this.currentFlyer.endDate);\r\n\t\t\tif (this.language === \"en\") {\r\n\t\t\t\tif (this.product.sku === \"10024392\") {\r\n\t\t\t\t\t// console.log(\"roses\");\r\n\t\t\t\t\treturn `${moment(\"2022-02-12\").format(\"MMMM D, YYYY\")} <span style=\"color: #000\">to</span> ${moment(\"2022-02-14\").format(\"MMMM D,YYYY\")}`;\r\n\t\t\t\t} else\r\n\t\t\t\t\treturn `${start.locale('en').format(\"MMMM D, YYYY\")} <span style=\"color: #000\">to</span> ${endDate.locale('en').format(\"MMMM D, YYYY\")}`;\r\n\t\t\t} else {\r\n\t\t\t\tif (this.product.sku === \"10024392\")\r\n\t\t\t\t\treturn `${moment(\"2022-02-12\").format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} <span style=\"color: #000\">jusqu'au</span> ${moment(\"2022-02-14\").format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n\t\t\t\telse\r\n\t\t\t\t\treturn `${start.format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} <span style=\"color: #000\">jusqu'au</span> ${endDate.format(\"D MMMM, YYYY\").replace(\"1er\", '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>'\r\n\t\t\t\t\t)}`;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\twatch: {\r\n\t\tshowPdp(val) {\r\n\t\t\tif (val) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.ready = true;\r\n\t\t\t\t\tconst pdpFocus = this.$refs.pdpPopup;\r\n\t\t\t\t\tpdpFocus.focus();\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t\tthis.ready = false;\r\n\t\t},\r\n\t},\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n\r\n .description {\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\ttext-align: left;\r\n\talign-items: flex-end;\r\n\r\n\t> :first-child {\r\n\t width: calc(55px + 1em);\r\n\t}\r\n\r\n\t.mobile-content {\r\n\t flex-basis: 100%;\r\n\t}\r\n }\r\n}\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n top: 0px;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n\t//background-color: var(--secondary-color);\r\n\tbackground-color: #fff;\r\n\t/*margin-top: 75px;*/\r\n\tborder: 1px solid #bbbbbb;\r\n\t/* overflow: auto;*/\r\n\tmax-height: calc(100% - 1em);\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tdisplay: flex;\r\n\tmax-width: calc(100% - 4em);\r\n\r\n\t.header {\r\n\t background-color: #261342;\r\n\t color: var(--primary-text-color);\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 18px;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 400;\r\n\t }\r\n\r\n\t .close-btn {\r\n\t\tcursor: pointer;\r\n\r\n\t\t&:hover {\r\n\t\t background: none;\r\n\t\t filter: unset;\r\n\t\t}\r\n\t }\r\n\t}\r\n\r\n\t.subtitle {\r\n\t padding-top: 6px;\r\n\t font-size: 12px;\r\n\t}\r\n\r\n\t.content {\r\n\t padding: 8px;\r\n\t background-color: #fff;\r\n\t color: #545454;\r\n\t position: relative;\r\n\t flex: 1 0 auto;\r\n\t // overflow: auto;\r\n\t // margin:0px 10px 10px 10px;\r\n\t margin: 10px 10px 17px;\r\n\t min-height: 250px;\r\n\t max-height: calc(100% - 4em);\r\n\r\n\r\n\t /*.scroll-container{\r\n\t\tposition: absolute;\r\n\t\ttop:0px;\r\n\t\tbottom:0px;\r\n\t\tleft:0px;\r\n\t\tright:0px;\r\n\t}*/\r\n\t .content-container {\r\n\t\ttext-align: left;\r\n\t\t//width:300px;\r\n\t }\r\n\r\n\t .f-half {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\r\n\t\tflex-direction: column;\r\n\r\n\t\t>div {\r\n\t\t flex-basis: 100%;\r\n\t\t display: flex;\r\n\t\t flex-flow: column;\r\n\t\t}\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 350px;\r\n\t }\r\n\r\n\t .feature {\r\n\t\tbackground: #eee;\r\n\t\tmargin: 12px 0;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\tflex: 1;\r\n\r\n\t\t.description {\r\n\t\t display: flex;\r\n\t\t font-size: 14px;\r\n\t\t padding: 15px 0;\r\n\r\n\t\t .button-preview {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\talign-items: center;\r\n\t\t\tpadding: 0 20px;\r\n\r\n\t\t\th4 {\r\n\t\t\t text-transform: uppercase;\r\n\t\t\t padding-top: 16px;\r\n\t\t\t white-space: nowrap;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t text-align: center;\r\n\t\t\t}\r\n\t\t }\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n.pdpTitle {\r\n font-size: 18px;\r\n font-weight: bold;\r\n margin-top: 6px;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n border: 1px solid #D3D3D3;\r\n padding: 10px;\r\n\r\n h2 {\r\n\tfont-size: 18px;\r\n\tline-height: 1.1em;\r\n\r\n\tspan {\r\n\t font-size: 24px;\r\n\t margin-top: 6px;\r\n\r\n\t}\r\n }\r\n\r\n .productImageContainer {\r\n\tpadding: 5px 0;\r\n\tmargin-bottom: 10px;\r\n\tborder: 1px solid #D3D3D3;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n }\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tmax-height: 200px;\r\n\tmax-width: 90%;\r\n\twidth: auto;\r\n\theight: auto;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tmargin: auto;\r\n }\r\n\r\n .price {\r\n\tdisplay: flex;\r\n\t//color: #ee3124;\r\n\tcolor: #E95B5B;\r\n\tfont-weight: 900;\r\n }\r\n\r\n span.alternatePrice {\r\n\tdisplay: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n\tcolor: #000;\r\n\tfont-size: 13px;\r\n\tfont-weight: normal;\r\n\tmargin-left: 5px;\r\n }\r\n\r\n .savings {\r\n\ttext-transform: uppercase;\r\n\tcolor: #000;\r\n\tfont-size: 17px;\r\n\tfont-weight: 900;\r\n\r\n\tspan {\r\n\t display: block;\r\n\t margin-bottom: 7px;\r\n\t}\r\n }\r\n\r\n .detail {\r\n\tfont-size: 15px;\r\n\tmargin-top: 10px;\r\n\tfont-weight: 900;\r\n\r\n\t.detail-header{\r\n\t display: flex;\r\n\t h2 {\r\n\t\tmargin-right: 5px;\r\n\t }\r\n\t}\r\n\r\n\t.detail-content {\r\n\t font-size: 14px;\r\n\t font-weight: normal;\r\n\t margin: 5px 0 8px;\r\n\r\n\t}\r\n\t.product-sku {\r\n\t font-size: 12px;\r\n\t}\r\n }\r\n\r\n .disclaimer-content {\r\n\tfont-size: 9px;\r\n\tfont-weight: normal;\r\n\tmargin-top: 10px;\r\n\tfont-style: italic;\r\n }\r\n\r\n & .validity {\r\n\tfont-size: 13px;\r\n\tmargin-top: 10px;\r\n\r\n\t.date {\r\n\t color: #E95B5B;\r\n\t font-weight: bold;\r\n\t}\r\n\r\n }\r\n}\r\n\r\nbutton, a.goToWebsite {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #bbb;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n display: flex;\r\n margin: 15px 4px 0;\r\n button, a.goToWebsite {\r\n\tpadding: 5px;\r\n\tmin-height: 34px;\r\n\tmin-width: 34px;\r\n\ttransition: none;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tbackground-color: #D3D3D3;\r\n\tborder-radius: 50%;\r\n\tmargin-right: 10px;\r\n\timg {\r\n\t width: 1.2rem;\r\n\t height: 1.2rem;\r\n\r\n\t}\r\n }\r\n .goToWebsite {\r\n\tmargin-left: auto;\r\n\tmargin-right: 0;\r\n }\r\n}\r\n\r\n.pdpAddToList {\r\n // display: flex;\r\n // flex-grow: 0.7;\r\n cursor: pointer;\r\n // width: 100%;\r\n // border-radius: 5px;\r\n // margin-top:15px;\r\n // margin-bottom:15px;\r\n // margin-right: 10px;\r\n // margin: 15px 0px 10px 0px;\r\n // background-color: var(--tertiary-color);\r\n color: #fff;\r\n padding: 8px;\r\n justify-content: center;\r\n // max-width: calc(100vw - 7em);\r\n font-weight: normal;\r\n\r\n &.removeFromList {\r\n\tbackground-color: #EE3124;\r\n }\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n &+.subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n .description {\r\n\tflex-basis: 50%;\r\n\tjustify-content: center;\r\n }\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 300px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t// width: 575px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\r\n\t\t//width: 300px;\r\n\t\t.productImage {\r\n\t\t // max-height: 50%;\r\n\t\t // max-width: 50%;\r\n\t\t max-height: 180px;\r\n\t\t max-width: 85px;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\t/*.description {\r\n\t\tpadding-top: 10px;\r\n\t\tpadding-left: 100px;\r\n\t\tpadding-bottom: 70px;\r\n\t\tposition: relative;\r\n\t}*/\r\n\r\n\t/*.btn.page {\r\n\t\ttransform: rotate(90deg);\r\n\t\twidth: 146px;\r\n\t\tposition: absolute;\r\n\t\tleft: 0;\r\n\t\tbottom: 38%;\r\n\t}*/\r\n\r\n\th4,\r\n\t.subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle+.subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n\r\n .content-container {\r\n\twidth: 300px;\r\n }\r\n}\r\n\r\n@media (max-width: 850px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n\r\n /*.modal-wpr {\r\n\ttop: 65px;\r\n}*/\r\n .walkthrough {\r\n\tdisplay: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n\tdisplay: flex !important;\r\n }\r\n\r\n .desktop {\r\n\tdisplay: none !important;\r\n }\r\n\r\n .modal-wpr .modal {\r\n\t/* margin-top: 140px;\r\n\twidth: 90% !important;*/\r\n\twidth: 338px;\r\n\r\n\t.content {\r\n\t .f-half {\r\n\t\t/*flex-direction: row !important;*/\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 400px;\r\n\t }\r\n\t}\r\n\r\n\t.header {\r\n\t padding-bottom: 4px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 14px;\r\n\t }\r\n\t}\r\n }\r\n\r\n .heading {\r\n\tdisplay: none;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n\tdisplay: block;\r\n\tbackground: none;\r\n\tpadding: 0 6%;\r\n\r\n\t.description {\r\n\t padding: 0;\r\n\t margin-bottom: 20px;\r\n\t height: 50px;\r\n\t}\r\n\r\n\t.button-preview {\r\n\t display: block;\r\n\t position: relative;\r\n\t padding-left: 60px;\r\n\t width: 100%;\r\n\r\n\t h4 {\r\n\t\tpadding: 0;\r\n\t }\r\n\r\n\t .subtitle {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .btn {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t }\r\n\t}\r\n }\r\n\r\n .subtitle.mobile {\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarPDPOld.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarPDPOld.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RaddarPDPOld.vue?vue&type=template&id=476cec66&scoped=true&\"\nimport script from \"./RaddarPDPOld.vue?vue&type=script&lang=js&\"\nexport * from \"./RaddarPDPOld.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RaddarPDPOld.vue?vue&type=style&index=0&id=476cec66&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"476cec66\",\n null\n \n)\n\nexport default component.exports","/* eslint-disable */\r\nimport storage from 'local-storage-fallback';\r\n//const storage = window.localStorage;\r\n\r\nexport default class PersistentData {\r\n\tconstructor(id) {\r\n\t\tthis.storageId = id;\r\n\t}\r\n\r\n\tset storageId(id) {\r\n\t\tthis.pathId = (id || 'global');\r\n\t\tthis.savePath = \"PersistentData:\" + this.pathId;\r\n\t}\r\n\r\n\tget storageId() {\r\n\t\treturn this.pathId;\r\n\t}\r\n\r\n\tget dataPath() {\r\n\t\treturn this.pathId;\r\n\t}\r\n\r\n\tget rootPath() {\r\n\t\treturn this.pathId;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param key\r\n\t * @param value\r\n\t * @param lifeSpan - How long in milliseconds the data should exist. If a Date object is used that will be the expiry date of the data\r\n\t */\r\n\tsetData(key, value, lifeSpan) {\r\n\t\tif (key === undefined) return;\r\n\t\tlet dataObject = {\r\n\t\t\tdata: value,\r\n\t\t\ttype: typeof (value)\r\n\t\t};\r\n\t\tif(lifeSpan instanceof Date){\r\n\t\t\tdataObject.expire = lifeSpan.getTime();\r\n\t\t} else if (!isNaN(lifeSpan)) {\r\n\t\t\tlet expire = (new Date()).getTime() + Number(lifeSpan);\r\n\t\t\tdataObject.expire = expire;\r\n\t\t}\r\n\t\tstorage.setItem(this.savePath + \"/\" + key, JSON.stringify(dataObject));\r\n\t}\r\n\r\n\thasData(key) {\r\n\t\treturn this.getData(key) != null;\r\n\t}\r\n\r\n\r\n\r\n\tgetData(key) {\r\n\t\tlet dataString = storage.getItem(this.savePath + \"/\" + key);\r\n\t\tif (dataString) {\r\n\t\t\tlet data = JSON.parse(dataString);\r\n\t\t\tif (!isNaN(data.expire)) {\r\n\t\t\t\tlet expiry = new Date(data.expire);\r\n\t\t\t\tif ((new Date()).getTime() >= expiry.getTime()) {\r\n\t\t\t\t\tthis.removeData(key);\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn data.data;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tremoveData(key) {\r\n\t\t//console.log('Sotrage Deleting Key:', key);\r\n\t\tstorage.removeItem(this.savePath + \"/\" + key);\r\n\t}\r\n\r\n\tgetAll(path, includeSubs) {\r\n\r\n\t\tlet items = [];\r\n\t\tlet p = (path) ? '/' + path + '/' : '';\r\n\t\tlet rootPath = this.savePath + p;\r\n\t\tlet rootPathDepth = rootPath.split('/').length;\r\n\r\n\t\tlet maxPathDepth = (includeSubs) ? null : 1;\r\n\r\n\t\t//TODO: remove expired items from getAll\r\n\r\n\t\tfor (let i = 0; i < storage.length; i++) {\r\n\t\t\tlet key = storage.key(i);\r\n\t\t\tif (key.indexOf(rootPath) === 0) {\r\n\t\t\t\tif (maxPathDepth == null) {\r\n\t\t\t\t\titems.push(JSON.parse(storage.getItem(key)).data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//console.log(\"*********** key:\", key, \" rootPath:\", rootPath, \" maxPathDepth:\", maxPathDepth, \" Depth:\", (key.split('/').length - rootPathDepth) );\r\n\t\t\t\t\tif ((key.split('/').length - rootPathDepth) <= maxPathDepth) {\r\n\r\n\t\t\t\t\t\titems.push(JSON.parse(storage.getItem(key)).data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn items;\r\n\t}\r\n\r\n\tclear() {\r\n\r\n\t\tlet removeKeys = [];\r\n\r\n\t\tfor (let i = 0; i < storage.length; i++) {\r\n\t\t\tlet key = storage.key(i);\r\n\t\t\tif (key.indexOf(this.savePath + '/') === 0) {\r\n\t\t\t\tremoveKeys.push(key);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let i = 0; i < removeKeys.length; i++) {\r\n\t\t\tstorage.removeItem(removeKeys[i]);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tstatic clearStorage() {\r\n\r\n\t\tlet removeKeys = [];\r\n\r\n\t\tfor (let i = 0; i < storage.length; i++) {\r\n\t\t\tlet key = storage.key(i);\r\n\t\t\tif (key.indexOf('PersistentData:') === 0) {\r\n\t\t\t\tremoveKeys.push(key);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let i = 0; i < removeKeys.length; i++) {\r\n\t\t\tstorage.removeItem(removeKeys[i]);\r\n\t\t}\r\n\r\n\t}\r\n\r\n}","import PersistentData from \"@/classes/PersistentData\";\r\n\r\n\r\nconst pd = new PersistentData('shopping-list');\r\n\r\nexport function getProductSku(product) {\r\n return product?.sku || product?.productId;//.split(':').pop();\r\n}\r\n\r\n\r\nexport default class ShoppingListController {\r\n constructor(flyerId) {\r\n this.id = flyerId;\r\n }\r\n\r\n /**\r\n *\r\n * @param id - Unique Product identifier ie. sku\r\n * @param {object} product\r\n * @returns {any}\r\n */\r\n addItem(id, product) {\r\n const key = `${this.id}/${id}`;\r\n let listItem = pd.getData(key);\r\n if(!listItem){\r\n listItem = {\r\n qty: 0\r\n }\r\n }\r\n listItem.qty++;\r\n listItem.product = product;\r\n pd.setData(key, listItem);\r\n return listItem;\r\n }\r\n\r\n removeItem(id) {\r\n const key = `${this.id}/${id}`;\r\n let listItem = pd.getData(key);\r\n if(listItem && listItem.qty > 1) {\r\n listItem.qty--;\r\n pd.setData(key, listItem);\r\n } else {\r\n pd.removeData(key);\r\n }\r\n return listItem;\r\n }\r\n\r\n clear() {\r\n pd.clear();\r\n }\r\n\r\n getList() {\r\n return pd.getAll(this.id);\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdp-raddar\"},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.lang.pdpTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.lang.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.close,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.close.apply(null, arguments)}}},[_c('img',{attrs:{\"alt\":\"Close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"handle-border\"},[_c('div',{staticClass:\"pdpContainer\"},[_c('div',{staticClass:\"productImageContainer\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.productImage}})]),(_vm.savings)?_c('div',{staticClass:\"savings\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.savingsPrefix)+\" \"+_vm._s(_vm.savings)+\" \"+_vm._s(_vm.savingsSuffix))])]):_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.salePrice)?_c('span',[_c('span',{staticClass:\"price-qty\"},[_vm._v(_vm._s(_vm.priceQty))]),_c('span',{staticClass:\"price-prefix\"},[_vm._v(_vm._s(_vm.pricePrefix))]),_c('span',{staticClass:\"price-price\"},[_vm._v(_vm._s(_vm.salePrice))]),_c('span',{staticClass:\"price-unit\"},[_vm._v(_vm._s(_vm.promoUnit))])]):_vm._e(),(_vm.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.alternatePrice))]):_vm._e()])]),(_vm.showProductName)?_c('div',{staticClass:\"detail\"},[_c('div',{staticClass:\"detail-header\"},[_c('h2',{attrs:{\"tabindex\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.productName)+\" \")])])]):_vm._e(),(_vm.description)?_c('div',{staticClass:\"detail\"},[_c('div',[_c('span',[_vm._v(_vm._s(_vm.lang.pdpDetails))]),_c('p',{staticClass:\"detail-content\",attrs:{\"tabindex\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.htmlDescription)}})])]):_vm._e(),_c('div',{staticClass:\"detail\"},[(_vm.sku)?_c('span',{staticClass:\"product-sku\"},[_vm._v(\"#\"+_vm._s(_vm.sku))]):_vm._e()]),_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.lang.pdpValidFrom))])]),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.htmlValidity)}})])]),_c('div',{staticClass:\"button-container\"},[_c('div',{staticClass:\"button-container\"},[_c('shopping-list-button',{attrs:{\"product\":_vm.product}})],1),_c('div',{staticClass:\"button-container\"},[(_vm.config.allowShare)?_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: \"Share\", placement:'bottom'}),expression:\"{content: `Share`, placement:'bottom'}\"}],staticClass:\"pdp-btn round\",attrs:{\"href\":_vm.productURL,\"target\":\"_blank\"},on:{\"click\":function($event){return _vm.handleShareDeal(_vm.product)}}},[_c('svg',{staticClass:\"icon\",attrs:{\"viewBox\":\"0 0 16 16\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"9D711932-C33A-4FC1-805D-8E2D5C4F78DA\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"raddar_R2_PDP_1.0\",\"transform\":\"translate(-1357, -638)\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\"}},[_c('g',{attrs:{\"id\":\"popup-pdp-copy\",\"transform\":\"translate(1166, 195)\"}},[_c('path',{attrs:{\"d\":\"M204.132987,453.285727 C203.25937,453.292133 202.436771,453.698479 201.900379,454.388586 L196.601505,451.737154 C196.669665,451.497232 196.706139,451.249411 196.709994,451.00001 C196.706139,450.75061 196.669665,450.502788 196.601505,450.262866 L201.900379,447.611434 C202.436771,448.301541 203.25937,448.707887 204.132987,448.714293 C205.709759,448.714293 206.987985,447.435105 206.987985,445.857147 C206.987985,444.279188 205.709759,443 204.132987,443 C202.556216,443 201.27799,444.279188 201.27799,445.857147 C201.281846,446.106547 201.318319,446.354368 201.38648,446.59429 L196.087605,449.245722 C195.551213,448.555615 194.728614,448.14927 193.854997,448.142864 C192.278226,448.142864 191,449.422052 191,451.00001 C191,452.577969 192.278226,453.857157 193.854997,453.857157 C194.728614,453.850751 195.551213,453.444405 196.087605,452.754298 L201.38648,455.40573 C201.070707,456.589151 201.543834,457.842343 202.562665,458.521142 C203.581496,459.199942 204.919331,459.15331 205.888501,458.405217 C206.857671,457.657124 207.242527,456.374027 206.845245,455.21546 C206.447963,454.056893 205.356942,453.280648 204.132987,453.285727 Z\",\"id\":\"icon-share-grey\"}})])])])])]):_vm._e(),(_vm.productURL)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: \"Go To Website\", placement:'bottom'}),expression:\"{content: `Go To Website`, placement:'bottom'}\"}],staticClass:\"pdp-btn round\",attrs:{\"href\":_vm.productURL,\"target\":\"_blank\"}},[_c('svg',{staticClass:\"icon\",attrs:{\"version\":\"1.1\",\"viewBox\":\"0 0 16 16\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"42D445B9-8057-47B2-A7AF-03D5707F36E5\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"raddar_R2_PDP_1.0\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\",\"transform\":\"translate(-1398, -638)\"}},[_c('g',{attrs:{\"id\":\"popup-pdp-copy\",\"transform\":\"translate(1166, 195)\"}},[_c('path',{attrs:{\"id\":\"Icon-website\",\"d\":\"M240,459 C244.41077,459 248,455.41077 248,451 C248,446.58923 244.408265,443 240,443 C235.586725,443 232,446.591735 232,451 C232,455.41077 235.586725,459 240,459 Z M239.371321,448.302442 L239.371321,450.368817 L236.791484,450.368817 C236.824045,449.652473 236.911709,448.958673 237.054477,448.302442 L239.371321,448.302442 L239.371321,448.302442 Z M234.539762,447.045085 C235.190983,446.148403 236.050094,445.427051 237.036944,444.94114 C236.924233,445.116468 236.819036,445.299311 236.716343,445.494678 C236.473388,445.96556 236.260488,446.486537 236.087664,447.045085 L234.539762,447.045085 Z M239.371321,444.397621 L239.371321,447.047589 L237.410144,447.047589 C237.537884,446.699436 237.678147,446.376331 237.830933,446.078272 C238.276769,445.231684 238.810269,444.64809 239.371321,444.397621 Z M236.087664,454.954915 C236.260488,455.513463 236.473388,456.03444 236.716343,456.502818 C236.819036,456.698184 236.924233,456.883532 237.036944,457.056356 C236.050094,456.572949 235.190983,455.851597 234.539762,454.954915 L236.087664,454.954915 Z M239.371321,454.954915 L239.371321,457.604884 C238.810269,457.35191 238.276769,456.768316 237.830933,455.921728 C237.678147,455.623669 237.535379,455.298059 237.410144,454.954915 L239.371321,454.954915 Z M239.371321,451.628679 L239.371321,453.692549 L237.054477,453.692549 C236.911709,453.038823 236.82154,452.347527 236.791484,451.628679 L239.371321,451.628679 Z M233.284909,450.368817 C233.350031,449.652473 233.530369,448.958673 233.81841,448.302442 L235.769568,448.302442 C235.641828,448.968691 235.561678,449.659987 235.531622,450.368817 L233.284909,450.368817 Z M233.284909,451.628679 L235.529117,451.628679 C235.559173,452.337508 235.639324,453.031309 235.769568,453.692549 L233.81841,453.692549 C233.530369,453.038823 233.352536,452.345022 233.284909,451.628679 Z M244.227927,448.302442 L246.176581,448.302442 C246.467126,448.963682 246.644959,449.654978 246.712586,450.368817 L244.468378,450.368817 C244.435817,449.659987 244.355667,448.966187 244.227927,448.302442 Z M246.712586,451.628679 C246.644959,452.345022 246.467126,453.036318 246.179086,453.695053 L244.227927,453.695053 C244.355667,453.033813 244.435817,452.340013 244.468378,451.631183 L246.712586,451.631183 L246.712586,451.628679 Z M243.91484,447.045085 C243.739512,446.486537 243.526612,445.96556 243.281152,445.494678 C243.180964,445.299311 243.073262,445.116468 242.960551,444.94114 C243.949906,445.424546 244.806512,446.145899 245.457733,447.045085 L243.91484,447.045085 Z M240.628679,447.045085 L240.628679,444.397621 C241.187226,444.64809 241.725736,445.231684 242.166562,446.078272 C242.321853,446.376331 242.462116,446.699436 242.587351,447.047589 L240.628679,447.047589 L240.628679,447.045085 Z M240.628679,450.368817 L240.628679,448.302442 L242.945523,448.302442 C243.088291,448.961177 243.17846,449.652473 243.208516,450.368817 L240.628679,450.368817 Z M245.457733,454.954915 C244.806512,455.851597 243.947401,456.572949 242.960551,457.05886 C243.073262,456.883532 243.180964,456.698184 243.281152,456.502818 C243.529117,456.03444 243.739512,455.513463 243.91484,454.954915 L245.457733,454.954915 L245.457733,454.954915 Z M240.628679,453.695053 L240.628679,451.628679 L243.208516,451.628679 C243.17846,452.347527 243.085786,453.038823 242.945523,453.695053 L240.628679,453.695053 Z M240.628679,457.602379 L240.628679,454.954915 L242.587351,454.954915 C242.462116,455.300564 242.321853,455.626174 242.166562,455.924233 C241.723231,456.768316 241.187226,457.35191 240.628679,457.602379 Z\"}})])])])])]):_vm._e()])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"pdp-raddar\">\r\n\t\t<h2 class=\"header\">\r\n\t\t\t<span class=\"pdpTitle\">{{ lang.pdpTitle }}</span>\r\n\t\t\t<button :aria-label=\"lang.pdpClose\" class=\"close-btn\" tabindex=\"0\" @click=\"close\"\r\n\t\t\t @keydown.esc=\"close\">\r\n\t\t\t\t<img alt=\"Close\" src=\"/images/icon-close-white.svg\"/>\r\n\t\t\t</button>\r\n\t\t</h2>\r\n\t\t<div ref=\"toastContent\" class=\"content\">\r\n\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t<div class=\"handle-border\">\r\n\t\t\t\t\t<div class=\"pdpContainer\">\r\n\t\t\t\t\t\t<div class=\"productImageContainer\">\r\n\t\t\t\t\t\t\t<img :src=\"productImage\" class=\"productImage\"/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-if=\"savings\" class=\"savings\">\r\n\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t{{ savingsPrefix }}\r\n\t\t\t\t\t\t\t\t{{ savings }}\r\n\t\t\t\t\t\t\t\t{{ savingsSuffix }}</span>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div v-else class=\"price\" tabindex=\"0\">\r\n\t\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t\t<span v-if=\"salePrice\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"price-qty\">{{ priceQty }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"price-prefix\">{{ pricePrefix }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"price-price\">{{ salePrice }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"price-unit\">{{ promoUnit }}</span>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<span v-if=\"alternatePrice\" class=\"alternatePrice\">{{ alternatePrice }}</span>\r\n\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-if=\"showProductName\" class=\"detail\">\r\n\t\t\t\t\t\t\t<div class=\"detail-header\">\r\n\t\t\t\t\t\t\t\t<h2 tabindex=\"0\"> {{ productName }} </h2>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-if=\"description\" class=\"detail\">\r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<span>{{ lang.pdpDetails }}</span>\r\n\t\t\t\t\t\t\t\t<p class=\"detail-content\" tabindex=\"0\" v-html=\"htmlDescription\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"detail\">\r\n\t\t\t\t\t\t\t<span v-if=\"sku\" class=\"product-sku\">#{{ sku }}</span>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div class=\"validity\">\r\n\t\t\t\t\t\t\t<span><strong>{{ lang.pdpValidFrom }}</strong></span>\r\n\t\t\t\t\t\t\t<div v-html=\"htmlValidity\"></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t\t<shopping-list-button :product=\"product\"/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t\t<div v-if=\"config.allowShare\" v-tooltip=\"{content: `Share`, placement:'bottom'}\" :href=\"productURL\" class=\"pdp-btn round\" target=\"_blank\" @click=handleShareDeal(product)>\r\n\t\t\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t<title>9D711932-C33A-4FC1-805D-8E2D5C4F78DA</title>\r\n\t\t\t\t\t\t\t\t\t<g id=\"R2---Desktop-wireframes\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n\t\t\t\t\t\t\t\t\t\t<g id=\"raddar_R2_PDP_1.0\" transform=\"translate(-1357, -638)\" fill=\"currentColor\" fill-rule=\"nonzero\">\r\n\t\t\t\t\t\t\t\t\t\t\t<g id=\"popup-pdp-copy\" transform=\"translate(1166, 195)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<path d=\"M204.132987,453.285727 C203.25937,453.292133 202.436771,453.698479 201.900379,454.388586 L196.601505,451.737154 C196.669665,451.497232 196.706139,451.249411 196.709994,451.00001 C196.706139,450.75061 196.669665,450.502788 196.601505,450.262866 L201.900379,447.611434 C202.436771,448.301541 203.25937,448.707887 204.132987,448.714293 C205.709759,448.714293 206.987985,447.435105 206.987985,445.857147 C206.987985,444.279188 205.709759,443 204.132987,443 C202.556216,443 201.27799,444.279188 201.27799,445.857147 C201.281846,446.106547 201.318319,446.354368 201.38648,446.59429 L196.087605,449.245722 C195.551213,448.555615 194.728614,448.14927 193.854997,448.142864 C192.278226,448.142864 191,449.422052 191,451.00001 C191,452.577969 192.278226,453.857157 193.854997,453.857157 C194.728614,453.850751 195.551213,453.444405 196.087605,452.754298 L201.38648,455.40573 C201.070707,456.589151 201.543834,457.842343 202.562665,458.521142 C203.581496,459.199942 204.919331,459.15331 205.888501,458.405217 C206.857671,457.657124 207.242527,456.374027 206.845245,455.21546 C206.447963,454.056893 205.356942,453.280648 204.132987,453.285727 Z\" id=\"icon-share-grey\"></path>\r\n\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<a v-if=\"productURL\" v-tooltip=\"{content: `Go To Website`, placement:'bottom'}\" :href=\"productURL\" class=\"pdp-btn round\" target=\"_blank\">\r\n\t\t\t\t\t\t\t\t<svg class=\"icon\" version=\"1.1\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t<title>42D445B9-8057-47B2-A7AF-03D5707F36E5</title>\r\n\t\t\t\t\t\t\t\t\t<g id=\"R2---Desktop-wireframes\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t\t\t\t\t\t\t<g id=\"raddar_R2_PDP_1.0\" fill=\"currentColor\" fill-rule=\"nonzero\" transform=\"translate(-1398, -638)\">\r\n\t\t\t\t\t\t\t\t\t\t\t<g id=\"popup-pdp-copy\" transform=\"translate(1166, 195)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<path id=\"Icon-website\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t d=\"M240,459 C244.41077,459 248,455.41077 248,451 C248,446.58923 244.408265,443 240,443 C235.586725,443 232,446.591735 232,451 C232,455.41077 235.586725,459 240,459 Z M239.371321,448.302442 L239.371321,450.368817 L236.791484,450.368817 C236.824045,449.652473 236.911709,448.958673 237.054477,448.302442 L239.371321,448.302442 L239.371321,448.302442 Z M234.539762,447.045085 C235.190983,446.148403 236.050094,445.427051 237.036944,444.94114 C236.924233,445.116468 236.819036,445.299311 236.716343,445.494678 C236.473388,445.96556 236.260488,446.486537 236.087664,447.045085 L234.539762,447.045085 Z M239.371321,444.397621 L239.371321,447.047589 L237.410144,447.047589 C237.537884,446.699436 237.678147,446.376331 237.830933,446.078272 C238.276769,445.231684 238.810269,444.64809 239.371321,444.397621 Z M236.087664,454.954915 C236.260488,455.513463 236.473388,456.03444 236.716343,456.502818 C236.819036,456.698184 236.924233,456.883532 237.036944,457.056356 C236.050094,456.572949 235.190983,455.851597 234.539762,454.954915 L236.087664,454.954915 Z M239.371321,454.954915 L239.371321,457.604884 C238.810269,457.35191 238.276769,456.768316 237.830933,455.921728 C237.678147,455.623669 237.535379,455.298059 237.410144,454.954915 L239.371321,454.954915 Z M239.371321,451.628679 L239.371321,453.692549 L237.054477,453.692549 C236.911709,453.038823 236.82154,452.347527 236.791484,451.628679 L239.371321,451.628679 Z M233.284909,450.368817 C233.350031,449.652473 233.530369,448.958673 233.81841,448.302442 L235.769568,448.302442 C235.641828,448.968691 235.561678,449.659987 235.531622,450.368817 L233.284909,450.368817 Z M233.284909,451.628679 L235.529117,451.628679 C235.559173,452.337508 235.639324,453.031309 235.769568,453.692549 L233.81841,453.692549 C233.530369,453.038823 233.352536,452.345022 233.284909,451.628679 Z M244.227927,448.302442 L246.176581,448.302442 C246.467126,448.963682 246.644959,449.654978 246.712586,450.368817 L244.468378,450.368817 C244.435817,449.659987 244.355667,448.966187 244.227927,448.302442 Z M246.712586,451.628679 C246.644959,452.345022 246.467126,453.036318 246.179086,453.695053 L244.227927,453.695053 C244.355667,453.033813 244.435817,452.340013 244.468378,451.631183 L246.712586,451.631183 L246.712586,451.628679 Z M243.91484,447.045085 C243.739512,446.486537 243.526612,445.96556 243.281152,445.494678 C243.180964,445.299311 243.073262,445.116468 242.960551,444.94114 C243.949906,445.424546 244.806512,446.145899 245.457733,447.045085 L243.91484,447.045085 Z M240.628679,447.045085 L240.628679,444.397621 C241.187226,444.64809 241.725736,445.231684 242.166562,446.078272 C242.321853,446.376331 242.462116,446.699436 242.587351,447.047589 L240.628679,447.047589 L240.628679,447.045085 Z M240.628679,450.368817 L240.628679,448.302442 L242.945523,448.302442 C243.088291,448.961177 243.17846,449.652473 243.208516,450.368817 L240.628679,450.368817 Z M245.457733,454.954915 C244.806512,455.851597 243.947401,456.572949 242.960551,457.05886 C243.073262,456.883532 243.180964,456.698184 243.281152,456.502818 C243.529117,456.03444 243.739512,455.513463 243.91484,454.954915 L245.457733,454.954915 L245.457733,454.954915 Z M240.628679,453.695053 L240.628679,451.628679 L243.208516,451.628679 C243.17846,452.347527 243.085786,453.038823 242.945523,453.695053 L240.628679,453.695053 Z M240.628679,457.602379 L240.628679,454.954915 L242.587351,454.954915 C242.462116,455.300564 242.321853,455.626174 242.166562,455.924233 C241.723231,456.768316 241.187226,457.35191 240.628679,457.602379 Z\"></path>\r\n\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n</template>\r\n\r\n<script>\r\nimport PdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\nimport ShoppingListButton from \"@/features/pdp/buttons/ShoppingListButton.vue\";\r\nimport {mapActions} from \"vuex\";\r\nimport moment from \"moment/moment\";\r\n\r\nexport default {\r\n\tname: \"PdpRexallRaddar\",\r\n\tcomponents: {ShoppingListButton},\r\n\r\n\tmixins: [PdpProductMixin],\r\n\r\n\tcomputed:{\r\n\t\tisBogo() {\r\n\t\t\treturn this.product?.tags?.includes('bogo')\r\n\t\t},\r\n\r\n\t\tisSwipeAndSave() {\r\n\t\t\tif (this.product === null) return;\r\n\t\t\treturn this.product.tags?.includes('S&S');\r\n\t\t},\r\n\r\n\t\tis3DaySale() {\r\n\t\t\tif (this.product === null) return;\r\n\t\t\tconst date = this.$router.currentRoute.query['timeTravelDate'] ?? moment();\r\n\t\t\t//subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day) that are passed as parameters\r\n\t\t\tconst startDate = moment(this.product.validFrom).subtract(1, \"days\")\r\n\t\t\tconst endDate = moment(this.product.validTo).add(1, \"days\")\r\n\t\t\tif ((this.product.validFrom !== this.currentFlyer.startDate) && (this.product.validTo !== this.currentFlyer.endDate) ||\r\n\t\t\t\t(this.product.validFromROW !== this.currentFlyer.startDate) && (this.product.validToROW !== this.currentFlyer.endDate)) {\r\n\t\t\t\treturn moment(date).isBetween(startDate, endDate);\r\n\t\t\t} else\r\n\t\t\t\treturn false\r\n\t\t},\r\n\t\tsalePrice() {\r\n\t\t\tif (this.product === null) return\r\n\t\t\tlet price\r\n\t\t\tconst date = this.$router.currentRoute.query['timeTravelDate'] ?? moment();\r\n\t\t\t//subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day)\r\n\t\t\tconst startDate = moment(this.product.validFromROW).subtract(1, \"days\")\r\n\t\t\tconst endDate = moment(this.product.validToROW).add(1, \"days\")\r\n\t\t\tif (this.isSwipeAndSave) {\r\n\t\t\t\tif (this.product?.savingsEn) {\r\n\t\t\t\t\tprice = this.product.savingsPrefix + ' ' + this.product.savingsEn\r\n\t\t\t\t\treturn price\r\n\t\t\t\t} else {\r\n\t\t\t\t\tprice = this.product.salePrice\r\n\t\t\t\t}\r\n\t\t\t} else if (this.is3DaySale)\r\n\t\t\t\tprice = this.product?.salePrice\r\n\t\t\telse if (this.product.rowPrice && moment(date).isBetween(startDate, endDate))\r\n\t\t\t\tprice = this.product?.rowPrice;\r\n\t\t\telse\r\n\t\t\t\tprice = this.product?.rowPrice;\r\n\r\n\t\t\tif (price == null)\r\n\t\t\t\treturn ''\r\n\r\n\r\n\t\t\telse {\r\n\t\t\t\tif (this.product?.savingsEn) {\r\n\t\t\t\t\tprice = this.product.savingsPrefix + ' ' + this.product.savingsEn\r\n\t\t\t\t\treturn price\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (price.trim() !== '') {\r\n\t\t\t\t\t\t// do nothing to test\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tprice = this.product.salePrice;\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this.product?.priceSign?.includes('$') ? `${this.product.priceSign}${(price)} ` : `${price}${this.product.priceSign}`;\r\n\t\t},\r\n\t},\r\n\r\n\tmethods:{\r\n\t\t...mapActions('pdp', ['close'])\r\n\t}\r\n\r\n\r\n};\r\n</script>\r\n\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n\r\n .description {\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\ttext-align: left;\r\n\talign-items: flex-end;\r\n\r\n\t> :first-child {\r\n\t width: calc(55px + 1em);\r\n\t}\r\n\r\n\t.mobile-content {\r\n\t flex-basis: 100%;\r\n\t}\r\n }\r\n}\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n top: 0px;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n\t//background-color: var(--secondary-color);\r\n\tbackground-color: #fff;\r\n\t/*margin-top: 75px;*/\r\n\tborder: 1px solid #bbbbbb;\r\n\t/* overflow: auto;*/\r\n\tmax-height: calc(100% - 1em);\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tdisplay: flex;\r\n\tflex-flow: column;\r\n\tmax-width: calc(100% - 4em);\r\n\r\n\t.header {\r\n\t background-color: #261342;\r\n\t color: var(--primary-text-color);\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 18px;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 400;\r\n\t }\r\n\r\n\t .close-btn {\r\n\t\tcursor: pointer;\r\n\r\n\t\t&:hover {\r\n\t\t background: none;\r\n\t\t filter: unset;\r\n\t\t}\r\n\t }\r\n\t}\r\n\r\n\t.subtitle {\r\n\t padding-top: 6px;\r\n\t font-size: 12px;\r\n\t}\r\n\r\n\t.content {\r\n\t padding: 8px;\r\n\t background-color: #fff;\r\n\t color: #545454;\r\n\t position: relative;\r\n\t flex: 1 0 auto;\r\n\t // overflow: auto;\r\n\t // margin:0px 10px 10px 10px;\r\n\t margin: 10px 10px 17px;\r\n\t min-height: 250px;\r\n\t max-height: calc(100% - 4em);\r\n\r\n\r\n\t /*.scroll-container{\r\n\t\tposition: absolute;\r\n\t\ttop:0px;\r\n\t\tbottom:0px;\r\n\t\tleft:0px;\r\n\t\tright:0px;\r\n\t}*/\r\n\t .content-container {\r\n\t\ttext-align: left;\r\n\t\t//width:300px;\r\n\t }\r\n\r\n\t .f-half {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\r\n\t\tflex-direction: column;\r\n\r\n\t\t>div {\r\n\t\t flex-basis: 100%;\r\n\t\t display: flex;\r\n\t\t flex-flow: column;\r\n\t\t}\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 350px;\r\n\t }\r\n\r\n\t .feature {\r\n\t\tbackground: #eee;\r\n\t\tmargin: 12px 0;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\tflex: 1;\r\n\r\n\t\t.description {\r\n\t\t display: flex;\r\n\t\t font-size: 14px;\r\n\t\t padding: 15px 0;\r\n\r\n\t\t .button-preview {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\talign-items: center;\r\n\t\t\tpadding: 0 20px;\r\n\r\n\t\t\th4 {\r\n\t\t\t text-transform: uppercase;\r\n\t\t\t padding-top: 16px;\r\n\t\t\t white-space: nowrap;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t text-align: center;\r\n\t\t\t}\r\n\t\t }\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n.pdpTitle {\r\n font-size: 18px;\r\n font-weight: bold;\r\n margin-top: 6px;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n border: 1px solid #D3D3D3;\r\n padding: 10px;\r\n\r\n h2 {\r\n\tfont-size: 18px;\r\n\tline-height: 1.1em;\r\n\r\n\tspan {\r\n\t font-size: 24px;\r\n\t margin-top: 6px;\r\n\t &.price-unit {\r\n\t\tfont-size: 0.5em;\r\n\t\tmargin-left: 0.3em;\r\n\t }\r\n\t &.price-qty {\r\n\t\tmargin-right: 0.1em;\r\n\t &:empty {\r\n\t display: none;\r\n\t }\r\n\t }\r\n\t}\r\n }\r\n\r\n .productImageContainer {\r\n\tpadding: 5px 0;\r\n\tmargin-bottom: 10px;\r\n\tborder: 1px solid #D3D3D3;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n }\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tmax-height: 200px;\r\n\tmax-width: 90%;\r\n\twidth: auto;\r\n\theight: auto;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tmargin: auto;\r\n }\r\n\r\n .price {\r\n\tdisplay: flex;\r\n\t//color: #ee3124;\r\n\tcolor: #E95B5B;\r\n\tfont-weight: 900;\r\n }\r\n\r\n span.alternatePrice {\r\n\tdisplay: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n\tcolor: #000;\r\n\tfont-size: 13px;\r\n\tfont-weight: normal;\r\n\tmargin-left: 5px;\r\n }\r\n\r\n .savings {\r\n\ttext-transform: uppercase;\r\n\tcolor: #000;\r\n\tfont-size: 17px;\r\n\tfont-weight: 900;\r\n\r\n\tspan {\r\n\t display: block;\r\n\t margin-bottom: 7px;\r\n\t}\r\n }\r\n\r\n .detail {\r\n\tfont-size: 15px;\r\n\tmargin-top: 10px;\r\n\tfont-weight: 900;\r\n\r\n\t.detail-header{\r\n\t display: flex;\r\n\t h2 {\r\n\t\tmargin-right: 5px;\r\n\t }\r\n\t}\r\n\r\n\t.detail-content {\r\n\t font-size: 14px;\r\n\t font-weight: normal;\r\n\t margin: 5px 0 8px;\r\n\r\n\t}\r\n\t.product-sku {\r\n\t font-size: 12px;\r\n\t}\r\n }\r\n\r\n .disclaimer-content {\r\n\tfont-size: 9px;\r\n\tfont-weight: normal;\r\n\tmargin-top: 10px;\r\n\tfont-style: italic;\r\n }\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n &+.subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n .description {\r\n\tflex-basis: 50%;\r\n\tjustify-content: center;\r\n }\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 300px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t// width: 575px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\r\n\t\t//width: 300px;\r\n\t\t.productImage {\r\n\t\t // max-height: 50%;\r\n\t\t // max-width: 50%;\r\n\t\t max-height: 180px;\r\n\t\t max-width: 85px;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\t/*.description {\r\n\t\tpadding-top: 10px;\r\n\t\tpadding-left: 100px;\r\n\t\tpadding-bottom: 70px;\r\n\t\tposition: relative;\r\n\t}*/\r\n\r\n\t/*.btn.page {\r\n\t\ttransform: rotate(90deg);\r\n\t\twidth: 146px;\r\n\t\tposition: absolute;\r\n\t\tleft: 0;\r\n\t\tbottom: 38%;\r\n\t}*/\r\n\r\n\th4,\r\n\t.subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle+.subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n\r\n .content-container {\r\n\twidth: 300px;\r\n }\r\n}\r\n\r\n@media (max-width: 850px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n\r\n /*.modal-wpr {\r\n\ttop: 65px;\r\n}*/\r\n .walkthrough {\r\n\tdisplay: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n\tdisplay: flex !important;\r\n }\r\n\r\n .desktop {\r\n\tdisplay: none !important;\r\n }\r\n\r\n .modal-wpr .modal {\r\n\t/* margin-top: 140px;\r\n\twidth: 90% !important;*/\r\n\twidth: 338px;\r\n\r\n\t.content {\r\n\t .f-half {\r\n\t\t/*flex-direction: row !important;*/\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 400px;\r\n\t }\r\n\t}\r\n\r\n\t.header {\r\n\t padding-bottom: 4px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 14px;\r\n\t }\r\n\t}\r\n }\r\n\r\n .heading {\r\n\tdisplay: none;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n\tdisplay: block;\r\n\tbackground: none;\r\n\tpadding: 0 6%;\r\n\r\n\t.description {\r\n\t padding: 0;\r\n\t margin-bottom: 20px;\r\n\t height: 50px;\r\n\t}\r\n\r\n\t.button-preview {\r\n\t display: block;\r\n\t position: relative;\r\n\t padding-left: 60px;\r\n\t width: 100%;\r\n\r\n\t h4 {\r\n\t\tpadding: 0;\r\n\t }\r\n\r\n\t .subtitle {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .btn {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t }\r\n\t}\r\n }\r\n\r\n .subtitle.mobile {\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n }\r\n}\r\n</style>\r\n\r\n\r\n<!--<style lang=\"scss\" scoped>\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n\r\n .description {\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\ttext-align: left;\r\n\talign-items: flex-end;\r\n\r\n\t> :first-child {\r\n\t width: calc(55px + 1em);\r\n\t}\r\n\r\n\t.mobile-content {\r\n\t flex-basis: 100%;\r\n\t}\r\n }\r\n}\r\n\r\n\r\n.pdpTitle {\r\n font-size: 18px;\r\n font-weight: bold;\r\n margin-top: 6px;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n border: 1px solid #D3D3D3;\r\n padding: 10px;\r\n\r\n h2 {\r\n\tfont-size: 18px;\r\n\tline-height: 1.1em;\r\n\r\n\tspan {\r\n\t font-size: 24px;\r\n\t margin-top: 6px;\r\n\r\n\t}\r\n }\r\n\r\n .productImageContainer {\r\n\tpadding: 5px 0;\r\n\tmargin-bottom: 10px;\r\n\tborder: 1px solid #D3D3D3;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n }\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tmax-height: 200px;\r\n\tmax-width: 90%;\r\n\twidth: auto;\r\n\theight: auto;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tmargin: auto;\r\n }\r\n\r\n .price {\r\n\tdisplay: flex;\r\n\t//color: #ee3124;\r\n\tcolor: #E95B5B;\r\n\tfont-weight: 900;\r\n }\r\n\r\n span.alternatePrice {\r\n\tdisplay: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n\tcolor: #000;\r\n\tfont-size: 13px;\r\n\tfont-weight: normal;\r\n\tmargin-left: 5px;\r\n }\r\n\r\n .savings {\r\n\ttext-transform: uppercase;\r\n\tcolor: #000;\r\n\tfont-size: 17px;\r\n\tfont-weight: 900;\r\n\r\n\tspan {\r\n\t display: block;\r\n\t margin-bottom: 7px;\r\n\t}\r\n }\r\n\r\n .detail {\r\n\tfont-size: 15px;\r\n\tmargin-top: 10px;\r\n\tfont-weight: 900;\r\n\r\n\t.detail-header {\r\n\t display: flex;\r\n\r\n\t h2 {\r\n\t\tmargin-right: 5px;\r\n\t }\r\n\t}\r\n\r\n\t.detail-content {\r\n\t font-size: 14px;\r\n\t font-weight: normal;\r\n\t margin: 5px 0 8px;\r\n\r\n\t}\r\n\r\n\t.product-sku {\r\n\t font-size: 12px;\r\n\t}\r\n }\r\n\r\n .disclaimer-content {\r\n\tfont-size: 9px;\r\n\tfont-weight: normal;\r\n\tmargin-top: 10px;\r\n\tfont-style: italic;\r\n }\r\n\r\n & .validity {\r\n\tfont-size: 13px;\r\n\tmargin-top: 10px;\r\n\r\n\t.date {\r\n\t color: #E95B5B;\r\n\t font-weight: bold;\r\n\t}\r\n\r\n }\r\n}\r\n\r\nbutton, a.goToWebsite {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\nbutton.button {\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n margin-top: 16px;\r\n}\r\n\r\nbutton.button:hover {\r\n background: #eee;\r\n color: #000;\r\n}\r\n\r\n.btn {\r\n background: #fff;\r\n border: 1px solid #bbb;\r\n border-radius: 4px;\r\n padding: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 34px;\r\n width: 34px;\r\n color: #333;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n cursor: auto;\r\n pointer-events: none;\r\n}\r\n\r\n.addtoList-container {\r\n display: flex;\r\n margin: 15px 4px 0;\r\n\r\n button, a.goToWebsite {\r\n\tpadding: 5px;\r\n\tmin-height: 34px;\r\n\tmin-width: 34px;\r\n\ttransition: none;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tbackground-color: #D3D3D3;\r\n\tborder-radius: 50%;\r\n\tmargin-right: 10px;\r\n\r\n\timg {\r\n\t width: 1.2rem;\r\n\t height: 1.2rem;\r\n\r\n\t}\r\n }\r\n\r\n .goToWebsite {\r\n\tmargin-left: auto;\r\n\tmargin-right: 0;\r\n }\r\n}\r\n\r\n.pdpAddToList {\r\n // display: flex;\r\n // flex-grow: 0.7;\r\n cursor: pointer;\r\n // width: 100%;\r\n // border-radius: 5px;\r\n // margin-top:15px;\r\n // margin-bottom:15px;\r\n // margin-right: 10px;\r\n // margin: 15px 0px 10px 0px;\r\n // background-color: var(--tertiary-color);\r\n color: #fff;\r\n padding: 8px;\r\n justify-content: center;\r\n // max-width: calc(100vw - 7em);\r\n font-weight: normal;\r\n\r\n &.removeFromList {\r\n\tbackground-color: #EE3124;\r\n }\r\n}\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n & + .subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n .description {\r\n\tflex-basis: 50%;\r\n\tjustify-content: center;\r\n }\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 300px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t// width: 575px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\r\n\t\t//width: 300px;\r\n\t\t.productImage {\r\n\t\t // max-height: 50%;\r\n\t\t // max-width: 50%;\r\n\t\t max-height: 180px;\r\n\t\t max-width: 85px;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\t/*.description {\r\n\t\tpadding-top: 10px;\r\n\t\tpadding-left: 100px;\r\n\t\tpadding-bottom: 70px;\r\n\t\tposition: relative;\r\n\t}*/\r\n\r\n\t/*.btn.page {\r\n\t\ttransform: rotate(90deg);\r\n\t\twidth: 146px;\r\n\t\tposition: absolute;\r\n\t\tleft: 0;\r\n\t\tbottom: 38%;\r\n\t}*/\r\n\r\n\th4,\r\n\t.subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle + .subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n\r\n .content-container {\r\n\twidth: 300px;\r\n }\r\n}\r\n\r\n@media (max-width: 850px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n\r\n /*.modal-wpr {\r\n\ttop: 65px;\r\n}*/\r\n .walkthrough {\r\n\tdisplay: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n\tdisplay: flex !important;\r\n }\r\n\r\n .desktop {\r\n\tdisplay: none !important;\r\n }\r\n\r\n .modal-wpr .modal {\r\n\t/* margin-top: 140px;\r\n\twidth: 90% !important;*/\r\n\twidth: 338px;\r\n\r\n\t.content {\r\n\t .f-half {\r\n\t\t/*flex-direction: row !important;*/\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 400px;\r\n\t }\r\n\t}\r\n\r\n\t.header {\r\n\t padding-bottom: 4px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 14px;\r\n\t }\r\n\t}\r\n }\r\n\r\n .heading {\r\n\tdisplay: none;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n\tdisplay: block;\r\n\tbackground: none;\r\n\tpadding: 0 6%;\r\n\r\n\t.description {\r\n\t padding: 0;\r\n\t margin-bottom: 20px;\r\n\t height: 50px;\r\n\t}\r\n\r\n\t.button-preview {\r\n\t display: block;\r\n\t position: relative;\r\n\t padding-left: 60px;\r\n\t width: 100%;\r\n\r\n\t h4 {\r\n\t\tpadding: 0;\r\n\t }\r\n\r\n\t .subtitle {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .btn {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t }\r\n\t}\r\n }\r\n\r\n .subtitle.mobile {\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n }\r\n}\r\n</style>-->\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpRexallRaddar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpRexallRaddar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdpRexallRaddar.vue?vue&type=template&id=5f8d9b42&scoped=true&\"\nimport script from \"./PdpRexallRaddar.vue?vue&type=script&lang=js&\"\nexport * from \"./PdpRexallRaddar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdpRexallRaddar.vue?vue&type=style&index=0&id=5f8d9b42&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f8d9b42\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdp-raddar\"},[_c('h2',{staticClass:\"header\"},[_c('span',{staticClass:\"pdpTitle\"},[_vm._v(_vm._s(_vm.lang.pdpTitle))]),_c('button',{staticClass:\"close-btn\",attrs:{\"aria-label\":_vm.lang.pdpClose,\"tabindex\":\"0\"},on:{\"click\":_vm.close,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.close.apply(null, arguments)}}},[_c('img',{attrs:{\"alt\":\"Close\",\"src\":\"/images/icon-close-white.svg\"}})])]),_c('div',{ref:\"toastContent\",staticClass:\"content\"},[_c('div',{class:(\"content-container \" + _vm.flyerOrientation)},[_c('div',{staticClass:\"handle-border\"},[_c('div',{staticClass:\"pdpContainer\"},[_c('div',{staticClass:\"productImageContainer\"},[_c('img',{staticClass:\"productImage\",attrs:{\"src\":_vm.productImage}})]),_c('div',{staticClass:\"price\",attrs:{\"tabindex\":\"0\"}},[_c('h2',[(_vm.pricePrefix && !_vm.memberPrice)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pricePrefix)+\" \")]):_vm._e(),(_vm.priceQty && !_vm.memberPrice && !_vm.isXDaySale)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),(_vm.memberPrice && _vm.memberPricePrefix)?_c('span',[_vm._v(_vm._s(_vm.toTitleCase(_vm.memberPricePrefix))+\" \")]):_vm._e(),(_vm.memberPrice && _vm.memberPriceQty)?_c('span',[_vm._v(_vm._s(_vm.memberPriceQty)+\" /\")]):_vm._e(),(_vm.memberPrice)?_c('span',[_vm._v(_vm._s(_vm.memberPrice))]):_vm._e(),(_vm.memberPrice && _vm.memberPriceUnit)?_c('span',[_vm._v(\" \"+_vm._s(_vm.memberPriceUnit))]):_vm._e(),(_vm.isXDaySale && _vm.rowPriceQty)?_c('span',[_vm._v(_vm._s(_vm.rowPriceQty)+\" / \")]):_vm._e(),(_vm.isXDaySale && _vm.rowPrice)?_c('span',[_vm._v(\" \"+_vm._s(_vm.rowPrice))]):_vm._e(),(_vm.isXDaySale && _vm.rowSave)?_c('span',[_vm._v(\" \"+_vm._s(_vm.rowSave))]):_vm._e(),(_vm.memberPrice && _vm.rowPriceUnit)?_c('span',[_vm._v(_vm._s(_vm.rowPriceUnit))]):_vm._e(),(!_vm.memberPrice && _vm.salePrice && !_vm.isXDaySale)?_c('span',[_vm._v(\" \"+_vm._s(_vm.salePrice))]):_vm._e(),(!_vm.memberPrice && _vm.salePrice && _vm.isXDaySale)?_c('span',[_vm._v(\" \"+_vm._s(_vm.rowPriceUnit))]):_vm._e(),(!_vm.memberPrice && _vm.promoUnit && !_vm.isXDaySale && _vm.salePrice!=='')?_c('span',[_vm._v(\" \"+_vm._s(_vm.promoUnit)+\" \")]):_vm._e(),_c('div',[((_vm.memberPrice||_vm.memberSave) && _vm.memberSavePrefix)?_c('span',[_vm._v(\" \"+_vm._s(_vm.toTitleCase(_vm.memberSavePrefix)))]):_vm._e(),((_vm.memberPrice || _vm.memberSave))?_c('span',[_vm._v(\" \"+_vm._s(_vm.memberSave))]):_vm._e(),((_vm.memberPrice || _vm.memberSave) && _vm.memberSaveSuffix)?_c('span',[_vm._v(\" \"+_vm._s(_vm.toTitleCase(_vm.memberSaveSuffix)))]):_vm._e()]),(_vm.isXDaySale)?_c('div',{staticClass:\"xdaysaledates\",domProps:{\"innerHTML\":_vm._s(_vm.XDaySaleDates)}}):_vm._e(),(_vm.isXDaySale)?_c('div',{staticClass:\"rowSalePrice\"},[(_vm.priceQty)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.pricePrefix)+\" \"+_vm._s(_vm.salePrice)+\" \"+_vm._s(_vm.promoUnit))]),_c('span',[_vm._v(_vm._s(_vm.product.savingsEn)+\" \")]),(_vm.language=='en')?_c('span',[_vm._v(\"REST OF THE WEEK / LE RESTE DE LA SEMAINE\")]):_c('span',[_vm._v(\"LE RESTE DE LA SEMAINE / REST OF THE WEEK\")])]):_vm._e(),(_vm.product.alternatePrice)?_c('span',{staticClass:\"alternatePrice\"},[_vm._v(_vm._s(_vm.product.alternatePrice))]):_vm._e()]),(_vm.product.savingsEn && !_vm.product.salePrice && !_vm.memberSave && !_vm.isXDaySale)?_c('div',{staticClass:\"savings\"},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.product.savingsPrefix)+\" \"+_vm._s(_vm.product.savingsEn)+\" \"+_vm._s(_vm.product.savingsSuffix)+\" \")])]):_vm._e()]),(_vm.memberSave && _vm.savings)?_c('div',{staticClass:\"discountPrice\"},[_vm._v(\" \"+_vm._s(_vm.savingsPrefix)+\" \"),(_vm.savings)?_c('span',[_vm._v(_vm._s(_vm.savings)+\" \")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.savingsSuffix)+\" \")]):_vm._e(),(_vm.language=='en' && _vm.memberPrice)?_c('div',{staticClass:\"discountPrice\"},[_vm._v(\" \"+_vm._s(_vm.product.salePricePrefixEn)+\" \"),(_vm.priceQty)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.salePrice)+\" \")]):_vm._e(),(_vm.language=='fr' && _vm.memberPrice)?_c('div',{staticClass:\"discountPrice\"},[_vm._v(\" \"+_vm._s(_vm.product.salePricePrefixFr)+\" \"),(_vm.priceQty)?_c('span',[_vm._v(_vm._s(_vm.priceQty)+\" /\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.salePrice)+\" \")]):_vm._e(),_c('div',{staticClass:\"discountPrice\"},[_vm._v(\" \"+_vm._s(_vm.loyaltyPrefix)+\" \"+_vm._s(_vm.loyalty)+\" \"+_vm._s(_vm.loyaltySuffix)+\" \")]),(_vm.showProductName)?_c('div',{staticClass:\"detail\"},[_c('div',{staticClass:\"detail-header\"},[_c('h2',{attrs:{\"tabindex\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.productName)+\" \")])])]):_vm._e(),(_vm.description)?_c('div',{staticClass:\"detail\"},[_c('div',[_c('span',[_vm._v(_vm._s(_vm.lang.pdpDetails))]),_c('p',{staticClass:\"detail-content\",attrs:{\"tabindex\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.htmlDescription)}})])]):_vm._e(),(_vm.savings && _vm.salePrice!=='')?_c('div',{staticClass:\"rowSave\"},[_vm._v(\" \"+_vm._s(_vm.savingsPrefix)+\" \"+_vm._s(_vm.savings)+\" \"+_vm._s(_vm.savingsSuffix)+\" \")]):_vm._e(),(_vm.limitQty)?_c('div',{staticClass:\"limitQty\"},[_vm._v(\" \"+_vm._s(_vm.limitQty)+\" \")]):_vm._e(),_c('div',{staticClass:\"detail\"},[(_vm.sku)?_c('span',{staticClass:\"product-sku\"},[_vm._v(\"#\"+_vm._s(_vm.sku))]):_vm._e()]),_c('div',{staticClass:\"validity\"},[_c('span',[_c('strong',[_vm._v(_vm._s(_vm.lang.pdpValidFrom))])]),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.htmlValidity)}})])]),_c('div',{staticClass:\"button-container\"},[_c('div',{staticClass:\"button-container\"},[_c('shopping-list-button',{attrs:{\"product\":_vm.product}})],1),_c('div',{staticClass:\"button-container\"},[(_vm.config.allowShare)?_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: \"Share\", placement:'bottom'}),expression:\"{content: `Share`, placement:'bottom'}\"}],staticClass:\"pdp-btn round\",attrs:{\"href\":_vm.productURL,\"target\":\"_blank\"},on:{\"click\":function($event){return _vm.handleShareDeal(_vm.product)}}},[_c('svg',{staticClass:\"icon\",attrs:{\"viewBox\":\"0 0 16 16\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"9D711932-C33A-4FC1-805D-8E2D5C4F78DA\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"id\":\"raddar_R2_PDP_1.0\",\"transform\":\"translate(-1357, -638)\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\"}},[_c('g',{attrs:{\"id\":\"popup-pdp-copy\",\"transform\":\"translate(1166, 195)\"}},[_c('path',{attrs:{\"d\":\"M204.132987,453.285727 C203.25937,453.292133 202.436771,453.698479 201.900379,454.388586 L196.601505,451.737154 C196.669665,451.497232 196.706139,451.249411 196.709994,451.00001 C196.706139,450.75061 196.669665,450.502788 196.601505,450.262866 L201.900379,447.611434 C202.436771,448.301541 203.25937,448.707887 204.132987,448.714293 C205.709759,448.714293 206.987985,447.435105 206.987985,445.857147 C206.987985,444.279188 205.709759,443 204.132987,443 C202.556216,443 201.27799,444.279188 201.27799,445.857147 C201.281846,446.106547 201.318319,446.354368 201.38648,446.59429 L196.087605,449.245722 C195.551213,448.555615 194.728614,448.14927 193.854997,448.142864 C192.278226,448.142864 191,449.422052 191,451.00001 C191,452.577969 192.278226,453.857157 193.854997,453.857157 C194.728614,453.850751 195.551213,453.444405 196.087605,452.754298 L201.38648,455.40573 C201.070707,456.589151 201.543834,457.842343 202.562665,458.521142 C203.581496,459.199942 204.919331,459.15331 205.888501,458.405217 C206.857671,457.657124 207.242527,456.374027 206.845245,455.21546 C206.447963,454.056893 205.356942,453.280648 204.132987,453.285727 Z\",\"id\":\"icon-share-grey\"}})])])])])]):_vm._e(),(_vm.productURL)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: \"Go To Website\", placement:'bottom'}),expression:\"{content: `Go To Website`, placement:'bottom'}\"}],staticClass:\"pdp-btn round\",attrs:{\"href\":_vm.productURL,\"target\":\"_blank\"}},[_c('svg',{staticClass:\"icon\",attrs:{\"version\":\"1.1\",\"viewBox\":\"0 0 16 16\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"42D445B9-8057-47B2-A7AF-03D5707F36E5\")]),_c('g',{attrs:{\"id\":\"R2---Desktop-wireframes\",\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":\"none\",\"stroke-width\":\"1\"}},[_c('g',{attrs:{\"id\":\"raddar_R2_PDP_1.0\",\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\",\"transform\":\"translate(-1398, -638)\"}},[_c('g',{attrs:{\"id\":\"popup-pdp-copy\",\"transform\":\"translate(1166, 195)\"}},[_c('path',{attrs:{\"id\":\"Icon-website\",\"d\":\"M240,459 C244.41077,459 248,455.41077 248,451 C248,446.58923 244.408265,443 240,443 C235.586725,443 232,446.591735 232,451 C232,455.41077 235.586725,459 240,459 Z M239.371321,448.302442 L239.371321,450.368817 L236.791484,450.368817 C236.824045,449.652473 236.911709,448.958673 237.054477,448.302442 L239.371321,448.302442 L239.371321,448.302442 Z M234.539762,447.045085 C235.190983,446.148403 236.050094,445.427051 237.036944,444.94114 C236.924233,445.116468 236.819036,445.299311 236.716343,445.494678 C236.473388,445.96556 236.260488,446.486537 236.087664,447.045085 L234.539762,447.045085 Z M239.371321,444.397621 L239.371321,447.047589 L237.410144,447.047589 C237.537884,446.699436 237.678147,446.376331 237.830933,446.078272 C238.276769,445.231684 238.810269,444.64809 239.371321,444.397621 Z M236.087664,454.954915 C236.260488,455.513463 236.473388,456.03444 236.716343,456.502818 C236.819036,456.698184 236.924233,456.883532 237.036944,457.056356 C236.050094,456.572949 235.190983,455.851597 234.539762,454.954915 L236.087664,454.954915 Z M239.371321,454.954915 L239.371321,457.604884 C238.810269,457.35191 238.276769,456.768316 237.830933,455.921728 C237.678147,455.623669 237.535379,455.298059 237.410144,454.954915 L239.371321,454.954915 Z M239.371321,451.628679 L239.371321,453.692549 L237.054477,453.692549 C236.911709,453.038823 236.82154,452.347527 236.791484,451.628679 L239.371321,451.628679 Z M233.284909,450.368817 C233.350031,449.652473 233.530369,448.958673 233.81841,448.302442 L235.769568,448.302442 C235.641828,448.968691 235.561678,449.659987 235.531622,450.368817 L233.284909,450.368817 Z M233.284909,451.628679 L235.529117,451.628679 C235.559173,452.337508 235.639324,453.031309 235.769568,453.692549 L233.81841,453.692549 C233.530369,453.038823 233.352536,452.345022 233.284909,451.628679 Z M244.227927,448.302442 L246.176581,448.302442 C246.467126,448.963682 246.644959,449.654978 246.712586,450.368817 L244.468378,450.368817 C244.435817,449.659987 244.355667,448.966187 244.227927,448.302442 Z M246.712586,451.628679 C246.644959,452.345022 246.467126,453.036318 246.179086,453.695053 L244.227927,453.695053 C244.355667,453.033813 244.435817,452.340013 244.468378,451.631183 L246.712586,451.631183 L246.712586,451.628679 Z M243.91484,447.045085 C243.739512,446.486537 243.526612,445.96556 243.281152,445.494678 C243.180964,445.299311 243.073262,445.116468 242.960551,444.94114 C243.949906,445.424546 244.806512,446.145899 245.457733,447.045085 L243.91484,447.045085 Z M240.628679,447.045085 L240.628679,444.397621 C241.187226,444.64809 241.725736,445.231684 242.166562,446.078272 C242.321853,446.376331 242.462116,446.699436 242.587351,447.047589 L240.628679,447.047589 L240.628679,447.045085 Z M240.628679,450.368817 L240.628679,448.302442 L242.945523,448.302442 C243.088291,448.961177 243.17846,449.652473 243.208516,450.368817 L240.628679,450.368817 Z M245.457733,454.954915 C244.806512,455.851597 243.947401,456.572949 242.960551,457.05886 C243.073262,456.883532 243.180964,456.698184 243.281152,456.502818 C243.529117,456.03444 243.739512,455.513463 243.91484,454.954915 L245.457733,454.954915 L245.457733,454.954915 Z M240.628679,453.695053 L240.628679,451.628679 L243.208516,451.628679 C243.17846,452.347527 243.085786,453.038823 242.945523,453.695053 L240.628679,453.695053 Z M240.628679,457.602379 L240.628679,454.954915 L242.587351,454.954915 C242.462116,455.300564 242.321853,455.626174 242.166562,455.924233 C241.723231,456.768316 241.187226,457.35191 240.628679,457.602379 Z\"}})])])])])]):_vm._e()])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"pdp-raddar\">\r\n\t\t<h2 class=\"header\">\r\n\t\t\t<span class=\"pdpTitle\">{{ lang.pdpTitle }}</span>\r\n\t\t\t<button :aria-label=\"lang.pdpClose\" class=\"close-btn\" tabindex=\"0\" @click=\"close\"\r\n\t\t\t @keydown.esc=\"close\">\r\n\t\t\t\t<img alt=\"Close\" src=\"/images/icon-close-white.svg\"/>\r\n\t\t\t</button>\r\n\t\t</h2>\r\n\t\t<div ref=\"toastContent\" class=\"content\">\r\n\t\t\t<div :class=\"`content-container ${flyerOrientation}`\">\r\n\t\t\t\t<div class=\"handle-border\">\r\n\t\t\t\t\t<div class=\"pdpContainer\">\r\n\t\t\t\t\t\t<div class=\"productImageContainer\">\r\n\t\t\t\t\t\t\t<img :src=\"productImage\" class=\"productImage\"/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\r\n\r\n <div class=\"price\" tabindex=\"0\">\r\n <h2>\r\n <span v-if=\"pricePrefix && !memberPrice\"> {{ pricePrefix }} </span>\r\n <span v-if=\"priceQty && !memberPrice && !isXDaySale\">{{ priceQty }} /</span>\r\n\r\n <span v-if=\"memberPrice && memberPricePrefix\">{{toTitleCase(memberPricePrefix)}} </span>\r\n <span v-if=\"memberPrice && memberPriceQty\">{{memberPriceQty}} /</span>\r\n <span v-if=\"memberPrice\">{{memberPrice}}</span>\r\n <span v-if=\"memberPrice && memberPriceUnit\"> {{memberPriceUnit}}</span>\r\n\r\n <span v-if=\"isXDaySale && rowPriceQty\">{{rowPriceQty}} / </span>\r\n <span v-if=\"isXDaySale && rowPrice\"> {{rowPrice}}</span>\r\n <span v-if=\"isXDaySale && rowSave\"> {{rowSave}}</span>\r\n <span v-if=\"memberPrice && rowPriceUnit\">{{rowPriceUnit}}</span>\r\n <span v-if=\"!memberPrice && salePrice && !isXDaySale\"> {{ salePrice }}</span>\r\n <span v-if=\"!memberPrice && salePrice && isXDaySale\"> {{ rowPriceUnit }}</span>\r\n <span v-if=\"!memberPrice && promoUnit && !isXDaySale && salePrice!==''\"> {{ promoUnit }} </span>\r\n <div>\r\n <span v-if=\"(memberPrice||memberSave) && memberSavePrefix\"> {{ toTitleCase(memberSavePrefix) }}</span>\r\n <span v-if=\"(memberPrice || memberSave)\"> {{ memberSave }}</span>\r\n <span v-if=\"(memberPrice || memberSave) && memberSaveSuffix\"> {{ toTitleCase(memberSaveSuffix) }}</span>\r\n </div>\r\n <div v-if=\"isXDaySale\" class=\"xdaysaledates\" v-html=\"XDaySaleDates\"> </div>\r\n\r\n <div class=\"rowSalePrice\" v-if=\"isXDaySale\">\r\n <span v-if=\"priceQty\">{{priceQty}} /</span>\r\n <span>{{pricePrefix}} {{salePrice}} {{promoUnit}}</span>\r\n <span>{{product.savingsEn}} </span>\r\n <span v-if=\"language=='en'\">REST OF THE WEEK / LE RESTE DE LA SEMAINE</span>\r\n <span v-else>LE RESTE DE LA SEMAINE / REST OF THE WEEK</span>\r\n </div>\r\n\r\n <span\r\n v-if=\"product.alternatePrice\"\r\n class=\"alternatePrice\"\r\n >{{ product.alternatePrice }}</span>\r\n </h2>\r\n\r\n <div v-if=\"product.savingsEn && !product.salePrice && !memberSave && !isXDaySale\" class=\"savings\">\r\n <h2>\r\n {{ product.savingsPrefix }}\r\n {{ product.savingsEn }}\r\n {{ product.savingsSuffix }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"discountPrice\" v-if=\"memberSave && savings\">\r\n {{savingsPrefix}} <span v-if=\"savings\">{{savings}} </span> {{savingsSuffix}}\r\n </div>\r\n\r\n <div class=\"discountPrice\" v-if=\"language=='en' && memberPrice\">\r\n {{product.salePricePrefixEn}} <span v-if=\"priceQty\">{{priceQty}} /</span> {{salePrice}}\r\n </div>\r\n\r\n <div class=\"discountPrice\" v-if=\"language=='fr' && memberPrice\">\r\n {{product.salePricePrefixFr}} <span v-if=\"priceQty\">{{priceQty}} /</span> {{salePrice}}\r\n </div>\r\n\r\n <div class=\"discountPrice\">\r\n {{loyaltyPrefix}} {{loyalty}} {{loyaltySuffix}}\r\n </div>\r\n\t\t\t\t\t\t<div v-if=\"showProductName\" class=\"detail\">\r\n\t\t\t\t\t\t\t<div class=\"detail-header\">\r\n\t\t\t\t\t\t\t\t<h2 tabindex=\"0\"> {{ productName }} </h2>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div v-if=\"description\" class=\"detail\">\r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<span>{{ lang.pdpDetails }}</span>\r\n\t\t\t\t\t\t\t\t<p class=\"detail-content\" tabindex=\"0\" v-html=\"htmlDescription\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"rowSave\" v-if=\"savings && salePrice!==''\">\r\n {{savingsPrefix}} {{savings}} {{savingsSuffix}}\r\n </div>\r\n\r\n <div v-if=\"limitQty\" class=\"limitQty\">\r\n {{limitQty}}\r\n </div>\r\n\t\t\t\t\t\t<div class=\"detail\">\r\n\t\t\t\t\t\t\t<span v-if=\"sku\" class=\"product-sku\">#{{ sku }}</span>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<div class=\"validity\">\r\n\t\t\t\t\t\t\t<span><strong>{{ lang.pdpValidFrom }}</strong></span>\r\n\t\t\t\t\t\t\t<div v-html=\"htmlValidity\"></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t\t<shopping-list-button :product=\"product\"/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"button-container\">\r\n\t\t\t\t\t\t\t<div v-if=\"config.allowShare\" v-tooltip=\"{content: `Share`, placement:'bottom'}\" :href=\"productURL\" class=\"pdp-btn round\" target=\"_blank\" @click=handleShareDeal(product)>\r\n\t\t\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t<title>9D711932-C33A-4FC1-805D-8E2D5C4F78DA</title>\r\n\t\t\t\t\t\t\t\t\t<g id=\"R2---Desktop-wireframes\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n\t\t\t\t\t\t\t\t\t\t<g id=\"raddar_R2_PDP_1.0\" transform=\"translate(-1357, -638)\" fill=\"currentColor\" fill-rule=\"nonzero\">\r\n\t\t\t\t\t\t\t\t\t\t\t<g id=\"popup-pdp-copy\" transform=\"translate(1166, 195)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<path d=\"M204.132987,453.285727 C203.25937,453.292133 202.436771,453.698479 201.900379,454.388586 L196.601505,451.737154 C196.669665,451.497232 196.706139,451.249411 196.709994,451.00001 C196.706139,450.75061 196.669665,450.502788 196.601505,450.262866 L201.900379,447.611434 C202.436771,448.301541 203.25937,448.707887 204.132987,448.714293 C205.709759,448.714293 206.987985,447.435105 206.987985,445.857147 C206.987985,444.279188 205.709759,443 204.132987,443 C202.556216,443 201.27799,444.279188 201.27799,445.857147 C201.281846,446.106547 201.318319,446.354368 201.38648,446.59429 L196.087605,449.245722 C195.551213,448.555615 194.728614,448.14927 193.854997,448.142864 C192.278226,448.142864 191,449.422052 191,451.00001 C191,452.577969 192.278226,453.857157 193.854997,453.857157 C194.728614,453.850751 195.551213,453.444405 196.087605,452.754298 L201.38648,455.40573 C201.070707,456.589151 201.543834,457.842343 202.562665,458.521142 C203.581496,459.199942 204.919331,459.15331 205.888501,458.405217 C206.857671,457.657124 207.242527,456.374027 206.845245,455.21546 C206.447963,454.056893 205.356942,453.280648 204.132987,453.285727 Z\" id=\"icon-share-grey\"></path>\r\n\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<a v-if=\"productURL\" v-tooltip=\"{content: `Go To Website`, placement:'bottom'}\" :href=\"productURL\" class=\"pdp-btn round\" target=\"_blank\">\r\n\t\t\t\t\t\t\t\t<svg class=\"icon\" version=\"1.1\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n\t\t\t\t\t\t\t\t\t<title>42D445B9-8057-47B2-A7AF-03D5707F36E5</title>\r\n\t\t\t\t\t\t\t\t\t<g id=\"R2---Desktop-wireframes\" fill=\"none\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\r\n\t\t\t\t\t\t\t\t\t\t<g id=\"raddar_R2_PDP_1.0\" fill=\"currentColor\" fill-rule=\"nonzero\" transform=\"translate(-1398, -638)\">\r\n\t\t\t\t\t\t\t\t\t\t\t<g id=\"popup-pdp-copy\" transform=\"translate(1166, 195)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<path id=\"Icon-website\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t d=\"M240,459 C244.41077,459 248,455.41077 248,451 C248,446.58923 244.408265,443 240,443 C235.586725,443 232,446.591735 232,451 C232,455.41077 235.586725,459 240,459 Z M239.371321,448.302442 L239.371321,450.368817 L236.791484,450.368817 C236.824045,449.652473 236.911709,448.958673 237.054477,448.302442 L239.371321,448.302442 L239.371321,448.302442 Z M234.539762,447.045085 C235.190983,446.148403 236.050094,445.427051 237.036944,444.94114 C236.924233,445.116468 236.819036,445.299311 236.716343,445.494678 C236.473388,445.96556 236.260488,446.486537 236.087664,447.045085 L234.539762,447.045085 Z M239.371321,444.397621 L239.371321,447.047589 L237.410144,447.047589 C237.537884,446.699436 237.678147,446.376331 237.830933,446.078272 C238.276769,445.231684 238.810269,444.64809 239.371321,444.397621 Z M236.087664,454.954915 C236.260488,455.513463 236.473388,456.03444 236.716343,456.502818 C236.819036,456.698184 236.924233,456.883532 237.036944,457.056356 C236.050094,456.572949 235.190983,455.851597 234.539762,454.954915 L236.087664,454.954915 Z M239.371321,454.954915 L239.371321,457.604884 C238.810269,457.35191 238.276769,456.768316 237.830933,455.921728 C237.678147,455.623669 237.535379,455.298059 237.410144,454.954915 L239.371321,454.954915 Z M239.371321,451.628679 L239.371321,453.692549 L237.054477,453.692549 C236.911709,453.038823 236.82154,452.347527 236.791484,451.628679 L239.371321,451.628679 Z M233.284909,450.368817 C233.350031,449.652473 233.530369,448.958673 233.81841,448.302442 L235.769568,448.302442 C235.641828,448.968691 235.561678,449.659987 235.531622,450.368817 L233.284909,450.368817 Z M233.284909,451.628679 L235.529117,451.628679 C235.559173,452.337508 235.639324,453.031309 235.769568,453.692549 L233.81841,453.692549 C233.530369,453.038823 233.352536,452.345022 233.284909,451.628679 Z M244.227927,448.302442 L246.176581,448.302442 C246.467126,448.963682 246.644959,449.654978 246.712586,450.368817 L244.468378,450.368817 C244.435817,449.659987 244.355667,448.966187 244.227927,448.302442 Z M246.712586,451.628679 C246.644959,452.345022 246.467126,453.036318 246.179086,453.695053 L244.227927,453.695053 C244.355667,453.033813 244.435817,452.340013 244.468378,451.631183 L246.712586,451.631183 L246.712586,451.628679 Z M243.91484,447.045085 C243.739512,446.486537 243.526612,445.96556 243.281152,445.494678 C243.180964,445.299311 243.073262,445.116468 242.960551,444.94114 C243.949906,445.424546 244.806512,446.145899 245.457733,447.045085 L243.91484,447.045085 Z M240.628679,447.045085 L240.628679,444.397621 C241.187226,444.64809 241.725736,445.231684 242.166562,446.078272 C242.321853,446.376331 242.462116,446.699436 242.587351,447.047589 L240.628679,447.047589 L240.628679,447.045085 Z M240.628679,450.368817 L240.628679,448.302442 L242.945523,448.302442 C243.088291,448.961177 243.17846,449.652473 243.208516,450.368817 L240.628679,450.368817 Z M245.457733,454.954915 C244.806512,455.851597 243.947401,456.572949 242.960551,457.05886 C243.073262,456.883532 243.180964,456.698184 243.281152,456.502818 C243.529117,456.03444 243.739512,455.513463 243.91484,454.954915 L245.457733,454.954915 L245.457733,454.954915 Z M240.628679,453.695053 L240.628679,451.628679 L243.208516,451.628679 C243.17846,452.347527 243.085786,453.038823 242.945523,453.695053 L240.628679,453.695053 Z M240.628679,457.602379 L240.628679,454.954915 L242.587351,454.954915 C242.462116,455.300564 242.321853,455.626174 242.166562,455.924233 C241.723231,456.768316 241.187226,457.35191 240.628679,457.602379 Z\"></path>\r\n\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n</template>\r\n\r\n<script>\r\nimport PdpProductMixin from \"@/features/pdp/PdpProductMixin\";\r\nimport ShoppingListButton from \"@/features/pdp/buttons/ShoppingListButton.vue\";\r\nimport {mapActions, mapGetters, mapState} from \"vuex\";\r\nimport router from \"@/router\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\nimport moment from \"moment\";\r\n\r\nexport default {\r\n\tname: \"PdpRaddar\",\r\n\tcomponents: {ShoppingListButton},\r\n\r\n\tmixins: [PdpProductMixin],\r\n computed: {\r\n ...mapGetters([\"content\", \"language\",\"dealId\",\"blockData\",\"isJC\"]),\r\n ...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n ...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n ...mapState(\"shoppingList\", [\"shoppingListV2\"]),\r\n ...mapGetters(\"pdp\", {pdpEnabled: \"enabled\"}),\r\n ...mapState(\"pdp\", {showPdp: \"isVisible\"}),\r\n ...mapGetters('shoppingList', {listEnabled: 'enabled'}),\r\n\r\n isPharmaProduct(){\r\n if(this.product?.tags === null) return false;\r\n return this.product?.tags?.some(txt => txt.toLowerCase() === 'pharma')\r\n },\r\n showBilingualDisclaimer(){\r\n return this.currentFlyer.province === 'NB' || this.currentFlyer.province === 'ON';\r\n },\r\n\r\n getLogo(){\r\n return `/icons/favicon/${AppConfig?.AppConf?.title}.ico`\r\n },\r\n clientName(){\r\n return `${AppConfig?.AppConf?.title}`\r\n },\r\n\r\n isSwipeAndSave() {\r\n if (this.product === null) return;\r\n return this.product.tags?.includes('S&S');\r\n },\r\n\r\n isXDaySale() {\r\n if (this.product === null) return;\r\n const date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n //subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day) that are passed as parameters\r\n const startDate = moment(this.product.validFromROW).subtract(1, \"days\")\r\n const endDate = moment(this.product.validToROW).add(1, \"days\")\r\n if ((this.product.validFrom !== this.currentFlyer.startDate) && (this.product.validTo !== this.currentFlyer.endDate) ||\r\n (this.product.validFromROW !== this.currentFlyer.startDate) && (this.product.validToROW !== this.currentFlyer.endDate)) {\r\n return moment(date).isBetween(startDate, endDate); \r\n } else\r\n return false\r\n },\r\n\r\n XDaySaleDates(){\r\n if (this.product === null) return;\r\n let startDate, endDate;\r\n startDate = moment(this.product.validFromROW)\r\n endDate = moment(this.product.validToROW)\r\n\r\n if (this.language === 'en') {\r\n return `${moment.utc(startDate).locale(this.language).format('MMMM D, YYYY')} to ${moment.utc(endDate).locale(this.language).format('MMMM D, YYYY')}`\r\n } else {\r\n return `${startDate.format('D MMM YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} au ${endDate.format('D MMM YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n }\r\n },\r\n\r\n flyerDate() {\r\n if (this.product === null) return;\r\n let startDate, endDate;\r\n /*if (this.isXDaySale) {\r\n startDate = moment(this.product.validFromROW);\r\n endDate = moment(this.product.validToROW)\r\n } else {\r\n if (this.product.validFrom !== null) {*/\r\n startDate = moment(this.product.validFrom)\r\n endDate = moment(this.product.validTo)\r\n /* } else {\r\n startDate = moment(this.product.validFromROW);\r\n endDate = moment(this.product.validToROW)\r\n }\r\n }*/\r\n\r\n if (this.language === 'en') {\r\n return `${moment.utc(startDate).locale(this.language).format('MMMM D, YYYY')} to ${moment.utc(endDate).locale(this.language).format('MMMM D, YYYY')}`\r\n } else {\r\n return `${startDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')} jusqu'au ${endDate.format('D MMMM, YYYY').replace('1er', '1<sup style=\"vertical-align: top; font-size: 8px;\">er</sup>')}`;\r\n }\r\n\r\n },\r\n\r\n\r\n getSalePrice() {\r\n if (this.product === null) return\r\n let price\r\n const date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n //subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day)\r\n const startDate = moment(this.product.validFromROW).subtract(1, \"days\")\r\n const endDate = moment(this.product.validToROW).add(1, \"days\")\r\n if (this.isSwipeAndSave) {\r\n if (this.product?.savingsEn) {\r\n price = this.product.savingsPrefix + ' ' + this.product.savingsEn\r\n return price\r\n } else {\r\n price = this.product.salePrice\r\n }\r\n } else if (this.isXDaySale)\r\n price = this.product?.salePrice\r\n else if (this.product.rowPrice && moment(date).isBetween(startDate, endDate))\r\n price = this.product?.rowPrice;\r\n else\r\n price = this.product?.rowPrice;\r\n\r\n if (price == null)\r\n return ''\r\n\r\n\r\n else {\r\n if (this.product?.savingsEn) {\r\n price = this.product.savingsPrefix + ' ' + this.product.savingsEn\r\n return price\r\n } else {\r\n if (price.trim() !== '') {\r\n // do nothing to test\r\n } else {\r\n price = this.product.salePrice;\r\n\r\n }\r\n\r\n }\r\n }\r\n return this.product?.priceSign?.includes('$') ? `${this.product.priceSign}${(price)} ` : `${price}${this.product.priceSign}`;\r\n },\r\n\r\n getContents() {\r\n return this.product?.contents\r\n },\r\n\r\n columnView() {\r\n return this.flyerOrientation === \"vertical\";\r\n },\r\n\r\n enabled() {\r\n return this.pdpEnabled && this.config.mode === 'internal';\r\n }\r\n\r\n },\r\n\tmethods:{\r\n\t\t...mapActions('pdp', ['close']),\r\n toTitleCase(str) {\r\n return str.replace(/\\w\\S*/g, (txt) => {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n });\r\n },\r\n\t}\r\n\r\n\r\n};\r\n</script>\r\n\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.mobile {\r\n display: none !important;\r\n flex-flow: column;\r\n row-gap: 2em;\r\n padding: 1.5em;\r\n\r\n .description {\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\ttext-align: left;\r\n\talign-items: flex-end;\r\n\r\n\t> :first-child {\r\n\t width: calc(55px + 1em);\r\n\t}\r\n\r\n\t.mobile-content {\r\n\t flex-basis: 100%;\r\n\t}\r\n }\r\n}\r\n\r\n.modal-wpr {\r\n position: absolute;\r\n top: 0px;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 20;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n\t//background-color: var(--secondary-color);\r\n\tbackground-color: #fff;\r\n\t/*margin-top: 75px;*/\r\n\tborder: 1px solid #bbbbbb;\r\n\t/* overflow: auto;*/\r\n\tmax-height: calc(100% - 1em);\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tdisplay: flex;\r\n\tflex-flow: column;\r\n\tmax-width: calc(100% - 4em);\r\n\r\n\t.header {\r\n\t background-color: #261342;\r\n\t color: var(--primary-text-color);\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 18px;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 400;\r\n\t }\r\n\r\n\t .close-btn {\r\n\t\tcursor: pointer;\r\n\r\n\t\t&:hover {\r\n\t\t background: none;\r\n\t\t filter: unset;\r\n\t\t}\r\n\t }\r\n\t}\r\n\r\n\t.subtitle {\r\n\t padding-top: 6px;\r\n\t font-size: 12px;\r\n\t}\r\n\r\n\t.content {\r\n\t padding: 8px;\r\n\t background-color: #fff;\r\n\t color: #545454;\r\n\t position: relative;\r\n\t flex: 1 0 auto;\r\n\t // overflow: auto;\r\n\t // margin:0px 10px 10px 10px;\r\n\t margin: 10px 10px 17px;\r\n\t min-height: 250px;\r\n\t max-height: calc(100% - 4em);\r\n\r\n\r\n\t /*.scroll-container{\r\n\t\tposition: absolute;\r\n\t\ttop:0px;\r\n\t\tbottom:0px;\r\n\t\tleft:0px;\r\n\t\tright:0px;\r\n\t}*/\r\n\t .content-container {\r\n\t\ttext-align: left;\r\n\t\t//width:300px;\r\n\t }\r\n\r\n\t .f-half {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\r\n\t\tflex-direction: column;\r\n\r\n\t\t>div {\r\n\t\t flex-basis: 100%;\r\n\t\t display: flex;\r\n\t\t flex-flow: column;\r\n\t\t}\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 350px;\r\n\t }\r\n\r\n\t .feature {\r\n\t\tbackground: #eee;\r\n\t\tmargin: 12px 0;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\tflex: 1;\r\n\r\n\t\t.description {\r\n\t\t display: flex;\r\n\t\t font-size: 14px;\r\n\t\t padding: 15px 0;\r\n\r\n\t\t .button-preview {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\talign-items: center;\r\n\t\t\tpadding: 0 20px;\r\n\r\n\t\t\th4 {\r\n\t\t\t text-transform: uppercase;\r\n\t\t\t padding-top: 16px;\r\n\t\t\t white-space: nowrap;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t text-align: center;\r\n\t\t\t}\r\n\t\t }\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n.pdpTitle {\r\n font-size: 18px;\r\n font-weight: bold;\r\n margin-top: 6px;\r\n}\r\n\r\n.pdpContainer {\r\n //margin-left: 10px;\r\n max-width: calc(100vw - 5em);\r\n border: 1px solid #D3D3D3;\r\n padding: 10px;\r\n\r\n h2 {\r\n\tfont-size: 18px;\r\n\tline-height: 1.1em;\r\n\r\n\tspan {\r\n\t font-size: 24px;\r\n\t margin-top: 6px;\r\n\t &.price-unit {\r\n\t\tfont-size: 0.5em;\r\n\t\tmargin-left: 0.3em;\r\n\t }\r\n\t &.price-qty {\r\n\t\tmargin-right: 0.1em;\r\n\t &:empty {\r\n\t display: none;\r\n\t }\r\n\t }\r\n\t}\r\n }\r\n\r\n .productImageContainer {\r\n\tpadding: 5px 0;\r\n\tmargin-bottom: 10px;\r\n\tborder: 1px solid #D3D3D3;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n }\r\n\r\n .productImage {\r\n\t// max-height: 60%;\r\n\t// max-width: 60%;\r\n\tmax-height: 200px;\r\n\tmax-width: 90%;\r\n\twidth: auto;\r\n\theight: auto;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tmargin: auto;\r\n }\r\n\r\n .price {\r\n\tdisplay: flex;\r\n\t//color: #ee3124;\r\n\tcolor: #E95B5B;\r\n\tfont-weight: 900;\r\n\r\n h2 {\r\n span {\r\n font-size: unset;\r\n }\r\n }\r\n }\r\n\r\n .discountPrice {\r\n\r\n text-transform: uppercase;\r\n font-weight: bold;\r\n font-size: 14px;\r\n \r\n }\r\n .rowSave, .limitQty {\r\n\tfont-size: 15px;\r\n\tmargin-top: 10px;\r\n font-weight: 900;\r\n text-transform: uppercase;\r\n }\r\n .limitQty {\r\n\tmargin-top: unset;\r\n }\r\n\r\n span.alternatePrice {\r\n\tdisplay: inline-block;\r\n }\r\n\r\n .alternatePrice {\r\n\tcolor: #000;\r\n\tfont-size: 13px;\r\n\tfont-weight: normal;\r\n\tmargin-left: 5px;\r\n }\r\n\r\n .savings {\r\n color: #ee3124 !important;\r\n font-size: 18px;\r\n margin-top: 5px;\r\n\r\n\tspan {\r\n\t display: block;\r\n\t margin-bottom: 7px;\r\n\t}\r\n }\r\n\r\n .detail {\r\n\tfont-size: 15px;\r\n\tmargin-top: 10px;\r\n\tfont-weight: 900;\r\n\r\n\t.detail-header{\r\n\t display: flex;\r\n\t h2 {\r\n\t\tmargin-right: 5px;\r\n\t }\r\n\t}\r\n\r\n\t.detail-content {\r\n\t font-size: 14px;\r\n\t font-weight: normal;\r\n\t margin: 5px 0 8px;\r\n\r\n\t}\r\n\t.product-sku {\r\n\t font-size: 12px;\r\n\t}\r\n }\r\n\r\n .disclaimer-content {\r\n\tfont-size: 9px;\r\n\tfont-weight: normal;\r\n\tmargin-top: 10px;\r\n\tfont-style: italic;\r\n }\r\n}\r\n\r\nbutton {\r\n background: transparent;\r\n // border: 1px solid #ccc;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n color: #666;\r\n border-radius: 4px;\r\n border: none;\r\n}\r\n\r\n\r\n/* width */\r\n::-webkit-scrollbar {\r\n width: 15px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n //background: #f1f1f1;\r\n display: none;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n}\r\n\r\n/* Handle on hover */\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n\r\n.btn.page {\r\n width: 100%;\r\n height: 28px;\r\n justify-content: flex-start;\r\n padding-left: 3%;\r\n margin-bottom: 8px;\r\n\r\n &+.subtitle {\r\n\ttext-align: left !important;\r\n }\r\n}\r\n\r\n.page-num {\r\n background-color: var(--primary-color);\r\n color: var(--primary-text-color);\r\n border-radius: 4px;\r\n font-size: 12px;\r\n padding: 7px;\r\n}\r\n\r\n/*@media only screen and (max-width: 1024px){\r\n .modal-wpr .modal{\r\n .content {\r\n .f-half {\r\n flex-direction: column !important;\r\n }\r\n .content-container{\r\n width: 925px;\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n.navigation {\r\n .description {\r\n\tflex-basis: 50%;\r\n\tjustify-content: center;\r\n }\r\n}\r\n\r\n@media only screen and (max-height: 850px) and (min-width: 1024px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .f-half {\r\n\t\tflex-direction: row !important;\r\n\t }\r\n\r\n\t .content-container {\r\n\t\twidth: 300px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) and (min-width: 558px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\t\t// width: 575px;\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n@media only screen and (max-width: 700px) {\r\n .modal-wpr .modal {\r\n\t.content {\r\n\t .content-container {\r\n\r\n\t\t//width: 300px;\r\n\t\t.productImage {\r\n\t\t // max-height: 50%;\r\n\t\t // max-width: 50%;\r\n\t\t max-height: 180px;\r\n\t\t max-width: 85px;\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n\r\n/* Vertical View Specific */\r\n@media (min-width: 1200px) {\r\n .modal-wpr .modal.vertical .content .feature.navigation {\r\n\t/*.description {\r\n\t\tpadding-top: 10px;\r\n\t\tpadding-left: 100px;\r\n\t\tpadding-bottom: 70px;\r\n\t\tposition: relative;\r\n\t}*/\r\n\r\n\t/*.btn.page {\r\n\t\ttransform: rotate(90deg);\r\n\t\twidth: 146px;\r\n\t\tposition: absolute;\r\n\t\tleft: 0;\r\n\t\tbottom: 38%;\r\n\t}*/\r\n\r\n\th4,\r\n\t.subtitle {\r\n\t text-align: left;\r\n\t width: 100%;\r\n\t}\r\n\r\n\t.subtitle+.subtitle {\r\n\t margin-top: 1em;\r\n\t}\r\n }\r\n\r\n .content-container {\r\n\twidth: 300px;\r\n }\r\n}\r\n\r\n@media (max-width: 850px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n@media (min-width: 850px) and (max-width: 1023px) {\r\n /*.modal-wpr {\r\n\ttop: 125px;\r\n}*/\r\n}\r\n\r\n/* Mobile */\r\n@media (min-width: 1024px) and (max-width: 1200px) {\r\n\r\n /*.modal-wpr {\r\n\ttop: 65px;\r\n}*/\r\n .walkthrough {\r\n\tdisplay: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .mobile {\r\n\tdisplay: flex !important;\r\n }\r\n\r\n .desktop {\r\n\tdisplay: none !important;\r\n }\r\n\r\n .modal-wpr .modal {\r\n\t/* margin-top: 140px;\r\n\twidth: 90% !important;*/\r\n\twidth: 338px;\r\n\r\n\t.content {\r\n\t .f-half {\r\n\t\t/*flex-direction: row !important;*/\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 400px;\r\n\t }\r\n\t}\r\n\r\n\t.header {\r\n\t padding-bottom: 4px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 14px;\r\n\t }\r\n\t}\r\n }\r\n\r\n .heading {\r\n\tdisplay: none;\r\n }\r\n\r\n .modal-wpr .modal .content .feature {\r\n\tdisplay: block;\r\n\tbackground: none;\r\n\tpadding: 0 6%;\r\n\r\n\t.description {\r\n\t padding: 0;\r\n\t margin-bottom: 20px;\r\n\t height: 50px;\r\n\t}\r\n\r\n\t.button-preview {\r\n\t display: block;\r\n\t position: relative;\r\n\t padding-left: 60px;\r\n\t width: 100%;\r\n\r\n\t h4 {\r\n\t\tpadding: 0;\r\n\t }\r\n\r\n\t .subtitle {\r\n\t\ttext-align: left;\r\n\t }\r\n\r\n\t .btn {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t }\r\n\t}\r\n }\r\n\r\n .subtitle.mobile {\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n }\r\n}\r\n</style>\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdpJeanCoutuRaddar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdpJeanCoutuRaddar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./pdpJeanCoutuRaddar.vue?vue&type=template&id=4630f9dc&scoped=true&\"\nimport script from \"./pdpJeanCoutuRaddar.vue?vue&type=script&lang=js&\"\nexport * from \"./pdpJeanCoutuRaddar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./pdpJeanCoutuRaddar.vue?vue&type=style&index=0&id=4630f9dc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4630f9dc\",\n null\n \n)\n\nexport default component.exports","<script>\r\nimport featureMixin from \"@/mixins/featureMixin\";\r\nimport ClickOutside from \"vue-click-outside\";\r\nimport { mapGetters, mapState } from \"vuex\";\r\nimport PdpRaddar from \"@/features/pdp/templates/PdpRaddar.vue\";\r\nimport {\r\n\tPDP_EVENT_HIDE,\r\n\tPDP_EVENT_SHOW,\r\n\tPDP_MODE_EXTERNAL,\r\n\tPDP_MODE_INTERNAL\r\n} from \"@/features/pdp/PDP_Constants\";\r\nimport PdpDefault from \"@/features/pdp/templates/PdpDefault.vue\";\r\nimport PdpDefaultV1 from \"@/features/pdp/templates/PdpDefaultV1.vue\";\r\nimport PdpV2 from \"@/features/pdp/templates/PdpV2.vue\";\r\nimport PdpV3 from \"@/features/pdp/templates/PDPV3.vue\";\r\n\r\n//import ParentComms from \"@/classes/ParentComms\";\r\n//import ObjPropParser from \"@/classes/ObjPropParser\";\r\nimport RaddarPDPOld from \"@/features/pdp/templates/RaddarPDPOld.vue\";\r\nimport { getProductSku } from \"@/features/shopping-list/classes/ShoppingListController\";\r\nimport pdpRexallRaddar from \"@/features/pdp/templates/PdpRexallRaddar.vue\";\r\nimport pdpJeanCoutuRaddar from \"@/features/pdp/templates/pdpJeanCoutuRaddar.vue\";\r\nimport {PRODUCT_REGION_CLICK, PRODUCT_REGION_CLICK_EXTERNAL_LINK, PRODUCT_REGION_CLICK_WITH_SKU} from \"@/components/block/BlockEvents\";\r\nimport Lytics from \"../../classes/Lytics\";\r\n\r\nexport default {\r\n\tname: \"PDP\",\r\n\tdirectives: {\r\n\t\tClickOutside\r\n\t},\r\n\tmixins: [featureMixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tfeaturePath: \"pdp\",\r\n\t\t\tfeatureEvents: [\r\n\t\t\t\tPRODUCT_REGION_CLICK,\r\n\t\t\t\tPRODUCT_REGION_CLICK_WITH_SKU,\r\n\t\t\t\tPRODUCT_REGION_CLICK_EXTERNAL_LINK,\r\n\t\t\t\tPDP_EVENT_SHOW,\r\n\t\t\t\tPDP_EVENT_HIDE\r\n\t\t\t],\r\n\t\t\tproduct: null\r\n\t\t};\r\n\t},\r\n\tmounted() {\r\n\t\tdocument.addEventListener('click', this.handleClickOutside);\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\tdocument.removeEventListener('click', this.handleClickOutside);\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapState(['currentPageNumber']),\r\n\t\t...mapGetters(\"screen\", [\"flyerOrientation\"]),\r\n\t\t...mapGetters(\"landingPage\", [\"currentFlyer\"]),\r\n\t\ttemplates() {\r\n\t\t\treturn {\r\n\t\t\t\toldpdp: RaddarPDPOld,\r\n\t\t\t\traddar: PdpRaddar,\r\n\t\t\t\t\"jc-raddar\": pdpJeanCoutuRaddar,\r\n\t\t\t\t\"rexall-raddar\": pdpRexallRaddar,\r\n\t\t\t\tv1: PdpDefaultV1,\r\n v2: PdpV2,\r\n\t\t\t\tv3: PdpV3, \r\n\t\t\t\tdefault: PdpDefault\r\n\t\t\t};\r\n\t\t},\r\n\t\tpdpTemplate() {\r\n\t\t\tconst t = this.templates;\r\n\t\t\treturn t[this.config.template] || PdpDefault;\r\n\t\t},\r\n\t\tisOpen() {\r\n\t\t\treturn this.enabled && !!this.product;\r\n\t\t},\r\n\t\tenabled() {\r\n\t\t\treturn this.config?.enabled;\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tisProductValid(product) {\r\n\t\t\tconst sku = getProductSku(product);\r\n\t\t\tconst actionType = this.product?.actionType || this.product?.sku;\r\n\t\t\treturn !!sku && actionType !== \"url\" && !product?.isVideo;\r\n\t\t},\r\n\t\tsetProduct(product, blockData) {\r\n\t\t\tif (this.isProductValid(product)) {\r\n\t\t\t\tthis.product = {\r\n\t\t\t\t\t...product,\r\n\t\t\t\t\tblockData: blockData || product.blockData\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t},\r\n\t\tclearProduct() {\r\n\t\t\tthis.product = null;\r\n\t\t},\r\n\t\thandleClickOutside(event) {\r\n\t\t\tif(this.$refs.clickableElement && !this.$refs.clickableElement.contains(event.target)) {\r\n\t\t\t\tthis.clearProduct();\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFeatureEvent(event, data) {\r\n\t\t\tif (this.enabled) {\r\n\t\t\t\tswitch (event) {\r\n\t\t\t\t\tcase PDP_EVENT_SHOW:\r\n\t\t\t\t\tcase PRODUCT_REGION_CLICK:\r\n\t\t\t\t\t\tconsole.log(\"PDP Event Product Click:\", data);\r\n\t\t\t\t\t\tif (this.config?.mode === PDP_MODE_INTERNAL) {\r\n\t\t\t\t\t\t\tthis.setProduct(data?.product, data?.blockData);\r\n\t\t\t\t\t\t} else if (this.config?.mode === PDP_MODE_EXTERNAL) {\r\n\t\t\t\t\t\t\tconsole.log('External PDP click');\r\n\t\t\t\t\t\t\tLytics.TransferToMerchantClick({\r\n\t\t\t\t\t\t\t\tpage_number: this.currentPageNumber,\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t//Use Configuration Events\r\n\t\t\t\t\t\t\t//ParentComms.SendData(ObjPropParser.Parse(this?.config?.post, {__self:{ product: data?.product, flyer:this.currentFlyer }}));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase PDP_EVENT_HIDE:\r\n\t\t\t\t\t\tthis.clearProduct();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase PRODUCT_REGION_CLICK_WITH_SKU:\r\n\t\t\t\t\t\tif(this.config?.forceInternal && data.sku) {\r\n\t\t\t\t\t\t\tthis.setProduct(data?.product, data?.blockData);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line no-case-declarations\r\n\t\t\t\t\t\t\tconst clickRegionWithUrl = data.product.clickRegions.find(clickRegion => clickRegion.url)\r\n\t\t\t\t\t\t\tif (clickRegionWithUrl) {\r\n\t\t\t\t\t\t\t\twindow.open(clickRegionWithUrl.url)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase PRODUCT_REGION_CLICK_EXTERNAL_LINK:\r\n\t\t\t\t\tif (data.product.url !== '') {\r\n\t\t\t\t\t\t\twindow.open(data.product.url)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<div v-if=\"isOpen\" class=\"pdp modal-wpr\">\r\n\t\t<div\r\n\t\t\t\tref=\"clickableElement\"\r\n\t\t\t\t:class=\"`pdp-modal modal ${flyerOrientation} ${config.template || ''}`\"\r\n\t\t>\r\n\t\t\t<component\r\n\t\t\t\t\t:is=\"pdpTemplate\"\r\n\t\t\t\t\t:feature-config-path=\"featurePath\"\r\n\t\t\t\t\t:product=\"product\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t+\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.pdp.modal-wpr {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(0, 0, 0, 0.75);\r\n z-index: 100;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-end;\r\n flex-flow: column;\r\n\r\n .modal {\r\n\tbackground-color: var(--secondary-color);\r\n\t/*margin-top: 75px;*/\r\n\tborder: 1px solid #bbbbbb;\r\n\t overflow-y: auto;\r\n\t overflow-x: hidden;\r\n\tmax-height: calc(100% - 1em);\r\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\r\n\tdisplay: flex;\r\n\tflex-flow: row;\r\n\tmax-width: 370px;\r\n\r\n\t.header {\r\n\t background-color: var(--secondary-color);\r\n\t color: var(--primary-text-color);\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t padding: 10px;\r\n\r\n\t h2 {\r\n\t\tfont-size: 18px;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 400;\r\n\t }\r\n\r\n\t .close-btn {\r\n\t\tcursor: pointer;\r\n\r\n\t\t&:hover {\r\n\t\t background: none;\r\n\t\t filter: unset;\r\n\t\t}\r\n\t }\r\n\t}\r\n\r\n\t.subtitle {\r\n\t padding-top: 6px;\r\n\t font-size: 12px;\r\n\t}\r\n\r\n\t.content {\r\n\t padding: 8px;\r\n\t background-color: #fff;\r\n\t color: #545454;\r\n\t position: relative;\r\n\t flex: 1 0 auto;\r\n\t overflow: auto;\r\n\t // margin:0px 10px 10px 10px;\r\n\t margin: 10px 10px 17px;\r\n\t min-height: 250px;\r\n\t max-height: calc(100% - 4em);\r\n\t /*.scroll-container{\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:0px;\r\n\t\t\t\t\tbottom:0px;\r\n\t\t\t\t\tleft:0px;\r\n\t\t\t\t\tright:0px;\r\n\t\t\t\t}*/\r\n\t .content-container {\r\n\t\ttext-align: left;\r\n\t\t//width:300px;\r\n\t }\r\n\r\n\t .f-half {\r\n\t\tdisplay: flex;\r\n\t\tcolumn-gap: 1em;\r\n\r\n\t\tflex-direction: column;\r\n\r\n\t\t> div {\r\n\t\t flex-basis: 100%;\r\n\t\t display: flex;\r\n\t\t flex-flow: column;\r\n\t\t}\r\n\t }\r\n\r\n\t .content-container {\r\n\t\t// width: 350px;\r\n\t }\r\n\r\n\t .feature {\r\n\t\tbackground: #eee;\r\n\t\tmargin: 12px 0;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\tflex: 1;\r\n\r\n\t\t.description {\r\n\t\t display: flex;\r\n\t\t font-size: 14px;\r\n\t\t padding: 15px 0;\r\n\r\n\t\t .button-preview {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\talign-items: center;\r\n\t\t\tpadding: 0 20px;\r\n\r\n\t\t\th4 {\r\n\t\t\t text-transform: uppercase;\r\n\t\t\t padding-top: 16px;\r\n\t\t\t white-space: nowrap;\r\n\t\t\t}\r\n\r\n\t\t\t.subtitle {\r\n\t\t\t text-align: center;\r\n\t\t\t}\r\n\t\t }\r\n\t\t}\r\n\t }\r\n\t}\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDP.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDP.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PDP.vue?vue&type=template&id=2fe44cc3&scoped=true&\"\nimport script from \"./PDP.vue?vue&type=script&lang=js&\"\nexport * from \"./PDP.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PDP.vue?vue&type=style&index=0&id=2fe44cc3&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2fe44cc3\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div id=\"app\" :class=\"isRaddar ? 'raddar' : ''\" :flyer-orientation=\"flyerOrientation\"\r\n :is-fullscreen=\"fullScreenToggle\" :is-mobile=\"isMobile\" :mode=\"displayMode\" :tour-mode=\"tourVisible && !loading\">\r\n <div v-html=\"rootStyle\"></div>\r\n <div v-if=\"highlightResults\" v-html=\"highlightStyle\" />\r\n\r\n <div v-show=\"loading\" class=\"loading-indicator\">\r\n <div>\r\n <svg height=\"211px\" preserveAspectRatio=\"xMidYMid\" style=\"margin:auto;background:#fff;display:block;\"\r\n viewBox=\"0 0 100 100\" width=\"211px\" xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <circle :stroke=\"branding.secondaryColor\" cx=\"50\" cy=\"50\" fill=\"none\" r=\"26\"\r\n stroke-dasharray=\"122.52211349000194 42.840704496667314\" stroke-width=\"3\">\r\n <animateTransform attributeName=\"transform\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\" type=\"rotate\"\r\n values=\"0 50 50;360 50 50\"></animateTransform>\r\n </circle>\r\n </svg>\r\n <p>\r\n {{ content.loading }}\r\n </p>\r\n </div>\r\n </div>\r\n <ais-instant-search v-if=\"searchClient && !loading\" id=\"ais\" :search-client=\"searchClient\" :index-name=\"searchIndex\" :insights=\"true\">\r\n <app-header v-if=\"isReady\" :class=\"{ disabled: tourVisible }\"\r\n :feature-config-path=\"isRaddar ? 'raddar.header' : 'header'\" />\r\n <drawer-container v-if=\"isReady\" drawer=\"top\" />\r\n <div v-if=\"isReady\" class=\"main-lr-wrapper\">\r\n <drawer-container drawer=\"left\" />\r\n <div :class=\"{ 'flyer-content': true, disabled: tourVisible || isDropdownOpen }\">\r\n <flyer-selector-controller />\r\n <!--Sidebar / -->\r\n <!--pdp-popup/ -->\r\n <!-- shopping-list :deal=\"currentFlyer.title\"/ -->\r\n <!--component :is=\"getPdpComponent === 'v1' ? 'pdp-popup-v1' : 'pdp-popup'\"/ -->\r\n <component :is=\"getSLTemplate\" :deal=\"currentFlyer.title\"/>\r\n <p-d-p />\r\n\r\n\r\n <SearchResults v-if=\"searchIsVisible\" :scale=\"currentZoom\" />\r\n <scroll-container v-if=\"!loading\" id=\"main-scroll\" ref=\"scrollContainer\"\r\n :class=\"searchIsVisible ? 'hide-scroll' : ''\" :enable-scroll-buttons=\"displayMode != 'mobile'\"\r\n :fit-axis=\"flyerOrientation == 'horizontal' ? 'y' : 'x'\" :max-width=\"900\" :orientation=\"flyerOrientation\"\r\n :zoom-level=\"zoomLevel\" align=\"center\" class=\"grid-container\" @change=\"onScrollChange\"\r\n @ready=\"onScrollContainerReady\" @resize=\"onScrollContainerResize\" @scrollTransEnd=\"onScrollChange\">\r\n <responsive-grid id=\"resp-grid\" :flyer-pages=\"pages\"\r\n :root-scroll-container=\"'main-scroll'\"></responsive-grid>\r\n <template v-if=\"flyerOrientation === 'horizontal'\" #scroll-thumb-x>\r\n <div class=\"page-num\">\r\n <span :class=\"{'hide-chevron':hideLeftArrow}\"> < </span>\r\n <span class=\"page-text\">PAGE {{ currentPage }} OF {{ totalPages }} </span>\r\n <span :class=\"{'hide-chevron':hideRightArrow}\"> > </span>\r\n </div>\r\n </template>\r\n <template v-if=\"flyerOrientation === 'vertical'\" #scroll-thumb-y>\r\n <div class=\"page-num vertical\">\r\n <span :class=\"{'hide-chevron':hideUpArrow}\"> < </span>\r\n <span class=\"page-text\">PAGE {{ currentPage }} OF {{ totalPages }} </span>\r\n <span :class=\"{'hide-chevron':hideDownArrow}\"> > </span>\r\n </div>\r\n </template>\r\n\r\n </scroll-container>\r\n </div>\r\n <drawer-container drawer=\"right\" />\r\n </div>\r\n </ais-instant-search>\r\n <drawer-container v-if=\"isReady\" drawer=\"bottom\" />\r\n\r\n <VideoModal v-if=\"currentVideo\" />\r\n <!-- <PdpPopup :element=\"pages.block\" v-if=\"currentProduct\" />-->\r\n <!-- <ShoppingList :deal=\"currentFlyer.title\"/>-->\r\n <FeatureToast />\r\n <TourWindow v-if=\"tourVisible && !loading\" />\r\n\r\n\r\n <!-- Walkthrough / -->\r\n\r\n\r\n <!-- <HelpModal /> -->\r\n <!-- FeatureToast / -->\r\n\r\n <!-- testing git merge -->\r\n <deep-link-controller v-if=\"isReady\" />\r\n <iframe-relay />\r\n <raddar-sync v-if=\"isReady\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport GridComponent from \"./components/responsiveGrid.component.vue\";\r\n// import FixedBasebarComponent from './components/fixedBasebar.component.vue';\r\n//import PageNumber from './components/pageNumber.component'\r\n//import basebars from '@/basebars.json';\r\n//import Fuse from 'fuse.js';\r\nimport SearchResults from \"@/components/SearchResults\";\r\nimport { mapState, mapActions, mapGetters } from 'vuex';\r\nimport \"scroll-behavior-polyfill\";\r\nimport ScrollContainer from \"@/components/scroll-container/ScrollContainer\";\r\n//TODO - Fix basebar zooming issue\r\nimport FeatureToast from '@/components/Toasts/FeatureToast'\r\n// import PdpPopup from '@/components/PdpPopup'\r\n//import Walkthrough from '@/components/Toasts/Walkthrough'\r\nimport TourWindow from \"@/components/Toasts/TourWindow\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n// import ShoppingList from \"./components/ShoppingList\";\r\n\r\n\r\nimport VideoModal from \"@/features/video-modal/VideoModal.vue\";\r\nimport Lytics from \"@/classes/Lytics\";\r\nimport PdpPopup from \"@/features/pdp/PdpPopup.vue\";\r\nimport PdpPopupV1 from \"@/features/pdp/PdpPopupV1.vue\";\r\nimport ShoppingList from \"@/features/shopping-list/ShoppingList.vue\";\r\nimport ShoppingListV1 from \"@/features/shopping-list/ShoppingListV1.vue\";\r\nimport ShoppingListV2 from \"@/features/shopping-list/ShoppingListV2.vue\";\r\nimport DrawerContainer from \"@/components/drawer/DrawerContainer.vue\";\r\nimport FlyerSelectorController from \"@/features/flyer-selector/FlyerSelectorController.vue\";\r\nimport trianglePageGen from \"@/features/offers/classes/TrianglePageGen\";\r\nimport DeepLinkController from \"@/features/deeplinking/DeepLinkController.vue\";\r\nimport IframeRelay from \"@/components/iFrameRelay/IframeRelay.vue\";\r\nimport RaddarSync from \"@/features/raddar/RaddarSync.vue\";\r\nimport AppHeader from \"@/components/header/AppHeader.vue\";\r\nimport PDP from \"@/features/pdp/PDP.vue\";\r\n//import {debounce} from \"lodash\";\r\nimport algoliasearch from 'algoliasearch/lite';\r\n\r\n//let pageObserver;\r\n\r\n\r\nfunction dist(b1, b2, p = 0.5) {\r\n const x1 = b1.x + b1.width * p;\r\n const y1 = b1.y + b1.height * p;\r\n const x2 = b2.x + b2.width * p;\r\n const y2 = b2.y + b2.height * p;\r\n\r\n return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\r\n}\r\n\r\n\r\n//Can be made more efficient by doing bound comparisons spread from startIndex rather than testing all the pages... but meh... feeling lazy...\r\nfunction findCenterPage(pages, container, threshold) {\r\n const cRect = container.getBoundingClientRect();\r\n let d = Infinity;\r\n let best = null;\r\n //let dp = startIndex / pages.length;\r\n for (let i = 0; i < pages.length; i++) {\r\n const cDist = dist(cRect, pages[i].getBoundingClientRect(), threshold);\r\n if (cDist < d) {\r\n d = cDist;\r\n best = pages[i];\r\n }\r\n }\r\n\r\n return best;\r\n\r\n}\r\n\r\n\r\nexport default {\r\n components: {\r\n PDP,\r\n AppHeader,\r\n RaddarSync,\r\n IframeRelay,\r\n DeepLinkController,\r\n FlyerSelectorController,\r\n DrawerContainer,\r\n ShoppingList,\r\n ShoppingListV1,\r\n ShoppingListV2,\r\n PdpPopup,\r\n PdpPopupV1,\r\n TourWindow,\r\n ScrollContainer,\r\n \"responsive-grid\": GridComponent,\r\n // \"fixed-basebar\": FixedBasebarComponent,\r\n //PageNumber,\r\n SearchResults,\r\n FeatureToast,\r\n VideoModal,\r\n },\r\n\r\n props: {\r\n flyerId: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n flyer: {},\r\n updateStyle: false,\r\n search: \"\",\r\n myflyerbtn: false,\r\n filteredBlocks: [],\r\n nearTop: false,\r\n isHidden: true,\r\n isDropdownOpen: false,\r\n currentGrid: {\r\n direction: 0\r\n },\r\n blockSize: {\r\n width: 281,\r\n height: 267\r\n },\r\n gridContainerStyle: {\r\n marginBottom: \"2px\",\r\n zIndex: `${this.updateStyle ? 1 : 2}`\r\n },\r\n showScrollToTop: false,\r\n showMobileFilters: false,\r\n leftArrowVisible: false,\r\n rightArrowVisible: true,\r\n currentPage: 1,\r\n flyerLoaded: false,\r\n searchIndex: null,\r\n hideLeftArrow:false,\r\n hideRightArrow:false,\r\n hideUpArrow:false,\r\n hideDownArrow:false\r\n };\r\n },\r\n async created() {\r\n //await this.loadFlyer();\r\n // await this.setPages(this.currentFlyer.title);\r\n window.addEventListener('orientationchange', this.handleOrientationChange);\r\n // this.setHighlightResults(!this.currentFlyer.blockedFlyer);\r\n // this.setupPages();\r\n //this.setCurrentStore(this.$route.query.storeId)\r\n // this.handleLocalStorage()\r\n this.searchIndex = `products_${this.language}_${AppConfig?.AppConf?.algolia_id}_query_suggestions`;\r\n },\r\n\r\n mounted() {\r\n this.setSearchClient(algoliasearch(process.env.VUE_APP_ALGOLIA_APP_ID, process.env.VUE_APP_ALGOLIA_SEARCH_KEY))\r\n\r\n /* Commented out below code for MTRDF-117 - Client wants flyer drawer to be closed on all devices on flyer load\r\n //SUPDF-545 Flyer drawer to be open on Desktop, but closed on mobiles & tablets on flyer load.\r\n if((this.displayMode == 'mobile') || (this.displayMode == 'tablet'))\r\n this.toggleSideBarState(false)\r\n */\r\n\r\n // console.log(\"app mounted successfully\");\r\n this.$store.commit(\"landingPage/SET_FLYER_BY_ID\", this.$route.params.flyerId)\r\n this.$store.dispatch('deepLinking/updateHash', this.$route.hash);\r\n Lytics.TriggerPageChange();\r\n\r\n\r\n //this.currentZoom = 0;\r\n this.$nextTick(() => {\r\n this.checkTourState();\r\n })\r\n if (AppConfig.AppConf?.title.toLowerCase().includes(\"metro\".toLowerCase())) {\r\n this.$root.$on('dropdown-hidden-updated', (isHidden) => {\r\n this.isDropdownOpen = isHidden;\r\n })\r\n\r\n\r\n /*console.log('** App Mounted loadFlyer')*/\r\n //await this.loadFlyer();\r\n }\r\n this.$root.$on('trigger-scroll-to-doc', this.scrollToPageName)\r\n this.$root.$on('trigger-scroll-to-index', this.scrollToIndexCenter)\r\n this.$root.$on('trigger-scroll-to-sku', this.scrollToSku)\r\n this.$root.$on('hide-arrow',this.hideArrow)\r\n this.$root.$on('show-arrow',this.showArrow)\r\n },\r\n\r\n watch: {\r\n loading() {\r\n //this.setCurrentFlyer(this.flyerId);\r\n },\r\n urlHash(hash) {\r\n console.log('urlUpdated:', hash);\r\n setTimeout(() => {\r\n setTimeout(this.processHash, 500);\r\n }, 500);\r\n },\r\n currentPage(val) {\r\n this.setCurrentPageNumber(val)\r\n // console.log('pageChange: from: ', this.currentPage , ' to:', val)\r\n if (val != 1)\r\n this.toggleSideBarState(false)\r\n Lytics.TriggerFlyerPageChange(val, this.flyerId, this.displayMode);\r\n },\r\n\r\n currentFlyer(flyer, oldFlyer) {\r\n // console.log('Current Flyer Watch:', flyer, ' olfFlyer:', oldFlyer);\r\n if (!this.isReady || (flyer.title !== oldFlyer.title)) {\r\n\r\n this.loadFlyer();\r\n this.close();\r\n this.reset();\r\n this.toggleShoppingList(false);\r\n Lytics.TriggerLoadedFlyers({\r\n flyerID: flyer.id,\r\n dealID: flyer.title,\r\n startDate: flyer.startDate,\r\n endDate: flyer.endDate,\r\n storeId: this.$route.query.storeId,\r\n language: this.language\r\n });\r\n Lytics.TriggerFlyerLoaded({\r\n client: AppConfig.AppConf?.retailer,\r\n banner: AppConfig.AppConf?.title,\r\n store_id: this.$route.query.storeId,\r\n store_name: flyer.storeName,\r\n version_id: flyer.zonedPublicationName,\r\n job_name: flyer.jobName,\r\n platform: this.isRaddar ? \"raddar\" : \"client_site\",\r\n deal_id: flyer.title,\r\n end_date: flyer.endDate,\r\n start_date: flyer.startDate,\r\n language: this.language,\r\n region: flyer.province,\r\n page_number: this.urlHash.page || 1,\r\n device_screen: this.displayMode,\r\n })\r\n Lytics.TriggerFlyerImpression({\r\n flyer,\r\n client: AppConfig.AppConf?.retailer,\r\n banner: AppConfig.AppConf?.title,\r\n store_id: this.$route.query.storeId,\r\n platform: this.isRaddar ? \"raddar\" : \"client_site\"\r\n })\r\n Lytics.TriggerOrientationStatus(this.flyerOrientation, this.displayMode);\r\n }\r\n\r\n },\r\n\r\n searchQuery() {\r\n // console.log('App.vue SearchQuery Update', val)\r\n this.executeFilter();\r\n }\r\n },\r\n\r\n\r\n async beforeRouteUpdate(to, from, next) {\r\n /*console.log('Router Update:', to, this.$store);*/\r\n this.toggleSideBarState(false);\r\n this.$store.commit(\"landingPage/SET_FLYER_BY_ID\", to.params.flyerId);\r\n this.setCurrentStore(to.query.storeId);\r\n this.setLanguage();\r\n\r\n this.$store.dispatch('deepLinking/updateHash', to.hash);\r\n next();\r\n },\r\n\r\n computed: {\r\n ...mapGetters(['content', 'language', 'highlightResults']),\r\n ...mapState(['columnView', 'zonesArray', 'currentStore', 'pages', 'loading', 'totalPages', 'currentVideo', 'currentProduct', 'showHamburgerMenu', 'currentPageIndex']),\r\n ...mapGetters('landingPage', ['currentFlyer']),\r\n ...mapState('scale', ['zoomLevel']),\r\n ...mapState('screen', ['fullScreenToggle']),\r\n ...mapGetters('screen', ['displayMode', 'isMobile', 'flyerOrientation']),\r\n ...mapGetters('search', ['showSearchResults', 'filteredItems', 'filteredItemsIntersection']),\r\n ...mapState('toast', ['tourVisible', 'showHelp']),\r\n ...mapGetters('deepLinking', ['urlHash']),\r\n ...mapGetters('config', ['branding', 'features', \"rootStyle\"]),\r\n ...mapState('shoppingList', ['shoppingList']),\r\n ...mapState('categories', ['showCategoriesDropDown', 'showMobileCategories']),\r\n ...mapGetters('filters', ['searchQuery']),\r\n ...mapGetters('config', ['settings', 'features']),\r\n ...mapGetters('raddar', ['isRaddar']),\r\n ...mapState('search', ['searchClient']),\r\n\r\n\r\n isReady() {\r\n return !this.loading && !!this.settings?.features && this.flyerLoaded;\r\n },\r\n\r\n searchIsVisible() {\r\n return !this.highlightResults && this.showSearchResults\r\n },\r\n\r\n highlightStyle() {\r\n if (!this.highlightResults) return;\r\n\r\n if (!this.showSearchResults) {\r\n return \"<style> svg mask { display: none !important; } </style>\";\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n let style = [];\r\n this.filteredItems.map((item) => {\r\n //const sku = item.sku.trim();\r\n item.products.map((prod) => {\r\n style.push(`svg mask rect[sku='${(prod.sku || '').trim()}'] { opacity: 1 !important; }`);\r\n })\r\n //return `svg mask rect[sku='${(item.sku || '').trim()}'] { opacity: 1 !important; }`\r\n });\r\n\r\n console.log('Mask Style:', style);\r\n\r\n\r\n return '<style>' + style.join(\"\\n\") + '</style>';\r\n },\r\n\r\n currentZoom() {\r\n return this.zoomLevel;\r\n },\r\n\r\n /*filteredPages() {\r\n return this.flyer.pages.filter(page => page.blocks.length);\r\n },*/\r\n\r\n scrollContainer() {\r\n return this.$refs.scrollContainer;\r\n },\r\n getPdpComponent() {\r\n return this.features.pdp.component || '';\r\n },\r\n getSLTemplate() {\r\n const template = this.features.shoppingList.component || '';\r\n return template=='v1' ? 'shopping-list-v1'\r\n : template=='v2' ? 'shopping-list-v2'\r\n : 'shopping-list'\r\n }\r\n },\r\n methods: {\r\n ...mapActions(['setPages', 'updatePages', 'setTotalPages', 'setLanguage', 'setCurrentStore', 'setZonesArray', 'setPdf', 'setCurrentPageNumber','setCurrentPageIndex', 'toggleSideBarState', 'reset']),\r\n ...mapActions('screen', ['handleWindowResize']),\r\n ...mapActions('scale', ['updateScale', 'setZoomLevel', 'setScrollY', 'updateScrollX']),\r\n ...mapActions('toast', ['checkTourState']),\r\n ...mapActions('landingPage', ['setCurrentFlyer']),\r\n ...mapActions('shoppingList', ['setShoppingList', 'handleLocalStorage', 'toggleShoppingList']),\r\n ...mapActions('filters', ['loadFlyerFilters', 'executeFilter']),\r\n ...mapActions('search', ['filterProducts', 'setShowSearchResults', 'setSearchClient']),\r\n ...mapActions('pdp', ['close']),\r\n\r\n\r\n async loadFlyer() {\r\n // console.log('** loadFlyer:', this.currentFlyer)\r\n if (!this.currentFlyer.title) return;\r\n\r\n const pagesUrl = (this.currentFlyer?.pagesJson && this.currentFlyer.pagesJson.includes('https')) ? this.currentFlyer?.pagesJson : null;\r\n const flyerId = this.currentFlyer.title\r\n\r\n await this.setPages({pagesUrl,flyerId});\r\n //this.setHighlightResults(!this.currentFlyer.blockedFlyer);\r\n await this.setupPages();\r\n await this.loadFlyerFilters();\r\n this.flyerLoaded = true;\r\n },\r\n\r\n processHash() {\r\n const hash = this.urlHash;\r\n for (let p in hash) {\r\n switch (p) {\r\n case 'sku':\r\n this.scrollToSku(hash[p])\r\n break;\r\n case 'page':\r\n this.scrollToPage(hash[p])\r\n break;\r\n case 'index':\r\n setTimeout(() => {\r\n setTimeout(this.scrollToIndex(hash[p]), 500);\r\n }, 500);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n findPageWithSku(sku) {\r\n const pages = this.pages || [];\r\n return pages.find((page) => {\r\n return page.blocks.find((block) => {\r\n return block.products.find((product) => {\r\n return product.sku === sku;\r\n })\r\n })\r\n })\r\n },\r\n findPageWithIndex(index) {\r\n const pages = this.pages || [];\r\n const page = pages[index - 1];\r\n if (typeof page !== 'undefined') {\r\n return page;\r\n }\r\n return null;\r\n },\r\n findPageWithName(name) {\r\n const pages = this.pages || [];\r\n return pages.find((page) => {\r\n return page.name === name;\r\n })\r\n },\r\n scrollToDom(dom) {\r\n if (dom) {\r\n const dim = dom.getBoundingClientRect();\r\n const ctr = this.$refs.scrollContainer;\r\n const tl = ctr.getScroll();\r\n const flyerDrawerIsOpen = document.querySelector('.flyer-list.open');\r\n if (flyerDrawerIsOpen && flyerDrawerIsOpen.classList.contains('open')) {\r\n ctr.scroll({x: -dim.x - tl.x + 210 , y: -dim.y - tl.y + 320});\r\n } else {\r\n ctr.scroll({x: -dim.x - tl.x + 50, y: -dim.y - tl.y + 130});\r\n }\r\n }\r\n },\r\n\r\n scrollToSku(sku) {\r\n const page = this.findPageWithSku(sku);\r\n console.log('Page Found:', page);\r\n const pageId = page?.id;\r\n const dom = document.querySelector(`#main-scroll [page-id=\"${pageId}\"]`);\r\n console.log('scrollToSku: ', dom)\r\n this.scrollToDom(dom);\r\n },\r\n\r\n scrollToPage(pageNum) {\r\n console.log('scrollToPage:', pageNum, ' scrollContainer:', this.$refs.scrollContainer);\r\n if (!this.$refs.scrollContainer) return;\r\n const dom = document.querySelector(`#main-scroll [page-num=\"${pageNum}\"]`);\r\n console.log('scrollToPage: dom: ', dom)\r\n this.scrollToDom(dom);\r\n },\r\n scrollToPageName(docName) {\r\n const page = this.findPageWithName(docName);\r\n const pageId = page?.id;\r\n const dom = document.querySelector(`#main-scroll [page-id=\"${pageId}\"]`);\r\n this.scrollToDom(dom);\r\n\r\n },\r\n scrollToIndex(index) {\r\n if (!this.$refs.scrollContainer) return;\r\n const page = this.findPageWithIndex(index);\r\n const pageId = page?.id;\r\n const dom = document.querySelector(`#main-scroll [page-id=\"${pageId}\"]`);\r\n this.scrollToDom(dom);\r\n },\r\n scrollToDomCenter(dom) {\r\n if (dom) {\r\n const dim = dom.getBoundingClientRect();\r\n const ctr = this.$refs.scrollContainer;\r\n const tl = ctr.getScroll();\r\n const flyerDrawerIsOpen = document.querySelector('.flyer-list.open');\r\n if (flyerDrawerIsOpen && flyerDrawerIsOpen.classList.contains('open')) {\r\n setTimeout(() => {\r\n ctr.scroll({x: -dim.x - tl.x + 210 , y: -dim.y - tl.y + 320});\r\n }, 50) \r\n } else {\r\n ctr.scroll({x: -dim.x - tl.x + 50, y: -dim.y - tl.y + 130});\r\n }\r\n }\r\n },\r\n scrollToIndexCenter(index) {\r\n if (!this.$refs.scrollContainer) return;\r\n const dom = document.querySelector(`#main-scroll [index=\"${index}\"]`);\r\n this.scrollToDomCenter(dom);\r\n },\r\n\r\n onScrollContainerReady(container) {\r\n this.updateScale(container._sz.getScale());\r\n this.updateScrollX(container._sz.getScrollX());\r\n\r\n setTimeout(() => {\r\n this.processHash();\r\n setTimeout(this.processHash, 1500);\r\n }, 2000);\r\n },\r\n\r\n onScrollContainerResize(scroller) {\r\n this.updateScale(scroller._sz.getScale());\r\n this.updateScrollX(scroller._sz.getScrollX());\r\n },\r\n\r\n onScrollChange(scroller) {\r\n if (scroller.scrollY !== 0 && scroller.isScrolling) {\r\n this.setScrollY(scroller?.scrollY)\r\n }\r\n const container = document.querySelector('.grid-container'); \r\n let threshold = 0.5;\r\n // if (this.flyerOrientation === 'horizontal') {\r\n // threshold = scroller.scrollX / scroller.maxScrollX;\r\n // } else {\r\n // threshold = scroller.scrollY / scroller.maxScrollY;\r\n // }\r\n const observables = document.querySelectorAll('.grid-container .responsive-grid [page-id][page-num]');\r\n const pageIdObservables = document.querySelectorAll('.grid-container .responsive-grid [page-id]');\r\n if (this.flyerOrientation === 'horizontal') {\r\n //const progressRatio = scroller.scrollX / scroller.maxScrollX;\r\n const pageSize = container.clientWidth;\r\n const currentPage = Math.floor(scroller.scrollX/pageSize);\r\n const scrollProgress = scroller.scrollX - currentPage * pageSize;\r\n threshold = scrollProgress > 0? Math.min(0.5, scrollProgress/scroller.maxScrollX) : scrollProgress/scroller.maxScrollX\r\n } else {\r\n // const progressRatio = scroller.scrollY / scroller.maxScrollY;\r\n // threshold = progressRatio > 0 ? Math.min(0.5, container.clientHeight/scroller.maxScrollY) : progressRatio;\r\n threshold = scroller.scrollY / scroller.maxScrollY;\r\n }\r\n // if (this.flyerOrientation === 'horizontal') {\r\n // threshold = Math.min(0.5, container.clientWidth/scroller.maxScrollX)\r\n // } else {\r\n // threshold = Math.min(0.5, container.clientHeight/scroller.maxScrollY)\r\n // }\r\n const pageEntry = findCenterPage(observables, container, threshold);\r\n const centerPage = findCenterPage(pageIdObservables, container, threshold);\r\n if (centerPage){\r\n this.$nextTick(() => {\r\n let currentIndexA = Number(centerPage.getAttribute('index'));\r\n this.setCurrentPageIndex(currentIndexA)\r\n })\r\n } \r\n if(pageEntry) this.currentPage = pageEntry.getAttribute('page-num');\r\n },\r\n hideArrow(dir){\r\n if(dir == 'left') this.hideLeftArrow=true;\r\n if(dir == 'right') this.hideRightArrow=true;\r\n if(dir == 'up') this.hideUpArrow=true;\r\n if(dir == 'down') this.hideDownArrow=true;\r\n },\r\n showArrow(dir){\r\n if(dir == 'left') this.hideLeftArrow=false;\r\n if(dir == 'right') this.hideRightArrow=false;\r\n if(dir == 'up') this.hideUpArrow=false;\r\n if(dir == 'down') this.hideDownArrow=false;\r\n },\r\n setupPages() {\r\n let pageCount = 0;\r\n this.currentPage = 1;\r\n const flyerDim = { width: 0, height: 0 };\r\n const pagesIndex = {};\r\n let unitHeight = 0;\r\n let unitWidth = 0;\r\n const updatedPages = this.pages.map((page, index) => {\r\n const isPage = (page.countTowardsPageCount != undefined) ? page.countTowardsPageCount : !page.isAdPage;\r\n\r\n if (isPage && page.blocks.length) {\r\n page.page_num = ++pageCount;\r\n pagesIndex[page.page_num] = index;\r\n }\r\n\r\n unitHeight = Math.max(page.unitHeight, unitHeight);\r\n unitWidth = Math.max(page.unitWidth, unitWidth);\r\n\r\n if (!this.highlightResults) return page;\r\n\r\n for (let p in page.grids) {\r\n const t = page.grids[p];\r\n t.rowCount = 1;\r\n t.colCount = 1;\r\n t.totalBlocks = 1;\r\n }\r\n\r\n page.unitWidth = unitWidth;// page.blocks[0]?.images[0].width || 0;\r\n page.unitHeight = unitHeight; // page.blocks[0]?.images[0].height || 0;\r\n\r\n flyerDim.width = unitWidth;// Math.max(page.blocks[0]?.images[0].width || 0, flyerDim.width);\r\n flyerDim.height = unitHeight; // Math.max(page.blocks[0]?.images[0].height || 0, flyerDim.height);\r\n\r\n page.flyerDim = flyerDim;\r\n\r\n page.blocks = page.blocks.map((block) => {\r\n block.colSpan = 1;\r\n block.rowSpan = 1;\r\n return block;\r\n });\r\n\r\n return page;\r\n });\r\n\r\n if (this.features?.ctTriangleRewards?.enabled) {\r\n const ctConfig = this.features?.ctTriangleRewards;\r\n\r\n if (ctConfig.conditions) {\r\n let pass = true;\r\n const cond = ctConfig.conditions;\r\n for (let p in cond) {\r\n if (this.currentFlyer[p] !== cond[p]) {\r\n pass = false;\r\n }\r\n }\r\n if (pass) trianglePageGen(updatedPages, pagesIndex, ctConfig.onPage, unitWidth, unitHeight, this.language);\r\n }\r\n }\r\n\r\n\r\n this.setTotalPages(pageCount);\r\n this.updatePages(updatedPages);\r\n },\r\n\r\n toTheTop: function () {\r\n // window.scroll({ top: 0, left: 0, behavior: 'smooth' })\r\n this.scrollContainer.scroll({ y: 0, x: 0 });\r\n },\r\n\r\n /*handleWindowScroll() {\r\n //const scrollTop = document.querySelector('.grid-container').scrollTop;\r\n\r\n const scroll = this.scrollContainer.getScroll();\r\n const maxScroll = this.scrollContainer.getMaxScroll();\r\n\r\n this.leftArrowVisible = scroll.x > 0;\r\n this.rightArrowVisible = scroll.x < maxScroll.x;\r\n\r\n if (scroll.y > 0) {\r\n this.nearTop = true;\r\n } else {\r\n this.nearTop = false;\r\n }\r\n },*/\r\n\r\n handleShowFilters(val) {\r\n this.showMobileFilters = val;\r\n },\r\n\r\n handleOrientationChange(event) {\r\n const isLandscape = event.target.screen.orientation.type === 'landscape-primary';\r\n window.parent.postMessage(JSON.stringify({ fullscreen: isLandscape }), \"*\");\r\n },\r\n\r\n onSearchStateChange({ uiState, setUiState }) {\r\n console.log({ uiState })\r\n // check if uiState[this.searchIndex] has a property named 'query'\r\n const hasQuery = !!uiState[this.searchIndex]?.query?.length\r\n console.log({ hasQuery })\r\n this.setShowSearchResults(hasQuery)\r\n setUiState(uiState)\r\n },\r\n\r\n },\r\n beforeDestroy() {\r\n this.$root.$off('trigger-scroll-to-doc', this.scrollToPageName)\r\n this.$root.$off('trigger-scroll-to-index', this.scrollToIndexCenter)\r\n this.$root.$off('trigger-scroll-to-sku', this.scrollToSku)\r\n }\r\n};\r\n</script>\r\n<style lang=\"scss\">\r\n@import \"scss/styles\";\r\n@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600&display=swap');\r\n\r\n@font-face {\r\n font-family: 'Chalet-NewYorkNineteenEighty';\r\n src: url(\"/fonts/Chalet-NewYorkNineteenEighty.otf\");\r\n}\r\n</style>\r\n\r\n\r\n<style scoped>\r\n.page-num {\r\n text-align: center;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 14px;\r\n padding: 0 10px;\r\n white-space: nowrap;\r\n}\r\n\r\n.hide-chevron{\r\n visibility:hidden;\r\n}\r\n\r\n.page-text{\r\n flex-grow:1;\r\n margin: 0 8px;\r\n}\r\n\r\n.page-num.vertical {\r\n transform: rotate(90deg);\r\n pointer-events: none;\r\n}\r\n</style>\r\n\r\n<style lang=\"scss\">\r\n.landing-page {\r\n .grid-container {\r\n display: none;\r\n }\r\n}\r\n</style>\r\n\r\n<style>\r\n/*[flyer-orientation = 'vertical'] .section-container.ad-page{\r\n display: none;\r\n}*/\r\n\r\nbody {\r\n overscroll-behavior-x: contain;\r\n}\r\n\r\nbody.print {\r\n display: inline !important;\r\n overflow-y: visible;\r\n}\r\n\r\ninput {\r\n font-family: Lato, sans-serif;\r\n}\r\n\r\n.grid-scale-clipper[is-horizontal] {\r\n width: max-content;\r\n overflow: hidden;\r\n}\r\n\r\n\r\n@font-face {\r\n font-family: 'sans-serif';\r\n src: url(\"/fonts/AlrightSans-Medium.otf\");\r\n}\r\n\r\n@font-face {\r\n font-family: 'Univers LT Std';\r\n src: url(\"/fonts/UniversLTStd-BoldCn.otf\");\r\n}\r\n\r\nimg,\r\nsvg,\r\nimage {\r\n -webkit-backface-visibility: hidden;\r\n -ms-transform: matrix(1.0, 0, 0, 1.0, 0,0); /* IE 9 */\r\n -webkit-transform: matrix(1.0, 0, 0, 1.0, 0,0); /* Chrome, Safari, Opera */\r\n transform: matrix(1.0, 0, 0, 1.0, 0,0);\r\n pointer-events: none;\r\n}\r\n\r\n* {\r\n box-sizing: border-box;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\nbody {\r\n color: black;\r\n font-family: Lato, sans-serif;\r\n}\r\n\r\nbutton,\r\ninput {\r\n font-family: Lato, Arial, sans-serif;\r\n}\r\n\r\nbutton.fancy {\r\n background: none;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n font-size: 1em;\r\n padding: 5px;\r\n}\r\n\r\nbutton.fancy.red {\r\n background-color: var(--primary-color);\r\n}\r\n\r\nbutton.fancy.green {\r\n background-color: var(--tertiary-color);\r\n color: var(--secondary-text-color);\r\n}\r\n\r\n#app {\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 1;\r\n /* overflow: hidden; */\r\n width: 100%;\r\n}\r\n\r\n#app[tour-mode] {\r\n background-color: #000;\r\n}\r\n\r\n.red {\r\n color: #ed1c24;\r\n}\r\n\r\n.grid {\r\n display: grid;\r\n grid-template-columns: repeat(3, 100px);\r\n grid-template-rows: repeat(3, 100px);\r\n}\r\n\r\n.grid>div {\r\n border: 1px solid black;\r\n background-color: antiquewhite;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.scroll-container.grid-container {\r\n position: absolute;\r\n top: 0px;\r\n bottom: 0px;\r\n left: 0px;\r\n right: 0px;\r\n}\r\n\r\n.grid-container {\r\n flex-grow: 1;\r\n overflow: auto;\r\n margin-bottom: 2px;\r\n padding-top: 0px;\r\n /*scroll-behavior: smooth;*/\r\n}\r\n\r\n.grid-container.hide-scroll {\r\n overflow: hidden;\r\n position: relative;\r\n display: none;\r\n}\r\n\r\n/*.arrows {\r\n display: none;\r\n}*/\r\n\r\n/*.tooltip {\r\n z-index: 999;\r\n top: 5px !important;\r\n left: 20px !important;\r\n}\r\n\r\n.tooltip.last {\r\n left: -50px !important;\r\n}\r\n*/\r\n.tooltip .tooltip-inner {\r\n /*background: black;*/\r\n opacity: 0.8;\r\n color: white;\r\n /*border: 1px solid #979797;*/\r\n padding: 5px 10px 4px;\r\n font-size: 12px;\r\n}\r\n\r\n/*\r\n.toTheTop {\r\n display: block;\r\n width: 90px;\r\n height: 90px;\r\n background: url('/images/back-tothe-top-mobile.png') no-repeat center 45%;\r\n background-size: 77% auto;\r\n position: absolute;\r\n right: 2px;\r\n bottom: 20px;\r\n cursor: pointer;\r\n filter: drop-shadow(2px 4px 6px black);\r\n opacity: 0.9;\r\n cursor: pointer;\r\n z-index: 5;\r\n}*/\r\n\r\nheader.disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.flyer-content {\r\n flex-grow: 1;\r\n position: relative;\r\n transition: opacity 300ms, filter 300ms;\r\n}\r\n\r\n.flyer-content.disabled,\r\n.search-results-wrapper.disabled {\r\n pointer-events: none;\r\n opacity: 0.7;\r\n /*filter: blur(5px);*/\r\n}\r\n\r\n\r\nbutton {\r\n cursor: pointer;\r\n}\r\n\r\n::-webkit-scrollbar {\r\n height: 16px;\r\n}\r\n\r\n::-webkit-scrollbar-track:horizontal {\r\n background-image: url('/images/scroll_track.png');\r\n background-position-y: center;\r\n background-repeat: repeat-x;\r\n}\r\n\r\n::-webkit-scrollbar-track:vertical {\r\n background-image: url('/images/scroll_track.png');\r\n background-position-x: center;\r\n background-repeat: repeat-y;\r\n}\r\n\r\n::-webkit-scrollbar-thumb {\r\n background-color: rgb(78, 80, 86);\r\n}\r\n\r\n/* Buttons */\r\n::-webkit-scrollbar-button:single-button:horizontal {\r\n background-color: #bbbbbb;\r\n display: block;\r\n height: 16px;\r\n width: 16px;\r\n background-size: contain;\r\n}\r\n\r\n/* Up */\r\n::-webkit-scrollbar-button:single-button:horizontal:decrement {\r\n background-image: url('/images/leftarrow-desktop.png');\r\n}\r\n\r\n/* Down */\r\n::-webkit-scrollbar-button:single-button:horizontal:increment {\r\n background-image: url('/images/rightarrow-desktop.png');\r\n}\r\n\r\n.fade-enter-active,\r\n.fade-leave-active {\r\n transition: opacity 0.25s ease-out;\r\n}\r\n\r\n.fade-enter,\r\n.fade-leave-to {\r\n opacity: 0;\r\n}\r\n\r\n\r\n@media screen and (min-width: 628px) {\r\n\r\n /*.toTheTop {\r\n display: none;\r\n }*/\r\n #basebar-container {\r\n display: none;\r\n }\r\n\r\n /*.arrows {\r\n display: block;;\r\n top: calc(100% + 100px);\r\n z-index: 100;\r\n }\r\n\r\n .arrows-vertical {\r\n display: block;\r\n z-index: 100;\r\n }\r\n\r\n /* New Arrow */\r\n /* .arrowleft {\r\n background-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n background-size: cover;\r\n background-position: center;\r\n width: 80px;\r\n height: 152px;\r\n position: absolute;\r\n z-index: 101;\r\n left: 0;\r\n top: calc(50% - 76px);\r\n cursor: pointer;\r\n }\r\n\r\n .arrowleft {\r\n background-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n background-size: contain;\r\n background-position: center;\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50px;\r\n position: absolute;\r\n z-index: 101;\r\n left: 5px;\r\n top: calc(50% - 76px);\r\n opacity: 0.8;\r\n box-shadow: 0px 3px 15px rba(0, 0, 0, 0.5);\r\n filter: drop-shadow(5px 5px 5px #222);\r\n cursor: pointer;\r\n }\r\n\r\n /* New */\r\n /* .arrowright {\r\n background-image: url(\"/images/moveright-arrow-desktop.png\");\r\n background-size: cover;\r\n background-position: center;\r\n width: 80px;\r\n height: 152px;\r\n position: absolute;\r\n z-index: 101;\r\n right: 0;\r\n top: calc(50% - 76px);\r\n cursor: pointer;\r\n }\r\n\r\n .arrowright {\r\n background-image: url(\"/images/moveright-arrow-desktop.png\");\r\n background-size: contain;\r\n background-position: center;\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50px;\r\n position: absolute;\r\n z-index: 101;\r\n right: 17px;\r\n top: calc(50% - 76px);\r\n opacity: 0.8;\r\n box-shadow: 0px 3px 15px rba(0, 0, 0, 0.5);\r\n filter: drop-shadow(5px 5px 5px #222);\r\n cursor: pointer;\r\n } */\r\n /* New Arrow */\r\n /* .arrowup {\r\n background-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n background-size: cover;\r\n background-position: center;\r\n width: 80px;\r\n height: 152px;\r\n position: absolute;\r\n z-index: 101;\r\n right: calc(50% - 40px);\r\n top: 30px;\r\n cursor: pointer;\r\n transform: rotate(90deg);\r\n }\r\n\r\n .arrowup {\r\n background-image: url(\"/images/moveleft-arrow-desktop.png\");\r\n background-size: contain;\r\n background-position: center;\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50px;\r\n position: absolute;\r\n z-index: 101;\r\n right: calc(50% - 25px);\r\n top: 83px;\r\n opacity: 0.8;\r\n box-shadow: 0px 3px 15px rba(0, 0, 0, 0.5);\r\n filter: drop-shadow(5px 5px 5px #222);\r\n cursor: pointer;\r\n transform: rotate(90deg);\r\n } */\r\n /* New Arrow */\r\n /* .arrowdown {\r\n background-image: url(\"/images/moveright-arrow-desktop.png\");\r\n background-size: cover;\r\n background-position: center;\r\n width: 80px;\r\n height: 152px;\r\n position: absolute;\r\n z-index: 101;\r\n right: calc(50% - 40px);\r\n bottom: -36px;\r\n cursor: pointer;\r\n transform: rotate(90deg);\r\n } */\r\n /* .arrowdown {\r\n background-image: url(\"/images/moveright-arrow-desktop.png\");\r\n background-size: contain;\r\n background-position: center;\r\n width: 50px;\r\n height: 50px;\r\n border-radius: 50px;\r\n position: absolute;\r\n z-index: 101;\r\n right: calc(50% - 25px);\r\n bottom: 17px;\r\n opacity: 0.8;\r\n box-shadow: 0px 3px 15px rba(0, 0, 0, 0.5);\r\n filter: drop-shadow(5px 5px 5px #222);\r\n cursor: pointer;\r\n }*/\r\n @media screen and (min-width: 1256px) {\r\n\r\n /*.toTheTop {\r\n display: none;\r\n }*/\r\n #basebar-container {\r\n display: none;\r\n }\r\n\r\n }\r\n\r\n @media (max-height: 600px) {\r\n @media (orientation: landscape) {\r\n .grid-container.hide-scroll {\r\n overflow: auto;\r\n position: static;\r\n display: none;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n.sr-only {\r\n position: absolute;\r\n left: -10000px;\r\n top: auto;\r\n width: 1px;\r\n height: 1px;\r\n overflow: hidden;\r\n}\r\n\r\n.loading-indicator {\r\n height: 100vh;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n p {\r\n color: var(--secondary-color);\r\n text-align: center;\r\n }\r\n}\r\n\r\n.tooltip {\r\n display: block !important;\r\n z-index: 10000;\r\n\r\n .tooltip-inner {\r\n background: black;\r\n color: white;\r\n border-radius: 16px;\r\n padding: 5px 10px 4px;\r\n }\r\n\r\n .tooltip-arrow {\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n position: absolute;\r\n margin: 5px;\r\n border-color: black;\r\n z-index: 1;\r\n }\r\n\r\n &[x-placement^=\"top\"] {\r\n margin-bottom: 5px;\r\n\r\n .tooltip-arrow {\r\n border-width: 5px 5px 0 5px;\r\n border-left-color: transparent !important;\r\n border-right-color: transparent !important;\r\n border-bottom-color: transparent !important;\r\n bottom: -5px;\r\n left: calc(50% - 5px);\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n &[x-placement^=\"bottom\"] {\r\n margin-top: 5px;\r\n\r\n .tooltip-arrow {\r\n border-width: 0 5px 5px 5px;\r\n border-left-color: transparent !important;\r\n border-right-color: transparent !important;\r\n border-top-color: transparent !important;\r\n top: -5px;\r\n left: calc(50% - 5px);\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n &[x-placement^=\"right\"] {\r\n margin-left: 5px;\r\n\r\n .tooltip-arrow {\r\n border-width: 5px 5px 5px 0;\r\n border-left-color: transparent !important;\r\n border-top-color: transparent !important;\r\n border-bottom-color: transparent !important;\r\n left: -5px;\r\n top: calc(50% - 5px);\r\n margin-left: 0;\r\n margin-right: 0;\r\n }\r\n }\r\n\r\n &[x-placement^=\"left\"] {\r\n margin-right: 5px;\r\n\r\n .tooltip-arrow {\r\n border-width: 5px 0 5px 5px;\r\n border-top-color: transparent !important;\r\n border-right-color: transparent !important;\r\n border-bottom-color: transparent !important;\r\n right: -5px;\r\n top: calc(50% - 5px);\r\n margin-left: 0;\r\n margin-right: 0;\r\n }\r\n }\r\n\r\n &[aria-hidden='true'] {\r\n visibility: hidden;\r\n opacity: 0;\r\n transition: opacity .15s, visibility .15s;\r\n }\r\n\r\n &[aria-hidden='false'] {\r\n visibility: visible;\r\n opacity: 1;\r\n transition: opacity .15s;\r\n }\r\n}\r\n\r\n#ais {\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 1;\r\n overflow: hidden;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n</style>\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1a7367af&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&id=1a7367af&scoped=true&lang=css&\"\nimport style2 from \"./App.vue?vue&type=style&index=2&lang=scss&\"\nimport style3 from \"./App.vue?vue&type=style&index=3&lang=css&\"\nimport style4 from \"./App.vue?vue&type=style&index=4&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a7367af\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"error-page\"},[(_vm.errorType === 'lang')?_c('div',[_c('div',{staticClass:\"lang-error\"},[_c('h1',[_vm._v(\"Cette circulaire n'est pas disponible en français pour la région sélectionnée\")]),_c('a',{attrs:{\"href\":_vm.langRedirectURL}},[_vm._v(\"Cliquez ici pour voir les Circulaire en anglais ou sélectionnez un autre code postal\")])])]):(_vm.errorType === 'date')?_c('div',[_c('div',{staticClass:\"lang-error\"},[_c('h1',[_vm._v(_vm._s(_vm.content.errors.noFlyersMsg))]),_c('a',{staticClass:\"red\",attrs:{\"href\":_vm.langRedirectURL},on:{\"click\":_vm.langRedirectURL}},[_vm._v(_vm._s(_vm.content.errors.noFlyerSubText))])])]):(_vm.errorType === 'nodeal')?_c('div',[_c('div',{staticClass:\"lang-error\"},[_c('h1',[_vm._v(_vm._s(_vm.content.errors.dealNotFound))]),_c('a',{staticClass:\"red\",attrs:{\"href\":_vm.langRedirectURL},on:{\"click\":_vm.langRedirectURL}},[_vm._v(_vm._s(_vm.content.errors.noFlyerSubText))])])]):(_vm.errorType === 'store')?_c('div',[_c('div',{staticClass:\"lang-error\"},[_c('h1',[_vm._v(_vm._s(_vm.content.errors.noFlyerForStore))])])]):(_vm.errorType === 'config')?_c('div',[_c('div',{staticClass:\"lang-error\"},[_c('h1',[_vm._v(\"Configuration file not found!\")]),_c('a',{staticClass:\"red\",attrs:{\"href\":_vm.langRedirectURL},on:{\"click\":_vm.langRedirectURL}},[_vm._v(_vm._s(_vm.content.errors.noFlyerSubText))])])]):_c('div',[_c('div',{staticClass:\"lang-error\"},[_c('h1',[_vm._v(_vm._s(_vm.content.errors.somethingWrong))]),_c('a',{staticClass:\"red\",attrs:{\"href\":_vm.langRedirectURL},on:{\"click\":_vm.langRedirectURL}},[_vm._v(_vm._s(_vm.content.errors.noFlyerSubText))])])]),_c('div',{staticClass:\"try-again\",class:{'no-show': _vm.isCTC}},[_c('a',{attrs:{\"href\":_vm.langRedirectURL}},[(_vm.errorType !== 'store')?_c('button',[_vm._v(\"Click here to try again\")]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"error-page\">\r\n <div v-if=\"errorType === 'lang'\">\r\n <div class=\"lang-error\">\r\n <h1>Cette circulaire n'est pas disponible en français pour la région sélectionnée</h1>\r\n <a :href=\"langRedirectURL\">Cliquez ici pour voir les Circulaire en anglais ou sélectionnez un autre code postal</a>\r\n </div>\r\n </div>\r\n <div v-else-if=\"errorType === 'date'\">\r\n <div class=\"lang-error\">\r\n <h1>{{ content.errors.noFlyersMsg }}</h1>\r\n <a :href=\"langRedirectURL\" class=\"red\" v-on:click=\"langRedirectURL\">{{ content.errors.noFlyerSubText }}</a>\r\n </div>\r\n </div>\r\n <div v-else-if=\"errorType === 'nodeal'\">\r\n <div class=\"lang-error\">\r\n <h1>{{ content.errors.dealNotFound }}</h1>\r\n <a :href=\"langRedirectURL\" class=\"red\" v-on:click=\"langRedirectURL\">{{ content.errors.noFlyerSubText }}</a>\r\n </div>\r\n </div>\r\n <div v-else-if=\"errorType === 'store'\">\r\n <div class=\"lang-error\">\r\n <h1>{{ content.errors.noFlyerForStore }}</h1>\r\n </div>\r\n </div>\r\n <div v-else-if=\"errorType === 'config'\">\r\n <div class=\"lang-error\">\r\n <h1>Configuration file not found!</h1>\r\n <a :href=\"langRedirectURL\" class=\"red\" v-on:click=\"langRedirectURL\">{{ content.errors.noFlyerSubText }}</a>\r\n </div>\r\n </div>\r\n <div v-else>\r\n <div class=\"lang-error\">\r\n <h1>{{ content.errors.somethingWrong }}</h1>\r\n <a :href=\"langRedirectURL\" class=\"red\" v-on:click=\"langRedirectURL\">{{ content.errors.noFlyerSubText }}</a>\r\n </div>\r\n </div>\r\n <div class=\"try-again\" :class=\"{'no-show': isCTC}\">\r\n <a :href=\"langRedirectURL\"><button v-if=\"errorType !== 'store'\">Click here to try again</button></a>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {mapGetters} from \"vuex\";\r\n\r\nexport default {\r\n name: \"ErrorPage\",\r\n props: {\r\n type: {\r\n type: String,\r\n required: true\r\n },\r\n },\r\n mounted(){\r\n /*if(process.env.VUE_APP_API_URL.includes('metrodigital'))\r\n document.getElementById('icon').href='../metro_favicon.png'\r\n document.title = 'Metro - Error';*/\r\n },\r\n\r\n computed:{\r\n ...mapGetters(['content','isCTC']),\r\n errorType() {\r\n return this.type;\r\n },\r\n langRedirectURL(){\r\n const query = this.$route.query;\r\n query.language = 'en';\r\n //return window.location.href.replace('language=fr', 'language=en');\r\n //hardcoded storeId, language and timeTravelDate since SuperC doesn't have a live flyer currently..\r\n // query.storeId='425';\r\n return this.$router.resolve({name:'Flyer', query}).resolved.fullPath;\r\n }\r\n },\r\n\r\n\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\na {\r\n text-decoration: none;\r\n}\r\nbutton {\r\n background-color: #729ed1;\r\n border: 1px solid #AFAFAF;\r\n border-radius: 4px;\r\n font-size: 14px;\r\n padding: 5px 10px;\r\n color: #fff;\r\n text-decoration: none;\r\n}\r\n\r\nbutton:hover {\r\n background-color: #7ea3cd;\r\n text-decoration: underline;\r\n}\r\n\r\n.try-again {\r\n text-align: center;\r\n}\r\n\r\n.lang-error {\r\n margin: 30px auto;\r\n padding: 0 20px;\r\n max-width: 545px;\r\n text-align: center;\r\n}\r\n\r\n.lang-error h1 {\r\n font-size: 24px;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.lang-error a {\r\n font-size: 18px;\r\n color: #ED1C24;\r\n\r\n}\r\n\r\na.red {\r\n text-decoration: underline;\r\n}\r\n.try-again.no-show {\r\n display: none;\r\n}\r\n\r\n</style>","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ErrorPage.vue?vue&type=template&id=54c36d9a&scoped=true&\"\nimport script from \"./ErrorPage.vue?vue&type=script&lang=js&\"\nexport * from \"./ErrorPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ErrorPage.vue?vue&type=style&index=0&id=54c36d9a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54c36d9a\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\nimport App from \"../App.vue\";\r\n//import AppWrapper from \"@/AppWrapper\";\r\n// import LandingPage from \"../views/LandingPage.vue\";\r\nimport ErrorPage from \"@/views/ErrorPage\";\r\n\r\n/*function hasQueryParams(route) {\r\n\treturn !!Object.keys(route.query).length;\r\n}*/\r\n\r\nVue.use(VueRouter)\r\n\r\nconst routes = [\r\n\t{\r\n\t\tpath: '/',\r\n\t\tname: 'Flyer',\r\n\t\tprops: true,\r\n\t\tcomponent: App,\r\n\t\t/*beforeEnter(to, from, next) {\r\n\t\t\tif (!hasQueryParams(to)) {\r\n\t\t\t\tnext({...to, query: from.query});\r\n\t\t\t} else {\r\n\t\t\t\tnext();\r\n\t\t\t}\r\n\t\t}*/\r\n\t},\r\n\t{\r\n\t\tpath: '/flyer/:flyerId',\r\n\t\tname: 'DefaultFlyer',\r\n\t\tprops: true,\r\n\t\tcomponent: App\r\n\t},\r\n\r\n\t{\r\n\t\tpath: '/error/:type',\r\n\t\tname: 'ErrorPage',\r\n\t\tprops: true,\r\n\t\tcomponent: ErrorPage\r\n\t},\r\n\r\n]\r\n\r\nconst router = new VueRouter({\r\n\tmode: \"history\",\r\n\troutes\r\n})\r\n\r\nexport default router\r\n","function getUrlParameter(name) {\r\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n var results = regex.exec(window.location.search);\r\n return results === null\r\n ? \"\"\r\n : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n}\r\n\r\nexport { getUrlParameter };","import Rest from \"@/api/Rest\";\r\nimport moment from \"moment\";\r\n\r\nexport default class Service {\r\n\tstatic async GetAllFilters(flyerId, storeId, lang) {\r\n\t\tlang = lang === 'fr' ? 'bil' : lang;\r\n\t\tconst {data} = await Rest.Get(\r\n\t\t\t`Pages/${flyerId}/${storeId}/${lang}/AllDropdownItems`,\r\n\t\t)\r\n\t\treturn data;\r\n\t}\r\n\r\n\tstatic async GetFlyerData(storeId, lang, date) {\r\n\t\tlang = lang === 'fr' ? 'bil' : lang;\r\n\t\tconst {data, error} = await Rest.Get(\r\n\t\t\t`flyers/${storeId}/${lang}?date=${moment(date).format(\"YYYY-MM-DD\")}`\r\n\t\t);\r\n\r\n\t\tif(error) console.log('Landing Page: error:', error);\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tstatic async GetFlyerPage(pagesUrl, flyerId, storeId, lang) {\r\n\t\tlet {data} = pagesUrl !==null ? await Rest.Get(pagesUrl) : await Rest.Get(`pages/${flyerId}/${storeId}/${lang}/`);\r\n\t\treturn data;\r\n\t}\r\n\r\n\tstatic async LoadConfig(path) {\r\n\t\treturn await fetch(path);\r\n\t}\r\n}\r\n","// import axios from \"axios\";\r\nimport {getUrlParameter} from \"@/utils\";\r\nimport router from \"@/router\";\r\nimport Service from \"@/api/Service\";\r\n\r\nconst lang = getUrlParameter(\"language\") === 'fr' ? 'bil' : 'en';\r\n\r\nconst state = {\r\n categories: [],\r\n productsOf:[],\r\n selectedCategory: null,\r\n showCategoriesDropDown: false,\r\n expandedCategory: null,\r\n allCategory: {\r\n name: lang === \"en\" ? \"ALL\" : \"TOUT\",\r\n checked: false\r\n },\r\n showMobileCategories:false,\r\n allDropDownsCache: {}\r\n};\r\n\r\nconst getters = {\r\n useCategoryFilter(state, getters) {\r\n const { categories, subCategories } = getters.checkedCategories\r\n return categories.length > 0 || subCategories.length > 0\r\n },\r\n\r\n allCategoriesChecked(state) {\r\n return !state.categories.some(category => {\r\n if (!category.checked) return true\r\n else if (category.subcategories) {\r\n return category.subcategories.some(subcategory => !subcategory.checked)\r\n }\r\n })\r\n },\r\n\r\n noCategoriesChecked(state) {\r\n return state.categories.every((category) => {\r\n if (category.checked) return false;\r\n else if (category.subcategories) {\r\n return category.subcategories.every(\r\n subcategory => !subcategory.checked\r\n );\r\n }\r\n });\r\n },\r\n\r\n checkedCategories(state) {\r\n const categories = state.categories.filter(c => c.checked)\r\n const subCategories = state.categories.reduce((acc, category) => {\r\n return acc.concat(category.subcategories.filter(c => c.checked))\r\n }, [])\r\n return { categories, subCategories }\r\n },\r\n checkedProductOrigin(state){\r\n const productOrigin = state.productsOf.filter(c => c.checked)\r\n return {productOrigin}\r\n },\r\n}\r\n\r\nconst actions = {\r\n toggleShowMobileCategories({commit,state}){\r\n commit('TOGGLE_SHOWMOBILECATEGORIES', !state.showMobileCategories);\r\n },\r\n\r\n closeMobileCategories({commit}){\r\n commit('TOGGLE_SHOWMOBILECATEGORIES', false);\r\n\r\n },\r\n\r\n toggleDropdown({ commit, state }) {\r\n commit('SET_DROPDOWN', !state.showCategoriesDropDown);\r\n },\r\n\r\n closeDropdown({ commit }) {\r\n commit('SET_DROPDOWN', false);\r\n },\r\n\r\n async getAllDropdownItems( { state } ) {\r\n const flyerId = router.currentRoute.params.flyerId;\r\n const storeId = parseInt(router.currentRoute.query?.storeId || '', 10);\r\n const lang = router.currentRoute.query.language === 'fr' ? 'bil' : 'en';\r\n const cacheId = `${flyerId}_${storeId}`;\r\n\r\n if(state.allDropDownsCache[cacheId]) {\r\n return state.allDropDownsCache[cacheId];\r\n }\r\n\r\n state.allDropDownsCache[cacheId] = await Service.GetAllFilters(flyerId, storeId, lang);\r\n return state.allDropDownsCache[cacheId];\r\n },\r\n\r\n async generateCategories({ commit, dispatch }) {\r\n // const currentFlyer = rootGetters[\"landingPage/currentFlyer\"]\r\n\r\n // const { data } = await axios.get(\r\n // `${rootState.apiUrl}/Pages/${currentFlyer.title}/${parseInt(getUrlParameter(\"storeId\"))}/${\r\n // getUrlParameter(\"language\") === \"fr\" ? \"bil\" : \"en\"\r\n // }/categories`,\r\n // {\r\n // headers: {\r\n // \"Ocp-Apim-Subscription-Key\": rootState.subscriptionKey\r\n // },\r\n // }\r\n // );\r\n //console.log(\"categories are :\",data);\r\n\r\n // const { data } = await axios.get(\r\n // `${rootState.apiUrl}/Pages/${flyerId}/${parseInt(getUrlParameter(\"storeId\"))}/${\r\n // getUrlParameter(\"language\") === \"fr\" ? \"bil\" : \"en\"\r\n // }/AllDropdownItems`,\r\n // {\r\n // headers: {\r\n // \"Ocp-Apim-Subscription-Key\": rootState.subscriptionKey\r\n // },\r\n // }\r\n // );\r\n /*const {data} = await Rest.Get(\r\n `${rootState.apiUrl}Pages/${flyerId}/${parseInt(getUrlParameter(\"storeId\"))}/${lang}/AllDropdownItems`,\r\n )*/\r\n\r\n const data = await dispatch('getAllDropdownItems')\r\n\r\n // console.log(\"categories are :\",data.categories);\r\n\r\n const categories = [];\r\n const productOf=[];\r\n for(let i=0; i<data.productOrigin.length; i++){\r\n productOf.push({\r\n name: data.productOrigin[i],\r\n checked: false\r\n })\r\n }\r\n\r\n for(let i=0; i<data.categories.length; i++){\r\n categories.push({\r\n name:data.categories[i].titleEn,\r\n frenchName: data.categories[i].titleEn,\r\n checked:false,\r\n subcategories: data.categories[i].subcategories.map((subcategory)=> {\r\n return{\r\n name: subcategory.titleEn,\r\n checked:false,\r\n }\r\n })\r\n })\r\n }\r\n /* Logic for sorting French characters with Accents alphabetically */\r\n for (var i = 0; i < categories.length; i++) {\r\n categories[i].frenchName = categories[i].frenchName.charAt(0).replace('À','A')+categories[i].frenchName.slice(1)\r\n categories[i].frenchName = categories[i].frenchName.charAt(0).replace('È','E')+categories[i].frenchName.slice(1)\r\n categories[i].frenchName = categories[i].frenchName.charAt(0).replace('É','E')+categories[i].frenchName.slice(1)\r\n categories[i].frenchName = categories[i].frenchName.charAt(0).replace('Ê','E')+categories[i].frenchName.slice(1)\r\n }\r\n\r\n const sortedCategories = categories.sort((a, b) => {\r\n if (a.frenchName > b.frenchName) return 1;\r\n else return -1;\r\n });\r\n\r\n commit(\"SET_CATEGORIES\", sortedCategories);\r\n commit(\"SET_PRODUCTSOF\",productOf);\r\n },\r\n\r\n toggleCategoryChecked({ commit, getters, dispatch }, categoryName) {\r\n commit(\"TOGGLE_CATEGORY_CHECKED\", categoryName);\r\n commit(\"SET_ALL_CATEGORY_CHECKED\", getters.allCategoriesChecked);\r\n dispatch(\"search/searchProducts\", null, { root: true });\r\n },\r\n toggleProductsOfChecked({commit,dispatch},categoryName){\r\n commit(\"TOGGLE_PRODUCTSOF_CHECKED\",categoryName);\r\n dispatch(\"search/searchProducts\",null,{root:true});\r\n },\r\n\r\n toggleCategoryAllChecked({ commit, dispatch }) {\r\n commit(\"TOGGLE_CATEGORY_ALL_CHECKED\");\r\n dispatch(\"search/searchProducts\", null, { root: true });\r\n },\r\n\r\n clearSelectedCategory({ commit }) {\r\n commit(\"CLEAR_ALL_CATEGORIES\");\r\n },\r\n clearProductOrigin({commit}){\r\n commit(\"CLEAR_ALL_PRODUCTORIGIN\");\r\n },\r\n\r\n setExpandedCategory({ state, commit }, categoryName) {\r\n if (state.expandedCategory === categoryName) {\r\n commit('SET_EXPANDED_CATEGORY', null);\r\n } else {\r\n commit('SET_EXPANDED_CATEGORY', categoryName);\r\n }\r\n }\r\n};\r\n\r\nconst mutations = {\r\n TOGGLE_SHOWMOBILECATEGORIES(state,val){\r\n state.showMobileCategories = val\r\n },\r\n\r\n SET_DROPDOWN(state, showCategoriesDropDown) {\r\n state.showCategoriesDropDown = showCategoriesDropDown;\r\n },\r\n\r\n SET_SELECTED_CATEGORY(state, cateogry) {\r\n state.selectedCategory = cateogry;\r\n },\r\n\r\n SET_ALL_CATEGORY_CHECKED(state, value) {\r\n state.allCategory.checked = value;\r\n },\r\n\r\n SET_CATEGORIES(state, categories) {\r\n state.categories = categories;\r\n // console.log(\"categories are :\",state.categories)\r\n },\r\n SET_PRODUCTSOF(state,productOf){\r\n state.productsOf = productOf;\r\n },\r\n\r\n TOGGLE_PRODUCTSOF_CHECKED(state,categoryName){\r\n state.productsOf.forEach((productOf)=>{\r\n if(productOf.name === categoryName){\r\n productOf.checked = !productOf.checked\r\n }\r\n })\r\n },\r\n\r\n TOGGLE_CATEGORY_CHECKED(state, categoryName) {\r\n state.categories.forEach((category) => {\r\n if (category.name === categoryName) {\r\n category.checked = !category.checked;\r\n if (category.subcategories) {\r\n // set all category children to same checked state as parent\r\n category.subcategories.forEach((subcategory) => {\r\n subcategory.checked = category.checked;\r\n });\r\n }\r\n } else if (category.subcategories) {\r\n category.subcategories.forEach((subcategory) => {\r\n if (subcategory.name === categoryName) {\r\n subcategory.checked = !subcategory.checked;\r\n if (!subcategory.checked) {\r\n // uncheck parent category if child is unchecked\r\n category.checked = false;\r\n } else {\r\n // if all siblings are checked, check parent\r\n if (\r\n category.subcategories.every(\r\n (subcategory) => subcategory.checked\r\n )\r\n )\r\n category.checked = true;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n },\r\n\r\n TOGGLE_CATEGORY_ALL_CHECKED(state) {\r\n state.allCategory.checked = !state.allCategory.checked\r\n state.categories.forEach((category) => {\r\n category.checked = state.allCategory.checked;\r\n category.subcategories.forEach((subcategory) => {\r\n subcategory.checked = state.allCategory.checked;\r\n });\r\n });\r\n },\r\n\r\n\r\n SET_ALL_CATEGORIES_CHECKED(state, checkedState) {\r\n state.categories.forEach((category) => {\r\n category.checked = checkedState;\r\n if (category.subcategories) {\r\n category.subcategories.forEach(\r\n (subcategory) => (subcategory.checked = checkedState)\r\n );\r\n }\r\n });\r\n },\r\n\r\n CLEAR_ALL_CATEGORIES(state) {\r\n state.selectedCategory = null\r\n state.expandedCategory = null\r\n state.allCategory.checked = false\r\n state.categories.forEach((category) => {\r\n category.checked = false;\r\n category.subcategories.forEach((subcategory) => {\r\n subcategory.checked = false;\r\n });\r\n });\r\n },\r\n CLEAR_ALL_PRODUCTORIGIN(state){\r\n state.productsOf.forEach((productOf)=>{\r\n productOf.checked = false;\r\n })\r\n },\r\n\r\n SET_FILTERED_ITEMS(state, items) {\r\n state.filteredItems = items;\r\n },\r\n\r\n SET_EXPANDED_CATEGORY(state, categoryName) {\r\n state.expandedCategory = categoryName;\r\n }\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};","import Rest from './Rest';\r\n\r\nexport default class SearchApi {\r\n static async Post(deal, storeId, lang, data, highlightMode) {\r\n const mode = highlightMode? 'searchforotherpubs': 'search';\r\n const res = await Rest.Post(`/Pages/${deal}/${storeId}/${lang === 'fr' ? 'bil' : 'en'}/${mode}`, data);\r\n return res && res.data;\r\n }\r\n}\r\n","import SearchApi from '../../api/Search'\r\nimport AppConfig from \"@/classes/AppConfig\";\r\nimport Lytics from '../../classes/Lytics';\r\n\r\nconst state = {\r\n query: \"\",\r\n showMobileSearchBar: false,\r\n showSubHeader: false,\r\n filteredItems: [],\r\n showSearchResults: false,\r\n saving: null,\r\n categories: [],\r\n subCategories: [],\r\n searchClient: null,\r\n loading: false,\r\n hits: []\r\n};\r\n\r\nconst getters = {\r\n filteredItems(state) {\r\n return state.filteredItems\r\n },\r\n\r\n showSearchResults(state) {\r\n return state.showSearchResults\r\n },\r\n};\r\n\r\nconst actions = {\r\n async queryAlgolia({ state, rootGetters, dispatch }, query) {\r\n if (!rootGetters[\"config/features\"].enhancedSearch) return;\r\n \r\n const banner = AppConfig?.AppConf?.algolia_id;\r\n const lang = rootGetters.language;\r\n const indexName = `products_${lang}_${banner}`;\r\n const index = state.searchClient.initIndex(indexName);\r\n\r\n if (query) dispatch(\"updateSearchQuery\", query);\r\n\r\n let filters = `storeList:${rootGetters.storeId} AND title:${rootGetters.dealId} AND env:Production`;\r\n if (state.categories.length)\r\n filters += ` AND (${state.categories\r\n .map((cat) => `mainCategory${lang === \"en\" ? \"En\" : \"Fr\"}:\"${cat}\"`)\r\n .join(\" OR \")})`;\r\n if (state.subCategories.length)\r\n filters += ` AND (${state.subCategories\r\n .map(\r\n (subCat) => `subCategory${lang === \"en\" ? \"En\" : \"Fr\"}:\"${subCat}\"`\r\n )\r\n .join(\" OR \")})`;\r\n if (state.saving) filters += ` AND saveInt>=${state.saving}`;\r\n\r\n try {\r\n dispatch('setLoadingState', true)\r\n const { hits } = await index.search(query || state.query, { filters });\r\n console.log(\"Algolia search results:\", hits);\r\n Lytics.addToEventQueue({\r\n item_list_name: \"search\",\r\n items: hits.map((p, i) => {\r\n return {\r\n product_id: p.sku,\r\n name: p.productEn || p.productFr,\r\n name_en: p.productEn,\r\n name_fr: p.productFr,\r\n price: p.regularPrice,\r\n position: i,\r\n sale_price: p.salePrice,\r\n category: p.mainCategoryEn || p.mainCategoryFr,\r\n category_2: p.subCategoryEn || p.subCategoryFr,\r\n image_url: p.productImage,\r\n quantity: 1,\r\n };\r\n }),\r\n });\r\n dispatch(\"setHits\", hits);\r\n } catch (e) {\r\n dispatch(\"setLoadingState\", false);\r\n console.error(e);\r\n }\r\n },\r\n\r\n setHits({ commit }, hits) {\r\n commit(\"SET_HITS\", hits);\r\n },\r\n\r\n async filterProducts({ commit, rootGetters, rootState, dispatch }, filterQuery) {\r\n const currentFlyer = rootGetters[\"landingPage/currentFlyer\"];\r\n\r\n const showResults = !!Object.keys(filterQuery).length;\r\n const enhancedSearch = rootGetters[\"config/features\"].enhancedSearch;\r\n\r\n if (!showResults) {\r\n commit(\"SHOW_SEARCH_RESULTS\", false);\r\n return;\r\n }\r\n\r\n //dispatch('setLoadingState', true, {root:true});\r\n\r\n if (!enhancedSearch) {\r\n const filteredItems = await SearchApi.Post(\r\n currentFlyer.title,\r\n rootState.currentStore,\r\n rootGetters.language,\r\n filterQuery,\r\n rootGetters.highlightResults\r\n );\r\n commit(\"UPDATE_FILTERED_ITEMS\", filteredItems);\r\n \r\n const products = filteredItems.reduce((acc, item) => {\r\n return [...acc, ...item.products];\r\n }, []);\r\n \r\n Lytics.addToEventQueue({\r\n item_list_name: \"search\",\r\n items: products.map((p, i) => {\r\n return {\r\n product_id: p.sku,\r\n name: p.productEn || p.productFr,\r\n name_en: p.productEn,\r\n name_fr: p.productFr,\r\n price: p.regularPrice,\r\n position: i,\r\n sale_price: p.salePrice,\r\n category: p.mainCategoryEn || p.mainCategoryFr,\r\n category_2: p.subCategoryEn || p.subCategoryFr,\r\n image_url: p.productImage,\r\n quantity: 1,\r\n };\r\n }),\r\n });\r\n }\r\n\r\n commit(\"SHOW_SEARCH_RESULTS\", true);\r\n // dispatch('setLoadingState', false, {root:true});\r\n\r\n filterQuery.saving ? commit(\"SET_SAVING\", filterQuery.saving) : commit(\"SET_SAVING\", null);\r\n filterQuery.category ? commit(\"SET_CATEGORIES\", filterQuery.category) : commit(\"SET_CATEGORIES\", []);\r\n filterQuery.subCategory ? commit(\"SET_SUBCATEGORIES\", filterQuery.subCategory) : commit(\"SET_SUBCATEGORIES\", []);\r\n\r\n if (enhancedSearch) {\r\n const filteredItems = await SearchApi.Post(currentFlyer.title, rootState.currentStore, rootGetters.language, filterQuery, rootGetters.highlightResults);\r\n commit(\"UPDATE_FILTERED_ITEMS\", filteredItems);\r\n dispatch(\"queryAlgolia\");\r\n }\r\n },\r\n\r\n async updateSearchQuery({ commit }, query) {\r\n commit(\"UPDATE_SEARCH_QUERY\", query);\r\n },\r\n\r\n setSubHeaderState({ commit }, val) {\r\n commit(\"SET_SUB_HEADER_STATE\", val);\r\n },\r\n\r\n toggleMobileSearchBar({ commit }) {\r\n commit(\"TOGGLE_MOBILE_SEARCH_BAR\");\r\n },\r\n\r\n closeMobileSearchBar({ commit }) {\r\n commit(\"CLOSE_MOBILE_SEARCH_BAR\");\r\n },\r\n\r\n setShowSearchResults({ commit }, val) {\r\n commit(\"SHOW_SEARCH_RESULTS\", val);\r\n },\r\n\r\n resetQuery({ commit }) {\r\n commit(\"UPDATE_SEARCH_QUERY\", \"\");\r\n commit(\"SHOW_SEARCH_RESULTS\", false);\r\n },\r\n \r\n resetFilters({ commit }) {\r\n console.log(\"Reset Filters\");\r\n commit(\"UPDATE_SEARCH_QUERY\", \"\");\r\n commit(\"SHOW_SEARCH_RESULTS\", false);\r\n commit(\"SET_SAVING\", null);\r\n commit(\"SET_CATEGORIES\", []);\r\n commit(\"SET_SUBCATEGORIES\", []);\r\n },\r\n\r\n setSearchClient({ commit }, val) {\r\n commit(\"SET_SEARCH_CLIENT\", val);\r\n },\r\n\r\n setLoadingState({ commit }, val) {\r\n commit(\"SET_LOADING\", val);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n\r\n UPDATE_SEARCH_QUERY(state, query) {\r\n state.query = query;\r\n },\r\n\r\n UPDATE_FILTERED_ITEMS(state, filteredItems) {\r\n state.filteredItems = filteredItems\r\n },\r\n\r\n SHOW_SEARCH_RESULTS(state, value) {\r\n state.showSearchResults = value\r\n },\r\n\r\n TOGGLE_MOBILE_SEARCH_BAR(state) {\r\n state.showMobileSearchBar = !state.showMobileSearchBar;\r\n },\r\n\r\n CLOSE_MOBILE_SEARCH_BAR(state) {\r\n state.showMobileSearchBar = false;\r\n },\r\n\r\n SET_SUB_HEADER_STATE(state, val) {\r\n state.showSubHeader = val;\r\n },\r\n\r\n SET_SAVING(state, val) {\r\n state.saving = val;\r\n },\r\n\r\n SET_CATEGORIES(state, val) {\r\n state.categories = val;\r\n },\r\n\r\n SET_SUBCATEGORIES(state, val) {\r\n state.subCategories = val;\r\n },\r\n\r\n SET_SEARCH_CLIENT(state, val) {\r\n state.searchClient = val;\r\n },\r\n\r\n SET_HITS(state, hits) {\r\n state.hits = hits;\r\n state.loading = false;\r\n },\r\n\r\n SET_LOADING(state, val) {\r\n state.loading = val;\r\n }\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import isItMobile from 'is-mobile';\r\nimport Lytics from \"@/classes/Lytics\";\r\n//import IFrameComm from \"../../classes/IFrameComm\";\r\n//import events from \"@/store/modules/events\";\r\n//import ResizeObserverPolyfill from \"resize-observer-polyfill\";\r\n\r\n/*top.addEventListener('fullscreenchange', (e) => {\r\n console.log('FullScreen Change:', e);\r\n state.fullScreenToggle = !!document.fullscreenElement\r\n})*/\r\n\r\nconst hasFullscreenSupport = typeof document.documentElement.requestFullscreen === 'function';\r\n\r\n\r\nconst state = {\r\n size: {\r\n innerWidth: window.innerWidth,\r\n outerWidth: window.outerWidth,\r\n innerHeight: window.innerHeight,\r\n outerHeight: window.outerHeight\r\n },\r\n fullScreenToggle: false,\r\n}\r\n\r\nconst modes = [{\r\n // adjusted breakpoints so end result is 600 and 800... not sure why there's a difference. something to do with \"transform: scale()\"?\r\n breakpoint: 698,\r\n mode: 'mobile'\r\n },\r\n {\r\n breakpoint: 1024,\r\n mode: 'tablet'\r\n }\r\n]\r\n\r\nconst getters = {\r\n\r\n isMobile() {\r\n return isItMobile();\r\n },\r\n isMobileAndTablet() {\r\n const isMobile = /Android/i.test(navigator.userAgent);\r\n const isSamsungTab = /Samsung/i.test(navigator.userAgent) || /SM-T/i.test(navigator.userAgent)\r\n const isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) && !window.MSStream;\r\n return isItMobile({tablet: true}) || isIOS || isMobile || isSamsungTab;\r\n },\r\n\r\n totalPages(state, getters, rootState) {\r\n return rootState.pages.filter(page => page.blocks.length && !page.isAdPage).length;\r\n },\r\n\r\n displayMode(state) {\r\n // column view just spoofs the tablet mode so displayMode needs to be set to 'tablet'\r\n //const mobileBreakpoint = modes.find(mode => mode.mode === 'mobile').breakpoint;\r\n const currentWidth = state.size.innerWidth;\r\n\r\n //if (rootState.columnView && currentWidth >= mobileBreakpoint) return 'tablet'; // Seems to be what is expected when in column mode... weird but ok..\r\n if(currentWidth==0) location.reload();\r\n for (let i = 0; i < modes.length; i++) {\r\n if (modes[i].breakpoint >= currentWidth) return modes[i].mode;\r\n }\r\n return 'desktop'\r\n },\r\n\r\n flyerOrientation(state, getters, rootState) {\r\n if (getters.displayMode !== 'desktop') return 'vertical';\r\n return rootState.columnView ? 'vertical' : 'horizontal';\r\n },\r\n\r\n fullScreenConfig(state, getters, rootState, rootGetters) {\r\n return rootGetters?.[\"config/features\"]?.fullScreen || {};\r\n },\r\n\r\n isFullscreen(state, getters) {\r\n const config = getters.fullScreenConfig;\r\n if(config?.detectMode === 'auto') {\r\n return (state.size?.innerWidth === screen.width && state.size?.innerHeight === screen.height) || document?.fullscreenElement;\r\n }\r\n return state.fullScreenToggle;\r\n }\r\n}\r\n\r\nconst actions = {\r\n\r\n async toggleFullScreen({ dispatch, getters }) {\r\n await dispatch('setFullScreenState', !getters.isFullscreen);\r\n /*const ts = !state.fullScreenToggle;\r\n commit('SET_FULLSCREEN_STATE', ts);\r\n dispatch('events/triggerEvent', {event: 'fullscreen-toggle', data: { state: ts }}, {root:true} )*/\r\n //events.actions.triggerEvent('fullscreen-toggle', { state: ts });\r\n //IFrameComm.FullScreenState(ts);\r\n // window.parent.postMessage(JSON.stringify({ fullscreen: ts }), \"*\");\r\n },\r\n\r\n async setFullScreenState({commit, getters, dispatch}, isFullScreen) {\r\n const config = getters.fullScreenConfig;\r\n if(config?.trigger === 'internal' && hasFullscreenSupport) {\r\n if(isFullScreen) {\r\n await document.documentElement.requestFullscreen({ navigationUI: 'hide' });\r\n } else {\r\n await document.exitFullscreen();\r\n }\r\n }\r\n commit('SET_FULLSCREEN_STATE', isFullScreen);\r\n Lytics.TriggerFullscreenToggle(isFullScreen);\r\n dispatch('events/triggerEvent', {event: 'fullscreen-toggle', data: { state: isFullScreen }}, {root:true} )\r\n },\r\n\r\n async setFullScreen({ dispatch }, isFullScreen) {\r\n await dispatch('setFullScreenState', isFullScreen);\r\n //commit('SET_FULLSCREEN_STATE', isFullScreen);\r\n //IFrameComm.FullScreenState(isFullScreen)\r\n // window.parent.postMessage(JSON.stringify({ fullscreen: isFullScreen }), \"*\");\r\n },\r\n\r\n async exitFullScreen({ dispatch }) {\r\n await dispatch('setFullScreenState', false);\r\n //commit('EXIT_FULLSCREEN_STATE');\r\n //Lytics.TriggerFullScreenToggle();\r\n //IFrameComm.FullScreenState(false)\r\n //window.parent.postMessage(JSON.stringify({ fullscreen: false }), \"*\");\r\n },\r\n\r\n handleWindowResize({ commit }) {\r\n commit(\"REFRESH_WINDOW_SIZE\")\r\n }\r\n}\r\n\r\nconst mutations = {\r\n\r\n REFRESH_WINDOW_SIZE(state) {\r\n state.size = {\r\n innerWidth: window.innerWidth,\r\n outerWidth: window.outerWidth,\r\n innerHeight: window.innerHeight,\r\n outerHeight: window.outerHeight\r\n };\r\n },\r\n\r\n SET_FULLSCREEN_STATE(state, val) {\r\n state.fullScreenToggle = val;\r\n },\r\n\r\n EXIT_FULLSCREEN_STATE(state) {\r\n state.fullScreenToggle = false;\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n};\r\n\r\n","import router from \"@/router\";\r\nimport PersistentData from \"@/classes/PersistentData\";\r\n\r\nconst pd = new PersistentData('help');\r\n\r\nconst state = {\r\n\ttourVisible: false,\r\n\tshowToast: true,\r\n\tshowHelp: false\r\n};\r\n\r\nconst getters = {\r\n\tshouldShowTour(state, getters, rootState, rootGetters) {\r\n\t\tif (router?.currentRoute?.query?.skipWalkthrough !== undefined\r\n\t\t\t|| window.innerWidth < 1023\r\n\t\t\t|| rootGetters[\"config/features\"]?.tour?.disabled\r\n\t\t\t|| rootGetters[\"deepLinking/isDeepLink\"]\r\n\t\t) return false\r\n\t\treturn !pd.getData('tour/viewed');\r\n\t}\r\n};\r\n\r\nconst actions = {\r\n\tdismissTour({commit, state}, remember) {\r\n\t\tif (state.tourVisible && remember) {\r\n\t\t\tpd.setData('tour/viewed', true);\r\n\t\t\t/*try {\r\n\t\t\t\twindow.localStorage.setItem(\"wed\", \"true\");\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}*/\r\n\t\t}\r\n\t\tcommit(\"SET_TOUR_VISIBILITY\", false);\r\n\t},\r\n\r\n\tviewTour({commit}) {\r\n\t\tcommit(\"SET_TOUR_VISIBILITY\", true);\r\n\t},\r\n\r\n\tcheckTourState({commit, getters}) {\r\n\t\t/*const viewed = () => {\r\n\t\t try {\r\n\t\t\treturn window.localStorage.getItem(\"wed\");\r\n\t\t } catch (e) {\r\n\t\t\treturn true;\r\n\t\t }\r\n\t\t};\r\n\t\tif (\r\n\t\t viewed() == \"true\" ||\r\n\t\t getUrlParameter(\"skipWalkthrough\") ||\r\n\t\t // window.innerWidth < 1200\r\n\t\t window.innerWidth < 1023\r\n\t\t) {\r\n\t\t commit(\"SET_TOUR_VISIBILITY\", false);\r\n\t\t} else {\r\n\t\t commit(\"SET_TOUR_VISIBILITY\", true);\r\n\t\t}*/\r\n\r\n\r\n\t\tcommit(\"SET_TOUR_VISIBILITY\", getters.shouldShowTour);\r\n\r\n\t},\r\n\r\n\ttoggleHelp({commit, state}) {\r\n\t\tcommit(\"SET_HELP\", !state.showHelp);\r\n\t}\r\n};\r\n\r\nconst mutations = {\r\n\tSET_HELP(state, val) {\r\n\t\tstate.showHelp = val;\r\n\t},\r\n\tSET_TOUR_VISIBILITY(state, val) {\r\n\t\tstate.tourVisible = val;\r\n\t\tif (val) {\r\n\t\t\tstate.showHelp = false;\r\n\t\t}\r\n\t},\r\n};\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations,\r\n};\r\n","//import { getUrlParameter } from \"../../utils\";\r\n//import axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport Rest from \"@/api/Rest\";\r\nimport router from \"@/router\";\r\nimport Service from \"@/api/Service\";\r\n\r\n\r\nconst sortOrder = [\r\n \"IEP\",\r\n \"Grand Opening\",\r\n \"Weekly Flyer\",\r\n \"Dollar Rush\",\r\n \"Other Publications - Responsive\",\r\n \"Other Publications - Static\"\r\n];\r\n\r\nfunction getWeights(sortOrder) {\r\n const o = {};\r\n let c = 0;\r\n sortOrder.forEach((val) => {\r\n o[val] = c;\r\n o[`${val} preview`] = ++c;\r\n c++;\r\n })\r\n return o;\r\n}\r\n\r\nconst weights = getWeights(sortOrder);\r\n\r\n\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction getFlyerWeight(flyer){\r\n const id = flyer.flyerType === 'preview'? `${flyer.flyerCategory} preview`: flyer.flyerCategory;\r\n return weights[id] ?? 99;\r\n}\r\n\r\nconst state = {\r\n flyers: [],\r\n /*currentFlyer: {},*/\r\n /*previewDate:'',*/\r\n languageError: false,\r\n dateError:false,\r\n flyerId: null\r\n};\r\n\r\nconst getters = {\r\n downloadablePDF(state, getters) {\r\n const pdfId = getters.currentFlyer.pdf;\r\n if (!pdfId) return null;\r\n return pdfId;\r\n },\r\n currentFlyer(state, getters, rootState) {\r\n let flyer = null;\r\n const flyerId = state.flyerId;\r\n if(!flyerId || !state.flyers.find( flyer => flyer.title === flyerId )){\r\n flyer = state.flyers.find(flyer => {\r\n return flyer.flyerCategory.includes('IEP') && flyer.flyerType==='live' ;\r\n }) || state.flyers.find(flyer => {\r\n return flyer.flyerCategory.includes('Grand Opening') && flyer.flyerType==='live' ;\r\n }) || state.flyers.find(flyer => {\r\n return flyer.flyerCategory.includes('Weekly') && flyer.flyerType==='live' ;\r\n }) || state.flyers.find(flyer => {\r\n return flyer.flyerCategory.includes('Dollar Rush') && flyer.flyerType==='live' ;\r\n }) || state.flyers.find(flyer => {\r\n return flyer.flyerCategory.includes('Weekly') && flyer.flyerType==='preview' ;\r\n }) || state.flyers.find(flyer => {\r\n return flyer.flyerCategory.includes('Specialty Book') && flyer.flyerType==='live' ;\r\n }) || state.flyers.find(flyer => {\r\n return flyer.flyerCategory.includes('Specialty Book') && flyer.flyerType==='preview' ;\r\n }) || state.flyers.find(flyer => {\r\n return flyer.flyerCategory.includes('Other Publication - Responsive');\r\n });\r\n } else {\r\n flyer = state.flyers.find(flyer => {\r\n return flyer.title === flyerId ;\r\n });\r\n }\r\n\r\n if(flyer) {\r\n document.title = flyer.title;\r\n }\r\n\r\n rootState.currentStore = parseInt( router.currentRoute.query.storeId || '' , 10);\r\n\r\n return flyer;\r\n },\r\n previewDate(state, getters){\r\n return moment(getters?.currentFlyer?.startDate).subtract(1,'days').format();\r\n },\r\n sortedFlyers(state){\r\n return state.flyers;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async getFlyersData({ commit }) {\r\n const currentRoute = router.currentRoute;\r\n const storeId = currentRoute.query['storeId'];\r\n const lang = currentRoute.query['language'];\r\n const date = currentRoute.query['timeTravelDate'] ?? moment();\r\n\r\n commit(\"UPDATE_LOADING\", 1, { root: true })\r\n try {\r\n const data = await Service.GetFlyerData(storeId, lang, date );\r\n commit('SET_FLYERS', data.flyers);\r\n } catch (error) {\r\n await Rest.GotoErrorPage(error);\r\n }\r\n\r\n commit(\"UPDATE_LOADING\", -1, { root: true });\r\n // console.log('getFlyerData complete')\r\n },\r\n\r\n async setCurrentFlyer({ commit }, flyerId) {\r\n commit(\"SET_FLYER_BY_ID\", flyerId);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n SET_FLYERS(state, data) {\r\n state.flyers = data;\r\n },\r\n\r\n SET_FLYER_BY_ID(state, flyerId) {\r\n state.flyerId = flyerId;\r\n },\r\n\r\n SET_CURRENT_FLYER(state, flyer) {\r\n state.currentFlyer = flyer;\r\n // alert('called')\r\n // console.log('current deal is ',state.currentFlyer.title)\r\n state.previewDate = moment(state.currentFlyer.startDate).subtract(1,'days').format();\r\n },\r\n\r\n SET_LANGUAGE_ERROR(state, languageError) {\r\n state.languageError = languageError;\r\n },\r\n SET_DATE_ERROR(state, dateError) {\r\n state.dateError = dateError;\r\n }\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","//import config from \"@/flyerConfig.json\";\r\nimport router from \"@/router\";\r\nimport Rest from \"@/api/Rest\";\r\n// eslint-disable-next-line no-unused-vars\r\nimport {cloneDeep, get, merge, set} from \"lodash\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n//import {findObjectPathsByKey} from \"find-object-paths\";\r\n\r\n//const _configCache = {};\r\n\r\nfunction getContrastYIQ(hexcolor){\r\n if (!hexcolor) return null;\r\n\r\n if (hexcolor.slice(0, 1) === \"#\") {\r\n hexcolor = hexcolor.slice(1);\r\n }\r\n\r\n\tvar r = parseInt(hexcolor.substr(0,2),16);\r\n\tvar g = parseInt(hexcolor.substr(2,2),16);\r\n\tvar b = parseInt(hexcolor.substr(4,2),16);\r\n\tvar yiq = ((r*299)+(g*587)+(b*114))/1000;\r\n\treturn (yiq >= 128) ? 'black' : 'white';\r\n}\r\n\r\n\r\n/**\r\n * Search object and return a list of objects paths that are a parent of 'key'\r\n * @param o - Object to search\r\n * @param key - Property to match\r\n * @param result - an array of object paths\r\n * @param depth - how deep to to search\r\n * @param path\r\n * @returns null | {*[]}\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\nfunction findByKey(o, key, result = [], depth = 10, path = null) {\r\n if(depth <= 0)return;\r\n console.log('Depth:', depth);\r\n //console.log('Result:', o)\r\n for(let p in o) {\r\n const pv = o[p];\r\n if(p === key) {\r\n result.push(path);\r\n } else if (typeof pv === 'object') {\r\n console.log('key:', p)\r\n findByKey(pv, key, result, depth - 1, Array.isArray(o)? `${path}[${p}]`: (!path)? p: `${path}.${p}`);\r\n }\r\n }\r\n return result;\r\n}\r\n\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction parseFeatureDisplay(feature, displayMode) {\r\n let o = Object.assign({}, feature);\r\n if (feature._display && feature._display[displayMode]) {\r\n o = merge(feature, feature._display[displayMode]);\r\n }\r\n delete o._display;\r\n console.log('Parsed Feature Display:', o);\r\n return o;\r\n}\r\n\r\nconst state = {\r\n config: null\r\n};\r\n\r\nconst getters = {\r\n // eslint-disable-next-line no-unused-vars\r\n settings(state, getters, rootState, rootGetters) {\r\n return state.config || {};\r\n /*const c = state.config;// JSON.parse(JSON.stringify(state.config));\r\n const _display = findByKey(c, '_display', []);\r\n const displayMode = rootGetters['screen/displayMode'];\r\n\r\n _display.map((path) => {\r\n set(c, path, parseFeatureDisplay(get(c, path), displayMode));\r\n })\r\n\r\n return c || {};// state.config || {};// flyer?.config || {};*/\r\n },\r\n\r\n branding(state, getters) {\r\n return getters.settings.branding || {};\r\n },\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n features(state, getters, rootState, rootGetters) {\r\n return getters.settings.features;\r\n },\r\n\r\n cssVars(state, getters) {\r\n const branding = getters.branding;\r\n\r\n return {\r\n '--primary-color': branding?.primaryColor,\r\n '--secondary-color': branding?.secondaryColor,\r\n '--primary-color_opacity': branding?.primaryColor + '20',\r\n '--primary-text-color': getContrastYIQ(branding?.primaryColor),\r\n '--secondary-text-color': branding?.secondaryTextColor || getContrastYIQ(branding?.secondaryColor),\r\n '--tertiary-color': branding?.tertiaryColor,\r\n }\r\n },\r\n\r\n rootStyle(state, getters) {\r\n let style = [];\r\n for(let [key, value] of Object.entries(getters.cssVars)){\r\n if(key && value !== null){\r\n style.push(`${key}:${value}`);\r\n }\r\n }\r\n return `<style>#app{\r\n ${style.join(';')}\r\n }</style>`;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async loadConfig({rootGetters, commit}) {\r\n const path = router.currentRoute.query._fc || '';\r\n const config = await AppConfig.LoadConfig(`flyer`, path);\r\n const flyer = rootGetters['landingPage/currentFlyer'];\r\n const rewardsButtonTitle = flyer?.config?.branding?.rewardsButtonTitle;\r\n const accessKey = flyer?.config?.branding?.accessKey;\r\n const mergedConfig = merge({}, config, {branding: {rewardsButtonTitle,accessKey}});\r\n if(config) {\r\n commit('SET_CONFIG', mergedConfig);\r\n } else {\r\n await Rest.GotoErrorPage({\r\n response: {\r\n data: {\r\n title: 'invalid config'\r\n }\r\n }\r\n })\r\n }\r\n\r\n /*try{\r\n const config = await fetch(`/config/flyer-${path}.json`);\r\n const json = await config.json();\r\n console.log('** Loaded Config:', json);\r\n //_configCache[path] = JSON.stringify(json);\r\n await commit('SET_CONFIG', json);\r\n } catch (e) {\r\n console.log('Config Load Error:', e)\r\n await Rest.GotoErrorPage({\r\n response: {\r\n data: {\r\n title: 'invalid config'\r\n }\r\n }\r\n })\r\n }*/\r\n\r\n },\r\n\r\n parseFeature({rootGetters}, feature) {\r\n let f = cloneDeep(feature);\r\n const displayMode = rootGetters['screen/displayMode'];\r\n if (f._display && f._display[displayMode]) {\r\n f = merge(f, f._display[displayMode]);\r\n }\r\n delete f._display;\r\n return f;\r\n }\r\n};\r\n\r\nconst mutations = {\r\n SET_CONFIG(state, config) {\r\n state.config = config\r\n }\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","//import axios from \"axios\";\r\nimport Rest from \"@/api/Rest\";\r\nimport Lytics from \"@/classes/Lytics\";\r\nimport moment from \"moment\";\r\nimport {RaddarEvent} from \"@/features/raddar/store/raddar\";\r\nimport router from \"@/router\";\r\nimport ShoppingListController, {getProductSku} from \"@/features/shopping-list/classes/ShoppingListController\";\r\n\r\n\r\nconst state = {\r\n\tshowShoppingList: false,\r\n\tshowShoppingListV1:false,\r\n\tshowShoppingListV2:false,\r\n\tshoppingListItems:[],\r\n\tshoppingList: [],\r\n\tshoppingListV1:[],\r\n\tshoppingListV2:[],\r\n\temailError: false,\r\n\tadditionalItemInputFocus: false,\r\n\temailInputFocus: false,\r\n\tadditionalItemCount: 0,\r\n\tflyerDate: null\r\n};\r\n\r\nconst getters = {\r\n\tconfig(state, getters, rootState, rootGetters) {\r\n\t\tconst settings = rootGetters['config/features'];\r\n\t\treturn settings?.shoppingList;\r\n\t},\r\n\tenabled(state, getters) {\r\n\t\treturn getters.config?.enabled;\r\n\t},\r\n\tgetVersion(state, getters) {\r\n\t\treturn getters.config.component || ''\r\n\t},\r\n\tdealId(state, getters, rootState, rootGetters) {\r\n\t\treturn rootGetters[\"landingPage/currentFlyer\"]?.title;\r\n\t},\r\n\t/*shoppingListItems(state, getters) {\r\n\t\treturn getters.version === 'v1'? state.shoppingListV1: state.shoppingList;\r\n\t},*/\r\n\tshoppingListSKUs(state) {\r\n\t\treturn state.shoppingListItems.map((item) => {\r\n\t\t\treturn item.product.sku;\r\n\t\t})\r\n\t},\r\n\tproductsBySKU(state) {\r\n\t\tconst o = {};\r\n\t\tstate.shoppingListItems.forEach((item) => {\r\n\t\t\to[getProductSku(item.product)] = item.product;\r\n\t\t})\r\n\t\treturn o;\r\n\t},\r\n};\r\n\r\nconst actions = {\r\n\ttoggleShoppingList({commit}, value) {\r\n\t\tcommit('SHOW_SHOPPING_LIST', value);\r\n\t},\r\n\ttoggleShoppingListV1({commit}, value) {\r\n\t\tcommit('SHOW_SHOPPING_LISTV1', value);\r\n\t},\r\n\ttoggleShoppingListV2({commit}, value) {\r\n\t\tcommit('SHOW_SHOPPING_LISTV2', value);\r\n\t},\r\n\r\n\tskuAddToList({dispatch, rootGetters}, sku) {\r\n\t\tlet product = null;\r\n\r\n\t\trootGetters.filterableItems.some(item => {\r\n\t\t\tproduct = item.products.find(product => product.sku == sku);\r\n\t\t\treturn product;\r\n\t\t});\r\n\r\n\t\tif (!product) return;\r\n\r\n\t\tconst additionalItemFlag = false;\r\n\t\tconst prod = state.shoppingList.filter(product => product.sku === sku);\r\n\t\tif (prod.length == 0) {\r\n\t\t\tdispatch('setAddToList', {product, additionalItemFlag});\r\n\t\t\treturn true\r\n\t\t} else\r\n\t\t\treturn false;\r\n\t},\r\n\taddProductToList({ commit, getters, dispatch, rootState }, product) {\r\n\t\tLytics.TriggerAddToWishlist({\r\n\t\t\tpage_number: rootState.currentPageNumber,\r\n\t\t\tname: product.productEn || product.productFr,\r\n\t\t\tname_en: product.productEn,\r\n\t\t\tname_fr: product.productFr,\r\n\t\t\tproduct_id: product.sku,\r\n\t\t\tprice: product.regularPrice,\r\n\t\t\tsale_price: product.salePrice,\r\n\t\t\tcategory: product.mainCategoryEn || product.mainCategoryFr,\r\n\t\t\tcategory_2: product.subCategoryEn || product.subCategoryFr,\r\n\t\t\timage_url: product.productImage,\r\n\t\t\tquantity: product.quantity,\r\n\t\t});\r\n\t\tconst list = new ShoppingListController(getters.dealId);\r\n\t\tconst itemAdded = list.addItem(product.sku, product);\r\n\t\tconsole.log(\"ShoppingList Controller AddItem:\", itemAdded);\r\n\t\tcommit('UPDATE_SHOPPING_LIST_ITEMS', getters.dealId);\r\n\t\tdispatch('events/triggerEvent', {event: RaddarEvent.ShoppingList.Add, data: product}, {root: true});\r\n\t},\r\n\tremoveProductFromList({commit, getters, dispatch}, product){\r\n\t\tconsole.log('Remove from List:', product);\r\n\t\tconst list = new ShoppingListController(getters.dealId);\r\n\t\tconst removedItem = list.removeItem(product?.sku);\r\n\t\tconsole.log(\"ShoppingList Controller RemoveItem:\", removedItem);\r\n\t\tcommit('UPDATE_SHOPPING_LIST_ITEMS', getters.dealId);\r\n\t\tdispatch('events/triggerEvent', {event: RaddarEvent.ShoppingList.Remove, data: product}, {root: true})\r\n\t},\r\n\r\n\tsetAddToList({commit, dispatch, rootState, rootGetters, getters}, payload) {\r\n\t\tif (state.shoppingListV1.length === 0) {\r\n\t\t\tLytics.TriggerShoppingListStart();\r\n\t\t}\r\n\t\tconst list = new ShoppingListController(getters.dealId);\r\n\t\tconsole.log(\"ShoppingList Controller AddItem:\", list.addItem(payload.sku || payload?.product?.sku, payload?.product || payload));\r\n\r\n\t\tcommit('ADD_ITEM_SHOPPING_LIST', {payload, rootState, rootGetters});\r\n\r\n\t\tdispatch('events/triggerEvent', {event: RaddarEvent.ShoppingList.Add, data: payload}, {root: true});\r\n\t\tcommit('UPDATE_SHOPPING_LIST_ITEMS', getters.dealId);\r\n\t},\r\n\tsetRemoveFromList({commit, dispatch, rootState, rootGetters, getters}, payload) {\r\n\t\t//Lytics.TriggerShoppingListProduct('remove', payload.product);\r\n\t\tconsole.log('Remove from List:', payload);\r\n\t\tconst list = new ShoppingListController(getters.dealId);\r\n\t\tconsole.log(\"ShoppingList Controller RemoveItem:\", list.removeItem(payload?.sku || payload?.product?.sku));\r\n\r\n\t\tcommit('REMOVE_ITEM_SHOPPING_LIST', {payload, rootState, rootGetters})\r\n\t\tdispatch('events/triggerEvent', {event: RaddarEvent.ShoppingList.Remove, data: payload}, {root: true})\r\n\t\tcommit('UPDATE_SHOPPING_LIST_ITEMS', getters.dealId);\r\n\t\t//return true;\r\n\t},\r\n\tquantityChange({commit, dispatch, rootState, rootGetters, getters}, payload) {\r\n\t\t//Lytics.TriggerShoppingListProduct('change_count', payload)\r\n\t\tcommit('HANDLE_QTY_CHANGE', {payload, rootState, rootGetters, dispatch})\r\n\t\tcommit('UPDATE_SHOPPING_LIST_ITEMS', getters.dealId);\r\n\t},\r\n\tclearAll({commit, dispatch, rootState, rootGetters, getters}) {\r\n\t\tconst list = new ShoppingListController(getters.dealId);\r\n\t\tlist.clear()\r\n\r\n\t\tLytics.TriggerShoppingList(\"clear\");\r\n\t\tcommit('CLEAR_SHOPPING_LIST', {rootState, rootGetters})\r\n\t\tdispatch('events/triggerEvent', {event: RaddarEvent.ShoppingList.Clear, data: {}}, {root: true})\r\n\t\tcommit('UPDATE_SHOPPING_LIST_ITEMS', getters.dealId);\r\n\t}, // eslint-disable-next-line no-unused-vars\r\n\tasync sendEmail({dispatch, rootState}, payload) {\r\n\t\ttry {\r\n\t\t\tawait Rest.Post('products/email', payload);\r\n\t\t\tLytics.TriggerShoppingList(\"email\");\r\n\t\t\t/*await axios.post(`${rootState.apiUrl}/products/email`,\r\n payload,\r\n {\r\n headers: {\r\n 'Ocp-Apim-Subscription-Key':`${rootState.subscriptionKey}`,\r\n 'content-type':'application/json;charset=UTF-8',\r\n }\r\n })*/\r\n\t\t} catch (error) {\r\n\t\t\tif (error.response.status != 200) dispatch('setEmailError', true)\r\n\t\t\tconsole.log(error);\r\n\t\t}\r\n\t},\r\n\tsetShoppingList({commit, getters}, payload) {\r\n\t\tcommit('SET_SHOPPING_LIST', payload)\r\n\t\tcommit('UPDATE_SHOPPING_LIST_ITEMS', getters.dealId);\r\n\t},\r\n\tsetEmailError({commit}, val) {\r\n\t\tcommit('EMAIL_ERROR', val)\r\n\t},\r\n\tsetAdditionalItemInputFocus({commit}, val) {\r\n\t\tcommit('SET_ADDITIONAL_ITEM_FOCUS', val)\r\n\t},\r\n\tsetEmailInputFocus({commit}, val) {\r\n\t\tcommit('SET_EMAIL_INPUT_FOCUS', val)\r\n\t},\r\n\thandleLocalStorage({rootGetters, dispatch, commit, getters}) {\r\n\r\n\t\tcommit('UPDATE_SHOPPING_LIST_ITEMS', getters.dealId);\r\n\r\n\t\tconst currentFlyer = rootGetters[\"landingPage/currentFlyer\"]\r\n\t\tlet data;\r\n\t\ttry {\r\n\t\t\tdata = JSON.parse(localStorage[`data_${currentFlyer.title}`])\r\n\t\t} catch (e) {\r\n\t\t\tdispatch('setShoppingList', [])\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar today = moment().format('YYYY-MM-DD');\r\n\t\tvar endDate = moment(data.endDate).format('YYYY-MM-DD');\r\n\r\n\t\tif (today > endDate) {\r\n\t\t\twindow.localStorage.removeItem(`data_${currentFlyer.title}`);\r\n\t\t\tdispatch('setShoppingList', [])\r\n\r\n\t\t} else {\r\n\t\t\tdispatch('setShoppingList', data.shoppingList)\r\n\t\t}\r\n\t},\r\n\thandleFlyerDate({commit}, value) {\r\n\t\tcommit(\"SET_FLYER_DATE\", value)\r\n\t}\r\n};\r\n\r\nconst mutations = {\r\n\r\n\tUPDATE_SHOPPING_LIST_ITEMS(state, listId) {\r\n\t\t/*console.log('Shoppinglist Update Items:', listId)*/\r\n\t\tconst list = new ShoppingListController(listId);\r\n\t\tstate.shoppingListItems = list.getList();\r\n\t},\r\n\r\n\tSET_SHOPPING_LIST(state, value) {\r\n\t\tstate.shoppingList = value\r\n\t},\r\n\tSHOW_SHOPPING_LIST(state, value) {\r\n\t\tstate.showShoppingList = value;\r\n\t},\r\n\tSHOW_SHOPPING_LISTV1(state, value) {\r\n\t\tstate.showShoppingListV1 = value;\r\n\t},\r\n\tSHOW_SHOPPING_LISTV2(state, value) {\r\n\t\tstate.showShoppingListV2 = value;\r\n\t},\r\n\tSET_FLYER_DATE(state, val) {\r\n\t\tstate.flyerDate = val;\r\n\t},\r\n\r\n\tADD_ITEM_SHOPPING_LIST(state, {payload, rootGetters, rootState}) {\r\n\t\tconst currentFlyer = rootGetters[\"landingPage/currentFlyer\"]\r\n\t\tlet newElement, sp, savings='', price='', pq='';\r\n\t\tif(payload.version===\"v1\") {\r\n\t\t\tconst date = router.currentRoute.query['timeTravelDate'] ?? moment();\r\n\t\t\t//subtracting and adding 1 day because isBetween function from momentJS doesn't consider the actual date (same day)\r\n\t\t\tconst startDate = moment(payload.product?.validFrom).subtract(1, \"days\")\r\n\t\t\tconst endDate = moment(payload.product?.validTo).add(1, \"days\")\r\n\t\t\tlet isTodayBetweenValidity = moment(date).isBetween(startDate, endDate);\r\n\t\t\tif (payload.product?.tags?.includes('S&S')) {\r\n\t\t\t\tprice = payload.product?.salePrice\r\n\t\t\t} else {\r\n\t\t\t\tif (payload.product?.savingsEn)\r\n\t\t\t\t\tprice = payload.product.savingsPrefix + ' ' + payload.product.savingsEn\r\n\t\t\t\telse price = isTodayBetweenValidity === true ? payload.product?.salePrice : payload.product?.rowPrice || '';\r\n\t\t\t}\r\n\t\t\tif (price !== '' && price !== null && !payload.product?.savingsEn)\r\n {\r\n sp = payload.product?.priceSign?.includes('$') ? `${payload.product.priceSign}${(price)} ` : `${price}${payload.product?.priceSign}`;\r\n }\r\n\r\n\t\t\telse sp = price\r\n\t\t\tif (sp === '' || sp === null) {\r\n\t\t\t\tsp = payload.product?.savingsEn ? payload.product.savingsPrefix + ' ' + payload.product.savingsEn : ''\r\n\t\t\t}\r\n\t\t\tif (payload.additionalItemFlag === false) {\r\n\t\t\t\tnewElement = {\r\n\t\t\t\t\tproductEn: payload.product.productEn,\r\n\t\t\t\t\tproductFr: payload.product.productFr,\r\n\t\t\t\t\tproductImage: payload.product.productImage, //salePrice: rootGetters.language=='en' ? '$'+parseFloat(payload.product.salePrice).toFixed(2) : parseFloat(payload.product.salePrice).toFixed(2).replace(\".\",\",\")+'$',\r\n\t\t\t\t\t//salePrice: (rootGetters.language == 'en' && (payload.product.salePriceFr === 'NaN' || payload.product.salePriceFr === '' || payload.product.salePriceFr == null)) ? '' : (rootGetters.language == 'en' && (isNaN(payload.product.salePriceFr))) ? (payload.product.salePriceFr) : (rootGetters.language == 'en' && (payload.product.salePriceFr.includes('à '))) ? '$' + (payload.product.salePriceFr) : (rootGetters.language == 'en' && (payload.product.salePriceFr !== 'NaN' || payload.product.salePriceFr !== '' || payload.product.salePriceFr !== null || !payload.product.salePriceFr.includes('à '))) ? '$' + (parseFloat(payload.product.salePriceFr).toFixed(2))\r\n\r\n\t\t\t\t\t//\t: (rootGetters.language !== 'en' && (payload.product.salePriceFr === 'NaN' || payload.product.salePriceFr === '' || payload.product.salePriceFr == null)) ? '' : (rootGetters.language !== 'en' && (isNaN(payload.product.salePrice))) ? (payload.product.salePriceFr) : (rootGetters.language !== 'en' && (payload.product.salePriceFr.includes('à '))) ? (payload.product.salePriceFr.replaceAll(\".\", \",\")) + '$' : (rootGetters.language !== 'en' && (payload.product.salePriceFr !== 'NaN' || payload.product.salePriceFr !== '' || payload.product.salePriceFr !== null || !payload.product.salePriceFr.includes('à '))) ? (parseFloat(payload.product.salePriceFr).toFixed(2)).replace(\".\", \",\") + '$' : '$' + payload.product.salePriceFr,\r\n\t\t\t\t\tsalePrice: payload.product.tags?.includes(\"bogo\") ? payload.product.savingsEn : sp,\r\n\t\t\t\t\tlimitQty: isTodayBetweenValidity === true && !payload.product?.tags?.includes('S&S') ? payload.product.limitQty : '',\r\n\t\t\t\t\tregularPrice: payload.product.regularPrice,\r\n\t\t\t\t\titem: '',\r\n\t\t\t\t\tcontents: payload.product.contents,\r\n\t\t\t\t\tsku: payload.product.sku,\r\n\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\tvalidFrom: payload.product.validFrom,\r\n\t\t\t\t\tvalidTo: payload.product.validTo,\r\n\t\t\t\t\tflyerDate: state.flyerDate,\r\n\t\t\t\t\tpriceQuantity: isTodayBetweenValidity === true ? payload.product.priceQuantity : '',\r\n\t\t\t\t\tsalePricePrefix: (rootGetters.language === 'en') ? payload.product.salePricePrefixEn : payload.product.salePricePrefixFr\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tstate.additionalItemCount += 1\r\n\t\t\t\tnewElement = {\r\n\t\t\t\t\tproductEn: '',\r\n\t\t\t\t\tproductFr: payload.additionalItem,\r\n\t\t\t\t\tproductImage: '/images/icon-generic-product.svg',\r\n\t\t\t\t\tsalePrice: payload.additionalItem,\r\n\t\t\t\t\tlimitQty: null,\r\n\t\t\t\t\tregularPrice: '',\r\n\t\t\t\t\titem: payload.additionalItem,\r\n\t\t\t\t\tsku: state.additionalItemCount.toString(),\r\n\t\t\t\t\tcontents: '',\r\n\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\tvalidFrom: '',\r\n\t\t\t\t\tvalidTo: '',\r\n\t\t\t\t\tflyerDate: '',\r\n\t\t\t\t\tpriceQuantity: '',\r\n\t\t\t\t\tsalePricePrefix: ''\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tstate.shoppingListV1.push(newElement);\r\n\t\t\tlocalStorage[`data_${currentFlyer.title}`] = JSON.stringify({\r\n\t\t\t\tshoppingList: state.shoppingListV1, lang: rootGetters.language, content: rootGetters.content, startDate: currentFlyer.startDate, endDate: currentFlyer.endDate, currentDeal: currentFlyer.title\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if(payload.version===\"v2\"){\r\n\t\t\tif(payload.isXdaySale){\r\n\t\t\t\tif(payload.product?.rowPrice)\r\n\t\t\t\t\tprice= price + payload.product?.rowPrice\r\n\t\t\t\tif(payload.product?.rowPriceQty)\r\n\t\t\t\t\tpq = payload.product?.rowPriceQty\r\n\t\t\t}\r\n\r\n\t\t\telse if (payload.product?.memberPriceEn || payload.product?.memberPriceFr || payload.product?.memberSave) {\r\n\t\t\t\trootGetters.language=='en' && (payload.product?.memberPricePrefixEn ) ? price= payload.product?.memberPricePrefixEn?.replace(/\\w\\S*/g, (txt) => {return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()})+' ' : ''\r\n\t\t\t\trootGetters.language=='fr' && (payload.product?.memberPricePrefixFr ) ? price= payload.product?.memberPricePrefixFr?.replace(/\\w\\S*/g, (txt) => {return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()})+' ' : ''\r\n\r\n\t\t\t\tif(payload.product?.memberPriceQuantity) price = price+payload.product?.memberPriceQuantity+' / '\r\n\t\t\t\trootGetters.language=='en' ? price= price+' '+ parseFloat(payload.product?.memberPriceEn).toFixed(2) : price= price+' '+ parseFloat(payload.product?.memberPriceFr).toFixed(2)\r\n\r\n\t\t\t\tif(payload.product?.memberPriceUnit) price= price+' '+payload.product?.memberPriceUnit\r\n\t\t\t\tif(payload.product?.memberSavePrefix) price= price+' '+payload.product?.memberSavePrefix?.replace(/\\w\\S*/g, (txt) => {return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()});\r\n\t\t\t\tif(payload.product?.memberSave) price= price+' '+payload.product?.memberSave\r\n\t\t\t\tif(payload.product?.memberSaveSuffixEn) price= price+' '+payload.product?.memberSaveSuffixEn?.replace(/\\w\\S*/g, (txt) => {return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()})\r\n\r\n\t\t\t\tif(payload.product.salePricePrefixEn && rootGetters.language==\"en\"){\r\n\t\t\t\t\tsavings=payload.product?.salePricePrefixEn+' '\r\n\t\t\t\t\tif(payload.product?.priceQuantity)\r\n\t\t\t\t\t\tsavings += payload.product?.priceQuantity+' / '\r\n\t\t\t\t\tif(payload.product?.salePrice)\r\n\t\t\t\t\t\tsavings += parseFloat(payload.product?.salePrice).toFixed(2)\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse if(payload.product.salePricePrefixFr && rootGetters.language==\"fr\"){\r\n\t\t\t\t\tsavings=payload.product?.salePricePrefixFr+' '\r\n\t\t\t\t\tif(payload.product?.priceQuantity)\r\n\t\t\t\t\t\tsavings += payload.product?.priceQuantity+' / '\r\n\t\t\t\t\tif(payload.product?.salePrice)\r\n\t\t\t\t\t\tsavings += parseFloat(payload.product?.salePrice).toFixed(2)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(payload.product.memberSave && payload.product.savingsEn)\r\n\t\t\t\t\tsavings = payload.product?.savingsPrefix + ' ' + payload.product?.savingsEn + ' '+payload.product?.savingsSuffix\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif(rootGetters.language=='en' && payload.product?.salePricePrefixEn) price = price+payload.product?.salePricePrefixEn\r\n\t\t\t\tif(rootGetters.language=='fr' && payload.product?.salePricePrefixFr) price = price+payload.product?.salePricePrefixFr\r\n\t\t\t\tif(payload.product?.priceQuantity) pq = payload.product?.priceQuantity\r\n\t\t\t\tif(payload.product?.salePrice) price= price+' '+ payload.product?.salePrice+' '\r\n\t\t\t\trootGetters.language=='en' ? price= price+payload.product?.promoUnitEn : price= price+payload.product?.promoUnitFr\r\n\t\t\t}\r\n\r\n\t\t\tif (price === '' || price === null || price=== 'null') {\r\n\t\t\t\tprice = payload.product?.savingsEn ? payload.product?.savingsPrefix + ' ' + payload.product?.savingsEn + ' '+payload.product?.savingsSuffix : ''\r\n\t\t\t}\r\n\t\t\tlet c = payload.product?.bodyEn !== payload.product?.bodyFr ? payload.product?.bodyFr +'\\n'+payload.product?.bodyEn : rootGetters.language=='en' ? payload.product?.bodyEn : payload.product?.bodyFr\r\n\r\n\t\t\tif (payload.additionalItemFlag === false) {\r\n\t\t\t\tnewElement = {\r\n\t\t\t\t\tproductEn: payload.product.productEn,\r\n\t\t\t\t\tproductFr: payload.product.productFr,\r\n\t\t\t\t\tproductImage: payload.product.productImage,\r\n\t\t\t\t\tsalePrice: price.replace(\"null\",''),\r\n\t\t\t\t\tlimitQty: payload.product?.limitQty || '',\r\n\t\t\t\t\tregularPrice: payload.product.regularPrice ||'',\r\n\t\t\t\t\titem: '',\r\n\t\t\t\t\tcontents: c.replace('null',''),\r\n\t\t\t\t\tsku: payload.product.sku,\r\n\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\t// pharma: payload.isPharma,\r\n\t\t\t\t\tvalidFrom: payload.isXdaySale ? payload.product.validFromROW : payload.product.validFrom,\r\n\t\t\t\t\tvalidTo: payload.isXdaySale ? payload.product.validToROW : payload.product.validTo,\r\n\t\t\t\t\tflyerDate: state.flyerDate,\r\n\t\t\t\t\tpriceQuantity: pq.replace(\"null\",''),\r\n\t\t\t\t\tsalePricePrefix: savings.replace(\"null\",'')\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tstate.additionalItemCount += 1\r\n\t\t\t\tnewElement = {\r\n\t\t\t\t\tproductEn: payload.additionalItem,\r\n\t\t\t\t\tproductFr: payload.additionalItem,\r\n\t\t\t\t\tproductImage: '/images/icon-generic-product.svg',\r\n\t\t\t\t\tsalePrice: '',\r\n\t\t\t\t\tlimitQty: null,\r\n\t\t\t\t\tregularPrice: '',\r\n\t\t\t\t\titem: payload.additionalItem,\r\n\t\t\t\t\tsku: state.additionalItemCount.toString(),\r\n\t\t\t\t\tcontents: '',\r\n\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\tvalidFrom: '',\r\n\t\t\t\t\tvalidTo: '',\r\n\t\t\t\t\tflyerDate: '',\r\n\t\t\t\t\tpriceQuantity: '',\r\n\t\t\t\t\tsalePricePrefix: ''\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tstate.shoppingListV2.push(newElement);\r\n\t\t\tlocalStorage[`data_${currentFlyer.title}`] = JSON.stringify({\r\n\t\t\t\tshoppingList: state.shoppingListV2, lang: rootGetters.language, content: rootGetters.content, startDate: currentFlyer.startDate, endDate: currentFlyer.endDate, currentDeal: currentFlyer.title\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (payload.additionalItemFlag == false) {\r\n\t\t\t\tnewElement = {\r\n\t\t\t\t\tproductEn: payload.product.productEn,\r\n\t\t\t\t\tproductFr: payload.product.productFr,\r\n\t\t\t\t\tproductImage: payload.product.productImage, //salePrice: rootGetters.language=='en' ? '$'+parseFloat(payload.product.salePrice).toFixed(2) : parseFloat(payload.product.salePrice).toFixed(2).replace(\".\",\",\")+'$',\r\n\t\t\t\t\tsalePrice: (rootGetters.language == 'en' && (payload.product.salePriceFr === 'NaN' || payload.product.salePriceFr === '' || payload.product.salePriceFr == null)) ? '' : (rootGetters.language == 'en' && (isNaN(payload.product.salePriceFr))) ? (payload.product.salePriceFr) : (rootGetters.language == 'en' && (payload.product.salePriceFr.includes('à '))) ? '$' + (payload.product.salePriceFr) : (rootGetters.language == 'en' && (payload.product.salePriceFr !== 'NaN' || payload.product.salePriceFr !== '' || payload.product.salePriceFr !== null || !payload.product.salePriceFr.includes('à '))) ? '$' + (parseFloat(payload.product.salePriceFr).toFixed(2))\r\n\r\n\t\t\t\t\t\t: (rootGetters.language !== 'en' && (payload.product.salePriceFr === 'NaN' || payload.product.salePriceFr === '' || payload.product.salePriceFr == null)) ? '' : (rootGetters.language !== 'en' && (isNaN(payload.product.salePrice))) ? (payload.product.salePriceFr) : (rootGetters.language !== 'en' && (payload.product.salePriceFr.includes('à '))) ? (payload.product.salePriceFr.replaceAll(\".\", \",\")) + '$' : (rootGetters.language !== 'en' && (payload.product.salePriceFr !== 'NaN' || payload.product.salePriceFr !== '' || payload.product.salePriceFr !== null || !payload.product.salePriceFr.includes('à '))) ? (parseFloat(payload.product.salePriceFr).toFixed(2)).replace(\".\", \",\") + '$' : '$' + payload.product.salePriceFr,\r\n\t\t\t\t\tregularPrice: payload.product.regularPrice,\r\n\t\t\t\t\titem: '',\r\n\t\t\t\t\tsku: payload.product.sku,\r\n\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\tvalidFrom: payload.product.validFrom,\r\n\t\t\t\t\tvalidTo: payload.product.validTo,\r\n\t\t\t\t\tpriceQuantity: payload.product.priceQuantity,\r\n\t\t\t\t\tsalePricePrefix: (rootGetters.language == 'en') ? payload.product.salePricePrefixEn : payload.product.salePricePrefixFr\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tstate.additionalItemCount += 1\r\n\t\t\t\tnewElement = {\r\n\t\t\t\t\tproductEn: '',\r\n\t\t\t\t\tproductFr: payload.additionalItem,\r\n\t\t\t\t\tproductImage: '/images/icon-generic-product.svg',\r\n\t\t\t\t\tsalePrice: '',\r\n\t\t\t\t\tregularPrice: '',\r\n\t\t\t\t\titem: payload.additionalItem,\r\n\t\t\t\t\tsku: state.additionalItemCount.toString(),\r\n\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\tvalidFrom: '',\r\n\t\t\t\t\tvalidTo: '',\r\n\t\t\t\t\tpriceQuantity: '',\r\n\t\t\t\t\tsalePricePrefix: ''\r\n\t\t\t\t}\r\n\t\t\t\tconsole.log(newElement)\r\n\r\n\t\t\t}\r\n\t\t\tstate.shoppingList.push(newElement);\r\n\t\t\tlocalStorage[`data_${currentFlyer.title}`] = JSON.stringify({\r\n\t\t\t\tshoppingList: state.shoppingList, lang: rootGetters.language, content: rootGetters.content, startDate: currentFlyer.startDate, endDate: currentFlyer.endDate, currentDeal: currentFlyer.title\r\n\t\t\t});\r\n\t\t}\r\n\t\tLytics.TriggerShoppingListProduct(\"add\", newElement.productEn || newElement.productFr, newElement);\r\n\t\tLytics.TriggerAddToCart({\r\n\t\t\tpage_number: rootState.currentPageNumber,\r\n\t\t\tname: newElement.productEn || newElement.productFr,\r\n\t\t\tname_en: newElement.productEn,\r\n\t\t\tname_fr: newElement.productFr,\r\n\t\t\tproduct_id: newElement.sku,\r\n\t\t\tprice: newElement.regularPrice,\r\n\t\t\tsale_price: newElement.salePrice,\r\n\t\t\tcategory: newElement.mainCategory,\r\n\t\t\tcategory_2: newElement.subCategory,\r\n\t\t\timage_url: newElement.productImage,\r\n\t\t\tquantity: newElement.quantity,\r\n\t\t});\r\n\t},\r\n\r\n\tREMOVE_ITEM_SHOPPING_LIST(state, {payload, rootGetters}) {\r\n\t\tconst version = payload?.version\r\n\t\tconst product = version==='v1' ? state.shoppingListV1.filter(p=>p.sku===payload.product.sku) : state.shoppingList.filter(p=>p.sku===payload.sku)\r\n\t\tif(version==='v1') state.shoppingListV1 = state.shoppingListV1.filter(product => product.sku !== payload.product.sku);\r\n\t\telse if(version==='v2') state.shoppingListV2 = state.shoppingListV2.filter(product => product.sku !== payload.product.sku);\r\n\t\telse state.shoppingList = state.shoppingList.filter(product => product.sku !== payload.sku);\r\n\r\n\t\tLytics.TriggerShoppingListProduct(\"remove\", product.productEn || product.productFr, product);\r\n\t\tconst currentFlyer = rootGetters[\"landingPage/currentFlyer\"]\r\n\t\tlocalStorage[`data_${currentFlyer.title}`] = JSON.stringify({\r\n\t\t\tshoppingList: version=='v1' ? state.shoppingListV1 : state.shoppingList, lang: rootGetters.language, content: rootGetters.content, startDate: currentFlyer.startDate, endDate: currentFlyer.endDate, currentDeal: currentFlyer.title\r\n\t\t});\r\n\t},\r\n\r\n\tHANDLE_QTY_CHANGE(state, {payload, rootGetters, dispatch}) {\r\n\t\tlet item;\r\n\t\tconst version = payload?.version;\r\n\r\n\t\tif(version==='v1') item = state.shoppingListV1.filter(product => product.sku === payload.sku);\r\n\t\telse if(version==='v2') item = state.shoppingListV2.filter(product => product.sku === payload.sku);\r\n\t\telse item = state.shoppingList.filter(product => product.sku === payload.sku);\r\n\r\n\t\tLytics.TriggerShoppingListProduct(\"change_count\", payload.productEn || payload.productFr, payload);\r\n\t\tif (payload.operation == 'plus') item[0].quantity = item[0].quantity + 1;\r\n\r\n\r\n\t\telse if (payload.operation == 'minus') item[0].quantity = item[0].quantity - 1;\r\n\r\n\t\tconst currentFlyer = rootGetters[\"landingPage/currentFlyer\"]\r\n\t\tlocalStorage[`data_${currentFlyer.title}`] = JSON.stringify({\r\n\t\t\tshoppingList: version=='v1' ? state.shoppingListV1 : state.shoppingList, lang: rootGetters.language, content: rootGetters.content, startDate: currentFlyer.startDate, endDate: currentFlyer.endDate, currentDeal: currentFlyer.title\r\n\t\t});\r\n\t\tdispatch('events/triggerEvent', {event: RaddarEvent.ShoppingList.Quantity, data: {product: payload, quantity: item[0]?.quantity}}, {root: true})\r\n\r\n\t}, CLEAR_SHOPPING_LIST(state, {rootGetters}) {\r\n\t\tstate.shoppingList = []\r\n\t\tstate.shoppingListV1 = []\r\n\t\tstate.shoppingListV2 = []\r\n\t\tconst currentFlyer = rootGetters[\"landingPage/currentFlyer\"]\r\n\t\tlocalStorage[`data_${currentFlyer.title}`] = JSON.stringify({\r\n\t\t\tshoppingList: state.shoppingList, lang: rootGetters.language, content: rootGetters.content, startDate: currentFlyer.startDate, endDate: currentFlyer.endDate, currentDeal: currentFlyer.title\r\n\t\t});\r\n\t},\r\n\r\n\tEMAIL_ERROR(state, val) {\r\n\t\tstate.emailError = val;\r\n\t}, SET_ADDITIONAL_ITEM_FOCUS(state, val) {\r\n\t\tstate.additionalItemInputFocus = val\r\n\t}, SET_EMAIL_INPUT_FOCUS(state, val) {\r\n\t\tstate.emailInputFocus = val\r\n\t},\r\n\r\n};\r\n\r\nexport default {\r\n\tnamespaced: true, state, getters, actions, mutations,\r\n};","import router from \"@/router\";\r\n\r\nconst state = {\r\n\trawHash: ''\r\n}\r\n\r\nconst getters = {\r\n\turlHash(state) {\r\n\t\tconst rh = state.rawHash.slice(1).split('&');\r\n\t\tlet o = {};\r\n\r\n\t\trh.map((i) => {\r\n\t\t\tconst item = i.split('=');\r\n\t\t\to[item[0]] = item[1];\r\n\t\t})\r\n\r\n\t\treturn o;\r\n\t},\r\n\tisDeepLink(){\r\n\t\tconst route = router.currentRoute;\r\n\t\tconst queries = [\r\n\t\t\t'searchTerm',\r\n\t\t\t'category',\r\n\t\t\t'saving',\r\n\t\t\t'waysToSave'\r\n\t\t];\r\n\t\tconst hashes = [\r\n\t\t\t'sku',\r\n\t\t\t'page',\r\n\t\t\t'index'\r\n\t\t];\r\n\r\n\t\tfor(let query of queries) {\r\n\t\t\tif(route?.query[query]) return true;\r\n\t\t}\r\n\r\n\t\tfor(let hash of hashes) {\r\n\t\t\tif(route?.hash?.includes(`${hash}=`))return true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nconst actions = {\r\n\tupdateHash({commit}, hash) {\r\n\t\tcommit('UPDATE_HASH', hash);\r\n\t},\r\n\r\n\tfindPageWithSku({rootState}, sku) {\r\n\t\tconst pages = rootState.pages || [];\r\n\t\treturn pages.find((page) => {\r\n\t\t\treturn page.blocks.find((block) => {\r\n\t\t\t\treturn block.products.find((product) => {\r\n\t\t\t\t\treturn product.sku === sku;\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n\r\nconst mutations = {\r\n\tUPDATE_HASH(state, hash) {\r\n\t\tstate.rawHash = hash\r\n\t}\r\n}\r\n\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tactions,\r\n\tmutations,\r\n\tgetters\r\n}\r\n","/* eslint-disable no-case-declarations */\r\nimport router from \"@/router\";\r\nimport Service from \"@/api/Service\";\r\nimport FilterPanel from \"@/features/filters/FilterPanel.vue\";\r\n//import Vue from \"vue\";\r\n//import {isEmpty} from \"lodash\";\r\n\r\n\r\n//import config from \"@/flyerConfig.json\";\r\n\r\n//Search debounce timeout id;\r\nlet sdid = null;\r\n\r\nfunction convertApiDataToListItem(apiFilters) {\r\n return apiFilters.map((item) => {\r\n if(!!item?.label && !!item?.checkbox) return item;\r\n const label = (typeof item === 'string') ? item : item?.titleEn;\r\n let subItems = (Array.isArray(item?.subcategories) ? convertApiDataToListItem(item.subcategories): []).filter((item) => {\r\n return !!item.label;\r\n });\r\n\r\n subItems = subItems.length? subItems: null;\r\n\r\n return {\r\n label,\r\n subItems,\r\n checkbox: {\r\n selected: false\r\n }\r\n };\r\n })\r\n}\r\n\r\nfunction setDropDownItemsSelectState(items, state) {\r\n for(let i =0; i < items.length; i++){\r\n const item = items[i];\r\n item.checkbox.selected = state;\r\n if(item.subItems) {\r\n setDropDownItemsSelectState(item.subItems, state);\r\n }\r\n }\r\n}\r\n\r\nfunction parseFilterItemValue(items, v, format, sid) {\r\n items.forEach((item) => {\r\n if (item.checkbox.selected) {\r\n switch (format) {\r\n case 'boolean':\r\n //Vue.set(v, item.id || item.label, true);\r\n v[item.id || item.label] = true;\r\n break;\r\n case 'single':\r\n //Vue.set(v, sid, item.value || item.label)\r\n v[sid] = item.value || item.label\r\n break;\r\n default:\r\n if (!v[sid]) {\r\n //Vue.set(v, sid, [])\r\n v[sid] = [];\r\n }\r\n v[sid].push(item.value || item.label)\r\n }\r\n }\r\n if(Array.isArray(item.subItems) && sid === 'category') {\r\n parseFilterItemValue(item.subItems, v, format, 'subCategory')\r\n }\r\n })\r\n}\r\n\r\n\r\nconst state = {\r\n filterData: [],\r\n filterPanelDrawer: 'header'\r\n}\r\nconst getters = {\r\n config(state, getters, rootState, rootGetters) {\r\n const features = rootGetters['config/features'];\r\n return features?.filters || [];// JSON.parse(JSON.stringify(features.filters));\r\n },\r\n\r\n filters(state, getters) {\r\n const fd = state.filterData;\r\n const config = getters.config;\r\n // console.log('***** Updating Filters')\r\n return config.map((fc) => {\r\n if (fc?.sections) {\r\n fc.sections = fc.sections.map((section) => {\r\n const rdProp = section?.loadFrom || section?.name;\r\n /*if(!section._items) {\r\n section._items = cloneDeep(section.items);\r\n }*/\r\n if (fd[rdProp]) {\r\n /*Vue.set(section, 'items', (section?.customItems || []).concat(convertApiDataToListItem(fd[rdProp])).sort((a, b) => {\r\n return a.label.localeCompare(b.label);\r\n }))*/\r\n section.items = (section?.customItems || []).concat(convertApiDataToListItem(fd[rdProp])).sort((a, b) => {\r\n return a.label.localeCompare(b.label);\r\n });\r\n }\r\n return section;\r\n })\r\n }\r\n return fc;\r\n })\r\n },\r\n hasMadeInCanadaOrQuebecProducts(state, getters, rootState){\r\n return rootState?.pages.some(page =>\r\n page?.blocks.some(block =>\r\n block?.products.some(product =>\r\n product.madeInCanada || product.madeInQuebec)\r\n )\r\n )\r\n },\r\n filtersByType(state, getters) {\r\n const f = {};\r\n getters.filters.forEach((filter) => {\r\n if(!filter?.type)return;\r\n const type = filter.type;\r\n if(!f[type]) {\r\n f[type] = [];\r\n }\r\n f[type].push(filter);\r\n })\r\n return f;\r\n },\r\n filtersByName(state, getters){\r\n const f = {};\r\n getters.filters.forEach((filter) => {\r\n if(!filter?.name)return;\r\n f[filter.name] = filter;\r\n })\r\n return f;\r\n },\r\n\r\n searchQuery(state, getters) {\r\n const filters = getters.filters;\r\n\r\n if(!filters)return [];\r\n\r\n const v = {};\r\n\r\n filters.forEach((filter) => {\r\n const sections = filter?.sections;\r\n switch(filter.type) {\r\n case 'dropdown':\r\n if(!sections)return;\r\n sections.forEach((section) => {\r\n const sid = section.id;\r\n const format = section?.format ?? 'array';\r\n parseFilterItemValue(section.items, v, format, sid);\r\n /*section.items.forEach((item) => {\r\n if (item.checkbox.selected) {\r\n switch (format) {\r\n case 'boolean':\r\n //Vue.set(v, item.id || item.label, true);\r\n v[item.id || item.label] = true;\r\n break;\r\n case 'single':\r\n //Vue.set(v, sid, item.value || item.label)\r\n v[sid] = item.value || item.label\r\n break;\r\n default:\r\n if (!v[sid]) {\r\n //Vue.set(v, sid, [])\r\n v[sid] = [];\r\n }\r\n v[sid].push(item.value || item.label)\r\n }\r\n }\r\n });*/\r\n })\r\n break;\r\n case 'toggle-button':\r\n const fWithMultipleParams = filters.filter( f => f?.multipleParams?.length>0)\r\n if(fWithMultipleParams && filter.value)\r\n fWithMultipleParams[0]?.multipleParams?.forEach(param => ( v[param] = filter.value ))\r\n if(filter.value)\r\n v[filter.name] = filter.value\r\n break;\r\n case 'searchbar':\r\n if(filter.value){\r\n //Vue.set(v, filter.name, filter.value);\r\n v[filter.query || filter.name] = filter.value;\r\n }\r\n break;\r\n case 'rangeList':\r\n const items = filter.items;\r\n let selected = null;\r\n for(let i=0; i < items.length; i++){\r\n const item = items[i];\r\n if(item.selected) selected = item;\r\n }\r\n if(selected){\r\n v[filter.query || filter.name] = selected.value;\r\n }\r\n break;\r\n }\r\n })\r\n\r\n return v;\r\n },\r\n hasFilters(state, getters) {\r\n return !!Object.keys(getters.searchQuery).length;\r\n },\r\n drawerItems(state, getters, rootState) {\r\n return rootState.drawer.drawerItems;\r\n },\r\n isFilterPanelOpen(state, getters){\r\n const items = getters.drawerItems[state.filterPanelDrawer];\r\n return !!items['filters'];\r\n }\r\n}\r\nconst actions = {\r\n async loadFlyerFilters({commit}) {\r\n const flyerId = router.currentRoute.params.flyerId;\r\n const storeId = parseInt(router.currentRoute.query?.storeId || '', 10);\r\n const lang = router.currentRoute.query.language === 'fr' ? 'bil' : 'en';\r\n\r\n const filters = await Service.GetAllFilters(flyerId, storeId, lang);\r\n commit('SET_FILTER_DATA', filters);\r\n },\r\n clearFilters({ dispatch, getters }) {\r\n console.log('Clear Filters')\r\n dispatch(\"search/resetFilters\", null, {root: true});\r\n const filters = getters.filters;\r\n\r\n if(!filters)return;\r\n filters.forEach((filter) => {\r\n const sections = filter?.sections;\r\n\r\n switch(filter.type) {\r\n case 'dropdown':\r\n if(!sections)return;\r\n sections.forEach((section) => {\r\n setDropDownItemsSelectState(section.items, false);\r\n /*section.items.forEach((item) => {\r\n item.checkbox.selected = false;\r\n });*/\r\n })\r\n break;\r\n case 'toggle-button':\r\n filter.value = false;\r\n break;\r\n case 'searchbar':\r\n filter.value = '';\r\n break;\r\n case 'rangeList':\r\n filter.items.forEach((item) => {\r\n item.selected = false;\r\n })\r\n break;\r\n }\r\n\r\n })\r\n },\r\n\r\n setFilterPanelState({dispatch, state, rootGetters}, fs) {\r\n if(!fs){\r\n dispatch('drawer/removeFromDrawer', {id: 'filters', drawer: state.filterPanelDrawer}, {root: true})\r\n } else {\r\n const drawerConfig = {id: 'filters', component: FilterPanel, drawer: state.filterPanelDrawer};\r\n if(rootGetters[\"raddar/isRaddar\"]) {\r\n drawerConfig.attrs = {class: 'raddar-filters', 'feature-config-path': 'raddar.filterPanel'}\r\n }\r\n dispatch('drawer/addToDrawer', drawerConfig, {root: true})\r\n }\r\n },\r\n\r\n executeFilter({ getters , dispatch }) {\r\n if(sdid)return;\r\n\r\n sdid = setTimeout(() => {\r\n dispatch('search/filterProducts', getters.searchQuery, {root:true} )\r\n sdid = null;\r\n }, 1);\r\n\r\n }\r\n}\r\nconst mutations = {\r\n SET_FILTER_DATA(state, filters) {\r\n state.filterData = filters;\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import ParentComms from \"@/classes/ParentComms\";\r\n\r\n/*const MODE_INTERNAL = 'internal';\r\nconst MODE_EXTERNAL = 'external';*/\r\n\r\nimport ObjPropParser from \"@/classes/ObjPropParser\";\r\nimport {PDP_EVENT_HIDE, PDP_EVENT_SHOW} from \"@/features/pdp/PDP_Constants\";\r\n\r\n\r\nconst state = {\r\n\tisVisible: false,\r\n\tproduct: null\r\n}\r\n\r\nconst getters = {\r\n\tconfig(state, getters, rootState, rootGetters) {\r\n\t\tconst config = rootGetters[\"config/features\"];\r\n\t\treturn config?.pdp;\r\n\t},\r\n\tenabled(state, getters) {\r\n\t\tconst config = getters.config;\r\n\t\treturn config && config?.enabled !== false;\r\n\t},\r\n\tmode(state, getters) {\r\n\t\treturn getters.config?.mode;\r\n\t}\r\n}\r\n\r\nconst actions = {\r\n\topen({ dispatch }, product){\r\n\t\tdispatch('events/triggerEvent', {event: PDP_EVENT_SHOW, data:{product}}, {root:true} )\r\n\t\t/*commit('SET_PRODUCT', product);\r\n\t\tswitch(getters.mode) {\r\n\t\t\tcase MODE_INTERNAL:\r\n\t\t\t\tcommit('SET_VISIBILITY', true);\r\n\t\t\tbreak;\r\n\t\t\tcase MODE_EXTERNAL:\r\n\t\t\t\tdispatch('sendPost');\r\n\t\t\tbreak;\r\n\t\t}*/\r\n\t},\r\n\tclose( {dispatch} ) {\r\n\t\tdispatch('events/triggerEvent', {event: PDP_EVENT_HIDE}, {root:true} )\r\n\t\t/*commit('SET_PRODUCT', null);\r\n\t\tcommit('SET_VISIBILITY', false);*/\r\n\t},\r\n\tsendPost({ state, getters, rootGetters, rootState }){\r\n\t\tconst flyer = rootGetters['landingPage/currentFlyer'];\r\n\t\tParentComms.SendData(ObjPropParser.Parse(getters?.config?.post, {__product: state.product, __flyer:flyer, __root:rootState}));\r\n\t}\r\n}\r\n\r\nconst mutations = {\r\n\t/*SET_VISIBILITY(state, value) {\r\n\t\tstate.isVisible = value;\r\n\t},\r\n\tSET_PRODUCT(state, product){\r\n\t\tstate.product = product;\r\n\t}*/\r\n}\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations\r\n};\r\n","const state = {\r\n\tdrawerItems: {}\r\n}\r\n\r\nconst getters = {\r\n\tdrawerIsOpen(state) {\r\n\t\treturn Object.keys(state.drawerItems).length > 0;\r\n\t}\r\n}\r\n\r\nconst actions = {\r\n\taddToDrawer({commit}, {id, component, attrs = {}}) {\r\n\t\tconsole.log('addToDrawer: id:',id, ' Component:', component, ' attrs:', attrs)\r\n\t\tcommit(\"ADD_TO_DRAWER\", {id, component, attrs})\r\n\t},\r\n\r\n\tremoveFromDrawer({commit}, id) {\r\n\t\tcommit(\"REMOVE_FROM_DRAWER\", id);\r\n\t}\r\n}\r\n\r\nconst mutations = {\r\n\tADD_TO_DRAWER(state, {id, component, attrs}) {\r\n\t\tstate.drawerItems = Object.assign({}, state.drawerItems, {[id]: {component, attrs}});\r\n\t},\r\n\tREMOVE_FROM_DRAWER(state, id) {\r\n\t\tconst items = state.drawerItems;\r\n\t\tdelete items[id];\r\n\t\tstate.drawerItems = Object.assign({}, items);\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations,\r\n};\r\n","const state = {\r\n\tdrawerItems: {\r\n\t\theader:{},\r\n\t\ttop: {},\r\n\t\tleft: {},\r\n\t\tbottom:{},\r\n\t\tright:{}\r\n\t}\r\n}\r\n\r\nconst getters = {\r\n\t/*drawerIsOpen(state) {\r\n\t\treturn Object.keys(state.drawerItems).length > 0;\r\n\t}*/\r\n\thasContent(state) {\r\n\t\treturn (drawer) => Object.keys(state.drawerItems[drawer]).length > 0;\r\n\t}\r\n}\r\n\r\nconst actions = {\r\n\taddToDrawer({commit}, {id, component, drawer, attrs = {}}) {\r\n\t\tconsole.log('addToDrawer: id:',id, ' Component:', component, ' attrs:', attrs)\r\n\t\tcommit(\"ADD_TO_DRAWER\", {id, component,drawer, attrs})\r\n\t},\r\n\tremoveFromDrawer({commit}, {id, drawer}) {\r\n\t\tcommit(\"REMOVE_FROM_DRAWER\", {id, drawer});\r\n\t},\r\n\thasContent({state}, drawer){\r\n\t\treturn Object.keys(state.drawerItems[drawer]).length > 0;\r\n\t}\r\n}\r\n\r\nconst mutations = {\r\n\tADD_TO_DRAWER(state, {id, component, drawer, attrs}) {\r\n\t\tstate.drawerItems[drawer] = Object.assign({}, state.drawerItems[drawer], {[id]: {component, attrs}});\r\n\t},\r\n\tREMOVE_FROM_DRAWER(state, {id, drawer}) {\r\n\t\tconst items = state.drawerItems[drawer];\r\n\t\tdelete items[id];\r\n\t\tstate.drawerItems[drawer] = Object.assign({}, items);\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations,\r\n};\r\n","import store from \"@/store\";\r\n\r\nconst postMessage = (message, targetOrigin = '*') => {\r\n\twindow.parent.postMessage( JSON.stringify(message), targetOrigin );\r\n\tconsole.log('postMessage:', message);\r\n}\r\n\r\n/**\r\n * Controls to communicate with Canadian Tire parent window.\r\n */\r\nexport default class CTParent {\r\n\t/**\r\n\t * Show CanadianTire login dialog\r\n\t * @constructor\r\n\t */\r\n\tstatic ShowCTLogin(deal) {\r\n\t\tconsole.log('Show Canadian Tire Sign-in Dialog');\r\n\t\t// console.log('dealNo is ' + deal);\r\n\t\tpostMessage({\r\n\t\t\ttype: 'SIGN_IN',\r\n\t\t\tcurrentDirectory: deal,\r\n\t\t\titem: {}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Show Triangle Link popup, To link triangle account to to currently logged in user\r\n\t * @constructor\r\n\t */\r\n\tstatic ShowTriangleLink() {\r\n\t\twindow.open(\"https://triangle.com/merge\")\r\n\t\t// postMessage({\r\n\t\t// \ttype: 'TRIANGLE_LINK',\r\n\t\t// \titem: {}\r\n\t\t// });\r\n\t}\r\n\r\n\tstatic FullScreenState( isFullScreen ) {\r\n\t\tpostMessage({ fullscreen: isFullScreen });\r\n\t}\r\n\r\n\tstatic ShowPDP(sku, extra = {}) {\r\n\t\tpostMessage({\r\n\t\t\ttype: 'ITEM_POP',\r\n\t\t\titem: {\r\n\t\t\t\tsku: sku,\r\n\t\t\t\tflyerTypeNameIdentifier: 'flyer'\r\n\t\t\t},\r\n\t\t\tlocation: Object.assign({\r\n\t\t\t\tpage: store.state.currentPageNumber,\r\n\t\t\t\tflyerId: store.getters[\"landingPage/currentFlyer\"].title,\r\n\t\t\t\tstoreId: store.getters.storeId,\r\n\t\t\t\tlanguage: store.getters.language\r\n\t\t\t}),\r\n\t\t\t...extra\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(\r\n \"sku\",\r\n JSON.stringify({ flyerId: store.getters[\"landingPage/currentFlyer\"].title, val: sku })\r\n );\r\n\t}\r\n\r\n\tstatic ShowEmailSignup(extra = {}) {\r\n\t\tpostMessage({\r\n\t\t\ttype: 'EMAIL_POP',\r\n\t\t\t...extra\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","import axios from \"axios\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n\r\nlet api = null;\r\n\r\nexport default class PersonalizationApi {\r\n\t/**\r\n\t *\r\n\t * @returns Axios\r\n\t */\r\n\tstatic get api(){\r\n\t\tif(!api) {\r\n\t\t\tapi = axios.create({\r\n\t\t\t\tbaseURL: AppConfig.AppConf?.offers_api?.url || process.env.VUE_APP_PERSONALIZATION_API_URL,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t'ApiKey': AppConfig.AppConf?.offers_api?.key || process.env.VUE_APP_PERSONALIZATION_API_KEY\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\treturn api;\r\n\t}\r\n\tstatic async GetOffers(customerId, deal, storeId, lang = 'en') {\r\n\t\t//const { data } = await api.get('offers', { params: {deal, customerId, storeId, lang}});\r\n\t\t// console.log('Get Offers:', this.api)\r\n\r\n\t\tconst { data } = await this.api.get(`offers/${customerId}/${deal}/${storeId}/${lang}/getOffers`);\r\n\r\n\t\t// console.log('Personalization Data:', data);\r\n\t\treturn data;\r\n\t}\r\n\tstatic async GetPersonalizedAd(customerId, deal, storeId, lang = 'en'){\r\n\t\tconst { data } = await this.api.get(`offers/${customerId}/${deal}/${storeId}/${lang}/getOffers`);\r\n\t \r\n\t return data;\r\n}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"offer-list-item \" + _vm.mode + \" \" + _vm.priceMode + \" \" + (_vm.isFake? 'fake':'')),on:{\"click\":function($event){$event.stopPropagation();return _vm.onClicked.apply(null, arguments)}}},[_c('div',{staticClass:\"prod-image\"},[(_vm.mode === 'horizontal')?_c('div',[(_vm.brand)?_c('img',{staticClass:\"brand\",attrs:{\"src\":(\"/images/test/\" + _vm.brand + \".png\"),\"alt\":\"\"}}):_vm._e()]):_vm._e(),_c('div',{staticClass:\"image\",style:((_vm.isLoaded)?(\"background-image:url('\" + _vm.imgSrc + \"')\"): null)},[(_vm.showLoader)?_c('svg',{staticClass:\"image-load-busy\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"20 50 24 28\"}},[_c('rect',{attrs:{\"x\":\"20\",\"y\":\"50\",\"width\":\"4\",\"height\":\"10\",\"fill\":\"#fff\"}},[_c('animateTransform',{attrs:{\"attributeType\":\"xml\",\"attributeName\":\"transform\",\"type\":\"translate\",\"values\":\"0 0; 0 20; 0 0\",\"begin\":\"0\",\"dur\":\"0.6s\",\"repeatCount\":\"indefinite\"}})],1),_c('rect',{attrs:{\"x\":\"30\",\"y\":\"50\",\"width\":\"4\",\"height\":\"10\",\"fill\":\"#fff\"}},[_c('animateTransform',{attrs:{\"attributeType\":\"xml\",\"attributeName\":\"transform\",\"type\":\"translate\",\"values\":\"0 0; 0 20; 0 0\",\"begin\":\"0.2s\",\"dur\":\"0.6s\",\"repeatCount\":\"indefinite\"}})],1),_c('rect',{attrs:{\"x\":\"40\",\"y\":\"50\",\"width\":\"4\",\"height\":\"10\",\"fill\":\"#fff\"}},[_c('animateTransform',{attrs:{\"attributeType\":\"xml\",\"attributeName\":\"transform\",\"type\":\"translate\",\"values\":\"0 0; 0 20; 0 0\",\"begin\":\"0.4s\",\"dur\":\"0.6s\",\"repeatCount\":\"indefinite\"}})],1)]):_vm._e()])]),_c('div',{staticClass:\"details\",attrs:{\"mode\":_vm.priceMode}},[(_vm.priceMode === 'normal' )?_c('div',{staticClass:\"savings\"},[_vm._v(_vm._s(_vm.content.offers.save)),_c('br'),_c('span',[_vm._v(_vm._s(_vm.savings)),_c('sup',[_vm._v(\"%\")])])]):_vm._e(),(_vm.priceMode === 'special-buy')?_c('div',{staticClass:\"savings\"},[_c('img',{staticClass:\"red-tag\",attrs:{\"src\":_vm.content.offers.special_buy_img,\"alt\":_vm.content.offers.special_buy}}),_c('span',[_vm._v(_vm._s(_vm._f(\"c_dollars\")(_vm.salePrice))),_c('sup',[_vm._v(_vm._s(_vm._f(\"c_cents\")(_vm.salePrice)))])])]):_vm._e(),(_vm.priceMode ==='great-value')?_c('div',{staticClass:\"savings\"},[_c('img',{staticClass:\"red-tag\",attrs:{\"src\":_vm.content.offers.great_value_img,\"alt\":_vm.content.offers.great_value}}),_c('span',[_vm._v(_vm._s(_vm._f(\"c_dollars\")(_vm.salePrice))),_c('sup',[_vm._v(_vm._s(_vm._f(\"c_cents\")(_vm.salePrice)))])])]):_vm._e(),_c('div',{staticClass:\"price-desc\"},[(_vm.priceMode === 'normal')?_c('div',{staticClass:\"sale-price\"},[_vm._v(_vm._s(_vm.content.offers.sale)+\" \"+_vm._s(_vm._f(\"c_currency\")(_vm.salePrice)))]):_vm._e(),(_vm.priceMode === 'normal')?_c('div',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.content.offers.reg)+\" \"+_vm._s(_vm._f(\"c_currency\")(_vm.price)))]):_vm._e(),_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.clipDesc)),(_vm.showMoreIcon)?_c('img',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({content: _vm.desc}),expression:\"{content: desc}\"}],staticClass:\"drop-down-icon\",attrs:{\"src\":\"/icons/drop-down-button.svg\",\"alt\":\"\"}}):_vm._e()]),_c('div',{staticClass:\"sku\"},[_vm._v(_vm._s(_vm.sku))])]),(_vm.mode === 'vertical' && _vm.brand)?_c('img',{staticClass:\"brand\",attrs:{\"src\":(\"/images/test/\" + _vm.brand + \".png\"),\"alt\":\"\"}}):_vm._e()]),(_vm.priceMode === 'special-buy')?_c('div',{staticClass:\"special-buy-tag\"},[_vm._v(_vm._s(_vm.content.offers.while_quant))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div :class=\"`offer-list-item ${mode} ${priceMode} ${isFake? 'fake':''}`\" @click.stop=\"onClicked\">\r\n <div class=\"prod-image\">\r\n <div v-if=\"mode === 'horizontal'\">\r\n <img v-if=\"brand\" class=\"brand\" :src=\"`/images/test/${brand}.png`\" alt=\"\"/>\r\n </div>\r\n <div class=\"image\" :style=\"(isLoaded)?`background-image:url('${imgSrc}')`: null\">\r\n <svg v-if=\"showLoader\" class=\"image-load-busy\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"20 50 24 28\">\r\n <rect x=\"20\" y=\"50\" width=\"4\" height=\"10\" fill=\"#fff\">\r\n <animateTransform attributeType=\"xml\"\r\n attributeName=\"transform\" type=\"translate\"\r\n values=\"0 0; 0 20; 0 0\"\r\n begin=\"0\" dur=\"0.6s\" repeatCount=\"indefinite\"/>\r\n </rect>\r\n <rect x=\"30\" y=\"50\" width=\"4\" height=\"10\" fill=\"#fff\">\r\n <animateTransform attributeType=\"xml\"\r\n attributeName=\"transform\" type=\"translate\"\r\n values=\"0 0; 0 20; 0 0\"\r\n begin=\"0.2s\" dur=\"0.6s\" repeatCount=\"indefinite\"/>\r\n </rect>\r\n <rect x=\"40\" y=\"50\" width=\"4\" height=\"10\" fill=\"#fff\">\r\n <animateTransform attributeType=\"xml\"\r\n attributeName=\"transform\" type=\"translate\"\r\n values=\"0 0; 0 20; 0 0\"\r\n begin=\"0.4s\" dur=\"0.6s\" repeatCount=\"indefinite\"/>\r\n </rect>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"details\" :mode=\"priceMode\">\r\n <div v-if=\"priceMode === 'normal' \" class=\"savings\">{{ content.offers.save }}<br/><span>{{ savings }}<sup>%</sup></span></div>\r\n <div v-if=\"priceMode === 'special-buy'\" class=\"savings\"><img class=\"red-tag\" :src=\"content.offers.special_buy_img\" :alt=\"content.offers.special_buy\" /><span>{{ salePrice | c_dollars }}<sup>{{ salePrice | c_cents }}</sup></span></div>\r\n <div v-if=\"priceMode ==='great-value'\" class=\"savings\"><img class=\"red-tag\" :src=\"content.offers.great_value_img\" :alt=\"content.offers.great_value\" /><span>{{ salePrice | c_dollars }}<sup>{{ salePrice | c_cents }}</sup></span></div>\r\n <div class=\"price-desc\">\r\n <div v-if=\"priceMode === 'normal'\" class=\"sale-price\">{{ content.offers.sale }} {{ salePrice | c_currency }}</div>\r\n <div v-if=\"priceMode === 'normal'\" class=\"price\">{{ content.offers.reg }} {{ price | c_currency }}</div>\r\n <div class=\"desc\" >{{ clipDesc }}<img v-if=\"showMoreIcon\" v-tooltip=\"{content: desc}\" class=\"drop-down-icon\" src=\"/icons/drop-down-button.svg\" alt=\"\"></div>\r\n <div class=\"sku\">{{ sku }}</div>\r\n\r\n </div>\r\n <img class=\"brand\" v-if=\"mode === 'vertical' && brand\" :src=\"`/images/test/${brand}.png`\" alt=\"\"/>\r\n\r\n </div>\r\n <div class=\"special-buy-tag\" v-if=\"priceMode === 'special-buy'\">{{ content.offers.while_quant }}</div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport {mapGetters} from \"vuex\";\r\nimport CTParent from \"@/features/offers/classes/CTParent\";\r\nimport blockElementMixin from \"@/mixins/blockElementMixin\";\r\n//H 30\r\n//V 21\r\n\r\nconst PM_SPECIAL_BUY = 'special-buy';\r\nconst PM_GREAT_VALUE = 'great-value';\r\nconst PM_NORMAL = 'normal';\r\nconst PM_ABNORMAL = 'abnormal';\r\n\r\nconst clipText = (txt, maxlen) => {\r\n let t = (txt || '').trim();\r\n if(t.length > maxlen) {\r\n let se = maxlen;\r\n if(t.charAt(maxlen) !== ' ') {\r\n se = t.lastIndexOf(' ', maxlen);\r\n }\r\n t = t.slice(0, se);\r\n }\r\n return t.trim();\r\n}\r\n\r\nexport default {\r\n name: \"OfferListItem\",\r\n mixins:[blockElementMixin],\r\n props: {\r\n blockData: {\r\n type: Object,\r\n default: () => {\r\n return {\r\n componentData: {\r\n \"sku\": \"0529349\",\r\n \"zone\": \"0\",\r\n \"price\": \"11\",\r\n \"salePrice\": \"8\",\r\n \"savings\": \"20\",\r\n \"desc\": \"Place holder product\",\r\n \"imageUrl\": \"https://s7d5scene7com/is/image/CanadianTire/TR_A_AutoLubeAndPenetrants_TriApp_ENG?wid=300&qlt=100\"\r\n }\r\n }\r\n }\r\n }\r\n },\r\n filters: {\r\n c_dollars: (value) => {\r\n if(!value) return '';\r\n return parseInt(value);\r\n },\r\n c_cents: (value) => {\r\n if(!value) return '';\r\n return (value % 1).toFixed(2).split('.')[1];\r\n },\r\n c_currency: (value) => {\r\n return Number(value).toFixed(2);\r\n }\r\n },\r\n data() {\r\n return {\r\n prodImage: null,\r\n loadError: false,\r\n isLoaded: false,\r\n domImg: new Image()\r\n }\r\n },\r\n created() {\r\n this.domImg.addEventListener('load', () => {\r\n this.loadError = false;\r\n this.isLoaded = true;\r\n this.prodImage = this.domImg;\r\n });\r\n this.domImg.addEventListener('error', () => {\r\n console.log('Image Load Error:', this.domImg.src);\r\n this.loadError = true;\r\n this.isLoaded = true;\r\n })\r\n\r\n // console.log('Image Props:', this.domImg)\r\n },\r\n mounted() {\r\n if(this.hasImage){\r\n this.domImg.src = this.imgSrc;\r\n } else {\r\n this.loadError = true;\r\n this.isLoaded = true;\r\n }\r\n\r\n },\r\n computed: {\r\n ...mapGetters(['content']),\r\n ...mapGetters('scale', ['imageDPI']),\r\n itemData() {\r\n return this.blockData.componentData;\r\n },\r\n savings() {\r\n return Number(this.itemData.savings);\r\n },\r\n price() {\r\n return Number(this.itemData.retailPrice);\r\n },\r\n salePrice() {\r\n return Number(this.itemData.promoPrice);\r\n },\r\n desc() {\r\n return (this.itemData.desc || '').trim();\r\n },\r\n clipDesc() {\r\n return clipText(this.desc, this.mode === 'horizontal'? 20:55);\r\n },\r\n showMoreIcon() {\r\n return this.desc.length > this.clipDesc.length;\r\n },\r\n sku() {\r\n return this.itemData.sku\r\n },\r\n mode() {\r\n if (this.prodImage) {\r\n const {naturalWidth: w, naturalHeight: h} = this.prodImage;\r\n if (w > h) return 'horizontal';\r\n }\r\n return 'vertical';\r\n },\r\n\r\n brand() {\r\n return this.itemData.brandLogo;\r\n },\r\n imgScale() {\r\n return this.imageDPI / 150; //setting 150 as base scale\r\n },\r\n\r\n hasImage() {\r\n const url = (this.itemData.imageUrl || '');\r\n return !(url.includes('notfound') || url.includes('no_image'));\r\n },\r\n\r\n imgSrc() {\r\n //TODO - Tie imwidth to zoom somehow\r\n return this.loadError || !this.hasImage ? '/icons/triangle-icon.svg': this.itemData.imageUrl + \"?imwidth=200\";// + Math.round( 200 * this.imgScale);\r\n },\r\n\r\n showLoader() {\r\n return !this.prodImage && !this.loadError;\r\n },\r\n\r\n isSpecialBuy() {\r\n return !!this.sku.match(/(^[0-9]99)\\w+/g);\r\n },\r\n\r\n isGreatValue() {\r\n return !this.savings && !this.isSpecialBuy;\r\n },\r\n\r\n priceMode() {\r\n if(this.isSpecialBuy) return PM_SPECIAL_BUY;\r\n if(this.isGreatValue) return PM_GREAT_VALUE;\r\n if(parseInt(this.savings, 10) && this.price) return PM_NORMAL;\r\n return PM_ABNORMAL;\r\n },\r\n\r\n isFake() {\r\n return this.itemData.isFake;\r\n }\r\n },\r\n methods: {\r\n onClicked() {\r\n CTParent.ShowPDP(this.itemData.sku, {'offerType': 'Triangle Rewards'});\r\n }\r\n }/*,\r\n watch: {\r\n imageDPI() {\r\n if(this.hasImage){\r\n this.prodImage = null;\r\n this.domImg.src = this.imgSrc;\r\n }\r\n }\r\n }*/\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n/*.column-view {\r\n .offer-list-item {\r\n flex: 1 0 calc(25% - 0.6em);\r\n width: auto;\r\n }\r\n}*/\r\n\r\n.offer-list-item {\r\n background-color: #fff;\r\n --red-color: #ff2e17;\r\n font-family: CTEastman;\r\n display: inline-block;\r\n /*border: solid 1px #AEAEAE;*/\r\n padding: 0.5em;\r\n width: inherit; /*16em;*/\r\n height: inherit; /*calc(16em * 0.8235);*/\r\n line-height: 1.2em;\r\n cursor: pointer;\r\n position: relative;\r\n\r\n &.fake{\r\n filter: blur(10px);\r\n pointer-events: none;\r\n }\r\n\r\n\r\n > * {\r\n flex: 1 1 0;\r\n }\r\n\r\n .brand {\r\n max-height: 1.45em;\r\n }\r\n\r\n .image {\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n height: 100%;\r\n position: relative;\r\n .image-load-busy {\r\n width: 1.5em;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n filter: drop-shadow(1px 1px 1px black);\r\n > :first-child {\r\n fill: #EB2227;\r\n }\r\n > :nth-child(2) {\r\n fill: #83142F;\r\n }\r\n > :last-child {\r\n fill: #78CCC7;\r\n }\r\n }\r\n }\r\n\r\n .details {\r\n display: flex;\r\n align-items: flex-end;\r\n column-gap: 0.35em;\r\n position: relative;\r\n\r\n .desc {\r\n position: relative;\r\n font-family: CTEastmanCondensed-Medium;\r\n /*white-space: nowrap;\r\n span {\r\n display: inline-block;\r\n white-space: break-spaces;\r\n }*/\r\n .drop-down-icon {\r\n width: 1em;\r\n margin-left: 0.2em;\r\n position: absolute;\r\n bottom: 0.2em;\r\n }\r\n /*overflow: hidden;\r\n text-overflow: ellipsis;\r\n max-height: 2.4em;*/\r\n }\r\n }\r\n\r\n .savings, .sale-price {\r\n color: var(--red-color);\r\n font-family: CTEastmanCompressed-Bold;\r\n }\r\n\r\n .sale-price {\r\n font-size: 1.1em;\r\n font-family: CTEastmanCondensed-Bold;\r\n }\r\n\r\n .price {\r\n color: #4c4c4c;\r\n font-family: CTEastmanCondensed-Bold;\r\n }\r\n\r\n .sku {\r\n font-size: 0.8em;\r\n font-family: CTEastmanCondensed-Medium;\r\n }\r\n\r\n .savings {\r\n font-size: 1.25em;\r\n text-transform: uppercase;\r\n > span {\r\n font-size: 2.5em;\r\n line-height: 0.35em;\r\n }\r\n }\r\n\r\n sup {\r\n font-size: 0.5em;\r\n }\r\n\r\n &.horizontal {\r\n display: flex;\r\n flex-direction: column;\r\n row-gap: 0.2em;\r\n .price, .sale-price {\r\n display: inline-block;\r\n }\r\n\r\n .sale-price {\r\n margin-right: 0.3em;\r\n }\r\n\r\n .desc {\r\n white-space: nowrap;\r\n width: 10.5em;\r\n }\r\n\r\n .prod-image {\r\n display: flex;\r\n flex-direction: column;\r\n flex-basis: 100%;\r\n }\r\n }\r\n\r\n &.vertical {\r\n display: flex;\r\n flex-direction: row-reverse;\r\n column-gap: 0.3em;\r\n\r\n .prod-image .image {\r\n height: 100%;\r\n }\r\n\r\n .details {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: end;\r\n\r\n .brand {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n }\r\n }\r\n\r\n .special-buy, .great-value {\r\n background-color: var(--red-color);\r\n color: #fff;\r\n font-size: 0.7em;\r\n padding: 0.2em 0.5em;\r\n margin-bottom: 0.3em;\r\n text-align: center;\r\n white-space: nowrap;\r\n text-transform: uppercase;\r\n font-style: italic;\r\n position: relative;\r\n border: none;\r\n &:after {\r\n content:\"\";\r\n position: absolute;\r\n left: 100%;\r\n top:0px;\r\n width:0px;\r\n height:0px;\r\n border-top:1em solid transparent;\r\n border-left:1em solid var(--red-color);\r\n border-bottom:0.8em solid transparent;\r\n }\r\n }\r\n\r\n\r\n &.special-buy {\r\n padding-bottom: 1em;\r\n }\r\n .special-buy-tag {\r\n position: absolute;\r\n width: 100%;\r\n bottom: 0;\r\n font-size: 0.8em;\r\n left: 0;\r\n text-align: center;\r\n }\r\n\r\n img.red-tag {\r\n width: 4em;\r\n margin-bottom: 0.1em;\r\n }\r\n\r\n}\r\n\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfferListItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfferListItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OfferListItem.vue?vue&type=template&id=74ab82c4&scoped=true&\"\nimport script from \"./OfferListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./OfferListItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OfferListItem.vue?vue&type=style&index=0&id=74ab82c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74ab82c4\",\n null\n \n)\n\nexport default component.exports","\r\nimport CTParent from \"@/features/offers/classes/CTParent\";\r\nimport PersonalizationApi from \"@/features/offers/api/PersonalizationApi\";\r\nimport TriangleRewardsCard from \"@/features/offers/TriangleRewardsCard.vue\";\r\nimport BlockGen from \"@/features/offers/classes/BlockGen\";\r\nimport offers from \"@/features/offers/data/offers.json\";\r\nimport OfferListItem from \"@/features/offers/OfferListItem.vue\";\r\nimport router from \"@/router\";\r\n\r\nconst state = {\r\n/*\tisLoggedIn: false,\r\n\ttriangleID: null,*/\r\n\tloadedOffers: null\r\n}\r\n\r\nconst getters = {\r\n\tisLoggedIn() {\r\n\t\treturn router.currentRoute?.query?.isCustomerLoggedIn === 'true';\r\n\t},\r\n\ttriangleID() {\r\n\t\treturn router.currentRoute?.query?.custID;\r\n\t},\r\n\r\n\tofferViewMode(state, getters, rootState, rootGetters) {\r\n\t\treturn rootGetters['landingPage/currentFlyer'].flyerType;\r\n\t\t//return rootState.landingPage.currentFlyer?.flyerType;\r\n\t},\r\n\tpersonalizedViewMode(state, getters, rootState, rootGetters) {\r\n\t\treturn rootGetters['landingPage/currentFlyer']?.flyerCategory;\r\n\t\t//return rootState.landingPage.currentFlyer?.flyerType;\r\n\t},\r\n\toffersPage(state, getters, rootState) {\r\n\t\treturn rootState.pages.find((page) => {\r\n\t\t\treturn page.id === 'triangleRewards';\r\n\t\t})\r\n\t},\r\n\r\n\tisSignedIn(state, getters){\r\n\t\treturn getters.isLoggedIn && getters.triangleID;\r\n\t},\r\n\r\n\t//Is the user logged into Canadian Tire\r\n\tisLoggedIntoCT(state, getters){\r\n\t\treturn !!getters.isLoggedIn;\r\n\t},\r\n\r\n\thasTriangleID(state, getters){\r\n\t\treturn !!getters.triangleID;\r\n\t},\r\n\tcanViewTriangleRewards(state, getters) {\r\n\t\tconst today = new Date();\r\n\t\tconst dayOfWeek = 2; //Tuesday\r\n\t\treturn getters.isLoggedIntoCT && getters.hasTriangleID && !(getters.offerViewMode !== 'live' && today.getDay() === dayOfWeek);// && getters.offerViewMode === 'live';\r\n\t},\r\n\tcanViewPersonalizedBanner(state, getters) {\r\n\t\treturn getters.isSignedIn && getters.hasTriangleID && getters.personalizedViewMode?.includes('Weekly') ;\r\n\t},\r\n\tcanViewPreviewText(state, getters) {\r\n\t\tconst today = new Date();\r\n\t\tconst dayOfWeek = 2; //Tuesday\r\n\t\tconst {isLoggedIntoCT, hasTriangleID, offerViewMode} = getters;\r\n const isTuesday = today.getDay() === dayOfWeek \r\n\r\n\t\treturn isLoggedIntoCT && hasTriangleID && ((offerViewMode === 'preview' && isTuesday ) || (offerViewMode === 'preview' || isTuesday ))\r\n\t\t && !(offerViewMode === 'live' && isTuesday);\r\n\t},\r\n\tcurrentDeal(state, getters, rootState, rootGetters) {\r\n\t\tconst deal = rootGetters[\"landingPage/currentFlyer\"]?.title; //rootState.landingPage?.currentFlyer?.title //rootState[\"landingPage/currentFlyer\"]?.title;\r\n\t\tif(deal) {\r\n\t\t\treturn parseInt(deal.match(/([0-9])\\w+/g), 10);\r\n\t\t}\r\n\t},\r\n\tcurrentStore(state, getters, rootState) {\r\n\t\treturn rootState.currentStore;\r\n\t},\r\n\t/*language(state, getters, rootState) {\r\n\t\treturn rootState.language;\r\n\t},*/\r\n\thasOffers(state) {\r\n\t\treturn !!state.loadedOffers;\r\n\t},\r\n\ttriangleOffers(state) {\r\n\t\tif(state.loadedOffers) return state.loadedOffers.products;\r\n\t\tconst fake = [];\r\n\t\tfor(let i=0; i < 10; i++){\r\n\t\t\tconst ri = Math.round((offers.length - 1) * Math.random());\r\n\t\t\tconst item = offers.splice(ri, 1)[0];\r\n\t\t\titem.isFake = true;\r\n\t\t\tfake.push(item);\r\n\t\t}\r\n\t\treturn fake;\r\n\t},\r\n\tisFakeOffers(state) {\r\n\t\treturn !state.loadedOffers;\r\n\t}\r\n}\r\n\r\nconst actions = {\r\n\tasync loadPersonalizedAds( { getters,rootGetters} ) {\r\n\t\tconst dealNo = getters.currentDeal;\r\n\t\tconst storeId = getters.currentStore;\r\n\t\t\ttry {\r\n\t\t\t\tconst data = await PersonalizationApi.GetPersonalizedAd(getters.triangleID, dealNo, storeId, rootGetters.language);\r\n\t\t\t\t//console.log('what is data', data)\r\n\t\t\t\treturn data || null\r\n\t\t\t} catch (e) {\r\n\t\t\t\treturn null\r\n\t\t\t}\r\n\t},\r\n\ttriggerUserDialog({ getters }) {\r\n\t\tconsole.log('Trigger User Dialog');\r\n\t\tif(getters.isLoggedIn && !getters.triangleID){\r\n\t\t\tCTParent.ShowTriangleLink();\r\n\t\t} else if(!getters.isLoggedIn) {\r\n\t\t\tconst deal = getters.currentDeal;// rootGetters.landingPage.currentFlyer.title;\r\n\t\t\tCTParent.ShowCTLogin(deal?deal:null);\r\n\t\t\t// const lang = getters.language;\r\n\t\t\t// console.log(\"language is \", lang)\r\n\t\t\t// if(lang==\"en\")\r\n\t\t\t// window.open(\"https://www.canadiantire.ca/en/triangle-registration.html\")\r\n\t\t\t// else\r\n\t\t\t// window.open(\"https://www.canadiantire.ca/fr/registre.html\")\r\n\t\t}\r\n\t},\r\n\r\n\tasync loadOffers( {commit, state, getters, dispatch,rootGetters} ) {\r\n\t\t// console.log('loadOffers')\r\n\t\tconst dealNo = getters.currentDeal;\r\n\t\tconst storeId = getters.currentStore;\r\n\t\tif((dealNo && storeId && getters.canViewTriangleRewards && !state.loadedOffers) || ( state.loadedOffers && ((state.loadedOffers.dealNo !== dealNo) || (state.loadedOffers.customerId !== getters.triangleID)) && getters.canViewTriangleRewards)) {\r\n\t\t\t// console.log('Attempt to load offers')\r\n\t\t\ttry {\r\n\t\t\t\tconst offers = await PersonalizationApi.GetOffers(getters.triangleID, dealNo, storeId, rootGetters.language);\r\n\t\t\t\tcommit('APPLY_OFFERS', offers);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tcommit('APPLY_OFFERS', null);\r\n\t\t\t}\r\n\t\t}\r\n\t\tdispatch('updateOfferBlocks');\r\n\t},\r\n\r\n\tupdateOfferBlocks({ getters }) {\r\n\t\tconst page = getters.offersPage;\r\n\t\tconst offers = getters.triangleOffers;\r\n\t\tconst unitWidth = page.unitWidth;\r\n\t\tconst unitHeight = page.unitHeight;\r\n\t\tpage.blocks.length = 0;\r\n\t\t\r\n\t\tif (!getters.isLoggedIntoCT || !getters.triangleID || getters.canViewPreviewText){\r\n\t\t\tpage.blocks.push(BlockGen.GenBlock(3, 4, unitWidth, unitHeight, {}, {id:'triangleRewards_card', type: 'component', component: TriangleRewardsCard, hasOffers: getters.hasOffers}));\r\n\t\t} else {\r\n\t\t\tpage.blocks.push(BlockGen.GenBlock(2, 1, unitWidth, unitHeight, {}, {id:'triangleRewards_card', type: 'component', component: TriangleRewardsCard, hasOffers: getters.hasOffers}));\r\n\t\t\tif(page) {\r\n\t\t\t\tfor(let i=0; i < offers.length; i++) {\r\n\t\t\t\t\tpage.blocks.push(BlockGen.GenBlock(1, 1, unitWidth, unitHeight, {}, {type: 'component', component: OfferListItem, componentData: offers[i], index: i + 1 }));\r\n\t\t\t\t}\r\n\t\t\t\t//page.blocks = blocks;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t}\r\n}\r\n\r\nconst mutations = {\r\n/*\tSET_LOGGED_IN_STATE(state, val) {\r\n\t\tstate.isLoggedIn = val;\r\n\t},\r\n\r\n\tSET_TRIANGLE_ID(state, val) {\r\n\t\tstate.triangleID = val;\r\n\t},*/\r\n\r\n\tAPPLY_OFFERS(state, offers) {\r\n\t\tif(offers?.products?.length){\r\n\t\t\tstate.loadedOffers = offers;\r\n\t\t} else {\r\n\t\t\tstate.loadedOffers = null;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tmutations,\r\n\tactions,\r\n\tgetters\r\n};\r\n","import AppConfig from \"@/classes/AppConfig\";\r\nimport { isFunction, isObject} from \"lodash\";\r\n\r\nlet _listenerId = 0;\r\n\r\nconst state = {\r\n\tlisteners: {}\r\n};\r\nconst getters = {\r\n\tevents(state, getters, rootState, rootGetters) {\r\n\t\treturn rootGetters[\"config/settings\"]?.events || {};\r\n\t}\r\n};\r\nconst actions = {\r\n\ttriggerEvent({ getters, state } , {event, data}) {\r\n\t\tconsole.log('Events.triggerEvent:', event, data);\r\n\t\tif(getters.events[event]){\r\n\t\t\tAppConfig.ParseEvent(getters.events[event], {__self: data});\r\n\t\t}\r\n\t\tconst events = state.listeners[event];\r\n\t\tif(isObject(events)) {\r\n\t\t\tfor(let p in events){\r\n\t\t\t\tconst func = events[p];\r\n\t\t\t\tif(isFunction(func))func(event, data);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\taddFeatureEventListener({ state }, {event, func}){\r\n\t\tconst id = func?._listenerId || ++_listenerId;\r\n\t\tif(!state.listeners[event]) {\r\n\t\t\tstate.listeners[event] = {};\r\n\t\t}\r\n\t\tfunc._listenerId = id;\r\n\t\tstate.listeners[event][id] = func;\r\n\t\treturn id;\r\n\t},\r\n\tremoveFeatureEventListener({state}, {event, func}) {\r\n\t\tif(func._listenerId) {\r\n\t\t\treturn delete state.listeners[event][func._listenerId];\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters,\r\n\tactions\r\n};\r\n","import { getUrlParameter } from \"../utils\";\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport categories from \"./modules/categories\";\r\nimport search from \"./modules/search\";\r\nimport scale from \"./modules/scale\";\r\nimport screen from \"./modules/screen\";\r\nimport toast from \"./modules/toast\";\r\nimport landingPage from \"./modules/landingPage\";\r\nimport config from \"./modules/config\";\r\nimport shoppingList from \"../features/shopping-list/store/shoppingList\";\r\nimport deepLinking from \"@/store/modules/deepLinking\";\r\nimport Lytics from \"@/classes/Lytics\";\r\nimport filters from \"../features/filters/store/filters\";\r\nimport en from \"@/lang/en.json\";\r\nimport fr from \"@/lang/fr.json\";\r\nimport {merge} from \"lodash\";\r\nimport router from \"@/router\";\r\nimport pdp from \"@/features/pdp/store/pdp\";\r\nimport Service from \"@/api/Service\";\r\nimport Rest from \"@/api/Rest\";\r\nimport header from \"@/store/modules/header\";\r\nimport drawer from \"@/store/modules/drawer\";\r\nimport ctUser from \"@/features/offers/store/ctUser\";\r\nimport events from \"@/store/modules/events\";\r\nimport raddar from \"@/features/raddar/store/raddar\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\nimport {getProductSku} from \"@/features/shopping-list/classes/ShoppingListController\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state: {\r\n loading: 0,\r\n pageData: null,\r\n pages: [],\r\n totalPages: 0,\r\n columnView: false,\r\n /*highlightResults: false,*/\r\n language: \"en\",\r\n currentStore: null,\r\n currentPageNumber:1,\r\n currentPageIndex: 0, \r\n zonesArray: null,\r\n pdf: null,\r\n apiUrl: process.env.VUE_APP_API_URL,\r\n subscriptionKey: process.env.VUE_APP_API_KEY,\r\n banner: process.env.VUE_APP_BANNER,\r\n searchInputFocused: false,\r\n showPdp: false,\r\n showHamburgerMenu:false,\r\n showSideBar:false,\r\n currentProduct:null,\r\n currentVideo: null,\r\n showFilters: false,\r\n blockData : {}\r\n },\r\n\r\n getters: {\r\n language() {\r\n return router.currentRoute.query.language || 'en';\r\n },\r\n storeId() {\r\n return parseInt(router.currentRoute.query.storeId || '', 10);\r\n },\r\n dealId(state, getters, rootState, rootGetters) {\r\n return rootGetters[\"landingPage/currentFlyer\"]?.title;\r\n },\r\n filterableItems(state) {\r\n return state.pages.map((page) => page.blocks).flat();\r\n },\r\n\r\n hasBaseBars(state) {\r\n return state.pages.some((page) => !!page.basebars)\r\n },\r\n\r\n currentZone(state) {\r\n let l = -1;\r\n let z = \"\";\r\n const pages = state.pages;\r\n pages.map((page) => {\r\n page.blocks.map((block) => {\r\n if (block.zones?.length > l) {\r\n l = block.zones.length;\r\n z = block.zones[0];\r\n }\r\n });\r\n });\r\n return z;\r\n },\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n content(state, getters) {\r\n return getters.lang;\r\n },\r\n\r\n lang(state, getters, rootState, rootGetters) {\r\n const dict = {en, fr};\r\n const config = rootGetters['config/settings'];\r\n return merge(dict[getters.language], (config?.lang || {})[getters.language]);\r\n },\r\n\r\n highlightResults(state, getters, rootState, rootGetters) {\r\n const currentFlyer = rootGetters[\"landingPage/currentFlyer\"];\r\n return !currentFlyer?.blockedFlyer;\r\n },\r\n isSearchInputFocused(state) {\r\n return state.searchInputFocused;\r\n },\r\n isCTC(){\r\n return AppConfig.AppConf?.title.toLowerCase().includes(\"canadian\".toLowerCase()) ? true : false\r\n },\r\n isJC(){\r\n return AppConfig.AppConf?.title.toLowerCase().includes(\"jean\".toLowerCase()) ? true : false\r\n },\r\n isRexall(){\r\n return AppConfig.AppConf?.title.toLowerCase().includes(\"rexall\".toLowerCase()) ? true : false\r\n },\r\n isMetro(){\r\n return AppConfig.AppConf?.title.toLowerCase().includes(\"metro\".toLowerCase()) ? true : false\r\n },\r\n blockData(state){\r\n return state.blockData || {}\r\n },\r\n publicationId(state) {\r\n return state.pages.find((page) => {\r\n return !!page.publicationId;\r\n })?.publicationId;\r\n },\r\n productsBySKU(state, getters) {\r\n const o = {};\r\n getters.filterableItems.forEach((block) => {\r\n block.products.forEach((prod) => {\r\n o[getProductSku(prod)] = {...prod, blockData: block};\r\n })\r\n })\r\n return o;\r\n },\r\n findBlocksBySKUs: (state, getters) => (skus) => {\r\n const blocks = [];\r\n skus.forEach(sku => {\r\n // filter out URL blocks\r\n if (sku === 'URL') return;\r\n \r\n const product = getters.productsBySKU[sku];\r\n \r\n // filter out duplicate blocks\r\n if (product && !blocks.includes(product.blockData)) {\r\n blocks.push(product.blockData);\r\n }\r\n })\r\n return blocks;\r\n }\r\n },\r\n\r\n actions: {\r\n\r\n setLoadingState({commit}, ls) {\r\n commit(\"UPDATE_LOADING\", ls?1:-1);\r\n },\r\n\r\n async setPages({ commit, getters, dispatch }, payload) {\r\n // console.log(\"** setPages:\", flyerId)\r\n commit(\"UPDATE_LOADING\", 1);\r\n\r\n await dispatch('config/loadConfig');\r\n\r\n\r\n const storeId = getters.storeId;\r\n const lang = getters.language === 'fr' ? 'bil' : 'en'; // getUrlParameter(\"language\") === 'fr' ? 'bil' : 'en';\r\n\r\n\r\n try {\r\n //if pagesJson is not passed in the landing page call, it will fetch pages through the API as a fallback\r\n const data = payload.pagesUrl !== null ? await Service.GetFlyerPage(payload.pagesUrl) : await Service.GetFlyerPage(null,payload.flyerId, storeId, lang);\r\n\r\n commit(\"SET_PAGES\", data);\r\n\r\n } catch (error) {\r\n await Rest.GotoErrorPage(error);\r\n }\r\n\r\n commit(\"UPDATE_LOADING\", -1);\r\n //router.push({ name: 'DefaultFlyer', params: { flyerId: flyerId,...router.currentRoute.params }, query: router.currentRoute.query })\r\n },\r\n\r\n updatePages({ commit }, pages) {\r\n commit(\"SET_PAGES\", pages);\r\n },\r\n\r\n setTotalPages({ commit }, value) {\r\n commit(\"SET_TOTAL_PAGES\", value);\r\n },\r\n\r\n setColumnView({commit, dispatch, state, getters}, isColumnView) {\r\n if(state.columnView !== isColumnView) {\r\n commit(\"SET_COLUMN_VIEW\", isColumnView);\r\n Lytics.TriggerScreenOrientationChange();\r\n Lytics.TriggerOrientationToggle(isColumnView ? 'vertical' : 'horizontal', getters['screen/displayMode']);\r\n dispatch(\"screen/handleWindowResize\");\r\n }\r\n },\r\n\r\n toggleColumnView({ commit, dispatch, state, getters }) {\r\n commit(\"TOGGLE_COLUMN_VIEW\");\r\n Lytics.TriggerScreenOrientationChange();\r\n Lytics.TriggerOrientationToggle(\r\n state.columnView ? \"vertical\" : \"horizontal\",\r\n getters[\"screen/displayMode\"]\r\n );\r\n dispatch(\"screen/handleWindowResize\");\r\n },\r\n toggleMobileFilters({commit}){\r\n commit(\"TOGGLE_MOBILE_FILTERS\")\r\n },\r\n\r\n /* setHighlightResults({ commit }, val) {\r\n commit(\"SET_HIGHLIGHT_RESULTS\", val);\r\n },*/\r\n\r\n setLanguage({ commit }) {\r\n const lang = getUrlParameter(\"language\");\r\n commit(\"SET_LANGUAGE\", lang);\r\n },\r\n\r\n setCurrentStore({ commit }, store) {\r\n commit(\"SET_CURRENT_STORE\", parseInt(store));\r\n },\r\n\r\n setZonesArray({ commit }, zones) {\r\n commit(\"SET_ZONES_ARRAY\", zones);\r\n },\r\n\r\n setPdf({ commit }, pdf) {\r\n commit(\"SET_PDF\", pdf);\r\n },\r\n\r\n setSearchInputFocusState({ commit }, s) {\r\n commit(\"SET_SEARCH_INPUT_FOCUSED\", s);\r\n },\r\n\r\n setPdpDisplay({ commit }, value) {\r\n commit(\"SET_PDP_DISPLAY\", value);\r\n },\r\n setCurrentProduct({ commit }, e) {\r\n commit(\"SET_CURRENT_PRODUCT\", e);\r\n },\r\n\r\n setCurrentVideo({ commit }, url) {\r\n commit(\"SET_CURRENT_VIDEO\", url);\r\n },\r\n setBlockData({commit}, data) {\r\n commit(\"SET_BLOCK_DATA\", data);\r\n },\r\n\r\n toggleHamburgerMenu({ commit }, value) {\r\n commit(\"SHOW_HAMBURGER_MENU\", value);\r\n },\r\n\r\n toggleSideBarState({commit}, value){\r\n commit('TOGGLE_SIDEBAR',value)\r\n },\r\n reset({commit}){\r\n commit(\"RESET\")\r\n },\r\n setCurrentPageNumber({commit},val){\r\n commit(\"SET_CURRENT_PAGE_NUMBER\",val)\r\n },\r\n setCurrentPageIndex({commit},val){\r\n commit(\"SET_CURRENT_PAGE_INDEX\",val)\r\n },\r\n },\r\n\r\n mutations: {\r\n UPDATE_LOADING(state, val) {\r\n state.loading += val;\r\n },\r\n\r\n SET_PAGE_DATA(state, data) {\r\n state.pageData = data;\r\n },\r\n\r\n SET_PAGES(state, pages) {\r\n state.pages = pages;\r\n },\r\n\r\n SET_TOTAL_PAGES(state, value) {\r\n state.totalPages = value;\r\n },\r\n\r\n SET_COLUMN_VIEW(state, isColumnView) {\r\n state.columnView = isColumnView;\r\n },\r\n\r\n TOGGLE_COLUMN_VIEW(state) {\r\n state.columnView = !state.columnView;\r\n // state.showPdp = false\r\n },\r\n\r\n /*SET_HIGHLIGHT_RESULTS(state, val) {\r\n state.highlightResults = val;\r\n },*/\r\n\r\n SET_LANGUAGE(state, lang) {\r\n state.language = lang;\r\n },\r\n\r\n SET_CURRENT_STORE(state, store) {\r\n state.currentStore = store;\r\n },\r\n\r\n SET_ZONES_ARRAY(state, zones) {\r\n state.zonesArray = zones;\r\n },\r\n\r\n SET_PDF(state, pdf) {\r\n state.pdf = pdf;\r\n },\r\n\r\n SET_SEARCH_INPUT_FOCUSED(state, s) {\r\n state.searchInputFocused = s;\r\n state.showHamburgerMenu=false;\r\n state.showSideBar=false;\r\n state.showPdp = false\r\n\r\n },\r\n\r\n SET_PDP_DISPLAY(state, value) {\r\n state.showPdp = value;\r\n },\r\n\r\n SET_CURRENT_PRODUCT(state, e) {\r\n state.currentProduct = e;\r\n },\r\n\r\n SET_CURRENT_VIDEO(state, url) {\r\n state.currentVideo = url;\r\n },\r\n SET_BLOCK_DATA(state, data) {\r\n state.blockData = data;\r\n },\r\n\r\n SET_CURRENT_PAGE_NUMBER(state,val){\r\n state.currentPageNumber=val\r\n },\r\n\r\n SET_CURRENT_PAGE_INDEX(state,val){\r\n state.currentPageIndex=val\r\n },\r\n\r\n SHOW_HAMBURGER_MENU(state, value) {\r\n state.showHamburgerMenu = value;\r\n },\r\n TOGGLE_SIDEBAR(state,value){\r\n state.showSideBar=value;\r\n },\r\n TOGGLE_MOBILE_FILTERS(state){\r\n state.showFilters = !state.showFilters;\r\n },\r\n RESET(state) {\r\n state.currentPageIndex = 0;\r\n }\r\n },\r\n\r\n modules: {\r\n categories,\r\n search,\r\n scale,\r\n screen,\r\n toast,\r\n landingPage,\r\n config,\r\n shoppingList,\r\n deepLinking,\r\n filters,\r\n pdp,\r\n header,\r\n drawer,\r\n ctUser,\r\n events,\r\n raddar\r\n },\r\n});\r\n","import axios from 'axios';\r\nimport router from \"@/router\";\r\nimport VueRouter from \"vue-router\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\nimport store from \"@/store\";\r\n\r\n// console.log('Rest Class Config:', AppConfig.AppConf)\r\n\r\nlet rest;\r\n\r\nexport default class Rest {\r\n\t/*static Create() {\r\n\t\trest = axios.create({\r\n\t\t\tbaseURL: AppConfig?.AppConf?.api || process.env.VUE_APP_API_URL,\r\n\t\t\theaders: {\r\n\t\t\t\t'Ocp-Apim-Subscription-Key': AppConfig?.AppConf?.apikey || process.env.VUE_APP_API_KEY,\r\n\t\t\t\t'Banner': AppConfig?.AppConf?.banner_id || process.env.VUE_APP_BANNER,\r\n\t\t\t\t'content-type': 'application/json;charset=UTF-8',\r\n\t\t\t\t'x-api-version': process.env.VUE_APP_API_VERSION,\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\trest.interceptors.response.use(response => {\r\n\t\t\treturn response;\r\n\t\t}, error => {\r\n\t\t\t//console.log('Rest Error:', error);\r\n\t\t\treturn Promise.reject(error);\r\n\t\t});\r\n\t}*/\r\n\r\n\tstatic get rest() {\r\n\t\tif(!rest) {\r\n\t\t\trest = axios.create({\r\n\r\n\t\t\t\tbaseURL: AppConfig?.AppConf?.api || process.env.VUE_APP_API_URL,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Ocp-Apim-Subscription-Key': AppConfig?.AppConf?.apikey || process.env.VUE_APP_API_KEY,\r\n\t\t\t\t\t'Banner': AppConfig?.AppConf?.banner_id || process.env.VUE_APP_BANNER,\r\n\t\t\t\t\t'content-type': 'application/json;charset=UTF-8',\r\n\t\t\t\t\t'x-api-version': AppConfig?.AppConf?.api_version || process.env.VUE_APP_API_VERSION,\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\trest.interceptors.response.use(response => {\r\n\t\t\t\treturn response;\r\n\t\t\t}, error => {\r\n\t\t\t\t//console.log('Rest Error:', error);\r\n\t\t\t\treturn Promise.reject(error);\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn rest;\r\n\t}\r\n\r\n\tstatic async Get(url, config) {\r\n\t\treturn this.rest.get(url, config);\r\n\t}\r\n\r\n\tstatic async Post(url, data, config) {\r\n\t\treturn this.rest.post(url, data, config);\r\n\t}\r\n\r\n\tstatic async Put(url, data, config) {\r\n\t\treturn this.rest.put(url, data, config);\r\n\t}\r\n\r\n\tstatic async Delete(url, config) {\r\n\t\treturn this.rest.delete(url, config);\r\n\t}\r\n\r\n\tstatic GetInstance() {\r\n\t\treturn this.rest;\r\n\t}\r\n\r\n\tstatic NavigateToFlyer(flyerId) {\r\n\t\treturn router.push({...router.currentRoute, name: 'DefaultFlyer', params: {flyerId}}).catch((err) => {\r\n\t\t\tif (VueRouter.isNavigationFailure(err)) {\r\n\t\t\t\treturn err\r\n\t\t\t}\r\n\t\t\treturn Promise.reject(err)\r\n\t\t})\r\n\t}\r\n\r\n\tstatic async GotoErrorPage(error) {\r\n\t\tlet errType = 'unknown'\r\n\t\t//No publication found for store-language\r\n\t\t//No content found for deal: D037\r\n\t\tconsole.log('GotoPage Error:', error?.response);\r\n\r\n\t\tswitch (error?.response?.status) {\r\n\t\t\tcase 417:\r\n\t\t\t\terrType = 'date'\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tconsole.log(\"Error Title: \", error?.response?.data)\r\n\t\tconst errTxt = (error?.response?.data?.title || error?.response?.data || '').toLowerCase();\r\n\t\tif (errTxt.includes('store-language')) {\r\n\t errType = store.getters.isCTC ? 'lang' : 'store'\r\n\t\t} else if (errTxt.includes('not found')) {\r\n\t\t\terrType = 'nodeal'\r\n\t\t} else if (errTxt.includes('store')) {\r\n\t\t\terrType = 'store'\r\n\t\t} else if (errTxt.includes('config')) {\r\n\t\t\terrType = 'config'\r\n\t\t}\r\n\t\tawait router.push({\r\n\t\t\t...router.currentRoute,\r\n\t\t\tname: 'ErrorPage',\r\n\t\t\tparams: {type: errType, ...router.currentRoute.params}\r\n\t\t})\r\n\t}\r\n\r\n}","<template>\r\n <div id=\"app\">\r\n <router-view v-if=\"ready || $route.name === 'ErrorPage' \" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {mapActions, mapGetters, mapState} from 'vuex'\r\nimport Rest from \"@/api/Rest\";\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tready: false\r\n\t\t}\r\n\t},\r\n computed:{\r\n ...mapGetters('landingPage', ['currentFlyer']),\r\n ...mapState('landingPage', ['flyers'])\r\n },\r\n methods: {\r\n ...mapActions('landingPage', ['getFlyersData','setCurrentFlyer']),\r\n ...mapActions(['setLanguage','setPages','setCurrentStore']),\r\n\t ...mapActions('screen', ['handleWindowResize'])\r\n },\r\n\r\n async created() {\r\n\t\t// console.log(\"** Wrapper Created\")\r\n await this.getFlyersData();\r\n if(!this.flyers.find( flyer => flyer.title === this.$route.params.flyerId )) {\r\n await Rest.NavigateToFlyer(this.currentFlyer.title);\r\n }\r\n\t this.ready = true;\r\n\t window.addEventListener(\"resize\", this.handleWindowResize);\r\n //this.setCurrentStore(this.$route.query.storeId);\r\n //const flyerId = this.$route.params.flyerId ? this.$route.params.flyerId : null;\r\n\t\t//await this.setCurrentFlyer(this.$route.params.flyerId);\r\n\r\n //await this.setPages(this.currentFlyer.title);\r\n //this.setLanguage()\r\n },\r\n\tbeforeDestroy() {\r\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\r\n\t}\r\n}\r\n</script>\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppWrapper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppWrapper.vue?vue&type=template&id=03fd9e23&\"\nimport script from \"./AppWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./AppWrapper.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport AppWrapper from './AppWrapper.vue'\r\nimport store from './store'\r\nimport VTooltip from 'v-tooltip'\r\nimport VueLazyload from \"vue-lazyload\";\r\nimport VueObserveVisibility from 'vue-observe-visibility';\r\nimport router from './router'\r\nimport ClickOutside from \"vue-click-outside\";\r\nimport {Fragment} from \"vue-fragment\";\r\nimport AppConfig from \"@/classes/AppConfig\";\r\n//import Rest from \"@/api/Rest\";\r\nimport {getUrlParameter} from \"@/utils\";\r\nimport VueGTM from 'vue-clean-gtm';\r\nimport {isArray} from \"lodash\";\r\nimport InstantSearch from 'vue-instantsearch';\r\n\r\n\r\n\r\nconsole.log('*** Iframe URL:', location.href, location);\r\n\r\nconst start = async () => {\r\n\r\n\tconst tp = getUrlParameter('_fc') || '';\r\n\r\n\tawait AppConfig.LoadConfig('app', tp);\r\n\t// console.log(\"App Config Loaded:\", AppConfig.AppConf);\r\n\r\n\t//Rest.Create();\r\n\r\n\tconst doc = document.getElementById(\"icon\");\r\n\tdoc.href = `/icons/favicon/${AppConfig?.AppConf?.favicon}`;\r\n\tdocument.title=`${AppConfig?.AppConf?.title}`;\r\n\r\n\r\n\tVue.config.productionTip = false;\r\n\tlet analytics = AppConfig.AppConf?.analytics;\r\n\r\n\tif(!isArray(analytics)){\r\n\t\tanalytics = [analytics];\r\n\t}\r\n\tanalytics.forEach((analytic)=> {\r\n\t\tswitch(analytic?.type) {\r\n\t\t\tcase 'GTM':\r\n\t\t\t\tif(analytic?.config) {\r\n\t\t\t\t\tVue.use(VueGTM, analytic?.config);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'QM':\r\n\t\t\t\t/*var qtm = document.createElement('script');qtm.type = 'text/javascript';qtm.async = 1;\r\n\t\t\t\tqtm.src = analytic.config.src;\r\n\t\t\t\tvar d = document.getElementsByTagName('script')[0];\r\n\t\t\t\twindow.QuantumMetricAPI && d.parentNode.insertBefore(qtm, d);*/\r\n\r\n\r\n\r\n\t\t\t\tvar quantumMetricsScript = document.createElement('script');\r\n\t\t\t\tquantumMetricsScript.async=1;\r\n\t\t\t\tquantumMetricsScript.src = analytic.config.src ;\r\n\t\t\t\tdocument.body.appendChild(quantumMetricsScript);\r\n\t\t\t\twindow.QuantumMetricAPI\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\r\n\r\n\tVue.use(VTooltip);\r\n\tVue.directive('tooltip', VTooltip.VTooltip)\r\n\tVue.directive('close-popover', VTooltip.VClosePopover)\r\n\tVue.component('v-popover', VTooltip.VPopover)\r\n\tVue.component('fragment', Fragment)\r\n\r\n\r\n\tVue.directive('click-outside', ClickOutside)\r\n\r\n\tVue.use(VueLazyload, {\r\n\t\tobserver: true\r\n\t});\r\n\tVue.use(VueObserveVisibility);\r\n\tVue.use(InstantSearch);\r\n\r\n\tVue.filter('localizeCurrency', value => {\r\n\t\tif (typeof Number(value) !== \"number\") {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\tlet formatter = new Intl.NumberFormat(store.getters.language === 'en' ? \"en-US\" : \"fr-CA\", {\r\n\t\t\tstyle: \"currency\",\r\n\t\t\tcurrency: \"CAD\",\r\n\t\t});\r\n\t\treturn formatter.format(Number(value));\r\n\t})\r\n\r\n\tVue.filter('currency', value => {\r\n\t\tif (typeof Number(value) !== \"number\") {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\tlet formatter = new Intl.NumberFormat(`${store.getters.language}-CA`, {\r\n\t\t\tstyle: \"currency\",\r\n\t\t\tcurrency: \"CAD\",\r\n\t\t});\r\n\t\treturn formatter.format(Number(value));\r\n\t})\r\n\r\n\tnew Vue({\r\n\t\tstore,\r\n\t\trouter,\r\n\t\trender: h => h(AppWrapper)\r\n\t}).$mount('#app')\r\n}\r\n\r\nstart();\r\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterPanel.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterPanel.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFilterButton.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFilterButton.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingList.vue?vue&type=style&index=0&id=baca32ca&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingList.vue?vue&type=style&index=0&id=baca32ca&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpDefaultV1.vue?vue&type=style&index=0&id=be231214&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpDefaultV1.vue?vue&type=style&index=0&id=be231214&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFullscreenButtonV2.vue?vue&type=style&index=0&id=481057d2&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFullscreenButtonV2.vue?vue&type=style&index=0&id=481057d2&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorPage.vue?vue&type=style&index=0&id=54c36d9a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorPage.vue?vue&type=style&index=0&id=54c36d9a&scoped=true&lang=css&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=4&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=4&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dropdown.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dropdown.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListToggleButtonV2.vue?vue&type=style&index=0&id=9d06f284&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListToggleButtonV2.vue?vue&type=style&index=0&id=9d06f284&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=0cb572b6&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=0cb572b6&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TourWindow.vue?vue&type=style&index=0&id=167f9d1e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TourWindow.vue?vue&type=style&index=0&id=167f9d1e&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HamburgerMenuButtonV2.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HamburgerMenuButtonV2.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCarousel.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCarousel.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeDropdown.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeDropdown.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBarFilter.vue?vue&type=style&index=0&id=74abb4db&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBarFilter.vue?vue&type=style&index=0&id=74abb4db&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDrawerToggleButton.vue?vue&type=style&index=0&id=5e076a6b&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDrawerToggleButton.vue?vue&type=style&index=0&id=5e076a6b&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvTitledList.vue?vue&type=style&index=0&id=46882b6a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvTitledList.vue?vue&type=style&index=0&id=46882b6a&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDropdown.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDropdown.vue?vue&type=style&index=1&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotateChevron.vue?vue&type=style&index=1&id=a5b9c05e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotateChevron.vue?vue&type=style&index=1&id=a5b9c05e&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./responsiveGrid.component.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./responsiveGrid.component.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdElement.vue?vue&type=style&index=0&id=70b1b3aa&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdElement.vue?vue&type=style&index=0&id=70b1b3aa&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemHighlight.vue?vue&type=style&index=0&id=364459ab&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemHighlight.vue?vue&type=style&index=0&id=364459ab&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TriangleRewardsCard.vue?vue&type=style&index=0&id=6f104d64&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TriangleRewardsCard.vue?vue&type=style&index=0&id=6f104d64&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpDefault.vue?vue&type=style&index=0&id=1a4fa045&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpDefault.vue?vue&type=style&index=0&id=1a4fa045&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpButtonV2.vue?vue&type=style&index=0&id=40b178de&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpButtonV2.vue?vue&type=style&index=0&id=40b178de&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelector.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelector.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Separator.vue?vue&type=style&index=0&id=28550d64&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Separator.vue?vue&type=style&index=0&id=28550d64&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvListItem.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvListItem.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TriangleRewardsCard.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TriangleRewardsCard.vue?vue&type=style&index=1&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawerContainer.vue?vue&type=style&index=0&id=2eb9e4c4&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawerContainer.vue?vue&type=style&index=0&id=2eb9e4c4&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeList.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeList.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoDatePanel.vue?vue&type=style&index=0&id=fcc401a8&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoDatePanel.vue?vue&type=style&index=0&id=fcc401a8&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListButton.vue?vue&type=style&index=0&id=0eb0b5e9&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListButton.vue?vue&type=style&index=0&id=0eb0b5e9&scoped=true&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListV2.vue?vue&type=style&index=0&id=a89dd5de&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShoppingListV2.vue?vue&type=style&index=0&id=a89dd5de&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelectorCTC.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFlyerSelectorCTC.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanelV2.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanelV2.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbButtonVertical.vue?vue&type=style&index=0&id=9c09f7ac&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbButtonVertical.vue?vue&type=style&index=0&id=9c09f7ac&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpButton.vue?vue&type=style&index=0&id=bdcf3088&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpButton.vue?vue&type=style&index=0&id=bdcf3088&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductElement.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductElement.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicationPreview.vue?vue&type=style&index=0&id=3699ffca&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicationPreview.vue?vue&type=style&index=0&id=3699ffca&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarFilterToggleButton.vue?vue&type=style&index=0&id=aa3e062e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarFilterToggleButton.vue?vue&type=style&index=0&id=aa3e062e&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpPopupV1.vue?vue&type=style&index=0&id=02e9d7c4&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpPopupV1.vue?vue&type=style&index=0&id=02e9d7c4&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emailSignupButtonV2.vue?vue&type=style&index=0&id=a035890e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emailSignupButtonV2.vue?vue&type=style&index=0&id=a035890e&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarSync.vue?vue&type=style&index=0&id=64903072&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarSync.vue?vue&type=style&index=0&id=64903072&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFlyerOrientationButtonV2.vue?vue&type=style&index=0&id=28479ecf&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleFlyerOrientationButtonV2.vue?vue&type=style&index=0&id=28479ecf&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollBar.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollBar.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./favsButton.vue?vue&type=style&index=0&id=2739feb2&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./favsButton.vue?vue&type=style&index=0&id=2739feb2&scoped=true&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfDownloadButtonV2.vue?vue&type=style&index=0&id=64c74552&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfDownloadButtonV2.vue?vue&type=style&index=0&id=64c74552&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanel.vue?vue&type=style&index=0&id=6c294f7f&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlPanel.vue?vue&type=style&index=0&id=6c294f7f&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerSelectorController.vue?vue&type=style&index=0&id=0b6e110a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerSelectorController.vue?vue&type=style&index=0&id=0b6e110a&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDP.vue?vue&type=style&index=0&id=2fe44cc3&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDP.vue?vue&type=style&index=0&id=2fe44cc3&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbButton.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlyerThumbButton.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareButton.vue?vue&type=style&index=0&id=3032eff5&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareButton.vue?vue&type=style&index=0&id=3032eff5&scoped=true&lang=scss&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&id=1a7367af&scoped=true&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&id=1a7367af&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigStyleInjector.vue?vue&type=style&index=0&id=056470d5&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigStyleInjector.vue?vue&type=style&index=0&id=056470d5&scoped=true&lang=css&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=3&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=3&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarPDPOld.vue?vue&type=style&index=0&id=476cec66&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RaddarPDPOld.vue?vue&type=style&index=0&id=476cec66&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomControlsV2.vue?vue&type=style&index=0&id=4c8dc425&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZoomControlsV2.vue?vue&type=style&index=0&id=4c8dc425&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AspectImg.vue?vue&type=style&index=0&id=684bc572&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AspectImg.vue?vue&type=style&index=0&id=684bc572&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpPopup.vue?vue&type=style&index=0&id=f36bcaf0&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdpPopup.vue?vue&type=style&index=0&id=f36bcaf0&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotateChevron.vue?vue&type=style&index=0&id=a5b9c05e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotateChevron.vue?vue&type=style&index=0&id=a5b9c05e&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VideoModal.vue?vue&type=style&index=0&id=0fddef36&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VideoModal.vue?vue&type=style&index=0&id=0fddef36&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=style&index=0&id=6d85ef20&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=style&index=0&id=6d85ef20&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDPV3.vue?vue&type=style&index=0&id=6eefdc86&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDPV3.vue?vue&type=style&index=0&id=6eefdc86&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartialBlockVideo.vue?vue&type=style&index=0&id=bb14e4cc&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartialBlockVideo.vue?vue&type=style&index=0&id=bb14e4cc&scoped=true&lang=scss&\""],"sourceRoot":""}