@anker-in/headless-ui 1.1.66 → 1.1.67
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.
- package/dist/cjs/biz-components/FooterNavigation/index.js +1 -1
- package/dist/cjs/biz-components/FooterNavigation/index.js.map +3 -3
- package/dist/cjs/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js.map +2 -2
- package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.js.map +2 -2
- package/dist/cjs/biz-components/HeaderNavigation/ResourceItem.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/ResourceItem.js.map +2 -2
- package/dist/cjs/biz-components/HeaderNavigation/ResourceSidebarDropdown.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/ResourceSidebarDropdown.js.map +2 -2
- package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js.map +3 -3
- package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/index.js.map +3 -3
- package/dist/cjs/biz-components/HeaderNavigation/types.d.ts +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/types.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/types.js.map +1 -1
- package/dist/cjs/biz-components/NavigationSearch/index.js +2 -2
- package/dist/cjs/biz-components/NavigationSearch/index.js.map +3 -3
- package/dist/cjs/biz-components/SearchPage/index.js +1 -1
- package/dist/cjs/biz-components/SearchPage/index.js.map +3 -3
- package/dist/cjs/components/brand-strip.js +1 -1
- package/dist/cjs/components/brand-strip.js.map +2 -2
- package/dist/esm/biz-components/FooterNavigation/index.js +1 -1
- package/dist/esm/biz-components/FooterNavigation/index.js.map +3 -3
- package/dist/esm/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js.map +2 -2
- package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.js.map +2 -2
- package/dist/esm/biz-components/HeaderNavigation/ResourceItem.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/ResourceItem.js.map +2 -2
- package/dist/esm/biz-components/HeaderNavigation/ResourceSidebarDropdown.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/ResourceSidebarDropdown.js.map +2 -2
- package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js.map +3 -3
- package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/index.js.map +3 -3
- package/dist/esm/biz-components/HeaderNavigation/types.d.ts +1 -1
- package/dist/esm/biz-components/HeaderNavigation/types.js.map +1 -1
- package/dist/esm/biz-components/NavigationSearch/index.js +2 -2
- package/dist/esm/biz-components/NavigationSearch/index.js.map +3 -3
- package/dist/esm/biz-components/SearchPage/index.js +1 -1
- package/dist/esm/biz-components/SearchPage/index.js.map +3 -3
- package/dist/esm/components/brand-strip.js +1 -1
- package/dist/esm/components/brand-strip.js.map +2 -2
- package/dist/tokens/soundcore.css +16 -0
- package/package.json +1 -2
- package/style.css +3 -0
- package/tailwind.config.js +2 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/HeaderNavigation/MobileResourceSidebarMenu.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { Button } from '../../components/index.js'\nimport { HeaderNavigationMenu } from './types.js'\nimport { useNavContext } from './NavProvider.js'\nimport { ResourceSubSubCategoryItemComp, ResourceSubSubCategoryContentComp } from './ResourceItem.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { getLocalizedPath } from '../../helpers/utils.js'\n\ninterface MenuItem {\n label: string\n href?: string\n onClick?: () => void\n active?: boolean\n icon?: string\n className?: string\n}\n\nconst MenuItem = ({ label, onClick, active }: MenuItem) => {\n return (\n <button\n className=\"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left\"\n onClick={onClick}\n aria-expanded={active}\n >\n <div className=\"flex items-center gap-
|
|
5
|
-
"mappings": "AAmBI,
|
|
4
|
+
"sourcesContent": ["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { Button } from '../../components/index.js'\nimport { HeaderNavigationMenu } from './types.js'\nimport { useNavContext } from './NavProvider.js'\nimport { ResourceSubSubCategoryItemComp, ResourceSubSubCategoryContentComp } from './ResourceItem.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { getLocalizedPath } from '../../helpers/utils.js'\n\ninterface MenuItem {\n label: string\n href?: string\n onClick?: () => void\n active?: boolean\n icon?: string\n className?: string\n}\n\nconst MenuItem = ({ label, onClick, active }: MenuItem) => {\n return (\n <button\n className=\"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left\"\n onClick={onClick}\n aria-expanded={active}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"text-sm font-bold leading-[1.4]\">{label}</span>\n </div>\n <svg\n className={`size-5 ${active ? 'rotate-90' : ''}`}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M6.91009 4.41009C7.23553 4.08466 7.76304 4.08466 8.08848 4.41009L13.0885 9.41009C13.4139 9.73553 13.4139 10.263 13.0885 10.5885L8.08848 15.5885C7.76304 15.9139 7.23553 15.9139 6.91009 15.5885C6.58466 15.263 6.58466 14.7355 6.91009 14.4101L11.3209 9.99929L6.91009 5.58848C6.58466 5.26304 6.58466 4.73553 6.91009 4.41009Z\"\n fill=\"#080A0F\"\n />\n </svg>\n </button>\n )\n}\n\n/**\n * \u79FB\u52A8\u7AEF\u8D44\u6E90\u4F4D\u4FA7\u8FB9\u680F\u4E0B\u62C9\n * @param resourceCategoriesMetadata \u8D44\u6E90\u4F4D\u5206\u7C7B\u5143\u6570\u636E\n * @param resourcesMetadata \u8D44\u6E90\u4F4D\u5143\u6570\u636E\n */\nexport const MobileResourceSidebarMenu = ({\n resourceCategoriesMetadata,\n resourcesMetadata,\n}: {\n resourceCategoriesMetadata: any\n resourcesMetadata: any\n}) => {\n const {\n currentMenu,\n setCurrentMenu,\n subSubCategory,\n setSubSubCategory,\n onSidebarNavClick,\n currentResourceMetadata,\n setCurrentResourceMetadata,\n } = useNavContext()\n const { locale = 'us' } = useAiuiContext()\n const [expandedSubcategory, setExpandedSubcategory] = useState<{ index: number; open: boolean }[]>([])\n const [expandedResourceCategories, setExpandedResourceCategories] = useState<{ index: number; open: boolean }[]>([])\n\n useEffect(() => {\n if (resourceCategoriesMetadata?.subcategories?.length) {\n setExpandedSubcategory(\n resourceCategoriesMetadata?.subcategories?.map((_: any, index: number) => ({\n index,\n open: false,\n }))\n )\n }\n }, [resourceCategoriesMetadata])\n\n useEffect(() => {\n if (subSubCategory?.subSubCategories?.length) {\n setExpandedResourceCategories(\n subSubCategory?.subSubCategories?.map((_: any, index: number) => ({\n index,\n open: index === 0,\n }))\n )\n }\n }, [subSubCategory])\n\n const handleSubSubCategoryClick = useCallback(\n (item: any) => {\n setSubSubCategory?.(item)\n const curResourcesMetadata =\n resourcesMetadata?.find(\n (resourceItem: any) => item?.label?.toLowerCase() === resourceItem.label?.toLowerCase()\n ) || {}\n setCurrentMenu && setCurrentMenu(HeaderNavigationMenu.Third)\n setCurrentResourceMetadata && setCurrentResourceMetadata(curResourcesMetadata)\n },\n [resourcesMetadata, setCurrentMenu, setSubSubCategory, setCurrentResourceMetadata]\n )\n\n const MobileResourceSidebarMenuComp = useMemo(() => {\n switch (currentMenu) {\n case HeaderNavigationMenu.Secondary:\n return (\n // \u4E8C\u7EA7\u83DC\u5355\n <div className=\"tablet:px-8 laptop:px-16 tablet:justify-start tablet:gap-16 flex h-full flex-col justify-between p-4\">\n <div>\n {resourceCategoriesMetadata?.subcategories?.map((item: any, index: number) => {\n return (\n <div key={`${item.label}-${index}`}>\n <MenuItem\n label={item?.label}\n active={expandedSubcategory.find(item => item.index === index)?.open}\n onClick={() => {\n handleSubSubCategoryClick(item)\n onSidebarNavClick?.(item, index)\n }}\n />\n </div>\n )\n })}\n </div>\n <div className=\"tablet:items-start flex flex-col items-center gap-4\">\n {resourceCategoriesMetadata?.primary && (\n <Button\n as=\"a\"\n href={`${getLocalizedPath(resourceCategoriesMetadata?.primary?.url, locale)}?ref=${resourceCategoriesMetadata?.primary?.label}_shopall`}\n variant=\"primary\"\n size=\"lg\"\n className=\"tablet:w-auto w-full text-base\"\n >\n {resourceCategoriesMetadata?.primary?.label}\n </Button>\n )}\n {resourceCategoriesMetadata?.secondary && (\n <Button\n as=\"a\"\n href={getLocalizedPath(resourceCategoriesMetadata?.secondary?.url, locale)}\n variant=\"link\"\n size=\"lg\"\n className=\"tablet:w-auto tablet:px-0 w-full py-0 text-base\"\n >\n {resourceCategoriesMetadata?.secondary?.label}\n </Button>\n )}\n </div>\n </div>\n )\n case HeaderNavigationMenu.Third:\n return (\n // \u4E09\u7EA7\u83DC\u5355\n <div className=\"tablet:px-8 laptop:px-16 p-4\">\n {subSubCategory?.subSubCategories ? (\n subSubCategory?.subSubCategories?.map((subSubCategoryItem: any, index: number) => {\n const curResourcesMetadata =\n resourcesMetadata?.find(\n (item: any) => item.label.toLowerCase() === subSubCategoryItem?.label?.toLowerCase()\n ) || {}\n return (\n <div key={`${subSubCategoryItem.label}-${index}`}>\n {Reflect.ownKeys(subSubCategoryItem).length > 0 && (\n <ResourceSubSubCategoryItemComp\n matchResourcesMetadata={curResourcesMetadata}\n onSubSubCategoryItemClick={() => {\n onSidebarNavClick?.(subSubCategoryItem, index)\n setExpandedResourceCategories(prev =>\n prev.map((item, i) => ({ ...item, open: i === index ? !item.open : item.open }))\n )\n }}\n expanded={!!expandedResourceCategories?.find(item => item.index === index)?.open}\n />\n )}\n {expandedResourceCategories?.find(item => item.index === index)?.open && (\n <ResourceSubSubCategoryContentComp matchResourcesMetadata={curResourcesMetadata} />\n )}\n </div>\n )\n })\n ) : (\n <>\n {Reflect.ownKeys(currentResourceMetadata).length > 0 && (\n <ResourceSubSubCategoryItemComp matchResourcesMetadata={currentResourceMetadata} />\n )}\n <ResourceSubSubCategoryContentComp matchResourcesMetadata={currentResourceMetadata} />\n </>\n )}\n </div>\n )\n default:\n return null\n }\n }, [\n currentMenu,\n resourceCategoriesMetadata,\n resourcesMetadata,\n expandedSubcategory,\n expandedResourceCategories,\n subSubCategory,\n currentResourceMetadata,\n handleSubSubCategoryClick,\n onSidebarNavClick,\n locale,\n ])\n\n return MobileResourceSidebarMenuComp\n}\n"],
|
|
5
|
+
"mappings": "AAmBI,OAmKU,YAAAA,EA7JN,OAAAC,EANJ,QAAAC,MAAA,oBAnBJ,OAAgB,eAAAC,EAAa,aAAAC,EAAW,WAAAC,EAAS,YAAAC,MAAgB,QACjE,OAAS,UAAAC,MAAc,4BACvB,OAAS,wBAAAC,MAA4B,aACrC,OAAS,iBAAAC,MAAqB,mBAC9B,OAAS,kCAAAC,EAAgC,qCAAAC,MAAyC,oBAClF,OAAS,kBAAAC,MAAsB,2BAC/B,OAAS,oBAAAC,MAAwB,yBAWjC,MAAMC,EAAW,CAAC,CAAE,MAAAC,EAAO,QAAAC,EAAS,OAAAC,CAAO,IAEvCf,EAAC,UACC,UAAU,iGACV,QAASc,EACT,gBAAeC,EAEf,UAAAhB,EAAC,OAAI,UAAU,0BACb,SAAAA,EAAC,QAAK,UAAU,kCAAmC,SAAAc,EAAM,EAC3D,EACAd,EAAC,OACC,UAAW,UAAUgB,EAAS,YAAc,EAAE,GAC9C,QAAQ,YACR,KAAK,OACL,MAAM,6BACN,cAAY,OAEZ,SAAAhB,EAAC,QACC,EAAE,kUACF,KAAK,UACP,EACF,GACF,EASSiB,EAA4B,CAAC,CACxC,2BAAAC,EACA,kBAAAC,CACF,IAGM,CACJ,KAAM,CACJ,YAAAC,EACA,eAAAC,EACA,eAAAC,EACA,kBAAAC,EACA,kBAAAC,EACA,wBAAAC,EACA,2BAAAC,CACF,EAAIlB,EAAc,EACZ,CAAE,OAAAmB,EAAS,IAAK,EAAIhB,EAAe,EACnC,CAACiB,EAAqBC,CAAsB,EAAIxB,EAA6C,CAAC,CAAC,EAC/F,CAACyB,EAA4BC,CAA6B,EAAI1B,EAA6C,CAAC,CAAC,EAEnHF,EAAU,IAAM,CACVe,GAA4B,eAAe,QAC7CW,EACEX,GAA4B,eAAe,IAAI,CAACc,EAAQC,KAAmB,CACzE,MAAAA,EACA,KAAM,EACR,EAAE,CACJ,CAEJ,EAAG,CAACf,CAA0B,CAAC,EAE/Bf,EAAU,IAAM,CACVmB,GAAgB,kBAAkB,QACpCS,EACET,GAAgB,kBAAkB,IAAI,CAACU,EAAQC,KAAmB,CAChE,MAAAA,EACA,KAAMA,IAAU,CAClB,EAAE,CACJ,CAEJ,EAAG,CAACX,CAAc,CAAC,EAEnB,MAAMY,EAA4BhC,EAC/BiC,GAAc,CACbZ,IAAoBY,CAAI,EACxB,MAAMC,EACJjB,GAAmB,KAChBkB,GAAsBF,GAAM,OAAO,YAAY,IAAME,EAAa,OAAO,YAAY,CACxF,GAAK,CAAC,EACRhB,GAAkBA,EAAed,EAAqB,KAAK,EAC3DmB,GAA8BA,EAA2BU,CAAoB,CAC/E,EACA,CAACjB,EAAmBE,EAAgBE,EAAmBG,CAA0B,CACnF,EA0GA,OAxGsCtB,EAAQ,IAAM,CAClD,OAAQgB,EAAa,CACnB,KAAKb,EAAqB,UACxB,OAEEN,EAAC,OAAI,UAAU,uGACb,UAAAD,EAAC,OACE,SAAAkB,GAA4B,eAAe,IAAI,CAACiB,EAAWF,IAExDjC,EAAC,OACC,SAAAA,EAACa,EAAA,CACC,MAAOsB,GAAM,MACb,OAAQP,EAAoB,KAAKO,GAAQA,EAAK,QAAUF,CAAK,GAAG,KAChE,QAAS,IAAM,CACbC,EAA0BC,CAAI,EAC9BX,IAAoBW,EAAMF,CAAK,CACjC,EACF,GARQ,GAAGE,EAAK,KAAK,IAAIF,CAAK,EAShC,CAEH,EACH,EACAhC,EAAC,OAAI,UAAU,sDACZ,UAAAiB,GAA4B,SAC3BlB,EAACM,EAAA,CACC,GAAG,IACH,KAAM,GAAGM,EAAiBM,GAA4B,SAAS,IAAKS,CAAM,CAAC,QAAQT,GAA4B,SAAS,KAAK,WAC7H,QAAQ,UACR,KAAK,KACL,UAAU,iCAET,SAAAA,GAA4B,SAAS,MACxC,EAEDA,GAA4B,WAC3BlB,EAACM,EAAA,CACC,GAAG,IACH,KAAMM,EAAiBM,GAA4B,WAAW,IAAKS,CAAM,EACzE,QAAQ,OACR,KAAK,KACL,UAAU,kDAET,SAAAT,GAA4B,WAAW,MAC1C,GAEJ,GACF,EAEJ,KAAKX,EAAqB,MACxB,OAEEP,EAAC,OAAI,UAAU,+BACZ,SAAAsB,GAAgB,iBACfA,GAAgB,kBAAkB,IAAI,CAACgB,EAAyBL,IAAkB,CAChF,MAAMG,EACJjB,GAAmB,KAChBgB,GAAcA,EAAK,MAAM,YAAY,IAAMG,GAAoB,OAAO,YAAY,CACrF,GAAK,CAAC,EACR,OACErC,EAAC,OACE,kBAAQ,QAAQqC,CAAkB,EAAE,OAAS,GAC5CtC,EAACS,EAAA,CACC,uBAAwB2B,EACxB,0BAA2B,IAAM,CAC/BZ,IAAoBc,EAAoBL,CAAK,EAC7CF,EAA8BQ,GAC5BA,EAAK,IAAI,CAACJ,EAAMK,KAAO,CAAE,GAAGL,EAAM,KAAMK,IAAMP,EAAQ,CAACE,EAAK,KAAOA,EAAK,IAAK,EAAE,CACjF,CACF,EACA,SAAU,CAAC,CAACL,GAA4B,KAAKK,GAAQA,EAAK,QAAUF,CAAK,GAAG,KAC9E,EAEDH,GAA4B,KAAKK,GAAQA,EAAK,QAAUF,CAAK,GAAG,MAC/DjC,EAACU,EAAA,CAAkC,uBAAwB0B,EAAsB,IAd3E,GAAGE,EAAmB,KAAK,IAAIL,CAAK,EAgB9C,CAEJ,CAAC,EAEDhC,EAAAF,EAAA,CACG,kBAAQ,QAAQ0B,CAAuB,EAAE,OAAS,GACjDzB,EAACS,EAAA,CAA+B,uBAAwBgB,EAAyB,EAEnFzB,EAACU,EAAA,CAAkC,uBAAwBe,EAAyB,GACtF,EAEJ,EAEJ,QACE,OAAO,IACX,CACF,EAAG,CACDL,EACAF,EACAC,EACAS,EACAE,EACAR,EACAG,EACAS,EACAV,EACAG,CACF,CAAC,CAGH",
|
|
6
6
|
"names": ["Fragment", "jsx", "jsxs", "useCallback", "useEffect", "useMemo", "useState", "Button", "HeaderNavigationMenu", "useNavContext", "ResourceSubSubCategoryItemComp", "ResourceSubSubCategoryContentComp", "useAiuiContext", "getLocalizedPath", "MenuItem", "label", "onClick", "active", "MobileResourceSidebarMenu", "resourceCategoriesMetadata", "resourcesMetadata", "currentMenu", "setCurrentMenu", "subSubCategory", "setSubSubCategory", "onSidebarNavClick", "currentResourceMetadata", "setCurrentResourceMetadata", "locale", "expandedSubcategory", "setExpandedSubcategory", "expandedResourceCategories", "setExpandedResourceCategories", "_", "index", "handleSubSubCategoryClick", "item", "curResourcesMetadata", "resourceItem", "subSubCategoryItem", "prev", "i"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment as
|
|
1
|
+
import{Fragment as m,jsx as a,jsxs as t}from"react/jsx-runtime";import{useRef as c}from"react";import{Container as u,Text as s,Link as p,Picture as f,Button as b}from"../../components/index.js";import h from"./CompanyStatsBanner/index.js";import{cn as n,getLocalizedPath as i}from"../../helpers/utils.js";import{useAiuiContext as v}from"../AiuiProvider/index.js";const D=({multicolMetadata:e,showStatsBanner:r,statsBannerData:o})=>{const l=c(null);return a("div",{ref:l,className:"bg-white py-4",children:a(u,{childClassName:"bg-white",className:"h-full",children:t("div",{className:"laptop:gap-4 flex flex-col gap-3",children:[r&&a(h,{data:o}),a("div",{className:"flex gap-4",children:e?.map((d,x)=>a("div",{className:"w-1/4",children:a(g,{item:d})},`multicolItem-${d?.label}-${x}`))})]})})})},g=({item:e,allPicture:r})=>{const{locale:o="us"}=v();return t(m,{children:[e?.columns&&t(m,{children:[a(s,{html:e.label,as:"div",className:"my-2 text-sm font-bold leading-[1.4] text-[#6D6D6F]"}),a("div",{className:"mt-2 flex flex-col",children:e.columns?.map(l=>t("div",{className:"flex items-center gap-1 py-2",children:[a(p,{href:`${i(l.url,o)}?ref=navMenu`,asChild:!l.url,className:"text-sm font-bold leading-[1.4] no-underline",children:l.label}),l?.badge&&a(s,{as:"p",html:l?.badge||"badge",className:"text-brand-0 h-[24px] rounded-full border-[1.6px] border-[var(--brand-color-0)] px-[6px] text-sm font-bold !leading-[22px]"})]},l.label))})]}),e?.imageUrl&&a("div",{className:n("rounded-image-text laptop:h-[280px] desktop:h-[224px] lg-desktop:h-[280px] tablet:max-w-[346px] laptop:max-w-[440px] desktop:w-full relative h-[240px] max-w-[358px] overflow-hidden",{"tablet:max-w-none laptop:max-w-none":r}),children:t(p,{href:`${i(e.url,o)}?ref=navMenu`,asChild:!e.url,children:[a(f,{source:e.imageUrl,width:404,height:280,className:"size-full",imgClassName:"object-cover h-full hover:scale-105 transition-all duration-300"}),t("div",{className:"absolute bottom-4 left-4 z-10 flex flex-col justify-end no-underline",children:[a(s,{html:e.title,className:n("lg-desktop:text-2xl text-xl font-bold leading-[1.2] text-white",{"text-black":e?.theme==="dark"})}),e.subtitle&&a(s,{html:e.subtitle,className:n("text-sm font-bold leading-[1.4] text-white",{"text-black":e?.theme==="dark"})}),e?.primary?.label&&a(b,{as:"a",href:i(e?.primary?.url,o),variant:"link",size:"lg",iconClassName:"size-4 lg-desktop:size-5",className:n("mr-auto !p-0 text-sm font-bold leading-[1.4] text-white",{"text-black":e?.theme==="dark"}),children:e?.primary?.label||"more"})]})]})})]})};export{D as MulticolDropdown,g as MulticolItem};
|
|
2
2
|
//# sourceMappingURL=MulticolDropdown.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/HeaderNavigation/MulticolDropdown.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useRef } from 'react'\nimport { Container, Text, Link, Picture, Button } from '../../components/index.js'\nimport CompanyStatsBanner from './CompanyStatsBanner/index.js'\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\n/**\n * \u591A\u5217\u4E0B\u62C9\n * @param categoriesItem \u5206\u7C7B\u9879\n */\nexport const MulticolDropdown = ({\n multicolMetadata,\n showStatsBanner,\n statsBannerData,\n}: {\n multicolMetadata: any\n showStatsBanner: boolean\n statsBannerData: any\n}) => {\n const multicolDropdownRef = useRef<HTMLDivElement>(null)\n\n return (\n <div ref={multicolDropdownRef} className=\"bg-white py-4\">\n <Container childClassName=\"bg-white\" className=\"h-full\">\n <div className=\"laptop:gap-4 flex flex-col gap-3\">\n {showStatsBanner && <CompanyStatsBanner data={statsBannerData} />}\n <div className=\"flex gap-4\">\n {multicolMetadata?.map((item: any, index: number) => (\n <div key={`multicolItem-${item?.label}-${index}`} className=\"w-1/4\">\n <MulticolItem item={item} />\n </div>\n ))}\n </div>\n </div>\n </Container>\n </div>\n )\n}\n\n/**\n * \u591A\u5217\u4E0B\u62C9\u9879\n * @param item \u591A\u5217\u4E0B\u62C9\u9879\n */\nexport const MulticolItem = ({ item, allPicture }: { item: any; allPicture?: boolean }) => {\n const { locale = 'us' } = useAiuiContext()\n return (\n <>\n {item?.columns && (\n <>\n <Text html={item.label} as=\"div\" className=\"my-2 text-sm font-bold leading-[1.4] text-[#6D6D6F]\" />\n <div className=\"mt-2 flex flex-col\">\n {item.columns?.map((columnItem: any) => (\n <div key={columnItem.label} className=\"flex items-center gap-1 py-2\">\n <Link\n href={`${getLocalizedPath(columnItem.url, locale)}?ref=navMenu`}\n asChild={!columnItem.url}\n className=\"text-sm font-bold leading-[1.4] no-underline\"\n >\n {columnItem.label}\n </Link>\n {columnItem?.badge && (\n <Text\n as=\"p\"\n html={columnItem?.badge || 'badge'}\n className=\"text-brand-0 h-[24px] rounded-full border-[1.6px] border-[var(--brand-color-0)] px-[6px] text-sm font-bold !leading-[22px]\"\n />\n )}\n </div>\n ))}\n </div>\n </>\n )}\n {item?.imageUrl && (\n <div\n className={cn(\n 'laptop:h-[280px] desktop:h-[224px] lg-desktop:h-[280px] tablet:max-w-[346px] laptop:max-w-[440px] desktop:w-full relative h-[240px] max-w-[358px] overflow-hidden',\n {\n ['tablet:max-w-none laptop:max-w-none']: allPicture,\n }\n )}\n >\n <Link href={`${getLocalizedPath(item.url, locale)}?ref=navMenu`} asChild={!item.url}>\n <Picture\n source={item.imageUrl}\n width={404}\n height={280}\n className=\"size-full\"\n imgClassName=\"object-cover h-full hover:scale-105 transition-all duration-300\"\n />\n <div className=\"absolute bottom-4 left-4 z-10 flex flex-col justify-end no-underline\">\n <Text\n html={item.title}\n className={cn('lg-desktop:text-2xl text-xl font-bold leading-[1.2] text-white', {\n 'text-black': item?.theme === 'dark',\n })}\n />\n {item.subtitle && (\n <Text\n html={item.subtitle}\n className={cn('text-sm font-bold leading-[1.4] text-white', {\n 'text-black': item?.theme === 'dark',\n })}\n />\n )}\n {item?.primary?.label && (\n <Button\n as=\"a\"\n href={getLocalizedPath(item?.primary?.url, locale)}\n variant=\"link\"\n size=\"lg\"\n className={cn('mr-auto !p-0 text-sm font-bold leading-[1.4] text-white', {\n 'text-black': item?.theme === 'dark',\n })}\n >\n {item?.primary?.label || 'more'}\n </Button>\n )}\n </div>\n </Link>\n </div>\n )}\n </>\n )\n}\n"],
|
|
5
|
-
"mappings": "AAwBQ,OAwBA,YAAAA,EAvBsB,OAAAC,EADtB,QAAAC,MAAA,oBAxBR,OAAgB,UAAAC,MAAc,QAC9B,OAAS,aAAAC,EAAW,QAAAC,EAAM,QAAAC,EAAM,WAAAC,EAAS,UAAAC,MAAc,4BACvD,OAAOC,MAAwB,gCAC/B,OAAS,MAAAC,EAAI,oBAAAC,MAAwB,yBACrC,OAAS,kBAAAC,MAAsB,2BAMxB,MAAMC,EAAmB,CAAC,CAC/B,iBAAAC,EACA,gBAAAC,EACA,gBAAAC,CACF,IAIM,CACJ,MAAMC,EAAsBd,EAAuB,IAAI,EAEvD,OACEF,EAAC,OAAI,IAAKgB,EAAqB,UAAU,gBACvC,SAAAhB,EAACG,EAAA,CAAU,eAAe,WAAW,UAAU,SAC7C,SAAAF,EAAC,OAAI,UAAU,mCACZ,UAAAa,GAAmBd,EAACQ,EAAA,CAAmB,KAAMO,EAAiB,EAC/Df,EAAC,OAAI,UAAU,aACZ,SAAAa,GAAkB,IAAI,CAACI,EAAWC,IACjClB,EAAC,OAAiD,UAAU,QAC1D,SAAAA,EAACmB,EAAA,CAAa,KAAMF,EAAM,GADlB,gBAAgBA,GAAM,KAAK,IAAIC,CAAK,EAE9C,CACD,EACH,GACF,EACF,EACF,CAEJ,EAMaC,EAAe,CAAC,CAAE,KAAAF,EAAM,WAAAG,CAAW,IAA2C,CACzF,KAAM,CAAE,OAAAC,EAAS,IAAK,EAAIV,EAAe,EACzC,OACEV,EAAAF,EAAA,CACG,UAAAkB,GAAM,SACLhB,EAAAF,EAAA,CACE,UAAAC,EAACI,EAAA,CAAK,KAAMa,EAAK,MAAO,GAAG,MAAM,UAAU,sDAAsD,EACjGjB,EAAC,OAAI,UAAU,qBACZ,SAAAiB,EAAK,SAAS,IAAKK,GAClBrB,EAAC,OAA2B,UAAU,+BACpC,UAAAD,EAACK,EAAA,CACC,KAAM,GAAGK,EAAiBY,EAAW,IAAKD,CAAM,CAAC,eACjD,QAAS,CAACC,EAAW,IACrB,UAAU,+CAET,SAAAA,EAAW,MACd,EACCA,GAAY,OACXtB,EAACI,EAAA,CACC,GAAG,IACH,KAAMkB,GAAY,OAAS,QAC3B,UAAU,6HACZ,IAbMA,EAAW,KAerB,CACD,EACH,GACF,EAEDL,GAAM,UACLjB,EAAC,OACC,UAAWS,EACT,
|
|
4
|
+
"sourcesContent": ["import React, { useRef } from 'react'\nimport { Container, Text, Link, Picture, Button } from '../../components/index.js'\nimport CompanyStatsBanner from './CompanyStatsBanner/index.js'\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\n/**\n * \u591A\u5217\u4E0B\u62C9\n * @param categoriesItem \u5206\u7C7B\u9879\n */\nexport const MulticolDropdown = ({\n multicolMetadata,\n showStatsBanner,\n statsBannerData,\n}: {\n multicolMetadata: any\n showStatsBanner: boolean\n statsBannerData: any\n}) => {\n const multicolDropdownRef = useRef<HTMLDivElement>(null)\n\n return (\n <div ref={multicolDropdownRef} className=\"bg-white py-4\">\n <Container childClassName=\"bg-white\" className=\"h-full\">\n <div className=\"laptop:gap-4 flex flex-col gap-3\">\n {showStatsBanner && <CompanyStatsBanner data={statsBannerData} />}\n <div className=\"flex gap-4\">\n {multicolMetadata?.map((item: any, index: number) => (\n <div key={`multicolItem-${item?.label}-${index}`} className=\"w-1/4\">\n <MulticolItem item={item} />\n </div>\n ))}\n </div>\n </div>\n </Container>\n </div>\n )\n}\n\n/**\n * \u591A\u5217\u4E0B\u62C9\u9879\n * @param item \u591A\u5217\u4E0B\u62C9\u9879\n */\nexport const MulticolItem = ({ item, allPicture }: { item: any; allPicture?: boolean }) => {\n const { locale = 'us' } = useAiuiContext()\n return (\n <>\n {item?.columns && (\n <>\n <Text html={item.label} as=\"div\" className=\"my-2 text-sm font-bold leading-[1.4] text-[#6D6D6F]\" />\n <div className=\"mt-2 flex flex-col\">\n {item.columns?.map((columnItem: any) => (\n <div key={columnItem.label} className=\"flex items-center gap-1 py-2\">\n <Link\n href={`${getLocalizedPath(columnItem.url, locale)}?ref=navMenu`}\n asChild={!columnItem.url}\n className=\"text-sm font-bold leading-[1.4] no-underline\"\n >\n {columnItem.label}\n </Link>\n {columnItem?.badge && (\n <Text\n as=\"p\"\n html={columnItem?.badge || 'badge'}\n className=\"text-brand-0 h-[24px] rounded-full border-[1.6px] border-[var(--brand-color-0)] px-[6px] text-sm font-bold !leading-[22px]\"\n />\n )}\n </div>\n ))}\n </div>\n </>\n )}\n {item?.imageUrl && (\n <div\n className={cn(\n 'rounded-image-text laptop:h-[280px] desktop:h-[224px] lg-desktop:h-[280px] tablet:max-w-[346px] laptop:max-w-[440px] desktop:w-full relative h-[240px] max-w-[358px] overflow-hidden',\n {\n ['tablet:max-w-none laptop:max-w-none']: allPicture,\n }\n )}\n >\n <Link href={`${getLocalizedPath(item.url, locale)}?ref=navMenu`} asChild={!item.url}>\n <Picture\n source={item.imageUrl}\n width={404}\n height={280}\n className=\"size-full\"\n imgClassName=\"object-cover h-full hover:scale-105 transition-all duration-300\"\n />\n <div className=\"absolute bottom-4 left-4 z-10 flex flex-col justify-end no-underline\">\n <Text\n html={item.title}\n className={cn('lg-desktop:text-2xl text-xl font-bold leading-[1.2] text-white', {\n 'text-black': item?.theme === 'dark',\n })}\n />\n {item.subtitle && (\n <Text\n html={item.subtitle}\n className={cn('text-sm font-bold leading-[1.4] text-white', {\n 'text-black': item?.theme === 'dark',\n })}\n />\n )}\n {item?.primary?.label && (\n <Button\n as=\"a\"\n href={getLocalizedPath(item?.primary?.url, locale)}\n variant=\"link\"\n size=\"lg\"\n iconClassName=\"size-4 lg-desktop:size-5\"\n className={cn('mr-auto !p-0 text-sm font-bold leading-[1.4] text-white', {\n 'text-black': item?.theme === 'dark',\n })}\n >\n {item?.primary?.label || 'more'}\n </Button>\n )}\n </div>\n </Link>\n </div>\n )}\n </>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAwBQ,OAwBA,YAAAA,EAvBsB,OAAAC,EADtB,QAAAC,MAAA,oBAxBR,OAAgB,UAAAC,MAAc,QAC9B,OAAS,aAAAC,EAAW,QAAAC,EAAM,QAAAC,EAAM,WAAAC,EAAS,UAAAC,MAAc,4BACvD,OAAOC,MAAwB,gCAC/B,OAAS,MAAAC,EAAI,oBAAAC,MAAwB,yBACrC,OAAS,kBAAAC,MAAsB,2BAMxB,MAAMC,EAAmB,CAAC,CAC/B,iBAAAC,EACA,gBAAAC,EACA,gBAAAC,CACF,IAIM,CACJ,MAAMC,EAAsBd,EAAuB,IAAI,EAEvD,OACEF,EAAC,OAAI,IAAKgB,EAAqB,UAAU,gBACvC,SAAAhB,EAACG,EAAA,CAAU,eAAe,WAAW,UAAU,SAC7C,SAAAF,EAAC,OAAI,UAAU,mCACZ,UAAAa,GAAmBd,EAACQ,EAAA,CAAmB,KAAMO,EAAiB,EAC/Df,EAAC,OAAI,UAAU,aACZ,SAAAa,GAAkB,IAAI,CAACI,EAAWC,IACjClB,EAAC,OAAiD,UAAU,QAC1D,SAAAA,EAACmB,EAAA,CAAa,KAAMF,EAAM,GADlB,gBAAgBA,GAAM,KAAK,IAAIC,CAAK,EAE9C,CACD,EACH,GACF,EACF,EACF,CAEJ,EAMaC,EAAe,CAAC,CAAE,KAAAF,EAAM,WAAAG,CAAW,IAA2C,CACzF,KAAM,CAAE,OAAAC,EAAS,IAAK,EAAIV,EAAe,EACzC,OACEV,EAAAF,EAAA,CACG,UAAAkB,GAAM,SACLhB,EAAAF,EAAA,CACE,UAAAC,EAACI,EAAA,CAAK,KAAMa,EAAK,MAAO,GAAG,MAAM,UAAU,sDAAsD,EACjGjB,EAAC,OAAI,UAAU,qBACZ,SAAAiB,EAAK,SAAS,IAAKK,GAClBrB,EAAC,OAA2B,UAAU,+BACpC,UAAAD,EAACK,EAAA,CACC,KAAM,GAAGK,EAAiBY,EAAW,IAAKD,CAAM,CAAC,eACjD,QAAS,CAACC,EAAW,IACrB,UAAU,+CAET,SAAAA,EAAW,MACd,EACCA,GAAY,OACXtB,EAACI,EAAA,CACC,GAAG,IACH,KAAMkB,GAAY,OAAS,QAC3B,UAAU,6HACZ,IAbMA,EAAW,KAerB,CACD,EACH,GACF,EAEDL,GAAM,UACLjB,EAAC,OACC,UAAWS,EACT,uLACA,CACG,sCAAwCW,CAC3C,CACF,EAEA,SAAAnB,EAACI,EAAA,CAAK,KAAM,GAAGK,EAAiBO,EAAK,IAAKI,CAAM,CAAC,eAAgB,QAAS,CAACJ,EAAK,IAC9E,UAAAjB,EAACM,EAAA,CACC,OAAQW,EAAK,SACb,MAAO,IACP,OAAQ,IACR,UAAU,YACV,aAAa,kEACf,EACAhB,EAAC,OAAI,UAAU,uEACb,UAAAD,EAACI,EAAA,CACC,KAAMa,EAAK,MACX,UAAWR,EAAG,iEAAkE,CAC9E,aAAcQ,GAAM,QAAU,MAChC,CAAC,EACH,EACCA,EAAK,UACJjB,EAACI,EAAA,CACC,KAAMa,EAAK,SACX,UAAWR,EAAG,6CAA8C,CAC1D,aAAcQ,GAAM,QAAU,MAChC,CAAC,EACH,EAEDA,GAAM,SAAS,OACdjB,EAACO,EAAA,CACC,GAAG,IACH,KAAMG,EAAiBO,GAAM,SAAS,IAAKI,CAAM,EACjD,QAAQ,OACR,KAAK,KACL,cAAc,2BACd,UAAWZ,EAAG,0DAA2D,CACvE,aAAcQ,GAAM,QAAU,MAChC,CAAC,EAEA,SAAAA,GAAM,SAAS,OAAS,OAC3B,GAEJ,GACF,EACF,GAEJ,CAEJ",
|
|
6
6
|
"names": ["Fragment", "jsx", "jsxs", "useRef", "Container", "Text", "Link", "Picture", "Button", "CompanyStatsBanner", "cn", "getLocalizedPath", "useAiuiContext", "MulticolDropdown", "multicolMetadata", "showStatsBanner", "statsBannerData", "multicolDropdownRef", "item", "index", "MulticolItem", "allPicture", "locale", "columnItem"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment as c,jsx as e,jsxs as
|
|
1
|
+
import{Fragment as c,jsx as e,jsxs as o}from"react/jsx-runtime";import{Picture as d,Text as i,Link as m}from"../../components/index.js";import{cn as s,getLocalizedPath as r}from"../../helpers/utils.js";import{useAiuiContext as h}from"../AiuiProvider/index.js";const f=({resource:t})=>{const{locale:l="us"}=h();return e("div",{className:"laptop:h-[280px] desktop:h-[224px] lg-desktop:h-[280px] tablet:max-w-none desktop:w-full relative h-[240px] max-w-[358px] overflow-hidden",children:e(m,{href:r(t?.href,l),className:"no-underline hover:text-current",children:o("div",{className:"relative h-full overflow-hidden [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500",children:[e(d,{source:t.imageUrl,width:404,height:280,className:"size-full",imgClassName:"object-cover h-full hover:scale-105 transition-all duration-300"}),o("div",{className:"absolute inset-x-0 bottom-0 p-4",children:[e(i,{as:"p",html:t?.title,className:s("text-xl font-bold leading-[1.2]",{"text-white":t?.theme!=="dark","text-black":t?.theme==="dark"})}),t?.desc&&e(i,{html:t?.desc,className:s("text-sm font-bold leading-[1.4]",{"text-white":t?.theme!=="dark","text-black":t?.theme==="dark"})})]})]})})})},b=({matchResourcesMetadata:t,onSubSubCategoryItemClick:l,expanded:a})=>{const n=o(c,{children:[t?.label&&e(i,{html:t?.label,className:"text-sm font-bold leading-[1.4]"}),l&&e("svg",{className:s("size-5",{"rotate-180":a}),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:e("path",{d:"M6.91009 4.41009C7.23553 4.08466 7.76304 4.08466 8.08848 4.41009L13.0885 9.41009C13.4139 9.73553 13.4139 10.263 13.0885 10.5885L8.08848 15.5885C7.76304 15.9139 7.23553 15.9139 6.91009 15.5885C6.58466 15.263 6.58466 14.7355 6.91009 14.4101L11.3209 9.99929L6.91009 5.58848C6.58466 5.26304 6.58466 4.73553 6.91009 4.41009Z",fill:"#080A0F"})})]});return l?e("button",{className:"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left",onClick:l,"aria-expanded":a,children:n}):e("div",{className:"flex items-center justify-between py-4",children:n})},g=({matchResourcesMetadata:t})=>{const{locale:l="us"}=h();return e("div",{className:"tablet:grid tablet:grid-cols-2 flex grid-cols-1 flex-col gap-4",children:!!t?.resources?.length&&t?.resources?.map((a,n)=>e(m,{href:r(a?.href,l),className:"no-underline hover:text-current",children:e("div",{className:"laptop:h-[280px] tablet:max-w-none relative h-[240px] max-w-[358px]",children:o("div",{className:"relative h-full overflow-hidden",children:[e(d,{source:a.imageUrl,width:404,height:280,className:"size-full",imgClassName:"object-cover h-full hover:scale-105 transition-all duration-300"}),o("div",{className:"absolute inset-x-0 bottom-0 p-4",children:[e(i,{html:a?.title,as:"p",className:s("text-xl font-bold leading-[1.2]",{"text-white":a?.theme!=="dark","text-black":a?.theme==="dark"})}),a?.desc&&e(i,{html:a?.desc,className:s("text-sm font-bold leading-[1.4]",{"text-white":a?.theme!=="dark","text-black":a?.theme==="dark"})})]})]})})},`resourceItem-${n}`))})};export{f as ResourceItem,g as ResourceSubSubCategoryContentComp,b as ResourceSubSubCategoryItemComp};
|
|
2
2
|
//# sourceMappingURL=ResourceItem.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/HeaderNavigation/ResourceItem.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Picture, Text, Link } from '../../components/index.js'\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\n/**\n * \u8D44\u6E90\u4F4D\u9879\u7EC4\u4EF6 - \u684C\u9762\u7AEF\n */\nexport const ResourceItem = ({ resource }: { resource: any }) => {\n const { locale = 'us' } = useAiuiContext()\n return (\n <div className=\"laptop:h-[280px] desktop:h-[224px] lg-desktop:h-[280px] tablet:max-w-none desktop:w-full relative h-[240px] max-w-[358px] overflow-hidden\">\n <Link href={getLocalizedPath(resource?.href, locale)} className=\"no-underline hover:text-current\">\n <div className=\"relative h-full overflow-hidden [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500\">\n <Picture\n source={resource.imageUrl}\n width={404}\n height={280}\n className=\"size-full\"\n imgClassName=\"object-cover h-full hover:scale-105 transition-all duration-300\"\n />\n <div className=\"absolute inset-x-0 bottom-0 p-4\">\n <Text\n as=\"p\"\n html={resource?.title}\n className={cn('text-xl font-bold leading-[1.2]', {\n 'text-white': resource?.theme !== 'dark',\n 'text-black': resource?.theme === 'dark',\n })}\n />\n {resource?.desc && (\n <Text\n html={resource?.desc}\n className={cn('text-sm font-bold leading-[1.4]', {\n 'text-white': resource?.theme !== 'dark',\n 'text-black': resource?.theme === 'dark',\n })}\n />\n )}\n </div>\n </div>\n </Link>\n </div>\n )\n}\n\n/**\n * \u8D44\u6E90\u4F4D\u5B50\u5206\u7C7B\u6807\u9898\u7EC4\u4EF6 - \u79FB\u52A8\u7AEF\n */\nexport const ResourceSubSubCategoryItemComp = ({\n matchResourcesMetadata,\n onSubSubCategoryItemClick,\n expanded,\n}: {\n matchResourcesMetadata: any\n onSubSubCategoryItemClick?: () => void\n expanded?: boolean\n}) => {\n const content = (\n <>\n {matchResourcesMetadata?.label && (\n <Text html={matchResourcesMetadata?.label} className=\"text-sm font-bold leading-[1.4]\" />\n )}\n {onSubSubCategoryItemClick && (\n <svg\n className={cn('size-5', {\n ['rotate-180']: expanded,\n })}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M6
|
|
5
|
-
"mappings": "AAaU,OA6CN,YAAAA,EA7CM,OAAAC,EAOA,QAAAC,MAPA,oBAbV,OAAS,WAAAC,EAAS,QAAAC,EAAM,QAAAC,MAAY,4BACpC,OAAS,MAAAC,EAAI,oBAAAC,MAAwB,yBACrC,OAAS,kBAAAC,MAAsB,2BAKxB,MAAMC,EAAe,CAAC,CAAE,SAAAC,CAAS,IAAyB,CAC/D,KAAM,CAAE,OAAAC,EAAS,IAAK,EAAIH,EAAe,EACzC,OACEP,EAAC,OAAI,UAAU,4IACb,SAAAA,EAACI,EAAA,CAAK,KAAME,EAAiBG,GAAU,KAAMC,CAAM,EAAG,UAAU,kCAC9D,SAAAT,EAAC,OAAI,UAAU,kHACb,UAAAD,EAACE,EAAA,CACC,OAAQO,EAAS,SACjB,MAAO,IACP,OAAQ,IACR,UAAU,YACV,aAAa,kEACf,EACAR,EAAC,OAAI,UAAU,kCACb,UAAAD,EAACG,EAAA,CACC,GAAG,IACH,KAAMM,GAAU,MAChB,UAAWJ,EAAG,kCAAmC,CAC/C,aAAcI,GAAU,QAAU,OAClC,aAAcA,GAAU,QAAU,MACpC,CAAC,EACH,EACCA,GAAU,MACTT,EAACG,EAAA,CACC,KAAMM,GAAU,KAChB,UAAWJ,EAAG,kCAAmC,CAC/C,aAAcI,GAAU,QAAU,OAClC,aAAcA,GAAU,QAAU,MACpC,CAAC,EACH,GAEJ,GACF,EACF,EACF,CAEJ,EAKaE,EAAiC,CAAC,CAC7C,uBAAAC,EACA,0BAAAC,EACA,SAAAC,CACF,IAIM,CACJ,MAAMC,EACJd,EAAAF,EAAA,CACG,UAAAa,GAAwB,OACvBZ,EAACG,EAAA,CAAK,KAAMS,GAAwB,MAAO,UAAU,kCAAkC,EAExFC,GACCb,EAAC,OACC,UAAWK,EAAG,SAAU,CACrB,aAAeS,CAClB,CAAC,EACD,QAAQ,YACR,KAAK,OACL,MAAM,6BACN,cAAY,OAEZ,SAAAd,EAAC,QACC,EAAE,
|
|
4
|
+
"sourcesContent": ["import { Picture, Text, Link } from '../../components/index.js'\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\n/**\n * \u8D44\u6E90\u4F4D\u9879\u7EC4\u4EF6 - \u684C\u9762\u7AEF\n */\nexport const ResourceItem = ({ resource }: { resource: any }) => {\n const { locale = 'us' } = useAiuiContext()\n return (\n <div className=\"laptop:h-[280px] desktop:h-[224px] lg-desktop:h-[280px] tablet:max-w-none desktop:w-full relative h-[240px] max-w-[358px] overflow-hidden\">\n <Link href={getLocalizedPath(resource?.href, locale)} className=\"no-underline hover:text-current\">\n <div className=\"relative h-full overflow-hidden [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500\">\n <Picture\n source={resource.imageUrl}\n width={404}\n height={280}\n className=\"size-full\"\n imgClassName=\"object-cover h-full hover:scale-105 transition-all duration-300\"\n />\n <div className=\"absolute inset-x-0 bottom-0 p-4\">\n <Text\n as=\"p\"\n html={resource?.title}\n className={cn('text-xl font-bold leading-[1.2]', {\n 'text-white': resource?.theme !== 'dark',\n 'text-black': resource?.theme === 'dark',\n })}\n />\n {resource?.desc && (\n <Text\n html={resource?.desc}\n className={cn('text-sm font-bold leading-[1.4]', {\n 'text-white': resource?.theme !== 'dark',\n 'text-black': resource?.theme === 'dark',\n })}\n />\n )}\n </div>\n </div>\n </Link>\n </div>\n )\n}\n\n/**\n * \u8D44\u6E90\u4F4D\u5B50\u5206\u7C7B\u6807\u9898\u7EC4\u4EF6 - \u79FB\u52A8\u7AEF\n */\nexport const ResourceSubSubCategoryItemComp = ({\n matchResourcesMetadata,\n onSubSubCategoryItemClick,\n expanded,\n}: {\n matchResourcesMetadata: any\n onSubSubCategoryItemClick?: () => void\n expanded?: boolean\n}) => {\n const content = (\n <>\n {matchResourcesMetadata?.label && (\n <Text html={matchResourcesMetadata?.label} className=\"text-sm font-bold leading-[1.4]\" />\n )}\n {onSubSubCategoryItemClick && (\n <svg\n className={cn('size-5', {\n ['rotate-180']: expanded,\n })}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M6.91009 4.41009C7.23553 4.08466 7.76304 4.08466 8.08848 4.41009L13.0885 9.41009C13.4139 9.73553 13.4139 10.263 13.0885 10.5885L8.08848 15.5885C7.76304 15.9139 7.23553 15.9139 6.91009 15.5885C6.58466 15.263 6.58466 14.7355 6.91009 14.4101L11.3209 9.99929L6.91009 5.58848C6.58466 5.26304 6.58466 4.73553 6.91009 4.41009Z\"\n fill=\"#080A0F\"\n />\n </svg>\n )}\n </>\n )\n\n return onSubSubCategoryItemClick ? (\n <button\n className=\"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left\"\n onClick={onSubSubCategoryItemClick}\n aria-expanded={expanded}\n >\n {content}\n </button>\n ) : (\n <div className=\"flex items-center justify-between py-4\">{content}</div>\n )\n}\n\n/**\n * \u8D44\u6E90\u4F4D\u5B50\u5206\u7C7B\u5185\u5BB9\u7EC4\u4EF6 - \u79FB\u52A8\u7AEF\n */\nexport const ResourceSubSubCategoryContentComp = ({ matchResourcesMetadata }: { matchResourcesMetadata: any }) => {\n const { locale = 'us' } = useAiuiContext()\n return (\n <div className=\"tablet:grid tablet:grid-cols-2 flex grid-cols-1 flex-col gap-4\">\n {!!matchResourcesMetadata?.resources?.length &&\n matchResourcesMetadata?.resources?.map((resourceItem: any, rIndex: number) => (\n <Link\n key={`resourceItem-${rIndex}`}\n href={getLocalizedPath(resourceItem?.href, locale)}\n className=\"no-underline hover:text-current\"\n >\n <div className=\"laptop:h-[280px] tablet:max-w-none relative h-[240px] max-w-[358px]\">\n <div className=\"relative h-full overflow-hidden\">\n <Picture\n source={resourceItem.imageUrl}\n width={404}\n height={280}\n className=\"size-full\"\n imgClassName=\"object-cover h-full hover:scale-105 transition-all duration-300\"\n />\n <div className=\"absolute inset-x-0 bottom-0 p-4\">\n <Text\n html={resourceItem?.title}\n as=\"p\"\n className={cn('text-xl font-bold leading-[1.2]', {\n 'text-white': resourceItem?.theme !== 'dark',\n 'text-black': resourceItem?.theme === 'dark',\n })}\n />\n {resourceItem?.desc && (\n <Text\n html={resourceItem?.desc}\n className={cn('text-sm font-bold leading-[1.4]', {\n 'text-white': resourceItem?.theme !== 'dark',\n 'text-black': resourceItem?.theme === 'dark',\n })}\n />\n )}\n </div>\n </div>\n </div>\n </Link>\n ))}\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAaU,OA6CN,YAAAA,EA7CM,OAAAC,EAOA,QAAAC,MAPA,oBAbV,OAAS,WAAAC,EAAS,QAAAC,EAAM,QAAAC,MAAY,4BACpC,OAAS,MAAAC,EAAI,oBAAAC,MAAwB,yBACrC,OAAS,kBAAAC,MAAsB,2BAKxB,MAAMC,EAAe,CAAC,CAAE,SAAAC,CAAS,IAAyB,CAC/D,KAAM,CAAE,OAAAC,EAAS,IAAK,EAAIH,EAAe,EACzC,OACEP,EAAC,OAAI,UAAU,4IACb,SAAAA,EAACI,EAAA,CAAK,KAAME,EAAiBG,GAAU,KAAMC,CAAM,EAAG,UAAU,kCAC9D,SAAAT,EAAC,OAAI,UAAU,kHACb,UAAAD,EAACE,EAAA,CACC,OAAQO,EAAS,SACjB,MAAO,IACP,OAAQ,IACR,UAAU,YACV,aAAa,kEACf,EACAR,EAAC,OAAI,UAAU,kCACb,UAAAD,EAACG,EAAA,CACC,GAAG,IACH,KAAMM,GAAU,MAChB,UAAWJ,EAAG,kCAAmC,CAC/C,aAAcI,GAAU,QAAU,OAClC,aAAcA,GAAU,QAAU,MACpC,CAAC,EACH,EACCA,GAAU,MACTT,EAACG,EAAA,CACC,KAAMM,GAAU,KAChB,UAAWJ,EAAG,kCAAmC,CAC/C,aAAcI,GAAU,QAAU,OAClC,aAAcA,GAAU,QAAU,MACpC,CAAC,EACH,GAEJ,GACF,EACF,EACF,CAEJ,EAKaE,EAAiC,CAAC,CAC7C,uBAAAC,EACA,0BAAAC,EACA,SAAAC,CACF,IAIM,CACJ,MAAMC,EACJd,EAAAF,EAAA,CACG,UAAAa,GAAwB,OACvBZ,EAACG,EAAA,CAAK,KAAMS,GAAwB,MAAO,UAAU,kCAAkC,EAExFC,GACCb,EAAC,OACC,UAAWK,EAAG,SAAU,CACrB,aAAeS,CAClB,CAAC,EACD,QAAQ,YACR,KAAK,OACL,MAAM,6BACN,cAAY,OAEZ,SAAAd,EAAC,QACC,EAAE,kUACF,KAAK,UACP,EACF,GAEJ,EAGF,OAAOa,EACLb,EAAC,UACC,UAAU,iGACV,QAASa,EACT,gBAAeC,EAEd,SAAAC,EACH,EAEAf,EAAC,OAAI,UAAU,yCAA0C,SAAAe,EAAQ,CAErE,EAKaC,EAAoC,CAAC,CAAE,uBAAAJ,CAAuB,IAAuC,CAChH,KAAM,CAAE,OAAAF,EAAS,IAAK,EAAIH,EAAe,EACzC,OACEP,EAAC,OAAI,UAAU,iEACZ,UAAC,CAACY,GAAwB,WAAW,QACpCA,GAAwB,WAAW,IAAI,CAACK,EAAmBC,IACzDlB,EAACI,EAAA,CAEC,KAAME,EAAiBW,GAAc,KAAMP,CAAM,EACjD,UAAU,kCAEV,SAAAV,EAAC,OAAI,UAAU,sEACb,SAAAC,EAAC,OAAI,UAAU,kCACb,UAAAD,EAACE,EAAA,CACC,OAAQe,EAAa,SACrB,MAAO,IACP,OAAQ,IACR,UAAU,YACV,aAAa,kEACf,EACAhB,EAAC,OAAI,UAAU,kCACb,UAAAD,EAACG,EAAA,CACC,KAAMc,GAAc,MACpB,GAAG,IACH,UAAWZ,EAAG,kCAAmC,CAC/C,aAAcY,GAAc,QAAU,OACtC,aAAcA,GAAc,QAAU,MACxC,CAAC,EACH,EACCA,GAAc,MACbjB,EAACG,EAAA,CACC,KAAMc,GAAc,KACpB,UAAWZ,EAAG,kCAAmC,CAC/C,aAAcY,GAAc,QAAU,OACtC,aAAcA,GAAc,QAAU,MACxC,CAAC,EACH,GAEJ,GACF,EACF,GAjCK,gBAAgBC,CAAM,EAkC7B,CACD,EACL,CAEJ",
|
|
6
6
|
"names": ["Fragment", "jsx", "jsxs", "Picture", "Text", "Link", "cn", "getLocalizedPath", "useAiuiContext", "ResourceItem", "resource", "locale", "ResourceSubSubCategoryItemComp", "matchResourcesMetadata", "onSubSubCategoryItemClick", "expanded", "content", "ResourceSubSubCategoryContentComp", "resourceItem", "rIndex"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r,jsxs as i}from"react/jsx-runtime";import R,{useCallback as v,useEffect as F,useMemo as L,useRef as $,useState as S}from"react";import{Button as h,Container as D,Text as w}from"../../components/index.js";import{cn as m,getLocalizedPath as N}from"../../helpers/utils.js";import{DownArrow as E}from"./icons/index.js";import{useNavContext as z}from"./NavProvider.js";import{ResourceItem as O}from"./ResourceItem.js";import{useAiuiContext as B}from"../AiuiProvider/index.js";const I=R.memo(({resourceCategoriesMetadata:s,resourcesMetadata:u})=>{const{onSidebarNavClick:f}=z(),[c,b]=S([]),[p
|
|
1
|
+
import{jsx as r,jsxs as i}from"react/jsx-runtime";import R,{useCallback as v,useEffect as F,useMemo as L,useRef as $,useState as S}from"react";import{Button as h,Container as D,Text as w}from"../../components/index.js";import{cn as m,getLocalizedPath as N}from"../../helpers/utils.js";import{DownArrow as E}from"./icons/index.js";import{useNavContext as z}from"./NavProvider.js";import{ResourceItem as O}from"./ResourceItem.js";import{useAiuiContext as B}from"../AiuiProvider/index.js";const I=R.memo(({resourceCategoriesMetadata:s,resourcesMetadata:u})=>{const{onSidebarNavClick:f}=z(),[c,b]=S([]),[d,p]=S(-1),C=$(null),{locale:y="us"}=B(),g=v(()=>{const e=s?.subcategories;if(!e?.length)return;const o=e.findIndex(t=>!!t?.subSubCategories),n=e.findIndex(t=>!t?.subSubCategories),a=e.map((t,l)=>({index:l,open:o===l||n===l}));b(a)},[s]);F(()=>{g()},[g]);const x=L(()=>{const e=s?.subcategories?.[c?.find(n=>n.open)?.index||0],o=u?.find(n=>n?.label?.toLowerCase()===e?.label?.toLowerCase())||{};if(e?.subSubCategories){const n=e?.subSubCategories?.[d];return u?.find(t=>t?.label?.toLowerCase()===n?.label?.toLowerCase())||{}}else return o},[s,c,d,u]),k=v((e,o)=>{o?.subSubCategories?.length>0?p(0):p(-1),b(n=>n.map((a,t)=>({...a,open:t===e?!a.open:!1})))},[]),A=(e,o)=>{b(n=>n.map(a=>a.index===e?{...a,open:!0}:{...a,open:!1})),p(o)};return i(D,{childClassName:"lg-desktop:gap-12 flex bg-white gap-8",children:[i("div",{className:"lg-desktop:basis-[356px] flex basis-[284px] flex-col gap-4 py-4",style:{userSelect:"none"},ref:C,children:[r("div",{className:"desktop:h-[416px] flex flex-col overflow-y-auto",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:s?.subcategories?.map((e,o)=>{const n=Array.isArray(e?.subSubCategories)&&e?.subSubCategories?.length>0,a=c?.find(t=>t.index===o)?.open;return i("div",{children:[i("button",{className:m("rounded-sidebar-shelf flex w-full cursor-pointer items-center justify-between border-0 bg-transparent text-left",{"bg-[#F5F5F7]":!n&&a}),onClick:()=>{k(o,e),f?.(e,o)},"aria-expanded":n?a:void 0,"aria-haspopup":n?"true":void 0,children:[r(w,{html:e.label,className:"p-4 text-sm font-bold leading-[1.4]"}),n&&r(E,{"aria-hidden":"true",className:m("size-4",{"rotate-180":a})})]}),a&&r("div",{className:"flex flex-col",role:"menu",children:e.subSubCategories?.map((t,l)=>r("button",{onClick:()=>{A(o,l),f?.(t,l)},className:m("rounded-sidebar-shelf w-full cursor-pointer border-0 bg-transparent px-6 py-4 text-left leading-none hover:bg-[#F5F5F7]",{"bg-[#F5F5F7]":d===l}),role:"menuitem","aria-label":t.label,children:r(w,{html:t.label,className:"text-sm font-bold leading-[1.4] text-[#4A4C56]"})},`subSubItem-${o}-${l}`))})]},`subcategoryItem-${o}`)})}),s&&r("div",{className:"flex",children:i("div",{className:"flex flex-col gap-4",children:[s?.primary&&r(h,{as:"a",href:`${N(s?.primary?.url,y)}?ref=${s?.primary?.label}_shopall`,variant:"primary",size:"lg",className:"lg-desktop:text-base text-sm",children:s?.primary?.label}),s?.secondary&&r(h,{as:"a",href:N(s?.secondary?.url,y),variant:"link",size:"lg",className:"lg-desktop:text-base justify-start !p-0 text-sm",children:s?.secondary?.label})]})})]}),r("div",{className:"desktop:h-[509px] flex-1 overflow-y-auto py-4",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:r("div",{className:"grid grid-cols-3 gap-4 ",children:Array.isArray(x?.resources)?x.resources.map((e,o)=>r(O,{resource:e},`resourceItem-${o}`)):null})})]})});I.displayName="ResourceSidebarDropdown";export{I as ResourceSidebarDropdown};
|
|
2
2
|
//# sourceMappingURL=ResourceSidebarDropdown.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/HeaderNavigation/ResourceSidebarDropdown.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { Button, Container, Text } from '../../components/index.js'\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\nimport { DownArrow } from './icons/index.js'\nimport { useNavContext } from './NavProvider.js'\nimport { ResourceItem } from './ResourceItem.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\n/**\n * \u8D44\u6E90\u4F4D\u4FA7\u8FB9\u680F\u4E0B\u62C9\n * @param categoriesItem \u5206\u7C7B\u9879\n */\nexport const ResourceSidebarDropdown = React.memo(\n ({ resourceCategoriesMetadata, resourcesMetadata }: { resourceCategoriesMetadata: any; resourcesMetadata: any }) => {\n const { onSidebarNavClick } = useNavContext()\n const [expandedSubcategory, setExpandedSubcategory] = useState<{ index: number; open: boolean }[]>([])\n const [activeSubSubcategoryIndex, setActiveSubSubcategoryIndex] = useState(-1)\n const resourceDropdownRef = useRef<HTMLDivElement>(null)\n const { locale = 'us' } = useAiuiContext()\n\n const initExpandedSubcategory = useCallback(() => {\n const subcategories = resourceCategoriesMetadata?.subcategories\n if (!subcategories?.length) return\n\n const withSubSubCategoriesIndex = subcategories.findIndex((item: any) => !!item?.subSubCategories)\n const withoutSubSubCategoriesIndex = subcategories.findIndex((item: any) => !item?.subSubCategories)\n\n // \u521B\u5EFA\u5C55\u5F00\u72B6\u6001\u6570\u7EC4\n const expandedStates = subcategories.map((_: any, index: number) => ({\n index,\n open: withSubSubCategoriesIndex === index || withoutSubSubCategoriesIndex === index,\n }))\n\n setExpandedSubcategory(expandedStates)\n }, [resourceCategoriesMetadata])\n\n useEffect(() => {\n initExpandedSubcategory()\n }, [initExpandedSubcategory])\n\n // \u901A\u8FC7categoriesMetadata\u7684subSubCategories\u7684label\u4E0Eresources\u7684label\u5339\u914D\n const matchResourcesMetadata = useMemo(() => {\n const subCategory =\n resourceCategoriesMetadata?.subcategories?.[expandedSubcategory?.find(item => item.open)?.index || 0]\n const currentResourcesMetadata =\n resourcesMetadata?.find((item: any) => item?.label?.toLowerCase() === subCategory?.label?.toLowerCase()) || {}\n\n if (subCategory?.subSubCategories) {\n const activeSubSubcategory = subCategory?.subSubCategories?.[activeSubSubcategoryIndex]\n const currentActiveResourcesMetadata =\n resourcesMetadata?.find(\n (item: any) => item?.label?.toLowerCase() === activeSubSubcategory?.label?.toLowerCase()\n ) || {}\n return currentActiveResourcesMetadata\n } else {\n return currentResourcesMetadata\n }\n }, [resourceCategoriesMetadata, expandedSubcategory, activeSubSubcategoryIndex, resourcesMetadata])\n\n const handleSubcategoryOpen = useCallback((index: number, subcategoryItem: any) => {\n subcategoryItem?.subSubCategories?.length > 0 ? setActiveSubSubcategoryIndex(0) : setActiveSubSubcategoryIndex(-1)\n\n setExpandedSubcategory(prev => prev.map((item, i) => ({ ...item, open: i === index ? !item.open : false })))\n }, [])\n\n const handleSubSubcategoryOpen = (index: number, subSubindex: number) => {\n setExpandedSubcategory(prev =>\n prev.map(item => (item.index === index ? { ...item, open: true } : { ...item, open: false }))\n )\n setActiveSubSubcategoryIndex(subSubindex)\n }\n\n return (\n <Container childClassName=\"lg-desktop:gap-12 flex bg-white gap-8\">\n <div\n className=\"lg-desktop:basis-[356px] flex basis-[284px] flex-col gap-4 py-4\"\n style={{\n userSelect: 'none',\n }}\n ref={resourceDropdownRef}\n >\n <div\n className=\"desktop:h-[416px] flex flex-col overflow-y-auto\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n {resourceCategoriesMetadata?.subcategories?.map((subItem: any, index: number) => {\n const hasSubSubCategory =\n Array.isArray(subItem?.subSubCategories) && subItem?.subSubCategories?.length > 0\n const isExpanded = expandedSubcategory?.find(item => item.index === index)?.open\n return (\n <div key={`subcategoryItem-${index}`}>\n <button\n className={cn(\n 'flex w-full cursor-pointer items-center justify-between border-0 bg-transparent text-left',\n {\n 'bg-[#F5F5F7]': !hasSubSubCategory && isExpanded,\n }\n )}\n onClick={() => {\n handleSubcategoryOpen(index, subItem)\n onSidebarNavClick?.(subItem, index)\n }}\n aria-expanded={hasSubSubCategory ? isExpanded : undefined}\n aria-haspopup={hasSubSubCategory ? 'true' : undefined}\n >\n <Text html={subItem.label} className=\"p-4 text-sm font-bold leading-[1.4]\" />\n {hasSubSubCategory && (\n <DownArrow\n aria-hidden=\"true\"\n className={cn('size-4', {\n ['rotate-180']: isExpanded,\n })}\n />\n )}\n </button>\n {isExpanded && (\n <div className=\"flex flex-col\" role=\"menu\">\n {subItem.subSubCategories?.map((subSubItem: any, subSubindex: number) => (\n <button\n onClick={() => {\n handleSubSubcategoryOpen(index, subSubindex)\n onSidebarNavClick?.(subSubItem, subSubindex)\n }}\n key={`subSubItem-${index}-${subSubindex}`}\n className={cn(\n 'w-full cursor-pointer border-0 bg-transparent px-6 py-4 text-left hover:bg-[#F5F5F7]',\n {\n 'bg-[#F5F5F7]': activeSubSubcategoryIndex === subSubindex,\n }\n )}\n role=\"menuitem\"\n aria-label={subSubItem.label}\n >\n <Text html={subSubItem.label} className=\"text-sm font-bold leading-[1.4] text-[#4A4C56]\" />\n </button>\n ))}\n </div>\n )}\n </div>\n )\n })}\n </div>\n {resourceCategoriesMetadata && (\n <div className=\"flex\">\n <div className=\"flex flex-col gap-4\">\n {resourceCategoriesMetadata?.primary && (\n <Button\n as=\"a\"\n href={`${getLocalizedPath(resourceCategoriesMetadata?.primary?.url, locale)}?ref=${resourceCategoriesMetadata?.primary?.label}_shopall`}\n variant=\"primary\"\n size=\"lg\"\n className=\"lg-desktop:text-base text-sm\"\n >\n {resourceCategoriesMetadata?.primary?.label}\n </Button>\n )}\n {resourceCategoriesMetadata?.secondary && (\n <Button\n as=\"a\"\n href={getLocalizedPath(resourceCategoriesMetadata?.secondary?.url, locale)}\n variant=\"link\"\n size=\"lg\"\n className=\"lg-desktop:text-base justify-start !p-0 text-sm\"\n >\n {resourceCategoriesMetadata?.secondary?.label}\n </Button>\n )}\n </div>\n </div>\n )}\n </div>\n <div\n className=\"desktop:h-[509px] flex-1 overflow-y-auto py-4\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n <div className=\"grid grid-cols-3 gap-4 \">\n {Array.isArray(matchResourcesMetadata?.resources)\n ? matchResourcesMetadata.resources.map((resourceItem: any, resourceIndex: number) => (\n <ResourceItem key={`resourceItem-${resourceIndex}`} resource={resourceItem} />\n ))\n : null}\n </div>\n </div>\n </Container>\n )\n }\n)\n\nResourceSidebarDropdown.displayName = 'ResourceSidebarDropdown'\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { Button, Container, Text } from '../../components/index.js'\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\nimport { DownArrow } from './icons/index.js'\nimport { useNavContext } from './NavProvider.js'\nimport { ResourceItem } from './ResourceItem.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\n/**\n * \u8D44\u6E90\u4F4D\u4FA7\u8FB9\u680F\u4E0B\u62C9\n * @param categoriesItem \u5206\u7C7B\u9879\n */\nexport const ResourceSidebarDropdown = React.memo(\n ({ resourceCategoriesMetadata, resourcesMetadata }: { resourceCategoriesMetadata: any; resourcesMetadata: any }) => {\n const { onSidebarNavClick } = useNavContext()\n const [expandedSubcategory, setExpandedSubcategory] = useState<{ index: number; open: boolean }[]>([])\n const [activeSubSubcategoryIndex, setActiveSubSubcategoryIndex] = useState(-1)\n const resourceDropdownRef = useRef<HTMLDivElement>(null)\n const { locale = 'us' } = useAiuiContext()\n\n const initExpandedSubcategory = useCallback(() => {\n const subcategories = resourceCategoriesMetadata?.subcategories\n if (!subcategories?.length) return\n\n const withSubSubCategoriesIndex = subcategories.findIndex((item: any) => !!item?.subSubCategories)\n const withoutSubSubCategoriesIndex = subcategories.findIndex((item: any) => !item?.subSubCategories)\n\n // \u521B\u5EFA\u5C55\u5F00\u72B6\u6001\u6570\u7EC4\n const expandedStates = subcategories.map((_: any, index: number) => ({\n index,\n open: withSubSubCategoriesIndex === index || withoutSubSubCategoriesIndex === index,\n }))\n\n setExpandedSubcategory(expandedStates)\n }, [resourceCategoriesMetadata])\n\n useEffect(() => {\n initExpandedSubcategory()\n }, [initExpandedSubcategory])\n\n // \u901A\u8FC7categoriesMetadata\u7684subSubCategories\u7684label\u4E0Eresources\u7684label\u5339\u914D\n const matchResourcesMetadata = useMemo(() => {\n const subCategory =\n resourceCategoriesMetadata?.subcategories?.[expandedSubcategory?.find(item => item.open)?.index || 0]\n const currentResourcesMetadata =\n resourcesMetadata?.find((item: any) => item?.label?.toLowerCase() === subCategory?.label?.toLowerCase()) || {}\n\n if (subCategory?.subSubCategories) {\n const activeSubSubcategory = subCategory?.subSubCategories?.[activeSubSubcategoryIndex]\n const currentActiveResourcesMetadata =\n resourcesMetadata?.find(\n (item: any) => item?.label?.toLowerCase() === activeSubSubcategory?.label?.toLowerCase()\n ) || {}\n return currentActiveResourcesMetadata\n } else {\n return currentResourcesMetadata\n }\n }, [resourceCategoriesMetadata, expandedSubcategory, activeSubSubcategoryIndex, resourcesMetadata])\n\n const handleSubcategoryOpen = useCallback((index: number, subcategoryItem: any) => {\n subcategoryItem?.subSubCategories?.length > 0 ? setActiveSubSubcategoryIndex(0) : setActiveSubSubcategoryIndex(-1)\n\n setExpandedSubcategory(prev => prev.map((item, i) => ({ ...item, open: i === index ? !item.open : false })))\n }, [])\n\n const handleSubSubcategoryOpen = (index: number, subSubindex: number) => {\n setExpandedSubcategory(prev =>\n prev.map(item => (item.index === index ? { ...item, open: true } : { ...item, open: false }))\n )\n setActiveSubSubcategoryIndex(subSubindex)\n }\n\n return (\n <Container childClassName=\"lg-desktop:gap-12 flex bg-white gap-8\">\n <div\n className=\"lg-desktop:basis-[356px] flex basis-[284px] flex-col gap-4 py-4\"\n style={{\n userSelect: 'none',\n }}\n ref={resourceDropdownRef}\n >\n <div\n className=\"desktop:h-[416px] flex flex-col overflow-y-auto\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n {resourceCategoriesMetadata?.subcategories?.map((subItem: any, index: number) => {\n const hasSubSubCategory =\n Array.isArray(subItem?.subSubCategories) && subItem?.subSubCategories?.length > 0\n const isExpanded = expandedSubcategory?.find(item => item.index === index)?.open\n return (\n <div key={`subcategoryItem-${index}`}>\n <button\n className={cn(\n 'rounded-sidebar-shelf flex w-full cursor-pointer items-center justify-between border-0 bg-transparent text-left',\n {\n 'bg-[#F5F5F7]': !hasSubSubCategory && isExpanded,\n }\n )}\n onClick={() => {\n handleSubcategoryOpen(index, subItem)\n onSidebarNavClick?.(subItem, index)\n }}\n aria-expanded={hasSubSubCategory ? isExpanded : undefined}\n aria-haspopup={hasSubSubCategory ? 'true' : undefined}\n >\n <Text html={subItem.label} className=\"p-4 text-sm font-bold leading-[1.4]\" />\n {hasSubSubCategory && (\n <DownArrow\n aria-hidden=\"true\"\n className={cn('size-4', {\n ['rotate-180']: isExpanded,\n })}\n />\n )}\n </button>\n {isExpanded && (\n <div className=\"flex flex-col\" role=\"menu\">\n {subItem.subSubCategories?.map((subSubItem: any, subSubindex: number) => (\n <button\n onClick={() => {\n handleSubSubcategoryOpen(index, subSubindex)\n onSidebarNavClick?.(subSubItem, subSubindex)\n }}\n key={`subSubItem-${index}-${subSubindex}`}\n className={cn(\n 'rounded-sidebar-shelf w-full cursor-pointer border-0 bg-transparent px-6 py-4 text-left leading-none hover:bg-[#F5F5F7]',\n {\n 'bg-[#F5F5F7]': activeSubSubcategoryIndex === subSubindex,\n }\n )}\n role=\"menuitem\"\n aria-label={subSubItem.label}\n >\n <Text html={subSubItem.label} className=\"text-sm font-bold leading-[1.4] text-[#4A4C56]\" />\n </button>\n ))}\n </div>\n )}\n </div>\n )\n })}\n </div>\n {resourceCategoriesMetadata && (\n <div className=\"flex\">\n <div className=\"flex flex-col gap-4\">\n {resourceCategoriesMetadata?.primary && (\n <Button\n as=\"a\"\n href={`${getLocalizedPath(resourceCategoriesMetadata?.primary?.url, locale)}?ref=${resourceCategoriesMetadata?.primary?.label}_shopall`}\n variant=\"primary\"\n size=\"lg\"\n className=\"lg-desktop:text-base text-sm\"\n >\n {resourceCategoriesMetadata?.primary?.label}\n </Button>\n )}\n {resourceCategoriesMetadata?.secondary && (\n <Button\n as=\"a\"\n href={getLocalizedPath(resourceCategoriesMetadata?.secondary?.url, locale)}\n variant=\"link\"\n size=\"lg\"\n className=\"lg-desktop:text-base justify-start !p-0 text-sm\"\n >\n {resourceCategoriesMetadata?.secondary?.label}\n </Button>\n )}\n </div>\n </div>\n )}\n </div>\n <div\n className=\"desktop:h-[509px] flex-1 overflow-y-auto py-4\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n <div className=\"grid grid-cols-3 gap-4 \">\n {Array.isArray(matchResourcesMetadata?.resources)\n ? matchResourcesMetadata.resources.map((resourceItem: any, resourceIndex: number) => (\n <ResourceItem key={`resourceItem-${resourceIndex}`} resource={resourceItem} />\n ))\n : null}\n </div>\n </div>\n </Container>\n )\n }\n)\n\nResourceSidebarDropdown.displayName = 'ResourceSidebarDropdown'\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["jsx", "jsxs", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "Button", "Container", "Text", "cn", "getLocalizedPath", "DownArrow", "useNavContext", "ResourceItem", "useAiuiContext", "ResourceSidebarDropdown", "resourceCategoriesMetadata", "resourcesMetadata", "onSidebarNavClick", "expandedSubcategory", "setExpandedSubcategory", "activeSubSubcategoryIndex", "setActiveSubSubcategoryIndex", "resourceDropdownRef", "locale", "initExpandedSubcategory", "subcategories", "withSubSubCategoriesIndex", "item", "withoutSubSubCategoriesIndex", "expandedStates", "_", "index", "matchResourcesMetadata", "subCategory", "currentResourcesMetadata", "activeSubSubcategory", "handleSubcategoryOpen", "subcategoryItem", "prev", "i", "handleSubSubcategoryOpen", "subSubindex", "subItem", "hasSubSubCategory", "isExpanded", "subSubItem", "resourceItem", "resourceIndex"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as a,jsxs as i}from"react/jsx-runtime";import A,{useCallback as $,useEffect as z,useMemo as w,useRef as j,useState as L}from"react";import{Button as C,Container as B,Text as u,Link as F,Heading as E,Picture as O}from"../../components/index.js";import{cn as
|
|
1
|
+
import{Fragment as V,jsx as a,jsxs as i}from"react/jsx-runtime";import A,{useCallback as $,useEffect as z,useMemo as w,useRef as j,useState as L}from"react";import{Button as C,Container as B,Text as u,Link as F,Heading as E,Picture as O}from"../../components/index.js";import{cn as y,atobID as R,getLocalizedPath as v}from"../../helpers/utils.js";import{DownArrow as W}from"./icons/index.js";import{useNavContext as D}from"./NavProvider.js";import{useAiuiContext as P}from"../AiuiProvider/index.js";const H=A.memo(({sidebarCategoriesMetadata:l,seriesMetadata:b})=>{const{buildProps:f,onSidebarNavClick:N}=D(),{locale:p="us"}=P(),[g,x]=L([]),[c,m]=L(-1),k=j(null),h=$(()=>{const t=l?.subcategories;if(!t?.length)return;const s=t.findIndex(o=>!!o?.subSubCategories),n=t.findIndex(o=>!o?.subSubCategories),r=t.map((o,d)=>({index:d,open:s===d||n===d}));x(r)},[l]);z(()=>{h()},[h]);const e=w(()=>{const t=l?.subcategories?.[g?.find(n=>n.open)?.index||0],s=b?.find(n=>n?.label?.toLowerCase()===t?.label?.toLowerCase())||{};if(t?.collections){const n=f?.categories?.[t?.collections]||{};return{label:s?.label,isCollection:!0,banner:s?.banner,primary:s?.primary,series:[{products:n?.products}]}}else if(t?.subSubCategories){const n=t?.subSubCategories?.[c],r=b?.find(o=>o?.label?.toLowerCase()===n?.label?.toLowerCase())||{};if(n?.collections){const o=f?.categories?.[n?.collections]||{};return{label:r?.label,isCollection:!0,banner:r?.banner,primary:r?.primary,series:[{products:o?.products}]}}else return r}else return s},[l,g,c,b,f]),S=$((t,s)=>{const n=s?.subSubCategories?.length>0;m(n?0:-1),x(r=>r.map((o,d)=>({...o,open:d===t?!o.open:n?!1:o.open})))},[]),_=(t,s)=>{x(n=>n.map(r=>r.index===t?{...r,open:!0}:{...r,open:!1})),m(s)};return i(B,{childClassName:"lg-desktop:gap-12 flex bg-white gap-8",children:[i("div",{className:"lg-desktop:basis-[356px] flex basis-[284px] flex-col gap-4 py-4",style:{userSelect:"none"},ref:k,children:[a("div",{className:"desktop:h-[416px] flex flex-col overflow-y-auto",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:l?.subcategories?.map((t,s)=>{const n=Array.isArray(t?.subSubCategories)&&t?.subSubCategories?.length>0,r=g?.find(o=>o.index===s)?.open;return i("div",{children:[i("button",{className:y("rounded-sidebar-shelf flex w-full cursor-pointer items-center justify-between border-0 bg-transparent text-left",{"bg-[#F5F5F7]":!n&&r}),onClick:()=>{S(s,t),N?.(t,s)},"aria-expanded":n?r:void 0,"aria-haspopup":n?"true":void 0,children:[a(u,{html:t.label,className:"p-4 text-sm font-bold leading-[1.4]"}),n&&a(W,{"aria-hidden":"true",className:y("size-4",{"rotate-180":r})})]}),r&&a("div",{className:"flex flex-col",role:"menu",children:t.subSubCategories?.map((o,d)=>a("button",{onClick:()=>{_(s,d),N?.(o,d)},className:y("rounded-sidebar-shelf w-full cursor-pointer border-0 bg-transparent px-6 py-4 text-left leading-none hover:bg-[#F5F5F7]",{"bg-[#F5F5F7]":c===d}),role:"menuitem","aria-label":o.label,children:a(u,{html:o.label,className:"text-sm font-bold leading-[1.4] text-[#4A4C56]"})},`subSubItem-${s}-${d}`))})]},`${t?.label||""}subcategoryItem-${s}`)})}),l&&a("div",{className:"flex",children:i("div",{className:"flex flex-col gap-4",children:[l?.primary&&a(C,{as:"a",href:`${v(l?.primary?.url,p)}?ref=${l?.primary?.label}_shopall`,variant:"primary",size:"lg",className:"lg-desktop:text-base text-sm",children:l?.primary?.label}),l?.secondary&&a(C,{as:"a",href:l?.secondary?.url,variant:"link",size:"lg",iconClassName:"size-4",className:"lg-desktop:text-base justify-start !p-0 text-sm",children:l?.secondary?.label})]})})]}),i("div",{className:"flex-1 py-4",children:[Reflect.ownKeys(e).length>0&&i("div",{className:"mb-4 flex items-center justify-between",children:[(()=>{const t=i(V,{children:[a(u,{html:e?.label,className:"lg-desktop:text-2xl text-xl font-bold leading-[1.4]"}),e?.primary&&!e?.primary?.hide&&a(u,{className:"lg-desktop:text-base text-sm font-bold leading-[1.2]",html:e?.primary?.label})]});return e?.primary?.url?a(C,{as:"a",href:`${v(e?.primary?.url,p)}?ref=${e?.label}_viewmore`,variant:"link",size:"lg",iconClassName:"size-4",className:"flex items-center justify-start gap-2 !p-0 no-underline",children:t}):a("div",{className:"flex items-center gap-2",children:t})})(),l?.guide?.label&&a(F,{href:v(l?.guide?.url,p),className:"lg-desktop:text-base text-sm leading-[1.2] text-[#6D6D6F]",children:l?.guide?.label})]}),a("div",{className:"flex h-[426px] flex-col gap-4 overflow-y-auto",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:e?.series?.map((t,s)=>i("div",{children:[t.label&&a(u,{html:t.label,as:"p",className:"mb-2 text-sm font-bold leading-[1.4] text-[#6D6D6F]"}),i("div",{className:"grid grid-cols-3 gap-4",children:[!!e?.banner&&a(F,{asChild:!e?.banner?.href,href:v(e?.banner?.href,p),children:i("div",{className:"relative [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500",children:[a(O,{source:e?.banner?.imageUrl,className:"laptop:h-[120px] h-[114px]",imgClassName:"object-cover h-full"}),i("div",{className:"absolute inset-x-0 bottom-0 p-4",children:[a(E,{size:2,html:e?.banner?.title||"Buy in Guide",className:y("font-bold text-white",{"text-black":e?.banner?.theme==="dark"})}),a(u,{html:e?.banner?.desc||"20.000mAh",className:y("text-sm font-bold text-white",{"text-black":e?.banner?.theme==="dark"})})]})]})}),t.products?.map((n,r)=>a(T,{seriesLabel:e?.label,product:n,isCollection:e?.isCollection},`seriesProductItem-${t?.label||""}-${s}-${r}`))]})]},`seriesItem-${t?.label||""}-${s}`))})]})]})});H.displayName="SidebarDropdown";const T=({product:l,isCollection:b,position:f,seriesLabel:N})=>{const{locale:p="us"}=P(),{buildProps:g,onSeriesProductClick:x}=D();let c=b?l:g?.products?.find(e=>e.handle===l.handle);const m=c?.variants?.find(e=>e.sku===l.sku)||c?.variants?.[0],k=w(()=>`${v(`/products/${c?.handle}`,p)}?variant=${R(m?.id)}`,[c?.handle,m?.id,p]),h=w(()=>c?.tags?.filter?.(e=>e?.startsWith?.("CLtag"))?.map?.(e=>e?.replace?.("CLtag:",""))?.slice?.(0,2),[c?.tags]);return m?.availableForSale?a(F,{href:k,onClick:e=>{e.preventDefault(),window.open(k,"_self"),x?.(c,f||0,N)},className:"no-underline hover:text-current",children:i("div",{className:"rounded-sidebar-shelf flex shrink-0 items-center gap-4 bg-[#F5F5F7] px-4 py-3 [&_img]:hover:scale-110 [&_img]:hover:duration-500",children:[a("div",{className:"shrink-0",children:a("img",{src:`${m?.image?.url||l?.images?.[0]?.url}&width=200`,loading:"lazy",alt:c?.title||l?.name,width:90,height:90,className:"size-[96px] object-contain"})}),i("div",{className:"relative",children:[a("div",{className:"flex gap-1",children:Array.isArray(h)&&h?.map((e,S)=>a(u,{as:"p",html:e,className:"text-brand-0 mb-1 inline-block h-[24px] whitespace-nowrap rounded-full border-[1.6px] border-[#00BEFA] px-[6px] text-xs font-bold !leading-[22px]"},S))}),a(u,{className:"lg-desktop:h-[44px] lg-desktop:text-base line-clamp-2 h-[40px] text-sm font-bold leading-[1.4]",html:l?.custom_name||m?.metafields?.infos?.page_short_title||c?.title}),l?.desc&&a(u,{as:"p",html:l?.desc,className:"lg-desktop:text-sm mt-1 line-clamp-1 text-xs font-bold leading-[1.4] text-[#6D6D6F]"})]})]})}):null};export{T as SeriesProductItem,H as SidebarDropdown};
|
|
2
2
|
//# sourceMappingURL=SidebarDropdown.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/HeaderNavigation/SidebarDropdown.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { Button, Container, Text, Link, Heading, Picture } from '../../components/index.js'\nimport { cn, atobID, getLocalizedPath } from '../../helpers/utils.js'\nimport { DownArrow } from './icons/index.js'\nimport { useNavContext } from './NavProvider.js'\nimport type { Product, ProductVariant } from '../../cpn-components/CpnProductCard/types.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\n/**\n * \u4FA7\u8FB9\u680F\u4E0B\u62C9\n * @param categoriesItem \u5206\u7C7B\u9879\n */\nexport const SidebarDropdown = React.memo(\n ({ sidebarCategoriesMetadata, seriesMetadata }: { sidebarCategoriesMetadata: any; seriesMetadata: any }) => {\n const { buildProps, onSidebarNavClick } = useNavContext()\n const { locale = 'us' } = useAiuiContext()\n const [expandedSubcategory, setExpandedSubcategory] = useState<{ index: number; open: boolean }[]>([])\n const [activeSubSubcategoryIndex, setActiveSubSubcategoryIndex] = useState(-1)\n const sidebarDropdownRef = useRef<HTMLDivElement>(null)\n\n const initExpandedSubcategory = useCallback(() => {\n const subcategories = sidebarCategoriesMetadata?.subcategories\n if (!subcategories?.length) return\n\n const withSubSubCategoriesIndex = subcategories.findIndex((item: any) => !!item?.subSubCategories)\n const withoutSubSubCategoriesIndex = subcategories.findIndex((item: any) => !item?.subSubCategories)\n\n // \u521B\u5EFA\u5C55\u5F00\u72B6\u6001\u6570\u7EC4\n const expandedStates = subcategories.map((_: any, index: number) => ({\n index,\n open: withSubSubCategoriesIndex === index || withoutSubSubCategoriesIndex === index,\n }))\n\n setExpandedSubcategory(expandedStates)\n }, [sidebarCategoriesMetadata])\n\n useEffect(() => {\n initExpandedSubcategory()\n }, [initExpandedSubcategory])\n\n // \u901A\u8FC7categoriesMetadata\u7684subSubCategories\u7684label\u4E0Eseries\u7684label\u5339\u914D\n const matchSeriesMetadata = useMemo(() => {\n const subCategory =\n sidebarCategoriesMetadata?.subcategories?.[expandedSubcategory?.find(item => item.open)?.index || 0]\n const currentSeriesMetadata =\n seriesMetadata?.find((item: any) => item?.label?.toLowerCase() === subCategory?.label?.toLowerCase()) || {}\n if (subCategory?.collections) {\n const category = buildProps?.categories?.[subCategory?.collections] || {}\n return {\n label: currentSeriesMetadata?.label,\n isCollection: true,\n banner: currentSeriesMetadata?.banner,\n primary: currentSeriesMetadata?.primary,\n series: [\n {\n products: category?.products,\n },\n ],\n }\n } else {\n if (subCategory?.subSubCategories) {\n const activeSubSubcategory = subCategory?.subSubCategories?.[activeSubSubcategoryIndex]\n const currentActiveSeriesMetadata =\n seriesMetadata?.find(\n (item: any) => item?.label?.toLowerCase() === activeSubSubcategory?.label?.toLowerCase()\n ) || {}\n if (activeSubSubcategory?.collections) {\n const category = buildProps?.categories?.[activeSubSubcategory?.collections] || {}\n return {\n label: currentActiveSeriesMetadata?.label,\n isCollection: true,\n banner: currentActiveSeriesMetadata?.banner,\n primary: currentActiveSeriesMetadata?.primary,\n series: [\n {\n products: category?.products,\n },\n ],\n }\n } else {\n return currentActiveSeriesMetadata\n }\n } else {\n return currentSeriesMetadata\n }\n }\n }, [sidebarCategoriesMetadata, expandedSubcategory, activeSubSubcategoryIndex, seriesMetadata, buildProps])\n\n const handleSubcategoryOpen = useCallback((index: number, subcategoryItem: any) => {\n subcategoryItem?.subSubCategories?.length > 0 ? setActiveSubSubcategoryIndex(0) : setActiveSubSubcategoryIndex(-1)\n\n setExpandedSubcategory(prev => prev.map((item, i) => ({ ...item, open: i === index ? !item.open : false })))\n }, [])\n\n const handleSubSubcategoryOpen = (index: number, subSubindex: number) => {\n setExpandedSubcategory(prev =>\n prev.map(item => (item.index === index ? { ...item, open: true } : { ...item, open: false }))\n )\n setActiveSubSubcategoryIndex(subSubindex)\n }\n\n return (\n <Container childClassName=\"lg-desktop:gap-12 flex bg-white gap-8\">\n <div\n className=\"lg-desktop:basis-[356px] flex basis-[284px] flex-col gap-4 py-4\"\n style={{\n userSelect: 'none',\n }}\n ref={sidebarDropdownRef}\n >\n <div\n className=\"desktop:h-[416px] flex flex-col overflow-y-auto\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n {sidebarCategoriesMetadata?.subcategories?.map((subItem: any, index: number) => {\n const hasSubSubCategory =\n Array.isArray(subItem?.subSubCategories) && subItem?.subSubCategories?.length > 0\n const isExpanded = expandedSubcategory?.find(item => item.index === index)?.open\n return (\n <div key={`${subItem?.label || ''}subcategoryItem-${index}`}>\n <button\n className={cn(\n 'flex w-full cursor-pointer items-center justify-between border-0 bg-transparent text-left',\n {\n 'bg-[#F5F5F7]': !hasSubSubCategory && isExpanded,\n }\n )}\n onClick={() => {\n handleSubcategoryOpen(index, subItem)\n onSidebarNavClick?.(subItem, index)\n }}\n aria-expanded={hasSubSubCategory ? isExpanded : undefined}\n aria-haspopup={hasSubSubCategory ? 'true' : undefined}\n >\n <Text html={subItem.label} className=\"p-4 text-sm font-bold leading-[1.4]\" />\n {hasSubSubCategory && (\n <DownArrow\n aria-hidden=\"true\"\n className={cn('size-4', {\n ['rotate-180']: isExpanded,\n })}\n />\n )}\n </button>\n {isExpanded && (\n <div className=\"flex flex-col\" role=\"menu\">\n {subItem.subSubCategories?.map((subSubItem: any, subSubindex: number) => (\n <button\n onClick={() => {\n handleSubSubcategoryOpen(index, subSubindex)\n onSidebarNavClick?.(subSubItem, subSubindex)\n }}\n key={`subSubItem-${index}-${subSubindex}`}\n className={cn(\n 'w-full cursor-pointer border-0 bg-transparent px-6 py-4 text-left hover:bg-[#F5F5F7]',\n {\n 'bg-[#F5F5F7]': activeSubSubcategoryIndex === subSubindex,\n }\n )}\n role=\"menuitem\"\n aria-label={subSubItem.label}\n >\n <Text html={subSubItem.label} className=\"text-sm font-bold leading-[1.4] text-[#4A4C56]\" />\n </button>\n ))}\n </div>\n )}\n </div>\n )\n })}\n </div>\n {sidebarCategoriesMetadata && (\n <div className=\"flex\">\n <div className=\"flex flex-col gap-4\">\n {sidebarCategoriesMetadata?.primary && (\n <Button\n as=\"a\"\n href={`${getLocalizedPath(sidebarCategoriesMetadata?.primary?.url, locale)}?ref=${sidebarCategoriesMetadata?.primary?.label}_shopall`}\n variant=\"primary\"\n size=\"lg\"\n className=\"lg-desktop:text-base text-sm\"\n >\n {sidebarCategoriesMetadata?.primary?.label}\n </Button>\n )}\n {sidebarCategoriesMetadata?.secondary && (\n <Button\n as=\"a\"\n href={sidebarCategoriesMetadata?.secondary?.url}\n variant=\"link\"\n size=\"lg\"\n iconClassName=\"size-4\"\n className=\"lg-desktop:text-base justify-start !p-0 text-sm\"\n >\n {sidebarCategoriesMetadata?.secondary?.label}\n </Button>\n )}\n </div>\n </div>\n )}\n </div>\n <div className=\"flex-1 py-4\">\n {Reflect.ownKeys(matchSeriesMetadata).length > 0 && (\n <div className=\"mb-4 flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Text\n html={matchSeriesMetadata?.label}\n className=\"lg-desktop:text-2xl text-xl font-bold leading-[1.4]\"\n />\n {matchSeriesMetadata?.primary && !matchSeriesMetadata?.primary?.hide && (\n <Button\n as=\"a\"\n href={`${getLocalizedPath(matchSeriesMetadata?.primary?.url, locale)}?ref=${matchSeriesMetadata?.label}_viewmore`}\n variant=\"link\"\n size=\"lg\"\n iconClassName=\"size-4\"\n className=\"lg-desktop:text-base justify-start !p-0 text-sm font-bold leading-[1.2] no-underline\"\n >\n {matchSeriesMetadata?.primary?.label}\n </Button>\n )}\n </div>\n {sidebarCategoriesMetadata?.guide?.label && (\n <Link\n href={getLocalizedPath(sidebarCategoriesMetadata?.guide?.url, locale)}\n className=\"lg-desktop:text-base text-sm leading-[1.2] text-[#6D6D6F]\"\n >\n {sidebarCategoriesMetadata?.guide?.label}\n </Link>\n )}\n </div>\n )}\n <div\n className=\"flex h-[426px] flex-col gap-4 overflow-y-auto\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n {matchSeriesMetadata?.series?.map((seriesItem: any, seriesIndex: number) => (\n <div key={`seriesItem-${seriesItem?.label || ''}-${seriesIndex}`}>\n {seriesItem.label && (\n <Text\n html={seriesItem.label}\n as=\"p\"\n className=\"mb-2 text-sm font-bold leading-[1.4] text-[#6D6D6F]\"\n />\n )}\n <div className=\"grid grid-cols-3 gap-4\">\n {!!matchSeriesMetadata?.banner && (\n <Link\n asChild={!matchSeriesMetadata?.banner?.href}\n href={getLocalizedPath(matchSeriesMetadata?.banner?.href, locale)}\n >\n <div className=\"relative [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500\">\n <Picture\n source={matchSeriesMetadata?.banner?.imageUrl}\n className=\"laptop:h-[120px] h-[114px]\"\n imgClassName=\"object-cover h-full\"\n />\n <div className=\"absolute inset-x-0 bottom-0 p-4\">\n <Heading\n size={2}\n html={matchSeriesMetadata?.banner?.title || 'Buy in Guide'}\n className={cn('font-bold text-white', {\n 'text-black': matchSeriesMetadata?.banner?.theme === 'dark',\n })}\n />\n <Text\n html={matchSeriesMetadata?.banner?.desc || '20.000mAh'}\n className={cn('text-sm font-bold text-white', {\n 'text-black': matchSeriesMetadata?.banner?.theme === 'dark',\n })}\n />\n </div>\n </div>\n </Link>\n )}\n {seriesItem.products?.map((product: any, index: number) => (\n <SeriesProductItem\n seriesLabel={matchSeriesMetadata?.label}\n key={`seriesProductItem-${seriesItem?.label || ''}-${seriesIndex}-${index}`}\n product={product}\n isCollection={matchSeriesMetadata?.isCollection}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n </Container>\n )\n }\n)\n\nSidebarDropdown.displayName = 'SidebarDropdown'\n\n/**\n * \u7CFB\u5217\u4EA7\u54C1\u9879\u7EC4\u4EF6\n */\nexport const SeriesProductItem = ({\n product,\n isCollection,\n position,\n seriesLabel,\n}: {\n product: any\n isCollection?: boolean\n position?: number\n seriesLabel?: string\n}) => {\n const { locale = 'us' } = useAiuiContext()\n const { buildProps, onSeriesProductClick } = useNavContext()\n let productData = isCollection\n ? product\n : buildProps?.products?.find((item: Product) => item.handle === product.handle)\n const variant =\n productData?.variants?.find((item: ProductVariant) => item.sku === product.sku) || productData?.variants?.[0]\n\n const listingLink = useMemo(() => {\n return `${getLocalizedPath(`/products/${productData?.handle}`, locale)}?variant=${atobID(variant?.id as string)}`\n }, [productData?.handle, variant?.id, locale])\n\n const tags = useMemo(() => {\n return productData?.tags\n ?.filter?.((item: any) => item?.startsWith?.('CLtag'))\n ?.map?.((item: any) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, 2)\n }, [productData?.tags])\n\n if (!variant?.availableForSale) return null\n\n return (\n <Link\n href={listingLink}\n onClick={e => {\n e.preventDefault()\n window.open(listingLink, '_self')\n onSeriesProductClick?.(productData, position || 0, seriesLabel)\n }}\n className=\"no-underline hover:text-current\"\n >\n <div className=\"flex shrink-0 items-center gap-4 bg-[#F5F5F7] px-4 py-3 [&_img]:hover:scale-110 [&_img]:hover:duration-500\">\n <div className=\"shrink-0\">\n <img\n src={`${variant?.image?.url || product?.images?.[0]?.url}&width=200`}\n loading=\"lazy\"\n alt={productData?.title || product?.name}\n width={90}\n height={90}\n className=\"size-[96px] object-contain\"\n />\n </div>\n <div className=\"relative\">\n <div className=\"flex gap-1\">\n {Array.isArray(tags) &&\n tags?.map((tag: string, index: number) => (\n <Text\n key={index}\n as=\"p\"\n html={tag}\n className=\"text-brand-0 mb-1 inline-block h-[24px] whitespace-nowrap rounded-full border-[1.6px] border-[#00BEFA] px-[6px] text-xs font-bold !leading-[22px]\"\n />\n ))}\n </div>\n <Text\n className=\"lg-desktop:h-[44px] lg-desktop:text-base line-clamp-2 h-[40px] text-sm font-bold leading-[1.4]\"\n html={product?.custom_name || variant?.metafields?.infos?.page_short_title || productData?.title}\n />\n {product?.desc && (\n <Text\n as=\"p\"\n html={product?.desc}\n className=\"lg-desktop:text-sm mt-1 line-clamp-1 text-xs font-bold leading-[1.4] text-[#6D6D6F]\"\n />\n )}\n </div>\n </div>\n </Link>\n )\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["jsx", "jsxs", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "Button", "Container", "Text", "Link", "Heading", "Picture", "cn", "atobID", "getLocalizedPath", "DownArrow", "useNavContext", "useAiuiContext", "SidebarDropdown", "sidebarCategoriesMetadata", "seriesMetadata", "buildProps", "onSidebarNavClick", "locale", "expandedSubcategory", "setExpandedSubcategory", "activeSubSubcategoryIndex", "setActiveSubSubcategoryIndex", "sidebarDropdownRef", "initExpandedSubcategory", "subcategories", "withSubSubCategoriesIndex", "item", "withoutSubSubCategoriesIndex", "expandedStates", "_", "index", "matchSeriesMetadata", "subCategory", "currentSeriesMetadata", "category", "activeSubSubcategory", "currentActiveSeriesMetadata", "handleSubcategoryOpen", "subcategoryItem", "prev", "i", "handleSubSubcategoryOpen", "subSubindex", "subItem", "hasSubSubCategory", "isExpanded", "subSubItem", "seriesItem", "seriesIndex", "product", "SeriesProductItem", "isCollection", "position", "seriesLabel", "onSeriesProductClick", "productData", "variant", "listingLink", "tags", "tag"]
|
|
4
|
+
"sourcesContent": ["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { Button, Container, Text, Link, Heading, Picture } from '../../components/index.js'\nimport { cn, atobID, getLocalizedPath } from '../../helpers/utils.js'\nimport { DownArrow } from './icons/index.js'\nimport { useNavContext } from './NavProvider.js'\nimport type { Product, ProductVariant } from '../../cpn-components/CpnProductCard/types.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\n/**\n * \u4FA7\u8FB9\u680F\u4E0B\u62C9\n * @param categoriesItem \u5206\u7C7B\u9879\n */\nexport const SidebarDropdown = React.memo(\n ({ sidebarCategoriesMetadata, seriesMetadata }: { sidebarCategoriesMetadata: any; seriesMetadata: any }) => {\n const { buildProps, onSidebarNavClick } = useNavContext()\n const { locale = 'us' } = useAiuiContext()\n const [expandedSubcategory, setExpandedSubcategory] = useState<{ index: number; open: boolean }[]>([])\n const [activeSubSubcategoryIndex, setActiveSubSubcategoryIndex] = useState(-1)\n const sidebarDropdownRef = useRef<HTMLDivElement>(null)\n\n const initExpandedSubcategory = useCallback(() => {\n const subcategories = sidebarCategoriesMetadata?.subcategories\n if (!subcategories?.length) return\n\n const withSubSubCategoriesIndex = subcategories.findIndex((item: any) => !!item?.subSubCategories)\n const withoutSubSubCategoriesIndex = subcategories.findIndex((item: any) => !item?.subSubCategories)\n\n // \u521B\u5EFA\u5C55\u5F00\u72B6\u6001\u6570\u7EC4\n const expandedStates = subcategories.map((_: any, index: number) => ({\n index,\n open: withSubSubCategoriesIndex === index || withoutSubSubCategoriesIndex === index,\n }))\n\n setExpandedSubcategory(expandedStates)\n }, [sidebarCategoriesMetadata])\n\n useEffect(() => {\n initExpandedSubcategory()\n }, [initExpandedSubcategory])\n\n // \u901A\u8FC7categoriesMetadata\u7684subSubCategories\u7684label\u4E0Eseries\u7684label\u5339\u914D\n const matchSeriesMetadata = useMemo(() => {\n const subCategory =\n sidebarCategoriesMetadata?.subcategories?.[expandedSubcategory?.find(item => item.open)?.index || 0]\n const currentSeriesMetadata =\n seriesMetadata?.find((item: any) => item?.label?.toLowerCase() === subCategory?.label?.toLowerCase()) || {}\n if (subCategory?.collections) {\n const category = buildProps?.categories?.[subCategory?.collections] || {}\n return {\n label: currentSeriesMetadata?.label,\n isCollection: true,\n banner: currentSeriesMetadata?.banner,\n primary: currentSeriesMetadata?.primary,\n series: [\n {\n products: category?.products,\n },\n ],\n }\n } else {\n if (subCategory?.subSubCategories) {\n const activeSubSubcategory = subCategory?.subSubCategories?.[activeSubSubcategoryIndex]\n const currentActiveSeriesMetadata =\n seriesMetadata?.find(\n (item: any) => item?.label?.toLowerCase() === activeSubSubcategory?.label?.toLowerCase()\n ) || {}\n if (activeSubSubcategory?.collections) {\n const category = buildProps?.categories?.[activeSubSubcategory?.collections] || {}\n return {\n label: currentActiveSeriesMetadata?.label,\n isCollection: true,\n banner: currentActiveSeriesMetadata?.banner,\n primary: currentActiveSeriesMetadata?.primary,\n series: [\n {\n products: category?.products,\n },\n ],\n }\n } else {\n return currentActiveSeriesMetadata\n }\n } else {\n return currentSeriesMetadata\n }\n }\n }, [sidebarCategoriesMetadata, expandedSubcategory, activeSubSubcategoryIndex, seriesMetadata, buildProps])\n\n const handleSubcategoryOpen = useCallback((index: number, subcategoryItem: any) => {\n const hasSubSubCategories = subcategoryItem?.subSubCategories?.length > 0\n hasSubSubCategories ? setActiveSubSubcategoryIndex(0) : setActiveSubSubcategoryIndex(-1)\n\n setExpandedSubcategory(prev =>\n prev.map((item, i) => ({\n ...item,\n open: i === index ? !item.open : hasSubSubCategories ? false : item.open,\n }))\n )\n }, [])\n\n const handleSubSubcategoryOpen = (index: number, subSubindex: number) => {\n setExpandedSubcategory(prev =>\n prev.map(item => (item.index === index ? { ...item, open: true } : { ...item, open: false }))\n )\n setActiveSubSubcategoryIndex(subSubindex)\n }\n\n return (\n <Container childClassName=\"lg-desktop:gap-12 flex bg-white gap-8\">\n <div\n className=\"lg-desktop:basis-[356px] flex basis-[284px] flex-col gap-4 py-4\"\n style={{\n userSelect: 'none',\n }}\n ref={sidebarDropdownRef}\n >\n <div\n className=\"desktop:h-[416px] flex flex-col overflow-y-auto\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n {sidebarCategoriesMetadata?.subcategories?.map((subItem: any, index: number) => {\n const hasSubSubCategory =\n Array.isArray(subItem?.subSubCategories) && subItem?.subSubCategories?.length > 0\n const isExpanded = expandedSubcategory?.find(item => item.index === index)?.open\n return (\n <div key={`${subItem?.label || ''}subcategoryItem-${index}`}>\n <button\n className={cn(\n 'rounded-sidebar-shelf flex w-full cursor-pointer items-center justify-between border-0 bg-transparent text-left',\n {\n 'bg-[#F5F5F7]': !hasSubSubCategory && isExpanded,\n }\n )}\n onClick={() => {\n handleSubcategoryOpen(index, subItem)\n onSidebarNavClick?.(subItem, index)\n }}\n aria-expanded={hasSubSubCategory ? isExpanded : undefined}\n aria-haspopup={hasSubSubCategory ? 'true' : undefined}\n >\n <Text html={subItem.label} className=\"p-4 text-sm font-bold leading-[1.4]\" />\n {hasSubSubCategory && (\n <DownArrow\n aria-hidden=\"true\"\n className={cn('size-4', {\n ['rotate-180']: isExpanded,\n })}\n />\n )}\n </button>\n {isExpanded && (\n <div className=\"flex flex-col\" role=\"menu\">\n {subItem.subSubCategories?.map((subSubItem: any, subSubindex: number) => (\n <button\n onClick={() => {\n handleSubSubcategoryOpen(index, subSubindex)\n onSidebarNavClick?.(subSubItem, subSubindex)\n }}\n key={`subSubItem-${index}-${subSubindex}`}\n className={cn(\n 'rounded-sidebar-shelf w-full cursor-pointer border-0 bg-transparent px-6 py-4 text-left leading-none hover:bg-[#F5F5F7]',\n {\n 'bg-[#F5F5F7]': activeSubSubcategoryIndex === subSubindex,\n }\n )}\n role=\"menuitem\"\n aria-label={subSubItem.label}\n >\n <Text html={subSubItem.label} className=\"text-sm font-bold leading-[1.4] text-[#4A4C56]\" />\n </button>\n ))}\n </div>\n )}\n </div>\n )\n })}\n </div>\n {sidebarCategoriesMetadata && (\n <div className=\"flex\">\n <div className=\"flex flex-col gap-4\">\n {sidebarCategoriesMetadata?.primary && (\n <Button\n as=\"a\"\n href={`${getLocalizedPath(sidebarCategoriesMetadata?.primary?.url, locale)}?ref=${sidebarCategoriesMetadata?.primary?.label}_shopall`}\n variant=\"primary\"\n size=\"lg\"\n className=\"lg-desktop:text-base text-sm\"\n >\n {sidebarCategoriesMetadata?.primary?.label}\n </Button>\n )}\n {sidebarCategoriesMetadata?.secondary && (\n <Button\n as=\"a\"\n href={sidebarCategoriesMetadata?.secondary?.url}\n variant=\"link\"\n size=\"lg\"\n iconClassName=\"size-4\"\n className=\"lg-desktop:text-base justify-start !p-0 text-sm\"\n >\n {sidebarCategoriesMetadata?.secondary?.label}\n </Button>\n )}\n </div>\n </div>\n )}\n </div>\n <div className=\"flex-1 py-4\">\n {Reflect.ownKeys(matchSeriesMetadata).length > 0 && (\n <div className=\"mb-4 flex items-center justify-between\">\n {(() => {\n const labelContent = (\n <>\n <Text\n html={matchSeriesMetadata?.label}\n className=\"lg-desktop:text-2xl text-xl font-bold leading-[1.4]\"\n />\n {matchSeriesMetadata?.primary && !matchSeriesMetadata?.primary?.hide && (\n <Text\n className=\"lg-desktop:text-base text-sm font-bold leading-[1.2]\"\n html={matchSeriesMetadata?.primary?.label}\n />\n )}\n </>\n )\n\n return matchSeriesMetadata?.primary?.url ? (\n <Button\n as=\"a\"\n href={`${getLocalizedPath(matchSeriesMetadata?.primary?.url, locale)}?ref=${matchSeriesMetadata?.label}_viewmore`}\n variant=\"link\"\n size=\"lg\"\n iconClassName=\"size-4\"\n className=\"flex items-center justify-start gap-2 !p-0 no-underline\"\n >\n {labelContent}\n </Button>\n ) : (\n <div className=\"flex items-center gap-2\">{labelContent}</div>\n )\n })()}\n {sidebarCategoriesMetadata?.guide?.label && (\n <Link\n href={getLocalizedPath(sidebarCategoriesMetadata?.guide?.url, locale)}\n className=\"lg-desktop:text-base text-sm leading-[1.2] text-[#6D6D6F]\"\n >\n {sidebarCategoriesMetadata?.guide?.label}\n </Link>\n )}\n </div>\n )}\n <div\n className=\"flex h-[426px] flex-col gap-4 overflow-y-auto\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n {matchSeriesMetadata?.series?.map((seriesItem: any, seriesIndex: number) => (\n <div key={`seriesItem-${seriesItem?.label || ''}-${seriesIndex}`}>\n {seriesItem.label && (\n <Text\n html={seriesItem.label}\n as=\"p\"\n className=\"mb-2 text-sm font-bold leading-[1.4] text-[#6D6D6F]\"\n />\n )}\n <div className=\"grid grid-cols-3 gap-4\">\n {!!matchSeriesMetadata?.banner && (\n <Link\n asChild={!matchSeriesMetadata?.banner?.href}\n href={getLocalizedPath(matchSeriesMetadata?.banner?.href, locale)}\n >\n <div className=\"relative [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500\">\n <Picture\n source={matchSeriesMetadata?.banner?.imageUrl}\n className=\"laptop:h-[120px] h-[114px]\"\n imgClassName=\"object-cover h-full\"\n />\n <div className=\"absolute inset-x-0 bottom-0 p-4\">\n <Heading\n size={2}\n html={matchSeriesMetadata?.banner?.title || 'Buy in Guide'}\n className={cn('font-bold text-white', {\n 'text-black': matchSeriesMetadata?.banner?.theme === 'dark',\n })}\n />\n <Text\n html={matchSeriesMetadata?.banner?.desc || '20.000mAh'}\n className={cn('text-sm font-bold text-white', {\n 'text-black': matchSeriesMetadata?.banner?.theme === 'dark',\n })}\n />\n </div>\n </div>\n </Link>\n )}\n {seriesItem.products?.map((product: any, index: number) => (\n <SeriesProductItem\n seriesLabel={matchSeriesMetadata?.label}\n key={`seriesProductItem-${seriesItem?.label || ''}-${seriesIndex}-${index}`}\n product={product}\n isCollection={matchSeriesMetadata?.isCollection}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n </Container>\n )\n }\n)\n\nSidebarDropdown.displayName = 'SidebarDropdown'\n\n/**\n * \u7CFB\u5217\u4EA7\u54C1\u9879\u7EC4\u4EF6\n */\nexport const SeriesProductItem = ({\n product,\n isCollection,\n position,\n seriesLabel,\n}: {\n product: any\n isCollection?: boolean\n position?: number\n seriesLabel?: string\n}) => {\n const { locale = 'us' } = useAiuiContext()\n const { buildProps, onSeriesProductClick } = useNavContext()\n let productData = isCollection\n ? product\n : buildProps?.products?.find((item: Product) => item.handle === product.handle)\n const variant =\n productData?.variants?.find((item: ProductVariant) => item.sku === product.sku) || productData?.variants?.[0]\n\n const listingLink = useMemo(() => {\n return `${getLocalizedPath(`/products/${productData?.handle}`, locale)}?variant=${atobID(variant?.id as string)}`\n }, [productData?.handle, variant?.id, locale])\n\n const tags = useMemo(() => {\n return productData?.tags\n ?.filter?.((item: any) => item?.startsWith?.('CLtag'))\n ?.map?.((item: any) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, 2)\n }, [productData?.tags])\n\n if (!variant?.availableForSale) return null\n\n return (\n <Link\n href={listingLink}\n onClick={e => {\n e.preventDefault()\n window.open(listingLink, '_self')\n onSeriesProductClick?.(productData, position || 0, seriesLabel)\n }}\n className=\"no-underline hover:text-current\"\n >\n <div className=\"rounded-sidebar-shelf flex shrink-0 items-center gap-4 bg-[#F5F5F7] px-4 py-3 [&_img]:hover:scale-110 [&_img]:hover:duration-500\">\n <div className=\"shrink-0\">\n <img\n src={`${variant?.image?.url || product?.images?.[0]?.url}&width=200`}\n loading=\"lazy\"\n alt={productData?.title || product?.name}\n width={90}\n height={90}\n className=\"size-[96px] object-contain\"\n />\n </div>\n <div className=\"relative\">\n <div className=\"flex gap-1\">\n {Array.isArray(tags) &&\n tags?.map((tag: string, index: number) => (\n <Text\n key={index}\n as=\"p\"\n html={tag}\n className=\"text-brand-0 mb-1 inline-block h-[24px] whitespace-nowrap rounded-full border-[1.6px] border-[#00BEFA] px-[6px] text-xs font-bold !leading-[22px]\"\n />\n ))}\n </div>\n <Text\n className=\"lg-desktop:h-[44px] lg-desktop:text-base line-clamp-2 h-[40px] text-sm font-bold leading-[1.4]\"\n html={product?.custom_name || variant?.metafields?.infos?.page_short_title || productData?.title}\n />\n {product?.desc && (\n <Text\n as=\"p\"\n html={product?.desc}\n className=\"lg-desktop:text-sm mt-1 line-clamp-1 text-xs font-bold leading-[1.4] text-[#6D6D6F]\"\n />\n )}\n </div>\n </div>\n </Link>\n )\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Fragment", "jsx", "jsxs", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "Button", "Container", "Text", "Link", "Heading", "Picture", "cn", "atobID", "getLocalizedPath", "DownArrow", "useNavContext", "useAiuiContext", "SidebarDropdown", "sidebarCategoriesMetadata", "seriesMetadata", "buildProps", "onSidebarNavClick", "locale", "expandedSubcategory", "setExpandedSubcategory", "activeSubSubcategoryIndex", "setActiveSubSubcategoryIndex", "sidebarDropdownRef", "initExpandedSubcategory", "subcategories", "withSubSubCategoriesIndex", "item", "withoutSubSubCategoriesIndex", "expandedStates", "_", "index", "matchSeriesMetadata", "subCategory", "currentSeriesMetadata", "category", "activeSubSubcategory", "currentActiveSeriesMetadata", "handleSubcategoryOpen", "subcategoryItem", "hasSubSubCategories", "prev", "i", "handleSubSubcategoryOpen", "subSubindex", "subItem", "hasSubSubCategory", "isExpanded", "subSubItem", "labelContent", "seriesItem", "seriesIndex", "product", "SeriesProductItem", "isCollection", "position", "seriesLabel", "onSeriesProductClick", "productData", "variant", "listingLink", "tags", "tag"]
|
|
7
7
|
}
|