@anker-in/headless-ui 1.1.28 → 1.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/biz-components/HeaderNavigation/MobileMenuComponents.d.ts +25 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileMenuComponents.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileMenuComponents.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileMulticolMenu.d.ts +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileMulticolMenu.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileMulticolMenu.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileResourceSidebarMenu.d.ts +9 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.d.ts +9 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileSupportMenu.d.ts +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileSupportMenu.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/MobileSupportMenu.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.d.ts +15 -0
- package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/NavProvider.d.ts +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/NavProvider.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/NavProvider.js.map +3 -3
- package/dist/cjs/biz-components/HeaderNavigation/ResourceItem.d.ts +20 -0
- package/dist/cjs/biz-components/HeaderNavigation/ResourceItem.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/ResourceItem.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/ResourceSidebarDropdown.d.ts +9 -0
- package/dist/cjs/biz-components/HeaderNavigation/ResourceSidebarDropdown.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/ResourceSidebarDropdown.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.d.ts +18 -0
- package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js.map +7 -0
- package/dist/cjs/biz-components/HeaderNavigation/SupportsDropdown.d.ts +9 -0
- package/dist/cjs/biz-components/HeaderNavigation/SupportsDropdown.js +2 -0
- package/dist/cjs/biz-components/HeaderNavigation/SupportsDropdown.js.map +7 -0
- 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 +2 -1
- package/dist/cjs/biz-components/HeaderNavigation/types.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/types.js.map +2 -2
- package/dist/cjs/biz-components/HeaderNavigation/withCategory.d.ts +1 -0
- package/dist/cjs/biz-components/HeaderNavigation/withCategory.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/withCategory.js.map +3 -3
- package/dist/cjs/biz-components/SearchPage/index.js +1 -1
- package/dist/cjs/biz-components/SearchPage/index.js.map +2 -2
- package/dist/esm/biz-components/HeaderNavigation/MobileMenuComponents.d.ts +25 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileMenuComponents.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileMenuComponents.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileMulticolMenu.d.ts +7 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileMulticolMenu.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileMulticolMenu.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileResourceSidebarMenu.d.ts +9 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileResourceSidebarMenu.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.d.ts +9 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileSupportMenu.d.ts +7 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileSupportMenu.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/MobileSupportMenu.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.d.ts +15 -0
- package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/NavProvider.d.ts +2 -0
- package/dist/esm/biz-components/HeaderNavigation/NavProvider.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/NavProvider.js.map +3 -3
- package/dist/esm/biz-components/HeaderNavigation/ResourceItem.d.ts +20 -0
- package/dist/esm/biz-components/HeaderNavigation/ResourceItem.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/ResourceItem.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/ResourceSidebarDropdown.d.ts +9 -0
- package/dist/esm/biz-components/HeaderNavigation/ResourceSidebarDropdown.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/ResourceSidebarDropdown.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.d.ts +18 -0
- package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js.map +7 -0
- package/dist/esm/biz-components/HeaderNavigation/SupportsDropdown.d.ts +9 -0
- package/dist/esm/biz-components/HeaderNavigation/SupportsDropdown.js +2 -0
- package/dist/esm/biz-components/HeaderNavigation/SupportsDropdown.js.map +7 -0
- 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 +2 -1
- package/dist/esm/biz-components/HeaderNavigation/types.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/types.js.map +2 -2
- package/dist/esm/biz-components/HeaderNavigation/withCategory.d.ts +1 -0
- package/dist/esm/biz-components/HeaderNavigation/withCategory.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/withCategory.js.map +3 -3
- package/dist/esm/biz-components/SearchPage/index.js +1 -1
- package/dist/esm/biz-components/SearchPage/index.js.map +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 移动端菜单项
|
|
3
|
+
*/
|
|
4
|
+
export declare const MenuItem: ({ label, href, onClick, active, icon, className, }: {
|
|
5
|
+
label: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
active?: boolean;
|
|
9
|
+
icon?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
/**
|
|
13
|
+
* 移动端子分类标题组件
|
|
14
|
+
*/
|
|
15
|
+
export declare const SubSubCategoryItemComp: ({ matchSeriesMetadata, onSubSubCategoryItemClick, expanded, }: {
|
|
16
|
+
matchSeriesMetadata: any;
|
|
17
|
+
onSubSubCategoryItemClick?: () => void;
|
|
18
|
+
expanded?: boolean;
|
|
19
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* 移动端子分类内容组件
|
|
22
|
+
*/
|
|
23
|
+
export declare const SubSubCategoryContentComp: ({ matchSeriesMetadata }: {
|
|
24
|
+
matchSeriesMetadata: any;
|
|
25
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var g=(t,n)=>{for(var l in n)a(t,l,{get:n[l],enumerable:!0})},x=(t,n,l,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of u(n))!f.call(t,r)&&r!==l&&a(t,r,{get:()=>n[r],enumerable:!(s=d(n,r))||s.enumerable});return t};var v=t=>x(a({},"__esModule",{value:!0}),t);var k={};g(k,{MenuItem:()=>h,SubSubCategoryContentComp:()=>y,SubSubCategoryItemComp:()=>N});module.exports=v(k);var e=require("react/jsx-runtime"),C=require("react"),o=require("../../components/index.js"),i=require("../../helpers/utils.js"),p=require("./icons/index.js"),c=require("./SidebarDropdown.js");const h=({label:t,href:n,onClick:l,active:s,icon:r,className:m})=>{const b=(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"flex items-center gap-4",children:[(0,e.jsx)(o.Text,{html:t,className:(0,i.cn)("text-sm font-bold leading-[1.4]",{underline:r})}),r&&(0,e.jsx)(o.Text,{html:r,"aria-hidden":"true"})]}),(0,e.jsx)("svg",{className:`size-5 ${s?"rotate-90":""}`,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M9 5L16 12L9 19",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]});return n?(0,e.jsx)(o.Link,{href:n,className:(0,i.cn)("flex cursor-pointer items-center justify-between py-4 no-underline",m),onClick:l,children:b}):(0,e.jsx)("button",{onClick:l,className:(0,i.cn)("flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left",m),"aria-expanded":s,children:b})},N=({matchSeriesMetadata:t,onSubSubCategoryItemClick:n,expanded:l})=>{const s=(0,e.jsxs)(e.Fragment,{children:[t?.label&&(0,e.jsx)(o.Text,{html:t?.label,className:"text-sm font-bold leading-[1.4]"}),n&&(0,e.jsx)(p.DownArrow,{"aria-hidden":"true",className:(0,i.cn)("size-5",{"rotate-180":l})})]});return n?(0,e.jsx)("button",{className:"tablet:pt-0 flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left",onClick:n,"aria-expanded":l,children:s}):(0,e.jsx)("div",{className:"tablet:pt-0 flex items-center justify-between py-4",children:s})},y=({matchSeriesMetadata:t})=>(0,e.jsx)("div",{className:"laptop:gap-3 flex flex-col gap-2",children:!!t?.series?.length&&t?.series?.map((n,l)=>(0,e.jsxs)("div",{children:[n.label&&(0,e.jsx)(o.Text,{html:n.label,as:"p",className:"mb-2 text-sm font-bold leading-[1.4] text-[#3D3D3F]"}),(0,e.jsxs)("div",{className:"laptop:grid-cols-3 laptop:gap-4 tablet:grid tablet:grid-cols-2 tablet:gap-3 flex flex-col gap-2",children:[!!t?.banner&&(0,e.jsx)(o.Link,{asChild:!t?.banner?.href,href:t?.banner?.href,children:(0,e.jsxs)("div",{className:"relative [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500",children:[(0,e.jsx)(o.Picture,{source:t?.banner?.imageUrl,className:"laptop:h-[120px] h-[114px]",imgClassName:"object-cover h-full"}),(0,e.jsxs)("div",{className:"absolute inset-x-0 bottom-0 p-4",children:[(0,e.jsx)(o.Heading,{size:2,html:t?.banner?.title||"Buy in Guide",className:(0,i.cn)("font-bold text-white",{"text-black":t?.banner?.theme==="dark"})}),(0,e.jsx)(o.Text,{html:t?.banner?.desc||"20.000mAh",className:(0,i.cn)("text-sm font-bold text-white",{"text-black":t?.banner?.theme==="dark"})})]})]})}),n.products?.map((s,r)=>(0,e.jsx)(c.SeriesProductItem,{position:r,product:s,seriesLabel:t?.label,isCollection:t?.isCollection},`seriesProductItem-${l}-${r}`))]})]},`seriesItem-${l}`))});
|
|
2
|
+
//# sourceMappingURL=MobileMenuComponents.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/HeaderNavigation/MobileMenuComponents.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from 'react'\nimport { Text, Link, Heading, Picture } from '../../components/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport { DownArrow } from './icons/index.js'\nimport { SeriesProductItem } from './SidebarDropdown.js'\n\n/**\n * \u79FB\u52A8\u7AEF\u83DC\u5355\u9879\n */\nexport const MenuItem = ({\n label,\n href,\n onClick,\n active,\n icon,\n className,\n}: {\n label: string\n href?: string\n onClick?: () => void\n active?: boolean\n icon?: string\n className?: string\n}) => {\n const content = (\n <>\n <div className=\"flex items-center gap-4\">\n <Text html={label} className={cn('text-sm font-bold leading-[1.4]', { underline: icon })} />\n {icon && <Text html={icon} aria-hidden=\"true\" />}\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 d=\"M9 5L16 12L9 19\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </>\n )\n\n return href ? (\n <Link\n href={href}\n className={cn('flex cursor-pointer items-center justify-between py-4 no-underline', className)}\n onClick={onClick}\n >\n {content}\n </Link>\n ) : (\n <button\n onClick={onClick}\n className={cn(\n 'flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left',\n className\n )}\n aria-expanded={active}\n >\n {content}\n </button>\n )\n}\n\n/**\n * \u79FB\u52A8\u7AEF\u5B50\u5206\u7C7B\u6807\u9898\u7EC4\u4EF6\n */\nexport const SubSubCategoryItemComp = ({\n matchSeriesMetadata,\n onSubSubCategoryItemClick,\n expanded,\n}: {\n matchSeriesMetadata: any\n onSubSubCategoryItemClick?: () => void\n expanded?: boolean\n}) => {\n const content = (\n <>\n {matchSeriesMetadata?.label && (\n <Text html={matchSeriesMetadata?.label} className=\"text-sm font-bold leading-[1.4]\" />\n )}\n {onSubSubCategoryItemClick && (\n <DownArrow\n aria-hidden=\"true\"\n className={cn('size-5', {\n ['rotate-180']: expanded,\n })}\n />\n )}\n </>\n )\n\n return onSubSubCategoryItemClick ? (\n <button\n className=\"tablet:pt-0 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=\"tablet:pt-0 flex items-center justify-between py-4\">{content}</div>\n )\n}\n\n/**\n * \u79FB\u52A8\u7AEF\u5B50\u5206\u7C7B\u5185\u5BB9\u7EC4\u4EF6\n */\nexport const SubSubCategoryContentComp = ({ matchSeriesMetadata }: { matchSeriesMetadata: any }) => {\n return (\n <div className=\"laptop:gap-3 flex flex-col gap-2\">\n {!!matchSeriesMetadata?.series?.length &&\n matchSeriesMetadata?.series?.map((seriesItem: any, pIndex: number) => (\n <div key={`seriesItem-${pIndex}`}>\n {seriesItem.label && (\n <Text html={seriesItem.label} as=\"p\" className=\"mb-2 text-sm font-bold leading-[1.4] text-[#3D3D3F]\" />\n )}\n <div className=\"laptop:grid-cols-3 laptop:gap-4 tablet:grid tablet:grid-cols-2 tablet:gap-3 flex flex-col gap-2\">\n {!!matchSeriesMetadata?.banner && (\n <Link asChild={!matchSeriesMetadata?.banner?.href} href={matchSeriesMetadata?.banner?.href}>\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 position={index}\n key={`seriesProductItem-${pIndex}-${index}`}\n product={product}\n seriesLabel={matchSeriesMetadata?.label}\n isCollection={matchSeriesMetadata?.isCollection}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,8BAAAC,EAAA,2BAAAC,IAAA,eAAAC,EAAAL,GAyBI,IAAAM,EAAA,6BAzBJC,EAAkB,iBAClBC,EAA6C,qCAC7CC,EAAmB,kCACnBC,EAA0B,4BAC1BC,EAAkC,gCAK3B,MAAMT,EAAW,CAAC,CACvB,MAAAU,EACA,KAAAC,EACA,QAAAC,EACA,OAAAC,EACA,KAAAC,EACA,UAAAC,CACF,IAOM,CACJ,MAAMC,KACJ,oBACE,qBAAC,OAAI,UAAU,0BACb,oBAAC,QAAK,KAAMN,EAAO,aAAW,MAAG,kCAAmC,CAAE,UAAWI,CAAK,CAAC,EAAG,EACzFA,MAAQ,OAAC,QAAK,KAAMA,EAAM,cAAY,OAAO,GAChD,KACA,OAAC,OACC,UAAW,UAAUD,EAAS,YAAc,EAAE,GAC9C,QAAQ,YACR,KAAK,OACL,MAAM,6BACN,cAAY,OAEZ,mBAAC,QAAK,EAAE,kBAAkB,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,EAC/G,GACF,EAGF,OAAOF,KACL,OAAC,QACC,KAAMA,EACN,aAAW,MAAG,qEAAsEI,CAAS,EAC7F,QAASH,EAER,SAAAI,EACH,KAEA,OAAC,UACC,QAASJ,EACT,aAAW,MACT,iGACAG,CACF,EACA,gBAAeF,EAEd,SAAAG,EACH,CAEJ,EAKad,EAAyB,CAAC,CACrC,oBAAAe,EACA,0BAAAC,EACA,SAAAC,CACF,IAIM,CACJ,MAAMH,KACJ,oBACG,UAAAC,GAAqB,UACpB,OAAC,QAAK,KAAMA,GAAqB,MAAO,UAAU,kCAAkC,EAErFC,MACC,OAAC,aACC,cAAY,OACZ,aAAW,MAAG,SAAU,CACrB,aAAeC,CAClB,CAAC,EACH,GAEJ,EAGF,OAAOD,KACL,OAAC,UACC,UAAU,6GACV,QAASA,EACT,gBAAeC,EAEd,SAAAH,EACH,KAEA,OAAC,OAAI,UAAU,qDAAsD,SAAAA,EAAQ,CAEjF,EAKaf,EAA4B,CAAC,CAAE,oBAAAgB,CAAoB,OAE5D,OAAC,OAAI,UAAU,mCACZ,UAAC,CAACA,GAAqB,QAAQ,QAC9BA,GAAqB,QAAQ,IAAI,CAACG,EAAiBC,OACjD,QAAC,OACE,UAAAD,EAAW,UACV,OAAC,QAAK,KAAMA,EAAW,MAAO,GAAG,IAAI,UAAU,sDAAsD,KAEvG,QAAC,OAAI,UAAU,kGACZ,WAAC,CAACH,GAAqB,WACtB,OAAC,QAAK,QAAS,CAACA,GAAqB,QAAQ,KAAM,KAAMA,GAAqB,QAAQ,KACpF,oBAAC,OAAI,UAAU,2FACb,oBAAC,WACC,OAAQA,GAAqB,QAAQ,SACrC,UAAU,6BACV,aAAa,sBACf,KACA,QAAC,OAAI,UAAU,kCACb,oBAAC,WACC,KAAM,EACN,KAAMA,GAAqB,QAAQ,OAAS,eAC5C,aAAW,MAAG,uBAAwB,CACpC,aAAcA,GAAqB,QAAQ,QAAU,MACvD,CAAC,EACH,KACA,OAAC,QACC,KAAMA,GAAqB,QAAQ,MAAQ,YAC3C,aAAW,MAAG,+BAAgC,CAC5C,aAAcA,GAAqB,QAAQ,QAAU,MACvD,CAAC,EACH,GACF,GACF,EACF,EAEDG,EAAW,UAAU,IAAI,CAACE,EAAcC,OACvC,OAAC,qBACC,SAAUA,EAEV,QAASD,EACT,YAAaL,GAAqB,MAClC,aAAcA,GAAqB,cAH9B,qBAAqBI,CAAM,IAAIE,CAAK,EAI3C,CACD,GACH,IAxCQ,cAAcF,CAAM,EAyC9B,CACD,EACL",
|
|
6
|
+
"names": ["MobileMenuComponents_exports", "__export", "MenuItem", "SubSubCategoryContentComp", "SubSubCategoryItemComp", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_utils", "import_icons", "import_SidebarDropdown", "label", "href", "onClick", "active", "icon", "className", "content", "matchSeriesMetadata", "onSubSubCategoryItemClick", "expanded", "seriesItem", "pIndex", "product", "index"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var r=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var s=(t,l)=>{for(var e in l)r(t,e,{get:l[e],enumerable:!0})},g=(t,l,e,a)=>{if(l&&typeof l=="object"||typeof l=="function")for(let o of b(l))!u.call(t,o)&&o!==e&&r(t,o,{get:()=>l[o],enumerable:!(a=n(l,o))||a.enumerable});return t};var d=t=>g(r({},"__esModule",{value:!0}),t);var y={};s(y,{MobileMulticolMenu:()=>f});module.exports=d(y);var p=require("react/jsx-runtime"),i=require("react"),m=require("../../helpers/utils.js"),c=require("./MulticolDropdown.js");const f=({multicolMetadata:t})=>{const l=(0,i.useMemo)(()=>!t?.some(e=>!!e.columns),[t]);return(0,p.jsx)("div",{className:(0,m.cn)("tablet:py-4 tablet:px-8 laptop:px-16 tablet:gap-6 flex flex-col gap-4 p-4",{"tablet:grid tablet:grid-cols-2 tablet:gap-3 laptop:gap-4":l}),children:t?.map((e,a)=>(0,p.jsx)("div",{children:(0,p.jsx)(c.MulticolItem,{item:e,allPicture:l})},`multicolItem-${e?.label}-${a}`))})};
|
|
2
|
+
//# sourceMappingURL=MobileMulticolMenu.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/HeaderNavigation/MobileMulticolMenu.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useMemo } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { MulticolItem } from './MulticolDropdown.js'\n\n/**\n * \u79FB\u52A8\u7AEFmulticol\u83DC\u5355\n * @param multicolMetadata multicol\u83DC\u5355\u5143\u6570\u636E\n */\nexport const MobileMulticolMenu = ({ multicolMetadata }: { multicolMetadata: any }) => {\n // \u662F\u5426\u5168\u90E8\u662F\u56FE\u7247\n const allPicture = useMemo(() => {\n return !multicolMetadata?.some((item: any) => !!item.columns)\n }, [multicolMetadata])\n\n return (\n <div\n className={cn('tablet:py-4 tablet:px-8 laptop:px-16 tablet:gap-6 flex flex-col gap-4 p-4', {\n ['tablet:grid tablet:grid-cols-2 tablet:gap-3 laptop:gap-4']: allPicture,\n })}\n >\n {multicolMetadata?.map((item: any, index: number) => (\n <div key={`multicolItem-${item?.label}-${index}`}>\n <MulticolItem item={item} allPicture={allPicture} />\n </div>\n ))}\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAsBU,IAAAI,EAAA,6BAtBVC,EAA+B,iBAC/BC,EAAmB,kCACnBC,EAA6B,iCAMtB,MAAML,EAAqB,CAAC,CAAE,iBAAAM,CAAiB,IAAiC,CAErF,MAAMC,KAAa,WAAQ,IAClB,CAACD,GAAkB,KAAME,GAAc,CAAC,CAACA,EAAK,OAAO,EAC3D,CAACF,CAAgB,CAAC,EAErB,SACE,OAAC,OACC,aAAW,MAAG,4EAA6E,CACxF,2DAA6DC,CAChE,CAAC,EAEA,SAAAD,GAAkB,IAAI,CAACE,EAAWC,OACjC,OAAC,OACC,mBAAC,gBAAa,KAAMD,EAAM,WAAYD,EAAY,GAD1C,gBAAgBC,GAAM,KAAK,IAAIC,CAAK,EAE9C,CACD,EACH,CAEJ",
|
|
6
|
+
"names": ["MobileMulticolMenu_exports", "__export", "MobileMulticolMenu", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_MulticolDropdown", "multicolMetadata", "allPicture", "item", "index"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 移动端资源位侧边栏下拉
|
|
3
|
+
* @param resourceCategoriesMetadata 资源位分类元数据
|
|
4
|
+
* @param resourcesMetadata 资源位元数据
|
|
5
|
+
*/
|
|
6
|
+
export declare const MobileResourceSidebarMenu: ({ resourceCategoriesMetadata, resourcesMetadata, }: {
|
|
7
|
+
resourceCategoriesMetadata: any;
|
|
8
|
+
resourcesMetadata: any;
|
|
9
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var g=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var B=(t,a)=>{for(var r in a)g(t,r,{get:a[r],enumerable:!0})},j=(t,a,r,i)=>{if(a&&typeof a=="object"||typeof a=="function")for(let l of L(a))!$.call(t,l)&&l!==r&&g(t,l,{get:()=>a[l],enumerable:!(i=M(a,l))||i.enumerable});return t};var z=t=>j(g({},"__esModule",{value:!0}),t);var I={};B(I,{MobileResourceSidebarMenu:()=>_});module.exports=z(I);var e=require("react/jsx-runtime"),s=require("react"),x=require("../../components/index.js"),d=require("./types.js"),R=require("./NavProvider.js"),c=require("./ResourceItem.js");const E=({label:t,onClick:a,active:r})=>(0,e.jsxs)("button",{className:"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left",onClick:a,"aria-expanded":r,children:[(0,e.jsx)("div",{className:"flex items-center gap-4",children:(0,e.jsx)("span",{className:"text-sm font-bold leading-[1.4]",children:t})}),(0,e.jsx)("svg",{className:`size-5 ${r?"rotate-90":""}`,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M9 5L16 12L9 19",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),_=({resourceCategoriesMetadata:t,resourcesMetadata:a})=>{const{currentMenu:r,setCurrentMenu:i,subSubCategory:l,setSubSubCategory:h,onSidebarNavClick:m,currentResourceMetadata:p,setCurrentResourceMetadata:f}=(0,R.useNavContext)(),[S,k]=(0,s.useState)([]),[y,w]=(0,s.useState)([]);(0,s.useEffect)(()=>{t?.subcategories?.length&&k(t?.subcategories?.map((o,n)=>({index:n,open:!1})))},[t]),(0,s.useEffect)(()=>{l?.subSubCategories?.length&&w(l?.subSubCategories?.map((o,n)=>({index:n,open:n===0})))},[l]);const C=(0,s.useCallback)(o=>{h?.(o);const n=a?.find(b=>o?.label?.toLowerCase()===b.label?.toLowerCase())||{};i&&i(d.HeaderNavigationMenu.Third),f&&f(n)},[a,i,h,f]);return(0,s.useMemo)(()=>{switch(r){case d.HeaderNavigationMenu.Secondary:return(0,e.jsxs)("div",{className:"tablet:px-8 laptop:px-16 tablet:justify-start tablet:gap-16 flex h-full flex-col justify-between p-4",children:[(0,e.jsx)("div",{children:t?.subcategories?.map((o,n)=>(0,e.jsx)("div",{children:(0,e.jsx)(E,{label:o?.label,active:S.find(b=>b.index===n)?.open,onClick:()=>{C(o),m?.(o,n)}})},`${o.label}-${n}`))}),(0,e.jsxs)("div",{className:"tablet:items-start flex flex-col items-center gap-4",children:[t?.primary&&(0,e.jsx)(x.Button,{as:"a",href:`${t?.primary?.url}?ref=${t?.primary?.label}_shopall`,variant:"primary",size:"lg",className:"tablet:w-auto w-full text-base",children:t?.primary?.label}),t?.secondary&&(0,e.jsx)(x.Button,{as:"a",href:t?.secondary?.url,variant:"link",size:"lg",className:"tablet:w-auto tablet:px-0 w-full py-0 text-base",children:t?.secondary?.label})]})]});case d.HeaderNavigationMenu.Third:return(0,e.jsx)("div",{className:"tablet:px-8 laptop:px-16 p-4",children:l?.subSubCategories?l?.subSubCategories?.map((o,n)=>{const b=a?.find(u=>u.label.toLowerCase()===o?.label?.toLowerCase())||{};return(0,e.jsxs)("div",{children:[Reflect.ownKeys(o).length>0&&(0,e.jsx)(c.ResourceSubSubCategoryItemComp,{matchResourcesMetadata:b,onSubSubCategoryItemClick:()=>{m?.(o,n),w(u=>u.map((v,N)=>({...v,open:N===n?!v.open:v.open})))},expanded:!!y?.find(u=>u.index===n)?.open}),y?.find(u=>u.index===n)?.open&&(0,e.jsx)(c.ResourceSubSubCategoryContentComp,{matchResourcesMetadata:b})]},`${o.label}-${n}`)}):(0,e.jsxs)(e.Fragment,{children:[Reflect.ownKeys(p).length>0&&(0,e.jsx)(c.ResourceSubSubCategoryItemComp,{matchResourcesMetadata:p}),(0,e.jsx)(c.ResourceSubSubCategoryContentComp,{matchResourcesMetadata:p})]})});default:return null}},[r,t,a,S,y,l,p,C,m])};
|
|
2
|
+
//# sourceMappingURL=MobileResourceSidebarMenu.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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'\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-4\">\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 d=\"M9 5L16 12L9 19\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\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 [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={`${resourceCategoriesMetadata?.primary?.url}?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={resourceCategoriesMetadata?.secondary?.url}\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 ])\n\n return MobileResourceSidebarMenuComp\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["MobileResourceSidebarMenu_exports", "__export", "MobileResourceSidebarMenu", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_types", "import_NavProvider", "import_ResourceItem", "MenuItem", "label", "onClick", "active", "resourceCategoriesMetadata", "resourcesMetadata", "currentMenu", "setCurrentMenu", "subSubCategory", "setSubSubCategory", "onSidebarNavClick", "currentResourceMetadata", "setCurrentResourceMetadata", "expandedSubcategory", "setExpandedSubcategory", "expandedResourceCategories", "setExpandedResourceCategories", "_", "index", "handleSubSubCategoryClick", "item", "curResourcesMetadata", "resourceItem", "subSubCategoryItem", "prev", "i"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 移动端侧边栏下拉
|
|
3
|
+
* @param sidebarCategoriesMetadata 侧边栏分类元数据
|
|
4
|
+
* @param seriesMetadata 侧边栏系列元数据
|
|
5
|
+
*/
|
|
6
|
+
export declare const MobileSidebarMenu: ({ sidebarCategoriesMetadata, seriesMetadata, }: {
|
|
7
|
+
sidebarCategoriesMetadata: any;
|
|
8
|
+
seriesMetadata: any;
|
|
9
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var x=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var _=(l,r)=>{for(var d in r)x(l,d,{get:r[d],enumerable:!0})},E=(l,r,d,m)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of z(r))!D.call(l,i)&&i!==d&&x(l,i,{get:()=>r[i],enumerable:!(m=B(r,i))||m.enumerable});return l};var R=l=>E(x({},"__esModule",{value:!0}),l);var F={};_(F,{MobileSidebarMenu:()=>T});module.exports=R(F);var e=require("react/jsx-runtime"),c=require("react"),u=require("../../components/index.js"),f=require("./types.js"),L=require("./NavProvider.js"),p=require("./MobileMenuComponents.js");const T=({sidebarCategoriesMetadata:l,seriesMetadata:r})=>{const{currentMenu:d,setCurrentMenu:m,subSubCategory:i,setSubSubCategory:C,setCurrentSeriesMetadata:g,currentSeriesMetadata:s,buildProps:y,onSidebarNavClick:S}=(0,L.useNavContext)(),[N,$]=(0,c.useState)([]),[v,w]=(0,c.useState)([]);(0,c.useEffect)(()=>{l?.subcategories?.length&&$(l?.subcategories?.map((a,t)=>({index:t,open:!1})))},[l]),(0,c.useEffect)(()=>{i?.subSubCategories?.length&&w(i?.subSubCategories?.map((a,t)=>({index:t,open:t===0})))},[i]);const k=(0,c.useCallback)((a,t)=>{m&&m(f.HeaderNavigationMenu.Third),C?.(a);const o=r?.find(n=>t!==void 0?a?.subSubCategories?.[t]?.label?.toLowerCase()===n.label?.toLowerCase():a?.label?.toLowerCase()===n.label?.toLowerCase())||{};if(a?.collections){const n=y?.categories?.[a?.collections]||{};g?.({label:o?.label,isCollection:!0,banner:o?.banner,primary:o?.primary,guide:o?.guide,series:[{products:n?.products}]})}else g?.(o)},[r,m,C,g,y?.categories]),K=(0,c.useMemo)(()=>r?.find(a=>!!a?.guide)?.guide,[r]);return(0,c.useMemo)(()=>{switch(d){case f.HeaderNavigationMenu.Secondary:return(0,e.jsxs)("div",{className:"tablet:px-8 laptop:px-16 tablet:justify-start tablet:gap-16 flex h-full flex-col justify-between p-4",children:[(0,e.jsx)("div",{children:l?.subcategories?.map((a,t)=>(0,e.jsx)("div",{children:(0,e.jsx)(p.MenuItem,{label:a?.label,active:N.find(o=>o.index===t)?.open,onClick:()=>{k(a),S?.(a,t)}})},`${a.label}-${t}`))}),(0,e.jsxs)("div",{className:"tablet:items-start flex flex-col items-center gap-4",children:[l?.primary&&(0,e.jsx)(u.Button,{as:"a",href:`${l?.primary?.url}?ref=${l?.primary?.label}_shopall`,variant:"primary",size:"lg",className:"tablet:w-auto w-full text-base",children:l?.primary?.label}),l?.secondary&&(0,e.jsx)(u.Button,{as:"a",href:l?.secondary?.url,variant:"link",size:"lg",className:"tablet:w-auto tablet:px-0 w-full py-0 text-base",children:l?.secondary?.label})]})]});case f.HeaderNavigationMenu.Third:return(0,e.jsx)("div",{className:"tablet:px-8 laptop:px-16 p-4",children:i?.subSubCategories?i?.subSubCategories?.map((a,t)=>{const o=r?.find(b=>b.label.toLowerCase()===a?.label?.toLowerCase())||{};let n={};if(a?.collections){const b=y?.categories?.[a?.collections]||{};n={label:o?.label,isCollection:!0,banner:o?.banner,primary:o?.primary,guide:o?.guide,series:[{products:b?.products}]}}else n=o;return(0,e.jsxs)("div",{children:[Reflect.ownKeys(a).length>0&&(0,e.jsx)(p.SubSubCategoryItemComp,{matchSeriesMetadata:n,onSubSubCategoryItemClick:()=>{S?.(a,t),w(b=>b.map((h,M)=>({...h,open:M===t?!h.open:h.open})))},expanded:!!v?.find(b=>b.index===t)?.open}),v?.find(b=>b.index===t)?.open&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(p.SubSubCategoryContentComp,{matchSeriesMetadata:n}),n?.primary&&(0,e.jsx)("div",{className:"my-4 text-center",children:(0,e.jsx)(u.Button,{as:"a",href:n?.primary?.url,className:"text-base leading-[1.2] no-underline",variant:"secondary",size:"base",children:n?.primary?.label})})]}),n?.guide?.label&&(0,e.jsx)(u.Link,{href:n?.guide?.url,children:(0,e.jsx)("div",{className:"mt-4",children:(0,e.jsx)(u.Text,{html:n?.guide?.label,className:"text-sm font-bold leading-[1.2] text-[#6D6D6F]"})})})]},`${a.label}-${t}`)}):(0,e.jsxs)(e.Fragment,{children:[Reflect.ownKeys(s).length>0&&(0,e.jsx)(p.SubSubCategoryItemComp,{matchSeriesMetadata:s}),(0,e.jsx)(p.SubSubCategoryContentComp,{matchSeriesMetadata:s}),s?.primary&&(0,e.jsx)("div",{className:"my-4 text-center ",children:(0,e.jsx)(u.Button,{as:"a",href:`${s?.primary?.url}?ref=${s?.label}_viewmore`,variant:"secondary",size:"base",className:"text-base leading-[1.2] no-underline",children:s?.primary?.label})}),s?.guide?.label&&(0,e.jsx)(u.Link,{href:s?.guide?.url,children:(0,e.jsx)("div",{className:"mt-4",children:(0,e.jsx)(u.Text,{html:s?.guide?.label,className:"text-sm font-bold leading-[1.2] text-[#6D6D6F]"})})})]})});default:return null}},[d,l,r,N,v,i,s,y?.categories,k,S])};
|
|
2
|
+
//# sourceMappingURL=MobileSidebarMenu.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/HeaderNavigation/MobileSidebarMenu.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { Button, Text, Link } from '../../components/index.js'\nimport { HeaderNavigationMenu } from './types.js'\nimport { useNavContext } from './NavProvider.js'\nimport { MenuItem, SubSubCategoryItemComp, SubSubCategoryContentComp } from './MobileMenuComponents.js'\n\n/**\n * \u79FB\u52A8\u7AEF\u4FA7\u8FB9\u680F\u4E0B\u62C9\n * @param sidebarCategoriesMetadata \u4FA7\u8FB9\u680F\u5206\u7C7B\u5143\u6570\u636E\n * @param seriesMetadata \u4FA7\u8FB9\u680F\u7CFB\u5217\u5143\u6570\u636E\n */\nexport const MobileSidebarMenu = ({\n sidebarCategoriesMetadata,\n seriesMetadata,\n}: {\n sidebarCategoriesMetadata: any\n seriesMetadata: any\n}) => {\n const {\n currentMenu,\n setCurrentMenu,\n subSubCategory,\n setSubSubCategory,\n setCurrentSeriesMetadata,\n currentSeriesMetadata,\n buildProps,\n onSidebarNavClick,\n } = useNavContext()\n const [expandedSubcategory, setExpandedSubcategory] = useState<{ index: number; open: boolean }[]>([])\n const [expandedSeriesCategories, setExpandedSeriesCategories] = useState<{ index: number; open: boolean }[]>([])\n\n useEffect(() => {\n if (sidebarCategoriesMetadata?.subcategories?.length) {\n setExpandedSubcategory(\n sidebarCategoriesMetadata?.subcategories?.map((_: any, index: number) => ({\n index,\n open: false,\n }))\n )\n }\n }, [sidebarCategoriesMetadata])\n\n useEffect(() => {\n if (subSubCategory?.subSubCategories?.length) {\n setExpandedSeriesCategories(\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, subIndex?: number) => {\n setCurrentMenu && setCurrentMenu(HeaderNavigationMenu.Third)\n setSubSubCategory?.(item)\n const curSeriesMetadata =\n seriesMetadata?.find((seriesItem: any) =>\n subIndex !== undefined\n ? item?.subSubCategories?.[subIndex]?.label?.toLowerCase() === seriesItem.label?.toLowerCase()\n : item?.label?.toLowerCase() === seriesItem.label?.toLowerCase()\n ) || {}\n // \u901A\u8FC7categoriesMetadata\u7684subSubCategories\u7684label\u4E0Eseries\u7684label\u5339\u914D\n if (item?.collections) {\n const category = buildProps?.categories?.[item?.collections] || {}\n setCurrentSeriesMetadata?.({\n label: curSeriesMetadata?.label,\n isCollection: true,\n banner: curSeriesMetadata?.banner,\n primary: curSeriesMetadata?.primary,\n guide: curSeriesMetadata?.guide,\n series: [\n {\n products: category?.products,\n },\n ],\n })\n } else {\n setCurrentSeriesMetadata?.(curSeriesMetadata)\n }\n },\n [seriesMetadata, setCurrentMenu, setSubSubCategory, setCurrentSeriesMetadata, buildProps?.categories]\n )\n\n const defaultGuide = useMemo(() => {\n return seriesMetadata?.find((item: any) => !!item?.guide)?.guide\n }, [seriesMetadata])\n\n const MobileSidebarMenuComp = 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 {sidebarCategoriesMetadata?.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 {sidebarCategoriesMetadata?.primary && (\n <Button\n as=\"a\"\n href={`${sidebarCategoriesMetadata?.primary?.url}?ref=${sidebarCategoriesMetadata?.primary?.label}_shopall`}\n variant=\"primary\"\n size=\"lg\"\n className=\"tablet:w-auto w-full text-base\"\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 className=\"tablet:w-auto tablet:px-0 w-full py-0 text-base\"\n >\n {sidebarCategoriesMetadata?.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 curSeriesMetadata =\n seriesMetadata?.find(\n (item: any) => item.label.toLowerCase() === subSubCategoryItem?.label?.toLowerCase()\n ) || {}\n let matchSeriesMetadata = {} as any\n if (subSubCategoryItem?.collections) {\n const category = buildProps?.categories?.[subSubCategoryItem?.collections] || {}\n matchSeriesMetadata = {\n label: curSeriesMetadata?.label,\n isCollection: true,\n banner: curSeriesMetadata?.banner,\n primary: curSeriesMetadata?.primary,\n guide: curSeriesMetadata?.guide,\n series: [\n {\n products: category?.products,\n },\n ],\n }\n } else {\n matchSeriesMetadata = curSeriesMetadata\n }\n return (\n <div key={`${subSubCategoryItem.label}-${index}`}>\n {Reflect.ownKeys(subSubCategoryItem).length > 0 && (\n <SubSubCategoryItemComp\n matchSeriesMetadata={matchSeriesMetadata}\n onSubSubCategoryItemClick={() => {\n onSidebarNavClick?.(subSubCategoryItem, index)\n setExpandedSeriesCategories(prev =>\n prev.map((item, i) => ({ ...item, open: i === index ? !item.open : item.open }))\n )\n }}\n expanded={!!expandedSeriesCategories?.find(item => item.index === index)?.open}\n />\n )}\n {expandedSeriesCategories?.find(item => item.index === index)?.open && (\n <>\n <SubSubCategoryContentComp matchSeriesMetadata={matchSeriesMetadata} />\n {matchSeriesMetadata?.primary && (\n <div className=\"my-4 text-center\">\n <Button\n as=\"a\"\n href={matchSeriesMetadata?.primary?.url}\n className=\"text-base leading-[1.2] no-underline\"\n variant=\"secondary\"\n size=\"base\"\n >\n {matchSeriesMetadata?.primary?.label}\n </Button>\n </div>\n )}\n </>\n )}\n {matchSeriesMetadata?.guide?.label && (\n <Link href={matchSeriesMetadata?.guide?.url}>\n <div className=\"mt-4\">\n <Text\n html={matchSeriesMetadata?.guide?.label}\n className=\"text-sm font-bold leading-[1.2] text-[#6D6D6F]\"\n />\n </div>\n </Link>\n )}\n </div>\n )\n })\n ) : (\n <>\n {Reflect.ownKeys(currentSeriesMetadata).length > 0 && (\n <SubSubCategoryItemComp matchSeriesMetadata={currentSeriesMetadata} />\n )}\n <SubSubCategoryContentComp matchSeriesMetadata={currentSeriesMetadata} />\n {currentSeriesMetadata?.primary && (\n <div className=\"my-4 text-center \">\n <Button\n as=\"a\"\n href={`${currentSeriesMetadata?.primary?.url}?ref=${currentSeriesMetadata?.label}_viewmore`}\n variant=\"secondary\"\n size=\"base\"\n className=\"text-base leading-[1.2] no-underline\"\n >\n {currentSeriesMetadata?.primary?.label}\n </Button>\n </div>\n )}\n {currentSeriesMetadata?.guide?.label && (\n <Link href={currentSeriesMetadata?.guide?.url}>\n <div className=\"mt-4\">\n <Text\n html={currentSeriesMetadata?.guide?.label}\n className=\"text-sm font-bold leading-[1.2] text-[#6D6D6F]\"\n />\n </div>\n </Link>\n )}\n </>\n )}\n </div>\n )\n default:\n return null\n }\n }, [\n currentMenu,\n sidebarCategoriesMetadata,\n seriesMetadata,\n expandedSubcategory,\n expandedSeriesCategories,\n subSubCategory,\n currentSeriesMetadata,\n buildProps?.categories,\n handleSubSubCategoryClick,\n onSidebarNavClick,\n ])\n\n return MobileSidebarMenuComp\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["MobileSidebarMenu_exports", "__export", "MobileSidebarMenu", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_types", "import_NavProvider", "import_MobileMenuComponents", "sidebarCategoriesMetadata", "seriesMetadata", "currentMenu", "setCurrentMenu", "subSubCategory", "setSubSubCategory", "setCurrentSeriesMetadata", "currentSeriesMetadata", "buildProps", "onSidebarNavClick", "expandedSubcategory", "setExpandedSubcategory", "expandedSeriesCategories", "setExpandedSeriesCategories", "_", "index", "handleSubSubCategoryClick", "item", "subIndex", "curSeriesMetadata", "seriesItem", "category", "defaultGuide", "subSubCategoryItem", "matchSeriesMetadata", "prev", "i"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var m=(e,a)=>{for(var o in a)p(e,o,{get:a[o],enumerable:!0})},M=(e,a,o,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let l of b(a))!d.call(e,l)&&l!==o&&p(e,l,{get:()=>a[l],enumerable:!(r=n(a,l))||r.enumerable});return e};var c=e=>M(p({},"__esModule",{value:!0}),e);var u={};m(u,{MobileSupportMenu:()=>f});module.exports=c(u);var t=require("react/jsx-runtime"),k=require("react"),i=require("./MobileMenuComponents.js");const f=({supportsMetadata:e})=>(0,t.jsx)("div",{className:"tablet:px-8 laptop:px-16 p-4",children:e?.map(a=>(0,t.jsx)(i.MenuItem,{href:a.url,label:a.label,onClick:()=>{}},a.id))});
|
|
2
|
+
//# sourceMappingURL=MobileSupportMenu.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/HeaderNavigation/MobileSupportMenu.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from 'react'\nimport { MenuItem } from './MobileMenuComponents.js'\n\n/**\n * \u79FB\u52A8\u7AEFsupport\u83DC\u5355\n * @param supportsMetadata support\u83DC\u5355\u5143\u6570\u636E\n */\nexport const MobileSupportMenu = ({ supportsMetadata }: { supportsMetadata: any }) => {\n return (\n <div className=\"tablet:px-8 laptop:px-16 p-4\">\n {supportsMetadata?.map((supportItem: any) => (\n <MenuItem key={supportItem.id} href={supportItem.url} label={supportItem.label} onClick={() => {}} />\n ))}\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAWQ,IAAAI,EAAA,6BAXRC,EAAkB,iBAClBC,EAAyB,qCAMlB,MAAMJ,EAAoB,CAAC,CAAE,iBAAAK,CAAiB,OAEjD,OAAC,OAAI,UAAU,+BACZ,SAAAA,GAAkB,IAAKC,MACtB,OAAC,YAA8B,KAAMA,EAAY,IAAK,MAAOA,EAAY,MAAO,QAAS,IAAM,CAAC,GAAjFA,EAAY,EAAwE,CACpG,EACH",
|
|
6
|
+
"names": ["MobileSupportMenu_exports", "__export", "MobileSupportMenu", "__toCommonJS", "import_jsx_runtime", "import_react", "import_MobileMenuComponents", "supportsMetadata", "supportItem"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 多列下拉
|
|
3
|
+
* @param categoriesItem 分类项
|
|
4
|
+
*/
|
|
5
|
+
export declare const MulticolDropdown: ({ multicolMetadata }: {
|
|
6
|
+
multicolMetadata: any;
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* 多列下拉项
|
|
10
|
+
* @param item 多列下拉项
|
|
11
|
+
*/
|
|
12
|
+
export declare const MulticolItem: ({ item, allPicture }: {
|
|
13
|
+
item: any;
|
|
14
|
+
allPicture?: boolean;
|
|
15
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var b=(l,o)=>{for(var a in o)d(l,a,{get:o[a],enumerable:!0})},u=(l,o,a,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of m(o))!c.call(l,r)&&r!==a&&d(l,r,{get:()=>o[r],enumerable:!(n=p(o,r))||n.enumerable});return l};var f=l=>u(d({},"__esModule",{value:!0}),l);var v={};b(v,{MulticolDropdown:()=>h,MulticolItem:()=>x});module.exports=f(v);var e=require("react/jsx-runtime"),i=require("react"),t=require("../../components/index.js"),s=require("../../helpers/utils.js");const h=({multicolMetadata:l})=>{const o=(0,i.useRef)(null);return(0,e.jsx)("div",{ref:o,children:(0,e.jsx)(t.Container,{childClassName:"bg-white",className:"h-full",children:(0,e.jsx)("div",{className:"flex gap-4 py-4",children:l?.map((a,n)=>(0,e.jsx)("div",{className:"w-1/4",children:(0,e.jsx)(x,{item:a})},`multicolItem-${a?.label}-${n}`))})})})},x=({item:l,allPicture:o})=>(0,e.jsxs)(e.Fragment,{children:[l?.columns&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Text,{html:l.label,as:"div",className:"my-2 text-sm font-bold leading-[1.4] text-[#6D6D6F]"}),(0,e.jsx)("div",{className:"mt-2 flex flex-col",children:l.columns?.map(a=>(0,e.jsxs)("div",{className:"flex items-center gap-1 py-2",children:[(0,e.jsx)(t.Link,{href:`${a.url}?ref=navMenu`,asChild:!a.url,className:"text-sm font-bold leading-[1.4] no-underline",children:a.label}),a?.badge&&(0,e.jsx)(t.Text,{as:"p",html:a?.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]"})]},a.label))})]}),l?.imageUrl&&(0,e.jsx)("div",{className:(0,s.cn)("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":o}),children:(0,e.jsxs)(t.Link,{href:`${l.url}?ref=navMenu`,asChild:!l.url,children:[(0,e.jsx)(t.Picture,{source:l.imageUrl,width:404,height:280,className:"size-full",imgClassName:"object-cover h-full hover:scale-105 transition-all duration-300"}),(0,e.jsxs)("div",{className:"absolute bottom-4 left-4 z-10 flex flex-col justify-end no-underline",children:[(0,e.jsx)(t.Text,{html:l.title,className:(0,s.cn)("lg-desktop:text-2xl text-xl font-bold leading-[1.2] text-white",{"text-black":l?.theme==="dark"})}),l.subtitle&&(0,e.jsx)(t.Text,{html:l.subtitle,className:(0,s.cn)("text-sm font-bold leading-[1.4] text-white",{"text-black":l?.theme==="dark"})}),l?.primary?.label&&(0,e.jsx)(t.Button,{as:"a",href:l?.primary?.url,variant:"link",size:"lg",className:(0,s.cn)("mr-auto !p-0 text-sm font-bold leading-[1.4] text-white",{"text-black":l?.theme==="dark"}),children:l?.primary?.label||"more"})]})]})})]});
|
|
2
|
+
//# sourceMappingURL=MulticolDropdown.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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 { cn } from '../../helpers/utils.js'\n\n/**\n * \u591A\u5217\u4E0B\u62C9\n * @param categoriesItem \u5206\u7C7B\u9879\n */\nexport const MulticolDropdown = ({ multicolMetadata }: { multicolMetadata: any }) => {\n const multicolDropdownRef = useRef<HTMLDivElement>(null)\n\n return (\n <div ref={multicolDropdownRef}>\n <Container childClassName=\"bg-white\" className=\"h-full\">\n <div className=\"flex gap-4 py-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 </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 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={`${columnItem.url}?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={`${item.url}?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={item?.primary?.url}\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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,iBAAAC,IAAA,eAAAC,EAAAJ,GAiBc,IAAAK,EAAA,6BAjBdC,EAA8B,iBAC9BC,EAAuD,qCACvDC,EAAmB,kCAMZ,MAAMN,EAAmB,CAAC,CAAE,iBAAAO,CAAiB,IAAiC,CACnF,MAAMC,KAAsB,UAAuB,IAAI,EAEvD,SACE,OAAC,OAAI,IAAKA,EACR,mBAAC,aAAU,eAAe,WAAW,UAAU,SAC7C,mBAAC,OAAI,UAAU,kBACZ,SAAAD,GAAkB,IAAI,CAACE,EAAWC,OACjC,OAAC,OAAiD,UAAU,QAC1D,mBAACT,EAAA,CAAa,KAAMQ,EAAM,GADlB,gBAAgBA,GAAM,KAAK,IAAIC,CAAK,EAE9C,CACD,EACH,EACF,EACF,CAEJ,EAMaT,EAAe,CAAC,CAAE,KAAAQ,EAAM,WAAAE,CAAW,OAE5C,oBACG,UAAAF,GAAM,YACL,oBACE,oBAAC,QAAK,KAAMA,EAAK,MAAO,GAAG,MAAM,UAAU,sDAAsD,KACjG,OAAC,OAAI,UAAU,qBACZ,SAAAA,EAAK,SAAS,IAAKG,MAClB,QAAC,OAA2B,UAAU,+BACpC,oBAAC,QACC,KAAM,GAAGA,EAAW,GAAG,eACvB,QAAS,CAACA,EAAW,IACrB,UAAU,+CAET,SAAAA,EAAW,MACd,EACCA,GAAY,UACX,OAAC,QACC,GAAG,IACH,KAAMA,GAAY,OAAS,QAC3B,UAAU,6HACZ,IAbMA,EAAW,KAerB,CACD,EACH,GACF,EAEDH,GAAM,aACL,OAAC,OACC,aAAW,MACT,oKACA,CACG,sCAAwCE,CAC3C,CACF,EAEA,oBAAC,QAAK,KAAM,GAAGF,EAAK,GAAG,eAAgB,QAAS,CAACA,EAAK,IACpD,oBAAC,WACC,OAAQA,EAAK,SACb,MAAO,IACP,OAAQ,IACR,UAAU,YACV,aAAa,kEACf,KACA,QAAC,OAAI,UAAU,uEACb,oBAAC,QACC,KAAMA,EAAK,MACX,aAAW,MAAG,iEAAkE,CAC9E,aAAcA,GAAM,QAAU,MAChC,CAAC,EACH,EACCA,EAAK,aACJ,OAAC,QACC,KAAMA,EAAK,SACX,aAAW,MAAG,6CAA8C,CAC1D,aAAcA,GAAM,QAAU,MAChC,CAAC,EACH,EAEDA,GAAM,SAAS,UACd,OAAC,UACC,GAAG,IACH,KAAMA,GAAM,SAAS,IACrB,QAAQ,OACR,KAAK,KACL,aAAW,MAAG,0DAA2D,CACvE,aAAcA,GAAM,QAAU,MAChC,CAAC,EAEA,SAAAA,GAAM,SAAS,OAAS,OAC3B,GAEJ,GACF,EACF,GAEJ",
|
|
6
|
+
"names": ["MulticolDropdown_exports", "__export", "MulticolDropdown", "MulticolItem", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_utils", "multicolMetadata", "multicolDropdownRef", "item", "index", "allPicture", "columnItem"]
|
|
7
|
+
}
|
|
@@ -25,6 +25,8 @@ interface NavContextType {
|
|
|
25
25
|
setCurrentSeriesMetadata?: (_metadata: any) => void;
|
|
26
26
|
subSubCategory?: any;
|
|
27
27
|
setSubSubCategory?: (_category: any) => void;
|
|
28
|
+
currentResourceMetadata?: any;
|
|
29
|
+
setCurrentResourceMetadata?: (_metadata: any) => void;
|
|
28
30
|
onSeriesProductClick?: (_seriesProduct: any, _position: number, _seriesLabel?: string) => void;
|
|
29
31
|
onSidebarNavClick?: (_series: any, _index: number, _subSubindex?: number) => void;
|
|
30
32
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var n in e)i(t,n,{get:e[n],enumerable:!0})},M=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of R(e))!T.call(t,o)&&o!==n&&i(t,o,{get:()=>e[o],enumerable:!(a=S(e,o))||a.enumerable});return t};var l=t=>M(i({},"__esModule",{value:!0}),t);var m={};p(m,{NavContext:()=>s,default:()=>U,useNavContext:()=>N});module.exports=l(m);var y=require("react/jsx-runtime"),r=require("react"),c=require("./types.js");const v={isMobile:!1,payloadData:{},buildProps:{products:[],categories:{}},currentMenu:c.HeaderNavigationMenu.Primary,setCurrentMenu:()=>{},currentSeriesMetadata:{},setCurrentSeriesMetadata:()=>{},currentResourceMetadata:{},setCurrentResourceMetadata:()=>{},onSeriesProductClick:(t,e,n)=>{},onSidebarNavClick:t=>{},cartCount:0},s=(0,r.createContext)(v),N=()=>{if(!(0,r.useContext)(s))throw new Error("useNavContext must be used in <NavProvider>");return(0,r.useContext)(s)},b=(t,e)=>{switch(e.type){case"SET_CURRENT_MENU":return{...t,currentMenu:e.value};case"SET_CURRENT_SERIES_METADATA":return{...t,currentSeriesMetadata:e.value};case"SET_SUB_SUB_CATEGORY":return{...t,subSubCategory:e.value};case"SET_CURRENT_RESOURCE_METADATA":return{...t,currentResourceMetadata:e.value}}},A=({children:t,...e})=>{const[n,a]=(0,r.useReducer)(b,{...v,currentMenu:c.HeaderNavigationMenu.Primary,setCurrentMenu:()=>{}}),o=(0,r.useCallback)(u=>a({type:"SET_CURRENT_MENU",value:u}),[a]),d=(0,r.useCallback)(u=>a({type:"SET_CURRENT_SERIES_METADATA",value:u}),[a]),C=(0,r.useCallback)(u=>a({type:"SET_SUB_SUB_CATEGORY",value:u}),[a]),_=(0,r.useCallback)(u=>a({type:"SET_CURRENT_RESOURCE_METADATA",value:u}),[a]),E=(0,r.useMemo)(()=>({...n,setCurrentMenu:o,setCurrentSeriesMetadata:d,setSubSubCategory:C,setCurrentResourceMetadata:_}),[o,d,C,_,n]);return(0,y.jsx)(s.Provider,{value:{...E,...e},children:t})};var U=A;
|
|
2
2
|
//# sourceMappingURL=NavProvider.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/HeaderNavigation/NavProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { createContext, useCallback, useContext, useMemo, useReducer } from 'react'\nimport type { Product } from '../../cpn-components/CpnProductCard/types.js'\nimport { HeaderNavigationMenu } from './types.js'\nimport type { UserProfile } from './types.js'\n\ninterface NavContextType {\n buildProps: {\n products?: Product[] // \u4EA7\u54C1\u6570\u636E\n categories?: Record<string, any> // \u5206\u7C7B\u6570\u636E\n }\n cartCount: number\n event?: {\n search?: () => void\n cart?: () => void\n profile?: () => void\n livestream?: () => void\n join?: () => void\n login?: () => void\n }\n profile?: UserProfile // \u7528\u6237\u4FE1\u606F\n isMobile?: boolean\n payloadData: any\n currentMenu?: HeaderNavigationMenu // \u5F53\u524D\u83DC\u5355\n setCurrentMenu?: (_menu: HeaderNavigationMenu) => void // \u8BBE\u7F6E\u5F53\u524D\u83DC\u5355\n currentSeriesMetadata?: any // \u5F53\u524D\u7CFB\u5217\u5143\u6570\u636E\n setCurrentSeriesMetadata?: (_metadata: any) => void // \u8BBE\u7F6E\u5F53\u524D\u7CFB\u5217\u5143\u6570\u636E\n subSubCategory?: any // \u5B50\u5B50\u5206\u7C7B\n setSubSubCategory?: (_category: any) => void // \u8BBE\u7F6E\u5B50\u5B50\u5206\u7C7B\n onSeriesProductClick?: (_seriesProduct: any, _position: number, _seriesLabel?: string) => void // \u8BBE\u7F6E\u7CFB\u5217\u4EA7\u54C1\u70B9\u51FB\n onSidebarNavClick?: (_series: any, _index: number, _subSubindex?: number) => void // \u8BBE\u7F6E\u4FA7\u8FB9\u680F\u5BFC\u822A\u70B9\u51FB\n}\n\nconst initialState: NavContextType = {\n isMobile: false,\n payloadData: {},\n buildProps: {\n products: [],\n categories: {},\n },\n currentMenu: HeaderNavigationMenu.Primary,\n setCurrentMenu: () => {},\n currentSeriesMetadata: {},\n setCurrentSeriesMetadata: () => {},\n onSeriesProductClick: (_seriesProduct: any, _position: number, _seriesLabel?: string) => {},\n onSidebarNavClick: (_series: any) => {},\n cartCount: 0,\n}\n\ntype Action =\n | {\n type: 'SET_CURRENT_MENU'\n value: HeaderNavigationMenu\n }\n | {\n type: 'SET_CURRENT_SERIES_METADATA'\n value: any\n }\n | {\n type: 'SET_SUB_SUB_CATEGORY'\n value: any\n }\nexport const NavContext = createContext<NavContextType>(initialState)\n\nexport const useNavContext = () => {\n const context = useContext(NavContext)\n if (!context) {\n throw new Error('useNavContext must be used in <NavProvider>')\n }\n return useContext(NavContext)\n}\n\nconst reducer = (state: NavContextType, action: Action) => {\n switch (action.type) {\n case 'SET_CURRENT_MENU': {\n return {\n ...state,\n currentMenu: action.value,\n }\n }\n case 'SET_CURRENT_SERIES_METADATA': {\n return {\n ...state,\n currentSeriesMetadata: action.value,\n }\n }\n case 'SET_SUB_SUB_CATEGORY': {\n return {\n ...state,\n subSubCategory: action.value,\n }\n }\n }\n}\n\nconst NavProvider = ({\n children,\n ...rest\n}: {\n children: React.ReactNode\n} & NavContextType) => {\n const [state, dispatch] = useReducer(reducer, {\n ...initialState,\n currentMenu: HeaderNavigationMenu.Primary,\n setCurrentMenu: () => {},\n })\n\n const setCurrentMenu = useCallback(\n (value: HeaderNavigationMenu) => {\n return dispatch({ type: 'SET_CURRENT_MENU', value })\n },\n [dispatch]\n )\n\n const setCurrentSeriesMetadata = useCallback(\n (value: any) => {\n return dispatch({ type: 'SET_CURRENT_SERIES_METADATA', value })\n },\n [dispatch]\n )\n\n const setSubSubCategory = useCallback(\n (value: any) => {\n return dispatch({ type: 'SET_SUB_SUB_CATEGORY', value })\n },\n [dispatch]\n )\n\n const value = useMemo(\n () => ({\n ...state,\n setCurrentMenu,\n setCurrentSeriesMetadata,\n setSubSubCategory,\n }),\n [setCurrentMenu, setCurrentSeriesMetadata, setSubSubCategory, state]\n )\n\n return <NavContext.Provider value={{ ...value, ...rest }}>{children}</NavContext.Provider>\n}\n\nexport default NavProvider\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,YAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAL,
|
|
6
|
-
"names": ["NavProvider_exports", "__export", "NavContext", "NavProvider_default", "useNavContext", "__toCommonJS", "import_jsx_runtime", "import_react", "import_types", "initialState", "_seriesProduct", "_position", "_seriesLabel", "_series", "reducer", "state", "action", "NavProvider", "children", "rest", "dispatch", "setCurrentMenu", "value", "setCurrentSeriesMetadata", "setSubSubCategory"]
|
|
4
|
+
"sourcesContent": ["import React, { createContext, useCallback, useContext, useMemo, useReducer } from 'react'\nimport type { Product } from '../../cpn-components/CpnProductCard/types.js'\nimport { HeaderNavigationMenu } from './types.js'\nimport type { UserProfile } from './types.js'\n\ninterface NavContextType {\n buildProps: {\n products?: Product[] // \u4EA7\u54C1\u6570\u636E\n categories?: Record<string, any> // \u5206\u7C7B\u6570\u636E\n }\n cartCount: number\n event?: {\n search?: () => void\n cart?: () => void\n profile?: () => void\n livestream?: () => void\n join?: () => void\n login?: () => void\n }\n profile?: UserProfile // \u7528\u6237\u4FE1\u606F\n isMobile?: boolean\n payloadData: any\n currentMenu?: HeaderNavigationMenu // \u5F53\u524D\u83DC\u5355\n setCurrentMenu?: (_menu: HeaderNavigationMenu) => void // \u8BBE\u7F6E\u5F53\u524D\u83DC\u5355\n currentSeriesMetadata?: any // \u5F53\u524D\u7CFB\u5217\u5143\u6570\u636E\n setCurrentSeriesMetadata?: (_metadata: any) => void // \u8BBE\u7F6E\u5F53\u524D\u7CFB\u5217\u5143\u6570\u636E\n subSubCategory?: any // \u5B50\u5B50\u5206\u7C7B\n setSubSubCategory?: (_category: any) => void // \u8BBE\u7F6E\u5B50\u5B50\u5206\u7C7B\n currentResourceMetadata?: any // \u5F53\u524D\u8D44\u6E90\u4F4D\u5143\u6570\u636E\n setCurrentResourceMetadata?: (_metadata: any) => void // \u8BBE\u7F6E\u5F53\u524D\u8D44\u6E90\u4F4D\u5143\u6570\u636E\n onSeriesProductClick?: (_seriesProduct: any, _position: number, _seriesLabel?: string) => void // \u8BBE\u7F6E\u7CFB\u5217\u4EA7\u54C1\u70B9\u51FB\n onSidebarNavClick?: (_series: any, _index: number, _subSubindex?: number) => void // \u8BBE\u7F6E\u4FA7\u8FB9\u680F\u5BFC\u822A\u70B9\u51FB\n}\n\nconst initialState: NavContextType = {\n isMobile: false,\n payloadData: {},\n buildProps: {\n products: [],\n categories: {},\n },\n currentMenu: HeaderNavigationMenu.Primary,\n setCurrentMenu: () => {},\n currentSeriesMetadata: {},\n setCurrentSeriesMetadata: () => {},\n currentResourceMetadata: {},\n setCurrentResourceMetadata: () => {},\n onSeriesProductClick: (_seriesProduct: any, _position: number, _seriesLabel?: string) => {},\n onSidebarNavClick: (_series: any) => {},\n cartCount: 0,\n}\n\ntype Action =\n | {\n type: 'SET_CURRENT_MENU'\n value: HeaderNavigationMenu\n }\n | {\n type: 'SET_CURRENT_SERIES_METADATA'\n value: any\n }\n | {\n type: 'SET_SUB_SUB_CATEGORY'\n value: any\n }\n | {\n type: 'SET_CURRENT_RESOURCE_METADATA'\n value: any\n }\nexport const NavContext = createContext<NavContextType>(initialState)\n\nexport const useNavContext = () => {\n const context = useContext(NavContext)\n if (!context) {\n throw new Error('useNavContext must be used in <NavProvider>')\n }\n return useContext(NavContext)\n}\n\nconst reducer = (state: NavContextType, action: Action) => {\n switch (action.type) {\n case 'SET_CURRENT_MENU': {\n return {\n ...state,\n currentMenu: action.value,\n }\n }\n case 'SET_CURRENT_SERIES_METADATA': {\n return {\n ...state,\n currentSeriesMetadata: action.value,\n }\n }\n case 'SET_SUB_SUB_CATEGORY': {\n return {\n ...state,\n subSubCategory: action.value,\n }\n }\n case 'SET_CURRENT_RESOURCE_METADATA': {\n return {\n ...state,\n currentResourceMetadata: action.value,\n }\n }\n }\n}\n\nconst NavProvider = ({\n children,\n ...rest\n}: {\n children: React.ReactNode\n} & NavContextType) => {\n const [state, dispatch] = useReducer(reducer, {\n ...initialState,\n currentMenu: HeaderNavigationMenu.Primary,\n setCurrentMenu: () => {},\n })\n\n const setCurrentMenu = useCallback(\n (value: HeaderNavigationMenu) => {\n return dispatch({ type: 'SET_CURRENT_MENU', value })\n },\n [dispatch]\n )\n\n const setCurrentSeriesMetadata = useCallback(\n (value: any) => {\n return dispatch({ type: 'SET_CURRENT_SERIES_METADATA', value })\n },\n [dispatch]\n )\n\n const setSubSubCategory = useCallback(\n (value: any) => {\n return dispatch({ type: 'SET_SUB_SUB_CATEGORY', value })\n },\n [dispatch]\n )\n\n const setCurrentResourceMetadata = useCallback(\n (value: any) => {\n return dispatch({ type: 'SET_CURRENT_RESOURCE_METADATA', value })\n },\n [dispatch]\n )\n\n const value = useMemo(\n () => ({\n ...state,\n setCurrentMenu,\n setCurrentSeriesMetadata,\n setSubSubCategory,\n setCurrentResourceMetadata,\n }),\n [setCurrentMenu, setCurrentSeriesMetadata, setSubSubCategory, setCurrentResourceMetadata, state]\n )\n\n return <NavContext.Provider value={{ ...value, ...rest }}>{children}</NavContext.Provider>\n}\n\nexport default NavProvider\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,YAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAL,GA+JS,IAAAM,EAAA,6BA/JTC,EAAmF,iBAEnFC,EAAqC,sBAgCrC,MAAMC,EAA+B,CACnC,SAAU,GACV,YAAa,CAAC,EACd,WAAY,CACV,SAAU,CAAC,EACX,WAAY,CAAC,CACf,EACA,YAAa,uBAAqB,QAClC,eAAgB,IAAM,CAAC,EACvB,sBAAuB,CAAC,EACxB,yBAA0B,IAAM,CAAC,EACjC,wBAAyB,CAAC,EAC1B,2BAA4B,IAAM,CAAC,EACnC,qBAAsB,CAACC,EAAqBC,EAAmBC,IAA0B,CAAC,EAC1F,kBAAoBC,GAAiB,CAAC,EACtC,UAAW,CACb,EAmBaX,KAAa,iBAA8BO,CAAY,EAEvDL,EAAgB,IAAM,CAEjC,GAAI,IADY,cAAWF,CAAU,EAEnC,MAAM,IAAI,MAAM,6CAA6C,EAE/D,SAAO,cAAWA,CAAU,CAC9B,EAEMY,EAAU,CAACC,EAAuBC,IAAmB,CACzD,OAAQA,EAAO,KAAM,CACnB,IAAK,mBACH,MAAO,CACL,GAAGD,EACH,YAAaC,EAAO,KACtB,EAEF,IAAK,8BACH,MAAO,CACL,GAAGD,EACH,sBAAuBC,EAAO,KAChC,EAEF,IAAK,uBACH,MAAO,CACL,GAAGD,EACH,eAAgBC,EAAO,KACzB,EAEF,IAAK,gCACH,MAAO,CACL,GAAGD,EACH,wBAAyBC,EAAO,KAClC,CAEJ,CACF,EAEMC,EAAc,CAAC,CACnB,SAAAC,EACA,GAAGC,CACL,IAEuB,CACrB,KAAM,CAACJ,EAAOK,CAAQ,KAAI,cAAWN,EAAS,CAC5C,GAAGL,EACH,YAAa,uBAAqB,QAClC,eAAgB,IAAM,CAAC,CACzB,CAAC,EAEKY,KAAiB,eACpBC,GACQF,EAAS,CAAE,KAAM,mBAAoB,MAAAE,CAAM,CAAC,EAErD,CAACF,CAAQ,CACX,EAEMG,KAA2B,eAC9BD,GACQF,EAAS,CAAE,KAAM,8BAA+B,MAAAE,CAAM,CAAC,EAEhE,CAACF,CAAQ,CACX,EAEMI,KAAoB,eACvBF,GACQF,EAAS,CAAE,KAAM,uBAAwB,MAAAE,CAAM,CAAC,EAEzD,CAACF,CAAQ,CACX,EAEMK,KAA6B,eAChCH,GACQF,EAAS,CAAE,KAAM,gCAAiC,MAAAE,CAAM,CAAC,EAElE,CAACF,CAAQ,CACX,EAEME,KAAQ,WACZ,KAAO,CACL,GAAGP,EACH,eAAAM,EACA,yBAAAE,EACA,kBAAAC,EACA,2BAAAC,CACF,GACA,CAACJ,EAAgBE,EAA0BC,EAAmBC,EAA4BV,CAAK,CACjG,EAEA,SAAO,OAACb,EAAW,SAAX,CAAoB,MAAO,CAAE,GAAGoB,EAAO,GAAGH,CAAK,EAAI,SAAAD,EAAS,CACtE,EAEA,IAAOf,EAAQc",
|
|
6
|
+
"names": ["NavProvider_exports", "__export", "NavContext", "NavProvider_default", "useNavContext", "__toCommonJS", "import_jsx_runtime", "import_react", "import_types", "initialState", "_seriesProduct", "_position", "_seriesLabel", "_series", "reducer", "state", "action", "NavProvider", "children", "rest", "dispatch", "setCurrentMenu", "value", "setCurrentSeriesMetadata", "setSubSubCategory", "setCurrentResourceMetadata"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 资源位项组件 - 桌面端
|
|
3
|
+
*/
|
|
4
|
+
export declare const ResourceItem: ({ resource }: {
|
|
5
|
+
resource: any;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
/**
|
|
8
|
+
* 资源位子分类标题组件 - 移动端
|
|
9
|
+
*/
|
|
10
|
+
export declare const ResourceSubSubCategoryItemComp: ({ matchResourcesMetadata, onSubSubCategoryItemClick, expanded, }: {
|
|
11
|
+
matchResourcesMetadata: any;
|
|
12
|
+
onSubSubCategoryItemClick?: () => void;
|
|
13
|
+
expanded?: boolean;
|
|
14
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
/**
|
|
16
|
+
* 资源位子分类内容组件 - 移动端
|
|
17
|
+
*/
|
|
18
|
+
export declare const ResourceSubSubCategoryContentComp: ({ matchResourcesMetadata }: {
|
|
19
|
+
matchResourcesMetadata: any;
|
|
20
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var c=(t,a)=>{for(var i in a)d(t,i,{get:a[i],enumerable:!0})},x=(t,a,i,s)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of m(a))!h.call(t,n)&&n!==i&&d(t,n,{get:()=>a[n],enumerable:!(s=r(a,n))||s.enumerable});return t};var v=t=>x(d({},"__esModule",{value:!0}),t);var g={};c(g,{ResourceItem:()=>p,ResourceSubSubCategoryContentComp:()=>f,ResourceSubSubCategoryItemComp:()=>b});module.exports=v(g);var e=require("react/jsx-runtime"),l=require("../../components/index.js"),o=require("../../helpers/utils.js");const p=({resource:t})=>(0,e.jsx)("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:(0,e.jsx)(l.Link,{href:t?.href,className:"no-underline hover:text-current",children:(0,e.jsxs)("div",{className:"relative h-full overflow-hidden [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500",children:[(0,e.jsx)(l.Picture,{source:t.imageUrl,width:404,height:280,className:"size-full",imgClassName:"object-cover h-full hover:scale-105 transition-all duration-300"}),(0,e.jsxs)("div",{className:"absolute inset-x-0 bottom-0 p-4",children:[(0,e.jsx)(l.Text,{as:"p",html:t?.title,className:(0,o.cn)("text-xl font-bold leading-[1.2]",{"text-white":t?.theme!=="dark","text-black":t?.theme==="dark"})}),t?.desc&&(0,e.jsx)(l.Text,{html:t?.desc,className:(0,o.cn)("text-sm font-bold leading-[1.4]",{"text-white":t?.theme!=="dark","text-black":t?.theme==="dark"})})]})]})})}),b=({matchResourcesMetadata:t,onSubSubCategoryItemClick:a,expanded:i})=>{const s=(0,e.jsxs)(e.Fragment,{children:[t?.label&&(0,e.jsx)(l.Text,{html:t?.label,className:"text-sm font-bold leading-[1.4]"}),a&&(0,e.jsx)("svg",{className:(0,o.cn)("size-5",{"rotate-180":i}),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M6 9L12 15L18 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]});return a?(0,e.jsx)("button",{className:"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent py-4 text-left",onClick:a,"aria-expanded":i,children:s}):(0,e.jsx)("div",{className:"flex items-center justify-between py-4",children:s})},f=({matchResourcesMetadata:t})=>(0,e.jsx)("div",{className:"tablet:grid tablet:grid-cols-2 flex grid-cols-1 flex-col gap-4",children:!!t?.resources?.length&&t?.resources?.map((a,i)=>(0,e.jsx)(l.Link,{href:a?.href,className:"no-underline hover:text-current",children:(0,e.jsx)("div",{className:"laptop:h-[280px] tablet:max-w-none relative h-[240px] max-w-[358px]",children:(0,e.jsxs)("div",{className:"relative h-full overflow-hidden",children:[(0,e.jsx)(l.Picture,{source:a.imageUrl,width:404,height:280,className:"size-full",imgClassName:"object-cover h-full hover:scale-105 transition-all duration-300"}),(0,e.jsxs)("div",{className:"absolute inset-x-0 bottom-0 p-4",children:[(0,e.jsx)(l.Text,{html:a?.title,as:"p",className:(0,o.cn)("text-xl font-bold leading-[1.2]",{"text-white":a?.theme!=="dark","text-black":a?.theme==="dark"})}),a?.desc&&(0,e.jsx)(l.Text,{html:a?.desc,className:(0,o.cn)("text-sm font-bold leading-[1.4]",{"text-white":a?.theme!=="dark","text-black":a?.theme==="dark"})})]})]})})},`resourceItem-${i}`))});
|
|
2
|
+
//# sourceMappingURL=ResourceItem.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/HeaderNavigation/ResourceItem.tsx"],
|
|
4
|
+
"sourcesContent": ["import { Picture, Text, Link } from '../../components/index.js'\nimport { cn } from '../../helpers/utils.js'\n\n/**\n * \u8D44\u6E90\u4F4D\u9879\u7EC4\u4EF6 - \u684C\u9762\u7AEF\n */\nexport const ResourceItem = ({ resource }: { resource: any }) => {\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={resource?.href} 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 9L12 15L18 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\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 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 key={`resourceItem-${rIndex}`} href={resourceItem?.href} className=\"no-underline hover:text-current\">\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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,EAAA,sCAAAC,EAAA,mCAAAC,IAAA,eAAAC,EAAAL,GAWU,IAAAM,EAAA,6BAXVC,EAAoC,qCACpCC,EAAmB,kCAKZ,MAAMN,EAAe,CAAC,CAAE,SAAAO,CAAS,OAEpC,OAAC,OAAI,UAAU,4IACb,mBAAC,QAAK,KAAMA,GAAU,KAAM,UAAU,kCACpC,oBAAC,OAAI,UAAU,kHACb,oBAAC,WACC,OAAQA,EAAS,SACjB,MAAO,IACP,OAAQ,IACR,UAAU,YACV,aAAa,kEACf,KACA,QAAC,OAAI,UAAU,kCACb,oBAAC,QACC,GAAG,IACH,KAAMA,GAAU,MAChB,aAAW,MAAG,kCAAmC,CAC/C,aAAcA,GAAU,QAAU,OAClC,aAAcA,GAAU,QAAU,MACpC,CAAC,EACH,EACCA,GAAU,SACT,OAAC,QACC,KAAMA,GAAU,KAChB,aAAW,MAAG,kCAAmC,CAC/C,aAAcA,GAAU,QAAU,OAClC,aAAcA,GAAU,QAAU,MACpC,CAAC,EACH,GAEJ,GACF,EACF,EACF,EAOSL,EAAiC,CAAC,CAC7C,uBAAAM,EACA,0BAAAC,EACA,SAAAC,CACF,IAIM,CACJ,MAAMC,KACJ,oBACG,UAAAH,GAAwB,UACvB,OAAC,QAAK,KAAMA,GAAwB,MAAO,UAAU,kCAAkC,EAExFC,MACC,OAAC,OACC,aAAW,MAAG,SAAU,CACrB,aAAeC,CAClB,CAAC,EACD,QAAQ,YACR,KAAK,OACL,MAAM,6BACN,cAAY,OAEZ,mBAAC,QACC,EAAE,kBACF,OAAO,eACP,YAAY,IACZ,cAAc,QACd,eAAe,QACjB,EACF,GAEJ,EAGF,OAAOD,KACL,OAAC,UACC,UAAU,iGACV,QAASA,EACT,gBAAeC,EAEd,SAAAC,EACH,KAEA,OAAC,OAAI,UAAU,yCAA0C,SAAAA,EAAQ,CAErE,EAKaV,EAAoC,CAAC,CAAE,uBAAAO,CAAuB,OAEvE,OAAC,OAAI,UAAU,iEACZ,UAAC,CAACA,GAAwB,WAAW,QACpCA,GAAwB,WAAW,IAAI,CAACI,EAAmBC,OACzD,OAAC,QAAoC,KAAMD,GAAc,KAAM,UAAU,kCACvE,mBAAC,OAAI,UAAU,sEACb,oBAAC,OAAI,UAAU,kCACb,oBAAC,WACC,OAAQA,EAAa,SACrB,MAAO,IACP,OAAQ,IACR,UAAU,YACV,aAAa,kEACf,KACA,QAAC,OAAI,UAAU,kCACb,oBAAC,QACC,KAAMA,GAAc,MACpB,GAAG,IACH,aAAW,MAAG,kCAAmC,CAC/C,aAAcA,GAAc,QAAU,OACtC,aAAcA,GAAc,QAAU,MACxC,CAAC,EACH,EACCA,GAAc,SACb,OAAC,QACC,KAAMA,GAAc,KACpB,aAAW,MAAG,kCAAmC,CAC/C,aAAcA,GAAc,QAAU,OACtC,aAAcA,GAAc,QAAU,MACxC,CAAC,EACH,GAEJ,GACF,EACF,GA9BS,gBAAgBC,CAAM,EA+BjC,CACD,EACL",
|
|
6
|
+
"names": ["ResourceItem_exports", "__export", "ResourceItem", "ResourceSubSubCategoryContentComp", "ResourceSubSubCategoryItemComp", "__toCommonJS", "import_jsx_runtime", "import_components", "import_utils", "resource", "matchResourcesMetadata", "onSubSubCategoryItemClick", "expanded", "content", "resourceItem", "rIndex"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 资源位侧边栏下拉
|
|
4
|
+
* @param categoriesItem 分类项
|
|
5
|
+
*/
|
|
6
|
+
export declare const ResourceSidebarDropdown: React.MemoExoticComponent<({ resourceCategoriesMetadata, resourcesMetadata }: {
|
|
7
|
+
resourceCategoriesMetadata: any;
|
|
8
|
+
resourcesMetadata: any;
|
|
9
|
+
}) => import("react/jsx-runtime").JSX.Element>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var F=Object.create;var m=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var O=(e,s)=>{for(var u in s)m(e,u,{get:s[u],enumerable:!0})},S=(e,s,u,d)=>{if(s&&typeof s=="object"||typeof s=="function")for(let c of D(s))!L.call(e,c)&&c!==u&&m(e,c,{get:()=>s[c],enumerable:!(d=$(s,c))||d.enumerable});return e};var z=(e,s,u)=>(u=e!=null?F(E(e)):{},S(s||!e||!e.__esModule?m(u,"default",{value:e,enumerable:!0}):u,e)),B=e=>S(m({},"__esModule",{value:!0}),e);var I={};O(I,{ResourceSidebarDropdown:()=>k});module.exports=B(I);var n=require("react/jsx-runtime"),i=z(require("react")),p=require("../../components/index.js"),f=require("../../helpers/utils.js"),h=require("./icons/index.js"),w=require("./NavProvider.js"),N=require("./ResourceItem.js");const k=i.default.memo(({resourceCategoriesMetadata:e,resourcesMetadata:s})=>{const{onSidebarNavClick:u}=(0,w.useNavContext)(),[d,c]=(0,i.useState)([]),[y,g]=(0,i.useState)(-1),C=(0,i.useRef)(null),x=(0,i.useCallback)(()=>{const o=e?.subcategories;if(!o?.length)return;const a=o.findIndex(l=>!!l?.subSubCategories),t=o.findIndex(l=>!l?.subSubCategories),r=o.map((l,b)=>({index:b,open:a===b||t===b}));c(r)},[e]);(0,i.useEffect)(()=>{x()},[x]);const v=(0,i.useMemo)(()=>{const o=e?.subcategories?.[d?.find(t=>t.open)?.index||0],a=s?.find(t=>t?.label?.toLowerCase()===o?.label?.toLowerCase())||{};if(o?.subSubCategories){const t=o?.subSubCategories?.[y];return s?.find(l=>l?.label?.toLowerCase()===t?.label?.toLowerCase())||{}}else return a},[e,d,y,s]),R=(0,i.useCallback)((o,a)=>{a?.subSubCategories?.length>0?g(0):g(-1),c(t=>t.map((r,l)=>({...r,open:l===o?!r.open:!1})))},[]),A=(o,a)=>{c(t=>t.map(r=>r.index===o?{...r,open:!0}:{...r,open:!1})),g(a)};return(0,n.jsxs)(p.Container,{childClassName:"lg-desktop:gap-12 flex bg-white gap-8",children:[(0,n.jsxs)("div",{className:"lg-desktop:basis-[356px] flex basis-[284px] flex-col gap-4 py-4",style:{userSelect:"none"},ref:C,children:[(0,n.jsx)("div",{className:"desktop:h-[416px] flex flex-col overflow-y-auto",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:e?.subcategories?.map((o,a)=>{const t=Array.isArray(o?.subSubCategories)&&o?.subSubCategories?.length>0,r=d?.find(l=>l.index===a)?.open;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{className:(0,f.cn)("flex w-full cursor-pointer items-center justify-between border-0 bg-transparent text-left",{"bg-[#F5F5F7]":!t&&r}),onClick:()=>{R(a,o),u?.(o,a)},"aria-expanded":t?r:void 0,"aria-haspopup":t?"true":void 0,children:[(0,n.jsx)(p.Text,{html:o.label,className:"p-4 text-sm font-bold leading-[1.4]"}),t&&(0,n.jsx)(h.DownArrow,{"aria-hidden":"true",className:(0,f.cn)("size-4",{"rotate-180":r})})]}),r&&(0,n.jsx)("div",{className:"flex flex-col",role:"menu",children:o.subSubCategories?.map((l,b)=>(0,n.jsx)("button",{onClick:()=>{A(a,b),u?.(l,b)},className:(0,f.cn)("w-full cursor-pointer border-0 bg-transparent px-6 py-4 text-left hover:bg-[#F5F5F7]",{"bg-[#F5F5F7]":y===b}),role:"menuitem","aria-label":l.label,children:(0,n.jsx)(p.Text,{html:l.label,className:"text-sm font-bold leading-[1.4] text-[#4A4C56]"})},`subSubItem-${a}-${b}`))})]},`subcategoryItem-${a}`)})}),e&&(0,n.jsx)("div",{className:"flex",children:(0,n.jsxs)("div",{className:"flex flex-col gap-4",children:[e?.primary&&(0,n.jsx)(p.Button,{as:"a",href:`${e?.primary?.url}?ref=${e?.primary?.label}_shopall`,variant:"primary",size:"lg",className:"lg-desktop:text-base text-sm",children:e?.primary?.label}),e?.secondary&&(0,n.jsx)(p.Button,{as:"a",href:e?.secondary?.url,variant:"link",size:"lg",className:"lg-desktop:text-base justify-start !p-0 text-sm",children:e?.secondary?.label})]})})]}),(0,n.jsx)("div",{className:"desktop:h-[509px] flex-1 overflow-y-auto py-4",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:(0,n.jsx)("div",{className:"grid grid-cols-3 gap-4 ",children:Array.isArray(v?.resources)?v.resources.map((o,a)=>(0,n.jsx)(N.ResourceItem,{resource:o},`resourceItem-${a}`)):null})})]})});k.displayName="ResourceSidebarDropdown";
|
|
2
|
+
//# sourceMappingURL=ResourceSidebarDropdown.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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 } from '../../helpers/utils.js'\nimport { DownArrow } from './icons/index.js'\nimport { useNavContext } from './NavProvider.js'\nimport { ResourceItem } from './ResourceItem.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\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={`${resourceCategoriesMetadata?.primary?.url}?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={resourceCategoriesMetadata?.secondary?.url}\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
|
+
"names": ["ResourceSidebarDropdown_exports", "__export", "ResourceSidebarDropdown", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_utils", "import_icons", "import_NavProvider", "import_ResourceItem", "React", "resourceCategoriesMetadata", "resourcesMetadata", "onSidebarNavClick", "expandedSubcategory", "setExpandedSubcategory", "activeSubSubcategoryIndex", "setActiveSubSubcategoryIndex", "resourceDropdownRef", "initExpandedSubcategory", "subcategories", "withSubSubCategoriesIndex", "item", "withoutSubSubCategoriesIndex", "expandedStates", "_", "index", "matchResourcesMetadata", "subCategory", "currentResourcesMetadata", "activeSubSubcategory", "handleSubcategoryOpen", "subcategoryItem", "prev", "i", "handleSubSubcategoryOpen", "subSubindex", "subItem", "hasSubSubCategory", "isExpanded", "subSubItem", "resourceItem", "resourceIndex"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 侧边栏下拉
|
|
4
|
+
* @param categoriesItem 分类项
|
|
5
|
+
*/
|
|
6
|
+
export declare const SidebarDropdown: React.MemoExoticComponent<({ sidebarCategoriesMetadata, seriesMetadata }: {
|
|
7
|
+
sidebarCategoriesMetadata: any;
|
|
8
|
+
seriesMetadata: any;
|
|
9
|
+
}) => import("react/jsx-runtime").JSX.Element>;
|
|
10
|
+
/**
|
|
11
|
+
* 系列产品项组件
|
|
12
|
+
*/
|
|
13
|
+
export declare const SeriesProductItem: ({ product, isCollection, position, seriesLabel, }: {
|
|
14
|
+
product: any;
|
|
15
|
+
isCollection?: boolean;
|
|
16
|
+
position?: number;
|
|
17
|
+
seriesLabel?: string;
|
|
18
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var $=Object.create;var N=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var j=(t,i)=>{for(var m in i)N(t,m,{get:i[m],enumerable:!0})},w=(t,i,m,x)=>{if(i&&typeof i=="object"||typeof i=="function")for(let p of A(i))!_.call(t,p)&&p!==m&&N(t,p,{get:()=>i[p],enumerable:!(x=P(i,p))||x.enumerable});return t};var B=(t,i,m)=>(m=t!=null?$(z(t)):{},w(i||!t||!t.__esModule?N(m,"default",{value:t,enumerable:!0}):m,t)),E=t=>w(N({},"__esModule",{value:!0}),t);var O={};j(O,{SeriesProductItem:()=>D,SidebarDropdown:()=>F});module.exports=E(O);var e=require("react/jsx-runtime"),d=B(require("react")),n=require("../../components/index.js"),f=require("../../helpers/utils.js"),C=require("./icons/index.js"),S=require("./NavProvider.js");const F=d.default.memo(({sidebarCategoriesMetadata:t,seriesMetadata:i})=>{const{buildProps:m,onSidebarNavClick:x}=(0,S.useNavContext)(),[p,y]=(0,d.useState)([]),[u,b]=(0,d.useState)(-1),v=(0,d.useRef)(null),h=(0,d.useCallback)(()=>{const l=t?.subcategories;if(!l?.length)return;const o=l.findIndex(c=>!!c?.subSubCategories),s=l.findIndex(c=>!c?.subSubCategories),r=l.map((c,g)=>({index:g,open:o===g||s===g}));y(r)},[t]);(0,d.useEffect)(()=>{h()},[h]);const a=(0,d.useMemo)(()=>{const l=t?.subcategories?.[p?.find(s=>s.open)?.index||0],o=i?.find(s=>s?.label?.toLowerCase()===l?.label?.toLowerCase())||{};if(l?.collections){const s=m?.categories?.[l?.collections]||{};return{label:o?.label,isCollection:!0,banner:o?.banner,primary:o?.primary,guide:o?.guide,series:[{products:s?.products}]}}else if(l?.subSubCategories){const s=l?.subSubCategories?.[u],r=i?.find(c=>c?.label?.toLowerCase()===s?.label?.toLowerCase())||{};if(s?.collections){const c=m?.categories?.[s?.collections]||{};return{label:r?.label,isCollection:!0,banner:r?.banner,primary:r?.primary,guide:r?.guide,series:[{products:c?.products}]}}else return r}else return o},[t,p,u,i,m]),k=(0,d.useCallback)((l,o)=>{o?.subSubCategories?.length>0?b(0):b(-1),y(s=>s.map((r,c)=>({...r,open:c===l?!r.open:!1})))},[]),L=(l,o)=>{y(s=>s.map(r=>r.index===l?{...r,open:!0}:{...r,open:!1})),b(o)};return(0,e.jsxs)(n.Container,{childClassName:"lg-desktop:gap-12 flex bg-white gap-8",children:[(0,e.jsxs)("div",{className:"lg-desktop:basis-[356px] flex basis-[284px] flex-col gap-4 py-4",style:{userSelect:"none"},ref:v,children:[(0,e.jsx)("div",{className:"desktop:h-[416px] flex flex-col overflow-y-auto",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:t?.subcategories?.map((l,o)=>{const s=Array.isArray(l?.subSubCategories)&&l?.subSubCategories?.length>0,r=p?.find(c=>c.index===o)?.open;return(0,e.jsxs)("div",{children:[(0,e.jsxs)("button",{className:(0,f.cn)("flex w-full cursor-pointer items-center justify-between border-0 bg-transparent text-left",{"bg-[#F5F5F7]":!s&&r}),onClick:()=>{k(o,l),x?.(l,o)},"aria-expanded":s?r:void 0,"aria-haspopup":s?"true":void 0,children:[(0,e.jsx)(n.Text,{html:l.label,className:"p-4 text-sm font-bold leading-[1.4]"}),s&&(0,e.jsx)(C.DownArrow,{"aria-hidden":"true",className:(0,f.cn)("size-4",{"rotate-180":r})})]}),r&&(0,e.jsx)("div",{className:"flex flex-col",role:"menu",children:l.subSubCategories?.map((c,g)=>(0,e.jsx)("button",{onClick:()=>{L(o,g),x?.(c,g)},className:(0,f.cn)("w-full cursor-pointer border-0 bg-transparent px-6 py-4 text-left hover:bg-[#F5F5F7]",{"bg-[#F5F5F7]":u===g}),role:"menuitem","aria-label":c.label,children:(0,e.jsx)(n.Text,{html:c.label,className:"text-sm font-bold leading-[1.4] text-[#4A4C56]"})},`subSubItem-${o}-${g}`))})]},`subcategoryItem-${o}`)})}),t&&(0,e.jsx)("div",{className:"flex",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[t?.primary&&(0,e.jsx)(n.Button,{as:"a",href:`${t?.primary?.url}?ref=${t?.primary?.label}_shopall`,variant:"primary",size:"lg",className:"lg-desktop:text-base text-sm",children:t?.primary?.label}),t?.secondary&&(0,e.jsx)(n.Button,{as:"a",href:t?.secondary?.url,variant:"link",size:"lg",iconClassName:"size-4",className:"lg-desktop:text-base justify-start !p-0 text-sm",children:t?.secondary?.label})]})})]}),(0,e.jsxs)("div",{className:"flex-1 py-4",children:[Reflect.ownKeys(a).length>0&&(0,e.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(n.Text,{html:a?.label,className:"lg-desktop:text-2xl text-xl font-bold leading-[1.4]"}),a?.primary&&!a?.primary?.hide&&(0,e.jsx)(n.Button,{as:"a",href:`${a?.primary?.url}?ref=${a?.label}_viewmore`,variant:"link",size:"lg",iconClassName:"size-4",className:"lg-desktop:text-base justify-start !p-0 text-sm font-bold leading-[1.2] no-underline",children:a?.primary?.label})]}),(0,e.jsx)(n.Link,{href:a?.guide?.url,className:"lg-desktop:text-base text-sm leading-[1.2] text-[#6D6D6F]",children:a?.guide?.label})]}),(0,e.jsx)("div",{className:"flex h-[426px] flex-col gap-4 overflow-y-auto",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:a?.series?.map((l,o)=>(0,e.jsxs)("div",{children:[l.label&&(0,e.jsx)(n.Text,{html:l.label,as:"p",className:"mb-2 text-sm font-bold leading-[1.4] text-[#6D6D6F]"}),(0,e.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[!!a?.banner&&(0,e.jsx)(n.Link,{asChild:!a?.banner?.href,href:a?.banner?.href,children:(0,e.jsxs)("div",{className:"relative [&_img]:hover:scale-110 [&_img]:hover:transition-all [&_img]:hover:duration-500",children:[(0,e.jsx)(n.Picture,{source:a?.banner?.imageUrl,className:"laptop:h-[120px] h-[114px]",imgClassName:"object-cover h-full"}),(0,e.jsxs)("div",{className:"absolute inset-x-0 bottom-0 p-4",children:[(0,e.jsx)(n.Heading,{size:2,html:a?.banner?.title||"Buy in Guide",className:(0,f.cn)("font-bold text-white",{"text-black":a?.banner?.theme==="dark"})}),(0,e.jsx)(n.Text,{html:a?.banner?.desc||"20.000mAh",className:(0,f.cn)("text-sm font-bold text-white",{"text-black":a?.banner?.theme==="dark"})})]})]})}),l.products?.map((s,r)=>(0,e.jsx)(D,{seriesLabel:a?.label,product:s,isCollection:a?.isCollection},`seriesProductItem-${r}`))]})]},`seriesItem-${o}`))})]})]})});F.displayName="SidebarDropdown";const D=({product:t,isCollection:i,position:m,seriesLabel:x})=>{const{buildProps:p,onSeriesProductClick:y}=(0,S.useNavContext)();let u=i?t:p?.products?.find(a=>a.handle===t.handle);const b=u?.variants?.find(a=>a.sku===t.sku)||u?.variants?.[0],v=(0,d.useMemo)(()=>`/products/${u?.handle}?variant=${(0,f.atobID)(b?.id)}`,[u?.handle,b?.id]),h=(0,d.useMemo)(()=>u?.tags?.filter?.(a=>a?.startsWith?.("CLtag"))?.map?.(a=>a?.replace?.("CLtag:",""))?.slice?.(0,2),[u?.tags]);return b?.availableForSale?(0,e.jsx)(n.Link,{href:v,onClick:a=>{a.preventDefault(),window.open(v,"_self"),y?.(u,m||0,x)},className:"no-underline hover:text-current",children:(0,e.jsxs)("div",{className:"flex shrink-0 items-center gap-4 bg-[#F5F5F7] px-4 py-3 [&_img]:hover:scale-110 [&_img]:hover:duration-500",children:[(0,e.jsx)("div",{className:"shrink-0",children:(0,e.jsx)("img",{src:`${b?.image?.url||t?.images?.[0]?.url}`,loading:"lazy",alt:u?.title||t?.name,width:90,height:90,className:"size-[96px] object-contain"})}),(0,e.jsxs)("div",{className:"relative",children:[(0,e.jsx)("div",{className:"flex gap-1",children:Array.isArray(h)&&h?.map((a,k)=>(0,e.jsx)(n.Text,{as:"p",html:a,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]"},k))}),(0,e.jsx)(n.Text,{className:"lg-desktop:h-[44px] lg-desktop:text-base line-clamp-2 h-[40px] text-sm font-bold leading-[1.4]",html:u?.title||t?.name}),t?.desc&&(0,e.jsx)(n.Text,{as:"p",html:t?.desc,className:"lg-desktop:text-sm mt-1 line-clamp-1 text-xs font-bold leading-[1.4] text-[#6D6D6F]"})]})]})}):null};
|
|
2
|
+
//# sourceMappingURL=SidebarDropdown.js.map
|