UNPKG

tdesign-vue-next

Version:
1 lines 11.5 kB
{"version":3,"file":"text.mjs","sources":["../../../components/typography/text.tsx"],"sourcesContent":["import { computed, defineComponent, ref, h } from 'vue';\nimport { useContent, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './text-props';\nimport { copy } from '@tdesign/shared-utils';\nimport { CopyIcon, CheckIcon } from 'tdesign-icons-vue-next';\nimport Ellipsis from './components/ellipsis';\nimport TTooltip from '../tooltip';\nimport TButton from '../button';\nimport { useConfig } from '../config-provider/hooks/useConfig';\n\nimport type { TdTextProps } from './type';\nimport type { TdTooltipProps } from '../tooltip/type';\n\nexport default defineComponent({\n name: 'TTypographyText',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const { globalConfig } = useConfig('typography');\n const isCopied = ref(false);\n const renderContent = useContent();\n\n const wrapperDecorations = (\n { code, underline, delete: del, strong, keyboard, mark, italic }: TdTextProps,\n content: any,\n ) => {\n let currentContent = content;\n\n function wrap(needed: boolean, Tag: string, styles: object = {}) {\n if (!needed) return;\n currentContent = h(Tag, { style: styles }, [currentContent]);\n }\n\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark !== false, 'mark', mark ? { backgroundColor: mark } : {});\n wrap(keyboard, 'kbd');\n wrap(italic, 'i');\n return currentContent;\n };\n\n const classList = computed(() => {\n const { theme, disabled } = props;\n const prefix = COMPONENT_NAME.value;\n const list: string[] = [prefix];\n if (disabled) {\n list.push(`${prefix}--disabled`);\n } else if (theme && ['primary', 'secondary', 'success', 'warning', 'error'].includes(theme)) {\n list.push(`${prefix}--${theme}`);\n }\n return list;\n });\n\n const tooltipText = computed(() => {\n const { copyable } = props;\n if (isCopied.value) return globalConfig.value.copiedText;\n else if (typeof copyable === 'object') return copyable.tooltipProps?.content;\n return null;\n });\n\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n const renderCopy = (afterEllipsis?: boolean) => {\n const { copyable } = props;\n\n let icon: any = isCopied.value ? () => <CheckIcon /> : () => <CopyIcon />;\n let tooltipConf: TdTooltipProps = {\n theme: 'default',\n };\n\n let onCopy = () => {};\n if (typeof copyable === 'object') {\n if (copyable.suffix && !isCopied.value) {\n icon = copyable.suffix;\n }\n if (copyable.tooltipProps) {\n tooltipConf = copyable.tooltipProps;\n }\n if (typeof copyable.onCopy === 'function') {\n onCopy = copyable.onCopy;\n }\n }\n return (\n <TTooltip {...tooltipConf} content={tooltipText.value}>\n {afterEllipsis ? (\n <span onClick={(e) => onCopyClick(e, onCopy)}>{icon()}</span>\n ) : (\n <TButton\n icon={icon}\n shape=\"square\"\n theme=\"primary\"\n variant=\"text\"\n onClick={(e) => onCopyClick(e, onCopy)}\n />\n )}\n </TTooltip>\n );\n };\n\n const getChildrenText = () => {\n const { copyable } = props;\n if (typeof copyable === 'object' && copyable?.text) {\n return copyable.text;\n }\n if (typeof content.value === 'string') {\n return content.value;\n } else if (Array.isArray(content.value)) {\n return content.value.map((v) => v.children).join('');\n }\n };\n\n const onCopyClick = (e: MouseEvent, cb: Function) => {\n e.preventDefault();\n e.stopPropagation();\n\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, 1500);\n\n copy(getChildrenText());\n cb?.();\n };\n\n return () => {\n const content = renderContent('default', 'content');\n return props.ellipsis ? (\n <Ellipsis {...props} class={classList.value} renderCopy={props.copyable ? () => renderCopy(true) : null}>\n {wrapperDecorations(props, content)}\n </Ellipsis>\n ) : (\n <span class={classList.value}>\n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n </span>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","setup","slots","_ref","COMPONENT_NAME","usePrefixClass","_useConfig","useConfig","globalConfig","isCopied","ref","renderContent","useContent","wrapperDecorations","_ref2","content","code","underline","del","strong","keyboard","mark","italic","currentContent","wrap","needed","Tag","styles","arguments","length","undefined","h","style","backgroundColor","classList","computed","theme","disabled","prefix","value","list","push","concat","includes","tooltipText","_copyable$tooltipProp","copyable","copiedText","_typeof","tooltipProps","renderCopy","afterEllipsis","icon","_createVNode","CheckIcon","CopyIcon","tooltipConf","onCopy","suffix","TTooltip","_mergeProps","onClick","e","onCopyClick","TButton","getChildrenText","text","Array","isArray","map","v","children","join","cb","preventDefault","stopPropagation","setTimeout","copy","_slot","ellipsis","Ellipsis","_default"],"mappings":"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"}