UNPKG

tdesign-mobile-vue

Version:
1 lines 7.46 kB
{"version":3,"file":"cell.mjs","sources":["../../src/cell/cell.tsx"],"sourcesContent":["import { computed, defineComponent } from 'vue';\nimport { ChevronRightIcon } from 'tdesign-icons-vue-next';\nimport { Hover } from '../shared';\nimport config from '../config';\nimport props from './props';\nimport { useFormDisabled } from '../form/hooks';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-cell`,\n directives: { Hover },\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const renderTNodeContent = useContent();\n const disabled = useFormDisabled();\n const cellClass = usePrefixClass('cell');\n\n const cellClasses = computed(() => [\n `${cellClass.value}`,\n {\n [`${cellClass.value}--borderless`]: !props.bordered,\n },\n ]);\n\n const hoverDisabled = computed(() => !props.hover || disabled.value);\n\n const handleClick = (e: MouseEvent) => {\n if (!disabled.value) {\n props.onClick?.({ e });\n }\n };\n\n const renderImage = () => {\n if (typeof props.image === 'string') {\n return <img src={props.image} class={`${cellClass.value}__left-image`} />;\n }\n const image = renderTNodeJSX('image');\n\n return image;\n };\n\n const renderLeft = () => {\n const leftIcon = renderTNodeJSX('leftIcon');\n return (\n <div class={`${cellClass.value}__left`}>\n {leftIcon && <div class={`${cellClass.value}__left-icon`}>{leftIcon}</div>}\n {renderImage()}\n </div>\n );\n };\n const renderTitle = () => {\n const title = renderTNodeJSX('title');\n if (!title) {\n return null;\n }\n const description = renderTNodeJSX('description');\n return (\n <div class={`${cellClass.value}__title`}>\n <div class={`${cellClass.value}__title-text`}>\n {title}\n {props.required && <span class={`${cellClass.value}--required`}>&nbsp;*</span>}\n </div>\n {description && <div class={`${cellClass.value}__description`}>{description}</div>}\n </div>\n );\n };\n const renderRight = () => {\n const rightIcon = props.arrow ? <ChevronRightIcon /> : renderTNodeJSX('rightIcon');\n if (!rightIcon) {\n return null;\n }\n return (\n <div class={[`${cellClass.value}__right`, `${cellClass.value}__right--${props.align}`]}>\n <div class={`${cellClass.value}__right-icon`}>{rightIcon}</div>\n </div>\n );\n };\n\n return () => {\n const note = renderTNodeContent('default', 'note');\n return (\n <div\n v-hover={{ className: `${cellClass.value}--hover`, disabledHover: hoverDisabled.value }}\n class={cellClasses.value}\n onClick={handleClick}\n >\n {renderLeft()}\n {renderTitle()}\n {note && <div class={`${cellClass.value}__note`}>{note}</div>}\n {renderRight()}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","directives","Hover","props","setup","renderTNodeJSX","useTNodeJSX","renderTNodeContent","useContent","disabled","useFormDisabled","cellClass","usePrefixClass","cellClasses","computed","concat","value","_defineProperty","bordered","hoverDisabled","hover","handleClick","e","_props2$onClick","onClick","renderImage","image","_createVNode","renderLeft","leftIcon","renderTitle","title","description","required","renderRight","rightIcon","arrow","ChevronRightIcon","align","note","_withDirectives","_resolveDirective","className","disabledHover"],"mappings":"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"}