@anker-in/headless-ui 1.0.19-temp-101303 → 1.0.19-temp-101304

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.
@@ -1,2 +1,2 @@
1
- "use strict";var z=Object.create;var f=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var G=(e,t)=>{for(var r in t)f(e,r,{get:t[r],enumerable:!0})},N=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of W(t))!q.call(e,c)&&c!==r&&f(e,c,{get:()=>t[c],enumerable:!(a=M(t,c))||a.enumerable});return e};var y=(e,t,r)=>(r=e!=null?z(V(e)):{},N(t||!e||!e.__esModule?f(r,"default",{value:e,enumerable:!0}):r,e)),J=e=>N(f({},"__esModule",{value:!0}),e);var Z={};G(Z,{CollectionShelvesWrapItem:()=>Y});module.exports=J(Z);var l=require("react/jsx-runtime"),d=require("../../helpers/utils.js"),T=y(require("../../components/badge.js")),B=require("../../components/text.js"),b=y(require("../../components/button.js")),C=require("../../shared/track.js"),m=require("react"),g=y(require("../../components/picture.js")),D=require("../../components/heading.js"),$=require("../AiuiProvider/index.js"),F=require("../../shared/trackUrlRef.js"),O=require("../ShelfDisplay/shelfDisplay.js");const K="image",Q="collectio_shelves",X=999999999e-2,Y=({data:e,configuration:t})=>{const{itemShape:r}=t||{},{locale:a="us"}=(0,$.useAiuiContext)(),[c,P]=(0,m.useState)(""),I=(o,i,n)=>t?.event?.primaryButton?.(o,i+1,n),E=(o,i,n)=>t?.event?.secondaryButton?.(o,i+1,n),s=e?.variants?.find(o=>o?.sku===e?.sku)||e?.variants?.[0]||{},v=!s?.availableForSale||s?.price?.amount===X,j=t?.isShowTag,k=t?.isShowOriginalPrice,[S,A]=(0,m.useState)([]),[L,w]=(0,m.useState)(!1),h=s?.coupons?.[0],{price:U,basePrice:H,discount:p}=(0,O.formatVariantPrice)({locale:a,amount:k&&h?h.variant_price4wscode:s.price,baseAmount:k&&h?s.price:0,currencyCode:e?.price?.currencyCode||"USD"}),R=()=>{const o=e?.sku,i=e?.variants;return i?.find(x=>x?.sku===o)?.image?.url||i?.[0]?.image?.url||""},u=e?.custom_name||e?.title||e?.name,_=e?.custom_description||e?.description;return(0,m.useEffect)(()=>{let o=[];if(p){const n=`${p}${t?.metafields?.discounts?.off||""}`;o.push(n)}const i=e?.tags?.filter?.(n=>n?.startsWith?.("CLtag"))?.map?.(n=>n?.replace?.("CLtag:",""))?.slice?.(0,p?1:2);A(o.concat(i))},[p,t?.metafields?.discounts,e?.tags]),(0,m.useEffect)(()=>{const{infos:o}=s?.metafields||{},{productInfos:i,preRender:n}=e?.metafields||{},{shopCommon:x}=t?.metafields||{};P(o?.comingSoon||i?.comingSoon||n?.soldOut||x?.soldOut||"")},[e,s]),(0,l.jsx)("div",{className:(0,d.cn)(r==="rounded"?"rounded-2xl":"rounded-none","bg-[#EAEAEC] tablet:hover:bg-[#FFFFFF] box-border w-full cursor-pointer overflow-hidden duration-300","collection-shelves-item",{"aiui-dark":e?.custom_theme==="dark"}),children:(0,l.jsxs)("div",{className:"h-full box-border flex flex-col justify-between overflow-hidden",children:[(0,l.jsx)("div",{onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),className:(0,d.cn)("desktop:p-6 p-4 relative inline-block w-full lg-desktop:h-[288px] desktop:h-[234px] h-[182px] overflow-hidden cursor-pointer"),children:(0,l.jsxs)("a",{"aria-label":u,target:t?.target,href:(0,F.trackUrlRef)(`${a==="us"||!a?"":`/${a}`}/products/${e?.handle}`,`${K}_${Q}`),onClick:()=>{(0,C.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||s?.sku,item_name:e?.name,item_variant:s?.name,price:s?.price,index:t?.index+1}]}})},children:[(0,l.jsx)(g.default,{alt:"",source:R(),className:"flex h-full justify-center object-cover [&_img]:h-full [&_img]:w-auto"}),(0,l.jsx)(g.default,{alt:"",source:e?.custom_image,className:(0,d.cn)(L?"opacity-100":"opacity-0","absolute inset-x-0 top-0 h-full object-cover [&_img]:size-full transition-all duration-300")})]})}),(0,l.jsxs)("div",{className:"overflow-hidden flex flex-col justify-end desktop:p-6 p-4 pt-1 flex-1 box-border collection-shelves-product-content",children:[j&&S?.length?(0,l.jsx)("div",{className:"mb-2 box-border flex flex-wrap gap-1 overflow-hidden",children:S?.map?.((o,i)=>(0,l.jsx)(T.default,{children:o},i))}):null,u?(0,l.jsx)(D.Heading,{as:"h3",title:u||"",html:u||"",className:"lg-desktop:text-2xl lg-desktop:leading-7 tablet:text-xl collection-shelves-product-title line-clamp-2 text-info-primary font-bold tablet:leading-6 text-base"}):null,_?(0,l.jsx)(B.Text,{size:2,html:_||"",className:"lg-desktop:text-lg desktop:text-base collection-shelves-product-description line-clamp-1 text-sm font-bold text-info-primary"}):null,(0,l.jsx)("div",{className:"mb-1 mt-4 flex items-center",children:v?(0,l.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:c||""}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"final-price tablet:text-2xl text-info-primary text-xl font-bold",children:s?.availableForSale&&U||""}),(0,l.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:s?.availableForSale&&H||""})]})}),(0,l.jsxs)("div",{className:(0,d.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,l.jsx)(b.default,{variant:"secondary",onClick:()=>E(e,t?.index,t),className:`overflow-hidden font-bold ${t.direction==="vertical"?"w-full":""} ${t?.shape==="rounded"?"rounded-2xl":""}`,children:t?.secondaryButton||""}):null,t?.primaryButton&&!v?(0,l.jsx)(b.default,{variant:"primary",disabled:v,onClick:()=>I(e,t?.index,t),className:`overflow-hidden font-bold ${t.direction==="vertical"?"w-full":""} ${t?.shape==="rounded"?"rounded-2xl":""}`,children:t?.primaryButton||""}):null]})]})]})},e?.id||e?.handle)};
1
+ "use strict";var z=Object.create;var f=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var G=(e,t)=>{for(var r in t)f(e,r,{get:t[r],enumerable:!0})},N=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of W(t))!q.call(e,c)&&c!==r&&f(e,c,{get:()=>t[c],enumerable:!(a=M(t,c))||a.enumerable});return e};var y=(e,t,r)=>(r=e!=null?z(V(e)):{},N(t||!e||!e.__esModule?f(r,"default",{value:e,enumerable:!0}):r,e)),J=e=>N(f({},"__esModule",{value:!0}),e);var Z={};G(Z,{CollectionShelvesWrapItem:()=>Y});module.exports=J(Z);var l=require("react/jsx-runtime"),d=require("../../helpers/utils.js"),T=y(require("../../components/badge.js")),B=require("../../components/text.js"),b=y(require("../../components/button.js")),C=require("../../shared/track.js"),m=require("react"),g=y(require("../../components/picture.js")),D=require("../../components/heading.js"),$=require("../AiuiProvider/index.js"),F=require("../../shared/trackUrlRef.js"),O=require("../ShelfDisplay/shelfDisplay.js");const K="image",Q="collectio_shelves",X=999999999e-2,Y=({data:e,configuration:t})=>{const{itemShape:r}=t||{},{locale:a="us"}=(0,$.useAiuiContext)(),[c,P]=(0,m.useState)(""),I=(o,i,n)=>t?.event?.primaryButton?.(o,i+1,n),E=(o,i,n)=>t?.event?.secondaryButton?.(o,i+1,n),s=e?.variants?.find(o=>o?.sku===e?.sku)||e?.variants?.[0]||{},v=!s?.availableForSale||s?.price?.amount===X,j=t?.isShowTag,k=t?.isShowOriginalPrice,[S,A]=(0,m.useState)([]),[L,w]=(0,m.useState)(!1),h=s?.coupons?.[0],{price:U,basePrice:H,discount:p}=(0,O.formatVariantPrice)({locale:a,amount:k&&h?h.variant_price4wscode:s.price,baseAmount:k&&h?s.price:0,currencyCode:e?.price?.currencyCode||"USD"}),R=()=>{const o=e?.sku,i=e?.variants;return i?.find(x=>x?.sku===o)?.image?.url||i?.[0]?.image?.url||""},u=e?.custom_name||e?.title||e?.name,_=e?.custom_description||e?.description;return(0,m.useEffect)(()=>{let o=[];if(p){const n=`${p}${t?.metafields?.discounts?.off||""}`;o.push(n)}const i=e?.tags?.filter?.(n=>n?.startsWith?.("CLtag"))?.map?.(n=>n?.replace?.("CLtag:",""))?.slice?.(0,p?1:2);A(o.concat(i))},[p,t?.metafields?.discounts,e?.tags]),(0,m.useEffect)(()=>{const{infos:o}=s?.metafields||{},{productInfos:i,preRender:n}=e?.metafields||{},{shopCommon:x}=t?.metafields||{};P(o?.comingSoon||i?.comingSoon||n?.soldOut||x?.soldOut||"")},[e,s]),(0,l.jsx)("div",{className:(0,d.cn)(r==="rounded"?"rounded-2xl":"rounded-none","bg-[#EAEAEC] tablet:hover:bg-[#FFFFFF] box-border w-full cursor-pointer overflow-hidden duration-300","collection-shelves-item",{"aiui-dark":e?.custom_theme==="dark"}),children:(0,l.jsxs)("div",{className:"h-full box-border flex flex-col justify-between overflow-hidden",children:[(0,l.jsx)("div",{onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),className:(0,d.cn)("desktop:p-6 p-4 relative inline-block w-full lg-desktop:h-[288px] desktop:h-[234px] h-[182px] overflow-hidden cursor-pointer"),children:(0,l.jsxs)("a",{"aria-label":u,target:t?.target,href:(0,F.trackUrlRef)(`${a==="us"||!a?"":`/${a}`}/products/${e?.handle}`,`${K}_${Q}`),onClick:()=>{(0,C.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||s?.sku,item_name:e?.name,item_variant:s?.name,price:s?.price,index:t?.index+1}]}})},children:[(0,l.jsx)(g.default,{alt:"",source:R(),className:"flex h-full justify-center object-cover [&_img]:h-full [&_img]:w-auto"}),(0,l.jsx)(g.default,{alt:"",source:e?.custom_image,className:(0,d.cn)(L?"opacity-100":"opacity-0","absolute inset-x-0 top-0 h-full object-cover [&_img]:size-full transition-all duration-300")})]})}),(0,l.jsxs)("div",{className:"overflow-hidden flex flex-col justify-end desktop:p-6 p-4 flex-1 box-border collection-shelves-product-content",children:[j&&S?.length?(0,l.jsx)("div",{className:"mb-2 box-border flex flex-wrap gap-1 overflow-hidden",children:S?.map?.((o,i)=>(0,l.jsx)(T.default,{children:o},i))}):null,u?(0,l.jsx)(D.Heading,{as:"h3",title:u||"",html:u||"",className:"lg-desktop:text-2xl lg-desktop:leading-7 tablet:text-xl collection-shelves-product-title line-clamp-2 text-info-primary font-bold tablet:leading-6 text-base"}):null,_?(0,l.jsx)(B.Text,{size:2,html:_||"",className:"lg-desktop:text-lg desktop:text-base collection-shelves-product-description line-clamp-1 text-sm font-bold text-info-primary"}):null,(0,l.jsx)("div",{className:"mb-1 mt-4 flex items-center",children:v?(0,l.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:c||""}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"final-price tablet:text-2xl text-info-primary text-xl font-bold",children:s?.availableForSale&&U||""}),(0,l.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:s?.availableForSale&&H||""})]})}),(0,l.jsxs)("div",{className:(0,d.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,l.jsx)(b.default,{variant:"secondary",onClick:()=>E(e,t?.index,t),className:`overflow-hidden font-bold ${t.direction==="vertical"?"w-full":""} ${t?.shape==="rounded"?"rounded-2xl":""}`,children:t?.secondaryButton||""}):null,t?.primaryButton&&!v?(0,l.jsx)(b.default,{variant:"primary",disabled:v,onClick:()=>I(e,t?.index,t),className:`overflow-hidden font-bold ${t.direction==="vertical"?"w-full":""} ${t?.shape==="rounded"?"rounded-2xl":""}`,children:t?.primaryButton||""}):null]})]})]})},e?.id||e?.handle)};
2
2
  //# sourceMappingURL=CollectionShelvesItem.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/CollectionShelves/CollectionShelvesItem.tsx"],
