tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 7.83 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 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 },\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","navbarClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","animationSuffix","computed","animation","navClass","value","_defineProperty","concat","fixed","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":"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"}