@covet-pics/covet-pics-widget 0.143.0 → 0.143.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -797,7 +797,7 @@ const CovetPicsHighlightedPage = class {
797
797
  const showHotspotsInLayout = this.layout === "row" ? true : this.appState.settings.hotspots.enabled;
798
798
  return (index.h("div", { class: `thumbnail ${this.layout} ${this.reverseClass} ${this.productsLayout}`, "is-loading": this.thumbnailLayout === "image" }, this.thumbnailLayout === "image" &&
799
799
  index.h("img", { alt: this.thumbnailAlt, class: "img-cover", onLoad: this.imageLoadedHandler, onError: this.imageLoadedHandler, src: this.pageIndex - 2 < this.mainSliderIndex ? this.thumbnailUrl : null }), this.thumbnailLayout === "video" &&
800
- index.h("div", { class: "thumbnail-video-wrap" }, index.h("video", { playsinline: true, loop: true, class: "thumbnail-video img-contain", "data-poster": this.videoPoster, title: this.thumbnailAlt }, index.h("source", { src: this.videoUrl, type: "video/mp4" })), index.h("button", { type: "button", class: "thumbnail-video-play", onClick: this.playPauseVideoClickHandler }), index.h("button", { type: "button", class: "thumbnail-video-pause", onClick: this.playPauseVideoClickHandler })), showReview && this.renderReview(), starOnly && this.renderStarOnlyReview(), showHotspotsInLayout && this.layout !== "spotlight" &&
800
+ index.h("div", { class: "thumbnail-video-wrap" }, index.h("video", { playsinline: true, loop: true, class: "thumbnail-video img-contain", poster: this.videoPoster, title: this.thumbnailAlt }, index.h("source", { src: this.videoUrl, type: "video/mp4" })), index.h("button", { type: "button", class: "thumbnail-video-play", onClick: this.playPauseVideoClickHandler }), index.h("button", { type: "button", class: "thumbnail-video-pause", onClick: this.playPauseVideoClickHandler })), showReview && this.renderReview(), starOnly && this.renderStarOnlyReview(), showHotspotsInLayout && this.layout !== "spotlight" &&
801
801
  index.h("covet-pics-highlighted-hotspots", { links: this.productLinks, hoverHotspot: this.hoverHotspot, activeHotspot: this.activeProductIndex, thumbnailUrl: this.thumbnailUrl, isMobile: this.isMobile, productBaseImgAlt: this.productBaseImgAlt, pageId: this.pageId, appStore: this.appStore }), !this.appState.settings.hide_branding &&
802
802
  index.h("a", { class: "covet-branding", href: `https://apps.shopify.com/covet-pics?utm_source=embed&utm_medium=highlight&utm_campaign=${location.host}`, target: "_blank", rel: "noopener", tabindex: "0", "aria-label": "Covet.pics logo link" })));
803
803
  }