4
- "sourcesContent": ["import { cn } from '../../helpers/utils.js'\nimport Badge from '../../components/badge.js'\nimport { Text } from '../../components/text.js'\nimport Button from '../../components/button.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { useState, useEffect } from 'react'\nimport Picture from '../../components/picture.js'\nimport { Heading } from '../../components/heading.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { formatVariantPrice } from '../ShelfDisplay/shelfDisplay.js'\nimport type { ShelfDisplayItem, ShelfDisplayType } from '../ShelfDisplay/shelfDisplay.js'\n\nconst componentType = 'image'\nconst componentName = 'collectio_shelves'\n\nconst SOLD_OUT_PRICE = 9999999.99\n\nexport const CollectionShelvesWrapItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const { itemShape } = configuration || {}\n const { locale = 'us' } = useAiuiContext()\n\n const [soldOutText, setSoldOutText] = useState<string>('')\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType) =>\n configuration?.event?.primaryButton?.(params, index + 1, data)\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType) =>\n configuration?.event?.secondaryButton?.(params, index + 1, data)\n\n const variant = data?.variants?.find((item: any) => item?.sku === data?.sku) || data?.variants?.[0] || {}\n\n const isSoldOut = !variant?.availableForSale || variant?.price?.amount === SOLD_OUT_PRICE\n const isShowTag = configuration?.isShowTag\n const isShowOriginalPrice = configuration?.isShowOriginalPrice\n\n const [showTags, setShowTags] = useState<string[]>([])\n const [showImage, setShowImage] = useState<boolean>(false)\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const { price, basePrice, discount } = formatVariantPrice({\n locale: locale,\n amount: isShowOriginalPrice && coupon ? coupon.variant_price4wscode : variant.price,\n baseAmount: isShowOriginalPrice && coupon ? variant.price : 0,\n currencyCode: data?.price?.currencyCode || 'USD',\n })\n\n const handleUrl = () => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n return findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n }\n\n const displayTitle = data?.custom_name || data?.title || data?.name\n const displayDescription = data?.custom_description || data?.description\n\n useEffect(() => {\n let handleTags: string[] = []\n if (discount) {\n const discountTag = `${discount}${configuration?.metafields?.discounts?.off || ''}`\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [discount, configuration?.metafields?.discounts, data?.tags])\n\n useEffect(() => {\n const { infos } = variant?.metafields || {}\n const { productInfos, preRender } = data?.metafields || {}\n const { shopCommon } = configuration?.metafields || {}\n setSoldOutText(infos?.comingSoon || productInfos?.comingSoon || preRender?.soldOut || shopCommon?.soldOut || '')\n }, [data, variant])\n\n return (\n <div\n key={data?.id || data?.handle}\n className={cn(\n itemShape === 'rounded' ? 'rounded-2xl' : 'rounded-none',\n 'bg-[#EAEAEC] tablet:hover:bg-[#FFFFFF] box-border w-full cursor-pointer overflow-hidden duration-300',\n 'collection-shelves-item',\n {\n 'aiui-dark': data?.custom_theme === 'dark',\n }\n )}\n >\n <div className=\"h-full box-border flex flex-col justify-between overflow-hidden\">\n <div\n onMouseEnter={() => setShowImage(true)}\n onMouseLeave={() => setShowImage(false)}\n className={cn(\n 'desktop:p-6 p-4 relative inline-block w-full lg-desktop:h-[288px] desktop:h-[234px] h-[182px] overflow-hidden cursor-pointer'\n )}\n >\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n alt=\"\"\n source={handleUrl()}\n className=\"flex h-full justify-center object-cover [&_img]:h-full [&_img]:w-auto\"\n />\n <Picture\n alt=\"\"\n source={data?.custom_image}\n className={cn(\n showImage ? 'opacity-100' : 'opacity-0',\n 'absolute inset-x-0 top-0 h-full object-cover [&_img]:size-full transition-all duration-300'\n )}\n />\n </a>\n </div>\n <div className=\"overflow-hidden flex flex-col justify-end desktop:p-6 p-4 pt-1 flex-1 box-border collection-shelves-product-content\">\n {isShowTag && showTags?.length ? (\n <div className=\"mb-2 box-border flex flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => <Badge key={index}>{item}</Badge>)}\n </div>\n ) : null}\n {displayTitle ? (\n <Heading\n as=\"h3\"\n title={displayTitle || ''}\n html={displayTitle || ''}\n className=\"lg-desktop:text-2xl lg-desktop:leading-7 tablet:text-xl collection-shelves-product-title line-clamp-2 text-info-primary font-bold tablet:leading-6 text-base\"\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n html={displayDescription || ''}\n className=\"lg-desktop:text-lg desktop:text-base collection-shelves-product-description line-clamp-1 text-sm font-bold text-info-primary\"\n />\n ) : null}\n <div className=\"mb-1 mt-4 flex items-center\">\n {isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{soldOutText || ''}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-2xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data, configuration?.index, configuration)}\n className={`overflow-hidden font-bold ${configuration.direction === 'vertical' ? 'w-full' : ''} ${configuration?.shape === 'rounded' ? 'rounded-2xl' : ''}`}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton && !isSoldOut ? (\n <Button\n variant=\"primary\"\n disabled={isSoldOut}\n onClick={() => onPrimaryButton(data, configuration?.index, configuration)}\n className={`overflow-hidden font-bold ${configuration.direction === 'vertical' ? 'w-full' : ''} ${configuration?.shape === 'rounded' ? 'rounded-2xl' : ''}`}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { cn } from '../../helpers/utils.js'\nimport Badge from '../../components/badge.js'\nimport { Text } from '../../components/text.js'\nimport Button from '../../components/button.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { useState, useEffect } from 'react'\nimport Picture from '../../components/picture.js'\nimport { Heading } from '../../components/heading.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { formatVariantPrice } from '../ShelfDisplay/shelfDisplay.js'\nimport type { ShelfDisplayItem, ShelfDisplayType } from '../ShelfDisplay/shelfDisplay.js'\n\nconst componentType = 'image'\nconst componentName = 'collectio_shelves'\n\nconst SOLD_OUT_PRICE = 9999999.99\n\nexport const CollectionShelvesWrapItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const { itemShape } = configuration || {}\n const { locale = 'us' } = useAiuiContext()\n\n const [soldOutText, setSoldOutText] = useState<string>('')\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType) =>\n configuration?.event?.primaryButton?.(params, index + 1, data)\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType) =>\n configuration?.event?.secondaryButton?.(params, index + 1, data)\n\n const variant = data?.variants?.find((item: any) => item?.sku === data?.sku) || data?.variants?.[0] || {}\n\n const isSoldOut = !variant?.availableForSale || variant?.price?.amount === SOLD_OUT_PRICE\n const isShowTag = configuration?.isShowTag\n const isShowOriginalPrice = configuration?.isShowOriginalPrice\n\n const [showTags, setShowTags] = useState<string[]>([])\n const [showImage, setShowImage] = useState<boolean>(false)\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const { price, basePrice, discount } = formatVariantPrice({\n locale: locale,\n amount: isShowOriginalPrice && coupon ? coupon.variant_price4wscode : variant.price,\n baseAmount: isShowOriginalPrice && coupon ? variant.price : 0,\n currencyCode: data?.price?.currencyCode || 'USD',\n })\n\n const handleUrl = () => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n return findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n }\n\n const displayTitle = data?.custom_name || data?.title || data?.name\n const displayDescription = data?.custom_description || data?.description\n\n useEffect(() => {\n let handleTags: string[] = []\n if (discount) {\n const discountTag = `${discount}${configuration?.metafields?.discounts?.off || ''}`\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [discount, configuration?.metafields?.discounts, data?.tags])\n\n useEffect(() => {\n const { infos } = variant?.metafields || {}\n const { productInfos, preRender } = data?.metafields || {}\n const { shopCommon } = configuration?.metafields || {}\n setSoldOutText(infos?.comingSoon || productInfos?.comingSoon || preRender?.soldOut || shopCommon?.soldOut || '')\n }, [data, variant])\n\n return (\n <div\n key={data?.id || data?.handle}\n className={cn(\n itemShape === 'rounded' ? 'rounded-2xl' : 'rounded-none',\n 'bg-[#EAEAEC] tablet:hover:bg-[#FFFFFF] box-border w-full cursor-pointer overflow-hidden duration-300',\n 'collection-shelves-item',\n {\n 'aiui-dark': data?.custom_theme === 'dark',\n }\n )}\n >\n <div className=\"h-full box-border flex flex-col justify-between overflow-hidden\">\n <div\n onMouseEnter={() => setShowImage(true)}\n onMouseLeave={() => setShowImage(false)}\n className={cn(\n 'desktop:p-6 p-4 relative inline-block w-full lg-desktop:h-[288px] desktop:h-[234px] h-[182px] overflow-hidden cursor-pointer'\n )}\n >\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n alt=\"\"\n source={handleUrl()}\n className=\"flex h-full justify-center object-cover [&_img]:h-full [&_img]:w-auto\"\n />\n <Picture\n alt=\"\"\n source={data?.custom_image}\n className={cn(\n showImage ? 'opacity-100' : 'opacity-0',\n 'absolute inset-x-0 top-0 h-full object-cover [&_img]:size-full transition-all duration-300'\n )}\n />\n </a>\n </div>\n <div className=\"overflow-hidden flex flex-col justify-end desktop:p-6 p-4 flex-1 box-border collection-shelves-product-content\">\n {isShowTag && showTags?.length ? (\n <div className=\"mb-2 box-border flex flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => <Badge key={index}>{item}</Badge>)}\n </div>\n ) : null}\n {displayTitle ? (\n <Heading\n as=\"h3\"\n title={displayTitle || ''}\n html={displayTitle || ''}\n className=\"lg-desktop:text-2xl lg-desktop:leading-7 tablet:text-xl collection-shelves-product-title line-clamp-2 text-info-primary font-bold tablet:leading-6 text-base\"\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n html={displayDescription || ''}\n className=\"lg-desktop:text-lg desktop:text-base collection-shelves-product-description line-clamp-1 text-sm font-bold text-info-primary\"\n />\n ) : null}\n <div className=\"mb-1 mt-4 flex items-center\">\n {isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{soldOutText || ''}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-2xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data, configuration?.index, configuration)}\n className={`overflow-hidden font-bold ${configuration.direction === 'vertical' ? 'w-full' : ''} ${configuration?.shape === 'rounded' ? 'rounded-2xl' : ''}`}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton && !isSoldOut ? (\n <Button\n variant=\"primary\"\n disabled={isSoldOut}\n onClick={() => onPrimaryButton(data, configuration?.index, configuration)}\n className={`overflow-hidden font-bold ${configuration.direction === 'vertical' ? 'w-full' : ''} ${configuration?.shape === 'rounded' ? 'rounded-2xl' : ''}`}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["CollectionShelvesItem_exports", "__export", "CollectionShelvesWrapItem", "__toCommonJS", "import_jsx_runtime", "import_utils", "import_badge", "import_text", "import_button", "import_track", "import_react", "import_picture", "import_heading", "import_AiuiProvider", "import_trackUrlRef", "import_shelfDisplay", "componentType", "componentName", "SOLD_OUT_PRICE", "data", "configuration", "itemShape", "locale", "soldOutText", "setSoldOutText", "onPrimaryButton", "params", "index", "onSecondaryButton", "variant", "item", "isSoldOut", "isShowTag", "isShowOriginalPrice", "showTags", "setShowTags", "showImage", "setShowImage", "coupon", "price", "basePrice", "discount", "handleUrl", "sku", "skuArray", "displayTitle", "displayDescription", "handleTags", "discountTag", "newTags", "infos", "productInfos", "preRender", "shopCommon", "Picture", "Badge", "Button"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var Z=Object.create;var g=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var ee=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty;var oe=(o,r)=>{for(var n in r)g(o,n,{get:r[n],enumerable:!0})},L=(o,r,n,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of j(r))!te.call(o,i)&&i!==n&&g(o,i,{get:()=>r[i],enumerable:!(f=$(r,i))||f.enumerable});return o};var y=(o,r,n)=>(n=o!=null?Z(ee(o)):{},L(r||!o||!o.__esModule?g(n,"default",{value:o,enumerable:!0}):n,o)),re=o=>L(g({},"__esModule",{value:!0}),o);var se={};oe(se,{default:()=>ae});module.exports=re(se);var s=require("react/jsx-runtime"),I=y(require("./FilterList")),K=y(require("./FilterHeader")),_=y(require("./FilterCardWrap")),k=require("../../shared/Styles.js"),M=y(require("./component/TabFilter")),t=require("react"),l=require("./component/filtersFun");function ne(o){const{data:r,result:n={},allResult:f={},loadMore:i=null,metafields:c={},filterPrice:F={},isLoading:A=!1,onFilteredChange:P,onSortAndReverseChange:V,onPrimaryChange:z,onSecondaryChange:T,onNextPage:W,onPrevPage:E}=o,{shop_filters_pair:m}=c,{data:x}=(0,l.getComponentData)(c,"FilterProduct"),[p,H]=(0,t.useState)(!1),[q,S]=(0,t.useState)(!1),[B,G]=(0,t.useState)([]),[d,D]=(0,t.useState)({}),[v,J]=(0,t.useState)(0),[h,u]=(0,t.useState)(1),[Q,U]=(0,t.useState)(!1),C=(0,t.useRef)(null);(0,t.useMemo)(()=>{const e=m?.filter_txt?.sortList,[a,Y]=(0,l.handleSortKeyAndReverse)(e,v);V?.(a,Y)},[m?.filter_txt?.sortList,d,v]);const X=e=>!e?.metafields?.seoSetting?.noindex,O=(0,t.useMemo)(()=>f?.products?.filter(X)?.length||0,[f?.products]),b=(0,t.useMemo)(()=>(0,l.handleFilterOptions)(n,F,m,x),[F,n?.filters,m?.filter_txt?.offers?.name,m?.filter_txt?.offers?.onsale]),w=(0,t.useMemo)(()=>b?.length?b?.map?.(e=>({...e,options:e?.options?.map?.(a=>({...a,checked:d?.[e?.value]?.indexOf?.(a?.value)>-1}))})):[],[d,b]),N=e=>{D?.({}),e&&u(1),P?.((0,l.handleFilters)({}))},R=e=>{D(e),u(1),P?.((0,l.handleFilters)(e))};return(0,t.useEffect)(()=>{const a=(d?.offers||[])?.includes?.("onsale");U(a)},[d]),(0,s.jsxs)("div",{className:"size-full box-border",children:[(0,s.jsx)("div",{className:"laptop:mb-12 mb-6",children:(0,s.jsx)(M.default,{tabs:r?.tabItems,filtered:d,filtersPair:w,filtersData:x,metafields:c,onTabClick:e=>R(e)})}),(0,s.jsx)(K.default,{total:O||0,metafields:c,closeFilter:p,sortKeyIndx:v,shopifyData:r,onSortChange:e=>{J(e),C.current?.clearData?.()},onCloseFilter:H,onClearFiltered:()=>N(),onMobileOpenDrawer:S}),(0,s.jsxs)("div",{className:"flex-1 overflow-hidden tablet:flex desktop:gap-x-16 tablet:gap-x-8",children:[!p&&(0,s.jsx)(I.default,{shopifyData:r,filtered:d,openOptions:B,closeFilter:p,filtersPair:w,mobileDrawerVisible:q,onFilteredChange:e=>{R(e),C.current?.clearData?.()},onClearFiltered:()=>N(!1),onOpenOptions:G,onCloseDrawer:S}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto relative",children:[(0,s.jsx)(_.default,{page:h,result:n,shopifyData:r,total:O,isSale:Q,ref:C,metafields:c,closeFilter:p,onNextPage:e=>{u(h+1),W?.(e)},onPrevPage:e=>{u(h-1),E?.(e)},onPrimaryChange:(e,a)=>z?.(e,a),onSecondaryChange:(e,a)=>T?.(e,a)}),A&&i||null]})]})]})}var ae=(0,k.withLayout)(ne);
1
+ "use strict";var Z=Object.create;var g=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var ee=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty;var oe=(o,r)=>{for(var n in r)g(o,n,{get:r[n],enumerable:!0})},R=(o,r,n,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of j(r))!te.call(o,i)&&i!==n&&g(o,i,{get:()=>r[i],enumerable:!(f=$(r,i))||f.enumerable});return o};var y=(o,r,n)=>(n=o!=null?Z(ee(o)):{},R(r||!o||!o.__esModule?g(n,"default",{value:o,enumerable:!0}):n,o)),re=o=>R(g({},"__esModule",{value:!0}),o);var se={};oe(se,{default:()=>ae});module.exports=re(se);var s=require("react/jsx-runtime"),L=y(require("./FilterList")),I=y(require("./FilterHeader")),K=y(require("./FilterCardWrap")),_=require("../../shared/Styles.js"),k=y(require("./component/TabFilter")),t=require("react"),l=require("./component/filtersFun");function ne(o){const{data:r,result:n={},allResult:f={},loadMore:i=null,metafields:c={},filterPrice:b={},isLoading:M=!1,onFilteredChange:F,onSortAndReverseChange:A,onPrimaryChange:V,onSecondaryChange:z,onNextPage:T,onPrevPage:W}=o,{shop_filters_pair:m}=c,{data:P}=(0,l.getComponentData)(c,"FilterProduct"),[p,E]=(0,t.useState)(!1),[H,x]=(0,t.useState)(!1),[q,B]=(0,t.useState)([]),[d,S]=(0,t.useState)({}),[v,G]=(0,t.useState)(0),[h,u]=(0,t.useState)(1),[J,Q]=(0,t.useState)(!1),U=(0,t.useRef)(null);(0,t.useMemo)(()=>{const e=m?.filter_txt?.sortList,[a,Y]=(0,l.handleSortKeyAndReverse)(e,v);A?.(a,Y)},[m?.filter_txt?.sortList,d,v]);const X=e=>!e?.metafields?.seoSetting?.noindex,D=(0,t.useMemo)(()=>f?.products?.filter(X)?.length||0,[f?.products]),C=(0,t.useMemo)(()=>(0,l.handleFilterOptions)(n,b,m,P),[b,n?.filters,m?.filter_txt?.offers?.name,m?.filter_txt?.offers?.onsale]),O=(0,t.useMemo)(()=>C?.length?C?.map?.(e=>({...e,options:e?.options?.map?.(a=>({...a,checked:d?.[e?.value]?.indexOf?.(a?.value)>-1}))})):[],[d,C]),w=e=>{S?.({}),e&&u(1),F?.((0,l.handleFilters)({}))},N=e=>{S(e),u(1),F?.((0,l.handleFilters)(e))};return(0,t.useEffect)(()=>{const a=(d?.offers||[])?.includes?.("onsale");Q(a)},[d]),(0,s.jsxs)("div",{className:"size-full box-border",children:[(0,s.jsx)("div",{className:"laptop:mb-12 mb-6",children:(0,s.jsx)(k.default,{tabs:r?.tabItems,filtered:d,filtersPair:O,filtersData:P,metafields:c,onTabClick:e=>N(e)})}),(0,s.jsx)(I.default,{total:D||0,metafields:c,closeFilter:p,sortKeyIndx:v,shopifyData:r,onSortChange:G,onCloseFilter:E,onClearFiltered:()=>w(),onMobileOpenDrawer:x}),(0,s.jsxs)("div",{className:"flex-1 overflow-hidden tablet:flex desktop:gap-x-16 tablet:gap-x-8",children:[!p&&(0,s.jsx)(L.default,{shopifyData:r,filtered:d,openOptions:q,closeFilter:p,filtersPair:O,mobileDrawerVisible:H,onFilteredChange:N,onClearFiltered:()=>w(!1),onOpenOptions:B,onCloseDrawer:x}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto relative",children:[(0,s.jsx)(K.default,{page:h,result:n,shopifyData:r,total:D,isSale:J,ref:U,metafields:c,closeFilter:p,onNextPage:e=>{u(h+1),T?.(e)},onPrevPage:e=>{u(h-1),W?.(e)},onPrimaryChange:(e,a)=>V?.(e,a),onSecondaryChange:(e,a)=>z?.(e,a)}),M&&i||null]})]})]})}var ae=(0,_.withLayout)(ne);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/CollectionsFilters/index.tsx"],
4
- "sourcesContent": ["import FilterList from './FilterList'\nimport FilterHeader from './FilterHeader'\nimport FilterCardWrap from './FilterCardWrap'\nimport { withLayout } from '../../shared/Styles.js'\nimport TabFilter from './component/TabFilter'\nimport { useState, useMemo, useEffect, useRef } from 'react'\nimport { handleSortKeyAndReverse, handleFilters, handleFilterOptions, getComponentData } from './component/filtersFun'\n\ntype CollectionsFiltersProps = {\n metafields: any\n result: any\n allResult: any\n pageSize?: number\n filterPrice: any\n isLoading?: boolean\n loadMore?: React.ReactNode\n data?: any\n onNextPage?: (v: string) => void\n onPrevPage?: (v: string) => void\n onFilteredChange?: (filtered: any) => void\n onSortAndReverseChange?: (sortKey: string, reverse: boolean) => void\n onPrimaryChange?: (item: any, sku: string) => void\n onSecondaryChange?: (item: any, sku: string) => void\n}\nfunction CollectionsFilters(props: CollectionsFiltersProps) {\n const {\n data,\n result = {},\n allResult = {},\n loadMore = null,\n metafields = {},\n filterPrice = {},\n isLoading = false,\n onFilteredChange,\n onSortAndReverseChange,\n onPrimaryChange,\n onSecondaryChange,\n onNextPage,\n onPrevPage,\n } = props\n\n const { shop_filters_pair } = metafields\n\n const { data: filterProductData } = getComponentData(metafields, 'FilterProduct')\n\n const [closeFilter, setCloseFilter] = useState<boolean>(false)\n const [mobileDrawerVisible, setMobileDrawerVisible] = useState<boolean>(false) // \u79FB\u52A8\u7AEF\u7B5B\u9009\u9009\u9879\u5C55\u793A\u72B6\u6001\n const [openOptions, setOpenOptions] = useState<any[]>([]) // \u5C55\u5F00\u7684\u7B5B\u9009\u9879\n const [filtered, setFiltered] = useState<any>({}) // \u9009\u62E9\u7684\u7B5B\u9009\u9009\u9879\n const [sortKeyIndx, setSortKeyIndx] = useState<number>(0) // \u6392\u5E8F\u65B9\u5F0F\n const [currentPage, setCurrentPage] = useState<number>(1)\n const [isSale, setIsSale] = useState<boolean>(false)\n\n const filterCardWrapRef = useRef<any>(null)\n\n // \u5904\u7406\u6392\u5E8F\u6570\u636E\n useMemo(() => {\n const sortList = shop_filters_pair?.filter_txt?.sortList\n const [sortKey, reverse] = handleSortKeyAndReverse(sortList, sortKeyIndx)\n onSortAndReverseChange?.(sortKey, reverse)\n }, [shop_filters_pair?.filter_txt?.sortList, filtered, sortKeyIndx])\n\n const hasNoIndex = (product: { metafields: { seoSetting: { noindex: any } } }) => {\n return !product?.metafields?.seoSetting?.noindex\n }\n const totalCount = useMemo(() => {\n return allResult?.products?.filter(hasNoIndex)?.length || 0\n }, [allResult?.products])\n\n // \u5904\u7406\u7B5B\u9009\u9879\u6570\u636E\n const filtersOptions = useMemo(() => {\n return handleFilterOptions(result, filterPrice, shop_filters_pair, filterProductData)\n }, [\n filterPrice,\n result?.filters,\n shop_filters_pair?.filter_txt?.offers?.name,\n shop_filters_pair?.filter_txt?.offers?.onsale,\n ])\n\n const filtersPair = useMemo(() => {\n if (!filtersOptions?.length) return []\n return filtersOptions?.map?.((filter: any) => {\n return {\n ...filter,\n options: filter?.options?.map?.((opt: any) => {\n return {\n ...opt,\n checked: filtered?.[filter?.value]?.indexOf?.(opt?.value) > -1,\n }\n }),\n }\n })\n }, [filtered, filtersOptions])\n\n\n const clearFiltered = (flag?: boolean) => {\n setFiltered?.({})\n if (flag) {\n setCurrentPage(1)\n }\n onFilteredChange?.(handleFilters({}))\n }\n\n const filterChange = (v: any) => {\n setFiltered(v)\n setCurrentPage(1)\n onFilteredChange?.(handleFilters(v))\n }\n\n useEffect(() => {\n const offers = filtered?.offers || []\n const isShowSale = offers?.includes?.('onsale')\n setIsSale(isShowSale)\n }, [filtered])\n\n return (\n <div className=\"size-full box-border\">\n {/* \u5934\u90E8 */}\n <div className=\"laptop:mb-12 mb-6\">\n <TabFilter\n tabs={data?.tabItems}\n filtered={filtered}\n filtersPair={filtersPair}\n filtersData={filterProductData}\n metafields={metafields}\n onTabClick={v => filterChange(v)}\n />\n </div>\n <FilterHeader\n total={totalCount || 0}\n metafields={metafields}\n closeFilter={closeFilter}\n sortKeyIndx={sortKeyIndx}\n shopifyData={data}\n onSortChange={v => {\n setSortKeyIndx(v)\n filterCardWrapRef.current?.clearData?.()\n }}\n onCloseFilter={setCloseFilter}\n onClearFiltered={() => clearFiltered()}\n onMobileOpenDrawer={setMobileDrawerVisible}\n />\n {/* PC\u7B5B\u9009\u9009\u9879 */}\n <div className=\"flex-1 overflow-hidden tablet:flex desktop:gap-x-16 tablet:gap-x-8\">\n {!closeFilter && (\n <FilterList\n shopifyData={data}\n filtered={filtered}\n openOptions={openOptions}\n closeFilter={closeFilter}\n filtersPair={filtersPair}\n mobileDrawerVisible={mobileDrawerVisible}\n onFilteredChange={v => {\n filterChange(v)\n filterCardWrapRef.current?.clearData?.()\n }}\n onClearFiltered={() => clearFiltered(false)}\n onOpenOptions={setOpenOptions}\n onCloseDrawer={setMobileDrawerVisible}\n />\n )}\n <div className=\"flex-1 overflow-y-auto relative\">\n <FilterCardWrap\n page={currentPage}\n result={result}\n shopifyData={data}\n total={totalCount}\n isSale={isSale}\n ref={filterCardWrapRef}\n metafields={metafields}\n closeFilter={closeFilter}\n onNextPage={v => {\n setCurrentPage(currentPage + 1)\n onNextPage?.(v)\n }}\n onPrevPage={v => {\n setCurrentPage(currentPage - 1)\n onPrevPage?.(v)\n }}\n onPrimaryChange={(e, data) => onPrimaryChange?.(e, data)}\n onSecondaryChange={(e, data) => onSecondaryChange?.(e, data)}\n />\n {isLoading ? loadMore || null : null}\n </div>\n </div>\n </div>\n )\n}\n\nexport default withLayout(CollectionsFilters)"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import FilterList from './FilterList'\nimport FilterHeader from './FilterHeader'\nimport FilterCardWrap from './FilterCardWrap'\nimport { withLayout } from '../../shared/Styles.js'\nimport TabFilter from './component/TabFilter'\nimport { useState, useMemo, useEffect, useRef } from 'react'\nimport { handleSortKeyAndReverse, handleFilters, handleFilterOptions, getComponentData } from './component/filtersFun'\n\ntype CollectionsFiltersProps = {\n metafields: any\n result: any\n allResult: any\n pageSize?: number\n filterPrice: any\n isLoading?: boolean\n loadMore?: React.ReactNode\n data?: any\n onNextPage?: (v: string) => void\n onPrevPage?: (v: string) => void\n onFilteredChange?: (filtered: any) => void\n onSortAndReverseChange?: (sortKey: string, reverse: boolean) => void\n onPrimaryChange?: (item: any, sku: string) => void\n onSecondaryChange?: (item: any, sku: string) => void\n}\nfunction CollectionsFilters(props: CollectionsFiltersProps) {\n const {\n data,\n result = {},\n allResult = {},\n loadMore = null,\n metafields = {},\n filterPrice = {},\n isLoading = false,\n onFilteredChange,\n onSortAndReverseChange,\n onPrimaryChange,\n onSecondaryChange,\n onNextPage,\n onPrevPage,\n } = props\n\n const { shop_filters_pair } = metafields\n\n const { data: filterProductData } = getComponentData(metafields, 'FilterProduct')\n\n const [closeFilter, setCloseFilter] = useState<boolean>(false)\n const [mobileDrawerVisible, setMobileDrawerVisible] = useState<boolean>(false) // \u79FB\u52A8\u7AEF\u7B5B\u9009\u9009\u9879\u5C55\u793A\u72B6\u6001\n const [openOptions, setOpenOptions] = useState<any[]>([]) // \u5C55\u5F00\u7684\u7B5B\u9009\u9879\n const [filtered, setFiltered] = useState<any>({}) // \u9009\u62E9\u7684\u7B5B\u9009\u9009\u9879\n const [sortKeyIndx, setSortKeyIndx] = useState<number>(0) // \u6392\u5E8F\u65B9\u5F0F\n const [currentPage, setCurrentPage] = useState<number>(1)\n const [isSale, setIsSale] = useState<boolean>(false)\n\n const filterCardWrapRef = useRef<any>(null)\n\n // \u5904\u7406\u6392\u5E8F\u6570\u636E\n useMemo(() => {\n const sortList = shop_filters_pair?.filter_txt?.sortList\n const [sortKey, reverse] = handleSortKeyAndReverse(sortList, sortKeyIndx)\n onSortAndReverseChange?.(sortKey, reverse)\n }, [shop_filters_pair?.filter_txt?.sortList, filtered, sortKeyIndx])\n\n const hasNoIndex = (product: { metafields: { seoSetting: { noindex: any } } }) => {\n return !product?.metafields?.seoSetting?.noindex\n }\n const totalCount = useMemo(() => {\n return allResult?.products?.filter(hasNoIndex)?.length || 0\n }, [allResult?.products])\n\n // \u5904\u7406\u7B5B\u9009\u9879\u6570\u636E\n const filtersOptions = useMemo(() => {\n return handleFilterOptions(result, filterPrice, shop_filters_pair, filterProductData)\n }, [\n filterPrice,\n result?.filters,\n shop_filters_pair?.filter_txt?.offers?.name,\n shop_filters_pair?.filter_txt?.offers?.onsale,\n ])\n\n const filtersPair = useMemo(() => {\n if (!filtersOptions?.length) return []\n return filtersOptions?.map?.((filter: any) => {\n return {\n ...filter,\n options: filter?.options?.map?.((opt: any) => {\n return {\n ...opt,\n checked: filtered?.[filter?.value]?.indexOf?.(opt?.value) > -1,\n }\n }),\n }\n })\n }, [filtered, filtersOptions])\n\n\n const clearFiltered = (flag?: boolean) => {\n setFiltered?.({})\n if (flag) {\n setCurrentPage(1)\n }\n onFilteredChange?.(handleFilters({}))\n }\n\n const filterChange = (v: any) => {\n setFiltered(v)\n setCurrentPage(1)\n onFilteredChange?.(handleFilters(v))\n }\n\n useEffect(() => {\n const offers = filtered?.offers || []\n const isShowSale = offers?.includes?.('onsale')\n setIsSale(isShowSale)\n }, [filtered])\n\n return (\n <div className=\"size-full box-border\">\n {/* \u5934\u90E8 */}\n <div className=\"laptop:mb-12 mb-6\">\n <TabFilter\n tabs={data?.tabItems}\n filtered={filtered}\n filtersPair={filtersPair}\n filtersData={filterProductData}\n metafields={metafields}\n onTabClick={v => filterChange(v)}\n />\n </div>\n <FilterHeader\n total={totalCount || 0}\n metafields={metafields}\n closeFilter={closeFilter}\n sortKeyIndx={sortKeyIndx}\n shopifyData={data}\n onSortChange={setSortKeyIndx}\n onCloseFilter={setCloseFilter}\n onClearFiltered={() => clearFiltered()}\n onMobileOpenDrawer={setMobileDrawerVisible}\n />\n {/* PC\u7B5B\u9009\u9009\u9879 */}\n <div className=\"flex-1 overflow-hidden tablet:flex desktop:gap-x-16 tablet:gap-x-8\">\n {!closeFilter && (\n <FilterList\n shopifyData={data}\n filtered={filtered}\n openOptions={openOptions}\n closeFilter={closeFilter}\n filtersPair={filtersPair}\n mobileDrawerVisible={mobileDrawerVisible}\n onFilteredChange={filterChange}\n onClearFiltered={() => clearFiltered(false)}\n onOpenOptions={setOpenOptions}\n onCloseDrawer={setMobileDrawerVisible}\n />\n )}\n <div className=\"flex-1 overflow-y-auto relative\">\n <FilterCardWrap\n page={currentPage}\n result={result}\n shopifyData={data}\n total={totalCount}\n isSale={isSale}\n ref={filterCardWrapRef}\n metafields={metafields}\n closeFilter={closeFilter}\n onNextPage={v => {\n setCurrentPage(currentPage + 1)\n onNextPage?.(v)\n }}\n onPrevPage={v => {\n setCurrentPage(currentPage - 1)\n onPrevPage?.(v)\n }}\n onPrimaryChange={(e, data) => onPrimaryChange?.(e, data)}\n onSecondaryChange={(e, data) => onSecondaryChange?.(e, data)}\n />\n {isLoading ? loadMore || null : null}\n </div>\n </div>\n </div>\n )\n}\n\nexport default withLayout(CollectionsFilters)"],
5
+ "mappings": "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",
6
6
  "names": ["CollectionsFilters_exports", "__export", "CollectionsFilters_default", "__toCommonJS", "import_jsx_runtime", "import_FilterList", "import_FilterHeader", "import_FilterCardWrap", "import_Styles", "import_TabFilter", "import_react", "import_filtersFun", "CollectionsFilters", "props", "data", "result", "allResult", "loadMore", "metafields", "filterPrice", "isLoading", "onFilteredChange", "onSortAndReverseChange", "onPrimaryChange", "onSecondaryChange", "onNextPage", "onPrevPage", "shop_filters_pair", "filterProductData", "closeFilter", "setCloseFilter", "mobileDrawerVisible", "setMobileDrawerVisible", "openOptions", "setOpenOptions", "filtered", "setFiltered", "sortKeyIndx", "setSortKeyIndx", "currentPage", "setCurrentPage", "isSale", "setIsSale", "filterCardWrapRef", "sortList", "sortKey", "reverse", "hasNoIndex", "product", "totalCount", "filtersOptions", "filtersPair", "filter", "opt", "clearFiltered", "flag", "filterChange", "v", "isShowSale", "TabFilter", "FilterHeader", "FilterList", "FilterCardWrap"]
7
7
  }