@anker-in/headless-ui 1.1.28 → 1.1.29

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.
Files changed (87) hide show
  1. package/dist/cjs/biz-components/HeaderNavigation/MobileMenuComponents.d.ts +25 -0
  2. package/dist/cjs/biz-components/HeaderNavigation/MobileMenuComponents.js +2 -0
  3. package/dist/cjs/biz-components/HeaderNavigation/MobileMenuComponents.js.map +7 -0
  4. package/dist/cjs/biz-components/HeaderNavigation/MobileMulticolMenu.d.ts +7 -0
  5. package/dist/cjs/biz-components/HeaderNavigation/MobileMulticolMenu.js +2 -0
  6. package/dist/cjs/biz-components/HeaderNavigation/MobileMulticolMenu.js.map +7 -0
  7. package/dist/cjs/biz-components/HeaderNavigation/MobileResourceSidebarMenu.d.ts +9 -0
  8. package/dist/cjs/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js +2 -0
  9. package/dist/cjs/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js.map +7 -0
  10. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.d.ts +9 -0
  11. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js +2 -0
  12. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +7 -0
  13. package/dist/cjs/biz-components/HeaderNavigation/MobileSupportMenu.d.ts +7 -0
  14. package/dist/cjs/biz-components/HeaderNavigation/MobileSupportMenu.js +2 -0
  15. package/dist/cjs/biz-components/HeaderNavigation/MobileSupportMenu.js.map +7 -0
  16. package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.d.ts +15 -0
  17. package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.js +2 -0
  18. package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.js.map +7 -0
  19. package/dist/cjs/biz-components/HeaderNavigation/NavProvider.d.ts +2 -0
  20. package/dist/cjs/biz-components/HeaderNavigation/NavProvider.js +1 -1
  21. package/dist/cjs/biz-components/HeaderNavigation/NavProvider.js.map +3 -3
  22. package/dist/cjs/biz-components/HeaderNavigation/ResourceItem.d.ts +20 -0
  23. package/dist/cjs/biz-components/HeaderNavigation/ResourceItem.js +2 -0
  24. package/dist/cjs/biz-components/HeaderNavigation/ResourceItem.js.map +7 -0
  25. package/dist/cjs/biz-components/HeaderNavigation/ResourceSidebarDropdown.d.ts +9 -0
  26. package/dist/cjs/biz-components/HeaderNavigation/ResourceSidebarDropdown.js +2 -0
  27. package/dist/cjs/biz-components/HeaderNavigation/ResourceSidebarDropdown.js.map +7 -0
  28. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.d.ts +18 -0
  29. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js +2 -0
  30. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js.map +7 -0
  31. package/dist/cjs/biz-components/HeaderNavigation/SupportsDropdown.d.ts +9 -0
  32. package/dist/cjs/biz-components/HeaderNavigation/SupportsDropdown.js +2 -0
  33. package/dist/cjs/biz-components/HeaderNavigation/SupportsDropdown.js.map +7 -0
  34. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  35. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +3 -3
  36. package/dist/cjs/biz-components/HeaderNavigation/types.d.ts +2 -1
  37. package/dist/cjs/biz-components/HeaderNavigation/types.js +1 -1
  38. package/dist/cjs/biz-components/HeaderNavigation/types.js.map +2 -2
  39. package/dist/cjs/biz-components/HeaderNavigation/withCategory.d.ts +1 -0
  40. package/dist/cjs/biz-components/HeaderNavigation/withCategory.js +1 -1
  41. package/dist/cjs/biz-components/HeaderNavigation/withCategory.js.map +3 -3
  42. package/dist/cjs/biz-components/SearchPage/index.js +1 -1
  43. package/dist/cjs/biz-components/SearchPage/index.js.map +2 -2
  44. package/dist/esm/biz-components/HeaderNavigation/MobileMenuComponents.d.ts +25 -0
  45. package/dist/esm/biz-components/HeaderNavigation/MobileMenuComponents.js +2 -0
  46. package/dist/esm/biz-components/HeaderNavigation/MobileMenuComponents.js.map +7 -0
  47. package/dist/esm/biz-components/HeaderNavigation/MobileMulticolMenu.d.ts +7 -0
  48. package/dist/esm/biz-components/HeaderNavigation/MobileMulticolMenu.js +2 -0
  49. package/dist/esm/biz-components/HeaderNavigation/MobileMulticolMenu.js.map +7 -0
  50. package/dist/esm/biz-components/HeaderNavigation/MobileResourceSidebarMenu.d.ts +9 -0
  51. package/dist/esm/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js +2 -0
  52. package/dist/esm/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js.map +7 -0
  53. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.d.ts +9 -0
  54. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js +2 -0
  55. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +7 -0
  56. package/dist/esm/biz-components/HeaderNavigation/MobileSupportMenu.d.ts +7 -0
  57. package/dist/esm/biz-components/HeaderNavigation/MobileSupportMenu.js +2 -0
  58. package/dist/esm/biz-components/HeaderNavigation/MobileSupportMenu.js.map +7 -0
  59. package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.d.ts +15 -0
  60. package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.js +2 -0
  61. package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.js.map +7 -0
  62. package/dist/esm/biz-components/HeaderNavigation/NavProvider.d.ts +2 -0
  63. package/dist/esm/biz-components/HeaderNavigation/NavProvider.js +1 -1
  64. package/dist/esm/biz-components/HeaderNavigation/NavProvider.js.map +3 -3
  65. package/dist/esm/biz-components/HeaderNavigation/ResourceItem.d.ts +20 -0
  66. package/dist/esm/biz-components/HeaderNavigation/ResourceItem.js +2 -0
  67. package/dist/esm/biz-components/HeaderNavigation/ResourceItem.js.map +7 -0
  68. package/dist/esm/biz-components/HeaderNavigation/ResourceSidebarDropdown.d.ts +9 -0
  69. package/dist/esm/biz-components/HeaderNavigation/ResourceSidebarDropdown.js +2 -0
  70. package/dist/esm/biz-components/HeaderNavigation/ResourceSidebarDropdown.js.map +7 -0
  71. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.d.ts +18 -0
  72. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js +2 -0
  73. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js.map +7 -0
  74. package/dist/esm/biz-components/HeaderNavigation/SupportsDropdown.d.ts +9 -0
  75. package/dist/esm/biz-components/HeaderNavigation/SupportsDropdown.js +2 -0
  76. package/dist/esm/biz-components/HeaderNavigation/SupportsDropdown.js.map +7 -0
  77. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  78. package/dist/esm/biz-components/HeaderNavigation/index.js.map +3 -3
  79. package/dist/esm/biz-components/HeaderNavigation/types.d.ts +2 -1
  80. package/dist/esm/biz-components/HeaderNavigation/types.js +1 -1
  81. package/dist/esm/biz-components/HeaderNavigation/types.js.map +2 -2
  82. package/dist/esm/biz-components/HeaderNavigation/withCategory.d.ts +1 -0
  83. package/dist/esm/biz-components/HeaderNavigation/withCategory.js +1 -1
  84. package/dist/esm/biz-components/HeaderNavigation/withCategory.js.map +3 -3
  85. package/dist/esm/biz-components/SearchPage/index.js +1 -1
  86. package/dist/esm/biz-components/SearchPage/index.js.map +2 -2
  87. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{Fragment as C,jsx as e,jsxs as l}from"react/jsx-runtime";import{Heading as _,Tabs as W,TabsList as U,TabsTrigger as H,TabsContent as B,Text as h,Picture as S,Link as q,Button as w,DropdownMenu as J,DropdownMenuTrigger as Q,DropdownMenuContent as X,DropdownMenuItem as Y,LoadingDots as E}from"../../components/index.js";import{DownArrow as Z}from"../HeaderNavigation/icons/index.js";import{useMemo as u,useRef as V,useState as z}from"react";import{cn as T,atobID as ee,highlightSearchWord as k}from"../../helpers/utils.js";import{useAiuiContext as D}from"../AiuiProvider/index.js";import{formatVariantPrice as te}from"../ShelfDisplay/shelfDisplay.js";import{SearchPageTabType as v}from"./types.js";const j=({product:t,onSecondaryButton:i,onPrimaryButton:a,searchValue:r,variantData:m,shopNowLoadingProductId:y})=>{const o=u(()=>m||t?.variants?.[0],[t,m]),{locale:g="us",copyWriting:c}=D(),N=y===t?.id,x=u(()=>`${g==="us"?"":"/"+g}/products/${t?.handle}?variant=${ee(o?.id)}?ref=search_result_${r?.toLowerCase()}`,[t?.handle,o?.id,r,g]),n=o?.coupons?.[0],{price:L,basePrice:b}=te({locale:g,amount:n?n.variant_price4wscode:o?.price,baseAmount:n?o?.price:0,currencyCode:t?.price?.currencyCode||"USD"}),I=u(()=>t?.tags?.filter?.(p=>p?.startsWith?.("CLtag"))?.map?.(p=>p?.replace?.("CLtag:",""))?.slice?.(0,2),[t?.tags]);return e("div",{className:"ipc_search_product_item lg-desktop:h-[480px] desktop:h-[384px] laptop:h-[360px] relative h-auto",children:t?.type==="advertising"&&t?.advertisingLink?l(q,{href:t?.advertisingLink,className:"h-full",children:[e(S,{source:t?.advertisingBgImg?.url,className:"size-full",imgClassName:"size-full object-cover"}),l("div",{className:"desktop:p-6 absolute inset-0 z-[2] p-4 [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500",children:[e(h,{html:t?.advertisingTitle,className:T("desktop:text-[18px] text-sm font-bold",{"text-white":t?.advertisingTheme==="light","text-info-primary":t?.advertisingTheme==="dark"})}),t?.advertisingSubtitle&&e(_,{size:3,html:t?.advertisingSubtitle,className:T("laptop:line-clamp-3 mt-2 line-clamp-4 font-bold",{"text-white":t?.advertisingTheme==="light","text-info-primary":t?.advertisingTheme==="dark"})})]})]}):l("a",{href:x,className:" tablet:hover:bg-info-white desktop:p-6 desktop:pt-4 tablet:p-4 flex h-full flex-col bg-[#EAEAEC] px-2 py-4 no-underline duration-300",children:[e("div",{className:"ipc_search_product_item_image",children:e(S,{className:"lg-desktop:size-[196px] mx-auto size-[138px]",source:`${o?.image?.url||t?.images?.[0]?.url}}`,alt:t?.title,imgClassName:"object-cover size-full"})}),l("div",{className:"ipc_search_product_item_content desktop:mt-2 lg-desktop:mt-3 desktop:gap-6 mt-1 flex flex-1 flex-col justify-between gap-4",children:[l("div",{className:"flex-1",children:[e("div",{className:"lg-desktop:h-[28px] mb-2 flex h-[24px] gap-2",children:I?.map((p,P)=>e(h,{as:"p",html:p,className:"text-brand-0 lg-desktop:px-2 lg-desktop:!leading-[28px] h-full rounded-full border-[1.6px] border-[#00BEFA] px-[6px] text-sm font-bold !leading-[22px]"},P))}),e(h,{className:"lg-desktop:text-2xl tablet:line-clamp-2 line-clamp-3 text-xl font-bold !leading-[1.2]",weight:"bold",html:k(t?.title||"",r||"")}),e(h,{as:"p",className:"lg-desktop:text-[18px] tablet:line-clamp-1 mt-1 line-clamp-2 text-sm font-bold",html:k(t?.description,r||"")})]}),l("div",{children:[e("div",{className:"mb-2 flex items-center",children:o?.availableForSale?l(C,{children:[e("div",{className:"final-price text-info-primary tablet:text-xl lg-desktop:text-2xl text-[18px] font-bold",children:o?.availableForSale&&L||""}),e("div",{className:"origin-price tablet:text-xl lg-desktop:text-2xl text-info-secondary ml-1 text-[18px] font-bold line-through",children:o?.availableForSale&&b||""})]}):e("div",{className:"text-info-primary tablet:text-xl lg-desktop:text-2xl text-[18px] font-bold",children:c?.soldOutText||"Sold Out"})}),l("div",{className:T("ipc_search_product_item_button_group","lg-desktop:gap-3 laptop:flex-row flex flex-col items-center gap-2"),children:[c?.learnMoreText&&e(w,{variant:"secondary",className:"laptop:w-auto w-full",size:"lg",disabled:!o?.availableForSale,onClick:p=>{p.preventDefault(),p.stopPropagation(),i?.()},children:c?.learnMoreText}),c?.shopNowText&&e(w,{variant:"primary",className:"laptop:w-auto w-full",size:"lg",disabled:!o?.availableForSale,loading:N,onClick:p=>{p.preventDefault(),p.stopPropagation(),a?.()},children:c?.shopNowText})]})]})]})]})})},se=({blog:t,searchValue:i})=>{const{copyWriting:a,locale:r}=D(),m=u(()=>`${r==="us"?"":"/"+r}/blogs/${t?.blog?.handle}/${t?.handle.replace("storefront-","")}`,[t,r]);return e("div",{className:"ipc_search_blog_item border-b border-[#E4E5E6] py-6",children:l("div",{className:"ipc_search_blog_item_content laptop:flex-row-reverse laptop:gap-8 desktop:gap-16 flex flex-col gap-4",children:[e("div",{className:"laptop:flex-[440] desktop:flex-[540] desktop:h-[280px] h-[240px]",children:e(S,{source:t?.image?.url,className:"size-full",imgClassName:"size-full object-cover",alt:t?.title})}),l("div",{className:"laptop:flex-[424] desktop:flex-[704] lg-desktop:flex-[1056] flex flex-col justify-center",children:[e(_,{size:3,html:k(t?.title,i)}),e(h,{html:k(t?.content,i),className:"lg-desktop:text-[18px] desktop:text-[16px] mt-1 line-clamp-2 text-sm font-bold leading-[1.4]"}),e("div",{className:"desktop:mt-6 mt-4",children:e(w,{as:"a",href:m,variant:"secondary",size:"lg",children:a?.learnMoreText||"Learn More"})})]})]})})},ae=({searchValue:t,page:i})=>{const{copyWriting:a,locale:r="us"}=D(),m=u(()=>`${r==="us"?"":`/${r}`}/${i?.handle}`,[i,r]);return l("div",{className:"ipc_search_page_items border-b border-[#E4E5E6] py-6",children:[e(_,{size:3,html:k(i?.name,t)}),e(h,{as:"p",html:k(i?.bodySummary||"",t),className:"lg-desktop:text-[18px] desktop:text-[16px] mt-1 text-sm font-bold leading-[1.4]"}),e(w,{as:"a",href:m,variant:"secondary",size:"lg",className:"desktop:mt-6 mt-4",children:a?.learnMoreText||"Learn More"})]})},A=({url:t,label:i})=>l("div",{className:"flex flex-col items-center justify-center gap-4",children:[e(S,{source:t,className:"h-[180px] w-[240px]",imgClassName:"object-cover"}),e(h,{html:i,className:"desktop:text-[18px] text-sm font-bold leading-[1.4]"})]}),M=({products:t,title:i,buildProps:a,onSecondaryButton:r,onPrimaryButton:m})=>{const{products:y}=a||{};return l("div",{className:"ipc_search_recommend_product tablet:pt-[80px] laptop:pt-[96px] desktop:pt-[112px] lg-desktop:pt-[128px] pt-[64px]",children:[e(_,{size:4,weight:"bold",html:i}),e("div",{className:" tablet:grid-cols-3 desktop:grid-cols-4 desktop:gap-4 mt-6 grid grid-cols-2 gap-x-3 gap-y-4",children:t?.map((o,g)=>{const c=y?.find(x=>x.handle===o.handle),N=c?.variants?.find(x=>x.sku===o.sku);return e(j,{product:c,variantData:N,onSecondaryButton:()=>r?.(),onPrimaryButton:()=>m?.()},o.sku+g)})})]})},le=({searchResult:t,searchValue:i,data:a,onSecondaryButton:r,onPrimaryButton:m,onChangeSort:y,loading:o,shopNowLoadingProductId:g,searchResultCount:c,onChangeTab:N,buildProps:x})=>{const[n,L]=z(a?.tabs?.[0]),b=V(!1),[I,p]=z(!1),[P,$]=z({[v.PRODUCTS]:a?.tabs?.find(s=>s.tabType===v.PRODUCTS)?.sortKeys?.[0],[v.BLOGS]:a?.tabs?.find(s=>s.tabType===v.BLOGS)?.sortKeys?.[0],[v.PAGES]:a?.tabs?.find(s=>s.tabType===v.PAGES)?.sortKeys?.[0]}),f=u(()=>t?.products||[],[t]),O=u(()=>t?.blogs||[],[t]),R=u(()=>t?.pages||[],[t]),F=u(()=>Object.values(c||{}).reduce((s,d)=>s+d,0),[c]),G=u(()=>{const s={advertisingBgImg:n?.advertisingBgImg,advertisingTitle:n?.advertisingTitle,advertisingSubtitle:n?.advertisingSubtitle,advertisingLink:n?.advertisingLink,advertisingTheme:n?.advertisingTheme,type:"advertising"};return!b.current&&f?.length&&(f?.length>=8?(f?.splice(7,0,s),b.current=!0):(f?.push(s),b.current=!0)),f},[n,f]);return l("div",{className:"ipc_search_page desktop:py-[128px] tablet:px-8 laptop:px-16 desktop:px-16 lg-desktop:px-[calc(50%-832px)] px-4 py-16",children:[e(_,{size:4,weight:"bold",html:a?.title?.replace("$totalCount",F?.toString())?.replace("$inputValue",`"${i}"`)}),e("div",{className:"mt-6",children:l(W,{className:"ipc_search_page_tabs",defaultValue:"products",children:[l("div",{className:"desktop:flex desktop:items-center desktop:flex-row desktop:gap-6 desktop:justify-between",children:[e(U,{children:a?.tabs?.map(s=>l(H,{onClick:()=>{L(s),b.current=!1;const d=s?.sortKeys?.[0];d&&($(K=>({...K,[s?.tabType]:d})),y?.(s?.tabType,d)),N?.(s?.tabType)},defaultValue:"products",value:s.tabType,children:[s.label," (",c?.[s.tabType],")"]},s.id))}),l(J,{onOpenChange:p,children:[e(Q,{asChild:!0,children:l("button",{className:"desktop:mt-0 mt-6 flex items-center text-base font-bold leading-[1.2]",children:[n?.sortLabel," ",P?.[n?.tabType]?.label," ",e(Z,{className:T("inline-block size-4",{"rotate-180":I})})]})}),e(X,{align:"start",sideOffset:8,className:"rounded-none bg-white !px-0 py-2",children:n?.sortKeys?.map(s=>e(Y,{className:T("laptop:px-4 laptop:text-base px-3 py-4 text-sm font-bold hover:bg-[#EAEAEC] hover:text-current",{"bg-[#EAEAEC]":P?.[n?.tabType]?.value===s.value}),onClick:()=>{b.current=!1,y?.(n?.tabType,s),$(d=>({...d,[n?.tabType]:s}))},children:s.label},s.id))})]})]}),l(B,{value:v.PRODUCTS,className:"ipc_search_page_tabs_products_content mt-6",children:[e("div",{className:"tablet:grid-cols-3 desktop:grid-cols-4 desktop:gap-4 grid grid-cols-2 gap-x-3 gap-y-4",children:G?.map((s,d)=>e(j,{searchValue:i,product:s,shopNowLoadingProductId:g,onSecondaryButton:()=>r?.(s),onPrimaryButton:()=>m?.(s)},(s.id||"")+d))}),o?e("div",{className:"mt-6 flex w-full justify-center",children:e(E,{})}):!f?.length&&l(C,{children:[e(A,{url:a?.noResultImage?.url,label:a?.noResultLabel}),e(M,{products:a?.recommendProducts||[],buildProps:x,title:a?.recommendProductsTitle,shopNowLoadingProductId:g})]})]}),e(B,{value:v.BLOGS,className:"ipc_search_page_tabs_blogs_content",children:l("div",{children:[O?.map(s=>e(se,{blog:s,searchValue:i},s.id)),o?e("div",{className:"mt-6 flex justify-center",children:e(E,{})}):!O?.length&&l(C,{children:[e(A,{url:a?.noResultImage?.url,label:a?.noResultLabel}),e(M,{products:a?.recommendProducts||[],buildProps:x,title:a?.recommendProductsTitle})]})]})}),l(B,{value:v.PAGES,className:"ipc_search_page_tabs_pages_content",children:[e("div",{children:R?.map((s,d)=>e(ae,{page:s,searchValue:i},(s.global_id||s.id)+d))}),o?e("div",{className:"mt-6 flex justify-center",children:e(E,{})}):!R?.length&&l(C,{children:[e(A,{url:a?.noResultImage?.url,label:a?.noResultLabel}),e(M,{products:a?.recommendProducts||[],buildProps:x,title:a?.recommendProductsTitle,shopNowLoadingProductId:g})]})]})]})})]})};var me=le;export{me as default};
