@anker-in/headless-ui 1.0.16-temp-09113 → 1.0.16-temp-09115

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 l=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var m=(r,e)=>{for(var i in e)l(r,i,{get:e[i],enumerable:!0})},v=(r,e,i,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of w(e))!g.call(r,t)&&t!==i&&l(r,t,{get:()=>e[t],enumerable:!(a=p(e,t))||a.enumerable});return r};var f=r=>v(l({},"__esModule",{value:!0}),r);var u={};m(u,{default:()=>c});module.exports=f(u);var o=require("react/jsx-runtime"),d=require("../../helpers/utils.js"),n=require("react-responsive");function c(r){const{children:e,closeFilter:i,isShowMore:a,onViewMoreChange:t}=r,s=(0,n.useMediaQuery)({query:"(max-width: 768px)"});return(0,o.jsxs)("div",{className:"filter-card-wrap-container",children:[(0,o.jsx)("div",{className:(0,d.cn)("w-full grid gap-3 grid-cols-2",{"laptop:grid-cols-4 tablet:grid-cols-3":i&&!s,"laptop:grid-cols-3 tablet:grid-cols-2":!i&&!s},"filter-card-wrap"),children:e}),!a&&(0,o.jsxs)("div",{className:"mt-6 text-base font-bold cursor-pointer flex items-center justify-center gap-1 filter-card-wrap-more",onClick:t,children:[(0,o.jsx)("span",{children:"View More"}),(0,o.jsx)("div",{className:"size-[18px]",children:(0,o.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon",children:(0,o.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})})})]})]})}
1
+ "use strict";var l=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var m=(r,e)=>{for(var i in e)l(r,i,{get:e[i],enumerable:!0})},u=(r,e,i,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of w(e))!g.call(r,t)&&t!==i&&l(r,t,{get:()=>e[t],enumerable:!(a=p(e,t))||a.enumerable});return r};var v=r=>u(l({},"__esModule",{value:!0}),r);var f={};m(f,{default:()=>c});module.exports=v(f);var o=require("react/jsx-runtime"),d=require("../../helpers/utils.js"),n=require("react-responsive");function c(r){const{children:e,closeFilter:i,isShowMore:a,onViewMoreChange:t}=r,s=(0,n.useMediaQuery)({query:"(max-width: 768px)"});return(0,o.jsxs)("div",{className:"filter-card-wrap-container",children:[(0,o.jsx)("div",{className:(0,d.cn)("w-full grid gap-3 grid-cols-2",{"laptop:grid-cols-4 tablet:grid-cols-3":i&&!s,"laptop:grid-cols-3 tablet:grid-cols-2":!i&&!s},"filter-card-wrap"),children:e}),a?(0,o.jsxs)("div",{className:"mt-6 text-base font-bold cursor-pointer flex items-center justify-center gap-1 filter-card-wrap-more",onClick:t,children:[(0,o.jsx)("span",{children:"View More"}),(0,o.jsx)("div",{className:"size-[18px]",children:(0,o.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon",children:(0,o.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})})})]}):null]})}
2
2
  //# sourceMappingURL=FilterCardWrap.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/CollectionsFilters/FilterCardWrap.tsx"],
4
- "sourcesContent": ["import { cn } from '../../helpers/utils.js'\nimport { useMediaQuery } from 'react-responsive'\n\ntype FilterCardWrapProps = {\n children: React.ReactNode\n isShowMore?: boolean\n closeFilter: boolean\n onViewMoreChange: () => void\n}\n\nexport default function FilterCardWrap(props: FilterCardWrapProps) {\n const { children, closeFilter, isShowMore, onViewMoreChange } = props\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n\n return (\n <div className=\"filter-card-wrap-container\">\n <div\n className={cn(\n 'w-full grid gap-3 grid-cols-2',\n {\n 'laptop:grid-cols-4 tablet:grid-cols-3': closeFilter && !isMobile,\n 'laptop:grid-cols-3 tablet:grid-cols-2': !closeFilter && !isMobile,\n },\n 'filter-card-wrap'\n )}\n >\n {children}\n </div>\n {!isShowMore && (\n <div\n className=\"mt-6 text-base font-bold cursor-pointer flex items-center justify-center gap-1 filter-card-wrap-more\"\n onClick={onViewMoreChange}\n >\n <span>View More</span>\n <div className=\"size-[18px]\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n data-slot=\"icon\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </div>\n </div>\n )}\n </div>\n )\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAiBM,IAAAI,EAAA,6BAjBNC,EAAmB,kCACnBC,EAA8B,4BASf,SAARJ,EAAgCK,EAA4B,CACjE,KAAM,CAAE,SAAAC,EAAU,YAAAC,EAAa,WAAAC,EAAY,iBAAAC,CAAiB,EAAIJ,EAE1DK,KAAW,iBAAc,CAAE,MAAO,oBAAqB,CAAC,EAE9D,SACE,QAAC,OAAI,UAAU,6BACb,oBAAC,OACC,aAAW,MACT,gCACA,CACE,wCAAyCH,GAAe,CAACG,EACzD,wCAAyC,CAACH,GAAe,CAACG,CAC5D,EACA,kBACF,EAEC,SAAAJ,EACH,EACC,CAACE,MACA,QAAC,OACC,UAAU,uGACV,QAASC,EAET,oBAAC,QAAK,qBAAS,KACf,OAAC,OAAI,UAAU,cACb,mBAAC,OACC,MAAM,6BACN,KAAK,OACL,QAAQ,YACR,eAAa,MACb,OAAO,eACP,cAAY,OACZ,YAAU,OAEV,mBAAC,QAAK,iBAAe,QAAQ,kBAAgB,QAAQ,EAAE,6BAA6B,EACtF,EACF,GACF,GAEJ,CAEJ",
4
+ "sourcesContent": ["import { cn } from '../../helpers/utils.js'\nimport { useMediaQuery } from 'react-responsive'\n\ntype FilterCardWrapProps = {\n children: React.ReactNode\n isShowMore?: boolean\n closeFilter: boolean\n onViewMoreChange: () => void\n}\n\nexport default function FilterCardWrap(props: FilterCardWrapProps) {\n const { children, closeFilter, isShowMore, onViewMoreChange } = props\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n\n return (\n <div className=\"filter-card-wrap-container\">\n <div\n className={cn(\n 'w-full grid gap-3 grid-cols-2',\n {\n 'laptop:grid-cols-4 tablet:grid-cols-3': closeFilter && !isMobile,\n 'laptop:grid-cols-3 tablet:grid-cols-2': !closeFilter && !isMobile,\n },\n 'filter-card-wrap'\n )}\n >\n {children}\n </div>\n {isShowMore ? (\n <div\n className=\"mt-6 text-base font-bold cursor-pointer flex items-center justify-center gap-1 filter-card-wrap-more\"\n onClick={onViewMoreChange}\n >\n <span>View More</span>\n <div className=\"size-[18px]\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n data-slot=\"icon\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </div>\n </div>\n ): null}\n </div>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAiBM,IAAAI,EAAA,6BAjBNC,EAAmB,kCACnBC,EAA8B,4BASf,SAARJ,EAAgCK,EAA4B,CACjE,KAAM,CAAE,SAAAC,EAAU,YAAAC,EAAa,WAAAC,EAAY,iBAAAC,CAAiB,EAAIJ,EAE1DK,KAAW,iBAAc,CAAE,MAAO,oBAAqB,CAAC,EAE9D,SACE,QAAC,OAAI,UAAU,6BACb,oBAAC,OACC,aAAW,MACT,gCACA,CACE,wCAAyCH,GAAe,CAACG,EACzD,wCAAyC,CAACH,GAAe,CAACG,CAC5D,EACA,kBACF,EAEC,SAAAJ,EACH,EACCE,KACC,QAAC,OACC,UAAU,uGACV,QAASC,EAET,oBAAC,QAAK,qBAAS,KACf,OAAC,OAAI,UAAU,cACb,mBAAC,OACC,MAAM,6BACN,KAAK,OACL,QAAQ,YACR,eAAa,MACb,OAAO,eACP,cAAY,OACZ,YAAU,OAEV,mBAAC,QAAK,iBAAe,QAAQ,kBAAgB,QAAQ,EAAE,6BAA6B,EACtF,EACF,GACF,EACC,MACL,CAEJ",
6
6
  "names": ["FilterCardWrap_exports", "__export", "FilterCardWrap", "__toCommonJS", "import_jsx_runtime", "import_utils", "import_react_responsive", "props", "children", "closeFilter", "isShowMore", "onViewMoreChange", "isMobile"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var b=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var _=(s,t)=>{for(var i in t)b(s,i,{get:t[i],enumerable:!0})},k=(s,t,i,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of y(t))!C.call(s,a)&&a!==i&&b(s,a,{get:()=>t[a],enumerable:!(d=g(t,a))||d.enumerable});return s};var w=s=>k(b({},"__esModule",{value:!0}),s);var S={};_(S,{default:()=>v});module.exports=w(S);var e=require("react/jsx-runtime"),r=require("../../helpers/utils"),o=require("../../components/index.js"),D=require("./component/TabFilter"),$=require("es-toolkit"),u=require("react");function v(s){const{total:t,closeFilter:i,metafields:d,onSortChange:a,onCloseFilter:h,onClearFiltered:N,onMobileOpenDrawer:F,sortKeyIndx:f}=s,{shop_filters_pair:l}=d,[m,p]=(0,u.useState)(!1),x=n=>h?.(n);return(0,e.jsxs)("div",{className:"filter-header",children:[(0,e.jsxs)("div",{className:(0,r.cn)("desktop:gap-x-16 tablet:gap-x-8","relative flex md-tablet:p-0 text-base font-bold box-border","tablet:border-b tablet:border-[#E4E5E6] tablet:pb-4 tablet:mb-4 mb-2"),children:[!i&&(0,e.jsxs)("div",{className:(0,r.cn)("md-tablet:hidden flex-shrink-0 flex justify-between items-center","desktop:w-60 tablet:w-48 laptop:w-[210px] md-tablet:w-fit box-border"),children:[(0,e.jsxs)("div",{className:"flex items-center cursor-pointer",onClick:()=>x(!0),children:[(0,e.jsx)(o.Picture,{className:"mb-1 size-5",source:"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638"}),(0,e.jsx)("span",{className:"font-bold inline-block pl-2 leading-none",children:l?.filter_txt?.filter||"Close Filter"})]}),(0,e.jsx)("span",{onClick:()=>N(),className:"text-center text-base md:hidden font-bold text-[#1D1D1F] cursor-pointer box-border",children:"Clear"})]}),(0,e.jsxs)("div",{className:"flex-1 flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"md-tablet:hidden flex items-center gap-x-4",children:[i&&(0,e.jsxs)("div",{className:"flex items-center cursor-pointer",onClick:()=>x(!1),children:[(0,e.jsx)(o.Picture,{className:"mb-1 size-5",source:"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638"}),(0,e.jsx)("span",{className:"font-bold inline-block pl-2 leading-none",children:l?.filter_txt?.filter||"Open Filter"})]}),l?.filter_txt?.found?(0,e.jsx)(o.Text,{className:"text-base font-bold text-[#86868C] md:hidden",html:l?.filter_txt?.found?.replace("${number}",t||0)}):(0,e.jsx)(o.Text,{className:"text-base font-bold text-[#86868C] md:hidden",html:`${t||0} Item(s) Found`})]}),(0,e.jsx)("div",{className:"hidden md-tablet:block",children:(0,e.jsxs)("div",{className:"flex items-center",onClick:()=>F?.(!0),children:[(0,e.jsx)(o.Picture,{className:"inline-block size-[20px]",source:"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638"}),(0,e.jsx)("span",{className:"font-bold inline-block pl-2 leading-none",children:l?.filter_txt?.filter||"Close Filter"})]})}),(0,e.jsxs)("div",{className:"flex items-center relative cursor-pointer",onClick:()=>p(!m),children:[(0,e.jsx)("span",{className:"text-base pr-1 text-[#777]",dangerouslySetInnerHTML:{__html:`${l?.filter_txt?.sort}: `||"Sort by: "}}),(0,e.jsx)(o.Text,{html:l?.filter_txt.sortList?.[f]?.txt||"Recommended",className:"text-base font-[700] text-[#333]"}),(0,e.jsx)("div",{className:`ml-1 size-4 duration-300 ease-in-out ${m&&"rotate-180"}`,children:(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon",children:(0,e.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})})}),(0,e.jsx)("ul",{className:(0,r.cn)("w-full bg-[#FFFFFF] z-10 py-2 px-0 rounded-lg transition-all duration-400 ease-in-out","md-tablet:left-0 md-tablet:top-[120%] md-tablet:text-left absolute top-[110%] right-0",m?"visibility opacity-100":"invisible opacity-0"),children:l?.filter_txt?.sortList?.map((n,c)=>(0,e.jsx)("li",{className:(0,r.cn)("cursor-pointer w-full py-3 px-4 text-base font-semibold text-[#333] [&:hover]:bg-[#f7f8f9]",c===f?"opacity-60":""),children:(0,e.jsx)("button",{name:n?.txt,className:"md-tablet:text-left",dangerouslySetInnerHTML:{__html:n?.txt},onClick:()=>{p(!1),a(c)}})},n?.txt+c))})]})]})]}),(0,e.jsx)("div",{className:"mb-2 hidden md-tablet:block",children:l?.filter_txt?.found?(0,e.jsx)(o.Text,{className:"text-base font-bold text-[#86868C]",html:l?.filter_txt?.found?.replace("${number}",t||0)}):(0,e.jsx)(o.Text,{className:"text-base font-bold text-[#86868C]",html:`${t||0} Item(s) Found`})})]})}
1
+ "use strict";var b=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var _=(s,t)=>{for(var i in t)b(s,i,{get:t[i],enumerable:!0})},k=(s,t,i,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of y(t))!C.call(s,a)&&a!==i&&b(s,a,{get:()=>t[a],enumerable:!(d=g(t,a))||d.enumerable});return s};var w=s=>k(b({},"__esModule",{value:!0}),s);var S={};_(S,{default:()=>v});module.exports=w(S);var e=require("react/jsx-runtime"),r=require("../../helpers/utils"),o=require("../../components/index.js"),D=require("./component/TabFilter"),$=require("es-toolkit"),u=require("react");function v(s){const{total:t,closeFilter:i,metafields:d,onSortChange:a,onCloseFilter:h,onClearFiltered:N,onMobileOpenDrawer:F,sortKeyIndx:f}=s,{shop_filters_pair:l}=d,[m,p]=(0,u.useState)(!1),x=n=>h?.(n);return(0,e.jsxs)("div",{className:"filter-header",children:[(0,e.jsxs)("div",{className:(0,r.cn)("desktop:gap-x-16 tablet:gap-x-8","relative flex md-tablet:p-0 text-base font-bold box-border","tablet:border-b tablet:border-[#E4E5E6] tablet:pb-4 tablet:mb-4 mb-2"),children:[!i&&(0,e.jsxs)("div",{className:(0,r.cn)("md-tablet:hidden flex-shrink-0 flex justify-between items-center","desktop:w-60 tablet:w-48 laptop:w-[210px] md-tablet:w-fit box-border"),children:[(0,e.jsxs)("div",{className:"flex items-center cursor-pointer",onClick:()=>x(!0),children:[(0,e.jsx)(o.Picture,{className:"mb-1 size-5",source:"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638"}),(0,e.jsx)("span",{className:"font-bold inline-block pl-2 leading-none",children:l?.filter_txt?.filter||"Close Filter"})]}),(0,e.jsx)("span",{onClick:()=>N(),className:"text-center text-base md:hidden font-bold text-[#1D1D1F] cursor-pointer box-border",children:"Clear"})]}),(0,e.jsxs)("div",{className:"flex-1 flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"md-tablet:hidden flex items-center gap-x-4",children:[i&&(0,e.jsxs)("div",{className:"flex items-center cursor-pointer",onClick:()=>x(!1),children:[(0,e.jsx)(o.Picture,{className:"mb-1 size-5",source:"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638"}),(0,e.jsx)("span",{className:"font-bold inline-block pl-2 leading-none",children:l?.filter_txt?.filter||"Open Filter"})]}),l?.filter_txt?.found?(0,e.jsx)(o.Text,{className:"text-base font-bold text-[#86868C] md:hidden",html:l?.filter_txt?.found?.replace("${number}",t||0)}):(0,e.jsx)(o.Text,{className:"text-base font-bold text-[#86868C] md:hidden",html:`${t||0} Item(s) Found`})]}),(0,e.jsx)("div",{className:"hidden md-tablet:block",children:(0,e.jsxs)("div",{className:"flex items-center",onClick:()=>F?.(!0),children:[(0,e.jsx)(o.Picture,{className:"inline-block size-[20px]",source:"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638"}),(0,e.jsx)("span",{className:"font-bold inline-block pl-2 leading-none",children:l?.filter_txt?.filter||"Close Filter"})]})}),(0,e.jsxs)("div",{className:"flex items-center relative cursor-pointer",onClick:()=>p(!m),children:[(0,e.jsx)("span",{className:"text-base pr-1 text-[#777]",dangerouslySetInnerHTML:{__html:`${l?.filter_txt?.sort||"Sort by"}: `}}),(0,e.jsx)(o.Text,{html:l?.filter_txt.sortList?.[f]?.txt||"Recommended",className:"text-base font-[700] text-[#333]"}),(0,e.jsx)("div",{className:`ml-1 size-4 duration-300 ease-in-out ${m&&"rotate-180"}`,children:(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon",children:(0,e.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})})}),(0,e.jsx)("ul",{className:(0,r.cn)("w-full bg-[#FFFFFF] z-10 py-2 px-0 rounded-lg transition-all duration-400 ease-in-out","md-tablet:left-0 md-tablet:top-[120%] md-tablet:text-left absolute top-[110%] right-0",m?"visibility opacity-100":"invisible opacity-0"),children:l?.filter_txt?.sortList?.map((n,c)=>(0,e.jsx)("li",{className:(0,r.cn)("cursor-pointer w-full py-3 px-4 text-base font-semibold text-[#333] [&:hover]:bg-[#f7f8f9]",c===f?"opacity-60":""),children:(0,e.jsx)("button",{name:n?.txt,className:"md-tablet:text-left",dangerouslySetInnerHTML:{__html:n?.txt},onClick:()=>{p(!1),a(c)}})},n?.txt+c))})]})]})]}),(0,e.jsx)("div",{className:"mb-2 hidden md-tablet:block",children:l?.filter_txt?.found?(0,e.jsx)(o.Text,{className:"text-base font-bold text-[#86868C]",html:l?.filter_txt?.found?.replace("${number}",t||0)}):(0,e.jsx)(o.Text,{className:"text-base font-bold text-[#86868C]",html:`${t||0} Item(s) Found`})})]})}
2
2
  //# sourceMappingURL=FilterHeader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/CollectionsFilters/FilterHeader.tsx"],
4
- "sourcesContent": ["import { cn } from '../../helpers/utils'\nimport { Picture, Text } from '../../components/index.js'\nimport TabFilter from './component/TabFilter'\nimport { cloneDeep } from 'es-toolkit'\nimport { useState, useMemo } from 'react'\n\ntype FilterHeaderProps = {\n total?: number\n sortKeyIndx: number\n metafields: any\n closeFilter: boolean\n onClearFiltered: () => void\n onSortChange: (sortKeyIndx: number) => void\n onCloseFilter: (closeFilter: boolean) => void\n onMobileOpenDrawer: (openDrawer: boolean) => void\n}\n\nexport default function FilterHeader(props: FilterHeaderProps) {\n const {\n total,\n closeFilter,\n metafields,\n onSortChange,\n onCloseFilter,\n onClearFiltered,\n onMobileOpenDrawer,\n sortKeyIndx,\n } = props\n\n const { shop_filters_pair: shopFiltersPair } = metafields\n\n const [openSort, setOpenSort] = useState<boolean>(false)\n\n const onCloseOrOpenFilter = (closeFilter: boolean) => onCloseFilter?.(closeFilter)\n\n return (\n <div className=\"filter-header\">\n <div\n className={cn(\n 'desktop:gap-x-16 tablet:gap-x-8',\n 'relative flex md-tablet:p-0 text-base font-bold box-border',\n 'tablet:border-b tablet:border-[#E4E5E6] tablet:pb-4 tablet:mb-4 mb-2'\n )}\n >\n {/* pc\u5C55\u793A\u7684\u7B5B\u9009(open\u72B6\u6001) */}\n {!closeFilter && (\n <div\n className={cn(\n 'md-tablet:hidden flex-shrink-0 flex justify-between items-center',\n 'desktop:w-60 tablet:w-48 laptop:w-[210px] md-tablet:w-fit box-border'\n )}\n >\n <div className=\"flex items-center cursor-pointer\" onClick={() => onCloseOrOpenFilter(true)}>\n <Picture\n className=\"mb-1 size-5\"\n source=\"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638\"\n />\n <span className=\"font-bold inline-block pl-2 leading-none\">\n {shopFiltersPair?.filter_txt?.filter || 'Close Filter'}\n </span>\n </div>\n <span\n onClick={() => onClearFiltered()}\n className=\"text-center text-base md:hidden font-bold text-[#1D1D1F] cursor-pointer box-border\"\n >\n Clear\n </span>\n </div>\n )}\n <div className=\"flex-1 flex items-center justify-between\">\n {/* pc\u7AEF\u5C55\u793A\u7684\u7B5B\u9009\uFF08close\u72B6\u6001\uFF09 */}\n <div className=\"md-tablet:hidden flex items-center gap-x-4\">\n {closeFilter && (\n <div className=\"flex items-center cursor-pointer\" onClick={() => onCloseOrOpenFilter(false)}>\n <Picture\n className=\"mb-1 size-5\"\n source=\"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638\"\n />\n <span className=\"font-bold inline-block pl-2 leading-none\">\n {shopFiltersPair?.filter_txt?.filter || 'Open Filter'}\n </span>\n </div>\n )}\n {shopFiltersPair?.filter_txt?.found ? (\n <Text\n className=\"text-base font-bold text-[#86868C] md:hidden\"\n html={shopFiltersPair?.filter_txt?.found?.replace('${number}', total || 0)}\n />\n ) : (\n <Text className=\"text-base font-bold text-[#86868C] md:hidden\" html={`${total || 0} Item(s) Found`} />\n )}\n </div>\n {/* \u79FB\u52A8\u7AEF\u5C55\u793A\u7684\u7B5B\u9009 */}\n <div className=\"hidden md-tablet:block\">\n <div className=\"flex items-center\" onClick={() => onMobileOpenDrawer?.(true)}>\n <Picture\n className=\"inline-block size-[20px]\"\n source=\"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638\"\n />\n <span className=\"font-bold inline-block pl-2 leading-none\">\n {shopFiltersPair?.filter_txt?.filter || 'Close Filter'}\n </span>\n </div>\n </div>\n {/* \u6392\u5E8F */}\n <div className=\"flex items-center relative cursor-pointer\" onClick={() => setOpenSort(!openSort)}>\n <span\n className=\"text-base pr-1 text-[#777]\"\n dangerouslySetInnerHTML={{\n __html: `${shopFiltersPair?.filter_txt?.sort}: ` || 'Sort by: ',\n }}\n />\n <Text\n html={shopFiltersPair?.filter_txt.sortList?.[sortKeyIndx]?.txt || 'Recommended'}\n className=\"text-base font-[700] text-[#333]\"\n />\n <div className={`ml-1 size-4 duration-300 ease-in-out ${openSort && 'rotate-180'}`}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n data-slot=\"icon\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </div>\n <ul\n className={cn(\n 'w-full bg-[#FFFFFF] z-10 py-2 px-0 rounded-lg transition-all duration-400 ease-in-out',\n 'md-tablet:left-0 md-tablet:top-[120%] md-tablet:text-left absolute top-[110%] right-0',\n openSort ? 'visibility opacity-100' : 'invisible opacity-0'\n )}\n >\n {shopFiltersPair?.filter_txt?.sortList?.map((l: any, k: number) => (\n <li\n key={l?.txt + k}\n className={cn(\n 'cursor-pointer w-full py-3 px-4 text-base font-semibold text-[#333] [&:hover]:bg-[#f7f8f9]',\n k === sortKeyIndx ? 'opacity-60' : ''\n )}\n >\n <button\n name={l?.txt}\n className={'md-tablet:text-left'}\n dangerouslySetInnerHTML={{ __html: l?.txt }}\n onClick={() => {\n setOpenSort(false)\n onSortChange(k)\n }}\n />\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n <div className=\"mb-2 hidden md-tablet:block\">\n {shopFiltersPair?.filter_txt?.found ? (\n <Text\n className=\"text-base font-bold text-[#86868C]\"\n html={shopFiltersPair?.filter_txt?.found?.replace('${number}', total || 0)}\n />\n ) : (\n <Text className=\"text-base font-bold text-[#86868C]\" html={`${total || 0} Item(s) Found`} />\n )}\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { cn } from '../../helpers/utils'\nimport { Picture, Text } from '../../components/index.js'\nimport TabFilter from './component/TabFilter'\nimport { cloneDeep } from 'es-toolkit'\nimport { useState, useMemo } from 'react'\n\ntype FilterHeaderProps = {\n total?: number\n sortKeyIndx: number\n metafields: any\n closeFilter: boolean\n onClearFiltered: () => void\n onSortChange: (sortKeyIndx: number) => void\n onCloseFilter: (closeFilter: boolean) => void\n onMobileOpenDrawer: (openDrawer: boolean) => void\n}\n\nexport default function FilterHeader(props: FilterHeaderProps) {\n const {\n total,\n closeFilter,\n metafields,\n onSortChange,\n onCloseFilter,\n onClearFiltered,\n onMobileOpenDrawer,\n sortKeyIndx,\n } = props\n\n const { shop_filters_pair: shopFiltersPair } = metafields\n\n const [openSort, setOpenSort] = useState<boolean>(false)\n\n const onCloseOrOpenFilter = (closeFilter: boolean) => onCloseFilter?.(closeFilter)\n\n return (\n <div className=\"filter-header\">\n <div\n className={cn(\n 'desktop:gap-x-16 tablet:gap-x-8',\n 'relative flex md-tablet:p-0 text-base font-bold box-border',\n 'tablet:border-b tablet:border-[#E4E5E6] tablet:pb-4 tablet:mb-4 mb-2'\n )}\n >\n {/* pc\u5C55\u793A\u7684\u7B5B\u9009(open\u72B6\u6001) */}\n {!closeFilter && (\n <div\n className={cn(\n 'md-tablet:hidden flex-shrink-0 flex justify-between items-center',\n 'desktop:w-60 tablet:w-48 laptop:w-[210px] md-tablet:w-fit box-border'\n )}\n >\n <div className=\"flex items-center cursor-pointer\" onClick={() => onCloseOrOpenFilter(true)}>\n <Picture\n className=\"mb-1 size-5\"\n source=\"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638\"\n />\n <span className=\"font-bold inline-block pl-2 leading-none\">\n {shopFiltersPair?.filter_txt?.filter || 'Close Filter'}\n </span>\n </div>\n <span\n onClick={() => onClearFiltered()}\n className=\"text-center text-base md:hidden font-bold text-[#1D1D1F] cursor-pointer box-border\"\n >\n Clear\n </span>\n </div>\n )}\n <div className=\"flex-1 flex items-center justify-between\">\n {/* pc\u7AEF\u5C55\u793A\u7684\u7B5B\u9009\uFF08close\u72B6\u6001\uFF09 */}\n <div className=\"md-tablet:hidden flex items-center gap-x-4\">\n {closeFilter && (\n <div className=\"flex items-center cursor-pointer\" onClick={() => onCloseOrOpenFilter(false)}>\n <Picture\n className=\"mb-1 size-5\"\n source=\"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638\"\n />\n <span className=\"font-bold inline-block pl-2 leading-none\">\n {shopFiltersPair?.filter_txt?.filter || 'Open Filter'}\n </span>\n </div>\n )}\n {shopFiltersPair?.filter_txt?.found ? (\n <Text\n className=\"text-base font-bold text-[#86868C] md:hidden\"\n html={shopFiltersPair?.filter_txt?.found?.replace('${number}', total || 0)}\n />\n ) : (\n <Text className=\"text-base font-bold text-[#86868C] md:hidden\" html={`${total || 0} Item(s) Found`} />\n )}\n </div>\n {/* \u79FB\u52A8\u7AEF\u5C55\u793A\u7684\u7B5B\u9009 */}\n <div className=\"hidden md-tablet:block\">\n <div className=\"flex items-center\" onClick={() => onMobileOpenDrawer?.(true)}>\n <Picture\n className=\"inline-block size-[20px]\"\n source=\"https://cdn.shopify.com/s/files/1/0508/1815/4652/files/icon_table-of-contents.svg?v=1694054638\"\n />\n <span className=\"font-bold inline-block pl-2 leading-none\">\n {shopFiltersPair?.filter_txt?.filter || 'Close Filter'}\n </span>\n </div>\n </div>\n {/* \u6392\u5E8F */}\n <div className=\"flex items-center relative cursor-pointer\" onClick={() => setOpenSort(!openSort)}>\n <span\n className=\"text-base pr-1 text-[#777]\"\n dangerouslySetInnerHTML={{\n __html: `${shopFiltersPair?.filter_txt?.sort || 'Sort by'}: `\n }}\n />\n <Text\n html={shopFiltersPair?.filter_txt.sortList?.[sortKeyIndx]?.txt || 'Recommended'}\n className=\"text-base font-[700] text-[#333]\"\n />\n <div className={`ml-1 size-4 duration-300 ease-in-out ${openSort && 'rotate-180'}`}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n data-slot=\"icon\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </div>\n <ul\n className={cn(\n 'w-full bg-[#FFFFFF] z-10 py-2 px-0 rounded-lg transition-all duration-400 ease-in-out',\n 'md-tablet:left-0 md-tablet:top-[120%] md-tablet:text-left absolute top-[110%] right-0',\n openSort ? 'visibility opacity-100' : 'invisible opacity-0'\n )}\n >\n {shopFiltersPair?.filter_txt?.sortList?.map((l: any, k: number) => (\n <li\n key={l?.txt + k}\n className={cn(\n 'cursor-pointer w-full py-3 px-4 text-base font-semibold text-[#333] [&:hover]:bg-[#f7f8f9]',\n k === sortKeyIndx ? 'opacity-60' : ''\n )}\n >\n <button\n name={l?.txt}\n className={'md-tablet:text-left'}\n dangerouslySetInnerHTML={{ __html: l?.txt }}\n onClick={() => {\n setOpenSort(false)\n onSortChange(k)\n }}\n />\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n <div className=\"mb-2 hidden md-tablet:block\">\n {shopFiltersPair?.filter_txt?.found ? (\n <Text\n className=\"text-base font-bold text-[#86868C]\"\n html={shopFiltersPair?.filter_txt?.found?.replace('${number}', total || 0)}\n />\n ) : (\n <Text className=\"text-base font-bold text-[#86868C]\" html={`${total || 0} Item(s) Found`} />\n )}\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["FilterHeader_exports", "__export", "FilterHeader", "__toCommonJS", "import_jsx_runtime", "import_utils", "import_components", "import_TabFilter", "import_es_toolkit", "import_react", "props", "total", "closeFilter", "metafields", "onSortChange", "onCloseFilter", "onClearFiltered", "onMobileOpenDrawer", "sortKeyIndx", "shopFiltersPair", "openSort", "setOpenSort", "onCloseOrOpenFilter", "l", "k"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var E=Object.create;var f=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty;var z=(a,n)=>{for(var i in n)f(a,i,{get:n[i],enumerable:!0})},N=(a,n,i,u)=>{if(n&&typeof n=="object"||typeof n=="function")for(let m of P(n))!H.call(a,m)&&m!==i&&f(a,m,{get:()=>n[m],enumerable:!(u=M(n,m))||u.enumerable});return a};var T=(a,n,i)=>(i=a!=null?E(A(a)):{},N(n||!a||!a.__esModule?f(i,"default",{value:a,enumerable:!0}):i,a)),j=a=>N(f({},"__esModule",{value:!0}),a);var U={};z(U,{default:()=>D});module.exports=j(U);var e=require("react/jsx-runtime"),k=T(require("./component/AnimatedUL")),p=require("../../helpers/utils"),v=require("es-toolkit"),w=require("react"),C=require("react-responsive"),r=require("../../components/index.js");function D(a){const n=(0,C.useMediaQuery)({query:"(max-width: 768px)"}),{filtersPair:i,closeFilter:u,filtered:m,openOptions:h,mobileDrawerVisible:F,onCloseDrawer:y,onFilteredChange:O,onOpenOptions:g}=a,L=(t,d,o,l)=>{const s=t.target,c=(0,v.cloneDeep)(m);let b=c?.[s.name]||[];s.checked?l==="checkbox"?b.push(s.value):b=[s.value]:(0,v.remove)(b,B=>B===s.value),c[s.name]=b,b.length<=0&&Reflect.deleteProperty(c,s.name),O?.({...c},d,o)},$=t=>{let d=h.concat();d.map(o=>o.label===t?o.show=!o.show:o),g?.(d)},x=()=>i?.length>0&&(0,e.jsx)("div",{className:"filter-list",children:i.map((t,d)=>{const o=h?.find?.(l=>l.label==t.label);return(0,e.jsxs)("div",{className:(0,p.cn)("mb-6 flex-1 overflow-hidden text-left duration-300 ease-in-out"),children:[(0,e.jsxs)("div",{onClick:()=>$(t.label),className:"relative flex items-center justify-between md-tablet:justify-center text-base font-bold cursor-pointer leading-none",children:[(0,e.jsx)("button",{className:"w-full whitespace-nowrap text-left font-medium overflow-hidden box-border",children:(0,e.jsx)("span",{className:"pr-2 font-bold truncate",children:t.label})}),(0,e.jsx)("div",{className:`size-4 duration-300 ease-in-out ${o?.show&&"rotate-180"}`,children:(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon",children:(0,e.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})})})]}),(0,e.jsx)("div",{className:"transition-all duration-400 ease-in-out overflow-hidden",children:(0,e.jsx)(k.default,{className:"pt-5 transition-all duration-400 ease-in-out","data-label":t.label,isOpen:!!o?.show,children:t.options.map((l,s)=>{const c=t.type?t.type==="checkbox"?"checkbox":"radio":"checkbox";return(0,e.jsx)("li",{className:(0,p.cn)("w-full mb-3 box-border",{disabled:l?.count<=0,"mb-0":s>=t?.options?.length-1}),children:(0,e.jsxs)("label",{className:"flex items-center overflow-hidden box-border",htmlFor:`${t.value}-${s}`,children:[(0,e.jsx)("input",{type:c,name:t.value,value:l.value,id:`${t.value}-${s}`,disabled:l?.count<=0,checked:l.checked,className:"size-4 cursor-pointer accent-[#000000]",onChange:b=>L(b,t,l,c)}),(0,e.jsx)("p",{className:(0,p.cn)("pt-0.5 pl-3 inline-block cursor-pointer font-bold leading-none text-base"),children:l.label})]})},l.value)})})})]},`${t.label}${d}`)})});return(0,w.useEffect)(()=>{if(h?.length===0){let t=[];const d=document?.getElementsByClassName("pt-5 transition-all duration-400 ease-in-out");for(let o=0;o<d.length;o++){let l={};l.label=d[o]?.getAttribute("data-label"),l.show=n?!1:o<6,l.height=document?.getElementsByClassName("pt-5 transition-all duration-400 ease-in-out")?.[o]?.clientHeight,t.push(l)}g?.(t)}},[i]),(0,w.useEffect)(()=>{!n&&y?.(!1)},[n]),(0,e.jsxs)("div",{className:(0,p.cn)("transition-all duration-400 ease-in-out","desktop:w-60 tablet:w-48 laptop:w-[210px] md-tablet:hidden","md-tablet:fixed md-tablet:bottom-0 md-tablet:left-0 md-tablet:right-0 md-tablet:top-0 md-tablet:z-[99]",u?"md-tablet:pointer-events-auto md-tablet:opacity-100":"md-tablet:pointer-events-none md-tablet:opacity-0"),children:[(0,e.jsx)("div",{className:(0,p.cn)("transition-all duration-400 ease-in-out md-tablet:absolute md-tablet:bottom-0 md-tablet:h-[90vh] md-tablet:w-full",u?"md-tablet:translate-y-0":"md-tablet:translate-y-[100%]"),children:x()}),(0,e.jsx)(r.Drawer,{open:F,onOpenChange:()=>y(!1),children:(0,e.jsxs)(r.DrawerContent,{className:"px-4 pb-4 max-h-[94.5vh] flex flex-col",children:[(0,e.jsx)(r.DrawerHeader,{className:"sticky top-0 inset-x-0 py-0 mb-6",children:(0,e.jsx)(r.DrawerTitle,{children:"Mobile Filter"})}),(0,e.jsx)("div",{className:"flex-1 overflow-y-auto",children:x()}),(0,e.jsx)(r.DrawerFooter,{className:"py-0 pt-4",children:(0,e.jsxs)("div",{className:(0,p.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2"),children:[(0,e.jsx)(r.Button,{variant:"secondary",className:"m-tablet:w-full",children:"Clear"}),(0,e.jsx)(r.Button,{variant:"primary",className:"m-tablet:w-full",children:"Apply"})]})})]})})]})}
1
+ "use strict";var M=Object.create;var h=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var R=(a,n)=>{for(var s in n)h(a,s,{get:n[s],enumerable:!0})},N=(a,n,s,c)=>{if(n&&typeof n=="object"||typeof n=="function")for(let m of A(n))!z.call(a,m)&&m!==s&&h(a,m,{get:()=>n[m],enumerable:!(c=P(n,m))||c.enumerable});return a};var T=(a,n,s)=>(s=a!=null?M(H(a)):{},N(n||!a||!a.__esModule?h(s,"default",{value:a,enumerable:!0}):s,a)),j=a=>N(h({},"__esModule",{value:!0}),a);var U={};R(U,{default:()=>D});module.exports=j(U);var e=require("react/jsx-runtime"),k=T(require("./component/AnimatedUL")),p=require("../../helpers/utils"),v=require("es-toolkit"),f=require("react"),C=require("react-responsive"),r=require("../../components/index.js");function D(a){const n=(0,C.useMediaQuery)({query:"(max-width: 768px)"}),s=(0,f.useRef)(!1),{filtersPair:c,closeFilter:m,filtered:F,openOptions:w,mobileDrawerVisible:O,onCloseDrawer:y,onFilteredChange:L,onOpenOptions:g}=a,$=(t,d,o,l)=>{const i=t.target,u=(0,v.cloneDeep)(F);let b=u?.[i.name]||[];i.checked?l==="checkbox"?b.push(i.value):b=[i.value]:(0,v.remove)(b,E=>E===i.value),u[i.name]=b,b.length<=0&&Reflect.deleteProperty(u,i.name),L?.({...u},d,o)},B=t=>{let d=w.concat();d.map(o=>o.label===t?o.show=!o.show:o),g?.(d)},x=()=>c?.length>0&&(0,e.jsx)("div",{className:"filter-list",children:c.map((t,d)=>{const o=w?.find?.(l=>l.label==t.label);return(0,e.jsxs)("div",{className:(0,p.cn)("mb-6 flex-1 overflow-hidden text-left duration-300 ease-in-out"),children:[(0,e.jsxs)("div",{onClick:()=>B(t.label),className:"relative flex items-center justify-between md-tablet:justify-center text-base font-bold cursor-pointer leading-none",children:[(0,e.jsx)("button",{className:"w-full whitespace-nowrap text-left font-medium overflow-hidden box-border",children:(0,e.jsx)("span",{className:"pr-2 font-bold truncate",children:t.label})}),(0,e.jsx)("div",{className:`size-4 duration-300 ease-in-out ${o?.show&&"rotate-180"}`,children:(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon",children:(0,e.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})})})]}),(0,e.jsx)("div",{className:"transition-all duration-400 ease-in-out overflow-hidden",children:(0,e.jsx)(k.default,{className:"pt-5 transition-all duration-400 ease-in-out","data-label":t.label,isOpen:!!o?.show,children:t.options.map((l,i)=>{const u=t.type?t.type==="checkbox"?"checkbox":"radio":"checkbox";return(0,e.jsx)("li",{className:(0,p.cn)("w-full mb-3 box-border",{disabled:l?.count<=0,"mb-0":i>=t?.options?.length-1}),children:(0,e.jsxs)("label",{className:"flex items-center overflow-hidden box-border",htmlFor:`${t.value}-${i}`,children:[(0,e.jsx)("input",{type:u,name:t.value,value:l.value,id:`${t.value}-${i}`,disabled:l?.count<=0,checked:l.checked,className:"size-4 cursor-pointer accent-[#000000]",onChange:b=>$(b,t,l,u)}),(0,e.jsx)("p",{className:(0,p.cn)("pt-0.5 pl-3 inline-block cursor-pointer font-bold leading-none text-base"),children:l.label})]})},l.value)})})})]},`${t.label}${d}`)})});return(0,f.useEffect)(()=>{if(c?.length&&!w?.length&&!s.current){s.current=!0;let t=[];const d=document?.getElementsByClassName("pt-5 transition-all duration-400 ease-in-out");for(let o=0;o<d.length;o++){let l={};l.label=d[o]?.getAttribute("data-label"),l.show=n?!1:o<6,l.height=document?.getElementsByClassName("pt-5 transition-all duration-400 ease-in-out")?.[o]?.clientHeight,t.push(l)}g?.(t)}},[c]),(0,f.useEffect)(()=>{!n&&y?.(!1)},[n]),(0,e.jsxs)("div",{className:(0,p.cn)("transition-all duration-400 ease-in-out","desktop:w-60 tablet:w-48 laptop:w-[210px] md-tablet:hidden","md-tablet:fixed md-tablet:bottom-0 md-tablet:left-0 md-tablet:right-0 md-tablet:top-0 md-tablet:z-[99]",m?"md-tablet:pointer-events-auto md-tablet:opacity-100":"md-tablet:pointer-events-none md-tablet:opacity-0"),children:[(0,e.jsx)("div",{className:(0,p.cn)("transition-all duration-400 ease-in-out md-tablet:absolute md-tablet:bottom-0 md-tablet:h-[90vh] md-tablet:w-full",m?"md-tablet:translate-y-0":"md-tablet:translate-y-[100%]"),children:x()}),(0,e.jsx)(r.Drawer,{open:O,onOpenChange:()=>y(!1),children:(0,e.jsxs)(r.DrawerContent,{className:"px-4 pb-4 max-h-[94.5vh] flex flex-col",children:[(0,e.jsx)(r.DrawerHeader,{className:"sticky top-0 inset-x-0 py-0 mb-6",children:(0,e.jsx)(r.DrawerTitle,{children:"Mobile Filter"})}),(0,e.jsx)("div",{className:"flex-1 overflow-y-auto",children:x()}),(0,e.jsx)(r.DrawerFooter,{className:"py-0 pt-4",children:(0,e.jsxs)("div",{className:(0,p.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2"),children:[(0,e.jsx)(r.Button,{variant:"secondary",className:"m-tablet:w-full",children:"Clear"}),(0,e.jsx)(r.Button,{variant:"primary",className:"m-tablet:w-full",children:"Apply"})]})})]})})]})}
2
2
  //# sourceMappingURL=FilterList.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/CollectionsFilters/FilterList.tsx"],
4
- "sourcesContent": ["import AnimatedUL from './component/AnimatedUL'\nimport { cn } from '../../helpers/utils'\nimport type { ChangeEvent } from 'react'\nimport { remove, cloneDeep } from 'es-toolkit'\nimport { useEffect } from 'react'\nimport { useMediaQuery } from 'react-responsive'\nimport { Button, Drawer, DrawerContent, DrawerHeader, DrawerTitle, DrawerFooter } from '../../components/index.js'\n\ninterface FilterListProps {\n onFilteredChange: (filtered: any, filter: any, opt: any) => void\n onOpenOptions: (openOpt: any[]) => void\n closeFilter: boolean // \u662F\u5426\u5173\u95ED\u7B5B\u9009\u9879\u5C55\u793A\n filtersPair: any[] // \u7B5B\u9009\u9879\n filtered: any // \u9009\u62E9\u7684\u7B5B\u9009\u9009\u9879\n openOptions: any[] // \u5C55\u5F00\u7B5B\u9009\u9879\n mobileDrawerVisible: boolean\n onCloseDrawer: (closeDrawer: boolean) => void\n}\n\nexport default function FilterList(props: FilterListProps) {\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n\n const {\n filtersPair,\n closeFilter,\n filtered,\n openOptions,\n mobileDrawerVisible,\n onCloseDrawer,\n onFilteredChange,\n onOpenOptions,\n } = props\n\n const filterChange = (event: ChangeEvent<HTMLInputElement>, filter: any, opt: any, type: string) => {\n const target = event.target\n const clonefiltered = cloneDeep(filtered)\n let current = clonefiltered?.[target.name] || []\n if (target.checked) {\n type === 'checkbox' ? current.push(target.value) : current = [target.value]\n } else {\n remove(current, (v: string) => v === target.value)\n }\n clonefiltered[target.name] = current\n if (current.length <= 0) {\n Reflect.deleteProperty(clonefiltered, target.name)\n }\n onFilteredChange?.({ ...clonefiltered }, filter, opt)\n }\n\n const handleFilterOpt = (label: string) => {\n let res = openOptions.concat()\n res.map((item: any) => {\n if (item.label === label) return (item.show = !item.show)\n return item\n })\n onOpenOptions?.(res)\n }\n\n const MobileFilterList = () => {\n return (\n filtersPair?.length > 0 && (\n <div className=\"filter-list\">\n {filtersPair.map((filter: any, i: number) => {\n const openOption = openOptions?.find?.((item: any) => item.label == filter.label) as any\n return (\n <div\n key={`${filter.label}${i}`}\n className={cn('mb-6 flex-1 overflow-hidden text-left duration-300 ease-in-out')}\n >\n <div\n onClick={() => handleFilterOpt(filter.label)}\n className={\n 'relative flex items-center justify-between md-tablet:justify-center text-base font-bold cursor-pointer leading-none'\n }\n >\n <button className=\"w-full whitespace-nowrap text-left font-medium overflow-hidden box-border\">\n <span className=\"pr-2 font-bold truncate\">{filter.label}</span>\n </button>\n <div className={`size-4 duration-300 ease-in-out ${openOption?.show && 'rotate-180'}`}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n data-slot=\"icon\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </div>\n </div>\n <div className={'transition-all duration-400 ease-in-out overflow-hidden'}>\n <AnimatedUL\n className={'pt-5 transition-all duration-400 ease-in-out'}\n data-label={filter.label}\n isOpen={!!openOption?.show}\n >\n {filter.options.map((opt: any, p: number) => {\n const type = filter.type ? (filter.type === 'checkbox' ? 'checkbox' : 'radio') : 'checkbox'\n return (\n <li\n key={opt.value}\n className={cn('w-full mb-3 box-border', {\n ['disabled']: opt?.count <= 0,\n 'mb-0': p >= filter?.options?.length - 1,\n })}\n >\n <label\n className=\"flex items-center overflow-hidden box-border\"\n htmlFor={`${filter.value}-${p}`}\n >\n <input\n type={type}\n name={filter.value}\n value={opt.value}\n id={`${filter.value}-${p}`}\n disabled={opt?.count <= 0}\n checked={opt.checked}\n className=\"size-4 cursor-pointer accent-[#000000]\"\n onChange={e => filterChange(e, filter, opt, type)}\n />\n <p\n className={cn('pt-0.5 pl-3 inline-block cursor-pointer font-bold leading-none text-base')}\n >\n {opt.label}\n </p>\n </label>\n </li>\n )\n })}\n </AnimatedUL>\n </div>\n </div>\n )\n })}\n </div>\n )\n )\n }\n\n useEffect(() => {\n if (openOptions?.length === 0) {\n let res = []\n const domList = document?.getElementsByClassName('pt-5 transition-all duration-400 ease-in-out')\n for (let index = 0; index < domList.length; index++) {\n let data = {} as any\n data.label = domList[index]?.getAttribute('data-label')\n data.show = isMobile ? false : index < 6 ? true : false\n data.height = document?.getElementsByClassName('pt-5 transition-all duration-400 ease-in-out')?.[\n index\n ]?.clientHeight\n res.push(data)\n }\n onOpenOptions?.(res)\n }\n }, [filtersPair])\n\n useEffect(() => {\n !isMobile && onCloseDrawer?.(false)\n }, [isMobile])\n\n return (\n <div\n className={cn(\n 'transition-all duration-400 ease-in-out',\n 'desktop:w-60 tablet:w-48 laptop:w-[210px] md-tablet:hidden',\n 'md-tablet:fixed md-tablet:bottom-0 md-tablet:left-0 md-tablet:right-0 md-tablet:top-0 md-tablet:z-[99]',\n closeFilter\n ? 'md-tablet:pointer-events-auto md-tablet:opacity-100'\n : 'md-tablet:pointer-events-none md-tablet:opacity-0'\n )}\n >\n <div\n className={cn(\n 'transition-all duration-400 ease-in-out md-tablet:absolute md-tablet:bottom-0 md-tablet:h-[90vh] md-tablet:w-full',\n closeFilter ? 'md-tablet:translate-y-0' : 'md-tablet:translate-y-[100%]'\n )}\n >\n {MobileFilterList()}\n </div>\n <Drawer open={mobileDrawerVisible} onOpenChange={() => onCloseDrawer(false)}>\n <DrawerContent className=\"px-4 pb-4 max-h-[94.5vh] flex flex-col\">\n <DrawerHeader className=\"sticky top-0 inset-x-0 py-0 mb-6\">\n <DrawerTitle>Mobile Filter</DrawerTitle>\n </DrawerHeader>\n <div className=\"flex-1 overflow-y-auto\">\n {MobileFilterList()}\n </div>\n <DrawerFooter className=\"py-0 pt-4\">\n <div className={cn('shelf-flex-button-group', 'lg-desktop:gap-3 flex items-center gap-2')}>\n <Button variant=\"secondary\" className=\"m-tablet:w-full\">\n {'Clear'}\n </Button>\n <Button variant=\"primary\" className=\"m-tablet:w-full\">\n {'Apply'}\n </Button>\n </div>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n </div>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["FilterList_exports", "__export", "FilterList", "__toCommonJS", "import_jsx_runtime", "import_AnimatedUL", "import_utils", "import_es_toolkit", "import_react", "import_react_responsive", "import_components", "props", "isMobile", "filtersPair", "closeFilter", "filtered", "openOptions", "mobileDrawerVisible", "onCloseDrawer", "onFilteredChange", "onOpenOptions", "filterChange", "event", "filter", "opt", "type", "target", "clonefiltered", "current", "v", "handleFilterOpt", "label", "res", "item", "MobileFilterList", "i", "openOption", "AnimatedUL", "p", "e", "domList", "index", "data"]
4
+ "sourcesContent": ["import AnimatedUL from './component/AnimatedUL'\nimport { cn } from '../../helpers/utils'\nimport type { ChangeEvent } from 'react'\nimport { remove, cloneDeep } from 'es-toolkit'\nimport { useEffect, useRef } from 'react'\nimport { useMediaQuery } from 'react-responsive'\nimport { Button, Drawer, DrawerContent, DrawerHeader, DrawerTitle, DrawerFooter } from '../../components/index.js'\n\ninterface FilterListProps {\n onFilteredChange: (filtered: any, filter: any, opt: any) => void\n onOpenOptions: (openOpt: any[]) => void\n closeFilter: boolean // \u662F\u5426\u5173\u95ED\u7B5B\u9009\u9879\u5C55\u793A\n filtersPair: any[] // \u7B5B\u9009\u9879\n filtered: any // \u9009\u62E9\u7684\u7B5B\u9009\u9009\u9879\n openOptions: any[] // \u5C55\u5F00\u7B5B\u9009\u9879\n mobileDrawerVisible: boolean\n onCloseDrawer: (closeDrawer: boolean) => void\n}\n\nexport default function FilterList(props: FilterListProps) {\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n const onceRef = useRef<boolean>(false)\n\n const {\n filtersPair,\n closeFilter,\n filtered,\n openOptions,\n mobileDrawerVisible,\n onCloseDrawer,\n onFilteredChange,\n onOpenOptions,\n } = props\n\n const filterChange = (event: ChangeEvent<HTMLInputElement>, filter: any, opt: any, type: string) => {\n const target = event.target\n const clonefiltered = cloneDeep(filtered)\n let current = clonefiltered?.[target.name] || []\n if (target.checked) {\n type === 'checkbox' ? current.push(target.value) : current = [target.value]\n } else {\n remove(current, (v: string) => v === target.value)\n }\n clonefiltered[target.name] = current\n if (current.length <= 0) {\n Reflect.deleteProperty(clonefiltered, target.name)\n }\n onFilteredChange?.({ ...clonefiltered }, filter, opt)\n }\n\n const handleFilterOpt = (label: string) => {\n let res = openOptions.concat()\n res.map((item: any) => {\n if (item.label === label) return (item.show = !item.show)\n return item\n })\n onOpenOptions?.(res)\n }\n\n const MobileFilterList = () => {\n return (\n filtersPair?.length > 0 && (\n <div className=\"filter-list\">\n {filtersPair.map((filter: any, i: number) => {\n const openOption = openOptions?.find?.((item: any) => item.label == filter.label) as any\n return (\n <div\n key={`${filter.label}${i}`}\n className={cn('mb-6 flex-1 overflow-hidden text-left duration-300 ease-in-out')}\n >\n <div\n onClick={() => handleFilterOpt(filter.label)}\n className={\n 'relative flex items-center justify-between md-tablet:justify-center text-base font-bold cursor-pointer leading-none'\n }\n >\n <button className=\"w-full whitespace-nowrap text-left font-medium overflow-hidden box-border\">\n <span className=\"pr-2 font-bold truncate\">{filter.label}</span>\n </button>\n <div className={`size-4 duration-300 ease-in-out ${openOption?.show && 'rotate-180'}`}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n data-slot=\"icon\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </div>\n </div>\n <div className={'transition-all duration-400 ease-in-out overflow-hidden'}>\n <AnimatedUL\n className={'pt-5 transition-all duration-400 ease-in-out'}\n data-label={filter.label}\n isOpen={!!openOption?.show}\n >\n {filter.options.map((opt: any, p: number) => {\n const type = filter.type ? (filter.type === 'checkbox' ? 'checkbox' : 'radio') : 'checkbox'\n return (\n <li\n key={opt.value}\n className={cn('w-full mb-3 box-border', {\n ['disabled']: opt?.count <= 0,\n 'mb-0': p >= filter?.options?.length - 1,\n })}\n >\n <label\n className=\"flex items-center overflow-hidden box-border\"\n htmlFor={`${filter.value}-${p}`}\n >\n <input\n type={type}\n name={filter.value}\n value={opt.value}\n id={`${filter.value}-${p}`}\n disabled={opt?.count <= 0}\n checked={opt.checked}\n className=\"size-4 cursor-pointer accent-[#000000]\"\n onChange={e => filterChange(e, filter, opt, type)}\n />\n <p\n className={cn('pt-0.5 pl-3 inline-block cursor-pointer font-bold leading-none text-base')}\n >\n {opt.label}\n </p>\n </label>\n </li>\n )\n })}\n </AnimatedUL>\n </div>\n </div>\n )\n })}\n </div>\n )\n )\n }\n\n useEffect(() => {\n if (filtersPair?.length && !openOptions?.length && !onceRef.current) {\n onceRef.current = true\n let res = []\n const domList = document?.getElementsByClassName('pt-5 transition-all duration-400 ease-in-out')\n for (let index = 0; index < domList.length; index++) {\n let data = {} as any\n data.label = domList[index]?.getAttribute('data-label')\n data.show = isMobile ? false : index < 6 ? true : false\n data.height = document?.getElementsByClassName('pt-5 transition-all duration-400 ease-in-out')?.[\n index\n ]?.clientHeight\n res.push(data)\n }\n onOpenOptions?.(res)\n }\n }, [filtersPair])\n\n useEffect(() => {\n !isMobile && onCloseDrawer?.(false)\n }, [isMobile])\n\n return (\n <div\n className={cn(\n 'transition-all duration-400 ease-in-out',\n 'desktop:w-60 tablet:w-48 laptop:w-[210px] md-tablet:hidden',\n 'md-tablet:fixed md-tablet:bottom-0 md-tablet:left-0 md-tablet:right-0 md-tablet:top-0 md-tablet:z-[99]',\n closeFilter\n ? 'md-tablet:pointer-events-auto md-tablet:opacity-100'\n : 'md-tablet:pointer-events-none md-tablet:opacity-0'\n )}\n >\n <div\n className={cn(\n 'transition-all duration-400 ease-in-out md-tablet:absolute md-tablet:bottom-0 md-tablet:h-[90vh] md-tablet:w-full',\n closeFilter ? 'md-tablet:translate-y-0' : 'md-tablet:translate-y-[100%]'\n )}\n >\n {MobileFilterList()}\n </div>\n <Drawer open={mobileDrawerVisible} onOpenChange={() => onCloseDrawer(false)}>\n <DrawerContent className=\"px-4 pb-4 max-h-[94.5vh] flex flex-col\">\n <DrawerHeader className=\"sticky top-0 inset-x-0 py-0 mb-6\">\n <DrawerTitle>Mobile Filter</DrawerTitle>\n </DrawerHeader>\n <div className=\"flex-1 overflow-y-auto\">\n {MobileFilterList()}\n </div>\n <DrawerFooter className=\"py-0 pt-4\">\n <div className={cn('shelf-flex-button-group', 'lg-desktop:gap-3 flex items-center gap-2')}>\n <Button variant=\"secondary\" className=\"m-tablet:w-full\">\n {'Clear'}\n </Button>\n <Button variant=\"primary\" className=\"m-tablet:w-full\">\n {'Apply'}\n </Button>\n </div>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n </div>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAsEgB,IAAAI,EAAA,6BAtEhBC,EAAuB,qCACvBC,EAAmB,+BAEnBC,EAAkC,sBAClCC,EAAkC,iBAClCC,EAA8B,4BAC9BC,EAAuF,qCAaxE,SAARR,EAA4BS,EAAwB,CACzD,MAAMC,KAAW,iBAAc,CAAE,MAAO,oBAAqB,CAAC,EACxDC,KAAU,UAAgB,EAAK,EAE/B,CACJ,YAAAC,EACA,YAAAC,EACA,SAAAC,EACA,YAAAC,EACA,oBAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,cAAAC,CACF,EAAIV,EAEEW,EAAe,CAACC,EAAsCC,EAAaC,EAAUC,IAAiB,CAClG,MAAMC,EAASJ,EAAM,OACfK,KAAgB,aAAUZ,CAAQ,EACxC,IAAIa,EAAUD,IAAgBD,EAAO,IAAI,GAAK,CAAC,EAC3CA,EAAO,QACTD,IAAS,WAAaG,EAAQ,KAAKF,EAAO,KAAK,EAAIE,EAAU,CAACF,EAAO,KAAK,KAE1E,UAAOE,EAAUC,GAAcA,IAAMH,EAAO,KAAK,EAEnDC,EAAcD,EAAO,IAAI,EAAIE,EACzBA,EAAQ,QAAU,GACpB,QAAQ,eAAeD,EAAeD,EAAO,IAAI,EAEnDP,IAAmB,CAAE,GAAGQ,CAAc,EAAGJ,EAAQC,CAAG,CACtD,EAEMM,EAAmBC,GAAkB,CACzC,IAAIC,EAAMhB,EAAY,OAAO,EAC7BgB,EAAI,IAAKC,GACHA,EAAK,QAAUF,EAAeE,EAAK,KAAO,CAACA,EAAK,KAC7CA,CACR,EACDb,IAAgBY,CAAG,CACrB,EAEME,EAAmB,IAErBrB,GAAa,OAAS,MACpB,OAAC,OAAI,UAAU,cACZ,SAAAA,EAAY,IAAI,CAACU,EAAaY,IAAc,CAC3C,MAAMC,EAAapB,GAAa,OAAQiB,GAAcA,EAAK,OAASV,EAAO,KAAK,EAChF,SACE,QAAC,OAEC,aAAW,MAAG,gEAAgE,EAE9E,qBAAC,OACC,QAAS,IAAMO,EAAgBP,EAAO,KAAK,EAC3C,UACE,sHAGF,oBAAC,UAAO,UAAU,4EAChB,mBAAC,QAAK,UAAU,0BAA2B,SAAAA,EAAO,MAAM,EAC1D,KACA,OAAC,OAAI,UAAW,mCAAmCa,GAAY,MAAQ,YAAY,GACjF,mBAAC,OACC,MAAM,6BACN,KAAK,OACL,QAAQ,YACR,eAAa,MACb,OAAO,eACP,cAAY,OACZ,YAAU,OAEV,mBAAC,QAAK,iBAAe,QAAQ,kBAAgB,QAAQ,EAAE,6BAA6B,EACtF,EACF,GACF,KACA,OAAC,OAAI,UAAW,0DACd,mBAAC,EAAAC,QAAA,CACC,UAAW,+CACX,aAAYd,EAAO,MACnB,OAAQ,CAAC,CAACa,GAAY,KAErB,SAAAb,EAAO,QAAQ,IAAI,CAACC,EAAUc,IAAc,CAC3C,MAAMb,EAAOF,EAAO,KAAQA,EAAO,OAAS,WAAa,WAAa,QAAW,WACjF,SACE,OAAC,MAEC,aAAW,MAAG,yBAA0B,CACrC,SAAaC,GAAK,OAAS,EAC5B,OAAQc,GAAKf,GAAQ,SAAS,OAAS,CACzC,CAAC,EAED,oBAAC,SACC,UAAU,+CACV,QAAS,GAAGA,EAAO,KAAK,IAAIe,CAAC,GAE7B,oBAAC,SACC,KAAMb,EACN,KAAMF,EAAO,MACb,MAAOC,EAAI,MACX,GAAI,GAAGD,EAAO,KAAK,IAAIe,CAAC,GACxB,SAAUd,GAAK,OAAS,EACxB,QAASA,EAAI,QACb,UAAU,yCACV,SAAUe,GAAKlB,EAAakB,EAAGhB,EAAQC,EAAKC,CAAI,EAClD,KACA,OAAC,KACC,aAAW,MAAG,0EAA0E,EAEvF,SAAAD,EAAI,MACP,GACF,GAzBKA,EAAI,KA0BX,CAEJ,CAAC,EACH,EACF,IAlEK,GAAGD,EAAO,KAAK,GAAGY,CAAC,EAmE1B,CAEJ,CAAC,EACH,EAKN,sBAAU,IAAM,CACd,GAAItB,GAAa,QAAU,CAACG,GAAa,QAAU,CAACJ,EAAQ,QAAS,CACnEA,EAAQ,QAAU,GAClB,IAAIoB,EAAM,CAAC,EACX,MAAMQ,EAAU,UAAU,uBAAuB,8CAA8C,EAC/F,QAASC,EAAQ,EAAGA,EAAQD,EAAQ,OAAQC,IAAS,CACnD,IAAIC,EAAO,CAAC,EACZA,EAAK,MAAQF,EAAQC,CAAK,GAAG,aAAa,YAAY,EACtDC,EAAK,KAAO/B,EAAW,GAAQ8B,EAAQ,EACvCC,EAAK,OAAS,UAAU,uBAAuB,8CAA8C,IAC3FD,CACF,GAAG,aACHT,EAAI,KAAKU,CAAI,CACf,CACAtB,IAAgBY,CAAG,CACrB,CACF,EAAG,CAACnB,CAAW,CAAC,KAEhB,aAAU,IAAM,CACd,CAACF,GAAYO,IAAgB,EAAK,CACpC,EAAG,CAACP,CAAQ,CAAC,KAGX,QAAC,OACC,aAAW,MACT,0CACA,6DACA,yGACAG,EACI,sDACA,mDACN,EAEA,oBAAC,OACC,aAAW,MACT,oHACAA,EAAc,0BAA4B,8BAC5C,EAEC,SAAAoB,EAAiB,EACpB,KACA,OAAC,UAAO,KAAMjB,EAAqB,aAAc,IAAMC,EAAc,EAAK,EACxE,oBAAC,iBAAc,UAAU,yCACvB,oBAAC,gBAAa,UAAU,mCACtB,mBAAC,eAAY,yBAAa,EAC5B,KACA,OAAC,OAAI,UAAU,yBACZ,SAAAgB,EAAiB,EACpB,KACA,OAAC,gBAAa,UAAU,YACtB,oBAAC,OAAI,aAAW,MAAG,0BAA2B,0CAA0C,EACtF,oBAAC,UAAO,QAAQ,YAAY,UAAU,kBACnC,iBACH,KACA,OAAC,UAAO,QAAQ,UAAU,UAAU,kBACjC,iBACH,GACF,EACF,GACF,EACF,GACF,CAEJ",
6
+ "names": ["FilterList_exports", "__export", "FilterList", "__toCommonJS", "import_jsx_runtime", "import_AnimatedUL", "import_utils", "import_es_toolkit", "import_react", "import_react_responsive", "import_components", "props", "isMobile", "onceRef", "filtersPair", "closeFilter", "filtered", "openOptions", "mobileDrawerVisible", "onCloseDrawer", "onFilteredChange", "onOpenOptions", "filterChange", "event", "filter", "opt", "type", "target", "clonefiltered", "current", "v", "handleFilterOpt", "label", "res", "item", "MobileFilterList", "i", "openOption", "AnimatedUL", "p", "e", "domList", "index", "data"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var T=Object.create;var f=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var A=(e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})},w=(e,t,n,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of H(t))!q.call(e,s)&&s!==n&&f(e,s,{get:()=>t[s],enumerable:!(l=E(t,s))||l.enumerable});return e};var c=(e,t,n)=>(n=e!=null?T(L(e)):{},w(t||!e||!e.__esModule?f(n,"default",{value:e,enumerable:!0}):n,e)),B=e=>w(f({},"__esModule",{value:!0}),e);var G={};A(G,{default:()=>I});module.exports=B(G);var o=require("react/jsx-runtime"),r=require("react"),x=c(require("./FilterList")),O=c(require("./FilterHeader")),P=c(require("./FilterCardWrap")),S=c(require("./FilterCardWrapItem")),D=c(require("./FiterTab"));function I(e){const{filters:t,metafields:n={},data:l=[]}=e,[s,M]=(0,r.useState)(!1),[N,b]=(0,r.useState)(!1),[V,k]=(0,r.useState)([]),[d,m]=(0,r.useState)({}),[K,R]=(0,r.useState)(0),[F,W]=(0,r.useState)(1),[p,h]=(0,r.useState)([]),C=(0,r.useRef)(18),y=(0,r.useRef)(!1),v=l?.length<=p?.length,u=(0,r.useMemo)(()=>t?.map?.(i=>({...i,options:i?.options?.map?.(a=>({...a,checked:d?.[i?.value]?.indexOf?.(a?.value)>-1}))})),[d,t]);console.log("filtersPair",u);const z=()=>m?.({});return(0,r.useEffect)(()=>{if(!(l?.length<=0))if(!y.current)y.current=!0,h(l?.slice(0,C.current));else{const i=l?.slice?.(C.current,l?.length)||[];h([...p,...i])}},[l,F]),(0,o.jsxs)("div",{className:"size-full box-border",children:[(0,o.jsx)("div",{className:"mb-6",children:(0,o.jsx)(D.default,{filtered:d,filtersPair:u,onTabChange:m})}),(0,o.jsx)(O.default,{total:l?.length,metafields:n,closeFilter:s,sortKeyIndx:K,onSortChange:R,onCloseFilter:M,onClearFiltered:z,onMobileOpenDrawer:b}),(0,o.jsxs)("div",{className:"flex-1 overflow-hidden tablet:flex desktop:gap-x-16 tablet:gap-x-8",children:[!s&&(0,o.jsx)(x.default,{filtered:d,openOptions:V,filtersPair:u,closeFilter:s,mobileDrawerVisible:N,onFilteredChange:m,onOpenOptions:k,onCloseDrawer:b}),(0,o.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,o.jsx)(P.default,{closeFilter:s,isShowMore:v,onViewMoreChange:()=>{v||W(F+1)},children:p.map(i=>(0,o.jsx)(S.default,{data:i,onPrimaryChange:(a,g)=>console.log("e",a,g),onSecondaryChange:(a,g)=>console.log("e",a,g)},i.id))})})]})]})}
1
+ "use strict";var z=Object.create;var f=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var q=(e,o)=>{for(var l in o)f(e,l,{get:o[l],enumerable:!0})},w=(e,o,l,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of E(o))!L.call(e,s)&&s!==l&&f(e,s,{get:()=>o[s],enumerable:!(r=T(o,s))||r.enumerable});return e};var c=(e,o,l)=>(l=e!=null?z(H(e)):{},w(o||!e||!e.__esModule?f(l,"default",{value:e,enumerable:!0}):l,e)),A=e=>w(f({},"__esModule",{value:!0}),e);var B={};q(B,{default:()=>I});module.exports=A(B);var n=require("react/jsx-runtime"),t=require("react"),x=c(require("./FilterList")),O=c(require("./FilterHeader")),P=c(require("./FilterCardWrap")),S=c(require("./FilterCardWrapItem")),D=c(require("./FiterTab"));function I(e){const{filters:o,metafields:l={},data:r=[]}=e,[s,M]=(0,t.useState)(!1),[N,g]=(0,t.useState)(!1),[V,G]=(0,t.useState)([]),[d,m]=(0,t.useState)({}),[k,K]=(0,t.useState)(0),[b,R]=(0,t.useState)(1),[p,F]=(0,t.useState)([]),h=(0,t.useRef)(18),C=(0,t.useRef)(!1),y=r?.length&&r?.length<=p?.length,v=(0,t.useMemo)(()=>o?.map?.(a=>({...a,options:a?.options?.map?.(i=>({...i,checked:d?.[a?.value]?.indexOf?.(i?.value)>-1}))})),[d,o]),W=()=>m?.({});return(0,t.useEffect)(()=>{if(!(r?.length<=0))if(!C.current)C.current=!0,F(r?.slice(0,h.current));else{const a=r?.slice?.(h.current,r?.length)||[];F([...p,...a])}},[r,b]),(0,n.jsxs)("div",{className:"size-full box-border",children:[(0,n.jsx)("div",{className:"mb-6",children:(0,n.jsx)(D.default,{filtered:d,filtersPair:v,onTabChange:m})}),(0,n.jsx)(O.default,{total:r?.length,metafields:l,closeFilter:s,sortKeyIndx:k,onSortChange:K,onCloseFilter:M,onClearFiltered:W,onMobileOpenDrawer:g}),(0,n.jsxs)("div",{className:"flex-1 overflow-hidden tablet:flex desktop:gap-x-16 tablet:gap-x-8",children:[!s&&(0,n.jsx)(x.default,{filtered:d,openOptions:V,filtersPair:v,closeFilter:s,mobileDrawerVisible:N,onFilteredChange:m,onOpenOptions:a=>console.log("e",a),onCloseDrawer:g}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,n.jsx)(P.default,{closeFilter:s,isShowMore:y,onViewMoreChange:()=>{y||R(b+1)},children:p.map(a=>(0,n.jsx)(S.default,{data:a,onPrimaryChange:(i,u)=>console.log("e",i,u),onSecondaryChange:(i,u)=>console.log("e",i,u)},a.id))})})]})]})}
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 { useState, useMemo, useEffect, useRef } from 'react'\nimport FilterList from './FilterList'\nimport FilterHeader from './FilterHeader'\nimport FilterCardWrap from './FilterCardWrap'\nimport FilterCardWrapItem from './FilterCardWrapItem'\nimport FiterTab from './FiterTab'\n\nexport default function CollectionsFilters(props: any) {\n const {\n filters, // \u7B5B\u9009\u9879\n metafields = {},\n data = [], // \u5361\u7247\u6570\u636E\n } = props\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) // \u5F53\u524D\u9875\u7801\n const [pageItems, setPageItems] = useState<any[]>([]) // \u5F53\u524D\u5C55\u793A\u7684\u6570\u636E\n\n const pageSizeRef = useRef<number>(18)\n const onceRef = useRef<boolean>(false)\n\n const isShowMore = data?.length <= pageItems?.length\n\n // \u5904\u7406\u7B5B\u9009\u9879\u6570\u636E\n const filtersPair = useMemo(() => {\n return filters?.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, filters])\n\n console.log('filtersPair', filtersPair)\n\n const clearFiltered = () => setFiltered?.({})\n\n useEffect(() => {\n if (data?.length <= 0) return\n if (!onceRef.current) {\n onceRef.current = true\n setPageItems(data?.slice(0, pageSizeRef.current))\n } else {\n const newData = data?.slice?.(pageSizeRef.current, data?.length) || []\n setPageItems([...pageItems, ...newData])\n }\n }, [data, currentPage])\n\n return (\n <div className=\"size-full box-border\">\n {/* \u5934\u90E8 */}\n <div className=\"mb-6\">\n <FiterTab filtered={filtered} filtersPair={filtersPair} onTabChange={setFiltered} />\n </div>\n <FilterHeader\n total={data?.length}\n metafields={metafields}\n closeFilter={closeFilter}\n sortKeyIndx={sortKeyIndx}\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 filtered={filtered}\n openOptions={openOptions}\n filtersPair={filtersPair}\n closeFilter={closeFilter}\n mobileDrawerVisible={mobileDrawerVisible}\n onFilteredChange={setFiltered}\n onOpenOptions={setOpenOptions}\n onCloseDrawer={setMobileDrawerVisible}\n />\n )}\n <div className=\"flex-1 overflow-y-auto\">\n <FilterCardWrap\n closeFilter={closeFilter}\n isShowMore={isShowMore}\n onViewMoreChange={() => {\n if (isShowMore) return\n setCurrentPage(currentPage + 1)\n }}\n >\n {pageItems.map(item => (\n <FilterCardWrapItem\n key={item.id}\n data={item}\n onPrimaryChange={(e, data) => console.log('e', e, data)}\n onSecondaryChange={(e, data) => console.log('e', e, data)}\n />\n ))}\n </FilterCardWrap>\n </div>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA4DQ,IAAAI,EAAA,6BA5DRC,EAAqD,iBACrDC,EAAuB,2BACvBC,EAAyB,6BACzBC,EAA2B,+BAC3BC,EAA+B,mCAC/BC,EAAqB,yBAEN,SAARR,EAAoCS,EAAY,CACrD,KAAM,CACJ,QAAAC,EACA,WAAAC,EAAa,CAAC,EACd,KAAAC,EAAO,CAAC,CACV,EAAIH,EACE,CAACI,EAAaC,CAAc,KAAI,YAAkB,EAAK,EACvD,CAACC,EAAqBC,CAAsB,KAAI,YAAkB,EAAK,EACvE,CAACC,EAAaC,CAAc,KAAI,YAAgB,CAAC,CAAC,EAClD,CAACC,EAAUC,CAAW,KAAI,YAAc,CAAC,CAAC,EAC1C,CAACC,EAAaC,CAAc,KAAI,YAAiB,CAAC,EAClD,CAACC,EAAaC,CAAc,KAAI,YAAiB,CAAC,EAClD,CAACC,EAAWC,CAAY,KAAI,YAAgB,CAAC,CAAC,EAE9CC,KAAc,UAAe,EAAE,EAC/BC,KAAU,UAAgB,EAAK,EAE/BC,EAAajB,GAAM,QAAUa,GAAW,OAGxCK,KAAc,WAAQ,IACnBpB,GAAS,MAAOqB,IACd,CACL,GAAGA,EACH,QAASA,GAAQ,SAAS,MAAOC,IACxB,CACL,GAAGA,EACH,QAASb,IAAWY,GAAQ,KAAK,GAAG,UAAUC,GAAK,KAAK,EAAI,EAC9D,EACD,CACH,EACD,EACA,CAACb,EAAUT,CAAO,CAAC,EAEtB,QAAQ,IAAI,cAAeoB,CAAW,EAEtC,MAAMG,EAAgB,IAAMb,IAAc,CAAC,CAAC,EAE5C,sBAAU,IAAM,CACd,GAAI,EAAAR,GAAM,QAAU,GACpB,GAAI,CAACgB,EAAQ,QACXA,EAAQ,QAAU,GAClBF,EAAad,GAAM,MAAM,EAAGe,EAAY,OAAO,CAAC,MAC3C,CACL,MAAMO,EAAUtB,GAAM,QAAQe,EAAY,QAASf,GAAM,MAAM,GAAK,CAAC,EACrEc,EAAa,CAAC,GAAGD,EAAW,GAAGS,CAAO,CAAC,CACzC,CACF,EAAG,CAACtB,EAAMW,CAAW,CAAC,KAGpB,QAAC,OAAI,UAAU,uBAEb,oBAAC,OAAI,UAAU,OACb,mBAAC,EAAAY,QAAA,CAAS,SAAUhB,EAAU,YAAaW,EAAa,YAAaV,EAAa,EACpF,KACA,OAAC,EAAAgB,QAAA,CACC,MAAOxB,GAAM,OACb,WAAYD,EACZ,YAAaE,EACb,YAAaQ,EACb,aAAcC,EACd,cAAeR,EACf,gBAAiBmB,EACjB,mBAAoBjB,EACtB,KAEA,QAAC,OAAI,UAAU,qEACZ,WAACH,MACA,OAAC,EAAAwB,QAAA,CACC,SAAUlB,EACV,YAAaF,EACb,YAAaa,EACb,YAAajB,EACb,oBAAqBE,EACrB,iBAAkBK,EAClB,cAAeF,EACf,cAAeF,EACjB,KAEF,OAAC,OAAI,UAAU,yBACb,mBAAC,EAAAsB,QAAA,CACC,YAAazB,EACb,WAAYgB,EACZ,iBAAkB,IAAM,CAClBA,GACJL,EAAeD,EAAc,CAAC,CAChC,EAEC,SAAAE,EAAU,IAAIc,MACb,OAAC,EAAAC,QAAA,CAEC,KAAMD,EACN,gBAAiB,CAACE,EAAG7B,IAAS,QAAQ,IAAI,IAAK6B,EAAG7B,CAAI,EACtD,kBAAmB,CAAC6B,EAAG7B,IAAS,QAAQ,IAAI,IAAK6B,EAAG7B,CAAI,GAHnD2B,EAAK,EAIZ,CACD,EACH,EACF,GACF,GACF,CAEJ",
6
- "names": ["CollectionsFilters_exports", "__export", "CollectionsFilters", "__toCommonJS", "import_jsx_runtime", "import_react", "import_FilterList", "import_FilterHeader", "import_FilterCardWrap", "import_FilterCardWrapItem", "import_FiterTab", "props", "filters", "metafields", "data", "closeFilter", "setCloseFilter", "mobileDrawerVisible", "setMobileDrawerVisible", "openOptions", "setOpenOptions", "filtered", "setFiltered", "sortKeyIndx", "setSortKeyIndx", "currentPage", "setCurrentPage", "pageItems", "setPageItems", "pageSizeRef", "onceRef", "isShowMore", "filtersPair", "filter", "opt", "clearFiltered", "newData", "FiterTab", "FilterHeader", "FilterList", "FilterCardWrap", "item", "FilterCardWrapItem", "e"]
4
+ "sourcesContent": ["import { useState, useMemo, useEffect, useRef } from 'react'\nimport FilterList from './FilterList'\nimport FilterHeader from './FilterHeader'\nimport FilterCardWrap from './FilterCardWrap'\nimport FilterCardWrapItem from './FilterCardWrapItem'\nimport FiterTab from './FiterTab'\n\nexport default function CollectionsFilters(props: any) {\n const {\n filters, // \u7B5B\u9009\u9879\n metafields = {},\n data = [], // \u5361\u7247\u6570\u636E\n } = props\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) // \u5F53\u524D\u9875\u7801\n const [pageItems, setPageItems] = useState<any[]>([]) // \u5F53\u524D\u5C55\u793A\u7684\u6570\u636E\n\n const pageSizeRef = useRef<number>(18)\n const onceRef = useRef<boolean>(false)\n\n const isShowMore = data?.length && data?.length <= pageItems?.length\n\n // \u5904\u7406\u7B5B\u9009\u9879\u6570\u636E\n const filtersPair = useMemo(() => {\n return filters?.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, filters])\n\n const clearFiltered = () => setFiltered?.({})\n\n useEffect(() => {\n if (data?.length <= 0) return\n if (!onceRef.current) {\n onceRef.current = true\n setPageItems(data?.slice(0, pageSizeRef.current))\n } else {\n const newData = data?.slice?.(pageSizeRef.current, data?.length) || []\n setPageItems([...pageItems, ...newData])\n }\n }, [data, currentPage])\n\n return (\n <div className=\"size-full box-border\">\n {/* \u5934\u90E8 */}\n <div className=\"mb-6\">\n <FiterTab filtered={filtered} filtersPair={filtersPair} onTabChange={setFiltered} />\n </div>\n <FilterHeader\n total={data?.length}\n metafields={metafields}\n closeFilter={closeFilter}\n sortKeyIndx={sortKeyIndx}\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 filtered={filtered}\n openOptions={openOptions}\n filtersPair={filtersPair}\n closeFilter={closeFilter}\n mobileDrawerVisible={mobileDrawerVisible}\n onFilteredChange={setFiltered}\n onOpenOptions={(e)=>console.log('e', e)}\n onCloseDrawer={setMobileDrawerVisible}\n />\n )}\n <div className=\"flex-1 overflow-y-auto\">\n <FilterCardWrap\n closeFilter={closeFilter}\n isShowMore={isShowMore}\n onViewMoreChange={() => {\n if (isShowMore) return\n setCurrentPage(currentPage + 1)\n }}\n >\n {pageItems.map(item => (\n <FilterCardWrapItem\n key={item.id}\n data={item}\n onPrimaryChange={(e, data) => console.log('e', e, data)}\n onSecondaryChange={(e, data) => console.log('e', e, data)}\n />\n ))}\n </FilterCardWrap>\n </div>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA0DQ,IAAAI,EAAA,6BA1DRC,EAAqD,iBACrDC,EAAuB,2BACvBC,EAAyB,6BACzBC,EAA2B,+BAC3BC,EAA+B,mCAC/BC,EAAqB,yBAEN,SAARR,EAAoCS,EAAY,CACrD,KAAM,CACJ,QAAAC,EACA,WAAAC,EAAa,CAAC,EACd,KAAAC,EAAO,CAAC,CACV,EAAIH,EACE,CAACI,EAAaC,CAAc,KAAI,YAAkB,EAAK,EACvD,CAACC,EAAqBC,CAAsB,KAAI,YAAkB,EAAK,EACvE,CAACC,EAAaC,CAAc,KAAI,YAAgB,CAAC,CAAC,EAClD,CAACC,EAAUC,CAAW,KAAI,YAAc,CAAC,CAAC,EAC1C,CAACC,EAAaC,CAAc,KAAI,YAAiB,CAAC,EAClD,CAACC,EAAaC,CAAc,KAAI,YAAiB,CAAC,EAClD,CAACC,EAAWC,CAAY,KAAI,YAAgB,CAAC,CAAC,EAE9CC,KAAc,UAAe,EAAE,EAC/BC,KAAU,UAAgB,EAAK,EAE/BC,EAAajB,GAAM,QAAUA,GAAM,QAAUa,GAAW,OAGxDK,KAAc,WAAQ,IACnBpB,GAAS,MAAOqB,IACd,CACL,GAAGA,EACH,QAASA,GAAQ,SAAS,MAAOC,IACxB,CACL,GAAGA,EACH,QAASb,IAAWY,GAAQ,KAAK,GAAG,UAAUC,GAAK,KAAK,EAAI,EAC9D,EACD,CACH,EACD,EACA,CAACb,EAAUT,CAAO,CAAC,EAEhBuB,EAAgB,IAAMb,IAAc,CAAC,CAAC,EAE5C,sBAAU,IAAM,CACd,GAAI,EAAAR,GAAM,QAAU,GACpB,GAAI,CAACgB,EAAQ,QACXA,EAAQ,QAAU,GAClBF,EAAad,GAAM,MAAM,EAAGe,EAAY,OAAO,CAAC,MAC3C,CACL,MAAMO,EAAUtB,GAAM,QAAQe,EAAY,QAASf,GAAM,MAAM,GAAK,CAAC,EACrEc,EAAa,CAAC,GAAGD,EAAW,GAAGS,CAAO,CAAC,CACzC,CACF,EAAG,CAACtB,EAAMW,CAAW,CAAC,KAGpB,QAAC,OAAI,UAAU,uBAEb,oBAAC,OAAI,UAAU,OACb,mBAAC,EAAAY,QAAA,CAAS,SAAUhB,EAAU,YAAaW,EAAa,YAAaV,EAAa,EACpF,KACA,OAAC,EAAAgB,QAAA,CACC,MAAOxB,GAAM,OACb,WAAYD,EACZ,YAAaE,EACb,YAAaQ,EACb,aAAcC,EACd,cAAeR,EACf,gBAAiBmB,EACjB,mBAAoBjB,EACtB,KAEA,QAAC,OAAI,UAAU,qEACZ,WAACH,MACA,OAAC,EAAAwB,QAAA,CACC,SAAUlB,EACV,YAAaF,EACb,YAAaa,EACb,YAAajB,EACb,oBAAqBE,EACrB,iBAAkBK,EAClB,cAAgBkB,GAAI,QAAQ,IAAI,IAAKA,CAAC,EACtC,cAAetB,EACjB,KAEF,OAAC,OAAI,UAAU,yBACb,mBAAC,EAAAuB,QAAA,CACC,YAAa1B,EACb,WAAYgB,EACZ,iBAAkB,IAAM,CAClBA,GACJL,EAAeD,EAAc,CAAC,CAChC,EAEC,SAAAE,EAAU,IAAIe,MACb,OAAC,EAAAC,QAAA,CAEC,KAAMD,EACN,gBAAiB,CAACF,EAAG1B,IAAS,QAAQ,IAAI,IAAK0B,EAAG1B,CAAI,EACtD,kBAAmB,CAAC0B,EAAG1B,IAAS,QAAQ,IAAI,IAAK0B,EAAG1B,CAAI,GAHnD4B,EAAK,EAIZ,CACD,EACH,EACF,GACF,GACF,CAEJ",
6
+ "names": ["CollectionsFilters_exports", "__export", "CollectionsFilters", "__toCommonJS", "import_jsx_runtime", "import_react", "import_FilterList", "import_FilterHeader", "import_FilterCardWrap", "import_FilterCardWrapItem", "import_FiterTab", "props", "filters", "metafields", "data", "closeFilter", "setCloseFilter", "mobileDrawerVisible", "setMobileDrawerVisible", "openOptions", "setOpenOptions", "filtered", "setFiltered", "sortKeyIndx", "setSortKeyIndx", "currentPage", "setCurrentPage", "pageItems", "setPageItems", "pageSizeRef", "onceRef", "isShowMore", "filtersPair", "filter", "opt", "clearFiltered", "newData", "FiterTab", "FilterHeader", "FilterList", "e", "FilterCardWrap", "item", "FilterCardWrapItem"]
7
7
  }