PageSourceSearch

https://heronbotanicals.com/cdn/shop/t/27/assets/labels-and-badges.js?v=33704548163748662151763066825

js heronbotanicals.com collected 2026-10-03 01:34:28 UTC 16,676 bytes, 87 lines download raw bytes

1requestAnimationFrame(()=>{document.addEventListener("alpine:init",()=>{Alpine.store("xBadges",{loadingEl:new Set,fixedPositionTemplate:`<div
2        class="x-badge-{label-id} x-badge-container pointer-events-none{container-img-class} ltr"
3        {preview-show-condition}
4      >
5        {content}
6      </div>`,customPositionTemplate:`<div
7        class="x-badge-{label-id} x-badge-container min-w-fit max-w-full max-h-full pointer-events-none{container-css-class} ltr"
8        x-data="{
9          contentHeight: 1,
10          rePosition() {
11            this.$nextTick(() => {
12              this.contentHeight = this.$refs.content ? this.$refs.content.offsetHeight : contentHeight;
13            });
14          }
15        }"
16        x-intersect.once="rePosition();
17          if (Shopify.designMode) {
18            window.addEventListener('resize', () => {
19              if ($store.xBadges.lastWindowWidth != window.innerWidth) {
20                rePosition();
21              }
22            });
23          } else {
24            installMediaQueryWatcher('(min-width: 768px)', (matches) => rePosition());
25          }"
26        {preview-show-condition}
27        :style="'{css-position} min-height: ' + contentHeight + 'px'"
28      >
29        {content}
30      </div>`,productDetailTemplate:`
31      {teleport-template-open}
32        <div
33          class="x-badge-{label-id} x-badge-container min-w-fit max-w-full max-h-full bottom-0 pointer-events-none{container-css-class}{container-img-class}"
34          style="{css-position}"
35          x-data="{
36            contentHeight: 1,
37            rePosition() {
38              this.$nextTick(() => {
39                this.contentHeight = this.$refs.content ? this.$refs.content.offsetHeight : contentHeight;
40              });
41            }
42          }"
43          x-intersect.once="rePosition();
44            if (Shopify.designMode) {
45              window.addEventListener('resize', () => {
46                if ($store.xBadges.lastWindowWidth != window.innerWidth) {
47                  rePosition();
48                }
49              });
50            } else {
51              installMediaQueryWatcher('(min-width: 768px)', (matches) => rePosition());
52            }"
53        >
54          {content}
55        </div>
56      {teleport-template-close}
57      `,outSideImageTemplate:`<div class="hidden" 
58        x-data="{
59          setPosition() {
60            const element = $el.closest('.card-product').getElementsByClassName('{queryEL}');
61            for (let i = 0; i < element.length; i++) {
62              element[i].innerHTML += $el.innerHTML;
63            }
64          }
65        }"
66        x-init="setPosition()">
67        <div
68          class="x-badge-{label-id} x-badge-container min-w-fit max-w-full max-h-full bottom-0 pointer-events-none{container-img-class}"
69          {preview-show-condition}
70        >
71          {content}
72        </div>
73      </div>`,previewActiveBlock:window.xBadgesPreviewActiveBlock,init(){Shopify.designMode&&document.addEventListener("shopify:block:select",event=>{if(!event.target.classList.contains("x-badges-block-preview"))return;let blockId=event.target.getAttribute("block-id");this.previewActiveBlock=blockId,window.xBadgesPreviewActiveBlock=blockId,document.dispatchEvent(new CustomEvent("eurus:badges:block-select"))})},load(el,callback=()=>{},container2=null,productCard=!1,isByob=!1){if(this.loadingEl.has(el))return;this.loadingEl.add(el),container2&&(el.container=container2);const sliderEl=el.closest("[x-data-slider]");if(sliderEl)if(sliderEl.classList.contains("is-initialized"))this.doLoad(el,productCard,callback);else{isByob&&this.doLoad(el,productCard,callback);const sectionId=el.closest("[x-data-slider]").getAttribute("x-data-slider");document.addEventListener(`eurus:${sectionId}:splide-ready`,()=>{this.doLoad(el,productCard,callback)})}else this.doLoad(el,productCard,callback);this.loadingEl.delete(el)},doLoad(el,productCard,callback=()=>{}){if(this.initAllLabels(el,productCard),Shopify.designMode){let productData=xParseJSON(el.getAttribute("x-labels-data"));document.addEventListener("shopify:section:load",()=>{productData&&!productData.isXBadgesPreview&&this.initAllLabels(el,productCard)})}callback(el)},initAllLabels(el,productCard){let productDatas=xParseJSON(el.getAttribute("x-labels-data")),allLabels=document.getElementsByClassName("x-badges-block-data");if(productDatas){if(Shopify.designMode||productCard){const cardProduct=el.closest(".card-product");
73if(cardProduct){let currentLabels=cardProduct.getElementsByClassName("x-badge-container");for(;currentLabels?.length>0;)currentLabels[0].remove()}}if(productCard)requestAnimationFrame(()=>{let variantId=null;if(el.closest(".card-product")?.querySelector(".current-variant")){const currentVariant=JSON.parse(el.closest(".card-product")?.querySelector(".current-variant")?.textContent);variantId=typeof currentVariant=="object"?currentVariant.id:currentVariant}if(variantId)productDatas.forEach(productData=>{if(productData.variant_id===Number(variantId))for(let i=0;i<allLabels.length;i++){let label=xParseJSON(allLabels[i].getAttribute("x-badges-block-data"));if(!label.enable&&!productData.isXBadgesPreview)return;label.settings.icon=allLabels[i].getAttribute("x-badges-icon"),this.appendLabel(el,label,productData)}});else for(let i=0;i<allLabels.length;i++){let label=xParseJSON(allLabels[i].getAttribute("x-badges-block-data"));if(!label.enable&&!productDatas[0].isXBadgesPreview)return;label.settings.icon=allLabels[i].getAttribute("x-badges-icon"),this.appendLabel(el,label,productDatas[0])}});else{for(let i=0;i<allLabels.length;i++){let label=xParseJSON(allLabels[i].getAttribute("x-badges-block-data"));if(!label.enable&&!productDatas.isXBadgesPreview)return;label.settings.icon=allLabels[i].getAttribute("x-badges-icon"),this.appendLabel(el,label,productDatas)}el.removeAttribute("x-labels-data")}}},appendLabel(el,label,productData){if(productData.container=="product-info"){el.innerHTML+=this.processTemplate(el,label,productData);return}if(label.settings.position=="custom"){let container3=el.querySelector(".custom-label-container");container3||(container3=document.createElement("div"),container3.setAttribute("class","custom-label-container pointer-events-none"),el.appendChild(container3)),container3.innerHTML+=this.processTemplate(el,label,productData);return}let container2=el.querySelector(`.${label.settings.position}-container`);container2||(container2=this.createFixedPositionContainer(label.settings.position),el.appendChild(container2)),container2.innerHTML+=this.processTemplate(el,label,productData)},createFixedPositionContainer(position){let HTMLClass=`${position}-container label-container flex absolute gap-1 space-y-1`;return HTMLClass+=position.includes("top")?" top-3 flex-col":" bottom-3 flex-col",HTMLClass+=position.includes("left")?" items-start left-3":" items-end right-3",container=document.createElement("div"),container.setAttribute("class",HTMLClass),container},processContent(el,label,productData){let content2=!1;const canShow=this.canShow(label,productData);if(label.settings.image&&canShow){let imageHeight,imageWidth;productData.container=="product-info"?(imageHeight=126,imageWidth=Math.round(imageHeight*label.settings.image_aspect_ratio)):(imageWidth=label.settings.size_mobile>label.settings.size?label.settings.size_mobile*15:label.settings.size*15,imageHeight=imageWidth/label.settings.image_aspect_ratio);let image;if(label.settings.image.src?image=label.settings.image.src.includes("burst.shopifycdn.com")?label.settings.image.src:label.settings.image.src+"&width="+imageWidth*3:image=label.settings.image.includes("burst.shopifycdn.com")?label.settings.image:label.settings.image+"&width="+imageWidth*3,productData.container=="card")var imageDirection=label.settings.position.includes("left")?"justify-start":"justify-end",styleImage="width: var(--width-image-label); height: var(--height-image-label)";else var imageDirection=productData.make_content_center?"justify-center":"justify-start",styleImage="";content2=`<div x-ref="content" class='x-badge-content w-fit flex ${imageDirection}{css-opacity}'>
74            <img 
75              loading="lazy"
76              width="`+imageWidth+`"
77              height="`+imageHeight+`"
78              alt="`+(label.settings.image_alt.length>0?label.settings.image_alt:productData.title)+`"
79              src="`+image+`"
80              style="${styleImage}"
81            />
82          </div>`}else if(label.settings.content&&canShow){let qty=productData.inventory_management.length<1||productData.qty<0?"":productData.qty,saleAmount=productData.sale_amount.includes("-")?"":productData.sale_amount,countDown=label.settings.schedule_enabled?'<span x-intersect.once="$nextTick(() => { if (typeof rePosition !== `undefined`) {rePosition()} });" class="x-badge-countdown-'+label.id+' label-countdown empty:hidden"></span>':"",sale=Math.round((productData.compare_at_price-productData.price)*100/productData.compare_at_price);sale=sale==100?99:sale,sale=sale>0?sale+"%":"",content2=label.settings.content.replace(/{sale}/gi,sale).replace(/{sale_amount}/gi,saleAmount).replace(/{qty}/gi,qty).replace(/{price}/gi,productData.price_with_currency).replace(/{count_down}/gi,countDown),productData.metafield_label&&Object.entries(productData.metafield_label).forEach(([key,value])=>{content2=content2.replace(`{${key}}`,value)});const sizeClass=productData.container=="product-info"?"":" pt-1 pb-1 pl-2 pr-2",inlineStyle=productData.container=="product-info"?"":'style="font-size: var(--font-size-scale);"',inlineStyleIcon=productData.container=="product-info"?"":'style="height: var(--font-size-scale); width: var(--font-size-scale); min-width: var(--font-size-scale);"';content2=content2.length>0?`<div
83                x-ref="content"
84                class='x-badge-content ltr x-badge-text select-none inline-flex justify-center${sizeClass} items-center{css-opacity}{css-type} gap-2'
85                ${inlineStyle}
86              ><span class="icon-label empty:hidden" ${inlineStyleIcon}>${label.settings.icon}</span><span class="leading-normal w-fit p-break-words">${content2}</span></div>`:!1,countDown.length>0&&label.settings.schedule_enabled&&Alpine.store("xHelper").countdown(label.settings,function(canShow2,seconds,minutes,hours,days){let container2;productData.container==="card"?(container2=el.container?el.container:el,(label.settings.position=="below-image"||label.settings.position=="bottom-card")&&(container2=el.closest(".card-product"))):label.settings.position=="next-price"?container2=document.querySelector(productData.teleport_dest_price):label.settings.position=="below-image"||label.settings.position=="bottom-card"?container2=el.container?el.container:el:container2=document.querySelector(productData.teleport_dest_image);const countdownElements=container2?.getElementsByClassName("x-badge-countdown-"+label.id);if(!canShow2){for(let i=0;i<countdownElements?.length;i++)countdownElements[i].innerHTML="";return}days=days>0?days+"D&nbsp;&nbsp;&nbsp;":"",hours=hours==0&&days.length==0?"":hours+" : ";const timeLeft=days+hours+minutes+" : "+seconds;for(let i=0;i<countdownElements?.length;i++)countdownElements[i].innerHTML=timeLeft})}return content2},processTemplate(el,label,productData){let template="",teleportTemplateOpen="",teleportTemplateClose="";if(content=this.processContent(el,label,productData)){const cssOpacity=" opacity-"+label.settings.opacity;let cssPosition="",containerCssClass="";productData.container=="product-info"&&label.settings.position=="custom"&&productData.position_adapt?cssPosition="left: "+label.settings.horizontal_position+"%; transform: translate(-"+label.settings.horizontal_position+"%, -"+label.settings.vertical_position+"%); top: "+label.settings.vertical_position+"%;":cssPosition=productData.container=="card"?"left: "+label.settings.horizontal_position+"%; transform: translate(-"+label.settings.horizontal_position+"%, -"+label.settings.vertical_position+"%); top: "+label.settings.vertical_position+"%;":"";let cssType="";
86if(label.settings.type=="round"&&(cssType=" rounded-md"),label.settings.type=="rounded-full"&&(cssType=" rounded-full"),productData.container==="card"?containerCssClass=" absolute w-max":productData.position_adapt&&(containerCssClass=label.settings.position==="custom"?" absolute w-max h-fit product-info-custom-label":" w-fit h-fit product-info-custom-label"),productData.container=="product-info"&&productData.position_adapt)if((productData.teleport_dest_price||productData.teleport_dest_image)&&(teleportTemplateClose="</template>"),label.settings.position=="next-price")productData.teleport_dest_price&&(teleportTemplateOpen=`<template x-teleport="${productData.teleport_dest_price}">`);else if(label.settings.position=="custom")productData.teleport_dest_image&&(teleportTemplateOpen=`<template x-teleport="${productData.teleport_dest_image}">`);else if(label.settings.position=="below-image"||label.settings.position=="bottom-card")teleportTemplateOpen="",teleportTemplateClose="";else{const imageContainer=document.querySelector(productData.teleport_dest_image);let container2=imageContainer.querySelector(`.${label.settings.position}-container`);container2||(container2=this.createFixedPositionContainer(label.settings.position),imageContainer.appendChild(container2)),productData.teleport_dest_image&&(teleportTemplateOpen=`<template x-teleport="${productData.teleport_dest_image} .${label.settings.position}-container">`)}containerCssClass+=label.settings.horizontal_position>50?" text-end":" text-start";const previewShowCondition=productData.isXBadgesPreview?`x-show="$store.xBadges.previewActiveBlock == '{label-id}'"`:"";let imgClass;if(productData.container=="product-info"&&(label.settings.position=="below-image"||label.settings.position=="bottom-card"||!productData.position_adapt)){let imageContainerAlignment=productData.make_content_center?"flex justify-center":"";imgClass=label.settings.image?` label-img ${imageContainerAlignment}`:""}else imgClass=label.settings.image?" label-img":"";template=this.getLableTemplate(productData.container,label.settings.position),template=template.replace("{preview-show-condition}",previewShowCondition).replace("{content}",content).replace("{css-opacity}",cssOpacity).replace("{css-position}",cssPosition).replace("{css-type}",cssType).replace("{container-css-class}",containerCssClass).replace("{container-img-class}",imgClass).replace("{teleport-template-open}",teleportTemplateOpen).replace("{teleport-template-close}",teleportTemplateClose).replace(/{label-id}/gi,label.id)}return template},getLableTemplate(container2,position){return container2=="product-info"?this.productDetailTemplate:position=="custom"?this.customPositionTemplate:position=="below-image"||position=="bottom-card"||position=="next-price"?this.outSideImageTemplate.replace("{queryEL}",position):this.fixedPositionTemplate},canShow(label,productData){if(productData.isXBadgesPreview)return!0;if(productData.container=="card"&&!label.settings.show_on_product_card||productData.container=="product-info"&&!label.settings.show_on_product_page)return!1;if(label.type=="sale-label"&&productData.compare_at_price>productData.price||label.type=="sold-out-label"&&!productData.available)return!0;if(label.type=="preorder-label")return!!(productData.can_show_preorder&&productData.available);if(label.type=="new-label"){if(label.settings.day_since=="creation_date"&&label.settings.number_show<productData.diff_day_create)return!1;if(label.settings.day_since=="activation_date"&&label.settings.number_show<productData.diff_day_publish)return!1}if(label.settings.schedule_enabled){let endDate=new Date(label.settings.end_year,label.settings.end_month-1,label.settings.end_day,label.settings.end_hour,label.settings.end_minute);label.endTime=endDate.getTime()+(-1*label.settings.timezone*60-endDate.getTimezoneOffset())*60*1e3;let startDate=new Date(label.settings.start_year,label.settings.start_month-1,label.settings.start_day,label.settings.start_hour,label.settings.start_minute);label.startTime=startDate.getTime()+(-1*label.settings.timezone*60-startDate.getTimezoneOffset())*60*1e3;let now=new Date().getTime();if(label.endTime<now||label.startTime>now)return!1}if(label.settings.applied_products.includes(productData.product_id))return!0;for(let i=0;i<label.settings.applied_collections.length;i++)if(productData.collections.includes(label.settings.applied_collections[i]))return!0;return label.type!="sale-label"&&label.type!="sold-out-label"&&label.settings.applied_products.length==0&&label.settings.applied_collections.length==0}})})});
87//# sourceMappingURL=/cdn/shop/t/27/assets/labels-and-badges.js.map?v=33704548163748662151763066825

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.