tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 9 kB
Source Map (JSON)
{"version":3,"file":"navbar.mjs","sources":["../../src/navbar/navbar.tsx"],"sourcesContent":["import { defineComponent, computed, CSSProperties } from 'vue';\nimport { ChevronLeftIcon } 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 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 styles = computed<CSSProperties>(() => ({\n zIndex: props.zIndex,\n }));\n\n const handleLeftClick = () => {\n props.onLeftClick?.();\n };\n\n const handleRightClick = () => {\n props.onRightClick?.();\n };\n\n return () => {\n const { fixed, placeholder, titleMaxLength, title, leftArrow } = props;\n\n const renderRight = () => {\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 renderLeftArrow = () => {\n if (leftArrow) {\n return <ChevronLeftIcon class={`${navbarClass.value}__left-arrow`} />;\n }\n return null;\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 renderLeft = () => {\n return (\n <div class={`${navbarClass.value}__left`} onClick={handleLeftClick}>\n {renderLeftArrow()}\n {renderTNodeJSX('left')}\n {renderCapsuleContent()}\n </div>\n );\n };\n\n const renderCenter = () => {\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 const finalTitle = isStringTitle ? (\n <span class={`${navbarClass.value}__center-title`}>{titleContent}</span>\n ) : (\n titleContent\n );\n return <div class={`${navbarClass.value}__center`}>{finalTitle}</div>;\n };\n\n const renderPlaceholder = () => {\n if (fixed && placeholder) {\n return <div class={`${navbarClass.value}__placeholder`}></div>;\n }\n return null;\n };\n\n return (\n <div class={navClass.value} style={styles.value}>\n {renderPlaceholder()}\n <div class={`${navbarClass.value}__content`}>\n {renderLeft()}\n {renderCenter()}\n {renderRight()}\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","emits","setup","slots","_ref","classPrefix","usePrefixClass","navbarClass","renderTNodeJSX","useTNodeJSX","animationSuffix","computed","animation","navClass","value","_defineProperty","concat","fixed","safeAreaInsetTop","visible","styles","zIndex","handleLeftClick","_props2$onLeftClick","onLeftClick","handleRightClick","_props2$onRightClick","onRightClick","placeholder","titleMaxLength","title","leftArrow","renderRight","rightContent","_createVNode","renderLeftArrow","ChevronLeftIcon","renderCapsuleContent","capsuleContent","renderLeft","renderCenter","isStringTitle","titleContent","console","warn","length","slice","finalTitle","renderPlaceholder"],"mappings":"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"}