1
+ import{Fragment as C,jsx as e,jsxs as l}from"react/jsx-runtime";import{Heading as _,Tabs as W,TabsList as U,TabsTrigger as H,TabsContent as B,Text as h,Picture as S,Link as q,Button as w,DropdownMenu as J,DropdownMenuTrigger as Q,DropdownMenuContent as X,DropdownMenuItem as Y,LoadingDots as E}from"../../components/index.js";import{DownArrow as Z}from"../HeaderNavigation/icons/index.js";import{useMemo as u,useRef as V,useState as z}from"react";import{cn as T,atobID as ee,highlightSearchWord as k}from"../../helpers/utils.js";import{useAiuiContext as D}from"../AiuiProvider/index.js";import{formatVariantPrice as te}from"../ShelfDisplay/shelfDisplay.js";import{SearchPageTabType as v}from"./types.js";const j=({product:t,onSecondaryButton:i,onPrimaryButton:a,searchValue:r,variantData:m,shopNowLoadingProductId:y})=>{const o=u(()=>m||t?.variants?.[0],[t,m]),{locale:g="us",copyWriting:p}=D(),N=y===t?.id,x=u(()=>`${g==="us"?"":"/"+g}/products/${t?.handle}?variant=${ee(o?.id)}?ref=search_result_${r?.toLowerCase()}`,[t?.handle,o?.id,r,g]),n=o?.coupons?.[0],{price:L,basePrice:b}=te({locale:g,amount:n?n.variant_price4wscode:o?.price,baseAmount:n?o?.price:0,currencyCode:t?.price?.currencyCode||"USD"}),I=u(()=>t?.tags?.filter?.(c=>c?.startsWith?.("CLtag"))?.map?.(c=>c?.replace?.("CLtag:",""))?.slice?.(0,2),[t?.tags]);return e("div",{className:"ipc_search_product_item lg-desktop:h-[480px] desktop:h-[384px] laptop:h-[360px] relative h-auto",children:t?.type==="advertising"&&t?.advertisingLink?l(q,{href:t?.advertisingLink,className:"h-full",children:[e(S,{source:t?.advertisingBgImg?.url,className:"size-full",imgClassName:"size-full object-cover"}),l("div",{className:"desktop:p-6 absolute inset-0 z-[2] p-4 [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500",children:[e(h,{html:t?.advertisingTitle,className:T("desktop:text-[18px] text-sm font-bold",{"text-white":t?.advertisingTheme==="light","text-info-primary":t?.advertisingTheme==="dark"})}),t?.advertisingSubtitle&&e(_,{size:3,html:t?.advertisingSubtitle,className:T("laptop:line-clamp-3 mt-2 line-clamp-4 font-bold",{"text-white":t?.advertisingTheme==="light","text-info-primary":t?.advertisingTheme==="dark"})})]})]}):l("a",{href:x,className:" tablet:hover:bg-info-white desktop:p-6 desktop:pt-4 tablet:p-4 flex h-full flex-col bg-[#EAEAEC] px-2 py-4 no-underline duration-300",children:[e("div",{className:"ipc_search_product_item_image",children:e(S,{className:"lg-desktop:size-[196px] mx-auto size-[138px]",source:`${o?.image?.url||t?.images?.[0]?.url}}`,alt:t?.title,imgClassName:"object-cover size-full"})}),l("div",{className:"ipc_search_product_item_content desktop:mt-2 lg-desktop:mt-3 desktop:gap-6 mt-1 flex flex-1 flex-col justify-between gap-4",children:[l("div",{className:"flex-1",children:[e("div",{className:"lg-desktop:h-[28px] mb-2 flex h-[24px] gap-2",children:I?.map((c,P)=>e(h,{as:"p",html:c,className:"text-brand-0 lg-desktop:px-2 lg-desktop:!leading-[28px] h-full rounded-full border-[1.6px] border-[#00BEFA] px-[6px] text-sm font-bold !leading-[22px]"},P))}),e(h,{className:"lg-desktop:text-2xl tablet:line-clamp-2 line-clamp-3 text-xl font-bold !leading-[1.2]",weight:"bold",html:k(t?.title||"",r||"")}),e(h,{as:"p",className:"lg-desktop:text-[18px] tablet:line-clamp-1 mt-1 line-clamp-2 text-sm font-bold",html:k(t?.description,r||"")})]}),l("div",{children:[e("div",{className:"mb-2 flex items-center",children:o?.availableForSale?l(C,{children:[e("div",{className:"final-price text-info-primary tablet:text-xl lg-desktop:text-2xl text-[18px] font-bold",children:o?.availableForSale&&L||""}),e("div",{className:"origin-price tablet:text-xl lg-desktop:text-2xl text-info-secondary ml-1 text-[18px] font-bold line-through",children:o?.availableForSale&&b||""})]}):e("div",{className:"text-info-primary tablet:text-xl lg-desktop:text-2xl text-[18px] font-bold",children:p?.soldOutText||"Sold Out"})}),l("div",{className:T("ipc_search_product_item_button_group","lg-desktop:gap-3 laptop:flex-row flex flex-col items-center gap-2"),children:[p?.learnMoreText&&e(w,{variant:"secondary",className:"laptop:w-auto w-full",size:"lg",disabled:!o?.availableForSale,onClick:c=>{c.preventDefault(),c.stopPropagation(),i?.()},children:p?.learnMoreText}),p?.shopNowText&&e(w,{variant:"primary",className:"laptop:w-auto w-full",size:"lg",disabled:!o?.availableForSale,loading:N,onClick:c=>{c.preventDefault(),c.stopPropagation(),a?.()},children:p?.shopNowText})]})]})]})]})})},se=({blog:t,searchValue:i})=>{const{copyWriting:a,locale:r}=D(),m=u(()=>`${r==="us"?"":"/"+r}/blogs/${t?.blog?.handle}/${t?.handle.replace("storefront-","")}`,[t,r]);return e("div",{className:"ipc_search_blog_item border-b border-[#E4E5E6] py-6",children:l("div",{className:"ipc_search_blog_item_content laptop:flex-row-reverse laptop:gap-8 desktop:gap-16 flex flex-col gap-4",children:[e("div",{className:"laptop:flex-[440] desktop:flex-[540] desktop:h-[280px] h-[240px]",children:e(S,{source:t?.image?.url,className:"size-full",imgClassName:"size-full object-cover",alt:t?.title})}),l("div",{className:"laptop:flex-[424] desktop:flex-[704] lg-desktop:flex-[1056] flex flex-col justify-center",children:[e(_,{size:3,html:k(t?.title,i)}),e(h,{html:k(t?.content,i),className:"lg-desktop:text-[18px] desktop:text-[16px] mt-1 line-clamp-2 text-sm font-bold leading-[1.4]"}),e("div",{className:"desktop:mt-6 mt-4",children:e(w,{as:"a",href:m,variant:"secondary",size:"lg",children:a?.learnMoreText||"Learn More"})})]})]})})},ae=({searchValue:t,page:i})=>{const{copyWriting:a,locale:r="us"}=D(),m=u(()=>`${r==="us"?"":`/${r}`}/${i?.handle}`,[i,r]);return l("div",{className:"ipc_search_page_items border-b border-[#E4E5E6] py-6",children:[e(_,{size:3,html:k(i?.name,t)}),e(h,{as:"p",html:k(i?.bodySummary||"",t),className:"lg-desktop:text-[18px] desktop:text-[16px] mt-1 text-sm font-bold leading-[1.4]"}),e(w,{as:"a",href:m,variant:"secondary",size:"lg",className:"desktop:mt-6 mt-4",children:a?.learnMoreText||"Learn More"})]})},A=({url:t,label:i})=>l("div",{className:"flex flex-col items-center justify-center gap-4",children:[e(S,{source:t,className:"h-[180px] w-[240px]",imgClassName:"object-cover"}),e(h,{html:i,className:"desktop:text-[18px] text-sm font-bold leading-[1.4]"})]}),M=({products:t,title:i,buildProps:a,onSecondaryButton:r,onPrimaryButton:m})=>{const{products:y}=a||{};return l("div",{className:"ipc_search_recommend_product tablet:pt-[80px] laptop:pt-[96px] desktop:pt-[112px] lg-desktop:pt-[128px] pt-[64px]",children:[e(_,{size:4,weight:"bold",html:i}),e("div",{className:" tablet:grid-cols-3 desktop:grid-cols-4 desktop:gap-4 mt-6 grid grid-cols-2 gap-x-3 gap-y-4",children:t?.map((o,g)=>{const p=y?.find(x=>x.handle===o.handle);if(!p)return null;const N=p?.variants?.find(x=>x.sku===o.sku);return e(j,{product:p,variantData:N,onSecondaryButton:()=>r?.(),onPrimaryButton:()=>m?.()},o.sku+g)})})]})},le=({searchResult:t,searchValue:i,data:a,onSecondaryButton:r,onPrimaryButton:m,onChangeSort:y,loading:o,shopNowLoadingProductId:g,searchResultCount:p,onChangeTab:N,buildProps:x})=>{const[n,L]=z(a?.tabs?.[0]),b=V(!1),[I,c]=z(!1),[P,$]=z({[v.PRODUCTS]:a?.tabs?.find(s=>s.tabType===v.PRODUCTS)?.sortKeys?.[0],[v.BLOGS]:a?.tabs?.find(s=>s.tabType===v.BLOGS)?.sortKeys?.[0],[v.PAGES]:a?.tabs?.find(s=>s.tabType===v.PAGES)?.sortKeys?.[0]}),f=u(()=>t?.products||[],[t]),O=u(()=>t?.blogs||[],[t]),R=u(()=>t?.pages||[],[t]),F=u(()=>Object.values(p||{}).reduce((s,d)=>s+d,0),[p]),G=u(()=>{const s={advertisingBgImg:n?.advertisingBgImg,advertisingTitle:n?.advertisingTitle,advertisingSubtitle:n?.advertisingSubtitle,advertisingLink:n?.advertisingLink,advertisingTheme:n?.advertisingTheme,type:"advertising"};return!b.current&&f?.length&&(f?.length>=8?(f?.splice(7,0,s),b.current=!0):(f?.push(s),b.current=!0)),f},[n,f]);return l("div",{className:"ipc_search_page desktop:py-[128px] tablet:px-8 laptop:px-16 desktop:px-16 lg-desktop:px-[calc(50%-832px)] px-4 py-16",children:[e(_,{size:4,weight:"bold",html:a?.title?.replace("$totalCount",F?.toString())?.replace("$inputValue",`"${i}"`)}),e("div",{className:"mt-6",children:l(W,{className:"ipc_search_page_tabs",defaultValue:"products",children:[l("div",{className:"desktop:flex desktop:items-center desktop:flex-row desktop:gap-6 desktop:justify-between",children:[e(U,{children:a?.tabs?.map(s=>l(H,{onClick:()=>{L(s),b.current=!1;const d=s?.sortKeys?.[0];d&&($(K=>({...K,[s?.tabType]:d})),y?.(s?.tabType,d)),N?.(s?.tabType)},defaultValue:"products",value:s.tabType,children:[s.label," (",p?.[s.tabType],")"]},s.id))}),l(J,{onOpenChange:c,children:[e(Q,{asChild:!0,children:l("button",{className:"desktop:mt-0 mt-6 flex items-center text-base font-bold leading-[1.2]",children:[n?.sortLabel," ",P?.[n?.tabType]?.label," ",e(Z,{className:T("inline-block size-4",{"rotate-180":I})})]})}),e(X,{align:"start",sideOffset:8,className:"rounded-none bg-white !px-0 py-2",children:n?.sortKeys?.map(s=>e(Y,{className:T("laptop:px-4 laptop:text-base px-3 py-4 text-sm font-bold hover:bg-[#EAEAEC] hover:text-current",{"bg-[#EAEAEC]":P?.[n?.tabType]?.value===s.value}),onClick:()=>{b.current=!1,y?.(n?.tabType,s),$(d=>({...d,[n?.tabType]:s}))},children:s.label},s.id))})]})]}),l(B,{value:v.PRODUCTS,className:"ipc_search_page_tabs_products_content mt-6",children:[e("div",{className:"tablet:grid-cols-3 desktop:grid-cols-4 desktop:gap-4 grid grid-cols-2 gap-x-3 gap-y-4",children:G?.map((s,d)=>e(j,{searchValue:i,product:s,shopNowLoadingProductId:g,onSecondaryButton:()=>r?.(s),onPrimaryButton:()=>m?.(s)},(s.id||"")+d))}),o?e("div",{className:"mt-6 flex w-full justify-center",children:e(E,{})}):!f?.length&&l(C,{children:[e(A,{url:a?.noResultImage?.url,label:a?.noResultLabel}),e(M,{products:a?.recommendProducts||[],buildProps:x,title:a?.recommendProductsTitle,shopNowLoadingProductId:g})]})]}),e(B,{value:v.BLOGS,className:"ipc_search_page_tabs_blogs_content",children:l("div",{children:[O?.map(s=>e(se,{blog:s,searchValue:i},s.id)),o?e("div",{className:"mt-6 flex justify-center",children:e(E,{})}):!O?.length&&l(C,{children:[e(A,{url:a?.noResultImage?.url,label:a?.noResultLabel}),e(M,{products:a?.recommendProducts||[],buildProps:x,title:a?.recommendProductsTitle})]})]})}),l(B,{value:v.PAGES,className:"ipc_search_page_tabs_pages_content",children:[e("div",{children:R?.map((s,d)=>e(ae,{page:s,searchValue:i},(s.global_id||s.id)+d))}),o?e("div",{className:"mt-6 flex justify-center",children:e(E,{})}):!R?.length&&l(C,{children:[e(A,{url:a?.noResultImage?.url,label:a?.noResultLabel}),e(M,{products:a?.recommendProducts||[],buildProps:x,title:a?.recommendProductsTitle,shopNowLoadingProductId:g})]})]})]})})]})};var me=le;export{me as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/SearchPage/index.tsx"],
4
- "sourcesContent": ["import {\n Heading,\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n Text,\n Picture,\n Link,\n Button,\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n LoadingDots,\n} from '../../components/index.js'\nimport { DownArrow } from '../HeaderNavigation/icons/index.js'\nimport { useMemo, useRef, useState } from 'react'\nimport { cn, atobID, highlightSearchWord } from '../../helpers/utils.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { formatVariantPrice } from '../ShelfDisplay/shelfDisplay.js'\nimport type {\n SearchPageProps,\n SortKey,\n SearchProductItemProps,\n SearchBlogItemProps,\n SearchPageItemProps,\n SearchRecommendProductsProps,\n} from './types'\nimport { SearchPageTabType } from './types.js'\n\n/**\n * \u641C\u7D22\u5546\u54C1\n */\nconst SearchProductItem = ({\n product,\n onSecondaryButton,\n onPrimaryButton,\n searchValue,\n variantData,\n shopNowLoadingProductId,\n}: SearchProductItemProps) => {\n const variant = useMemo(() => variantData || product?.variants?.[0], [product, variantData])\n const { locale = 'us', copyWriting } = useAiuiContext()\n\n // \u5224\u65AD\u5F53\u524D\u4EA7\u54C1\u662F\u5426\u5728\u52A0\u8F7D\u4E2D\n const isCurrentProductLoading = shopNowLoadingProductId === product?.id\n\n const listingLink = useMemo(() => {\n return `${locale === 'us' ? '' : '/' + locale}/products/${product?.handle}?variant=${atobID(variant?.id as string)}?ref=search_result_${searchValue?.toLowerCase()}`\n }, [product?.handle, variant?.id, searchValue, locale])\n\n const coupon = variant?.coupons?.[0]\n\n const { price, basePrice } = formatVariantPrice({\n locale: locale,\n amount: coupon ? coupon.variant_price4wscode : variant?.price,\n baseAmount: coupon ? variant?.price : 0,\n currencyCode: product?.price?.currencyCode || 'USD',\n })\n\n const tags = useMemo(() => {\n return product?.tags\n ?.filter?.((item: any) => item?.startsWith?.('CLtag'))\n ?.map?.((item: any) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, 2)\n }, [product?.tags])\n\n return (\n <div className=\"ipc_search_product_item lg-desktop:h-[480px] desktop:h-[384px] laptop:h-[360px] relative h-auto\">\n {product?.type === 'advertising' && product?.advertisingLink ? (\n <Link href={product?.advertisingLink} className=\"h-full\">\n <Picture\n source={product?.advertisingBgImg?.url}\n className=\"size-full\"\n imgClassName=\"size-full object-cover\"\n />\n <div className=\"desktop:p-6 absolute inset-0 z-[2] p-4 [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500\">\n <Text\n html={product?.advertisingTitle}\n className={cn('desktop:text-[18px] text-sm font-bold', {\n 'text-white': product?.advertisingTheme === 'light',\n 'text-info-primary': product?.advertisingTheme === 'dark',\n })}\n />\n {product?.advertisingSubtitle && (\n <Heading\n size={3}\n html={product?.advertisingSubtitle}\n className={cn('laptop:line-clamp-3 mt-2 line-clamp-4 font-bold', {\n 'text-white': product?.advertisingTheme === 'light',\n 'text-info-primary': product?.advertisingTheme === 'dark',\n })}\n />\n )}\n </div>\n </Link>\n ) : (\n <a\n href={listingLink}\n className=\" tablet:hover:bg-info-white desktop:p-6 desktop:pt-4 tablet:p-4 flex h-full flex-col bg-[#EAEAEC] px-2 py-4 no-underline duration-300\"\n >\n <div className=\"ipc_search_product_item_image\">\n <Picture\n className=\"lg-desktop:size-[196px] mx-auto size-[138px]\"\n source={`${variant?.image?.url || product?.images?.[0]?.url}}`}\n alt={product?.title}\n imgClassName=\"object-cover size-full\"\n />\n </div>\n <div className=\"ipc_search_product_item_content desktop:mt-2 lg-desktop:mt-3 desktop:gap-6 mt-1 flex flex-1 flex-col justify-between gap-4\">\n <div className=\"flex-1\">\n <div className=\"lg-desktop:h-[28px] mb-2 flex h-[24px] gap-2\">\n {tags?.map((tag: string, index: number) => (\n <Text\n key={index}\n as=\"p\"\n html={tag}\n className=\"text-brand-0 lg-desktop:px-2 lg-desktop:!leading-[28px] h-full rounded-full border-[1.6px] border-[#00BEFA] px-[6px] text-sm font-bold !leading-[22px]\"\n />\n ))}\n </div>\n <Text\n className=\"lg-desktop:text-2xl tablet:line-clamp-2 line-clamp-3 text-xl font-bold !leading-[1.2]\"\n weight=\"bold\"\n html={highlightSearchWord(product?.title || '', searchValue || '')}\n />\n <Text\n as=\"p\"\n className=\"lg-desktop:text-[18px] tablet:line-clamp-1 mt-1 line-clamp-2 text-sm font-bold\"\n html={highlightSearchWord(product?.description, searchValue || '')}\n />\n </div>\n <div>\n <div className=\"mb-2 flex items-center\">\n {!variant?.availableForSale ? (\n <div className=\"text-info-primary tablet:text-xl lg-desktop:text-2xl text-[18px] font-bold\">\n {copyWriting?.soldOutText || 'Sold Out'}\n </div>\n ) : (\n <>\n <div className=\"final-price text-info-primary tablet:text-xl lg-desktop:text-2xl text-[18px] font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl lg-desktop:text-2xl text-info-secondary ml-1 text-[18px] font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n <div\n className={cn(\n 'ipc_search_product_item_button_group',\n 'lg-desktop:gap-3 laptop:flex-row flex flex-col items-center gap-2'\n )}\n >\n {copyWriting?.learnMoreText && (\n <Button\n variant=\"secondary\"\n className=\"laptop:w-auto w-full\"\n size=\"lg\"\n disabled={!variant?.availableForSale}\n onClick={e => {\n e.preventDefault()\n e.stopPropagation()\n onSecondaryButton?.()\n }}\n >\n {copyWriting?.learnMoreText}\n </Button>\n )}\n {copyWriting?.shopNowText && (\n <Button\n variant=\"primary\"\n className=\"laptop:w-auto w-full\"\n size=\"lg\"\n disabled={!variant?.availableForSale}\n loading={isCurrentProductLoading}\n onClick={e => {\n e.preventDefault()\n e.stopPropagation()\n onPrimaryButton?.()\n }}\n >\n {copyWriting?.shopNowText}\n </Button>\n )}\n </div>\n </div>\n </div>\n </a>\n )}\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u6587\u7AE0\n */\nconst SearchBlogItem = ({ blog, searchValue }: SearchBlogItemProps) => {\n const { copyWriting, locale } = useAiuiContext()\n\n const articleLink = useMemo(\n () =>\n `${locale === 'us' ? '' : '/' + locale}/blogs/${blog?.blog?.handle}/${blog?.handle.replace('storefront-', '')}`,\n [blog, locale]\n )\n\n return (\n <div className=\"ipc_search_blog_item border-b border-[#E4E5E6] py-6\">\n <div className=\"ipc_search_blog_item_content laptop:flex-row-reverse laptop:gap-8 desktop:gap-16 flex flex-col gap-4\">\n <div className=\"laptop:flex-[440] desktop:flex-[540] desktop:h-[280px] h-[240px]\">\n <Picture\n source={blog?.image?.url}\n className=\"size-full\"\n imgClassName=\"size-full object-cover\"\n alt={blog?.title}\n />\n </div>\n <div className=\"laptop:flex-[424] desktop:flex-[704] lg-desktop:flex-[1056] flex flex-col justify-center\">\n <Heading size={3} html={highlightSearchWord(blog?.title, searchValue)} />\n <Text\n html={highlightSearchWord(blog?.content, searchValue)}\n className=\"lg-desktop:text-[18px] desktop:text-[16px] mt-1 line-clamp-2 text-sm font-bold leading-[1.4]\"\n />\n <div className=\"desktop:mt-6 mt-4\">\n <Button as=\"a\" href={articleLink} variant=\"secondary\" size=\"lg\">\n {copyWriting?.learnMoreText || 'Learn More'}\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u9875\u9762\n */\nconst SearchPageItem = ({ searchValue, page }: SearchPageItemProps) => {\n const { copyWriting, locale = 'us' } = useAiuiContext()\n const pageLink = useMemo(() => `${locale === 'us' ? '' : `/${locale}`}/${page?.handle}`, [page, locale])\n return (\n <div className=\"ipc_search_page_items border-b border-[#E4E5E6] py-6\">\n <Heading size={3} html={highlightSearchWord(page?.name, searchValue)} />\n <Text\n as=\"p\"\n html={highlightSearchWord(page?.bodySummary || '', searchValue)}\n className=\"lg-desktop:text-[18px] desktop:text-[16px] mt-1 text-sm font-bold leading-[1.4]\"\n />\n <Button as=\"a\" href={pageLink} variant=\"secondary\" size=\"lg\" className=\"desktop:mt-6 mt-4\">\n {copyWriting?.learnMoreText || 'Learn More'}\n </Button>\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u7ED3\u679C\u4E3A\u7A7A\n */\nconst SearchPageNoResult = ({ url, label }: { url: string; label: string }) => {\n return (\n <div className=\"flex flex-col items-center justify-center gap-4\">\n <Picture source={url} className=\"h-[180px] w-[240px]\" imgClassName=\"object-cover\" />\n <Text html={label} className=\"desktop:text-[18px] text-sm font-bold leading-[1.4]\" />\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u63A8\u8350\u5546\u54C1\n */\nconst SearchRecommendProducts = ({\n products,\n title,\n buildProps,\n onSecondaryButton,\n onPrimaryButton,\n}: SearchRecommendProductsProps) => {\n const { products: buildProducts } = buildProps || {}\n return (\n <div className=\"ipc_search_recommend_product tablet:pt-[80px] laptop:pt-[96px] desktop:pt-[112px] lg-desktop:pt-[128px] pt-[64px]\">\n <Heading size={4} weight=\"bold\" html={title} />\n <div className=\" tablet:grid-cols-3 desktop:grid-cols-4 desktop:gap-4 mt-6 grid grid-cols-2 gap-x-3 gap-y-4\">\n {products?.map((product: any, index: number) => {\n const buildProduct = buildProducts?.find((buildProduct: any) => buildProduct.handle === product.handle)\n const variant = buildProduct?.variants?.find((variant: any) => variant.sku === product.sku)\n return (\n <SearchProductItem\n product={buildProduct}\n variantData={variant}\n key={product.sku + index}\n onSecondaryButton={() => onSecondaryButton?.()}\n onPrimaryButton={() => onPrimaryButton?.()}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u9875\u9762\n */\nconst SearchPage = ({\n searchResult,\n searchValue,\n data,\n onSecondaryButton,\n onPrimaryButton,\n // loadMore,\n onChangeSort,\n loading,\n shopNowLoadingProductId,\n searchResultCount,\n onChangeTab,\n buildProps,\n}: SearchPageProps) => {\n const [currentTab, setCurrentTab] = useState<any>(data?.tabs?.[0])\n const isInsertAdvertising = useRef(false)\n const [isOpenSort, setIsOpenSort] = useState(false)\n const [currentSortKey, setCurrentSortKey] = useState<any>({\n [SearchPageTabType.PRODUCTS]: data?.tabs?.find((tab: any) => tab.tabType === SearchPageTabType.PRODUCTS)\n ?.sortKeys?.[0],\n [SearchPageTabType.BLOGS]: data?.tabs?.find((tab: any) => tab.tabType === SearchPageTabType.BLOGS)?.sortKeys?.[0],\n [SearchPageTabType.PAGES]: data?.tabs?.find((tab: any) => tab.tabType === SearchPageTabType.PAGES)?.sortKeys?.[0],\n })\n\n const searchProductsResult = useMemo(() => {\n return searchResult?.products || []\n }, [searchResult])\n\n const searchBlogsResult = useMemo(() => {\n return searchResult?.blogs || []\n }, [searchResult])\n\n const searchPagesResult = useMemo(() => {\n return searchResult?.pages || []\n }, [searchResult])\n\n const totalCount = useMemo(() => {\n return Object.values(searchResultCount || {}).reduce((acc, curr) => acc + curr, 0)\n }, [searchResultCount])\n\n const searchProductsResultWithAdvertising = useMemo(() => {\n const advertisingData = {\n advertisingBgImg: currentTab?.advertisingBgImg,\n advertisingTitle: currentTab?.advertisingTitle,\n advertisingSubtitle: currentTab?.advertisingSubtitle,\n advertisingLink: currentTab?.advertisingLink,\n advertisingTheme: currentTab?.advertisingTheme,\n type: 'advertising',\n }\n if (!isInsertAdvertising.current && !!searchProductsResult?.length) {\n if (searchProductsResult?.length >= 8) {\n searchProductsResult?.splice(7, 0, advertisingData)\n isInsertAdvertising.current = true\n } else {\n searchProductsResult?.push(advertisingData)\n isInsertAdvertising.current = true\n }\n }\n return searchProductsResult\n }, [currentTab, searchProductsResult])\n\n return (\n <div className=\"ipc_search_page desktop:py-[128px] tablet:px-8 laptop:px-16 desktop:px-16 lg-desktop:px-[calc(50%-832px)] px-4 py-16\">\n <Heading\n size={4}\n weight=\"bold\"\n html={data?.title?.replace('$totalCount', totalCount?.toString())?.replace('$inputValue', `\"${searchValue}\"`)}\n />\n <div className=\"mt-6\">\n <Tabs className=\"ipc_search_page_tabs\" defaultValue=\"products\">\n <div className=\"desktop:flex desktop:items-center desktop:flex-row desktop:gap-6 desktop:justify-between\">\n <TabsList>\n {data?.tabs?.map((tab: any) => (\n <TabsTrigger\n onClick={() => {\n setCurrentTab(tab)\n isInsertAdvertising.current = false\n // \u5207\u6362tab\u65F6\uFF0C\u91CD\u7F6E\u8BE5tab\u7684\u6392\u5E8F\u503C\u4E3A\u9ED8\u8BA4\u503C\uFF08\u7B2C\u4E00\u4E2AsortKey\uFF09\n const defaultSortKey = tab?.sortKeys?.[0]\n if (defaultSortKey) {\n setCurrentSortKey((prev: any) => ({\n ...prev,\n [tab?.tabType]: defaultSortKey,\n }))\n onChangeSort?.(tab?.tabType, defaultSortKey)\n }\n onChangeTab?.(tab?.tabType)\n }}\n key={tab.id}\n defaultValue=\"products\"\n value={tab.tabType}\n >\n {tab.label} ({searchResultCount?.[tab.tabType as keyof typeof searchResultCount]})\n </TabsTrigger>\n ))}\n </TabsList>\n <DropdownMenu onOpenChange={setIsOpenSort}>\n <DropdownMenuTrigger asChild>\n <button className=\"desktop:mt-0 mt-6 flex items-center text-base font-bold leading-[1.2]\">\n {currentTab?.sortLabel} {currentSortKey?.[currentTab?.tabType]?.label}{' '}\n <DownArrow\n className={cn('inline-block size-4', {\n 'rotate-180': isOpenSort,\n })}\n />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" sideOffset={8} className=\"rounded-none bg-white !px-0 py-2\">\n {currentTab?.sortKeys?.map((sortKey: SortKey) => {\n return (\n <DropdownMenuItem\n className={cn(\n 'laptop:px-4 laptop:text-base px-3 py-4 text-sm font-bold hover:bg-[#EAEAEC] hover:text-current',\n {\n 'bg-[#EAEAEC]': currentSortKey?.[currentTab?.tabType]?.value === sortKey.value,\n }\n )}\n onClick={() => {\n isInsertAdvertising.current = false\n onChangeSort?.(currentTab?.tabType, sortKey)\n setCurrentSortKey((prev: any) => ({\n ...prev,\n [currentTab?.tabType]: sortKey,\n }))\n }}\n key={sortKey.id}\n >\n {sortKey.label}\n </DropdownMenuItem>\n )\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <TabsContent value={SearchPageTabType.PRODUCTS} className=\"ipc_search_page_tabs_products_content mt-6\">\n <div className=\"tablet:grid-cols-3 desktop:grid-cols-4 desktop:gap-4 grid grid-cols-2 gap-x-3 gap-y-4\">\n {searchProductsResultWithAdvertising?.map((product: any, index: number) => (\n <SearchProductItem\n searchValue={searchValue}\n key={(product.id || '') + index}\n product={product}\n shopNowLoadingProductId={shopNowLoadingProductId}\n onSecondaryButton={() => onSecondaryButton?.(product)}\n onPrimaryButton={() => onPrimaryButton?.(product)}\n />\n ))}\n </div>\n {loading ? (\n <div className=\"mt-6 flex w-full justify-center\">\n <LoadingDots />\n </div>\n ) : (\n !searchProductsResult?.length && (\n <>\n <SearchPageNoResult url={data?.noResultImage?.url} label={data?.noResultLabel} />\n <SearchRecommendProducts\n products={data?.recommendProducts || []}\n buildProps={buildProps}\n title={data?.recommendProductsTitle}\n shopNowLoadingProductId={shopNowLoadingProductId}\n />\n </>\n )\n )}\n </TabsContent>\n <TabsContent value={SearchPageTabType.BLOGS} className=\"ipc_search_page_tabs_blogs_content\">\n <div>\n {searchBlogsResult?.map((blog: any) => (\n <SearchBlogItem key={blog.id} blog={blog} searchValue={searchValue} />\n ))}\n {loading ? (\n <div className=\"mt-6 flex justify-center\">\n <LoadingDots />\n </div>\n ) : (\n !searchBlogsResult?.length && (\n <>\n <SearchPageNoResult url={data?.noResultImage?.url} label={data?.noResultLabel} />\n <SearchRecommendProducts\n products={data?.recommendProducts || []}\n buildProps={buildProps}\n title={data?.recommendProductsTitle}\n />\n </>\n )\n )}\n </div>\n </TabsContent>\n <TabsContent value={SearchPageTabType.PAGES} className=\"ipc_search_page_tabs_pages_content\">\n <div>\n {searchPagesResult?.map((page: any, index: number) => (\n <SearchPageItem key={(page.global_id || page.id) + index} page={page} searchValue={searchValue} />\n ))}\n </div>\n {loading ? (\n <div className=\"mt-6 flex justify-center\">\n <LoadingDots />\n </div>\n ) : (\n !searchPagesResult?.length && (\n <>\n <SearchPageNoResult url={data?.noResultImage?.url} label={data?.noResultLabel} />\n <SearchRecommendProducts\n products={data?.recommendProducts || []}\n buildProps={buildProps}\n title={data?.recommendProductsTitle}\n shopNowLoadingProductId={shopNowLoadingProductId}\n />\n </>\n )\n )}\n </TabsContent>\n </Tabs>\n </div>\n </div>\n )\n}\n\nexport default SearchPage\n"],
5
- "mappings": "AAwEU,OAoEQ,YAAAA,EApER,OAAAC,EAKA,QAAAC,MALA,oBAxEV,OACE,WAAAC,EACA,QAAAC,EACA,YAAAC,EACA,eAAAC,EACA,eAAAC,EACA,QAAAC,EACA,WAAAC,EACA,QAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,uBAAAC,EACA,oBAAAC,EACA,eAAAC,MACK,4BACP,OAAS,aAAAC,MAAiB,qCAC1B,OAAS,WAAAC,EAAS,UAAAC,EAAQ,YAAAC,MAAgB,QAC1C,OAAS,MAAAC,EAAI,UAAAC,GAAQ,uBAAAC,MAA2B,yBAChD,OAAS,kBAAAC,MAAsB,2BAC/B,OAAS,sBAAAC,OAA0B,kCASnC,OAAS,qBAAAC,MAAyB,aAKlC,MAAMC,EAAoB,CAAC,CACzB,QAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,YAAAC,EACA,YAAAC,EACA,wBAAAC,CACF,IAA8B,CAC5B,MAAMC,EAAUhB,EAAQ,IAAMc,GAAeJ,GAAS,WAAW,CAAC,EAAG,CAACA,EAASI,CAAW,CAAC,EACrF,CAAE,OAAAG,EAAS,KAAM,YAAAC,CAAY,EAAIZ,EAAe,EAGhDa,EAA0BJ,IAA4BL,GAAS,GAE/DU,EAAcpB,EAAQ,IACnB,GAAGiB,IAAW,KAAO,GAAK,IAAMA,CAAM,aAAaP,GAAS,MAAM,YAAYN,GAAOY,GAAS,EAAY,CAAC,sBAAsBH,GAAa,YAAY,CAAC,GACjK,CAACH,GAAS,OAAQM,GAAS,GAAIH,EAAaI,CAAM,CAAC,EAEhDI,EAASL,GAAS,UAAU,CAAC,EAE7B,CAAE,MAAAM,EAAO,UAAAC,CAAU,EAAIhB,GAAmB,CAC9C,OAAQU,EACR,OAAQI,EAASA,EAAO,qBAAuBL,GAAS,MACxD,WAAYK,EAASL,GAAS,MAAQ,EACtC,aAAcN,GAAS,OAAO,cAAgB,KAChD,CAAC,EAEKc,EAAOxB,EAAQ,IACZU,GAAS,MACZ,SAAUe,GAAcA,GAAM,aAAa,OAAO,CAAC,GACnD,MAAOA,GAAcA,GAAM,UAAU,SAAU,EAAE,CAAC,GAClD,QAAQ,EAAG,CAAC,EACf,CAACf,GAAS,IAAI,CAAC,EAElB,OACE3B,EAAC,OAAI,UAAU,kGACZ,SAAA2B,GAAS,OAAS,eAAiBA,GAAS,gBAC3C1B,EAACQ,EAAA,CAAK,KAAMkB,GAAS,gBAAiB,UAAU,SAC9C,UAAA3B,EAACQ,EAAA,CACC,OAAQmB,GAAS,kBAAkB,IACnC,UAAU,YACV,aAAa,yBACf,EACA1B,EAAC,OAAI,UAAU,yHACb,UAAAD,EAACO,EAAA,CACC,KAAMoB,GAAS,iBACf,UAAWP,EAAG,wCAAyC,CACrD,aAAcO,GAAS,mBAAqB,QAC5C,oBAAqBA,GAAS,mBAAqB,MACrD,CAAC,EACH,EACCA,GAAS,qBACR3B,EAACE,EAAA,CACC,KAAM,EACN,KAAMyB,GAAS,oBACf,UAAWP,EAAG,kDAAmD,CAC/D,aAAcO,GAAS,mBAAqB,QAC5C,oBAAqBA,GAAS,mBAAqB,MACrD,CAAC,EACH,GAEJ,GACF,EAEA1B,EAAC,KACC,KAAMoC,EACN,UAAU,wIAEV,UAAArC,EAAC,OAAI,UAAU,gCACb,SAAAA,EAACQ,EAAA,CACC,UAAU,+CACV,OAAQ,GAAGyB,GAAS,OAAO,KAAON,GAAS,SAAS,CAAC,GAAG,GAAG,IAC3D,IAAKA,GAAS,MACd,aAAa,yBACf,EACF,EACA1B,EAAC,OAAI,UAAU,6HACb,UAAAA,EAAC,OAAI,UAAU,SACb,UAAAD,EAAC,OAAI,UAAU,+CACZ,SAAAyC,GAAM,IAAI,CAACE,EAAaC,IACvB5C,EAACO,EAAA,CAEC,GAAG,IACH,KAAMoC,EACN,UAAU,0JAHLC,CAIP,CACD,EACH,EACA5C,EAACO,EAAA,CACC,UAAU,wFACV,OAAO,OACP,KAAMe,EAAoBK,GAAS,OAAS,GAAIG,GAAe,EAAE,EACnE,EACA9B,EAACO,EAAA,CACC,GAAG,IACH,UAAU,iFACV,KAAMe,EAAoBK,GAAS,YAAaG,GAAe,EAAE,EACnE,GACF,EACA7B,EAAC,OACC,UAAAD,EAAC,OAAI,UAAU,yBACZ,SAACiC,GAAS,iBAKThC,EAAAF,EAAA,CACE,UAAAC,EAAC,OAAI,UAAU,yFACZ,SAAAiC,GAAS,kBAAmBM,GAAS,GACxC,EACAvC,EAAC,OAAI,UAAU,8GACZ,SAAAiC,GAAS,kBAAmBO,GAAa,GAC5C,GACF,EAXAxC,EAAC,OAAI,UAAU,6EACZ,SAAAmC,GAAa,aAAe,WAC/B,EAWJ,EACAlC,EAAC,OACC,UAAWmB,EACT,uCACA,mEACF,EAEC,UAAAe,GAAa,eACZnC,EAACU,EAAA,CACC,QAAQ,YACR,UAAU,uBACV,KAAK,KACL,SAAU,CAACuB,GAAS,iBACpB,QAASY,GAAK,CACZA,EAAE,eAAe,EACjBA,EAAE,gBAAgB,EAClBjB,IAAoB,CACtB,EAEC,SAAAO,GAAa,cAChB,EAEDA,GAAa,aACZnC,EAACU,EAAA,CACC,QAAQ,UACR,UAAU,uBACV,KAAK,KACL,SAAU,CAACuB,GAAS,iBACpB,QAASG,EACT,QAASS,GAAK,CACZA,EAAE,eAAe,EACjBA,EAAE,gBAAgB,EAClBhB,IAAkB,CACpB,EAEC,SAAAM,GAAa,YAChB,GAEJ,GACF,GACF,GACF,EAEJ,CAEJ,EAKMW,GAAiB,CAAC,CAAE,KAAAC,EAAM,YAAAjB,CAAY,IAA2B,CACrE,KAAM,CAAE,YAAAK,EAAa,OAAAD,CAAO,EAAIX,EAAe,EAEzCyB,EAAc/B,EAClB,IACE,GAAGiB,IAAW,KAAO,GAAK,IAAMA,CAAM,UAAUa,GAAM,MAAM,MAAM,IAAIA,GAAM,OAAO,QAAQ,cAAe,EAAE,CAAC,GAC/G,CAACA,EAAMb,CAAM,CACf,EAEA,OACElC,EAAC,OAAI,UAAU,sDACb,SAAAC,EAAC,OAAI,UAAU,uGACb,UAAAD,EAAC,OAAI,UAAU,mEACb,SAAAA,EAACQ,EAAA,CACC,OAAQuC,GAAM,OAAO,IACrB,UAAU,YACV,aAAa,yBACb,IAAKA,GAAM,MACb,EACF,EACA9C,EAAC,OAAI,UAAU,2FACb,UAAAD,EAACE,EAAA,CAAQ,KAAM,EAAG,KAAMoB,EAAoByB,GAAM,MAAOjB,CAAW,EAAG,EACvE9B,EAACO,EAAA,CACC,KAAMe,EAAoByB,GAAM,QAASjB,CAAW,EACpD,UAAU,+FACZ,EACA9B,EAAC,OAAI,UAAU,oBACb,SAAAA,EAACU,EAAA,CAAO,GAAG,IAAI,KAAMsC,EAAa,QAAQ,YAAY,KAAK,KACxD,SAAAb,GAAa,eAAiB,aACjC,EACF,GACF,GACF,EACF,CAEJ,EAKMc,GAAiB,CAAC,CAAE,YAAAnB,EAAa,KAAAoB,CAAK,IAA2B,CACrE,KAAM,CAAE,YAAAf,EAAa,OAAAD,EAAS,IAAK,EAAIX,EAAe,EAChD4B,EAAWlC,EAAQ,IAAM,GAAGiB,IAAW,KAAO,GAAK,IAAIA,CAAM,EAAE,IAAIgB,GAAM,MAAM,GAAI,CAACA,EAAMhB,CAAM,CAAC,EACvG,OACEjC,EAAC,OAAI,UAAU,uDACb,UAAAD,EAACE,EAAA,CAAQ,KAAM,EAAG,KAAMoB,EAAoB4B,GAAM,KAAMpB,CAAW,EAAG,EACtE9B,EAACO,EAAA,CACC,GAAG,IACH,KAAMe,EAAoB4B,GAAM,aAAe,GAAIpB,CAAW,EAC9D,UAAU,kFACZ,EACA9B,EAACU,EAAA,CAAO,GAAG,IAAI,KAAMyC,EAAU,QAAQ,YAAY,KAAK,KAAK,UAAU,oBACpE,SAAAhB,GAAa,eAAiB,aACjC,GACF,CAEJ,EAKMiB,EAAqB,CAAC,CAAE,IAAAC,EAAK,MAAAC,CAAM,IAErCrD,EAAC,OAAI,UAAU,kDACb,UAAAD,EAACQ,EAAA,CAAQ,OAAQ6C,EAAK,UAAU,sBAAsB,aAAa,eAAe,EAClFrD,EAACO,EAAA,CAAK,KAAM+C,EAAO,UAAU,sDAAsD,GACrF,EAOEC,EAA0B,CAAC,CAC/B,SAAAC,EACA,MAAAC,EACA,WAAAC,EACA,kBAAA9B,EACA,gBAAAC,CACF,IAAoC,CAClC,KAAM,CAAE,SAAU8B,CAAc,EAAID,GAAc,CAAC,EACnD,OACEzD,EAAC,OAAI,UAAU,oHACb,UAAAD,EAACE,EAAA,CAAQ,KAAM,EAAG,OAAO,OAAO,KAAMuD,EAAO,EAC7CzD,EAAC,OAAI,UAAU,8FACZ,SAAAwD,GAAU,IAAI,CAAC7B,EAAciB,IAAkB,CAC9C,MAAMgB,EAAeD,GAAe,KAAMC,GAAsBA,EAAa,SAAWjC,EAAQ,MAAM,EAChGM,EAAU2B,GAAc,UAAU,KAAM3B,GAAiBA,EAAQ,MAAQN,EAAQ,GAAG,EAC1F,OACE3B,EAAC0B,EAAA,CACC,QAASkC,EACT,YAAa3B,EAEb,kBAAmB,IAAML,IAAoB,EAC7C,gBAAiB,IAAMC,IAAkB,GAFpCF,EAAQ,IAAMiB,CAGrB,CAEJ,CAAC,EACH,GACF,CAEJ,EAKMiB,GAAa,CAAC,CAClB,aAAAC,EACA,YAAAhC,EACA,KAAAiC,EACA,kBAAAnC,EACA,gBAAAC,EAEA,aAAAmC,EACA,QAAAC,EACA,wBAAAjC,EACA,kBAAAkC,EACA,YAAAC,EACA,WAAAT,CACF,IAAuB,CACrB,KAAM,CAACU,EAAYC,CAAa,EAAIlD,EAAc4C,GAAM,OAAO,CAAC,CAAC,EAC3DO,EAAsBpD,EAAO,EAAK,EAClC,CAACqD,EAAYC,CAAa,EAAIrD,EAAS,EAAK,EAC5C,CAACsD,EAAgBC,CAAiB,EAAIvD,EAAc,CACxD,CAACM,EAAkB,QAAQ,EAAGsC,GAAM,MAAM,KAAMY,GAAaA,EAAI,UAAYlD,EAAkB,QAAQ,GACnG,WAAW,CAAC,EAChB,CAACA,EAAkB,KAAK,EAAGsC,GAAM,MAAM,KAAMY,GAAaA,EAAI,UAAYlD,EAAkB,KAAK,GAAG,WAAW,CAAC,EAChH,CAACA,EAAkB,KAAK,EAAGsC,GAAM,MAAM,KAAMY,GAAaA,EAAI,UAAYlD,EAAkB,KAAK,GAAG,WAAW,CAAC,CAClH,CAAC,EAEKmD,EAAuB3D,EAAQ,IAC5B6C,GAAc,UAAY,CAAC,EACjC,CAACA,CAAY,CAAC,EAEXe,EAAoB5D,EAAQ,IACzB6C,GAAc,OAAS,CAAC,EAC9B,CAACA,CAAY,CAAC,EAEXgB,EAAoB7D,EAAQ,IACzB6C,GAAc,OAAS,CAAC,EAC9B,CAACA,CAAY,CAAC,EAEXiB,EAAa9D,EAAQ,IAClB,OAAO,OAAOiD,GAAqB,CAAC,CAAC,EAAE,OAAO,CAACc,EAAKC,IAASD,EAAMC,EAAM,CAAC,EAChF,CAACf,CAAiB,CAAC,EAEhBgB,EAAsCjE,EAAQ,IAAM,CACxD,MAAMkE,EAAkB,CACtB,iBAAkBf,GAAY,iBAC9B,iBAAkBA,GAAY,iBAC9B,oBAAqBA,GAAY,oBACjC,gBAAiBA,GAAY,gBAC7B,iBAAkBA,GAAY,iBAC9B,KAAM,aACR,EACA,MAAI,CAACE,EAAoB,SAAaM,GAAsB,SACtDA,GAAsB,QAAU,GAClCA,GAAsB,OAAO,EAAG,EAAGO,CAAe,EAClDb,EAAoB,QAAU,KAE9BM,GAAsB,KAAKO,CAAe,EAC1Cb,EAAoB,QAAU,KAG3BM,CACT,EAAG,CAACR,EAAYQ,CAAoB,CAAC,EAErC,OACE3E,EAAC,OAAI,UAAU,uHACb,UAAAD,EAACE,EAAA,CACC,KAAM,EACN,OAAO,OACP,KAAM6D,GAAM,OAAO,QAAQ,cAAegB,GAAY,SAAS,CAAC,GAAG,QAAQ,cAAe,IAAIjD,CAAW,GAAG,EAC9G,EACA9B,EAAC,OAAI,UAAU,OACb,SAAAC,EAACE,EAAA,CAAK,UAAU,uBAAuB,aAAa,WAClD,UAAAF,EAAC,OAAI,UAAU,2FACb,UAAAD,EAACI,EAAA,CACE,SAAA2D,GAAM,MAAM,IAAKY,GAChB1E,EAACI,EAAA,CACC,QAAS,IAAM,CACbgE,EAAcM,CAAG,EACjBL,EAAoB,QAAU,GAE9B,MAAMc,EAAiBT,GAAK,WAAW,CAAC,EACpCS,IACFV,EAAmBW,IAAe,CAChC,GAAGA,EACH,CAACV,GAAK,OAAO,EAAGS,CAClB,EAAE,EACFpB,IAAeW,GAAK,QAASS,CAAc,GAE7CjB,IAAcQ,GAAK,OAAO,CAC5B,EAEA,aAAa,WACb,MAAOA,EAAI,QAEV,UAAAA,EAAI,MAAM,KAAGT,IAAoBS,EAAI,OAAyC,EAAE,MAJ5EA,EAAI,EAKX,CACD,EACH,EACA1E,EAACU,EAAA,CAAa,aAAc6D,EAC1B,UAAAxE,EAACY,EAAA,CAAoB,QAAO,GAC1B,SAAAX,EAAC,UAAO,UAAU,wEACf,UAAAmE,GAAY,UAAU,IAAEK,IAAiBL,GAAY,OAAO,GAAG,MAAO,IACvEpE,EAACgB,EAAA,CACC,UAAWI,EAAG,sBAAuB,CACnC,aAAcmD,CAChB,CAAC,EACH,GACF,EACF,EACAvE,EAACa,EAAA,CAAoB,MAAM,QAAQ,WAAY,EAAG,UAAU,mCACzD,SAAAuD,GAAY,UAAU,IAAKkB,GAExBtF,EAACc,EAAA,CACC,UAAWM,EACT,iGACA,CACE,eAAgBqD,IAAiBL,GAAY,OAAO,GAAG,QAAUkB,EAAQ,KAC3E,CACF,EACA,QAAS,IAAM,CACbhB,EAAoB,QAAU,GAC9BN,IAAeI,GAAY,QAASkB,CAAO,EAC3CZ,EAAmBW,IAAe,CAChC,GAAGA,EACH,CAACjB,GAAY,OAAO,EAAGkB,CACzB,EAAE,CACJ,EAGC,SAAAA,EAAQ,OAFJA,EAAQ,EAGf,CAEH,EACH,GACF,GACF,EACArF,EAACK,EAAA,CAAY,MAAOmB,EAAkB,SAAU,UAAU,6CACxD,UAAAzB,EAAC,OAAI,UAAU,wFACZ,SAAAkF,GAAqC,IAAI,CAACvD,EAAciB,IACvD5C,EAAC0B,EAAA,CACC,YAAaI,EAEb,QAASH,EACT,wBAAyBK,EACzB,kBAAmB,IAAMJ,IAAoBD,CAAO,EACpD,gBAAiB,IAAME,IAAkBF,CAAO,IAJ1CA,EAAQ,IAAM,IAAMiB,CAK5B,CACD,EACH,EACCqB,EACCjE,EAAC,OAAI,UAAU,kCACb,SAAAA,EAACe,EAAA,EAAY,EACf,EAEA,CAAC6D,GAAsB,QACrB3E,EAAAF,EAAA,CACE,UAAAC,EAACoD,EAAA,CAAmB,IAAKW,GAAM,eAAe,IAAK,MAAOA,GAAM,cAAe,EAC/E/D,EAACuD,EAAA,CACC,SAAUQ,GAAM,mBAAqB,CAAC,EACtC,WAAYL,EACZ,MAAOK,GAAM,uBACb,wBAAyB/B,EAC3B,GACF,GAGN,EACAhC,EAACM,EAAA,CAAY,MAAOmB,EAAkB,MAAO,UAAU,qCACrD,SAAAxB,EAAC,OACE,UAAA4E,GAAmB,IAAK9B,GACvB/C,EAAC8C,GAAA,CAA6B,KAAMC,EAAM,YAAajB,GAAlCiB,EAAK,EAA0C,CACrE,EACAkB,EACCjE,EAAC,OAAI,UAAU,2BACb,SAAAA,EAACe,EAAA,EAAY,EACf,EAEA,CAAC8D,GAAmB,QAClB5E,EAAAF,EAAA,CACE,UAAAC,EAACoD,EAAA,CAAmB,IAAKW,GAAM,eAAe,IAAK,MAAOA,GAAM,cAAe,EAC/E/D,EAACuD,EAAA,CACC,SAAUQ,GAAM,mBAAqB,CAAC,EACtC,WAAYL,EACZ,MAAOK,GAAM,uBACf,GACF,GAGN,EACF,EACA9D,EAACK,EAAA,CAAY,MAAOmB,EAAkB,MAAO,UAAU,qCACrD,UAAAzB,EAAC,OACE,SAAA8E,GAAmB,IAAI,CAAC5B,EAAWN,IAClC5C,EAACiD,GAAA,CAAyD,KAAMC,EAAM,YAAapB,IAA7DoB,EAAK,WAAaA,EAAK,IAAMN,CAA6C,CACjG,EACH,EACCqB,EACCjE,EAAC,OAAI,UAAU,2BACb,SAAAA,EAACe,EAAA,EAAY,EACf,EAEA,CAAC+D,GAAmB,QAClB7E,EAAAF,EAAA,CACE,UAAAC,EAACoD,EAAA,CAAmB,IAAKW,GAAM,eAAe,IAAK,MAAOA,GAAM,cAAe,EAC/E/D,EAACuD,EAAA,CACC,SAAUQ,GAAM,mBAAqB,CAAC,EACtC,WAAYL,EACZ,MAAOK,GAAM,uBACb,wBAAyB/B,EAC3B,GACF,GAGN,GACF,EACF,GACF,CAEJ,EAEA,IAAOuD,GAAQ1B",
4
+ "sourcesContent": ["import {\n Heading,\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n Text,\n Picture,\n Link,\n Button,\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n LoadingDots,\n} from '../../components/index.js'\nimport { DownArrow } from '../HeaderNavigation/icons/index.js'\nimport { useMemo, useRef, useState } from 'react'\nimport { cn, atobID, highlightSearchWord } from '../../helpers/utils.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { formatVariantPrice } from '../ShelfDisplay/shelfDisplay.js'\nimport type {\n SearchPageProps,\n SortKey,\n SearchProductItemProps,\n SearchBlogItemProps,\n SearchPageItemProps,\n SearchRecommendProductsProps,\n} from './types'\nimport { SearchPageTabType } from './types.js'\n\n/**\n * \u641C\u7D22\u5546\u54C1\n */\nconst SearchProductItem = ({\n product,\n onSecondaryButton,\n onPrimaryButton,\n searchValue,\n variantData,\n shopNowLoadingProductId,\n}: SearchProductItemProps) => {\n const variant = useMemo(() => variantData || product?.variants?.[0], [product, variantData])\n const { locale = 'us', copyWriting } = useAiuiContext()\n\n // \u5224\u65AD\u5F53\u524D\u4EA7\u54C1\u662F\u5426\u5728\u52A0\u8F7D\u4E2D\n const isCurrentProductLoading = shopNowLoadingProductId === product?.id\n\n const listingLink = useMemo(() => {\n return `${locale === 'us' ? '' : '/' + locale}/products/${product?.handle}?variant=${atobID(variant?.id as string)}?ref=search_result_${searchValue?.toLowerCase()}`\n }, [product?.handle, variant?.id, searchValue, locale])\n\n const coupon = variant?.coupons?.[0]\n\n const { price, basePrice } = formatVariantPrice({\n locale: locale,\n amount: coupon ? coupon.variant_price4wscode : variant?.price,\n baseAmount: coupon ? variant?.price : 0,\n currencyCode: product?.price?.currencyCode || 'USD',\n })\n\n const tags = useMemo(() => {\n return product?.tags\n ?.filter?.((item: any) => item?.startsWith?.('CLtag'))\n ?.map?.((item: any) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, 2)\n }, [product?.tags])\n\n return (\n <div className=\"ipc_search_product_item lg-desktop:h-[480px] desktop:h-[384px] laptop:h-[360px] relative h-auto\">\n {product?.type === 'advertising' && product?.advertisingLink ? (\n <Link href={product?.advertisingLink} className=\"h-full\">\n <Picture\n source={product?.advertisingBgImg?.url}\n className=\"size-full\"\n imgClassName=\"size-full object-cover\"\n />\n <div className=\"desktop:p-6 absolute inset-0 z-[2] p-4 [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500\">\n <Text\n html={product?.advertisingTitle}\n className={cn('desktop:text-[18px] text-sm font-bold', {\n 'text-white': product?.advertisingTheme === 'light',\n 'text-info-primary': product?.advertisingTheme === 'dark',\n })}\n />\n {product?.advertisingSubtitle && (\n <Heading\n size={3}\n html={product?.advertisingSubtitle}\n className={cn('laptop:line-clamp-3 mt-2 line-clamp-4 font-bold', {\n 'text-white': product?.advertisingTheme === 'light',\n 'text-info-primary': product?.advertisingTheme === 'dark',\n })}\n />\n )}\n </div>\n </Link>\n ) : (\n <a\n href={listingLink}\n className=\" tablet:hover:bg-info-white desktop:p-6 desktop:pt-4 tablet:p-4 flex h-full flex-col bg-[#EAEAEC] px-2 py-4 no-underline duration-300\"\n >\n <div className=\"ipc_search_product_item_image\">\n <Picture\n className=\"lg-desktop:size-[196px] mx-auto size-[138px]\"\n source={`${variant?.image?.url || product?.images?.[0]?.url}}`}\n alt={product?.title}\n imgClassName=\"object-cover size-full\"\n />\n </div>\n <div className=\"ipc_search_product_item_content desktop:mt-2 lg-desktop:mt-3 desktop:gap-6 mt-1 flex flex-1 flex-col justify-between gap-4\">\n <div className=\"flex-1\">\n <div className=\"lg-desktop:h-[28px] mb-2 flex h-[24px] gap-2\">\n {tags?.map((tag: string, index: number) => (\n <Text\n key={index}\n as=\"p\"\n html={tag}\n className=\"text-brand-0 lg-desktop:px-2 lg-desktop:!leading-[28px] h-full rounded-full border-[1.6px] border-[#00BEFA] px-[6px] text-sm font-bold !leading-[22px]\"\n />\n ))}\n </div>\n <Text\n className=\"lg-desktop:text-2xl tablet:line-clamp-2 line-clamp-3 text-xl font-bold !leading-[1.2]\"\n weight=\"bold\"\n html={highlightSearchWord(product?.title || '', searchValue || '')}\n />\n <Text\n as=\"p\"\n className=\"lg-desktop:text-[18px] tablet:line-clamp-1 mt-1 line-clamp-2 text-sm font-bold\"\n html={highlightSearchWord(product?.description, searchValue || '')}\n />\n </div>\n <div>\n <div className=\"mb-2 flex items-center\">\n {!variant?.availableForSale ? (\n <div className=\"text-info-primary tablet:text-xl lg-desktop:text-2xl text-[18px] font-bold\">\n {copyWriting?.soldOutText || 'Sold Out'}\n </div>\n ) : (\n <>\n <div className=\"final-price text-info-primary tablet:text-xl lg-desktop:text-2xl text-[18px] font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl lg-desktop:text-2xl text-info-secondary ml-1 text-[18px] font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n <div\n className={cn(\n 'ipc_search_product_item_button_group',\n 'lg-desktop:gap-3 laptop:flex-row flex flex-col items-center gap-2'\n )}\n >\n {copyWriting?.learnMoreText && (\n <Button\n variant=\"secondary\"\n className=\"laptop:w-auto w-full\"\n size=\"lg\"\n disabled={!variant?.availableForSale}\n onClick={e => {\n e.preventDefault()\n e.stopPropagation()\n onSecondaryButton?.()\n }}\n >\n {copyWriting?.learnMoreText}\n </Button>\n )}\n {copyWriting?.shopNowText && (\n <Button\n variant=\"primary\"\n className=\"laptop:w-auto w-full\"\n size=\"lg\"\n disabled={!variant?.availableForSale}\n loading={isCurrentProductLoading}\n onClick={e => {\n e.preventDefault()\n e.stopPropagation()\n onPrimaryButton?.()\n }}\n >\n {copyWriting?.shopNowText}\n </Button>\n )}\n </div>\n </div>\n </div>\n </a>\n )}\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u6587\u7AE0\n */\nconst SearchBlogItem = ({ blog, searchValue }: SearchBlogItemProps) => {\n const { copyWriting, locale } = useAiuiContext()\n\n const articleLink = useMemo(\n () =>\n `${locale === 'us' ? '' : '/' + locale}/blogs/${blog?.blog?.handle}/${blog?.handle.replace('storefront-', '')}`,\n [blog, locale]\n )\n\n return (\n <div className=\"ipc_search_blog_item border-b border-[#E4E5E6] py-6\">\n <div className=\"ipc_search_blog_item_content laptop:flex-row-reverse laptop:gap-8 desktop:gap-16 flex flex-col gap-4\">\n <div className=\"laptop:flex-[440] desktop:flex-[540] desktop:h-[280px] h-[240px]\">\n <Picture\n source={blog?.image?.url}\n className=\"size-full\"\n imgClassName=\"size-full object-cover\"\n alt={blog?.title}\n />\n </div>\n <div className=\"laptop:flex-[424] desktop:flex-[704] lg-desktop:flex-[1056] flex flex-col justify-center\">\n <Heading size={3} html={highlightSearchWord(blog?.title, searchValue)} />\n <Text\n html={highlightSearchWord(blog?.content, searchValue)}\n className=\"lg-desktop:text-[18px] desktop:text-[16px] mt-1 line-clamp-2 text-sm font-bold leading-[1.4]\"\n />\n <div className=\"desktop:mt-6 mt-4\">\n <Button as=\"a\" href={articleLink} variant=\"secondary\" size=\"lg\">\n {copyWriting?.learnMoreText || 'Learn More'}\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u9875\u9762\n */\nconst SearchPageItem = ({ searchValue, page }: SearchPageItemProps) => {\n const { copyWriting, locale = 'us' } = useAiuiContext()\n const pageLink = useMemo(() => `${locale === 'us' ? '' : `/${locale}`}/${page?.handle}`, [page, locale])\n return (\n <div className=\"ipc_search_page_items border-b border-[#E4E5E6] py-6\">\n <Heading size={3} html={highlightSearchWord(page?.name, searchValue)} />\n <Text\n as=\"p\"\n html={highlightSearchWord(page?.bodySummary || '', searchValue)}\n className=\"lg-desktop:text-[18px] desktop:text-[16px] mt-1 text-sm font-bold leading-[1.4]\"\n />\n <Button as=\"a\" href={pageLink} variant=\"secondary\" size=\"lg\" className=\"desktop:mt-6 mt-4\">\n {copyWriting?.learnMoreText || 'Learn More'}\n </Button>\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u7ED3\u679C\u4E3A\u7A7A\n */\nconst SearchPageNoResult = ({ url, label }: { url: string; label: string }) => {\n return (\n <div className=\"flex flex-col items-center justify-center gap-4\">\n <Picture source={url} className=\"h-[180px] w-[240px]\" imgClassName=\"object-cover\" />\n <Text html={label} className=\"desktop:text-[18px] text-sm font-bold leading-[1.4]\" />\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u63A8\u8350\u5546\u54C1\n */\nconst SearchRecommendProducts = ({\n products,\n title,\n buildProps,\n onSecondaryButton,\n onPrimaryButton,\n}: SearchRecommendProductsProps) => {\n const { products: buildProducts } = buildProps || {}\n return (\n <div className=\"ipc_search_recommend_product tablet:pt-[80px] laptop:pt-[96px] desktop:pt-[112px] lg-desktop:pt-[128px] pt-[64px]\">\n <Heading size={4} weight=\"bold\" html={title} />\n <div className=\" tablet:grid-cols-3 desktop:grid-cols-4 desktop:gap-4 mt-6 grid grid-cols-2 gap-x-3 gap-y-4\">\n {products?.map((product: any, index: number) => {\n const buildProduct = buildProducts?.find((buildProduct: any) => buildProduct.handle === product.handle)\n if (!buildProduct) return null\n const variant = buildProduct?.variants?.find((variant: any) => variant.sku === product.sku)\n return (\n <SearchProductItem\n product={buildProduct}\n variantData={variant}\n key={product.sku + index}\n onSecondaryButton={() => onSecondaryButton?.()}\n onPrimaryButton={() => onPrimaryButton?.()}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\n/**\n * \u641C\u7D22\u9875\u9762\n */\nconst SearchPage = ({\n searchResult,\n searchValue,\n data,\n onSecondaryButton,\n onPrimaryButton,\n // loadMore,\n onChangeSort,\n loading,\n shopNowLoadingProductId,\n searchResultCount,\n onChangeTab,\n buildProps,\n}: SearchPageProps) => {\n const [currentTab, setCurrentTab] = useState<any>(data?.tabs?.[0])\n const isInsertAdvertising = useRef(false)\n const [isOpenSort, setIsOpenSort] = useState(false)\n const [currentSortKey, setCurrentSortKey] = useState<any>({\n [SearchPageTabType.PRODUCTS]: data?.tabs?.find((tab: any) => tab.tabType === SearchPageTabType.PRODUCTS)\n ?.sortKeys?.[0],\n [SearchPageTabType.BLOGS]: data?.tabs?.find((tab: any) => tab.tabType === SearchPageTabType.BLOGS)?.sortKeys?.[0],\n [SearchPageTabType.PAGES]: data?.tabs?.find((tab: any) => tab.tabType === SearchPageTabType.PAGES)?.sortKeys?.[0],\n })\n\n const searchProductsResult = useMemo(() => {\n return searchResult?.products || []\n }, [searchResult])\n\n const searchBlogsResult = useMemo(() => {\n return searchResult?.blogs || []\n }, [searchResult])\n\n const searchPagesResult = useMemo(() => {\n return searchResult?.pages || []\n }, [searchResult])\n\n const totalCount = useMemo(() => {\n return Object.values(searchResultCount || {}).reduce((acc, curr) => acc + curr, 0)\n }, [searchResultCount])\n\n const searchProductsResultWithAdvertising = useMemo(() => {\n const advertisingData = {\n advertisingBgImg: currentTab?.advertisingBgImg,\n advertisingTitle: currentTab?.advertisingTitle,\n advertisingSubtitle: currentTab?.advertisingSubtitle,\n advertisingLink: currentTab?.advertisingLink,\n advertisingTheme: currentTab?.advertisingTheme,\n type: 'advertising',\n }\n if (!isInsertAdvertising.current && !!searchProductsResult?.length) {\n if (searchProductsResult?.length >= 8) {\n searchProductsResult?.splice(7, 0, advertisingData)\n isInsertAdvertising.current = true\n } else {\n searchProductsResult?.push(advertisingData)\n isInsertAdvertising.current = true\n }\n }\n return searchProductsResult\n }, [currentTab, searchProductsResult])\n\n return (\n <div className=\"ipc_search_page desktop:py-[128px] tablet:px-8 laptop:px-16 desktop:px-16 lg-desktop:px-[calc(50%-832px)] px-4 py-16\">\n <Heading\n size={4}\n weight=\"bold\"\n html={data?.title?.replace('$totalCount', totalCount?.toString())?.replace('$inputValue', `\"${searchValue}\"`)}\n />\n <div className=\"mt-6\">\n <Tabs className=\"ipc_search_page_tabs\" defaultValue=\"products\">\n <div className=\"desktop:flex desktop:items-center desktop:flex-row desktop:gap-6 desktop:justify-between\">\n <TabsList>\n {data?.tabs?.map((tab: any) => (\n <TabsTrigger\n onClick={() => {\n setCurrentTab(tab)\n isInsertAdvertising.current = false\n // \u5207\u6362tab\u65F6\uFF0C\u91CD\u7F6E\u8BE5tab\u7684\u6392\u5E8F\u503C\u4E3A\u9ED8\u8BA4\u503C\uFF08\u7B2C\u4E00\u4E2AsortKey\uFF09\n const defaultSortKey = tab?.sortKeys?.[0]\n if (defaultSortKey) {\n setCurrentSortKey((prev: any) => ({\n ...prev,\n [tab?.tabType]: defaultSortKey,\n }))\n onChangeSort?.(tab?.tabType, defaultSortKey)\n }\n onChangeTab?.(tab?.tabType)\n }}\n key={tab.id}\n defaultValue=\"products\"\n value={tab.tabType}\n >\n {tab.label} ({searchResultCount?.[tab.tabType as keyof typeof searchResultCount]})\n </TabsTrigger>\n ))}\n </TabsList>\n <DropdownMenu onOpenChange={setIsOpenSort}>\n <DropdownMenuTrigger asChild>\n <button className=\"desktop:mt-0 mt-6 flex items-center text-base font-bold leading-[1.2]\">\n {currentTab?.sortLabel} {currentSortKey?.[currentTab?.tabType]?.label}{' '}\n <DownArrow\n className={cn('inline-block size-4', {\n 'rotate-180': isOpenSort,\n })}\n />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" sideOffset={8} className=\"rounded-none bg-white !px-0 py-2\">\n {currentTab?.sortKeys?.map((sortKey: SortKey) => {\n return (\n <DropdownMenuItem\n className={cn(\n 'laptop:px-4 laptop:text-base px-3 py-4 text-sm font-bold hover:bg-[#EAEAEC] hover:text-current',\n {\n 'bg-[#EAEAEC]': currentSortKey?.[currentTab?.tabType]?.value === sortKey.value,\n }\n )}\n onClick={() => {\n isInsertAdvertising.current = false\n onChangeSort?.(currentTab?.tabType, sortKey)\n setCurrentSortKey((prev: any) => ({\n ...prev,\n [currentTab?.tabType]: sortKey,\n }))\n }}\n key={sortKey.id}\n >\n {sortKey.label}\n </DropdownMenuItem>\n )\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <TabsContent value={SearchPageTabType.PRODUCTS} className=\"ipc_search_page_tabs_products_content mt-6\">\n <div className=\"tablet:grid-cols-3 desktop:grid-cols-4 desktop:gap-4 grid grid-cols-2 gap-x-3 gap-y-4\">\n {searchProductsResultWithAdvertising?.map((product: any, index: number) => (\n <SearchProductItem\n searchValue={searchValue}\n key={(product.id || '') + index}\n product={product}\n shopNowLoadingProductId={shopNowLoadingProductId}\n onSecondaryButton={() => onSecondaryButton?.(product)}\n onPrimaryButton={() => onPrimaryButton?.(product)}\n />\n ))}\n </div>\n {loading ? (\n <div className=\"mt-6 flex w-full justify-center\">\n <LoadingDots />\n </div>\n ) : (\n !searchProductsResult?.length && (\n <>\n <SearchPageNoResult url={data?.noResultImage?.url} label={data?.noResultLabel} />\n <SearchRecommendProducts\n products={data?.recommendProducts || []}\n buildProps={buildProps}\n title={data?.recommendProductsTitle}\n shopNowLoadingProductId={shopNowLoadingProductId}\n />\n </>\n )\n )}\n </TabsContent>\n <TabsContent value={SearchPageTabType.BLOGS} className=\"ipc_search_page_tabs_blogs_content\">\n <div>\n {searchBlogsResult?.map((blog: any) => (\n <SearchBlogItem key={blog.id} blog={blog} searchValue={searchValue} />\n ))}\n {loading ? (\n <div className=\"mt-6 flex justify-center\">\n <LoadingDots />\n </div>\n ) : (\n !searchBlogsResult?.length && (\n <>\n <SearchPageNoResult url={data?.noResultImage?.url} label={data?.noResultLabel} />\n <SearchRecommendProducts\n products={data?.recommendProducts || []}\n buildProps={buildProps}\n title={data?.recommendProductsTitle}\n />\n </>\n )\n )}\n </div>\n </TabsContent>\n <TabsContent value={SearchPageTabType.PAGES} className=\"ipc_search_page_tabs_pages_content\">\n <div>\n {searchPagesResult?.map((page: any, index: number) => (\n <SearchPageItem key={(page.global_id || page.id) + index} page={page} searchValue={searchValue} />\n ))}\n </div>\n {loading ? (\n <div className=\"mt-6 flex justify-center\">\n <LoadingDots />\n </div>\n ) : (\n !searchPagesResult?.length && (\n <>\n <SearchPageNoResult url={data?.noResultImage?.url} label={data?.noResultLabel} />\n <SearchRecommendProducts\n products={data?.recommendProducts || []}\n buildProps={buildProps}\n title={data?.recommendProductsTitle}\n shopNowLoadingProductId={shopNowLoadingProductId}\n />\n </>\n )\n )}\n </TabsContent>\n </Tabs>\n </div>\n </div>\n )\n}\n\nexport default SearchPage\n"],
5
+ "mappings": "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",
6
6
  "names": ["Fragment", "jsx", "jsxs", "Heading", "Tabs", "TabsList", "TabsTrigger", "TabsContent", "Text", "Picture", "Link", "Button", "DropdownMenu", "DropdownMenuTrigger", "DropdownMenuContent", "DropdownMenuItem", "LoadingDots", "DownArrow", "useMemo", "useRef", "useState", "cn", "atobID", "highlightSearchWord", "useAiuiContext", "formatVariantPrice", "SearchPageTabType", "SearchProductItem", "product", "onSecondaryButton", "onPrimaryButton", "searchValue", "variantData", "shopNowLoadingProductId", "variant", "locale", "copyWriting", "isCurrentProductLoading", "listingLink", "coupon", "price", "basePrice", "tags", "item", "tag", "index", "e", "SearchBlogItem", "blog", "articleLink", "SearchPageItem", "page", "pageLink", "SearchPageNoResult", "url", "label", "SearchRecommendProducts", "products", "title", "buildProps", "buildProducts", "buildProduct", "SearchPage", "searchResult", "data", "onChangeSort", "loading", "searchResultCount", "onChangeTab", "currentTab", "setCurrentTab", "isInsertAdvertising", "isOpenSort", "setIsOpenSort", "currentSortKey", "setCurrentSortKey", "tab", "searchProductsResult", "searchBlogsResult", "searchPagesResult", "totalCount", "acc", "curr", "searchProductsResultWithAdvertising", "advertisingData", "defaultSortKey", "prev", "sortKey", "SearchPage_default"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anker-in/headless-ui",
3
- "version": "1.1.28",
3
+ "version": "1.1.29",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",