@@ -1 +1 @@
1
- {"file":"covet-pics-highlighted-hotspots.covet-pics-highlighted-page.entry.cjs.js","mappings":"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","names":["getSlideTransformEl","elementTransitionEnd","getSize","getUseAnalytics","sendToGoogleAnalytics","sendBeacon","h","Host","index","slider","Swiper","A11y","swiperUpdateTabIndex","Navigation","Pagination","Fragment","format"],"sources":["node_modules/swiper/shared/effect-init.js","node_modules/swiper/shared/effect-target.js","node_modules/swiper/shared/effect-virtual-transition-end.js","node_modules/swiper/modules/effect-fade/effect-fade.js","src/components/covet-pics-highlighted/covet-pics-highlighted-hotspots.scss?tag=covet-pics-highlighted-hotspots","src/components/covet-pics-highlighted/covet-pics-highlighted-hotspots.tsx","src/components/covet-pics-highlighted/covet-pics-highlighted-page.scss?tag=covet-pics-highlighted-page","src/components/covet-pics-highlighted/covet-pics-highlighted-page.tsx"],"sourcesContent":["export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","import { getSlideTransformEl } from './utils.js';\nexport default function effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}","import { elementTransitionEnd } from './utils.js';\nexport default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides\n}) {\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowEl && slideEl.shadowEl === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}",".hotspots {\n position: absolute;\n width: 100%;\n height: 100%;\n z-index: 2;\n pointer-events: none;\n}\n\n.hotspot {\n display: inline-block;\n width: 48px;\n height: 48px;\n border-radius: 50%;\n position: absolute;\n outline: none !important;\n visibility: visible;\n pointer-events: initial;\n &:after {\n content: \"\";\n position: absolute;\n width: 16px;\n height: 16px;\n transition: all 0.2s ease-out;\n display: inline-block;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--covet-pics-highlighted-hotspot-bg-color);\n border-radius: 50%;\n }\n &:before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n border-radius: 50%;\n will-change: transform;\n background-color: var(--covet-pics-highlighted-hotspot-bg-color);\n opacity: 0.3;\n }\n // &:hover, &:active, &:focus, &.active {\n &.active {\n &:before {\n animation: pulsateZoom 1.2s ease-in-out infinite;\n }\n }\n &.active.show-content {\n .content {\n z-index: 1;\n visibility: visible;\n // transform: translate(-50%, 8px) scale(1); // hover with scale\n }\n .content-animation {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .content {\n display: block;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: center center;\n z-index: -1;\n visibility: hidden;\n }\n\n .content-animation {\n display: block;\n height: 100%;\n width: 240px;\n transition: all 0.3s ease-out;\n position: relative;\n transform: translateY(8px);\n transform-origin: center center;\n padding: 24px;\n background-color: var(--covet-pics-highlighted-background-color);\n box-sizing: border-box;\n overflow: hidden;\n border-radius: 2px;\n box-shadow: 4px 8px 24px 0px rgba(132,132,132, 0.2);\n opacity: 0;\n &.hotspot-short {\n width: 320px;\n display: flex;\n justify-content: flex-start;\n padding: 16px;\n border-radius: 2px;\n }\n }\n\n .description {\n display: block;\n &.hotspot-short {\n width: calc(100% - 16px * 2 - 16px);\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n }\n \n .main-title {\n width: 144px;\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n font-size: 16px;\n line-height: 22px;\n font-weight: 400;\n color: var(--covet-pics-highlighted-primary-color);\n margin-bottom: 16px;\n text-transform: uppercase;\n }\n\n .img-wrap {\n height: 144px;\n width: 144px;\n position: relative;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 16px;\n flex: none;\n &.hotspot-short {\n width: 88px;\n height: 88px;\n margin-right: 16px;\n margin-bottom: 0;\n }\n }\n .img {\n width: 100%;\n object-fit: cover;\n }\n\n .title {\n width: 100%;\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n font-size: 14px;\n text-transform: uppercase;\n font-weight: 400;\n line-height: 19px;\n color: var(--covet-pics-highlighted-secondary-color);\n margin-bottom: 8px;\n &.hotspot-short {\n font-size: 14px;\n line-height: 1;\n width: calc(320px - 88px - 16px * 3);\n text-align: left;\n }\n }\n\n .price {\n text-align: center;\n font-size: 14px;\n text-transform: uppercase;\n color: var(--covet-pics-highlighted-primary-color);\n font-size: 14px;\n line-height: 19px;\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n margin-bottom: 16px;\n &.hotspot-short {\n margin-bottom: 0;\n width: calc(320px - 88px - 16px * 3);\n text-align: left;\n }\n }\n\n .btn-buy {\n font-family: var(--covet-pics-font-family);\n display: block;\n line-height: 1;\n padding: 15px 15px;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n font-size: 12px;\n text-transform: uppercase;\n text-align: center;\n cursor: pointer;\n background-color: transparent;\n border: 1px solid var(--covet-pics-highlighted-primary-color);\n color: var(--covet-pics-highlighted-primary-color);\n margin-bottom: 0;\n transition: all 0.4s ease;\n outline: none !important;\n &:hover, &:active, &:focus, &.active {\n border: 1px solid var(--covet-pics-highlighted-primary-color);\n color: var(--covet-pics-highlighted-background-color);\n background-color: var(--covet-pics-highlighted-primary-color);\n }\n &.hotspot-short {\n margin-top: auto;\n border: none;\n width: auto;\n padding: 0 0 8px 0;\n font-size: 14px;\n position: relative;\n overflow: hidden;\n margin-left: 0;\n &:after {\n content: '';\n position: absolute;\n display: block;\n bottom: 0;\n left: 50%;\n width: 100%;\n height: 1px;\n transform: translateX(-50%);\n transition: all 0.4s ease;\n background-color: var(--covet-pics-highlighted-primary-color);\n }\n &:hover, &:active, &:focus, &.active {\n border: none;\n background-color: transparent;\n color: var(--covet-pics-highlighted-primary-color);\n &:after {\n transform: translateX(-50%);\n width: 80%;\n }\n }\n }\n }\n}\n\n@keyframes pulsateZoom {\n 0% {\n transform: scale(1);\n }\n \n 50% {\n transform: scale(1.2);\n }\n\n 100% {\n transform: scale(1);\n }\n}","import { Component, Element, h, Host, Prop, Event, EventEmitter, Watch } from \"@stencil/core\";\nimport { AppStateType, AppStoreType, getSize } from \"../../utils/utils\";\nimport { getUseAnalytics } from \"../../store/getters\";\nimport { sendToGoogleAnalytics } from \"../../utils/utils\";\nimport { sendBeacon } from \"../../store/storeUtils\";\nimport { Unsubscribe } from \"../../utils/types\";\n\n@Component({\n tag: \"covet-pics-highlighted-hotspots\",\n styleUrl: \"covet-pics-highlighted-hotspots.scss\"\n})\n\nexport class CovetPicsHiglghtedHotspots {\n @Element() el: HTMLCovetPicsHighlightedHotspotsElement;\n\n /**\n * array of links (product & custom links)\n */\n @Prop() links: Array<any> = [];\n\n /**\n * Active hotspot (index)\n */\n @Prop() activeHotspot: number = 0;\n\n /**\n * watch thumbnail url change in slider mode\n */\n @Prop() thumbnailUrl: string;\n\n /**\n * activate circle animation on hoverto product (-1 all off)\n */\n @Prop() hoverHotspot: number = -1;\n\n /**\n * current view is for mobile devices\n */\n @Prop() isMobile: boolean;\n\n /**\n * productBaseImgAlt\n */\n @Prop() productBaseImgAlt: string;\n\n /**\n * page id\n */\n @Prop() pageId: number\n\n /**\n * App store\n */\n @Prop() appStore: AppStoreType;\n\n // App state;\n private appState: AppStateType;\n private unsubscribe: Unsubscribe;\n private layout: string; // short var name (hotspot-tall or hotspot-short)\n private pageLayout: string; // short var name (hotspot-tall or hotspot-short)\n\n /**\n * Emitted when changed active hotspot to change active slide\n */\n @Event() changeActiveHotspot: EventEmitter;\n\n @Watch(\"thumbnailUrl\")\n refreshHotspot(newUrl: string, oldUrl: string) {\n if (newUrl !== oldUrl) {\n this.clearAllActiveHotspot();\n this.clearAllActiveHotspotContent();\n if (this.pageLayout === \"row\") this.setPositionAllHotspotContent();\n }\n }\n\n @Watch(\"activeHotspot\")\n activeHotspotHandler(newIndex: number, oldIndex: number) {\n if (newIndex === oldIndex) return true;\n this.setActiveHotspot(newIndex);\n }\n\n componentWillLoad() {\n this.initStore();\n }\n\n componentDidLoad() {\n if (this.pageLayout === \"row\") this.setPositionAllHotspotContent();\n }\n\n componentDidRender() {\n if (this.pageLayout !== \"row\") this.setActiveHotspot(this.activeHotspot);\n }\n\n disconnectedCallback() {\n this.unsubscribe();\n }\n\n private initStore() {\n this.appState = this.appStore.getState();\n this.layout = this.appState.settings.highlight_hotspots_layout;\n this.pageLayout = this.appState.settings.highlight_layout;\n this.unsubscribe = this.appStore.subscribe(() => {\n this.appState = this.appStore.getState();\n this.layout = this.appState.settings.highlight_hotspots_layout;\n this.pageLayout = this.appState.settings.highlight_layout;\n });\n }\n\n private getPositionForLink(link) {\n return {\n \"left\": (link.position_x * 100).toString() + \"%\",\n \"top\": (link.position_y * 100).toString() + \"%\"\n };\n }\n\n private setPositionForLinkContent(link: HTMLElement) {\n const parent: HTMLElement = link.parentElement;\n const content: HTMLElement = link.querySelector(\".content\");\n\n const space = 8; // space between circle and content\n const circleSize = getSize(link, \"width\");\n\n const centerX = getSize(link, \"x\") - getSize(parent, \"x\") + circleSize / 2;\n\n const minX = getSize(parent, \"x\");\n const minY = getSize(parent, \"y\");\n const maxX = getSize(parent, \"x\") + getSize(parent, \"width\");\n const maxY = getSize(parent, \"y\") + getSize(parent, \"height\");\n\n const delta = circleSize / 2 + space;\n\n const needFixShortLeft = minX - (getSize(link, \"x\") + circleSize / 2 - getSize(content, \"width\") / 2);\n const needFixShortRight = getSize(link, \"x\") + circleSize / 2 + getSize(content, \"width\") / 2 - maxX;\n\n const needFixLeft = minX - (getSize(link, \"x\") - space - getSize(content, \"width\"));\n const needFixRight = getSize(link, \"x\") + circleSize + space + getSize(content, \"width\") - maxX;\n const needFixTop = minY - (getSize(link, \"y\") - space - getSize(content, \"height\"));\n const needFixBottom = getSize(link, \"y\") + circleSize + space + getSize(content, \"height\") - maxY;\n\n const canShowOnVertical = getSize(content, \"height\") + 2 * space < getSize(parent, \"height\");\n\n // show standard\n if (needFixBottom < 0 && needFixShortLeft < 0 && needFixShortRight < 0) {\n content.style.transform = `translate(-50%, calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`;\n return content;\n }\n\n // TODO add exception if no horizontal space to show\n // show on bottom with fix\n if (needFixBottom < 0) {\n // console.log('needFixBottom < 0: ');\n centerX < getSize(parent, \"width\") / 2\n ? content.style.transform = `translate(calc(-50% + ${needFixShortLeft + space}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`\n : content.style.transform = `translate(calc(-50% - ${needFixShortRight + space}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`;\n // content.style.transform = `translate(calc(-50% - ${getSize(content, 'width') / 2 + delta}px), calc(-50% + ${getSize(content, 'height') / 2 + delta - space}px - ${needFixBottom}px)`;\n return content;\n }\n\n // can't show on bottom but possible on both side (left & right)\n if (needFixBottom > 0 && needFixLeft < 0 && needFixRight < 0 && canShowOnVertical) {\n // console.log('needFixBottom > 0 && needFixLeft < 0 && needFixRight < 0');\n centerX < getSize(parent, \"width\") / 2\n ? content.style.transform = `translate(calc(-50% + ${getSize(content, \"width\") / 2 + delta}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta - space}px - ${needFixBottom}px)`\n : content.style.transform = `translate(calc(-50% - ${getSize(content, \"width\") / 2 + delta}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta - space}px - ${needFixBottom}px)`;\n return content;\n }\n\n // can't show on bottom but possible on left\n if (needFixBottom > 0 && needFixLeft < 0 && canShowOnVertical) {\n // console.log('needFixBottom > 0 && needFixLeft < 0 && needFixRight < 0');\n content.style.transform = `translate(calc(-50% - ${getSize(content, \"width\") / 2 + delta}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta - space}px - ${needFixBottom}px)`;\n return content;\n }\n\n // can't show on bottom but possible on right\n if (needFixBottom > 0 && needFixRight < 0 && canShowOnVertical) {\n // console.log('needFixBottom > 0 && needFixLeft < 0 && needFixRight < 0');\n content.style.transform = `translate(calc(-50% + ${getSize(content, \"width\") / 2 + delta}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta - space}px - ${needFixBottom}px)`;\n return content;\n }\n\n // can't show on bottom, left, right\n if (needFixBottom > 0 && needFixLeft > 0 && needFixRight > 0 && needFixTop < 0) {\n content.style.transform = `translate(-50%, calc(-50% - ${getSize(content, \"height\") / 2 + space}px)`;\n if (centerX < getSize(parent, \"width\") / 2 && needFixLeft) {\n content.style.transform = `translate(calc(-50% + ${needFixShortLeft + space}px), calc(-50% - ${getSize(content, \"height\") / 2 + delta}px)`;\n }\n if (centerX > getSize(parent, \"width\") / 2 && needFixRight) {\n content.style.transform = `translate(calc(-50% - ${needFixShortRight + space}px), calc(-50% - ${getSize(content, \"height\") / 2 + delta}px)`;\n }\n return content;\n }\n\n // if can't possible to show in all direction - show in standard mode\n content.style.transform = `translate(-50%, calc(-50% + ${getSize(content, \"height\") / 2 + delta}px`;\n if (centerX < getSize(parent, \"width\") / 2) {\n needFixShortLeft > 0\n ? content.style.transform = `translate(calc(-50% + ${needFixShortLeft + space}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`\n : content.style.transform = `translate(-50%, calc(-50% + ${getSize(content, \"height\") / 2 + delta}px`;\n } else {\n needFixShortRight > 0\n ? content.style.transform = `translate(calc(-50% - ${needFixShortRight + space}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`\n : content.style.transform = `translate(-50%, calc(-50% + ${getSize(content, \"height\") / 2 + delta}px`;\n }\n return content;\n }\n\n private mouseClickHandler(e: MouseEvent, index: number) {\n if (this.isMobile && this.pageLayout !== \"row\" && index !== this.activeHotspot)\n return this.mouseEnterHandler(e, index);\n if (this.isMobile && this.pageLayout === \"row\" && !(e.currentTarget as HTMLElement).classList.contains(\"active\"))\n return this.mouseEnterHandler(e, index);\n \n const gaCampaign = (e.currentTarget as HTMLElement).getAttribute(\"data-ga-campaign\");\n if (getUseAnalytics(this.appState)) {\n const category = \"Covet.pics Popup\";\n const action = \"Covet.pics Link Click\";\n const label = \"Covet.pics Link Click - \" + gaCampaign;\n sendToGoogleAnalytics(action, category, label);\n }\n \n const linkId = (e.currentTarget as HTMLElement).getAttribute(\"data-link-id\");\n const beaconData = {\n gallery_item_id: this.pageId,\n product_id: linkId,\n };\n sendBeacon(this.appState, \"grid_link_click\", beaconData);\n \n return null;\n }\n\n private mouseEnterHandler(e: MouseEvent, index: number) {\n e.preventDefault();\n e.stopPropagation();\n this.clearAllActiveHotspot();\n this.setActiveHotspot(index);\n\n if (this.pageLayout === \"row\")\n this.setPositionForLinkContent(this.el.querySelectorAll(\".hotspot\")[index] as HTMLElement);\n\n if (index !== this.activeHotspot) this.changeActiveHotspot.emit(index);\n return (e.currentTarget as HTMLElement).classList.add(\"active\", \"show-content\");\n }\n private mouseLeaveHandler(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n return this.clearAllActiveHotspotContent();\n }\n\n private clearAllActiveHotspot() {\n return this.el.querySelectorAll(\".hotspot\").forEach(link => {\n link.classList.remove(\"active\");\n });\n }\n\n private clearAllActiveHotspotContent() {\n return this.el.querySelectorAll(\".hotspot\").forEach(link => {\n this.setContentHidden(link, true);\n link.classList.remove(\"show-content\");\n });\n }\n\n private setActiveHotspot(index: number) {\n if (this.el.querySelectorAll(\".hotspot\").length < index + 1) return true;\n this.clearAllActiveHotspot();\n const activeHotspot = this.el.querySelectorAll(\".hotspot\")[index];\n this.setContentHidden(activeHotspot, false);\n return activeHotspot.classList.add(\"active\");\n }\n\n private setContentHidden(link: Element, hidden: boolean) {\n const hotspotContent = link.querySelector(\".content\");\n if (hotspotContent === null) return false;\n return hotspotContent.setAttribute(\"aria-hidden\", `${hidden}`);\n }\n\n private setPositionAllHotspotContent() {\n const hotspots: NodeListOf<HTMLElement> = this.el.querySelectorAll(\".hotspot\");\n hotspots.forEach(link => this.setPositionForLinkContent(link));\n return hotspots.forEach(link => this.setPositionForLinkContent(link));\n }\n\n private imgAlt(link, idx: number, itemsLength: number) { \n return link.title \n ? `${link.title} product-slide ${idx + 1}/${itemsLength} ${this.productBaseImgAlt}`\n : `product-slide ${idx + 1}/${itemsLength} ${this.productBaseImgAlt}`;\n }\n\n render() {\n return (\n <Host class=\"hotspots\">\n {this.links.map((link, index) =>\n <a\n href={link.link}\n class={`hotspot ${this.layout} ${this.hoverHotspot === index ? \"hover-animate\" : \"\"}`}\n style={this.getPositionForLink(link)}\n data-ga-campaign={link.title} data-link-id={link.id}\n onClick={(e: MouseEvent) => this.mouseClickHandler(e, index)}\n onMouseEnter={(e: MouseEvent) => !this.isMobile ? this.mouseEnterHandler(e, index) : null}\n onFocusin={(e: MouseEvent) => !this.isMobile ? this.mouseEnterHandler(e, index) : null}\n onMouseLeave={(e: MouseEvent) => !this.isMobile ? this.mouseLeaveHandler(e) : null}\n onFocusout={(e: MouseEvent) => !this.isMobile ? this.mouseLeaveHandler(e) : null}\n aria-label={`${link.title ? link.title : \"product link\"}`}\n >\n {this.pageLayout === \"row\" &&\n <div class=\"content\" aria-hidden=\"true\">\n <div class={`content-animation ${this.layout}`}>\n {this.layout === \"hotspot-tall\" &&\n <h3 class={`main-title ${this.layout}`}>{this.appState.settings.popup_products_title}</h3>}\n <div class={`img-wrap ${this.layout}`}>\n <img src={link.image} alt={this.imgAlt(link, index, this.links.length)} class=\"img\" />\n </div>\n <div class={`description ${this.layout}`}>\n <h4 class={`title ${this.layout}`}>{link.title}</h4>\n {link.prices && link.prices.price_label &&\n <p class={`price ${this.layout}`} innerHTML={link.prices.price_label}></p>}\n <button class={`btn-buy ${this.layout}`} aria-label={this.appState.settings.popup_products_button_caption} type=\"button\">\n {this.appState.settings.popup_products_button_caption}\n </button>\n </div>\n </div>\n </div>\n }\n </a>\n )}\n </Host>\n );\n }\n}\n","// highlighted-page\n$color-black: #101010;\n$color-gray: #848484;\n$color-overlay-gray: #DFE3E8;\n$color-overlay-gray-lite: #F9FAFB; \n\n@import \"covet-pics-highlighted-page-thumbnail.scss\";\n@import \"covet-pics-highlighted-page-products.scss\";\n\n\ncovet-pics-highlighted-page {\n width: 100%;\n display: flex;\n height: 100vh;\n height: calc(var(--covet-pics-highlighted-window-height, 1vh) * 100);\n box-sizing: border-box;\n padding: var(--covet-pics-highlighted-padding);\n @media only screen and (max-width : 799.98px) {\n padding: 0;\n }\n &.spotlight {\n padding: 0;\n flex-wrap: wrap;\n height: 100%;\n }\n &.zigzag {\n position: relative;\n &:not(:first-of-type) {\n .thumbnail .covet-branding {\n display: none;\n }\n }\n @media only screen and (max-width : 799.98px) {\n height: auto; \n flex-wrap: wrap;\n }\n }\n &.row {\n height: calc(90vh - var(--covet-pics-highlighted-padding-px));\n height: calc(var(--covet-pics-highlighted-window-height, 1vh) * 90 - var(--covet-pics-highlighted-padding-px));\n padding: 0;\n width: 100%;\n &:not(:first-of-type) {\n .thumbnail .covet-branding {\n display: none;\n }\n }\n @media only screen and (max-width : 799.98px) {\n width: 100%;\n height: 90vh;\n height: calc(var(--covet-pics-highlighted-window-height, 1vh) * 90);\n }\n }\n &.slider {\n padding: 0;\n @media only screen and (max-width : 799.98px) {\n flex-wrap: wrap;\n }\n }\n}\n// highlighted-page END","import { Component, Element, h, Host, Prop, Listen, State } from \"@stencil/core\";\nimport Swiper, { Navigation, Pagination, EffectFade, A11y } from \"swiper\";\nimport Fragment from \"../../utils/fragment\";\nimport { format } from \"timeago.js\";\nimport { AppStateType, AppStoreType } from \"../../utils/utils\";\nimport { getUseAnalytics } from \"../../store/getters\";\nimport { sendToGoogleAnalytics } from \"../../utils/utils\";\nimport { sendBeacon } from \"../../store/storeUtils\";\nimport { swiperUpdateTabIndex } from \"../../utils/slider\";\nimport { Unsubscribe } from \"../../utils/types\";\n\n\n@Component({\n tag: \"covet-pics-highlighted-page\",\n styleUrl: \"covet-pics-highlighted-page.scss\"\n})\n\nexport class CovetPicsHighlightedPage {\n @Element() el: HTMLCovetPicsHighlightedPageElement;\n\n /**\n * URL to the image that will be thumbnail\n */\n @Prop() thumbnailUrl: string;\n\n /**\n * ALT for the image that will be thumbnail\n */\n @Prop() thumbnailAlt: string;\n\n /**\n * gallery item aria-label for accessability\n */\n @Prop() ariaLabel: string = null;\n\n /**\n * Thumbnail layout (imge, carousel, video)\n */\n @Prop() thumbnailLayout: string = \"image\";\n\n /**\n * video url\n */\n @Prop() videoUrl: string;\n\n /**\n * video poster images\n */\n @Prop() videoPoster: string;\n\n /**\n * Thumbnail carousel\n */\n @Prop() thumbnailCarouselImages: Array<any>;\n\n /**\n * Layout type for products\n */\n @Prop() productLinks: Array<any>;\n\n /**\n * Base Img Alt for Product\n */\n @Prop() productBaseImgAlt: string;\n\n /**\n * reverseClass for checkerboard order layout (\"\" or \"reverse\" value)\n */\n @Prop() reverseClass: string = \"\";\n\n /**\n * current view is for mobile devices\n */\n @Prop() isMobile: boolean = false;\n\n /**\n * page index in slider layout (main slider)\n */\n @Prop() pageIndex: number = -1;\n\n /**\n * Caption text (comment)\n */\n @Prop() caption: string = \"\";\n\n /**\n * Star rating\n */\n @Prop() rating: number = 0;\n \n /**\n * Created time\n */\n @Prop() createdTime: string;\n /**\n * User name\n */\n @Prop() userName: string;\n\n /**\n * active page index in slider layout (main slider)\n */\n @Prop() mainSliderIndex: number = 0;\n\n /**\n * page id\n */\n @Prop() pageId: number;\n\n /**\n * App store\n */\n @Prop() appStore: AppStoreType;\n\n // App state;\n private appState: AppStateType;\n private unsubscribe: Unsubscribe;\n private productsLayout: string; // short var name (layout-1)\n private layout: string; // short var name (slider, zigzag, spotlight, row)\n\n @State() hideHotspots: boolean = false;\n\n @Listen(\"changeActiveHotspot\")\n onChangeActiveHotspot(event: CustomEvent) {\n if (event.detail === undefined || event.detail === null || this.productSlider === undefined) return true;\n if (this.layout === \"row\") return true;\n if (event.detail === this.productSlider.realIndex) return true;\n return this.additionalProductSlider === null\n ? this.productSlider.slideToLoop(event.detail)\n : this.additionalProductSlider.slideToLoop(event.detail), this.productSlider.slideToLoop(event.detail);\n }\n\n /**\n * product slider\n */\n private productSlider;\n\n /**\n * thumbnail carousel (swiper slider for thumbnail)\n */\n private thumbnailCarousel;\n\n /**\n * additional product slider\n */\n private additionalProductSlider = null;\n\n @State() activeProductIndex: number = 0;\n\n @State() hoverHotspot: number = 0;\n\n componentWillLoad() {\n this.initStore();\n }\n\n componentDidLoad() {\n // lazy init for product slider inside slider layout (main slider)\n if (this.pageIndex - 2 < this.mainSliderIndex && this.layout !== \"row\") this.initSwiper();\n // lazy init for thumbnail carousel inside slider layout (main slider)\n if (this.pageIndex - 2 < this.mainSliderIndex && this.thumbnailLayout === \"carousel\") this.initThumbnailCarousel();\n }\n\n componentDidUpdate() {\n if (this.layout !== \"row\" && this.productSlider && this.productSlider.destroyed === true) this.initSwiper();\n\n // lazy init for product slider inside slider layout (main slider)\n if (this.layout !== \"row\" && !this.productSlider && this.pageIndex - 2 < this.mainSliderIndex) {\n this.initSwiper();\n }\n // lazy init for thumbnail carousel inside slider layout (main slider)\n if (this.pageIndex - 2 < this.mainSliderIndex && this.thumbnailLayout === \"carousel\" && !this.thumbnailCarousel) {\n this.initThumbnailCarousel();\n }\n // autopause all video files inside thumbnail\n if (this.pageIndex !== this.mainSliderIndex && this.layout !== \"row\") {\n const carousellVideos = this.el.querySelectorAll(\".thumbnail .thumbnail-video-wrap\") as NodeListOf<HTMLElement>;\n carousellVideos.forEach(videoWrapper => this.pauseVideo(videoWrapper));\n }\n }\n\n // eslint-disable-next-line @stencil/own-methods-must-be-private\n componentShouldUpdate(oldValue: any, newValue: any, name: any) {\n if (oldValue !== newValue && name === \"thumbnailUrl\") {\n this.productSlider.destroy();\n if (this.additionalProductSlider !== null) this.additionalProductSlider.destroy();\n this.activeProductIndex = 0;\n }\n\n if (name === \"isMobile\") this.productSlider.destroy();\n if (name === \"isMobile\" && this.additionalProductSlider !== null)\n this.additionalProductSlider.destroy();\n }\n\n disconnectedCallback() {\n this.unsubscribe();\n }\n\n private initStore() {\n this.appState = this.appStore.getState();\n this.layout = this.appState.settings.highlight_layout;\n this.productsLayout = this.appState.settings.highlight_products_layout;\n this.unsubscribe = this.appStore.subscribe(() => {\n this.layout = this.appState.settings.highlight_layout;\n this.productsLayout = this.appState.settings.highlight_products_layout;\n this.appState = this.appStore.getState();\n });\n }\n\n private initSwiper() {\n if (this.productLinks === undefined) return true;\n if (this.productLinks.length < 2) return true;\n if (this.productsLayout === \"layout-3\" && this.productLinks.length < 3 && !this.isMobile) return true;\n if (this.productsLayout === \"layout-4\" && this.productLinks.length < 4 && !this.isMobile) return true;\n\n const slider = this.el.querySelector(\".product .slider\") as HTMLElement;\n const nextEl = this.el.querySelector(\".product .slider-control.prev\") as HTMLElement;\n const prevEl = this.el.querySelector(\".product .slider-control.next\") as HTMLElement;\n\n const a11ySettings = {\n enabled: true,\n prevSlideMessage: \"Previous product\",\n nextSlideMessage: \"Next product\",\n containerMessage: \"Product slider\",\n containerRoleDescriptionMessage: \"Product slider\",\n paginationBulletMessage: \"Goto product #{{index}}\",\n slideRole: \"group\",\n slideLabelMessage: \"Product item {{index}}/{{slidesLength}}\"\n };\n\n if (this.isMobile && this.layout === \"zigzag\") {\n return this.productSlider = new Swiper(slider, {\n modules: [A11y],\n slidesPerView: 1,\n loop: false,\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n spaceBetween: 8,\n });\n }\n\n if (this.productsLayout === \"layout-1\") {\n const paginationEl = this.el.querySelector(\".product .pagination\") as HTMLElement;\n return this.productSlider = new Swiper(slider, {\n modules: [Navigation, Pagination, EffectFade, A11y],\n slidesPerView: 1,\n effect: this.isMobile ? null : \"fade\",\n fadeEffect: {\n crossFade: this.isMobile ? false : true\n },\n loop: this.isMobile ? false : true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n pagination: {\n el: paginationEl,\n clickable: true,\n modifierClass: \"pagination-\"\n },\n spaceBetween: this.isMobile ? 8 : 0,\n });\n }\n\n if (this.productsLayout === \"layout-2\") {\n const paginationEl = this.el.querySelector(\".product .pagination\") as HTMLElement;\n const sliderDescription = this.el.querySelector(\".product .slider-description\") as HTMLElement;\n this.additionalProductSlider = this.isMobile\n ? null\n : new Swiper(sliderDescription, {\n modules: [Navigation, Pagination, EffectFade, A11y],\n on: {\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n effect: \"fade\",\n fadeEffect: {\n crossFade: true\n },\n slidesPerView: 1,\n loop: true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n modifierClass: \"pagination-\"\n },\n spaceBetween: 16,\n });\n\n return this.productSlider = new Swiper(slider, {\n modules: [Navigation, Pagination, EffectFade, A11y],\n slidesPerView: 1,\n effect: this.isMobile ? null : \"fade\",\n fadeEffect: {\n crossFade: this.isMobile ? false : true\n },\n loop: this.isMobile ? false : true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n pagination: {\n el: paginationEl,\n clickable: true,\n modifierClass: \"pagination-\"\n },\n spaceBetween: this.isMobile ? 8 : 16,\n });\n }\n\n if (this.productsLayout === \"layout-3\") {\n return this.productSlider = new Swiper(slider, {\n modules: [Navigation, A11y],\n slidesPerView: this.isMobile ? 1 : 2,\n effect: null,\n loop: this.isMobile ? false : true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n spaceBetween: this.isMobile ? 8 : 16,\n });\n }\n\n if (this.productsLayout === \"layout-4\") {\n if (this.productLinks === undefined) return null;\n const slidesCount = this.isMobile\n ? 1\n : 3;\n return this.productSlider = new Swiper(slider, {\n modules: [Navigation, A11y],\n slidesPerView: slidesCount,\n effect: null,\n loop: this.isMobile ? false : true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n spaceBetween: this.isMobile ? 8 : 16,\n });\n }\n\n return null;\n }\n\n private initThumbnailCarousel() {\n if (this.thumbnailCarouselImages.length < 2) return true;\n\n const slider = this.el.querySelector(\".thumbnail .swiper\") as HTMLElement;\n const paginationEl = this.el.querySelector(\".thumbnail .thumbnail-pagination\") as HTMLElement;\n return this.thumbnailCarousel = new Swiper(slider, {\n modules: [Pagination, EffectFade, A11y],\n slidesPerView: 1,\n effect: \"fade\",\n fadeEffect: {\n crossFade: true\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n modifierClass: \"thumbnail-pagination-\"\n },\n on: {\n slideChange: (e) => this.onChangeActiveThumbnail(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: {\n enabled: true,\n prevSlideMessage: \"Previous thumbnail item\",\n nextSlideMessage: \"Next thumbnail item\",\n containerMessage: \"Thumbnail slider\",\n containerRoleDescriptionMessage: \"Thumbnail slider\",\n paginationBulletMessage: \"Goto thumbnail slide #{{index}}\",\n slideRole: \"group\",\n slideLabelMessage: \"Thumbnail item {{index}}/{{slidesLength}}\"\n },\n });\n }\n\n private playPauseVideoClickHandler = (event: UIEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n const button = event.currentTarget as HTMLElement;\n const videoWrapper = button.parentElement as HTMLVideoElement;\n\n return videoWrapper.classList.contains(\"playing\")\n ? this.pauseVideo(videoWrapper)\n : this.playVideo(videoWrapper);\n }\n\n private pauseVideo(videoWrapperEl: HTMLElement) {\n const videoEl = videoWrapperEl.querySelector(\"video\") as HTMLVideoElement;\n\n videoEl.pause();\n videoWrapperEl.classList.remove(\"playing\");\n }\n\n private playVideo(videoWrapperEl: HTMLElement) {\n const videoEl = videoWrapperEl.querySelector(\"video\") as HTMLVideoElement;\n let playPromise = videoEl.play();\n\n if (playPromise !== null) {\n playPromise.catch(() => { videoEl.play(); });\n }\n videoWrapperEl.classList.add(\"playing\");\n }\n\n private onChangeActiveProduct(e) {\n if (this.activeProductIndex === e.realIndex) return true;\n this.activeProductIndex = e.realIndex;\n }\n\n private onChangeActiveThumbnail(e) {\n const carousellVideos = e.el.querySelectorAll(\".thumbnail-video-wrap\") as NodeListOf<HTMLElement>;\n carousellVideos.forEach(videoWrapper => this.pauseVideo(videoWrapper));\n\n const videoWrapperEl = e.slides[e.activeIndex].querySelector(\".thumbnail-video-wrap\");\n if (videoWrapperEl) this.playVideo(videoWrapperEl);\n\n return e.realIndex === 0\n ? this.hideHotspots = false\n : this.hideHotspots = true;\n }\n\n private imageLoadedHandler = (e: Event) => {\n if (e.type === \"error\") {\n ((e.currentTarget as HTMLElement).parentNode as HTMLElement).setAttribute(\"not-loaded\", \"\");\n (e.currentTarget as HTMLElement).removeAttribute(\"src\");\n }\n return ((e.currentTarget as HTMLElement).parentNode as HTMLElement).removeAttribute(\"is-loading\");\n }\n\n private btnBuyClickHandler = (e: Event) => {\n return ((e.currentTarget as HTMLElement).previousSibling as HTMLLinkElement).click();\n }\n\n private productBuyClickHandler = (e: Event) => {\n const gaCampaign = (e.currentTarget as HTMLElement).getAttribute(\"data-ga-campaign\");\n if (getUseAnalytics(this.appState)) {\n const category = \"Covet.pics Popup\";\n const action = \"Covet.pics Link Click\";\n const label = \"Covet.pics Link Click - \" + gaCampaign;\n sendToGoogleAnalytics(action, category, label);\n }\n\n const linkId = (e.currentTarget as HTMLElement).getAttribute(\"data-link-id\");\n const beaconData = {\n gallery_item_id: this.pageId,\n product_id: linkId,\n };\n sendBeacon(this.appState, \"grid_link_click\", beaconData);\n }\n\n private carouselImgAltTag(altTag:string, thumbnailAlt: string, idx: number, itemsLength: number) {\n if (altTag && altTag !== null) return altTag;\n return `${thumbnailAlt} slide ${idx + 1}/${itemsLength}`;\n }\n\n private renderUserAndDate() {\n const reviewClass = this.caption !== null && this.thumbnailLayout === \"text\" ? \"text-review\" : \"\";\n const starOnlyClass = this.caption === null && this.thumbnailLayout === \"text\" ? \"star-only\" : \"\";\n return (\n <Fragment>\n <h3 class={`username ${this.reverseClass} ${reviewClass} ${starOnlyClass}`}>{this.userName}</h3>\n {this.userName && this.createdTime && <span class={`slash ${this.reverseClass} ${reviewClass} ${starOnlyClass}`}>/</span>}\n <span class={`created-time ${this.reverseClass} ${reviewClass} ${starOnlyClass}`}>{format(this.createdTime)}</span>\n </Fragment>\n );\n }\n private renderReview() {\n const reviewOnlyClass = this.caption !== null && this.thumbnailLayout === \"text\" ? \"text-review\" : \"\";\n const reviewClass = this.caption !== null && this.thumbnailLayout !== \"text\" ? \"review\" : \"\";\n const starOnlyClass = this.caption === null && this.thumbnailLayout === \"text\" ? \"star-only\" : \"\";\n const videoClass = this.thumbnailLayout === \"video\" ? \"video\" : \"\";\n return (\n <div class={`caption ${this.layout} ${this.productsLayout} ${this.reverseClass} ${reviewOnlyClass} ${starOnlyClass} ${videoClass} ${reviewClass}`}>\n {this.rating > 0 && \n <covet-pics-star-rating \n rating={this.rating} \n starSize={14} \n spaceStars={14} \n emptyStarColor={\"#C1C1C1\"} \n class={\"position-star\"}\n showLabel={false}>\n </covet-pics-star-rating>\n }\n\n <p class={`caption-text ${this.layout} ${this.productsLayout} ${reviewOnlyClass} ${starOnlyClass}`}>{this.caption}</p>\n <div class={`bottom ${this.layout} ${this.reverseClass} ${reviewOnlyClass} ${starOnlyClass} ${reviewClass}`}>\n {this.renderUserAndDate()}\n </div>\n </div>\n );\n }\n private renderStarOnlyReview() {\n const starOnlyClass = this.caption === null && this.thumbnailLayout === \"text\" ? \"star-only\" : \"\";\n return (\n <div class={`caption ${this.layout} ${this.productsLayout} ${starOnlyClass}`}>\n\n <covet-pics-star-rating rating={this.rating} starSize={16} spaceStars={16} emptyStarColor={\"#C1C1C1\"} class={`position-star ${starOnlyClass}`}\n showLabel={false}></covet-pics-star-rating>\n\n <p class={`caption-text ${this.layout} ${this.productsLayout} ${starOnlyClass}`}>{this.caption}</p>\n <div class={`bottom ${this.layout} ${starOnlyClass}`}>\n {this.renderUserAndDate()}\n </div>\n </div>\n );\n }\n\n private renderStandardThumbnail() {\n const hideCaption = this.caption === null || this.caption.length === 0;\n const starOnly = this.caption === null && this.thumbnailLayout === \"text\";\n const showReview = !hideCaption && ((this.appState.settings.show_review && this.thumbnailLayout !== \"text\") || this.thumbnailLayout === \"text\");\n const showHotspotsInLayout = this.layout === \"row\" ? true : this.appState.settings.hotspots.enabled;\n return (\n <div class={`thumbnail ${this.layout} ${this.reverseClass} ${this.productsLayout}`} is-loading={this.thumbnailLayout === \"image\"}>\n {this.thumbnailLayout === \"image\" &&\n <img alt={this.thumbnailAlt} class=\"img-cover\"\n onLoad={this.imageLoadedHandler} onError={this.imageLoadedHandler}\n src={this.pageIndex - 2 < this.mainSliderIndex ? this.thumbnailUrl : null}></img>\n }\n {this.thumbnailLayout === \"video\" &&\n <div class=\"thumbnail-video-wrap\">\n <video playsinline loop class=\"thumbnail-video img-contain\" data-poster={this.videoPoster} title={this.thumbnailAlt}>\n <source src={this.videoUrl} type=\"video/mp4\" />\n </video>\n <button type=\"button\" class=\"thumbnail-video-play\" onClick={this.playPauseVideoClickHandler}></button>\n <button type=\"button\" class=\"thumbnail-video-pause\" onClick={this.playPauseVideoClickHandler}></button>\n </div>\n }\n {showReview && this.renderReview()}\n {starOnly && this.renderStarOnlyReview()}\n {showHotspotsInLayout && this.layout !== \"spotlight\" &&\n <covet-pics-highlighted-hotspots\n links={this.productLinks}\n hoverHotspot={this.hoverHotspot}\n activeHotspot={this.activeProductIndex}\n thumbnailUrl={this.thumbnailUrl}\n isMobile={this.isMobile}\n productBaseImgAlt={this.productBaseImgAlt}\n pageId={this.pageId}\n appStore={this.appStore}\n ></covet-pics-highlighted-hotspots>\n }\n {!this.appState.settings.hide_branding &&\n <a class=\"covet-branding\" href={`https://apps.shopify.com/covet-pics?utm_source=embed&utm_medium=highlight&utm_campaign=${location.host}`} target=\"_blank\" rel=\"noopener\" tabindex=\"0\" aria-label=\"Covet.pics logo link\"></a>\n }\n </div>\n );\n }\n\n private renderCarouselThumbnail() {\n const hideCaption = this.caption === null || this.caption.length === 0;\n const showReview = !hideCaption && this.appState.settings.show_review && this.thumbnailLayout !== \"text\";\n const showHotspotsInLayout = this.layout === \"row\" ? true : this.appState.settings.hotspots.enabled;\n const showHotposts = showHotspotsInLayout && !this.hideHotspots && this.layout !== \"spotlight\";\n return (\n <div class={`thumbnail ${this.layout} ${this.reverseClass} ${this.productsLayout}`}>\n <div class=\"thumbnail-carousel swiper\" role=\"region\">\n <div class=\"swiper-wrapper\">\n {this.thumbnailCarouselImages && this.thumbnailCarouselImages.map((item, idx) =>\n <div class=\"swiper-slide\">\n {item.type === \"image\" &&\n <div class=\"thumbnail-slide-wrap\">\n {/* TODO change standard_resolution to high_resolution */}\n <img src={item.standard_resolution} alt={this.carouselImgAltTag(item.alt_tag, this.thumbnailAlt, idx, this.thumbnailCarouselImages.length)} class=\"img-cover\" loading=\"lazy\" />\n </div>\n }\n {item.type === \"video\" &&\n <div class=\"thumbnail-video-wrap\">\n {/* TODO change standard_resolution to high_resolution, data-poster */}\n <video playsinline loop class=\"thumbnail-video img-contain\">\n <source src={item.standard_resolution} type=\"video/mp4\" />\n </video>\n <button type=\"button\" class=\"thumbnail-video-play\" onClick={this.playPauseVideoClickHandler}></button>\n <button type=\"button\" class=\"thumbnail-video-pause\" onClick={this.playPauseVideoClickHandler}></button>\n </div>\n }\n </div>\n )}\n {showReview && this.renderReview()}\n </div>\n </div>\n {showHotposts &&\n <covet-pics-highlighted-hotspots\n links={this.productLinks}\n hoverHotspot={this.hoverHotspot}\n activeHotspot={this.activeProductIndex}\n thumbnailUrl={this.thumbnailUrl}\n productBaseImgAlt={this.productBaseImgAlt}\n isMobile={this.isMobile}\n pageId={this.pageId}\n appStore={this.appStore}\n ></covet-pics-highlighted-hotspots>\n }\n <div class=\"thumbnail-pagination\"></div>\n {!this.appState.settings.hide_branding &&\n <a class=\"covet-branding\" href={`https://apps.shopify.com/covet-pics?utm_source=embed&utm_medium=highlight&utm_campaign=${location.host}`} target=\"_blank\" rel=\"noopener\" tabindex=\"0\" aria-label=\"Covet.pics logo link\"></a>\n }\n </div>\n );\n }\n\n private renderControlIcon(name: string, direction: string) {\n if (name === \"bracket\")\n return direction === \"next\"\n ? <svg width=\"48px\" height=\"48px\" viewBox=\"0 0 48 48\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g transform=\"translate(-132.000000, -1128.000000)\"><g transform=\"translate(0.000000, 768.000000)\"><g transform=\"translate(132.000000, 360.000000)\"><rect x=\"0\" y=\"0\" width=\"48\" height=\"48\"></rect><polygon fill=\"var(--covet-pics-highlighted-primary-color)\" fill-rule=\"nonzero\" points=\"14.9638554 24 34 4.49382716 33.5180723 4 14 24 33.5180723 44 34 43.5061728\"></polygon></g></g></g></g></svg>\n : <svg width=\"48px\" height=\"48px\" viewBox=\"0 0 48 48\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g transform=\"translate(-1240.000000, -360.000000)\"><g transform=\"translate(1264.000000, 384.000000) scale(-1, 1) translate(-1264.000000, -384.000000) translate(1240.000000, 360.000000)\"><rect x=\"0\" y=\"0\" width=\"48\" height=\"48\"></rect><polygon fill=\"var(--covet-pics-highlighted-primary-color)\" fill-rule=\"nonzero\" points=\"14.9638554 24 34 4.49382716 33.5180723 4 14 24 33.5180723 44 34 43.5061728\"></polygon></g></g></g></svg>;\n\n if (name === \"big-arrow\")\n return direction === \"next\"\n ? <svg class=\"icon-arrow\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18.839 11L10 19.839l8.839 8.839.707-.707-7.681-7.683h19.224v-1H11.965l7.58-7.58L18.84 11z\" fill-rule=\"nonzero\" /></svg>\n : <svg class=\"icon-arrow rotate\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18.839 11L10 19.839l8.839 8.839.707-.707-7.681-7.683h19.224v-1H11.965l7.58-7.58L18.84 11z\" fill-rule=\"nonzero\" /></svg>;\n\n if (name === \"arrow\")\n return direction === \"next\"\n ? <svg class=\"icon-arrow\" viewBox=\"0 0 13 8\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M3.89 7.778V6.364L1.98 4.455h10.957v-1H1.848l2.041-2.04V0L0 3.89l3.89 3.888z\" fill-rule=\"nonzero\" /></svg>\n : <svg class=\"icon-arrow rotate\" viewBox=\"0 0 13 8\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M3.89 7.778V6.364L1.98 4.455h10.957v-1H1.848l2.041-2.04V0L0 3.89l3.89 3.888z\" fill-rule=\"nonzero\" /></svg>;\n return null;\n }\n\n private productImgAltTag(link, idx: number, itemsLength: number) { \n return link.title \n ? `${link.title} product-slide ${idx + 1}/${itemsLength} ${this.productBaseImgAlt}`\n : `product-slide ${idx + 1}/${itemsLength} ${this.productBaseImgAlt}`;\n }\n\n private renderSlider() {\n if (this.productLinks === undefined || this.productLinks.length === 0) return null;\n let controlType = \"arrow\";\n if (this.productsLayout === \"layout-3\") controlType = \"big-arrow\";\n if (this.productsLayout === \"layout-4\") controlType = \"bracket\";\n\n const spotlightSliderClass = `slides-count-${this.productLinks.length > 2 ? 3 : this.productLinks.length}`;\n const noPaginationClass = this.productLinks.length === 1 && this.layout === \"slider\"\n ? \"no-pagination\"\n : \"\";\n\n let showNav = this.productLinks.length > 1;\n if (this.productsLayout === \"layout-3\" && this.productLinks.length < 3) showNav = false;\n if (this.productsLayout === \"layout-4\" && this.productLinks.length < 4 && !this.isMobile) showNav = false;\n\n return (\n <div class={`product ${this.productsLayout} ${this.reverseClass} ${spotlightSliderClass}`}>\n {!this.appState.settings.popup_products_title_disabled && <h2 class={`main-title ${this.productsLayout}`}>{this.appState.settings.popup_products_title}</h2>}\n <section class={`slider swiper ${this.productsLayout} ${this.productLinks.length > 1 ? \"active\" : \"disabled\"} ${spotlightSliderClass}`}>\n <div class=\"swiper-wrapper\">\n {this.productLinks && this.productLinks.map((link, idx) =>\n <div class=\"swiper-slide\">\n <a href={link.link} class=\"product-link\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n <div class={`img-wrap ${this.productsLayout}`} is-loading>\n <img class=\"img-contain\" alt={this.productImgAltTag(link, idx, this.productLinks.length)} loading=\"lazy\"\n src={this.pageIndex - 2 < this.mainSliderIndex ? link.image : null} onLoad={this.imageLoadedHandler} onError={this.imageLoadedHandler} />\n </div>\n <p class={`title ${this.productsLayout} ${this.reverseClass} ${!this.appState.settings.show_price ? \"price-hidden\" : \"\"}`}>{link.title}</p>\n {this.appState.settings.show_price && link.prices && link.prices.price_label &&\n <p class={`price ${this.productsLayout} ${this.reverseClass}`} innerHTML={link.prices.price_label}></p>}\n </a>\n <button class={`btn-buy ${this.productsLayout} ${this.reverseClass} ${noPaginationClass}`} onClick={this.btnBuyClickHandler}\n aria-label={this.appState.settings.popup_products_button_caption} type=\"button\">{this.appState.settings.popup_products_button_caption}</button>\n </div>)}\n </div>\n </section>\n {showNav &&\n <div class={`nav ${this.productsLayout} ${this.reverseClass}`}>\n <button class={`${this.productsLayout} slider-control ${this.productsLayout !== \"layout-3\" ? \"small\" : \"\"} next`} type=\"button\">\n {this.renderControlIcon(controlType, \"next\")}\n </button>\n <div class=\"pagination\"></div>\n <button class={`${this.productsLayout} slider-control ${this.productsLayout !== \"layout-3\" ? \"small\" : \"\"} prev`} type=\"button\">\n {this.renderControlIcon(controlType, \"prev\")}\n </button>\n </div>}\n </div>\n );\n }\n\n private renderBottomSlider() {\n if (this.productLinks === undefined || this.productLinks.length === 0) return null;\n const noPaginationClass = this.productLinks.length === 1 && this.layout === \"slider\"\n ? \"no-pagination\"\n : \"\";\n return (\n <div class={`product ${this.productsLayout}`} >\n <section class={`slider swiper ${this.productsLayout} ${this.productLinks.length > 1 ? \"active\" : \"disabled\"}`}\n role=\"region\" aria-label=\"product thumbnail image preview for product slider\">\n <div class=\"swiper-wrapper\">\n {this.productLinks.map((link, idx) =>\n <div class=\"swiper-slide\">\n <a href={link.link} class=\"product-link height-full\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n <div class={`img-wrap ${this.productsLayout}`} is-loading>\n <img class=\"img-contain\" alt={this.productImgAltTag(link, idx, this.productLinks.length)} loading=\"lazy\"\n src={this.pageIndex - 2 < this.mainSliderIndex ? link.image : null} onLoad={this.imageLoadedHandler} onError={this.imageLoadedHandler} />\n </div>\n </a>\n </div>)}\n </div>\n </section>\n <div class=\"description\">\n <section class={`slider-description swiper ${this.productLinks.length > 1 ? \"active\" : \"disabled\"}`}>\n <div class=\"swiper-wrapper\">\n {this.productLinks.map(link =>\n <div class=\"swiper-slide\">\n <a href={link.link} class=\"product-link\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n {!this.appState.settings.popup_products_title_disabled && <h2 class={`main-title ${this.productsLayout}`}>{this.appState.settings.popup_products_title}</h2>}\n <p class={`title ${this.productsLayout} ${!this.appState.settings.show_price ? \"price-hidden\" : \"\"}`}>{link.title}</p>\n {this.appState.settings.show_price && link.prices && link.prices.price_label &&\n <p class={`price ${this.productsLayout}`} innerHTML={link.prices.price_label}></p>}\n </a>\n <button class={`btn-buy ${this.productsLayout} ${noPaginationClass}`} onClick={this.btnBuyClickHandler}\n aria-label={this.appState.settings.popup_products_button_caption} type=\"button\">{this.appState.settings.popup_products_button_caption}</button>\n </div>)}\n </div>\n </section>\n {this.productLinks.length > 1 &&\n <div class={`nav ${this.productsLayout} nav`}>\n <button class={`${this.productsLayout} slider-control next small`} aria-label=\"slider-control prev\" type=\"button\">\n {this.renderControlIcon(\"arrow\", \"next\")}\n </button>\n <div class=\"pagination\"></div>\n <button class={`${this.productsLayout} slider-control prev small`} aria-label=\"slider-control next\" type=\"button\">\n {this.renderControlIcon(\"arrow\", \"prev\")}\n </button>\n </div>}\n </div>\n </div>\n );\n }\n\n private renderMobileSlider() {\n if (this.productLinks === undefined || this.productLinks.length === 0) return null;\n const sliderNotActive = this.productLinks.length === 1\n ? \"slider-no-active\"\n : \"\";\n return (\n <div class={`product mobile ${this.layout} ${this.productsLayout} ${sliderNotActive}`}>\n <section class={`slider mobile swiper ${this.productsLayout}`}\n role=\"region\" aria-label=\"product slider\">\n <div class=\"swiper-wrapper\">\n {this.productLinks && this.productLinks.map((link, idx) =>\n <div class=\"swiper-slide mobile\">\n <a href={link.link} class=\"product-link\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n <div class={`img-wrap mobile ${this.productsLayout} `} is-loading>\n <img class=\"img-cover\" alt={this.productImgAltTag(link, idx, this.productLinks.length)} loading=\"lazy\"\n src={this.pageIndex - 2 < this.mainSliderIndex ? link.image : null} onLoad={this.imageLoadedHandler} onError={this.imageLoadedHandler} />\n </div>\n </a>\n <div class=\"description mobile\">\n <a href={link.link} class=\"product-link\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n <p class={`title mobile ${this.productsLayout} ${this.reverseClass}`}>{link.title}</p>\n {link.prices && link.prices.price_label &&\n <p class={`price mobile ${this.productsLayout} ${this.reverseClass}`} innerHTML={link.prices.price_label}></p>}\n </a>\n <button class={`btn-buy mobile ${this.productsLayout} ${this.reverseClass}`} onClick={this.btnBuyClickHandler}\n aria-label={this.appState.settings.popup_products_button_caption} type=\"button\">{this.appState.settings.popup_products_button_caption}</button>\n </div>\n </div>)}\n </div>\n </section>\n </div>\n );\n }\n\n render() {\n return (\n <Host class={\"page\"} role=\"group\" aria-label={this.ariaLabel}>\n {this.thumbnailLayout === \"carousel\" ? this.renderCarouselThumbnail() : this.renderStandardThumbnail()}\n {this.layout !== \"row\" && !this.isMobile &&\n <div class={`products ${this.layout} ${this.productsLayout} ${this.reverseClass}`}>\n {this.productsLayout === \"layout-2\" ? this.renderBottomSlider() : this.renderSlider()}\n </div>}\n {this.isMobile &&\n <div class={`products ${this.layout} ${this.productsLayout} ${this.reverseClass}`}>\n {this.renderMobileSlider()}\n </div>\n }\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"covet-pics-highlighted-hotspots.covet-pics-highlighted-page.entry.cjs.js","mappings":"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","names":["getSlideTransformEl","elementTransitionEnd","getSize","getUseAnalytics","sendToGoogleAnalytics","sendBeacon","h","Host","index","slider","Swiper","A11y","swiperUpdateTabIndex","Navigation","Pagination","Fragment","format"],"sources":["node_modules/swiper/shared/effect-init.js","node_modules/swiper/shared/effect-target.js","node_modules/swiper/shared/effect-virtual-transition-end.js","node_modules/swiper/modules/effect-fade/effect-fade.js","src/components/covet-pics-highlighted/covet-pics-highlighted-hotspots.scss?tag=covet-pics-highlighted-hotspots","src/components/covet-pics-highlighted/covet-pics-highlighted-hotspots.tsx","src/components/covet-pics-highlighted/covet-pics-highlighted-page.scss?tag=covet-pics-highlighted-page","src/components/covet-pics-highlighted/covet-pics-highlighted-page.tsx"],"sourcesContent":["export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","import { getSlideTransformEl } from './utils.js';\nexport default function effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}","import { elementTransitionEnd } from './utils.js';\nexport default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides\n}) {\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowEl && slideEl.shadowEl === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}",".hotspots {\n position: absolute;\n width: 100%;\n height: 100%;\n z-index: 2;\n pointer-events: none;\n}\n\n.hotspot {\n display: inline-block;\n width: 48px;\n height: 48px;\n border-radius: 50%;\n position: absolute;\n outline: none !important;\n visibility: visible;\n pointer-events: initial;\n &:after {\n content: \"\";\n position: absolute;\n width: 16px;\n height: 16px;\n transition: all 0.2s ease-out;\n display: inline-block;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--covet-pics-highlighted-hotspot-bg-color);\n border-radius: 50%;\n }\n &:before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n border-radius: 50%;\n will-change: transform;\n background-color: var(--covet-pics-highlighted-hotspot-bg-color);\n opacity: 0.3;\n }\n // &:hover, &:active, &:focus, &.active {\n &.active {\n &:before {\n animation: pulsateZoom 1.2s ease-in-out infinite;\n }\n }\n &.active.show-content {\n .content {\n z-index: 1;\n visibility: visible;\n // transform: translate(-50%, 8px) scale(1); // hover with scale\n }\n .content-animation {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .content {\n display: block;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: center center;\n z-index: -1;\n visibility: hidden;\n }\n\n .content-animation {\n display: block;\n height: 100%;\n width: 240px;\n transition: all 0.3s ease-out;\n position: relative;\n transform: translateY(8px);\n transform-origin: center center;\n padding: 24px;\n background-color: var(--covet-pics-highlighted-background-color);\n box-sizing: border-box;\n overflow: hidden;\n border-radius: 2px;\n box-shadow: 4px 8px 24px 0px rgba(132,132,132, 0.2);\n opacity: 0;\n &.hotspot-short {\n width: 320px;\n display: flex;\n justify-content: flex-start;\n padding: 16px;\n border-radius: 2px;\n }\n }\n\n .description {\n display: block;\n &.hotspot-short {\n width: calc(100% - 16px * 2 - 16px);\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n }\n \n .main-title {\n width: 144px;\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n font-size: 16px;\n line-height: 22px;\n font-weight: 400;\n color: var(--covet-pics-highlighted-primary-color);\n margin-bottom: 16px;\n text-transform: uppercase;\n }\n\n .img-wrap {\n height: 144px;\n width: 144px;\n position: relative;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 16px;\n flex: none;\n &.hotspot-short {\n width: 88px;\n height: 88px;\n margin-right: 16px;\n margin-bottom: 0;\n }\n }\n .img {\n width: 100%;\n object-fit: cover;\n }\n\n .title {\n width: 100%;\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n font-size: 14px;\n text-transform: uppercase;\n font-weight: 400;\n line-height: 19px;\n color: var(--covet-pics-highlighted-secondary-color);\n margin-bottom: 8px;\n &.hotspot-short {\n font-size: 14px;\n line-height: 1;\n width: calc(320px - 88px - 16px * 3);\n text-align: left;\n }\n }\n\n .price {\n text-align: center;\n font-size: 14px;\n text-transform: uppercase;\n color: var(--covet-pics-highlighted-primary-color);\n font-size: 14px;\n line-height: 19px;\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n margin-bottom: 16px;\n &.hotspot-short {\n margin-bottom: 0;\n width: calc(320px - 88px - 16px * 3);\n text-align: left;\n }\n }\n\n .btn-buy {\n font-family: var(--covet-pics-font-family);\n display: block;\n line-height: 1;\n padding: 15px 15px;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n font-size: 12px;\n text-transform: uppercase;\n text-align: center;\n cursor: pointer;\n background-color: transparent;\n border: 1px solid var(--covet-pics-highlighted-primary-color);\n color: var(--covet-pics-highlighted-primary-color);\n margin-bottom: 0;\n transition: all 0.4s ease;\n outline: none !important;\n &:hover, &:active, &:focus, &.active {\n border: 1px solid var(--covet-pics-highlighted-primary-color);\n color: var(--covet-pics-highlighted-background-color);\n background-color: var(--covet-pics-highlighted-primary-color);\n }\n &.hotspot-short {\n margin-top: auto;\n border: none;\n width: auto;\n padding: 0 0 8px 0;\n font-size: 14px;\n position: relative;\n overflow: hidden;\n margin-left: 0;\n &:after {\n content: '';\n position: absolute;\n display: block;\n bottom: 0;\n left: 50%;\n width: 100%;\n height: 1px;\n transform: translateX(-50%);\n transition: all 0.4s ease;\n background-color: var(--covet-pics-highlighted-primary-color);\n }\n &:hover, &:active, &:focus, &.active {\n border: none;\n background-color: transparent;\n color: var(--covet-pics-highlighted-primary-color);\n &:after {\n transform: translateX(-50%);\n width: 80%;\n }\n }\n }\n }\n}\n\n@keyframes pulsateZoom {\n 0% {\n transform: scale(1);\n }\n \n 50% {\n transform: scale(1.2);\n }\n\n 100% {\n transform: scale(1);\n }\n}","import { Component, Element, h, Host, Prop, Event, EventEmitter, Watch } from \"@stencil/core\";\nimport { AppStateType, AppStoreType, getSize } from \"../../utils/utils\";\nimport { getUseAnalytics } from \"../../store/getters\";\nimport { sendToGoogleAnalytics } from \"../../utils/utils\";\nimport { sendBeacon } from \"../../store/storeUtils\";\nimport { Unsubscribe } from \"../../utils/types\";\n\n@Component({\n tag: \"covet-pics-highlighted-hotspots\",\n styleUrl: \"covet-pics-highlighted-hotspots.scss\"\n})\n\nexport class CovetPicsHiglghtedHotspots {\n @Element() el: HTMLCovetPicsHighlightedHotspotsElement;\n\n /**\n * array of links (product & custom links)\n */\n @Prop() links: Array<any> = [];\n\n /**\n * Active hotspot (index)\n */\n @Prop() activeHotspot: number = 0;\n\n /**\n * watch thumbnail url change in slider mode\n */\n @Prop() thumbnailUrl: string;\n\n /**\n * activate circle animation on hoverto product (-1 all off)\n */\n @Prop() hoverHotspot: number = -1;\n\n /**\n * current view is for mobile devices\n */\n @Prop() isMobile: boolean;\n\n /**\n * productBaseImgAlt\n */\n @Prop() productBaseImgAlt: string;\n\n /**\n * page id\n */\n @Prop() pageId: number\n\n /**\n * App store\n */\n @Prop() appStore: AppStoreType;\n\n // App state;\n private appState: AppStateType;\n private unsubscribe: Unsubscribe;\n private layout: string; // short var name (hotspot-tall or hotspot-short)\n private pageLayout: string; // short var name (hotspot-tall or hotspot-short)\n\n /**\n * Emitted when changed active hotspot to change active slide\n */\n @Event() changeActiveHotspot: EventEmitter;\n\n @Watch(\"thumbnailUrl\")\n refreshHotspot(newUrl: string, oldUrl: string) {\n if (newUrl !== oldUrl) {\n this.clearAllActiveHotspot();\n this.clearAllActiveHotspotContent();\n if (this.pageLayout === \"row\") this.setPositionAllHotspotContent();\n }\n }\n\n @Watch(\"activeHotspot\")\n activeHotspotHandler(newIndex: number, oldIndex: number) {\n if (newIndex === oldIndex) return true;\n this.setActiveHotspot(newIndex);\n }\n\n componentWillLoad() {\n this.initStore();\n }\n\n componentDidLoad() {\n if (this.pageLayout === \"row\") this.setPositionAllHotspotContent();\n }\n\n componentDidRender() {\n if (this.pageLayout !== \"row\") this.setActiveHotspot(this.activeHotspot);\n }\n\n disconnectedCallback() {\n this.unsubscribe();\n }\n\n private initStore() {\n this.appState = this.appStore.getState();\n this.layout = this.appState.settings.highlight_hotspots_layout;\n this.pageLayout = this.appState.settings.highlight_layout;\n this.unsubscribe = this.appStore.subscribe(() => {\n this.appState = this.appStore.getState();\n this.layout = this.appState.settings.highlight_hotspots_layout;\n this.pageLayout = this.appState.settings.highlight_layout;\n });\n }\n\n private getPositionForLink(link) {\n return {\n \"left\": (link.position_x * 100).toString() + \"%\",\n \"top\": (link.position_y * 100).toString() + \"%\"\n };\n }\n\n private setPositionForLinkContent(link: HTMLElement) {\n const parent: HTMLElement = link.parentElement;\n const content: HTMLElement = link.querySelector(\".content\");\n\n const space = 8; // space between circle and content\n const circleSize = getSize(link, \"width\");\n\n const centerX = getSize(link, \"x\") - getSize(parent, \"x\") + circleSize / 2;\n\n const minX = getSize(parent, \"x\");\n const minY = getSize(parent, \"y\");\n const maxX = getSize(parent, \"x\") + getSize(parent, \"width\");\n const maxY = getSize(parent, \"y\") + getSize(parent, \"height\");\n\n const delta = circleSize / 2 + space;\n\n const needFixShortLeft = minX - (getSize(link, \"x\") + circleSize / 2 - getSize(content, \"width\") / 2);\n const needFixShortRight = getSize(link, \"x\") + circleSize / 2 + getSize(content, \"width\") / 2 - maxX;\n\n const needFixLeft = minX - (getSize(link, \"x\") - space - getSize(content, \"width\"));\n const needFixRight = getSize(link, \"x\") + circleSize + space + getSize(content, \"width\") - maxX;\n const needFixTop = minY - (getSize(link, \"y\") - space - getSize(content, \"height\"));\n const needFixBottom = getSize(link, \"y\") + circleSize + space + getSize(content, \"height\") - maxY;\n\n const canShowOnVertical = getSize(content, \"height\") + 2 * space < getSize(parent, \"height\");\n\n // show standard\n if (needFixBottom < 0 && needFixShortLeft < 0 && needFixShortRight < 0) {\n content.style.transform = `translate(-50%, calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`;\n return content;\n }\n\n // TODO add exception if no horizontal space to show\n // show on bottom with fix\n if (needFixBottom < 0) {\n // console.log('needFixBottom < 0: ');\n centerX < getSize(parent, \"width\") / 2\n ? content.style.transform = `translate(calc(-50% + ${needFixShortLeft + space}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`\n : content.style.transform = `translate(calc(-50% - ${needFixShortRight + space}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`;\n // content.style.transform = `translate(calc(-50% - ${getSize(content, 'width') / 2 + delta}px), calc(-50% + ${getSize(content, 'height') / 2 + delta - space}px - ${needFixBottom}px)`;\n return content;\n }\n\n // can't show on bottom but possible on both side (left & right)\n if (needFixBottom > 0 && needFixLeft < 0 && needFixRight < 0 && canShowOnVertical) {\n // console.log('needFixBottom > 0 && needFixLeft < 0 && needFixRight < 0');\n centerX < getSize(parent, \"width\") / 2\n ? content.style.transform = `translate(calc(-50% + ${getSize(content, \"width\") / 2 + delta}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta - space}px - ${needFixBottom}px)`\n : content.style.transform = `translate(calc(-50% - ${getSize(content, \"width\") / 2 + delta}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta - space}px - ${needFixBottom}px)`;\n return content;\n }\n\n // can't show on bottom but possible on left\n if (needFixBottom > 0 && needFixLeft < 0 && canShowOnVertical) {\n // console.log('needFixBottom > 0 && needFixLeft < 0 && needFixRight < 0');\n content.style.transform = `translate(calc(-50% - ${getSize(content, \"width\") / 2 + delta}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta - space}px - ${needFixBottom}px)`;\n return content;\n }\n\n // can't show on bottom but possible on right\n if (needFixBottom > 0 && needFixRight < 0 && canShowOnVertical) {\n // console.log('needFixBottom > 0 && needFixLeft < 0 && needFixRight < 0');\n content.style.transform = `translate(calc(-50% + ${getSize(content, \"width\") / 2 + delta}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta - space}px - ${needFixBottom}px)`;\n return content;\n }\n\n // can't show on bottom, left, right\n if (needFixBottom > 0 && needFixLeft > 0 && needFixRight > 0 && needFixTop < 0) {\n content.style.transform = `translate(-50%, calc(-50% - ${getSize(content, \"height\") / 2 + space}px)`;\n if (centerX < getSize(parent, \"width\") / 2 && needFixLeft) {\n content.style.transform = `translate(calc(-50% + ${needFixShortLeft + space}px), calc(-50% - ${getSize(content, \"height\") / 2 + delta}px)`;\n }\n if (centerX > getSize(parent, \"width\") / 2 && needFixRight) {\n content.style.transform = `translate(calc(-50% - ${needFixShortRight + space}px), calc(-50% - ${getSize(content, \"height\") / 2 + delta}px)`;\n }\n return content;\n }\n\n // if can't possible to show in all direction - show in standard mode\n content.style.transform = `translate(-50%, calc(-50% + ${getSize(content, \"height\") / 2 + delta}px`;\n if (centerX < getSize(parent, \"width\") / 2) {\n needFixShortLeft > 0\n ? content.style.transform = `translate(calc(-50% + ${needFixShortLeft + space}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`\n : content.style.transform = `translate(-50%, calc(-50% + ${getSize(content, \"height\") / 2 + delta}px`;\n } else {\n needFixShortRight > 0\n ? content.style.transform = `translate(calc(-50% - ${needFixShortRight + space}px), calc(-50% + ${getSize(content, \"height\") / 2 + delta}px)`\n : content.style.transform = `translate(-50%, calc(-50% + ${getSize(content, \"height\") / 2 + delta}px`;\n }\n return content;\n }\n\n private mouseClickHandler(e: MouseEvent, index: number) {\n if (this.isMobile && this.pageLayout !== \"row\" && index !== this.activeHotspot)\n return this.mouseEnterHandler(e, index);\n if (this.isMobile && this.pageLayout === \"row\" && !(e.currentTarget as HTMLElement).classList.contains(\"active\"))\n return this.mouseEnterHandler(e, index);\n \n const gaCampaign = (e.currentTarget as HTMLElement).getAttribute(\"data-ga-campaign\");\n if (getUseAnalytics(this.appState)) {\n const category = \"Covet.pics Popup\";\n const action = \"Covet.pics Link Click\";\n const label = \"Covet.pics Link Click - \" + gaCampaign;\n sendToGoogleAnalytics(action, category, label);\n }\n \n const linkId = (e.currentTarget as HTMLElement).getAttribute(\"data-link-id\");\n const beaconData = {\n gallery_item_id: this.pageId,\n product_id: linkId,\n };\n sendBeacon(this.appState, \"grid_link_click\", beaconData);\n \n return null;\n }\n\n private mouseEnterHandler(e: MouseEvent, index: number) {\n e.preventDefault();\n e.stopPropagation();\n this.clearAllActiveHotspot();\n this.setActiveHotspot(index);\n\n if (this.pageLayout === \"row\")\n this.setPositionForLinkContent(this.el.querySelectorAll(\".hotspot\")[index] as HTMLElement);\n\n if (index !== this.activeHotspot) this.changeActiveHotspot.emit(index);\n return (e.currentTarget as HTMLElement).classList.add(\"active\", \"show-content\");\n }\n private mouseLeaveHandler(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n return this.clearAllActiveHotspotContent();\n }\n\n private clearAllActiveHotspot() {\n return this.el.querySelectorAll(\".hotspot\").forEach(link => {\n link.classList.remove(\"active\");\n });\n }\n\n private clearAllActiveHotspotContent() {\n return this.el.querySelectorAll(\".hotspot\").forEach(link => {\n this.setContentHidden(link, true);\n link.classList.remove(\"show-content\");\n });\n }\n\n private setActiveHotspot(index: number) {\n if (this.el.querySelectorAll(\".hotspot\").length < index + 1) return true;\n this.clearAllActiveHotspot();\n const activeHotspot = this.el.querySelectorAll(\".hotspot\")[index];\n this.setContentHidden(activeHotspot, false);\n return activeHotspot.classList.add(\"active\");\n }\n\n private setContentHidden(link: Element, hidden: boolean) {\n const hotspotContent = link.querySelector(\".content\");\n if (hotspotContent === null) return false;\n return hotspotContent.setAttribute(\"aria-hidden\", `${hidden}`);\n }\n\n private setPositionAllHotspotContent() {\n const hotspots: NodeListOf<HTMLElement> = this.el.querySelectorAll(\".hotspot\");\n hotspots.forEach(link => this.setPositionForLinkContent(link));\n return hotspots.forEach(link => this.setPositionForLinkContent(link));\n }\n\n private imgAlt(link, idx: number, itemsLength: number) { \n return link.title \n ? `${link.title} product-slide ${idx + 1}/${itemsLength} ${this.productBaseImgAlt}`\n : `product-slide ${idx + 1}/${itemsLength} ${this.productBaseImgAlt}`;\n }\n\n render() {\n return (\n <Host class=\"hotspots\">\n {this.links.map((link, index) =>\n <a\n href={link.link}\n class={`hotspot ${this.layout} ${this.hoverHotspot === index ? \"hover-animate\" : \"\"}`}\n style={this.getPositionForLink(link)}\n data-ga-campaign={link.title} data-link-id={link.id}\n onClick={(e: MouseEvent) => this.mouseClickHandler(e, index)}\n onMouseEnter={(e: MouseEvent) => !this.isMobile ? this.mouseEnterHandler(e, index) : null}\n onFocusin={(e: MouseEvent) => !this.isMobile ? this.mouseEnterHandler(e, index) : null}\n onMouseLeave={(e: MouseEvent) => !this.isMobile ? this.mouseLeaveHandler(e) : null}\n onFocusout={(e: MouseEvent) => !this.isMobile ? this.mouseLeaveHandler(e) : null}\n aria-label={`${link.title ? link.title : \"product link\"}`}\n >\n {this.pageLayout === \"row\" &&\n <div class=\"content\" aria-hidden=\"true\">\n <div class={`content-animation ${this.layout}`}>\n {this.layout === \"hotspot-tall\" &&\n <h3 class={`main-title ${this.layout}`}>{this.appState.settings.popup_products_title}</h3>}\n <div class={`img-wrap ${this.layout}`}>\n <img src={link.image} alt={this.imgAlt(link, index, this.links.length)} class=\"img\" />\n </div>\n <div class={`description ${this.layout}`}>\n <h4 class={`title ${this.layout}`}>{link.title}</h4>\n {link.prices && link.prices.price_label &&\n <p class={`price ${this.layout}`} innerHTML={link.prices.price_label}></p>}\n <button class={`btn-buy ${this.layout}`} aria-label={this.appState.settings.popup_products_button_caption} type=\"button\">\n {this.appState.settings.popup_products_button_caption}\n </button>\n </div>\n </div>\n </div>\n }\n </a>\n )}\n </Host>\n );\n }\n}\n","// highlighted-page\n$color-black: #101010;\n$color-gray: #848484;\n$color-overlay-gray: #DFE3E8;\n$color-overlay-gray-lite: #F9FAFB; \n\n@import \"covet-pics-highlighted-page-thumbnail.scss\";\n@import \"covet-pics-highlighted-page-products.scss\";\n\n\ncovet-pics-highlighted-page {\n width: 100%;\n display: flex;\n height: 100vh;\n height: calc(var(--covet-pics-highlighted-window-height, 1vh) * 100);\n box-sizing: border-box;\n padding: var(--covet-pics-highlighted-padding);\n @media only screen and (max-width : 799.98px) {\n padding: 0;\n }\n &.spotlight {\n padding: 0;\n flex-wrap: wrap;\n height: 100%;\n }\n &.zigzag {\n position: relative;\n &:not(:first-of-type) {\n .thumbnail .covet-branding {\n display: none;\n }\n }\n @media only screen and (max-width : 799.98px) {\n height: auto; \n flex-wrap: wrap;\n }\n }\n &.row {\n height: calc(90vh - var(--covet-pics-highlighted-padding-px));\n height: calc(var(--covet-pics-highlighted-window-height, 1vh) * 90 - var(--covet-pics-highlighted-padding-px));\n padding: 0;\n width: 100%;\n &:not(:first-of-type) {\n .thumbnail .covet-branding {\n display: none;\n }\n }\n @media only screen and (max-width : 799.98px) {\n width: 100%;\n height: 90vh;\n height: calc(var(--covet-pics-highlighted-window-height, 1vh) * 90);\n }\n }\n &.slider {\n padding: 0;\n @media only screen and (max-width : 799.98px) {\n flex-wrap: wrap;\n }\n }\n}\n// highlighted-page END","import { Component, Element, h, Host, Prop, Listen, State } from \"@stencil/core\";\nimport Swiper, { Navigation, Pagination, EffectFade, A11y } from \"swiper\";\nimport Fragment from \"../../utils/fragment\";\nimport { format } from \"timeago.js\";\nimport { AppStateType, AppStoreType } from \"../../utils/utils\";\nimport { getUseAnalytics } from \"../../store/getters\";\nimport { sendToGoogleAnalytics } from \"../../utils/utils\";\nimport { sendBeacon } from \"../../store/storeUtils\";\nimport { swiperUpdateTabIndex } from \"../../utils/slider\";\nimport { Unsubscribe } from \"../../utils/types\";\n\n\n@Component({\n tag: \"covet-pics-highlighted-page\",\n styleUrl: \"covet-pics-highlighted-page.scss\"\n})\n\nexport class CovetPicsHighlightedPage {\n @Element() el: HTMLCovetPicsHighlightedPageElement;\n\n /**\n * URL to the image that will be thumbnail\n */\n @Prop() thumbnailUrl: string;\n\n /**\n * ALT for the image that will be thumbnail\n */\n @Prop() thumbnailAlt: string;\n\n /**\n * gallery item aria-label for accessability\n */\n @Prop() ariaLabel: string = null;\n\n /**\n * Thumbnail layout (imge, carousel, video)\n */\n @Prop() thumbnailLayout: string = \"image\";\n\n /**\n * video url\n */\n @Prop() videoUrl: string;\n\n /**\n * video poster images\n */\n @Prop() videoPoster: string;\n\n /**\n * Thumbnail carousel\n */\n @Prop() thumbnailCarouselImages: Array<any>;\n\n /**\n * Layout type for products\n */\n @Prop() productLinks: Array<any>;\n\n /**\n * Base Img Alt for Product\n */\n @Prop() productBaseImgAlt: string;\n\n /**\n * reverseClass for checkerboard order layout (\"\" or \"reverse\" value)\n */\n @Prop() reverseClass: string = \"\";\n\n /**\n * current view is for mobile devices\n */\n @Prop() isMobile: boolean = false;\n\n /**\n * page index in slider layout (main slider)\n */\n @Prop() pageIndex: number = -1;\n\n /**\n * Caption text (comment)\n */\n @Prop() caption: string = \"\";\n\n /**\n * Star rating\n */\n @Prop() rating: number = 0;\n \n /**\n * Created time\n */\n @Prop() createdTime: string;\n /**\n * User name\n */\n @Prop() userName: string;\n\n /**\n * active page index in slider layout (main slider)\n */\n @Prop() mainSliderIndex: number = 0;\n\n /**\n * page id\n */\n @Prop() pageId: number;\n\n /**\n * App store\n */\n @Prop() appStore: AppStoreType;\n\n // App state;\n private appState: AppStateType;\n private unsubscribe: Unsubscribe;\n private productsLayout: string; // short var name (layout-1)\n private layout: string; // short var name (slider, zigzag, spotlight, row)\n\n @State() hideHotspots: boolean = false;\n\n @Listen(\"changeActiveHotspot\")\n onChangeActiveHotspot(event: CustomEvent) {\n if (event.detail === undefined || event.detail === null || this.productSlider === undefined) return true;\n if (this.layout === \"row\") return true;\n if (event.detail === this.productSlider.realIndex) return true;\n return this.additionalProductSlider === null\n ? this.productSlider.slideToLoop(event.detail)\n : this.additionalProductSlider.slideToLoop(event.detail), this.productSlider.slideToLoop(event.detail);\n }\n\n /**\n * product slider\n */\n private productSlider;\n\n /**\n * thumbnail carousel (swiper slider for thumbnail)\n */\n private thumbnailCarousel;\n\n /**\n * additional product slider\n */\n private additionalProductSlider = null;\n\n @State() activeProductIndex: number = 0;\n\n @State() hoverHotspot: number = 0;\n\n componentWillLoad() {\n this.initStore();\n }\n\n componentDidLoad() {\n // lazy init for product slider inside slider layout (main slider)\n if (this.pageIndex - 2 < this.mainSliderIndex && this.layout !== \"row\") this.initSwiper();\n // lazy init for thumbnail carousel inside slider layout (main slider)\n if (this.pageIndex - 2 < this.mainSliderIndex && this.thumbnailLayout === \"carousel\") this.initThumbnailCarousel();\n }\n\n componentDidUpdate() {\n if (this.layout !== \"row\" && this.productSlider && this.productSlider.destroyed === true) this.initSwiper();\n\n // lazy init for product slider inside slider layout (main slider)\n if (this.layout !== \"row\" && !this.productSlider && this.pageIndex - 2 < this.mainSliderIndex) {\n this.initSwiper();\n }\n // lazy init for thumbnail carousel inside slider layout (main slider)\n if (this.pageIndex - 2 < this.mainSliderIndex && this.thumbnailLayout === \"carousel\" && !this.thumbnailCarousel) {\n this.initThumbnailCarousel();\n }\n // autopause all video files inside thumbnail\n if (this.pageIndex !== this.mainSliderIndex && this.layout !== \"row\") {\n const carousellVideos = this.el.querySelectorAll(\".thumbnail .thumbnail-video-wrap\") as NodeListOf<HTMLElement>;\n carousellVideos.forEach(videoWrapper => this.pauseVideo(videoWrapper));\n }\n }\n\n // eslint-disable-next-line @stencil/own-methods-must-be-private\n componentShouldUpdate(oldValue: any, newValue: any, name: any) {\n if (oldValue !== newValue && name === \"thumbnailUrl\") {\n this.productSlider.destroy();\n if (this.additionalProductSlider !== null) this.additionalProductSlider.destroy();\n this.activeProductIndex = 0;\n }\n\n if (name === \"isMobile\") this.productSlider.destroy();\n if (name === \"isMobile\" && this.additionalProductSlider !== null)\n this.additionalProductSlider.destroy();\n }\n\n disconnectedCallback() {\n this.unsubscribe();\n }\n\n private initStore() {\n this.appState = this.appStore.getState();\n this.layout = this.appState.settings.highlight_layout;\n this.productsLayout = this.appState.settings.highlight_products_layout;\n this.unsubscribe = this.appStore.subscribe(() => {\n this.layout = this.appState.settings.highlight_layout;\n this.productsLayout = this.appState.settings.highlight_products_layout;\n this.appState = this.appStore.getState();\n });\n }\n\n private initSwiper() {\n if (this.productLinks === undefined) return true;\n if (this.productLinks.length < 2) return true;\n if (this.productsLayout === \"layout-3\" && this.productLinks.length < 3 && !this.isMobile) return true;\n if (this.productsLayout === \"layout-4\" && this.productLinks.length < 4 && !this.isMobile) return true;\n\n const slider = this.el.querySelector(\".product .slider\") as HTMLElement;\n const nextEl = this.el.querySelector(\".product .slider-control.prev\") as HTMLElement;\n const prevEl = this.el.querySelector(\".product .slider-control.next\") as HTMLElement;\n\n const a11ySettings = {\n enabled: true,\n prevSlideMessage: \"Previous product\",\n nextSlideMessage: \"Next product\",\n containerMessage: \"Product slider\",\n containerRoleDescriptionMessage: \"Product slider\",\n paginationBulletMessage: \"Goto product #{{index}}\",\n slideRole: \"group\",\n slideLabelMessage: \"Product item {{index}}/{{slidesLength}}\"\n };\n\n if (this.isMobile && this.layout === \"zigzag\") {\n return this.productSlider = new Swiper(slider, {\n modules: [A11y],\n slidesPerView: 1,\n loop: false,\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n spaceBetween: 8,\n });\n }\n\n if (this.productsLayout === \"layout-1\") {\n const paginationEl = this.el.querySelector(\".product .pagination\") as HTMLElement;\n return this.productSlider = new Swiper(slider, {\n modules: [Navigation, Pagination, EffectFade, A11y],\n slidesPerView: 1,\n effect: this.isMobile ? null : \"fade\",\n fadeEffect: {\n crossFade: this.isMobile ? false : true\n },\n loop: this.isMobile ? false : true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n pagination: {\n el: paginationEl,\n clickable: true,\n modifierClass: \"pagination-\"\n },\n spaceBetween: this.isMobile ? 8 : 0,\n });\n }\n\n if (this.productsLayout === \"layout-2\") {\n const paginationEl = this.el.querySelector(\".product .pagination\") as HTMLElement;\n const sliderDescription = this.el.querySelector(\".product .slider-description\") as HTMLElement;\n this.additionalProductSlider = this.isMobile\n ? null\n : new Swiper(sliderDescription, {\n modules: [Navigation, Pagination, EffectFade, A11y],\n on: {\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n effect: \"fade\",\n fadeEffect: {\n crossFade: true\n },\n slidesPerView: 1,\n loop: true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n modifierClass: \"pagination-\"\n },\n spaceBetween: 16,\n });\n\n return this.productSlider = new Swiper(slider, {\n modules: [Navigation, Pagination, EffectFade, A11y],\n slidesPerView: 1,\n effect: this.isMobile ? null : \"fade\",\n fadeEffect: {\n crossFade: this.isMobile ? false : true\n },\n loop: this.isMobile ? false : true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n pagination: {\n el: paginationEl,\n clickable: true,\n modifierClass: \"pagination-\"\n },\n spaceBetween: this.isMobile ? 8 : 16,\n });\n }\n\n if (this.productsLayout === \"layout-3\") {\n return this.productSlider = new Swiper(slider, {\n modules: [Navigation, A11y],\n slidesPerView: this.isMobile ? 1 : 2,\n effect: null,\n loop: this.isMobile ? false : true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n spaceBetween: this.isMobile ? 8 : 16,\n });\n }\n\n if (this.productsLayout === \"layout-4\") {\n if (this.productLinks === undefined) return null;\n const slidesCount = this.isMobile\n ? 1\n : 3;\n return this.productSlider = new Swiper(slider, {\n modules: [Navigation, A11y],\n slidesPerView: slidesCount,\n effect: null,\n loop: this.isMobile ? false : true,\n navigation: {\n nextEl: nextEl,\n prevEl: prevEl\n },\n on: {\n slideChange: (e) => this.onChangeActiveProduct(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: a11ySettings,\n spaceBetween: this.isMobile ? 8 : 16,\n });\n }\n\n return null;\n }\n\n private initThumbnailCarousel() {\n if (this.thumbnailCarouselImages.length < 2) return true;\n\n const slider = this.el.querySelector(\".thumbnail .swiper\") as HTMLElement;\n const paginationEl = this.el.querySelector(\".thumbnail .thumbnail-pagination\") as HTMLElement;\n return this.thumbnailCarousel = new Swiper(slider, {\n modules: [Pagination, EffectFade, A11y],\n slidesPerView: 1,\n effect: \"fade\",\n fadeEffect: {\n crossFade: true\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n modifierClass: \"thumbnail-pagination-\"\n },\n on: {\n slideChange: (e) => this.onChangeActiveThumbnail(e),\n init: (e) => swiperUpdateTabIndex(e), \n update: (e) => swiperUpdateTabIndex(e),\n realIndexChange: (e) => swiperUpdateTabIndex(e)\n },\n a11y: {\n enabled: true,\n prevSlideMessage: \"Previous thumbnail item\",\n nextSlideMessage: \"Next thumbnail item\",\n containerMessage: \"Thumbnail slider\",\n containerRoleDescriptionMessage: \"Thumbnail slider\",\n paginationBulletMessage: \"Goto thumbnail slide #{{index}}\",\n slideRole: \"group\",\n slideLabelMessage: \"Thumbnail item {{index}}/{{slidesLength}}\"\n },\n });\n }\n\n private playPauseVideoClickHandler = (event: UIEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n const button = event.currentTarget as HTMLElement;\n const videoWrapper = button.parentElement as HTMLVideoElement;\n\n return videoWrapper.classList.contains(\"playing\")\n ? this.pauseVideo(videoWrapper)\n : this.playVideo(videoWrapper);\n }\n\n private pauseVideo(videoWrapperEl: HTMLElement) {\n const videoEl = videoWrapperEl.querySelector(\"video\") as HTMLVideoElement;\n\n videoEl.pause();\n videoWrapperEl.classList.remove(\"playing\");\n }\n\n private playVideo(videoWrapperEl: HTMLElement) {\n const videoEl = videoWrapperEl.querySelector(\"video\") as HTMLVideoElement;\n let playPromise = videoEl.play();\n\n if (playPromise !== null) {\n playPromise.catch(() => { videoEl.play(); });\n }\n videoWrapperEl.classList.add(\"playing\");\n }\n\n private onChangeActiveProduct(e) {\n if (this.activeProductIndex === e.realIndex) return true;\n this.activeProductIndex = e.realIndex;\n }\n\n private onChangeActiveThumbnail(e) {\n const carousellVideos = e.el.querySelectorAll(\".thumbnail-video-wrap\") as NodeListOf<HTMLElement>;\n carousellVideos.forEach(videoWrapper => this.pauseVideo(videoWrapper));\n\n const videoWrapperEl = e.slides[e.activeIndex].querySelector(\".thumbnail-video-wrap\");\n if (videoWrapperEl) this.playVideo(videoWrapperEl);\n\n return e.realIndex === 0\n ? this.hideHotspots = false\n : this.hideHotspots = true;\n }\n\n private imageLoadedHandler = (e: Event) => {\n if (e.type === \"error\") {\n ((e.currentTarget as HTMLElement).parentNode as HTMLElement).setAttribute(\"not-loaded\", \"\");\n (e.currentTarget as HTMLElement).removeAttribute(\"src\");\n }\n return ((e.currentTarget as HTMLElement).parentNode as HTMLElement).removeAttribute(\"is-loading\");\n }\n\n private btnBuyClickHandler = (e: Event) => {\n return ((e.currentTarget as HTMLElement).previousSibling as HTMLLinkElement).click();\n }\n\n private productBuyClickHandler = (e: Event) => {\n const gaCampaign = (e.currentTarget as HTMLElement).getAttribute(\"data-ga-campaign\");\n if (getUseAnalytics(this.appState)) {\n const category = \"Covet.pics Popup\";\n const action = \"Covet.pics Link Click\";\n const label = \"Covet.pics Link Click - \" + gaCampaign;\n sendToGoogleAnalytics(action, category, label);\n }\n\n const linkId = (e.currentTarget as HTMLElement).getAttribute(\"data-link-id\");\n const beaconData = {\n gallery_item_id: this.pageId,\n product_id: linkId,\n };\n sendBeacon(this.appState, \"grid_link_click\", beaconData);\n }\n\n private carouselImgAltTag(altTag:string, thumbnailAlt: string, idx: number, itemsLength: number) {\n if (altTag && altTag !== null) return altTag;\n return `${thumbnailAlt} slide ${idx + 1}/${itemsLength}`;\n }\n\n private renderUserAndDate() {\n const reviewClass = this.caption !== null && this.thumbnailLayout === \"text\" ? \"text-review\" : \"\";\n const starOnlyClass = this.caption === null && this.thumbnailLayout === \"text\" ? \"star-only\" : \"\";\n return (\n <Fragment>\n <h3 class={`username ${this.reverseClass} ${reviewClass} ${starOnlyClass}`}>{this.userName}</h3>\n {this.userName && this.createdTime && <span class={`slash ${this.reverseClass} ${reviewClass} ${starOnlyClass}`}>/</span>}\n <span class={`created-time ${this.reverseClass} ${reviewClass} ${starOnlyClass}`}>{format(this.createdTime)}</span>\n </Fragment>\n );\n }\n private renderReview() {\n const reviewOnlyClass = this.caption !== null && this.thumbnailLayout === \"text\" ? \"text-review\" : \"\";\n const reviewClass = this.caption !== null && this.thumbnailLayout !== \"text\" ? \"review\" : \"\";\n const starOnlyClass = this.caption === null && this.thumbnailLayout === \"text\" ? \"star-only\" : \"\";\n const videoClass = this.thumbnailLayout === \"video\" ? \"video\" : \"\";\n return (\n <div class={`caption ${this.layout} ${this.productsLayout} ${this.reverseClass} ${reviewOnlyClass} ${starOnlyClass} ${videoClass} ${reviewClass}`}>\n {this.rating > 0 && \n <covet-pics-star-rating \n rating={this.rating} \n starSize={14} \n spaceStars={14} \n emptyStarColor={\"#C1C1C1\"} \n class={\"position-star\"}\n showLabel={false}>\n </covet-pics-star-rating>\n }\n\n <p class={`caption-text ${this.layout} ${this.productsLayout} ${reviewOnlyClass} ${starOnlyClass}`}>{this.caption}</p>\n <div class={`bottom ${this.layout} ${this.reverseClass} ${reviewOnlyClass} ${starOnlyClass} ${reviewClass}`}>\n {this.renderUserAndDate()}\n </div>\n </div>\n );\n }\n private renderStarOnlyReview() {\n const starOnlyClass = this.caption === null && this.thumbnailLayout === \"text\" ? \"star-only\" : \"\";\n return (\n <div class={`caption ${this.layout} ${this.productsLayout} ${starOnlyClass}`}>\n\n <covet-pics-star-rating rating={this.rating} starSize={16} spaceStars={16} emptyStarColor={\"#C1C1C1\"} class={`position-star ${starOnlyClass}`}\n showLabel={false}></covet-pics-star-rating>\n\n <p class={`caption-text ${this.layout} ${this.productsLayout} ${starOnlyClass}`}>{this.caption}</p>\n <div class={`bottom ${this.layout} ${starOnlyClass}`}>\n {this.renderUserAndDate()}\n </div>\n </div>\n );\n }\n\n private renderStandardThumbnail() {\n const hideCaption = this.caption === null || this.caption.length === 0;\n const starOnly = this.caption === null && this.thumbnailLayout === \"text\";\n const showReview = !hideCaption && ((this.appState.settings.show_review && this.thumbnailLayout !== \"text\") || this.thumbnailLayout === \"text\");\n const showHotspotsInLayout = this.layout === \"row\" ? true : this.appState.settings.hotspots.enabled;\n return (\n <div class={`thumbnail ${this.layout} ${this.reverseClass} ${this.productsLayout}`} is-loading={this.thumbnailLayout === \"image\"}>\n {this.thumbnailLayout === \"image\" &&\n <img alt={this.thumbnailAlt} class=\"img-cover\"\n onLoad={this.imageLoadedHandler} onError={this.imageLoadedHandler}\n src={this.pageIndex - 2 < this.mainSliderIndex ? this.thumbnailUrl : null}></img>\n }\n {this.thumbnailLayout === \"video\" &&\n <div class=\"thumbnail-video-wrap\">\n <video playsinline loop class=\"thumbnail-video img-contain\" poster={this.videoPoster} title={this.thumbnailAlt}>\n <source src={this.videoUrl} type=\"video/mp4\" />\n </video>\n <button type=\"button\" class=\"thumbnail-video-play\" onClick={this.playPauseVideoClickHandler}></button>\n <button type=\"button\" class=\"thumbnail-video-pause\" onClick={this.playPauseVideoClickHandler}></button>\n </div>\n }\n {showReview && this.renderReview()}\n {starOnly && this.renderStarOnlyReview()}\n {showHotspotsInLayout && this.layout !== \"spotlight\" &&\n <covet-pics-highlighted-hotspots\n links={this.productLinks}\n hoverHotspot={this.hoverHotspot}\n activeHotspot={this.activeProductIndex}\n thumbnailUrl={this.thumbnailUrl}\n isMobile={this.isMobile}\n productBaseImgAlt={this.productBaseImgAlt}\n pageId={this.pageId}\n appStore={this.appStore}\n ></covet-pics-highlighted-hotspots>\n }\n {!this.appState.settings.hide_branding &&\n <a class=\"covet-branding\" href={`https://apps.shopify.com/covet-pics?utm_source=embed&utm_medium=highlight&utm_campaign=${location.host}`} target=\"_blank\" rel=\"noopener\" tabindex=\"0\" aria-label=\"Covet.pics logo link\"></a>\n }\n </div>\n );\n }\n\n private renderCarouselThumbnail() {\n const hideCaption = this.caption === null || this.caption.length === 0;\n const showReview = !hideCaption && this.appState.settings.show_review && this.thumbnailLayout !== \"text\";\n const showHotspotsInLayout = this.layout === \"row\" ? true : this.appState.settings.hotspots.enabled;\n const showHotposts = showHotspotsInLayout && !this.hideHotspots && this.layout !== \"spotlight\";\n return (\n <div class={`thumbnail ${this.layout} ${this.reverseClass} ${this.productsLayout}`}>\n <div class=\"thumbnail-carousel swiper\" role=\"region\">\n <div class=\"swiper-wrapper\">\n {this.thumbnailCarouselImages && this.thumbnailCarouselImages.map((item, idx) =>\n <div class=\"swiper-slide\">\n {item.type === \"image\" &&\n <div class=\"thumbnail-slide-wrap\">\n {/* TODO change standard_resolution to high_resolution */}\n <img src={item.standard_resolution} alt={this.carouselImgAltTag(item.alt_tag, this.thumbnailAlt, idx, this.thumbnailCarouselImages.length)} class=\"img-cover\" loading=\"lazy\" />\n </div>\n }\n {item.type === \"video\" &&\n <div class=\"thumbnail-video-wrap\">\n {/* TODO change standard_resolution to high_resolution, data-poster */}\n <video playsinline loop class=\"thumbnail-video img-contain\">\n <source src={item.standard_resolution} type=\"video/mp4\" />\n </video>\n <button type=\"button\" class=\"thumbnail-video-play\" onClick={this.playPauseVideoClickHandler}></button>\n <button type=\"button\" class=\"thumbnail-video-pause\" onClick={this.playPauseVideoClickHandler}></button>\n </div>\n }\n </div>\n )}\n {showReview && this.renderReview()}\n </div>\n </div>\n {showHotposts &&\n <covet-pics-highlighted-hotspots\n links={this.productLinks}\n hoverHotspot={this.hoverHotspot}\n activeHotspot={this.activeProductIndex}\n thumbnailUrl={this.thumbnailUrl}\n productBaseImgAlt={this.productBaseImgAlt}\n isMobile={this.isMobile}\n pageId={this.pageId}\n appStore={this.appStore}\n ></covet-pics-highlighted-hotspots>\n }\n <div class=\"thumbnail-pagination\"></div>\n {!this.appState.settings.hide_branding &&\n <a class=\"covet-branding\" href={`https://apps.shopify.com/covet-pics?utm_source=embed&utm_medium=highlight&utm_campaign=${location.host}`} target=\"_blank\" rel=\"noopener\" tabindex=\"0\" aria-label=\"Covet.pics logo link\"></a>\n }\n </div>\n );\n }\n\n private renderControlIcon(name: string, direction: string) {\n if (name === \"bracket\")\n return direction === \"next\"\n ? <svg width=\"48px\" height=\"48px\" viewBox=\"0 0 48 48\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g transform=\"translate(-132.000000, -1128.000000)\"><g transform=\"translate(0.000000, 768.000000)\"><g transform=\"translate(132.000000, 360.000000)\"><rect x=\"0\" y=\"0\" width=\"48\" height=\"48\"></rect><polygon fill=\"var(--covet-pics-highlighted-primary-color)\" fill-rule=\"nonzero\" points=\"14.9638554 24 34 4.49382716 33.5180723 4 14 24 33.5180723 44 34 43.5061728\"></polygon></g></g></g></g></svg>\n : <svg width=\"48px\" height=\"48px\" viewBox=\"0 0 48 48\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g transform=\"translate(-1240.000000, -360.000000)\"><g transform=\"translate(1264.000000, 384.000000) scale(-1, 1) translate(-1264.000000, -384.000000) translate(1240.000000, 360.000000)\"><rect x=\"0\" y=\"0\" width=\"48\" height=\"48\"></rect><polygon fill=\"var(--covet-pics-highlighted-primary-color)\" fill-rule=\"nonzero\" points=\"14.9638554 24 34 4.49382716 33.5180723 4 14 24 33.5180723 44 34 43.5061728\"></polygon></g></g></g></svg>;\n\n if (name === \"big-arrow\")\n return direction === \"next\"\n ? <svg class=\"icon-arrow\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18.839 11L10 19.839l8.839 8.839.707-.707-7.681-7.683h19.224v-1H11.965l7.58-7.58L18.84 11z\" fill-rule=\"nonzero\" /></svg>\n : <svg class=\"icon-arrow rotate\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18.839 11L10 19.839l8.839 8.839.707-.707-7.681-7.683h19.224v-1H11.965l7.58-7.58L18.84 11z\" fill-rule=\"nonzero\" /></svg>;\n\n if (name === \"arrow\")\n return direction === \"next\"\n ? <svg class=\"icon-arrow\" viewBox=\"0 0 13 8\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M3.89 7.778V6.364L1.98 4.455h10.957v-1H1.848l2.041-2.04V0L0 3.89l3.89 3.888z\" fill-rule=\"nonzero\" /></svg>\n : <svg class=\"icon-arrow rotate\" viewBox=\"0 0 13 8\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M3.89 7.778V6.364L1.98 4.455h10.957v-1H1.848l2.041-2.04V0L0 3.89l3.89 3.888z\" fill-rule=\"nonzero\" /></svg>;\n return null;\n }\n\n private productImgAltTag(link, idx: number, itemsLength: number) { \n return link.title \n ? `${link.title} product-slide ${idx + 1}/${itemsLength} ${this.productBaseImgAlt}`\n : `product-slide ${idx + 1}/${itemsLength} ${this.productBaseImgAlt}`;\n }\n\n private renderSlider() {\n if (this.productLinks === undefined || this.productLinks.length === 0) return null;\n let controlType = \"arrow\";\n if (this.productsLayout === \"layout-3\") controlType = \"big-arrow\";\n if (this.productsLayout === \"layout-4\") controlType = \"bracket\";\n\n const spotlightSliderClass = `slides-count-${this.productLinks.length > 2 ? 3 : this.productLinks.length}`;\n const noPaginationClass = this.productLinks.length === 1 && this.layout === \"slider\"\n ? \"no-pagination\"\n : \"\";\n\n let showNav = this.productLinks.length > 1;\n if (this.productsLayout === \"layout-3\" && this.productLinks.length < 3) showNav = false;\n if (this.productsLayout === \"layout-4\" && this.productLinks.length < 4 && !this.isMobile) showNav = false;\n\n return (\n <div class={`product ${this.productsLayout} ${this.reverseClass} ${spotlightSliderClass}`}>\n {!this.appState.settings.popup_products_title_disabled && <h2 class={`main-title ${this.productsLayout}`}>{this.appState.settings.popup_products_title}</h2>}\n <section class={`slider swiper ${this.productsLayout} ${this.productLinks.length > 1 ? \"active\" : \"disabled\"} ${spotlightSliderClass}`}>\n <div class=\"swiper-wrapper\">\n {this.productLinks && this.productLinks.map((link, idx) =>\n <div class=\"swiper-slide\">\n <a href={link.link} class=\"product-link\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n <div class={`img-wrap ${this.productsLayout}`} is-loading>\n <img class=\"img-contain\" alt={this.productImgAltTag(link, idx, this.productLinks.length)} loading=\"lazy\"\n src={this.pageIndex - 2 < this.mainSliderIndex ? link.image : null} onLoad={this.imageLoadedHandler} onError={this.imageLoadedHandler} />\n </div>\n <p class={`title ${this.productsLayout} ${this.reverseClass} ${!this.appState.settings.show_price ? \"price-hidden\" : \"\"}`}>{link.title}</p>\n {this.appState.settings.show_price && link.prices && link.prices.price_label &&\n <p class={`price ${this.productsLayout} ${this.reverseClass}`} innerHTML={link.prices.price_label}></p>}\n </a>\n <button class={`btn-buy ${this.productsLayout} ${this.reverseClass} ${noPaginationClass}`} onClick={this.btnBuyClickHandler}\n aria-label={this.appState.settings.popup_products_button_caption} type=\"button\">{this.appState.settings.popup_products_button_caption}</button>\n </div>)}\n </div>\n </section>\n {showNav &&\n <div class={`nav ${this.productsLayout} ${this.reverseClass}`}>\n <button class={`${this.productsLayout} slider-control ${this.productsLayout !== \"layout-3\" ? \"small\" : \"\"} next`} type=\"button\">\n {this.renderControlIcon(controlType, \"next\")}\n </button>\n <div class=\"pagination\"></div>\n <button class={`${this.productsLayout} slider-control ${this.productsLayout !== \"layout-3\" ? \"small\" : \"\"} prev`} type=\"button\">\n {this.renderControlIcon(controlType, \"prev\")}\n </button>\n </div>}\n </div>\n );\n }\n\n private renderBottomSlider() {\n if (this.productLinks === undefined || this.productLinks.length === 0) return null;\n const noPaginationClass = this.productLinks.length === 1 && this.layout === \"slider\"\n ? \"no-pagination\"\n : \"\";\n return (\n <div class={`product ${this.productsLayout}`} >\n <section class={`slider swiper ${this.productsLayout} ${this.productLinks.length > 1 ? \"active\" : \"disabled\"}`}\n role=\"region\" aria-label=\"product thumbnail image preview for product slider\">\n <div class=\"swiper-wrapper\">\n {this.productLinks.map((link, idx) =>\n <div class=\"swiper-slide\">\n <a href={link.link} class=\"product-link height-full\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n <div class={`img-wrap ${this.productsLayout}`} is-loading>\n <img class=\"img-contain\" alt={this.productImgAltTag(link, idx, this.productLinks.length)} loading=\"lazy\"\n src={this.pageIndex - 2 < this.mainSliderIndex ? link.image : null} onLoad={this.imageLoadedHandler} onError={this.imageLoadedHandler} />\n </div>\n </a>\n </div>)}\n </div>\n </section>\n <div class=\"description\">\n <section class={`slider-description swiper ${this.productLinks.length > 1 ? \"active\" : \"disabled\"}`}>\n <div class=\"swiper-wrapper\">\n {this.productLinks.map(link =>\n <div class=\"swiper-slide\">\n <a href={link.link} class=\"product-link\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n {!this.appState.settings.popup_products_title_disabled && <h2 class={`main-title ${this.productsLayout}`}>{this.appState.settings.popup_products_title}</h2>}\n <p class={`title ${this.productsLayout} ${!this.appState.settings.show_price ? \"price-hidden\" : \"\"}`}>{link.title}</p>\n {this.appState.settings.show_price && link.prices && link.prices.price_label &&\n <p class={`price ${this.productsLayout}`} innerHTML={link.prices.price_label}></p>}\n </a>\n <button class={`btn-buy ${this.productsLayout} ${noPaginationClass}`} onClick={this.btnBuyClickHandler}\n aria-label={this.appState.settings.popup_products_button_caption} type=\"button\">{this.appState.settings.popup_products_button_caption}</button>\n </div>)}\n </div>\n </section>\n {this.productLinks.length > 1 &&\n <div class={`nav ${this.productsLayout} nav`}>\n <button class={`${this.productsLayout} slider-control next small`} aria-label=\"slider-control prev\" type=\"button\">\n {this.renderControlIcon(\"arrow\", \"next\")}\n </button>\n <div class=\"pagination\"></div>\n <button class={`${this.productsLayout} slider-control prev small`} aria-label=\"slider-control next\" type=\"button\">\n {this.renderControlIcon(\"arrow\", \"prev\")}\n </button>\n </div>}\n </div>\n </div>\n );\n }\n\n private renderMobileSlider() {\n if (this.productLinks === undefined || this.productLinks.length === 0) return null;\n const sliderNotActive = this.productLinks.length === 1\n ? \"slider-no-active\"\n : \"\";\n return (\n <div class={`product mobile ${this.layout} ${this.productsLayout} ${sliderNotActive}`}>\n <section class={`slider mobile swiper ${this.productsLayout}`}\n role=\"region\" aria-label=\"product slider\">\n <div class=\"swiper-wrapper\">\n {this.productLinks && this.productLinks.map((link, idx) =>\n <div class=\"swiper-slide mobile\">\n <a href={link.link} class=\"product-link\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n <div class={`img-wrap mobile ${this.productsLayout} `} is-loading>\n <img class=\"img-cover\" alt={this.productImgAltTag(link, idx, this.productLinks.length)} loading=\"lazy\"\n src={this.pageIndex - 2 < this.mainSliderIndex ? link.image : null} onLoad={this.imageLoadedHandler} onError={this.imageLoadedHandler} />\n </div>\n </a>\n <div class=\"description mobile\">\n <a href={link.link} class=\"product-link\" aria-label={`product ${link.title ? link.title : \"\"}`}\n data-ga-campaign={link.title} data-link-id={link.id} onClick={this.productBuyClickHandler}>\n <p class={`title mobile ${this.productsLayout} ${this.reverseClass}`}>{link.title}</p>\n {link.prices && link.prices.price_label &&\n <p class={`price mobile ${this.productsLayout} ${this.reverseClass}`} innerHTML={link.prices.price_label}></p>}\n </a>\n <button class={`btn-buy mobile ${this.productsLayout} ${this.reverseClass}`} onClick={this.btnBuyClickHandler}\n aria-label={this.appState.settings.popup_products_button_caption} type=\"button\">{this.appState.settings.popup_products_button_caption}</button>\n </div>\n </div>)}\n </div>\n </section>\n </div>\n );\n }\n\n render() {\n return (\n <Host class={\"page\"} role=\"group\" aria-label={this.ariaLabel}>\n {this.thumbnailLayout === \"carousel\" ? this.renderCarouselThumbnail() : this.renderStandardThumbnail()}\n {this.layout !== \"row\" && !this.isMobile &&\n <div class={`products ${this.layout} ${this.productsLayout} ${this.reverseClass}`}>\n {this.productsLayout === \"layout-2\" ? this.renderBottomSlider() : this.renderSlider()}\n </div>}\n {this.isMobile &&\n <div class={`products ${this.layout} ${this.productsLayout} ${this.reverseClass}`}>\n {this.renderMobileSlider()}\n </div>\n }\n </Host>\n );\n }\n}\n"],"version":3}
@@ -399,7 +399,7 @@ export class CovetPicsHighlightedPage {
399
399
  const showHotspotsInLayout = this.layout === "row" ? true : this.appState.settings.hotspots.enabled;
400
400
  return (h("div", { class: `thumbnail ${this.layout} ${this.reverseClass} ${this.productsLayout}`, "is-loading": this.thumbnailLayout === "image" }, this.thumbnailLayout === "image" &&
401
401
  h("img", { alt: this.thumbnailAlt, class: "img-cover", onLoad: this.imageLoadedHandler, onError: this.imageLoadedHandler, src: this.pageIndex - 2 < this.mainSliderIndex ? this.thumbnailUrl : null }), this.thumbnailLayout === "video" &&
402
- h("div", { class: "thumbnail-video-wrap" }, h("video", { playsinline: true, loop: true, class: "thumbnail-video img-contain", "data-poster": this.videoPoster, title: this.thumbnailAlt }, h("source", { src: this.videoUrl, type: "video/mp4" })), h("button", { type: "button", class: "thumbnail-video-play", onClick: this.playPauseVideoClickHandler }), h("button", { type: "button", class: "thumbnail-video-pause", onClick: this.playPauseVideoClickHandler })), showReview && this.renderReview(), starOnly && this.renderStarOnlyReview(), showHotspotsInLayout && this.layout !== "spotlight" &&
402
+ h("div", { class: "thumbnail-video-wrap" }, h("video", { playsinline: true, loop: true, class: "thumbnail-video img-contain", poster: this.videoPoster, title: this.thumbnailAlt }, h("source", { src: this.videoUrl, type: "video/mp4" })), h("button", { type: "button", class: "thumbnail-video-play", onClick: this.playPauseVideoClickHandler }), h("button", { type: "button", class: "thumbnail-video-pause", onClick: this.playPauseVideoClickHandler })), showReview && this.renderReview(), starOnly && this.renderStarOnlyReview(), showHotspotsInLayout && this.layout !== "spotlight" &&
403
403
  h("covet-pics-highlighted-hotspots", { links: this.productLinks, hoverHotspot: this.hoverHotspot, activeHotspot: this.activeProductIndex, thumbnailUrl: this.thumbnailUrl, isMobile: this.isMobile, productBaseImgAlt: this.productBaseImgAlt, pageId: this.pageId, appStore: this.appStore }), !this.appState.settings.hide_branding &&
404
404
  h("a", { class: "covet-branding", href: `https://apps.shopify.com/covet-pics?utm_source=embed&utm_medium=highlight&utm_campaign=${location.host}`, target: "_blank", rel: "noopener", tabindex: "0", "aria-label": "Covet.pics logo link" })));
405
405
  }