{"version":3,"file":"text.vue2.mjs","sources":["../../../../../../packages/components/text/src/text.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'ToText' });\n</script>\n<template>\n\t<component :is=\"link ? 'a' : 'span'\" ref=\"$el2\" v-size=\"size\" :flex=\"flex ? flex : null\" :href=\"href ? href : link ? 'javscript:void(0)' : ''\" class=\"to-text\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<slot name=\"icon\">\n\t\t\t<to-icon v-if=\"props.icon\" class=\"to-text-icon\" :value=\"props.icon\"></to-icon>\n\t\t</slot>\n\t\t<slot>{{ iData }}</slot>\n\t\t<template v-if=\"isOver\">...</template>\n\t</component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { ToIcon } from '@touchvue/components'\nimport { vSize } from '@touchvue/directives'\n\n\ninterface Props {\n\tflex?: boolean\n\tdata?: string\n\tindent?: number | string\n\tmode?: string\n\tsize?: number | string\n\tfamily?: string\n\tweight?: number | string\n\tcolor?: string\n\tlineHeight?: number | string\n\tdecos?: string | string[]\n\twidth?: number | string\n\trow?: number | string\n\tcount?: number | string\n\tlink?: boolean\n\tgd?: boolean\n\thref?: string\n\ticon?: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdata: '',\n\tmode: '',\n\tsize: '',\n\tfamily: '',\n\tweight: '',\n\tcolor: '',\n\tindent: 0,\n\tlineHeight: '',\n\tdecos: '',\n\twidth: '',\n\trow: '',\n\tcount: '',\n\tlink: false,\n\tgd: false,\n\thref: '',\n\ticon: ''\n})\n\n// class 计算\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\n\tif (props.link) arr.push('is-link')\n\tif (props.gd) arr.push('is-gd')\n\tif (props.mode) arr.push(`mode-${props.mode}`)\n\tif (props.color) arr.push(`color-${props.color}`)\n\tif (props.indent) arr.push(`is-indent`)\n\tif (props.width) arr.push(`type-width`)\n\tif (props.row) arr.push(`type-row`)\n\tif (props.count) arr.push(`type-count`)\n\n\t// 处理 decos\n\tlet decosArr: string[] = []\n\tif (Array.isArray(props.decos)) {\n\t\tdecosArr = props.decos\n\t} else if (typeof props.decos === 'string') {\n\t\tdecosArr = props.decos.split(',').map(item => item.trim())\n\t}\n\tconst validDecos = ['i', 'u', 'd', 's', 'b', 'e']\n\tdecosArr.forEach(d => {\n\t\tif (validDecos.includes(d)) {\n\t\t\tarr.push(`decos-${d}`)\n\t\t}\n\t})\n\n\treturn arr\n})\n\n// 计算 count 属性设置之后实际字符是否大于设定字符数\nconst isOver = computed(() => {\n\tif (!props.count || !props.data) return false\n\n\tconst str = String(props.data)\n\tlet visualLength = 0\n\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst char = str[i]\n\t\tconst charCode = char.charCodeAt(0)\n\n\t\t// 判断字符宽度（中英文）\n\t\tif (charCode <= 0xff) {\n\t\t\t// 半角字符（英文等）\n\t\t\tvisualLength += 0.5\n\t\t} else {\n\t\t\t// 全角字符、汉字等\n\t\t\tvisualLength += 1\n\t\t}\n\n\t\tif (visualLength > Number(props.count)) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n})\n\n// style 计算\nconst setStyle = computed(() => {\n\tconst obj: Record<string, string | number> = {}\n\tif (props.weight) obj.fontWeight = props.weight\n\tif (props.indent) obj.textIndent = props.indent + 'em'\n\tif (props.width) obj.width = props.width + 'em'\n\tif (props.row) obj.webkitLineClamp = props.row\n\tif (props.family) obj.fontFamily = props.family\n\tif (props.lineHeight) obj.lineHeight = `${props.lineHeight}em`\n\treturn obj\n})\n\n// count\nconst iData = computed(() => {\n\tif (!props.count || !props.data) return props.data\n\n\tconst str = String(props.data)\n\tlet result = ''\n\tlet visualLength = 0\n\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst char = str[i]\n\t\tconst charCode = char.charCodeAt(0)\n\n\t\t// 判断字符宽度（中英文）\n\t\tif (charCode <= 0xff) {\n\t\t\t// 半角字符（英文等）\n\t\t\tvisualLength += 0.5\n\t\t} else {\n\t\t\t// 全角字符、汉字等\n\t\t\tvisualLength += 1\n\t\t}\n\n\t\tif (visualLength > Number(props.count)) {\n\t\t\tbreak\n\t\t}\n\t\tresult += char\n\t}\n\treturn result\n})\n</script>\n"],"names":["DO_defineComponent","_withDirectives","_openBlock","_createBlock","_resolveDynamicComponent","link","flex","href","_normalizeClass","_renderSlot","_unref","_createElementBlock","_Fragment","size"],"mappings":"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"}