tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 8.09 kB
Source Map (JSON)
{"version":3,"file":"navbar.mjs","sources":["../../src/navbar/navbar.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport { ChevronLeftIcon as TChevronLeftIcon } from 'tdesign-icons-vue-next';\nimport config from '../config';\nimport props from './props';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-navbar`,\n components: { TChevronLeftIcon },\n props,\n emits: ['left-click', 'right-click'],\n setup(props, { slots }) {\n const classPrefix = usePrefixClass();\n const navbarClass = usePrefixClass('navbar');\n const renderTNodeJSX = useTNodeJSX();\n\n const animationSuffix = computed(() => (props.animation ? '-animation' : ''));\n const navClass = computed(() => [\n navbarClass.value,\n {\n [`${navbarClass.value}--fixed`]: props.fixed,\n [`${classPrefix.value}-safe-area-top `]: props.safeAreaInsetTop,\n },\n props.visible\n ? `${navbarClass.value}--visible${animationSuffix.value}`\n : `${navbarClass.value}--hide${animationSuffix.value}`,\n ]);\n\n const navStyle = computed(() => `position: ${props.fixed ? 'fixed' : 'relative'};`);\n\n const handleLeftClick = () => {\n props.onLeftClick?.();\n };\n\n const handleRightClick = () => {\n props.onRightClick?.();\n };\n\n return () => {\n const { fixed, titleMaxLength, title, leftArrow } = props;\n\n const renderRightContent = () => {\n const rightContent = renderTNodeJSX('right');\n if (!rightContent) {\n return null;\n }\n return (\n <div class={`${navbarClass.value}__right`} onClick={handleRightClick}>\n {rightContent}\n </div>\n );\n };\n\n const renderCapsuleContent = () => {\n const capsuleContent = renderTNodeJSX('capsule');\n if (!capsuleContent) {\n return null;\n }\n return <div class={`${navbarClass.value}__capsule`}>{capsuleContent}</div>;\n };\n\n const renderTitleContent = () => {\n const isStringTitle = typeof title === 'string' && !slots.title;\n let titleContent = renderTNodeJSX('title');\n if (!titleContent) {\n return null;\n }\n if (titleMaxLength != null && title) {\n if (titleMaxLength <= 0) {\n console.warn('titleMaxLength must be greater than 0');\n } else {\n titleContent = title.length <= titleMaxLength ? title : `${(title as string).slice(0, titleMaxLength)}...`;\n }\n }\n\n return isStringTitle ? <span class={`${navbarClass.value}__center-title`}>{titleContent}</span> : titleContent;\n };\n return (\n <div class={navClass.value} style={navStyle.value}>\n {fixed && <div class={`${navbarClass.value}____placeholder`}></div>}\n <div class={`${navbarClass.value}__content`}>\n <div class={`${navbarClass.value}__left`} onClick={handleLeftClick}>\n {leftArrow && <t-chevron-left-icon class={`${navbarClass.value}__left-arrow`} />}\n {renderTNodeJSX('left')}\n {renderCapsuleContent()}\n </div>\n <div class={`${navbarClass.value}__center`}>{renderTitleContent()}</div>\n {renderRightContent()}\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","components","TChevronLeftIcon","props","emits","setup","slots","_ref","classPrefix","usePrefixClass","navbarClass","renderTNodeJSX","useTNodeJSX","animationSuffix","computed","animation","navClass","value","_defineProperty","concat","fixed","safeAreaInsetTop","visible","navStyle","handleLeftClick","_props2$onLeftClick","onLeftClick","handleRightClick","_props2$onRightClick","onRightClick","titleMaxLength","title","leftArrow","renderRightContent","rightContent","_createVNode","renderCapsuleContent","capsuleContent","renderTitleContent","isStringTitle","titleContent","console","warn","length","slice"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAQA,SAAWC,MAAA,CAAXD;AAER,cAAeE,eAAgB,CAAA;AAC7BC,EAAAA,gBAASH,MAAA,EAAA,SAAA,CAAA;AACTI,EAAAA,UAAA,EAAY;AAAEC,IAAAA,gBAAiB,EAAjBA,eAAAA;GAAiB;AAC/BC,EAAAA,KAAA,EAAAA,KAAA;AACAC,EAAAA,KAAA,EAAO,CAAC,YAAA,EAAc,aAAa,CAAA;AACnCC,EAAAA,KAAMF,WAANE,KAAMF,CAAAA,MAAAA,EAAAA,IAAAA,EAAkB;AAAA,IAAA,IAATG,KAAA,GAAAC,IAAA,CAAAD,KAAA,CAAA;AACb,IAAA,IAAME,cAAcC,cAAe,EAAA,CAAA;AAC7B,IAAA,IAAAC,WAAA,GAAcD,eAAe,QAAQ,CAAA,CAAA;AAC3C,IAAA,IAAME,iBAAiBC,WAAY,EAAA,CAAA;IAEnC,IAAMC,kBAAkBC,QAAS,CAAA,YAAA;AAAA,MAAA,OAAOX,MAAM,CAAAY,SAAA,GAAY,eAAe,EAAG,CAAA;KAAA,CAAA,CAAA;IACtE,IAAAC,QAAA,GAAWF,SAAS,YAAA;MAAA,OAAM,CAC9BJ,WAAY,CAAAO,KAAA,EAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAA,EAAA,CAAAC,MAAA,CAENT,WAAY,CAAAO,KAAA,EAAiBd,SAAAA,CAAAA,EAAAA,MAAM,CAAAiB,KAAA,CAAAD,EAAAA,EAAAA,CAAAA,MAAA,CACnCX,WAAY,CAAAS,KAAA,EAAyBd,iBAAAA,CAAAA,EAAAA,MAAM,CAAAkB,gBAAA,GAEjDlB,MAAAA,CAAMmB,OACF,GAAA,EAAA,CAAAH,MAAA,CAAGT,WAAY,CAAAO,KAAA,EAAA,WAAA,CAAA,CAAAE,MAAA,CAAiBN,gBAAgBI,KAChD,CAAA,GAAA,EAAA,CAAAE,MAAA,CAAGT,WAAY,CAAAO,KAAA,EAAA,QAAA,CAAA,CAAAE,MAAA,CAAcN,eAAgB,CAAAI,KAAA,CAAA,CAClD,CAAA;KAAA,CAAA,CAAA;IAED,IAAMM,WAAWT,QAAS,CAAA,YAAA;MAAA,OAAAK,YAAAA,CAAAA,MAAA,CAAmBhB,MAAM,CAAAiB,KAAA,GAAQ,UAAU,UAAa,EAAA,GAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAElF,IAAA,IAAMI,kBAAkB,SAAlBA,kBAAwB;AAAA,MAAA,IAAAC,mBAAA,CAAA;AAC5BtB,MAAAA,CAAAA,mBAAAA,GAAAA,OAAMuB,WAAc,MAAA,IAAA,IAAAD,mBAAA,KAAA,KAAA,CAAA,IAApBtB,mBAAAA,CAAAA,IAAAA,CAAAA,MAAoB,CAAA,CAAA;KACtB,CAAA;AAEA,IAAA,IAAMwB,mBAAmB,SAAnBA,mBAAyB;AAAA,MAAA,IAAAC,oBAAA,CAAA;AAC7BzB,MAAAA,CAAAA,oBAAAA,GAAAA,OAAM0B,YAAe,MAAA,IAAA,IAAAD,oBAAA,KAAA,KAAA,CAAA,IAArBzB,oBAAAA,CAAAA,IAAAA,CAAAA,MAAqB,CAAA,CAAA;KACvB,CAAA;AAEA,IAAA,OAAO,YAAM;AACX,MAAA,IAAQiB,KAAA,GAA4CjB,MAAAA,CAA5CiB,KAAA;QAAOU,cAAgB,GAAqB3B,MAAAA,CAArC2B,cAAgB;QAAAC,KAAA,GAAqB5B,MAAAA,CAArB4B,KAAA;QAAOC,YAAc7B,MAAAA,CAAd6B;AAEtC,MAAA,IAAMC,qBAAqB,SAArBA,qBAA2B;AACzB,QAAA,IAAAC,YAAA,GAAevB,eAAe,OAAO,CAAA,CAAA;QAC3C,IAAI,CAACuB,YAAc,EAAA;AACV,UAAA,OAAA,IAAA,CAAA;AACT,SAAA;AAEE,QAAA,OAAAC,WAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAA,EAAA,CAAAhB,MAAA,CAAeT,YAAYO,KAAgB,EAAA,SAAA,CAAA;UAAA,SAASU,EAAAA,gBAAAA;AACjD,SAAA,EAAA,CAAAO,YAAA,CAAA,CAAA,CAAA;OAGP,CAAA;AAEA,MAAA,IAAME,uBAAuB,SAAvBA,uBAA6B;AAC3B,QAAA,IAAAC,cAAA,GAAiB1B,eAAe,SAAS,CAAA,CAAA;QAC/C,IAAI,CAAC0B,cAAgB,EAAA;AACZ,UAAA,OAAA,IAAA,CAAA;AACT,SAAA;AACA,QAAA,OAAAF,WAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAA,EAAA,CAAAhB,MAAA,CAAsBT,WAAY,CAAAO,KAAA,EAAA,WAAA,CAAA;AAAA,SAAA,EAAA,CAAmBoB;OACvD,CAAA;AAEA,MAAA,IAAMC,qBAAqB,SAArBA,qBAA2B;QAC/B,IAAMC,aAAgB,GAAA,OAAOR,KAAU,KAAA,QAAA,IAAY,CAACzB,KAAM,CAAAyB,KAAA,CAAA;AACtD,QAAA,IAAAS,YAAA,GAAe7B,eAAe,OAAO,CAAA,CAAA;QACzC,IAAI,CAAC6B,YAAc,EAAA;AACV,UAAA,OAAA,IAAA,CAAA;AACT,SAAA;AACI,QAAA,IAAAV,cAAA,IAAkB,QAAQC,KAAO,EAAA;UACnC,IAAID,kBAAkB,CAAG,EAAA;AACvBW,YAAAA,OAAA,CAAQC,KAAK,uCAAuC,CAAA,CAAA;AACtD,WAAO,MAAA;AACUF,YAAAA,YAAA,GAAAT,KAAA,CAAMY,UAAUb,cAAiB,GAAAC,KAAA,GAAA,EAAA,CAAAZ,MAAA,CAAYY,KAAiB,CAAAa,KAAA,CAAM,GAAGd,cAAc,CAAA,EAAA,KAAA,CAAA,CAAA;AACtG,WAAA;AACF,SAAA;QAEO,OAAAS,aAAA,GAAAJ,WAAA,CAAA,MAAA,EAAA;AAAA,UAAA,OAAA,EAAA,EAAA,CAAAhB,MAAA,CAAgCT,WAAY,CAAAO,KAAA,EAAA,gBAAA,CAAA;SAAwBuB,EAAAA,CAAAA,YAAa,KAAUA,YAAA,CAAA;OACpG,CAAA;AACA,MAAA,OAAAL,WAAA,CAAA,KAAA,EAAA;QAAA,OACcnB,EAAAA,QAAS,CAAAC,KAAA;AAAA,QAAA,OAAA,EAAcM,QAAS,CAAAN,KAAAA;OACzCG,EAAAA,CAAAA;2BAAwBV,YAAYO,KAAwB,EAAA,iBAAA,CAAA;AAAA,OAAA,EAAA,IAAA,CAAA,EAAAkB,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAAhB,MAAA,CAC9CT,WAAY,CAAAO,KAAA,EAAA,WAAA,CAAA;AAAA,OAAA,EAAA,CAAAkB,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAAhB,MAAA,CACVT,WAAA,CAAYO;iBAAwBO,EAAAA,eAAAA;AAAA,OAAA,EAAA,CAChDQ;2BAA4CtB,YAAYO,KAAqB,EAAA,cAAA,CAAA;OAAA,EAAA,IAAA,CAAA,EAC7EN,eAAe,MAAM,CAAA,EACrByB,oBAAqB,EAAA,CAAA,CAAA,EAAAD,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAAhB,MAAA,CAETT,YAAYO,KAAkB,EAAA,UAAA,CAAA;AAAA,OAAA,EAAA,CAAAqB,kBAAA,GAC5CL,CAAAA,EAAAA,kBAAmB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;KAI5B,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}