@touchvue/ui 1.0.0-beta.58 → 1.0.0-beta.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/calendar/src/calendar.d.ts +4 -0
- package/es/components/calendar/src/calendar.vue.d.ts +9 -0
- package/es/components/checkboxes/src/Checkboxes.vue.d.ts +2 -0
- package/es/components/ellipsis/index.d.ts +15 -0
- package/es/components/ellipsis/src/Ellipsis.vue.d.ts +9 -0
- package/es/components/grid/src/grid-item.vue.d.ts +2 -0
- package/es/components/timeline/src/timeline.d.ts +1 -1
- package/es/components/timeline/src/timeline.vue.d.ts +1 -1
- package/es/packages/components/box/src/box.vue2.mjs +39 -1
- package/es/packages/components/box/src/box.vue2.mjs.map +1 -1
- package/es/packages/components/button/src/button.mjs +1 -1
- package/es/packages/components/button/src/button.mjs.map +1 -1
- package/es/packages/components/button/src/button.vue2.mjs +60 -20
- package/es/packages/components/button/src/button.vue2.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.mjs +4 -0
- package/es/packages/components/calendar/src/calendar.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.vue2.mjs +4 -0
- package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/center-scroll.mjs +1 -1
- package/es/packages/components/center-scroll/src/center-scroll.mjs.map +1 -1
- package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs +8 -4
- package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +1 -1
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
- package/es/packages/components/dialog/src/dialog.mjs +1 -1
- package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
- package/es/packages/components/ellipsis/src/Ellipsis.vue2.mjs +4 -0
- package/es/packages/components/ellipsis/src/Ellipsis.vue2.mjs.map +1 -1
- package/es/packages/components/float/src/float.mjs +1 -1
- package/es/packages/components/float/src/float.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +1 -1
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/grid/src/grid-item.vue2.mjs +11 -4
- package/es/packages/components/grid/src/grid-item.vue2.mjs.map +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs.map +1 -1
- package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
- package/es/packages/components/input/src/input.vue2.mjs +6 -4
- package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
- package/es/packages/components/padding/src/padding.vue2.mjs +1 -1
- package/es/packages/components/padding/src/padding.vue2.mjs.map +1 -1
- package/es/packages/components/page/src/page.vue2.mjs +6 -6
- package/es/packages/components/page/src/page.vue2.mjs.map +1 -1
- package/es/packages/components/param/src/param.mjs +1 -1
- package/es/packages/components/param/src/param.mjs.map +1 -1
- package/es/packages/components/rate/src/rate.vue2.mjs +1 -1
- package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll.mjs +1 -1
- package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
- package/es/packages/components/tab/src/tab.vue2.mjs +3 -0
- package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
- package/es/packages/components/tag/src/tag.vue2.mjs +39 -1
- package/es/packages/components/tag/src/tag.vue2.mjs.map +1 -1
- package/es/packages/components/text/src/text.vue2.mjs +14 -3
- package/es/packages/components/text/src/text.vue2.mjs.map +1 -1
- package/es/packages/components/timeline/src/timeline.vue.mjs.map +1 -1
- package/es/packages/components/timeline/src/timeline.vue2.mjs +1 -1
- package/es/packages/components/timeline/src/timeline.vue2.mjs.map +1 -1
- package/es/packages/components/tip/index.mjs +1 -1
- package/es/packages/components/tip/index.mjs.map +1 -1
- package/es/packages/components/tooltip/src/tooltip.mjs +1 -1
- package/es/packages/components/tooltip/src/tooltip.mjs.map +1 -1
- package/es/utils/constants/base.d.ts +1 -1
- package/lib/components/calendar/src/calendar.d.ts +4 -0
- package/lib/components/calendar/src/calendar.vue.d.ts +9 -0
- package/lib/components/checkboxes/src/Checkboxes.vue.d.ts +2 -0
- package/lib/components/ellipsis/index.d.ts +15 -0
- package/lib/components/ellipsis/src/Ellipsis.vue.d.ts +9 -0
- package/lib/components/grid/src/grid-item.vue.d.ts +2 -0
- package/lib/components/timeline/src/timeline.d.ts +1 -1
- package/lib/components/timeline/src/timeline.vue.d.ts +1 -1
- package/lib/packages/components/box/src/box.vue2.js +38 -0
- package/lib/packages/components/box/src/box.vue2.js.map +1 -1
- package/lib/packages/components/button/src/button.js +1 -1
- package/lib/packages/components/button/src/button.js.map +1 -1
- package/lib/packages/components/button/src/button.vue2.js +59 -19
- package/lib/packages/components/button/src/button.vue2.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.js +4 -0
- package/lib/packages/components/calendar/src/calendar.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.vue2.js +4 -0
- package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/src/center-scroll.js +1 -1
- package/lib/packages/components/center-scroll/src/center-scroll.js.map +1 -1
- package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js +7 -3
- package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js +1 -1
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
- package/lib/packages/components/dialog/src/dialog.js +1 -1
- package/lib/packages/components/dialog/src/dialog.js.map +1 -1
- package/lib/packages/components/ellipsis/src/Ellipsis.vue2.js +4 -0
- package/lib/packages/components/ellipsis/src/Ellipsis.vue2.js.map +1 -1
- package/lib/packages/components/float/src/float.js +1 -1
- package/lib/packages/components/float/src/float.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +1 -1
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/grid/src/grid-item.vue2.js +10 -3
- package/lib/packages/components/grid/src/grid-item.vue2.js.map +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js.map +1 -1
- package/lib/packages/components/header/src/header.vue2.js.map +1 -1
- package/lib/packages/components/input/src/input.vue2.js +6 -4
- package/lib/packages/components/input/src/input.vue2.js.map +1 -1
- package/lib/packages/components/padding/src/padding.vue2.js +1 -1
- package/lib/packages/components/padding/src/padding.vue2.js.map +1 -1
- package/lib/packages/components/page/src/page.vue2.js +5 -5
- package/lib/packages/components/page/src/page.vue2.js.map +1 -1
- package/lib/packages/components/param/src/param.js +1 -1
- package/lib/packages/components/param/src/param.js.map +1 -1
- package/lib/packages/components/rate/src/rate.vue2.js +1 -1
- package/lib/packages/components/rate/src/rate.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll.js +1 -1
- package/lib/packages/components/scroll/src/scroll.js.map +1 -1
- package/lib/packages/components/tab/src/tab.vue2.js +3 -0
- package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
- package/lib/packages/components/tag/src/tag.vue2.js +38 -0
- package/lib/packages/components/tag/src/tag.vue2.js.map +1 -1
- package/lib/packages/components/text/src/text.vue2.js +13 -2
- package/lib/packages/components/text/src/text.vue2.js.map +1 -1
- package/lib/packages/components/timeline/src/timeline.vue.js.map +1 -1
- package/lib/packages/components/timeline/src/timeline.vue2.js +1 -1
- package/lib/packages/components/timeline/src/timeline.vue2.js.map +1 -1
- package/lib/packages/components/tip/index.js +1 -1
- package/lib/packages/components/tip/index.js.map +1 -1
- package/lib/packages/components/tooltip/src/tooltip.js +1 -1
- package/lib/packages/components/tooltip/src/tooltip.js.map +1 -1
- package/lib/utils/constants/base.d.ts +1 -1
- package/package.json +1 -1
- package/theme/components/index.css +293 -39
- package/theme/index.css +293 -39
- package/theme/skin/default.css +293 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.vue2.mjs","sources":["../../../../../../packages/components/tab/src/tab.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTab'\n});\n</script>\n<template>\n\t<div :key=\"langKey\" class=\"to-tab\" :class=\"setClass\" :flex=\"flex ? flex : null\" :style=\"setStyle\">\n\t\t<div class=\"to-tab-tab\">\n\t\t\t<div v-if=\"props.title || $slots.title\" class=\"to-tab-title\">\n\t\t\t\t<div class=\"to-tab-title-text\">\n\t\t\t\t\t<slot name=\"title\">{{ title }}</slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div ref=\"list\" class=\"to-tab-list\" @scroll=\"handleListScroll\">\n\t\t\t\t<div ref=\"ul\" class=\"to-tab-wrapper\">\n\t\t\t\t\t<template v-for=\"(item, index) in _data\" :key=\"index\">\n\t\t\t\t\t\t<div v-if=\"$slots.center && Math.floor(_data.length / 2) === index\">\n\t\t\t\t\t\t\t<slot name=\"center\"></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-else class=\"to-tab-item\" :data-tab-index=\"index\" :class=\"{ 'is-on': item.value === selectValue, 'is-disabled': item.disabled }\" :style=\"setTabStyle\" @click=\"changeTab(item, index, 'click')\" @mouseover=\"changeTab(item, index, 'hover')\" @contextmenu=\"contextmenu(item, index)\">\n\t\t\t\t\t\t\t<slot name=\"item\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t\t\t\t<div class=\"to-tab-item-main\">\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-left\"></div>\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-content\">\n\t\t\t\t\t\t\t\t\t\t<to-pic v-if=\"item.pic\" class=\"to-tab-item-pic\" :src=\"item.value === selectValue ? getPicOn(item.pic) : item.pic\"></to-pic>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"item.icon\" :value=\"item.icon\" class=\"to-tab-item-icon\" :type=\"item.value === selectValue ? 'fill' : ''\" mode=\"tab-icon\"></to-icon>\n\t\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-label\">\n\t\t\t\t\t\t\t\t\t\t\t<slot name=\"label\" v-bind=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ item.label }}\n\t\t\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<to-tag v-if=\"item.count\" type=\"number\" class=\"to-tab-item-count\">{{ item.count }}</to-tag>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"removable\" value=\"close\" link class=\"to-tab-item-remove\" @click.stop=\"removePTab(item, index)\"></to-icon>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-right\"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"to-tab-indicator\"></div>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"tabScrollShow\" ref=\"tabScrollRef\" class=\"to-tab-list-scroll\" :class=\"{ 'is-dragging': tabScrollDragging }\" :style=\"tabScrollStyle\" @mousedown=\"startTabScrollDrag\">\n\t\t\t\t\t<div class=\"to-tab-list-scroll-bar\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"controlShow || overflowFloatShow || slot.fn\" class=\"to-tab-fn\">\n\t\t\t\t<to-icon v-if=\"over === 'control' && controlShow\" class=\"to-tab-fn-item\" link value=\"back\" @mousedown=\"controlLeftScroll\" @mouseup=\"scrollStop\" @mouseleave=\"scrollStop\"></to-icon>\n\t\t\t\t<to-icon v-if=\"over === 'control' && controlShow\" class=\"to-tab-fn-item\" link value=\"next\" @mousedown=\"controlRightScroll\" @mouseup=\"scrollStop\" @mouseleave=\"scrollStop\"></to-icon>\n\t\t\t\t<slot name=\"fn\"></slot>\n\t\t\t\t<to-icon v-if=\"overflowFloatShow\" ref=\"overflowIconRef\" value=\"more\" link @click=\"toggleOverflowFloat\"></to-icon>\n\t\t\t\t<Teleport v-if=\"overflowFloatShow\" to=\"body\">\n\t\t\t\t\t<div class=\"to-tab\">\n\t\t\t\t\t\t<to-float ref=\"overflowFloatRef\" align=\"right\" :global=\"false\" class=\"to-tab-over-float\" :lazy=\"false\" width=\"12\">\n\t\t\t\t\t\t\t<to-scroll class=\"to-tab-over-scroll\">\n\t\t\t\t\t\t\t\t<div class=\"to-tab-over-list\">\n\t\t\t\t\t\t\t\t\t<div v-for=\"tab in overflowTabs\" :key=\"tab.index\" class=\"to-tab-over-item\" :class=\"{ 'is-on': tab.item.value === selectValue, 'is-disabled': tab.item.disabled }\" @click=\"changeOverflowTab(tab)\" @contextmenu=\"contextmenu(tab.item, tab.index)\">\n\t\t\t\t\t\t\t\t\t\t<to-pic v-if=\"tab.item.pic\" class=\"to-tab-over-item-pic\" :src=\"tab.item.value === selectValue ? getPicOn(tab.item.pic) : tab.item.pic\"></to-pic>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"tab.item.icon\" :value=\"tab.item.icon\" class=\"to-tab-over-item-icon\" :type=\"tab.item.value === selectValue ? 'fill' : ''\" mode=\"tab-icon\"></to-icon>\n\t\t\t\t\t\t\t\t\t\t<div class=\"to-tab-over-item-label\">\n\t\t\t\t\t\t\t\t\t\t\t<slot name=\"label\" v-bind=\"tab.item\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ tab.item.label }}\n\t\t\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"removable\" value=\"close\" link class=\"to-tab-over-item-remove\" @click.stop=\"removeOverflowTab(tab)\"></to-icon>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</to-scroll>\n\t\t\t\t\t\t</to-float>\n\t\t\t\t\t</div>\n\t\t\t\t</Teleport>\n\t\t\t</div>\n\t\t\t<div class=\"to-tab-divider\"></div>\n\t\t</div>\n\t\t<to-float v-if=\"contentType === 'float'\" ref=\"floatRef\" :lazy=\"false\">\n\t\t\t<slot></slot>\n\t\t</to-float>\n\t\t<div v-else class=\"to-tab-page\">\n\t\t\t<slot></slot>\n\t\t</div>\n\t</div>\n</template>\n<script setup lang=\"ts\">\nimport { ref, computed, CSSProperties, provide, Ref, onMounted, onBeforeUnmount, watch, nextTick, useSlots } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToFloat, ToIcon } from '@touchvue/components'\nimport { useDevice } from '@touchvue/hooks'\nimport { langKey } from '@touchvue/locale'\n\n\nconst emit = defineEmits(['update:modelValue', 'change', 'remove', 'contextmenu'])\n\nexport interface TabItem {\n\tlabel: string\n\tvalue: string | number\n\t[key: string]: any\n}\n\ninterface OverflowTab {\n\titem: TabItem\n\tindex: number\n}\n\nexport interface TabProps {\n\tflex?: boolean\n\tmodelValue?: string | number\n\titemWidth?: string | number\n\tmode?: string\n\tdata?: TabItem[] | string\n\tremovable?: boolean\n\tposition?: 'left' | 'right' | 'bottom' | 'top' | ''\n\titemDir?: 'v' | ''\n\tover?: 'float' | 'wrap' | 'control' | 'avg' | ''\n\tevent?: string\n\tcontentType?: string\n\ttitle?: string\n\theight?: string | number\n\tchangePic?: boolean\n\talign?: 'center' | ''\n\tbeforeChange?: () => boolean | Promise<boolean>\n\tbeforeRemove?: () => boolean | Promise<boolean>\n}\n\nexport interface ITabProvide {\n\taddTab: (item: TabItem) => void\n\tremoveTab: (val: string | number) => void\n\tupdateTabLabel: (val: string | number, label: string) => void\n\tselectValue: Ref<string, string>\n}\n\nconst props = withDefaults(defineProps<TabProps>(), {\n\tmodelValue: '',\n\titemWidth: '',\n\tmode: 'default',\n\tover: '',\n\titemDir: '',\n\tevent: 'click',\n\tremovable: false,\n\tdata: () => [] as TabItem[],\n\tcontentType: '',\n\ttitle: '',\n\theight: '',\n\tbeforeChange: null,\n\tbeforeRemove: null,\n\tchangePic: false,\n\tposition: '',\n\talign: '',\n\tflex: false\n})\n\nconst selectValue: any = ref('')\nconst _data = ref<TabItem[]>([])\nconst floatRef = ref<any>(null)\nconst overflowFloatRef = ref<any>(null)\nconst overflowIconRef = ref<any>(null)\nconst overflowTabs = ref<OverflowTab[]>([])\nconst overflowFloatShow = computed(() => props.over === 'float' && overflowTabs.value.length > 0)\nconst ul = ref<HTMLElement | null>(null)\nconst list = ref<HTMLElement | null>(null)\nconst tabScrollRef = ref<HTMLElement | null>(null)\nconst tabScrollWidth = ref(0)\nconst tabScrollLeft = ref(0)\nconst tabScrollable = ref(false)\nconst tabScrollDragging = ref(false)\nconst activeOver = ref<TabProps['over']>('')\nlet scrollTimer: ReturnType<typeof setInterval> | null = null\nconst controlShow = ref(false)\nlet stopChange = false\nlet activeOverVersion = 0\nconst slot = useSlots()\nconst { isPc } = useDevice()\nconst tabScrollShow = computed(() => isPc.value && tabScrollable.value)\nconst tabScrollStyle = computed<CSSProperties>(() => {\n\treturn {\n\t\twidth: `${tabScrollWidth.value}px`,\n\t\tleft: `${tabScrollLeft.value}px`\n\t}\n})\n\nwatch(\n\t() => props.modelValue,\n\t(val, old) => {\n\t\tif (val || val === 0) {\n\t\t\tselectValue.value = val\n\t\t\tscrollSelectTabIntoView()\n\t\t} else {\n\t\t\temit('update:modelValue', old)\n\t\t}\n\t},\n\t{ immediate: true }\n)\nwatch(\n\t() => props.data,\n\t() => {\n\t\tif (!stopChange) {\n\t\t\tinitData()\n\t\t}\n\t},\n\t{ deep: true }\n)\nwatch(\n\t() => isPc.value,\n\t() => {\n\t\tupdateTabLayout()\n\t}\n)\nwatch(\n\t() => props.over,\n\t() => {\n\t\tupdateTabLayout()\n\t}\n)\nonMounted(() => {\n\tinitData()\n\twindow.addEventListener('resize', updateTabLayout)\n})\nonBeforeUnmount(() => {\n\twindow.removeEventListener('resize', updateTabLayout)\n\tstopTabScrollDrag()\n\tscrollStop()\n})\n\nfunction initData() {\n\tif (props.data && props.data.length) {\n\t\tif (typeof props.data === 'string') {\n\t\t\t_data.value = props.data.split(',').map(item => ({ label: item, value: item }))\n\t\t} else if (Array.isArray(props.data) && props.data.length) {\n\t\t\t_data.value = props.data\n\t\t}\n\t\tif (!selectValue.value && selectValue.value !== 0) {\n\t\t\tconst hasNoOnItems = !_data.value.some(item => item.on)\n\t\t\tif (hasNoOnItems) {\n\t\t\t\tselectValue.value = _data.value[0].value\n\t\t\t}\n\t\t}\n\t}\n\tif (props.over === 'control') {\n\t\tnextTick(() => {\n\t\t\tsetLayout()\n\t\t})\n\t}\n\tif (props.over === 'float') {\n\t\tupdateOverflowTabs()\n\t}\n\tupdateTabScroll()\n\tupdateActiveOver()\n}\nconst setTabStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.itemWidth && !isNaN(Number(props.itemWidth)) && props.itemWidth !== 'avg') {\n\t\tobj.width = props.itemWidth + 'em'\n\t}\n\treturn obj\n})\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.height === 'full') {\n\t\tarr.push(`height-full`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(...getModeClasses(props.mode))\n\t}\n\tif (props.position === 'left') {\n\t\tarr.push(`position-left`)\n\t\tarr.push(`dir-v`)\n\t}\n\tif (props.position === 'right') {\n\t\tarr.push(`position-right`)\n\t\tarr.push(`dir-v`)\n\t}\n\tif (props.position === 'bottom') {\n\t\tarr.push(`position-bottom`)\n\t}\n\tif (props.itemDir) {\n\t\tarr.push(`item-dir-${props.itemDir}`)\n\t}\n\tif (props.itemWidth === 'avg') {\n\t\tarr.push(`item-width-avg`)\n\t}\n\tif (props.align) {\n\t\tarr.push(`align-${props.align}`)\n\t}\n\tif (activeOver.value) {\n\t\tarr.push(`over-${activeOver.value}`)\n\t}\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = props.height as string\n\t\t}\n\t}\n\treturn obj\n})\n\nasync function changeTab(item, index, event, force = false) {\n\tif (!force && props.event !== event) return false\n\tif (item.disabled) return false\n\tlet flag = true\n\tif (props.beforeChange) {\n\t\tlet fn = props.beforeChange\n\t\tif (typeof fn === 'function') {\n\t\t\tif (typeof (fn() as Promise<boolean>).then === 'function') {\n\t\t\t\tflag = await fn()\n\t\t\t} else {\n\t\t\t\tflag = (fn as any)()\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tstopChange = true\n\tif (props.contentType === 'float') {\n\t\tfloatRef.value.open(ul.value)\n\t}\n\tselectValue.value = item.value\n\temit('update:modelValue', item.value)\n\temit('change', item.value, item, index)\n\tscrollTabIntoView(index)\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n\treturn true\n}\n\nasync function removePTab(item, idx) {\n\tlet flag = true\n\tif (props.beforeRemove) {\n\t\tlet fn = props.beforeRemove\n\t\tif (typeof fn === 'function') {\n\t\t\tif (typeof (fn() as Promise<boolean>).then === 'function') {\n\t\t\t\tflag = await fn()\n\t\t\t} else {\n\t\t\t\tflag = (fn as any)()\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tstopChange = true\n\tif (item.value === selectValue.value) {\n\t\tif (idx > 0) {\n\t\t\tselectValue.value = _data.value[idx - 1].value\n\t\t} else {\n\t\t\tselectValue.value = ''\n\t\t}\n\t\temit('update:modelValue', selectValue.value)\n\t}\n\t_data.value.splice(idx, 1)\n\tif (props.over === 'control') {\n\t\tsetLayout()\n\t}\n\tif (props.over === 'float') {\n\t\tupdateOverflowTabs()\n\t}\n\tupdateTabScroll()\n\tupdateActiveOver()\n\temit('remove', item.value, item, idx)\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\nfunction removeTab(val) {\n\t//\n\tconsole.log(val)\n}\nfunction addTab(tab) {\n\tif (props.data && props.data.length) return false\n\tstopChange = true\n\tlet idx = _data.value.findIndex(item => item.value === tab.value)\n\tif (idx === -1) {\n\t\tif (tab.on) {\n\t\t\tselectValue.value = tab.value\n\t\t}\n\t\t_data.value.push(tab)\n\t\tif (props.over === 'control') {\n\t\t\tnextTick(() => {\n\t\t\t\tsetLayout()\n\t\t\t})\n\t\t}\n\t\tif (props.over === 'float') {\n\t\t\tupdateOverflowTabs()\n\t\t}\n\t\tupdateTabScroll()\n\t\tupdateActiveOver()\n\t}\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\nfunction updateTabLabel(oldLabel: string | number, label: string) {\n\tlet idx = _data.value.findIndex(item => item.label === oldLabel)\n\tif (idx !== -1) {\n\t\t_data.value[idx].label = label\n\t\tupdateTabLayout()\n\t}\n}\nfunction getPicOn(pic) {\n\tlet src = ''\n\tif (pic && props.changePic) {\n\t\tlet arr = pic.split('.')\n\t\tif (arr.length === 2) {\n\t\t\tsrc = arr[0] + '-on.' + arr[1]\n\t\t} else if (arr.length > 2) {\n\t\t\tarr.forEach((item, idx) => {\n\t\t\t\tif (idx === arr.length - 1) {\n\t\t\t\t\tsrc += '-on.' + item\n\t\t\t\t} else {\n\t\t\t\t\tsrc += item\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t} else {\n\t\tsrc = pic\n\t}\n\treturn src\n}\nfunction contextmenu(item, idx) {\n\temit('contextmenu', item.value, item, idx)\n}\nfunction updateTabLayout() {\n\tif (props.over === 'control') {\n\t\tsetLayout()\n\t}\n\tupdateActiveOver()\n\tupdateOverflowTabs()\n\tupdateTabScroll()\n}\nfunction handleListScroll() {\n\tsetOverflowTabs()\n\tsetTabScroll()\n}\nfunction updateOverflowTabs() {\n\tnextTick(() => {\n\t\tsetOverflowTabs()\n\t})\n}\nfunction setOverflowTabs() {\n\tif (props.over !== 'float' || !list.value || !ul.value) {\n\t\toverflowTabs.value = []\n\t\treturn\n\t}\n\tconst listRect = list.value.getBoundingClientRect()\n\tif (!listRect.width || !listRect.height) {\n\t\toverflowTabs.value = []\n\t\treturn\n\t}\n\tconst hiddenIndexes = new Set<number>()\n\tconst itemNodes = Array.from(ul.value.querySelectorAll('.to-tab-item')) as HTMLElement[]\n\titemNodes.forEach(node => {\n\t\tconst index = Number(node.dataset.tabIndex)\n\t\tif (Number.isNaN(index)) return\n\t\tconst rect = node.getBoundingClientRect()\n\t\tconst isHidden = rect.left < listRect.left - 1 || rect.right > listRect.right + 1 || rect.top < listRect.top - 1 || rect.bottom > listRect.bottom + 1\n\t\tif (isHidden) {\n\t\t\thiddenIndexes.add(index)\n\t\t}\n\t})\n\tconst oldShow = overflowTabs.value.length > 0\n\toverflowTabs.value = _data.value.map((item, index) => ({ item, index })).filter(tab => hiddenIndexes.has(tab.index))\n\tif (oldShow !== overflowTabs.value.length > 0) {\n\t\tupdateOverflowTabs()\n\t}\n}\nfunction updateTabScroll() {\n\tnextTick(() => {\n\t\tsetTabScroll()\n\t})\n}\nfunction setTabScroll() {\n\tif (!isPc.value || !list.value || !ul.value) {\n\t\ttabScrollable.value = false\n\t\treturn\n\t}\n\tconst listWidth = list.value.clientWidth\n\tconst scrollWidth = ul.value.scrollWidth\n\tconst scrollRange = scrollWidth - listWidth\n\tif (listWidth <= 0 || scrollRange <= 1) {\n\t\ttabScrollable.value = false\n\t\ttabScrollWidth.value = 0\n\t\ttabScrollLeft.value = 0\n\t\tlist.value.scrollLeft = 0\n\t\treturn\n\t}\n\tconst scrollLeft = Math.max(0, Math.min(scrollRange, list.value.scrollLeft))\n\tif (scrollLeft !== list.value.scrollLeft) {\n\t\tlist.value.scrollLeft = scrollLeft\n\t}\n\ttabScrollable.value = true\n\ttabScrollWidth.value = Math.max((listWidth * listWidth) / scrollWidth, 16)\n\tconst trackRange = Math.max(listWidth - tabScrollWidth.value, 0)\n\tconst scrollRatio = scrollLeft / scrollRange\n\ttabScrollLeft.value = scrollLeft + scrollRatio * trackRange\n}\nfunction getTabScrollRange() {\n\tif (!list.value || !ul.value) return 0\n\treturn Math.max(ul.value.scrollWidth - list.value.clientWidth, 0)\n}\nasync function updateActiveOver() {\n\tconst version = ++activeOverVersion\n\tconst over = props.over\n\tif (over !== 'avg' && over !== 'wrap') {\n\t\tactiveOver.value = over\n\t\treturn\n\t}\n\tactiveOver.value = ''\n\tawait nextTick()\n\tif (version !== activeOverVersion || props.over !== over || !list.value || !ul.value) return\n\tactiveOver.value = getTabScrollRange() > 1 ? over : ''\n\tawait nextTick()\n\tif (version !== activeOverVersion) return\n\tsetTabScroll()\n}\nfunction setTabScrollLeft(scrollLeft: number) {\n\tif (!list.value) return\n\tconst scrollRange = getTabScrollRange()\n\tlist.value.scrollLeft = Math.max(0, Math.min(scrollRange, scrollLeft))\n\tsetTabScroll()\n\tsetOverflowTabs()\n}\nfunction startTabScrollDrag(event: MouseEvent) {\n\tif (!tabScrollShow.value || !list.value || !ul.value) return\n\tevent.preventDefault()\n\ttabScrollDragging.value = true\n\tconst startX = event.clientX\n\tconst startScrollLeft = list.value.scrollLeft\n\tconst listWidth = list.value.clientWidth\n\tconst scrollRange = getTabScrollRange()\n\tconst trackRange = Math.max(listWidth - tabScrollWidth.value, 1)\n\tconst move = (moveEvent: MouseEvent) => {\n\t\tmoveEvent.preventDefault()\n\t\tconst nextScrollLeft = startScrollLeft + ((moveEvent.clientX - startX) / trackRange) * scrollRange\n\t\tsetTabScrollLeft(nextScrollLeft)\n\t}\n\tconst up = () => {\n\t\tstopTabScrollDrag()\n\t}\n\twindow.addEventListener('mousemove', move)\n\twindow.addEventListener('mouseup', up, { once: true })\n\ttabScrollMove = move\n\ttabScrollUp = up\n}\nlet tabScrollMove: ((event: MouseEvent) => void) | null = null\nlet tabScrollUp: (() => void) | null = null\nfunction stopTabScrollDrag() {\n\ttabScrollDragging.value = false\n\tif (tabScrollMove) {\n\t\twindow.removeEventListener('mousemove', tabScrollMove)\n\t\ttabScrollMove = null\n\t}\n\tif (tabScrollUp) {\n\t\twindow.removeEventListener('mouseup', tabScrollUp)\n\t\ttabScrollUp = null\n\t}\n}\nasync function toggleOverflowFloat() {\n\tupdateOverflowTabs()\n\tawait nextTick()\n\tif (overflowTabs.value.length) {\n\t\toverflowFloatRef.value?.toggle?.(overflowIconRef.value)\n\t} else {\n\t\toverflowFloatRef.value?.close?.()\n\t}\n}\nasync function changeOverflowTab(tab: OverflowTab) {\n\tconst changed = await changeTab(tab.item, tab.index, 'click', true)\n\tif (changed !== false) {\n\t\toverflowFloatRef.value?.close?.()\n\t\tscrollTabIntoView(tab.index)\n\t}\n}\nasync function removeOverflowTab(tab: OverflowTab) {\n\tawait removePTab(tab.item, tab.index)\n\tupdateOverflowTabs()\n\tawait nextTick()\n\tif (!overflowTabs.value.length) {\n\t\toverflowFloatRef.value?.close?.()\n\t}\n}\nfunction scrollTabIntoView(index: number) {\n\tnextTick(() => {\n\t\tif (!list.value || !ul.value) return\n\t\tconst node = ul.value.querySelector(`.to-tab-item[data-tab-index=\"${index}\"]`) as HTMLElement | null\n\t\tif (!node) return\n\t\tconst listRect = list.value.getBoundingClientRect()\n\t\tconst nodeRect = node.getBoundingClientRect()\n\t\tif (nodeRect.right > listRect.right) {\n\t\t\tsetTabScrollLeft(list.value.scrollLeft + nodeRect.right - listRect.right)\n\t\t} else if (nodeRect.left < listRect.left) {\n\t\t\tsetTabScrollLeft(list.value.scrollLeft + nodeRect.left - listRect.left)\n\t\t} else {\n\t\t\tupdateOverflowTabs()\n\t\t\tupdateTabScroll()\n\t\t}\n\t})\n}\nfunction scrollSelectTabIntoView() {\n\tconst index = _data.value.findIndex(item => item.value === selectValue.value)\n\tif (index !== -1) {\n\t\tscrollTabIntoView(index)\n\t}\n}\n// function calcTabFloat() {\n// \tlet listWidth = list.value.offsetWidth\n// \tlet nodeList = ul.value.querySelectorAll('.to-tab-item')\n// \tlet liWidths = 0\n// \tlet maxIdx = 0\n// \tnodeList.forEach((item, idx) => {\n// \t\tif (liWidths + item.offsetWidth < listWidth) {\n// \t\t\tliWidths += item.offsetWidth\n// \t\t\tmaxIdx = idx\n// \t\t}\n// \t})\n// }\nfunction controlLeftScroll() {\n\tscrollTimer = setInterval(() => {\n\t\tsetTabScrollLeft((list.value?.scrollLeft || 0) - 3)\n\t}, 1)\n}\nfunction controlRightScroll() {\n\tscrollTimer = setInterval(() => {\n\t\tsetTabScrollLeft((list.value?.scrollLeft || 0) + 3)\n\t}, 1)\n}\nfunction scrollStop() {\n\tif (scrollTimer) {\n\t\tclearInterval(scrollTimer)\n\t\tscrollTimer = null\n\t}\n}\nfunction setLayout() {\n\tnextTick(() => {\n\t\tif (!list.value || !ul.value) {\n\t\t\tcontrolShow.value = false\n\t\t\treturn\n\t\t}\n\t\tcontrolShow.value = getTabScrollRange() > 1\n\t\tif (!controlShow.value) {\n\t\t\tlist.value.scrollLeft = 0\n\t\t}\n\t\tsetTabScroll()\n\t})\n}\nprovide<ITabProvide>('TabProvide', {\n\taddTab,\n\tremoveTab,\n\tupdateTabLabel,\n\tselectValue\n})\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_unref","_normalizeClass","flex","_createElementVNode","$slots","_renderSlot","title","_openBlock","_Fragment","_renderList","_createBlock","_mergeProps","_createTextVNode","_toDisplayString","removable","_withModifiers","over","_Teleport","_createVNode","contentType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tab.vue2.mjs","sources":["../../../../../../packages/components/tab/src/tab.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTab'\n});\n</script>\n<template>\n\t<div ref=\"elRef\" :key=\"langKey\" class=\"to-tab\" :class=\"setClass\" :flex=\"flex ? flex : null\" :style=\"setStyle\">\n\t\t<div class=\"to-tab-tab\">\n\t\t\t<div v-if=\"props.title || $slots.title\" class=\"to-tab-title\">\n\t\t\t\t<div class=\"to-tab-title-text\">\n\t\t\t\t\t<slot name=\"title\">{{ title }}</slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div ref=\"list\" class=\"to-tab-list\" @scroll=\"handleListScroll\">\n\t\t\t\t<div ref=\"ul\" class=\"to-tab-wrapper\">\n\t\t\t\t\t<template v-for=\"(item, index) in _data\" :key=\"index\">\n\t\t\t\t\t\t<div v-if=\"$slots.center && Math.floor(_data.length / 2) === index\">\n\t\t\t\t\t\t\t<slot name=\"center\"></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-else class=\"to-tab-item\" :data-tab-index=\"index\" :class=\"{ 'is-on': item.value === selectValue, 'is-disabled': item.disabled }\" :style=\"setTabStyle\" @click=\"changeTab(item, index, 'click')\" @mouseover=\"changeTab(item, index, 'hover')\" @contextmenu=\"contextmenu(item, index)\">\n\t\t\t\t\t\t\t<slot name=\"item\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t\t\t\t<div class=\"to-tab-item-main\">\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-left\"></div>\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-content\">\n\t\t\t\t\t\t\t\t\t\t<to-pic v-if=\"item.pic\" class=\"to-tab-item-pic\" :src=\"item.value === selectValue ? getPicOn(item.pic) : item.pic\"></to-pic>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"item.icon\" :value=\"item.icon\" class=\"to-tab-item-icon\" :type=\"item.value === selectValue ? 'fill' : ''\" mode=\"tab-icon\"></to-icon>\n\t\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-label\">\n\t\t\t\t\t\t\t\t\t\t\t<slot name=\"label\" v-bind=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ item.label }}\n\t\t\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<to-tag v-if=\"item.count\" type=\"number\" class=\"to-tab-item-count\">{{ item.count }}</to-tag>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"removable\" value=\"close\" link class=\"to-tab-item-remove\" @click.stop=\"removePTab(item, index)\"></to-icon>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-right\"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"to-tab-indicator\"></div>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"tabScrollShow\" ref=\"tabScrollRef\" class=\"to-tab-list-scroll\" :class=\"{ 'is-dragging': tabScrollDragging }\" :style=\"tabScrollStyle\" @mousedown=\"startTabScrollDrag\">\n\t\t\t\t\t<div class=\"to-tab-list-scroll-bar\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"controlShow || overflowFloatShow || slot.fn\" class=\"to-tab-fn\">\n\t\t\t\t<to-icon v-if=\"over === 'control' && controlShow\" class=\"to-tab-fn-item\" link value=\"back\" @mousedown=\"controlLeftScroll\" @mouseup=\"scrollStop\" @mouseleave=\"scrollStop\"></to-icon>\n\t\t\t\t<to-icon v-if=\"over === 'control' && controlShow\" class=\"to-tab-fn-item\" link value=\"next\" @mousedown=\"controlRightScroll\" @mouseup=\"scrollStop\" @mouseleave=\"scrollStop\"></to-icon>\n\t\t\t\t<slot name=\"fn\"></slot>\n\t\t\t\t<to-icon v-if=\"overflowFloatShow\" ref=\"overflowIconRef\" value=\"more\" link @click=\"toggleOverflowFloat\"></to-icon>\n\t\t\t\t<Teleport v-if=\"overflowFloatShow\" to=\"body\">\n\t\t\t\t\t<div class=\"to-tab\">\n\t\t\t\t\t\t<to-float ref=\"overflowFloatRef\" align=\"right\" :global=\"false\" class=\"to-tab-over-float\" :lazy=\"false\" width=\"12\">\n\t\t\t\t\t\t\t<to-scroll class=\"to-tab-over-scroll\">\n\t\t\t\t\t\t\t\t<div class=\"to-tab-over-list\">\n\t\t\t\t\t\t\t\t\t<div v-for=\"tab in overflowTabs\" :key=\"tab.index\" class=\"to-tab-over-item\" :class=\"{ 'is-on': tab.item.value === selectValue, 'is-disabled': tab.item.disabled }\" @click=\"changeOverflowTab(tab)\" @contextmenu=\"contextmenu(tab.item, tab.index)\">\n\t\t\t\t\t\t\t\t\t\t<to-pic v-if=\"tab.item.pic\" class=\"to-tab-over-item-pic\" :src=\"tab.item.value === selectValue ? getPicOn(tab.item.pic) : tab.item.pic\"></to-pic>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"tab.item.icon\" :value=\"tab.item.icon\" class=\"to-tab-over-item-icon\" :type=\"tab.item.value === selectValue ? 'fill' : ''\" mode=\"tab-icon\"></to-icon>\n\t\t\t\t\t\t\t\t\t\t<div class=\"to-tab-over-item-label\">\n\t\t\t\t\t\t\t\t\t\t\t<slot name=\"label\" v-bind=\"tab.item\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ tab.item.label }}\n\t\t\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"removable\" value=\"close\" link class=\"to-tab-over-item-remove\" @click.stop=\"removeOverflowTab(tab)\"></to-icon>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</to-scroll>\n\t\t\t\t\t\t</to-float>\n\t\t\t\t\t</div>\n\t\t\t\t</Teleport>\n\t\t\t</div>\n\t\t\t<div class=\"to-tab-divider\"></div>\n\t\t</div>\n\t\t<to-float v-if=\"contentType === 'float'\" ref=\"floatRef\" :lazy=\"false\">\n\t\t\t<slot></slot>\n\t\t</to-float>\n\t\t<div v-else class=\"to-tab-page\">\n\t\t\t<slot></slot>\n\t\t</div>\n\t</div>\n</template>\n<script setup lang=\"ts\">\nimport { ref, computed, CSSProperties, provide, Ref, onMounted, onBeforeUnmount, watch, nextTick, useSlots } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToFloat, ToIcon } from '@touchvue/components'\nimport { useDevice } from '@touchvue/hooks'\nimport { langKey } from '@touchvue/locale'\n\n\nconst emit = defineEmits(['update:modelValue', 'change', 'remove', 'contextmenu'])\n\nexport interface TabItem {\n\tlabel: string\n\tvalue: string | number\n\t[key: string]: any\n}\n\ninterface OverflowTab {\n\titem: TabItem\n\tindex: number\n}\n\nexport interface TabProps {\n\tflex?: boolean\n\tmodelValue?: string | number\n\titemWidth?: string | number\n\tmode?: string\n\tdata?: TabItem[] | string\n\tremovable?: boolean\n\tposition?: 'left' | 'right' | 'bottom' | 'top' | ''\n\titemDir?: 'v' | ''\n\tover?: 'float' | 'wrap' | 'control' | 'avg' | ''\n\tevent?: string\n\tcontentType?: string\n\ttitle?: string\n\theight?: string | number\n\tchangePic?: boolean\n\talign?: 'center' | ''\n\tbeforeChange?: () => boolean | Promise<boolean>\n\tbeforeRemove?: () => boolean | Promise<boolean>\n}\n\nexport interface ITabProvide {\n\taddTab: (item: TabItem) => void\n\tremoveTab: (val: string | number) => void\n\tupdateTabLabel: (val: string | number, label: string) => void\n\tselectValue: Ref<string, string>\n}\n\nconst props = withDefaults(defineProps<TabProps>(), {\n\tmodelValue: '',\n\titemWidth: '',\n\tmode: 'default',\n\tover: '',\n\titemDir: '',\n\tevent: 'click',\n\tremovable: false,\n\tdata: () => [] as TabItem[],\n\tcontentType: '',\n\ttitle: '',\n\theight: '',\n\tbeforeChange: null,\n\tbeforeRemove: null,\n\tchangePic: false,\n\tposition: '',\n\talign: '',\n\tflex: false\n})\n\nconst selectValue: any = ref('')\nconst elRef = ref<HTMLElement | null>(null)\nconst _data = ref<TabItem[]>([])\nconst floatRef = ref<any>(null)\nconst overflowFloatRef = ref<any>(null)\nconst overflowIconRef = ref<any>(null)\nconst overflowTabs = ref<OverflowTab[]>([])\nconst overflowFloatShow = computed(() => props.over === 'float' && overflowTabs.value.length > 0)\nconst ul = ref<HTMLElement | null>(null)\nconst list = ref<HTMLElement | null>(null)\nconst tabScrollRef = ref<HTMLElement | null>(null)\nconst tabScrollWidth = ref(0)\nconst tabScrollLeft = ref(0)\nconst tabScrollable = ref(false)\nconst tabScrollDragging = ref(false)\nconst activeOver = ref<TabProps['over']>('')\nlet scrollTimer: ReturnType<typeof setInterval> | null = null\nconst controlShow = ref(false)\nlet stopChange = false\nlet activeOverVersion = 0\nconst slot = useSlots()\nconst { isPc } = useDevice()\nconst tabScrollShow = computed(() => isPc.value && tabScrollable.value)\nconst tabScrollStyle = computed<CSSProperties>(() => {\n\treturn {\n\t\twidth: `${tabScrollWidth.value}px`,\n\t\tleft: `${tabScrollLeft.value}px`\n\t}\n})\n\nwatch(\n\t() => props.modelValue,\n\t(val, old) => {\n\t\tif (val || val === 0) {\n\t\t\tselectValue.value = val\n\t\t\tscrollSelectTabIntoView()\n\t\t} else {\n\t\t\temit('update:modelValue', old)\n\t\t}\n\t},\n\t{ immediate: true }\n)\nwatch(\n\t() => props.data,\n\t() => {\n\t\tif (!stopChange) {\n\t\t\tinitData()\n\t\t}\n\t},\n\t{ deep: true }\n)\nwatch(\n\t() => isPc.value,\n\t() => {\n\t\tupdateTabLayout()\n\t}\n)\nwatch(\n\t() => props.over,\n\t() => {\n\t\tupdateTabLayout()\n\t}\n)\nonMounted(() => {\n\tinitData()\n\twindow.addEventListener('resize', updateTabLayout)\n})\nonBeforeUnmount(() => {\n\twindow.removeEventListener('resize', updateTabLayout)\n\tstopTabScrollDrag()\n\tscrollStop()\n})\n\nfunction initData() {\n\tif (props.data && props.data.length) {\n\t\tif (typeof props.data === 'string') {\n\t\t\t_data.value = props.data.split(',').map(item => ({ label: item, value: item }))\n\t\t} else if (Array.isArray(props.data) && props.data.length) {\n\t\t\t_data.value = props.data\n\t\t}\n\t\tif (!selectValue.value && selectValue.value !== 0) {\n\t\t\tconst hasNoOnItems = !_data.value.some(item => item.on)\n\t\t\tif (hasNoOnItems) {\n\t\t\t\tselectValue.value = _data.value[0].value\n\t\t\t}\n\t\t}\n\t}\n\tif (props.over === 'control') {\n\t\tnextTick(() => {\n\t\t\tsetLayout()\n\t\t})\n\t}\n\tif (props.over === 'float') {\n\t\tupdateOverflowTabs()\n\t}\n\tupdateTabScroll()\n\tupdateActiveOver()\n}\nconst setTabStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.itemWidth && !isNaN(Number(props.itemWidth)) && props.itemWidth !== 'avg') {\n\t\tobj.width = props.itemWidth + 'em'\n\t}\n\treturn obj\n})\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.height === 'full') {\n\t\tarr.push(`height-full`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(...getModeClasses(props.mode))\n\t}\n\tif (props.position === 'left') {\n\t\tarr.push(`position-left`)\n\t\tarr.push(`dir-v`)\n\t}\n\tif (props.position === 'right') {\n\t\tarr.push(`position-right`)\n\t\tarr.push(`dir-v`)\n\t}\n\tif (props.position === 'bottom') {\n\t\tarr.push(`position-bottom`)\n\t}\n\tif (props.itemDir) {\n\t\tarr.push(`item-dir-${props.itemDir}`)\n\t}\n\tif (props.itemWidth === 'avg') {\n\t\tarr.push(`item-width-avg`)\n\t}\n\tif (props.align) {\n\t\tarr.push(`align-${props.align}`)\n\t}\n\tif (activeOver.value) {\n\t\tarr.push(`over-${activeOver.value}`)\n\t}\n\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = props.height as string\n\t\t}\n\t}\n\treturn obj\n})\n\nasync function changeTab(item, index, event, force = false) {\n\tif (!force && props.event !== event) return false\n\tif (item.disabled) return false\n\tlet flag = true\n\tif (props.beforeChange) {\n\t\tlet fn = props.beforeChange\n\t\tif (typeof fn === 'function') {\n\t\t\tif (typeof (fn() as Promise<boolean>).then === 'function') {\n\t\t\t\tflag = await fn()\n\t\t\t} else {\n\t\t\t\tflag = (fn as any)()\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tstopChange = true\n\tif (props.contentType === 'float') {\n\t\tfloatRef.value.open(ul.value)\n\t}\n\tselectValue.value = item.value\n\temit('update:modelValue', item.value)\n\temit('change', item.value, item, index)\n\tscrollTabIntoView(index)\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n\treturn true\n}\n\nasync function removePTab(item, idx) {\n\tlet flag = true\n\tif (props.beforeRemove) {\n\t\tlet fn = props.beforeRemove\n\t\tif (typeof fn === 'function') {\n\t\t\tif (typeof (fn() as Promise<boolean>).then === 'function') {\n\t\t\t\tflag = await fn()\n\t\t\t} else {\n\t\t\t\tflag = (fn as any)()\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tstopChange = true\n\tif (item.value === selectValue.value) {\n\t\tif (idx > 0) {\n\t\t\tselectValue.value = _data.value[idx - 1].value\n\t\t} else {\n\t\t\tselectValue.value = ''\n\t\t}\n\t\temit('update:modelValue', selectValue.value)\n\t}\n\t_data.value.splice(idx, 1)\n\tif (props.over === 'control') {\n\t\tsetLayout()\n\t}\n\tif (props.over === 'float') {\n\t\tupdateOverflowTabs()\n\t}\n\tupdateTabScroll()\n\tupdateActiveOver()\n\temit('remove', item.value, item, idx)\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\nfunction removeTab(val) {\n\t//\n\tconsole.log(val)\n}\nfunction addTab(tab) {\n\tif (props.data && props.data.length) return false\n\tstopChange = true\n\tlet idx = _data.value.findIndex(item => item.value === tab.value)\n\tif (idx === -1) {\n\t\tif (tab.on) {\n\t\t\tselectValue.value = tab.value\n\t\t}\n\t\t_data.value.push(tab)\n\t\tif (props.over === 'control') {\n\t\t\tnextTick(() => {\n\t\t\t\tsetLayout()\n\t\t\t})\n\t\t}\n\t\tif (props.over === 'float') {\n\t\t\tupdateOverflowTabs()\n\t\t}\n\t\tupdateTabScroll()\n\t\tupdateActiveOver()\n\t}\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\nfunction updateTabLabel(oldLabel: string | number, label: string) {\n\tlet idx = _data.value.findIndex(item => item.label === oldLabel)\n\tif (idx !== -1) {\n\t\t_data.value[idx].label = label\n\t\tupdateTabLayout()\n\t}\n}\nfunction getPicOn(pic) {\n\tlet src = ''\n\tif (pic && props.changePic) {\n\t\tlet arr = pic.split('.')\n\t\tif (arr.length === 2) {\n\t\t\tsrc = arr[0] + '-on.' + arr[1]\n\t\t} else if (arr.length > 2) {\n\t\t\tarr.forEach((item, idx) => {\n\t\t\t\tif (idx === arr.length - 1) {\n\t\t\t\t\tsrc += '-on.' + item\n\t\t\t\t} else {\n\t\t\t\t\tsrc += item\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t} else {\n\t\tsrc = pic\n\t}\n\treturn src\n}\nfunction contextmenu(item, idx) {\n\temit('contextmenu', item.value, item, idx)\n}\nfunction updateTabLayout() {\n\tif (props.over === 'control') {\n\t\tsetLayout()\n\t}\n\tupdateActiveOver()\n\tupdateOverflowTabs()\n\tupdateTabScroll()\n}\nfunction handleListScroll() {\n\tsetOverflowTabs()\n\tsetTabScroll()\n}\nfunction updateOverflowTabs() {\n\tnextTick(() => {\n\t\tsetOverflowTabs()\n\t})\n}\nfunction setOverflowTabs() {\n\tif (props.over !== 'float' || !list.value || !ul.value) {\n\t\toverflowTabs.value = []\n\t\treturn\n\t}\n\tconst listRect = list.value.getBoundingClientRect()\n\tif (!listRect.width || !listRect.height) {\n\t\toverflowTabs.value = []\n\t\treturn\n\t}\n\tconst hiddenIndexes = new Set<number>()\n\tconst itemNodes = Array.from(ul.value.querySelectorAll('.to-tab-item')) as HTMLElement[]\n\titemNodes.forEach(node => {\n\t\tconst index = Number(node.dataset.tabIndex)\n\t\tif (Number.isNaN(index)) return\n\t\tconst rect = node.getBoundingClientRect()\n\t\tconst isHidden = rect.left < listRect.left - 1 || rect.right > listRect.right + 1 || rect.top < listRect.top - 1 || rect.bottom > listRect.bottom + 1\n\t\tif (isHidden) {\n\t\t\thiddenIndexes.add(index)\n\t\t}\n\t})\n\tconst oldShow = overflowTabs.value.length > 0\n\toverflowTabs.value = _data.value.map((item, index) => ({ item, index })).filter(tab => hiddenIndexes.has(tab.index))\n\tif (oldShow !== overflowTabs.value.length > 0) {\n\t\tupdateOverflowTabs()\n\t}\n}\nfunction updateTabScroll() {\n\tnextTick(() => {\n\t\tsetTabScroll()\n\t})\n}\nfunction setTabScroll() {\n\tif (!isPc.value || !list.value || !ul.value) {\n\t\ttabScrollable.value = false\n\t\treturn\n\t}\n\tconst listWidth = list.value.clientWidth\n\tconst scrollWidth = ul.value.scrollWidth\n\tconst scrollRange = scrollWidth - listWidth\n\tif (listWidth <= 0 || scrollRange <= 1) {\n\t\ttabScrollable.value = false\n\t\ttabScrollWidth.value = 0\n\t\ttabScrollLeft.value = 0\n\t\tlist.value.scrollLeft = 0\n\t\treturn\n\t}\n\tconst scrollLeft = Math.max(0, Math.min(scrollRange, list.value.scrollLeft))\n\tif (scrollLeft !== list.value.scrollLeft) {\n\t\tlist.value.scrollLeft = scrollLeft\n\t}\n\ttabScrollable.value = true\n\ttabScrollWidth.value = Math.max((listWidth * listWidth) / scrollWidth, 16)\n\tconst trackRange = Math.max(listWidth - tabScrollWidth.value, 0)\n\tconst scrollRatio = scrollLeft / scrollRange\n\ttabScrollLeft.value = scrollLeft + scrollRatio * trackRange\n}\nfunction getTabScrollRange() {\n\tif (!list.value || !ul.value) return 0\n\treturn Math.max(ul.value.scrollWidth - list.value.clientWidth, 0)\n}\nasync function updateActiveOver() {\n\tconst version = ++activeOverVersion\n\tconst over = props.over\n\tif (over !== 'avg' && over !== 'wrap') {\n\t\tactiveOver.value = over\n\t\treturn\n\t}\n\tactiveOver.value = ''\n\tawait nextTick()\n\tif (version !== activeOverVersion || props.over !== over || !list.value || !ul.value) return\n\tactiveOver.value = getTabScrollRange() > 1 ? over : ''\n\tawait nextTick()\n\tif (version !== activeOverVersion) return\n\tsetTabScroll()\n}\nfunction setTabScrollLeft(scrollLeft: number) {\n\tif (!list.value) return\n\tconst scrollRange = getTabScrollRange()\n\tlist.value.scrollLeft = Math.max(0, Math.min(scrollRange, scrollLeft))\n\tsetTabScroll()\n\tsetOverflowTabs()\n}\nfunction startTabScrollDrag(event: MouseEvent) {\n\tif (!tabScrollShow.value || !list.value || !ul.value) return\n\tevent.preventDefault()\n\ttabScrollDragging.value = true\n\tconst startX = event.clientX\n\tconst startScrollLeft = list.value.scrollLeft\n\tconst listWidth = list.value.clientWidth\n\tconst scrollRange = getTabScrollRange()\n\tconst trackRange = Math.max(listWidth - tabScrollWidth.value, 1)\n\tconst move = (moveEvent: MouseEvent) => {\n\t\tmoveEvent.preventDefault()\n\t\tconst nextScrollLeft = startScrollLeft + ((moveEvent.clientX - startX) / trackRange) * scrollRange\n\t\tsetTabScrollLeft(nextScrollLeft)\n\t}\n\tconst up = () => {\n\t\tstopTabScrollDrag()\n\t}\n\twindow.addEventListener('mousemove', move)\n\twindow.addEventListener('mouseup', up, { once: true })\n\ttabScrollMove = move\n\ttabScrollUp = up\n}\nlet tabScrollMove: ((event: MouseEvent) => void) | null = null\nlet tabScrollUp: (() => void) | null = null\nfunction stopTabScrollDrag() {\n\ttabScrollDragging.value = false\n\tif (tabScrollMove) {\n\t\twindow.removeEventListener('mousemove', tabScrollMove)\n\t\ttabScrollMove = null\n\t}\n\tif (tabScrollUp) {\n\t\twindow.removeEventListener('mouseup', tabScrollUp)\n\t\ttabScrollUp = null\n\t}\n}\nasync function toggleOverflowFloat() {\n\tupdateOverflowTabs()\n\tawait nextTick()\n\tif (overflowTabs.value.length) {\n\t\toverflowFloatRef.value?.toggle?.(overflowIconRef.value)\n\t} else {\n\t\toverflowFloatRef.value?.close?.()\n\t}\n}\nasync function changeOverflowTab(tab: OverflowTab) {\n\tconst changed = await changeTab(tab.item, tab.index, 'click', true)\n\tif (changed !== false) {\n\t\toverflowFloatRef.value?.close?.()\n\t\tscrollTabIntoView(tab.index)\n\t}\n}\nasync function removeOverflowTab(tab: OverflowTab) {\n\tawait removePTab(tab.item, tab.index)\n\tupdateOverflowTabs()\n\tawait nextTick()\n\tif (!overflowTabs.value.length) {\n\t\toverflowFloatRef.value?.close?.()\n\t}\n}\nfunction scrollTabIntoView(index: number) {\n\tnextTick(() => {\n\t\tif (!list.value || !ul.value) return\n\t\tconst node = ul.value.querySelector(`.to-tab-item[data-tab-index=\"${index}\"]`) as HTMLElement | null\n\t\tif (!node) return\n\t\tconst listRect = list.value.getBoundingClientRect()\n\t\tconst nodeRect = node.getBoundingClientRect()\n\t\tif (nodeRect.right > listRect.right) {\n\t\t\tsetTabScrollLeft(list.value.scrollLeft + nodeRect.right - listRect.right)\n\t\t} else if (nodeRect.left < listRect.left) {\n\t\t\tsetTabScrollLeft(list.value.scrollLeft + nodeRect.left - listRect.left)\n\t\t} else {\n\t\t\tupdateOverflowTabs()\n\t\t\tupdateTabScroll()\n\t\t}\n\t})\n}\nfunction scrollSelectTabIntoView() {\n\tconst index = _data.value.findIndex(item => item.value === selectValue.value)\n\tif (index !== -1) {\n\t\tscrollTabIntoView(index)\n\t}\n}\n// function calcTabFloat() {\n// \tlet listWidth = list.value.offsetWidth\n// \tlet nodeList = ul.value.querySelectorAll('.to-tab-item')\n// \tlet liWidths = 0\n// \tlet maxIdx = 0\n// \tnodeList.forEach((item, idx) => {\n// \t\tif (liWidths + item.offsetWidth < listWidth) {\n// \t\t\tliWidths += item.offsetWidth\n// \t\t\tmaxIdx = idx\n// \t\t}\n// \t})\n// }\nfunction controlLeftScroll() {\n\tscrollTimer = setInterval(() => {\n\t\tsetTabScrollLeft((list.value?.scrollLeft || 0) - 3)\n\t}, 1)\n}\nfunction controlRightScroll() {\n\tscrollTimer = setInterval(() => {\n\t\tsetTabScrollLeft((list.value?.scrollLeft || 0) + 3)\n\t}, 1)\n}\nfunction scrollStop() {\n\tif (scrollTimer) {\n\t\tclearInterval(scrollTimer)\n\t\tscrollTimer = null\n\t}\n}\nfunction setLayout() {\n\tnextTick(() => {\n\t\tif (!list.value || !ul.value) {\n\t\t\tcontrolShow.value = false\n\t\t\treturn\n\t\t}\n\t\tcontrolShow.value = getTabScrollRange() > 1\n\t\tif (!controlShow.value) {\n\t\t\tlist.value.scrollLeft = 0\n\t\t}\n\t\tsetTabScroll()\n\t})\n}\nprovide<ITabProvide>('TabProvide', {\n\taddTab,\n\tremoveTab,\n\tupdateTabLabel,\n\tselectValue\n})\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_unref","_normalizeClass","flex","_createElementVNode","$slots","_renderSlot","title","_openBlock","_Fragment","_renderList","_createBlock","_mergeProps","_createTextVNode","_toDisplayString","removable","_withModifiers","over","_Teleport","_createVNode","contentType"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, useSlots, computed, resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, createBlock, createCommentVNode, renderSlot, withModifiers } from 'vue';
|
|
1
|
+
import { defineComponent, useSlots, ref, computed, resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, createBlock, createCommentVNode, renderSlot, withModifiers } from 'vue';
|
|
2
2
|
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
3
3
|
|
|
4
4
|
const __default__ = defineComponent({
|
|
@@ -21,6 +21,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
21
21
|
emits: ["remove", "beforeRemove"],
|
|
22
22
|
setup(__props, { emit: __emit }) {
|
|
23
23
|
const slots = useSlots();
|
|
24
|
+
const elRef = ref(null);
|
|
24
25
|
const slotText = computed(() => extractTextFromSlot());
|
|
25
26
|
const props = __props;
|
|
26
27
|
const emit = __emit;
|
|
@@ -41,6 +42,41 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
41
42
|
if (props.link) {
|
|
42
43
|
arr.push("is-link");
|
|
43
44
|
}
|
|
45
|
+
if (elRef.value) {
|
|
46
|
+
const cs = getComputedStyle(elRef.value);
|
|
47
|
+
const extractGd = (val) => {
|
|
48
|
+
var _a;
|
|
49
|
+
return ((_a = val.match(/linear-gradient\([\s\S]*\)/)) == null ? void 0 : _a[0]) || "";
|
|
50
|
+
};
|
|
51
|
+
const extractWidth = (val) => {
|
|
52
|
+
const token = val.trim().split(/\s+/)[0];
|
|
53
|
+
return /^(\d+\.?\d*)(px|em|rem|vh|vw|%|pt|cm|mm|in)$/.test(token) ? token : "";
|
|
54
|
+
};
|
|
55
|
+
const borderVal = cs.getPropertyValue("--border").trim();
|
|
56
|
+
const hoverVal = cs.getPropertyValue("--hover-border").trim();
|
|
57
|
+
const activeVal = cs.getPropertyValue("--active-border").trim();
|
|
58
|
+
if (borderVal.includes("linear-gradient")) {
|
|
59
|
+
arr.push("is-gd-border");
|
|
60
|
+
elRef.value.style.setProperty("--gd-border", extractGd(borderVal));
|
|
61
|
+
const w = extractWidth(borderVal);
|
|
62
|
+
if (w)
|
|
63
|
+
elRef.value.style.setProperty("--gd-border-thick", w);
|
|
64
|
+
}
|
|
65
|
+
if (hoverVal.includes("linear-gradient")) {
|
|
66
|
+
arr.push("is-gd-border-hover");
|
|
67
|
+
elRef.value.style.setProperty("--gd-hover-border", extractGd(hoverVal));
|
|
68
|
+
const hw = extractWidth(hoverVal);
|
|
69
|
+
if (hw)
|
|
70
|
+
elRef.value.style.setProperty("--gd-hover-border-thick", hw);
|
|
71
|
+
}
|
|
72
|
+
if (activeVal.includes("linear-gradient")) {
|
|
73
|
+
arr.push("is-gd-border-active");
|
|
74
|
+
elRef.value.style.setProperty("--gd-active-border", extractGd(activeVal));
|
|
75
|
+
const aw = extractWidth(activeVal);
|
|
76
|
+
if (aw)
|
|
77
|
+
elRef.value.style.setProperty("--gd-active-border-thick", aw);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
44
80
|
return arr;
|
|
45
81
|
});
|
|
46
82
|
const setStyle = computed(() => {
|
|
@@ -75,6 +111,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
75
111
|
return (_ctx, _cache) => {
|
|
76
112
|
const _component_to_icon = resolveComponent("to-icon");
|
|
77
113
|
return openBlock(), createElementBlock("div", {
|
|
114
|
+
ref_key: "elRef",
|
|
115
|
+
ref: elRef,
|
|
78
116
|
class: normalizeClass(["to-tag", setClass.value]),
|
|
79
117
|
flex: _ctx.flex ? _ctx.flex : null,
|
|
80
118
|
style: normalizeStyle(setStyle.value)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.vue2.mjs","sources":["../../../../../../packages/components/tag/src/tag.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTag',\n\tcomponentName: 'ToTag'\n});\n</script>\n<template>\n\t<div class=\"to-tag\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<div class=\"to-tag-wrapper\">\n\t\t\t<div class=\"to-tag-content\">\n\t\t\t\t<to-icon v-if=\"icon\" :value=\"icon\" class=\"to-tag-icon\"></to-icon>\n\t\t\t\t<div class=\"to-tag-text\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<to-icon v-if=\"removable\" class=\"to-tag-remove\" link value=\"close\" @click.stop=\"removeHandle\"></to-icon>\n\t\t</div>\n\t</div>\n</template>\n<script setup lang=\"ts\">\nimport { CSSProperties, computed, useSlots } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\n\nconst slots = useSlots()\nconst slotText = computed(() => extractTextFromSlot())\ninterface Props {\n\ticon?: string\n\tmode?: string\n\tcolor?: string\n\tremovable?: boolean\n\tposition?: string\n\tlink?: boolean\n\ttype?: string\n\toffset?: number | string\n\tflex?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tflex: false,\n\ticon: '',\n\tmode: 'default',\n\tcolor: '',\n\tremovable: false,\n\tposition: '',\n\tlink: false,\n\ttype: 'normal',\n\toffset: 0\n})\n\nconst emit = defineEmits<{\n\t/**\n\t * @deprecated use remove event\n\t */\n\tremove: [data: any]\n\tbeforeRemove: [data: any]\n}>()\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.mode) {\n\t\tarr.push(...getModeClasses(props.mode))\n\t}\n\tif (props.color) {\n\t\tarr.push(`color-${props.color}`)\n\t}\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\tif (props.position) {\n\t\tarr.push(`position-${props.position}`)\n\t}\n\tif (props.link) {\n\t\tarr.push('is-link')\n\t}\n\treturn arr\n})\nconst setStyle = computed(() => {\n\tconst obj: CSSProperties = {}\n\n\t// 设置 offset\n\tif (props.offset) {\n\t\tobj['--rotate-offset'] = props.offset + 'em'\n\t}\n\n\treturn obj\n})\n\n// 提取插槽文本\nconst extractTextFromSlot = (): string => {\n\tif (!slots.default) return ''\n\n\tconst content = slots.default()\n\treturn extractTextFromVNodes(content)\n}\n\nconst extractTextFromVNodes = (vnodes: any[]): string => {\n\treturn vnodes\n\t\t.map(vnode => {\n\t\t\tif (typeof vnode.children === 'string') {\n\t\t\t\treturn vnode.children\n\t\t\t} else if (Array.isArray(vnode.children)) {\n\t\t\t\treturn extractTextFromVNodes(vnode.children)\n\t\t\t}\n\t\t\treturn ''\n\t\t})\n\t\t.join('')\n\t\t.trim()\n}\n\n// 删除处理函数\nconst removeHandle = () => {\n\temit('beforeRemove', slotText.value)\n\tsetTimeout(() => {\n\t\temit('remove', slotText.value)\n\t})\n}\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_normalizeClass","flex","_createElementVNode","icon","_createBlock","_renderSlot","removable"],"mappings":";;;AAEA,MAAA,cAA6BA,eAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,OAAA;AAAA,EACN,aAAe,EAAA,OAAA;AAChB,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;AAmBD,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AACvB,IAAA,MAAM,QAAW,GAAA,QAAA,CAAS,MAAM,mBAAA,EAAqB,CAAA,CAAA;AAarD,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAYd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAQb,IAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAC/B,MAAA,IAAI,MAAgB,EAAC,CAAA;AACrB,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAA,GAAA,CAAI,IAAK,CAAA,GAAG,cAAe,CAAA,KAAA,CAAM,IAAI,CAAC,CAAA,CAAA;AAAA,OACvC;AACA,MAAA,IAAI,MAAM,KAAO,EAAA;AAChB,QAAI,GAAA,CAAA,IAAA,CAAK,CAAS,MAAA,EAAA,KAAA,CAAM,KAAO,CAAA,CAAA,CAAA,CAAA;AAAA,OAChC;AACA,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAI,GAAA,CAAA,IAAA,CAAK,CAAQ,KAAA,EAAA,KAAA,CAAM,IAAM,CAAA,CAAA,CAAA,CAAA;AAAA,OAC9B;AACA,MAAA,IAAI,MAAM,QAAU,EAAA;AACnB,QAAI,GAAA,CAAA,IAAA,CAAK,CAAY,SAAA,EAAA,KAAA,CAAM,QAAU,CAAA,CAAA,CAAA,CAAA;AAAA,OACtC;AACA,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAA,GAAA,CAAI,KAAK,SAAS,CAAA,CAAA;AAAA,OACnB;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AACD,IAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAC/B,MAAA,MAAM,MAAqB,EAAC,CAAA;AAG5B,MAAA,IAAI,MAAM,MAAQ,EAAA;AACjB,QAAI,GAAA,CAAA,iBAAiB,CAAI,GAAA,KAAA,CAAM,MAAS,GAAA,IAAA,CAAA;AAAA,OACzC;AAEA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAGD,IAAA,MAAM,sBAAsB,MAAc;AACzC,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AAAS,QAAO,OAAA,EAAA,CAAA;AAE3B,MAAM,MAAA,OAAA,GAAU,MAAM,OAAQ,EAAA,CAAA;AAC9B,MAAA,OAAO,sBAAsB,OAAO,CAAA,CAAA;AAAA,KACrC,CAAA;AAEA,IAAM,MAAA,qBAAA,GAAwB,CAAC,MAA0B,KAAA;AACxD,MAAO,OAAA,MAAA,CACL,IAAI,CAAS,KAAA,KAAA;AACb,QAAI,IAAA,OAAO,KAAM,CAAA,QAAA,KAAa,QAAU,EAAA;AACvC,UAAA,OAAO,KAAM,CAAA,QAAA,CAAA;AAAA,SACH,MAAA,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAA,CAAM,QAAQ,CAAG,EAAA;AACzC,UAAO,OAAA,qBAAA,CAAsB,MAAM,QAAQ,CAAA,CAAA;AAAA,SAC5C;AACA,QAAO,OAAA,EAAA,CAAA;AAAA,OACP,CAAA,CACA,IAAK,CAAA,EAAE,EACP,IAAK,EAAA,CAAA;AAAA,KACR,CAAA;AAGA,IAAA,MAAM,eAAe,MAAM;AAC1B,MAAK,IAAA,CAAA,cAAA,EAAgB,SAAS,KAAK,CAAA,CAAA;AACnC,MAAA,UAAA,CAAW,MAAM;AAChB,QAAK,IAAA,CAAA,QAAA,EAAU,SAAS,KAAK,CAAA,CAAA;AAAA,OAC7B,CAAA,CAAA;AAAA,KACF,CAAA;;;
|
|
1
|
+
{"version":3,"file":"tag.vue2.mjs","sources":["../../../../../../packages/components/tag/src/tag.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTag',\n\tcomponentName: 'ToTag'\n});\n</script>\n<template>\n\t<div ref=\"elRef\" class=\"to-tag\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<div class=\"to-tag-wrapper\">\n\t\t\t<div class=\"to-tag-content\">\n\t\t\t\t<to-icon v-if=\"icon\" :value=\"icon\" class=\"to-tag-icon\"></to-icon>\n\t\t\t\t<div class=\"to-tag-text\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<to-icon v-if=\"removable\" class=\"to-tag-remove\" link value=\"close\" @click.stop=\"removeHandle\"></to-icon>\n\t\t</div>\n\t</div>\n</template>\n<script setup lang=\"ts\">\nimport { CSSProperties, computed, ref, useSlots } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\n\nconst slots = useSlots()\nconst elRef = ref<HTMLElement | null>(null)\nconst slotText = computed(() => extractTextFromSlot())\ninterface Props {\n\ticon?: string\n\tmode?: string\n\tcolor?: string\n\tremovable?: boolean\n\tposition?: string\n\tlink?: boolean\n\ttype?: string\n\toffset?: number | string\n\tflex?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tflex: false,\n\ticon: '',\n\tmode: 'default',\n\tcolor: '',\n\tremovable: false,\n\tposition: '',\n\tlink: false,\n\ttype: 'normal',\n\toffset: 0\n})\n\nconst emit = defineEmits<{\n\t/**\n\t * @deprecated use remove event\n\t */\n\tremove: [data: any]\n\tbeforeRemove: [data: any]\n}>()\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.mode) {\n\t\tarr.push(...getModeClasses(props.mode))\n\t}\n\tif (props.color) {\n\t\tarr.push(`color-${props.color}`)\n\t}\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\tif (props.position) {\n\t\tarr.push(`position-${props.position}`)\n\t}\n\tif (props.link) {\n\t\tarr.push('is-link')\n\t}\n\t// --border/--hover-border/--active-border 支持 linear-gradient 渐变边框\n\tif (elRef.value) {\n\t\tconst cs = getComputedStyle(elRef.value)\n\t\tconst extractGd = (val: string) => val.match(/linear-gradient\\([\\s\\S]*\\)/)?.[0] || ''\n\t\tconst extractWidth = (val: string) => {\n\t\t\tconst token = val.trim().split(/\\s+/)[0]\n\t\t\treturn /^(\\d+\\.?\\d*)(px|em|rem|vh|vw|%|pt|cm|mm|in)$/.test(token) ? token : ''\n\t\t}\n\t\tconst borderVal = cs.getPropertyValue('--border').trim()\n\t\tconst hoverVal = cs.getPropertyValue('--hover-border').trim()\n\t\tconst activeVal = cs.getPropertyValue('--active-border').trim()\n\t\tif (borderVal.includes('linear-gradient')) {\n\t\t\tarr.push('is-gd-border')\n\t\t\telRef.value.style.setProperty('--gd-border', extractGd(borderVal))\n\t\t\tconst w = extractWidth(borderVal)\n\t\t\tif (w) elRef.value.style.setProperty('--gd-border-thick', w)\n\t\t}\n\t\tif (hoverVal.includes('linear-gradient')) {\n\t\t\tarr.push('is-gd-border-hover')\n\t\t\telRef.value.style.setProperty('--gd-hover-border', extractGd(hoverVal))\n\t\t\tconst hw = extractWidth(hoverVal)\n\t\t\tif (hw) elRef.value.style.setProperty('--gd-hover-border-thick', hw)\n\t\t}\n\t\tif (activeVal.includes('linear-gradient')) {\n\t\t\tarr.push('is-gd-border-active')\n\t\t\telRef.value.style.setProperty('--gd-active-border', extractGd(activeVal))\n\t\t\tconst aw = extractWidth(activeVal)\n\t\t\tif (aw) elRef.value.style.setProperty('--gd-active-border-thick', aw)\n\t\t}\n\t}\n\treturn arr\n})\nconst setStyle = computed(() => {\n\tconst obj: CSSProperties = {}\n\n\t// 设置 offset\n\tif (props.offset) {\n\t\tobj['--rotate-offset'] = props.offset + 'em'\n\t}\n\n\treturn obj\n})\n\n// 提取插槽文本\nconst extractTextFromSlot = (): string => {\n\tif (!slots.default) return ''\n\n\tconst content = slots.default()\n\treturn extractTextFromVNodes(content)\n}\n\nconst extractTextFromVNodes = (vnodes: any[]): string => {\n\treturn vnodes\n\t\t.map(vnode => {\n\t\t\tif (typeof vnode.children === 'string') {\n\t\t\t\treturn vnode.children\n\t\t\t} else if (Array.isArray(vnode.children)) {\n\t\t\t\treturn extractTextFromVNodes(vnode.children)\n\t\t\t}\n\t\t\treturn ''\n\t\t})\n\t\t.join('')\n\t\t.trim()\n}\n\n// 删除处理函数\nconst removeHandle = () => {\n\temit('beforeRemove', slotText.value)\n\tsetTimeout(() => {\n\t\temit('remove', slotText.value)\n\t})\n}\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_normalizeClass","flex","_createElementVNode","icon","_createBlock","_renderSlot","removable"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, computed, withDirectives, openBlock, createBlock, resolveDynamicComponent, normalizeClass, normalizeStyle, withCtx, renderSlot, unref, createCommentVNode, createTextVNode, toDisplayString, createElementBlock, Fragment } from 'vue';
|
|
1
|
+
import { defineComponent, ref, computed, withDirectives, openBlock, createBlock, resolveDynamicComponent, normalizeClass, normalizeStyle, withCtx, renderSlot, unref, createCommentVNode, createTextVNode, toDisplayString, createElementBlock, Fragment } from 'vue';
|
|
2
2
|
import { ToIcon } from '../../icon/index.mjs';
|
|
3
3
|
import vSizeDirective from '../../../directives/size/src/size.mjs';
|
|
4
4
|
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
@@ -10,7 +10,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
10
10
|
flex: { type: Boolean },
|
|
11
11
|
data: { default: "" },
|
|
12
12
|
indent: { default: 0 },
|
|
13
|
-
mode: { default: "" },
|
|
13
|
+
mode: { default: "default" },
|
|
14
14
|
size: { default: "" },
|
|
15
15
|
family: { default: "" },
|
|
16
16
|
weight: { default: "" },
|
|
@@ -26,6 +26,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
26
26
|
icon: { default: "" }
|
|
27
27
|
},
|
|
28
28
|
setup(__props) {
|
|
29
|
+
const $el2 = ref(null);
|
|
29
30
|
const props = __props;
|
|
30
31
|
const setClass = computed(() => {
|
|
31
32
|
const arr = [];
|
|
@@ -45,6 +46,15 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
45
46
|
arr.push(`type-row`);
|
|
46
47
|
if (props.count)
|
|
47
48
|
arr.push(`type-count`);
|
|
49
|
+
if ($el2.value) {
|
|
50
|
+
const cs = getComputedStyle($el2.value);
|
|
51
|
+
if (cs.getPropertyValue("--color").trim().includes("linear-gradient"))
|
|
52
|
+
arr.push("is-gd-color");
|
|
53
|
+
if (cs.getPropertyValue("--hover-color").trim().includes("linear-gradient"))
|
|
54
|
+
arr.push("is-gd-hover");
|
|
55
|
+
if (cs.getPropertyValue("--active-color").trim().includes("linear-gradient"))
|
|
56
|
+
arr.push("is-gd-active");
|
|
57
|
+
}
|
|
48
58
|
let decosArr = [];
|
|
49
59
|
if (Array.isArray(props.decos)) {
|
|
50
60
|
decosArr = props.decos;
|
|
@@ -117,7 +127,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
117
127
|
});
|
|
118
128
|
return (_ctx, _cache) => {
|
|
119
129
|
return withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.link ? "a" : "span"), {
|
|
120
|
-
|
|
130
|
+
ref_key: "$el2",
|
|
131
|
+
ref: $el2,
|
|
121
132
|
flex: _ctx.flex ? _ctx.flex : null,
|
|
122
133
|
href: _ctx.href ? _ctx.href : _ctx.link ? "javscript:void(0)" : "",
|
|
123
134
|
class: normalizeClass(["to-text", setClass.value]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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 { getModeClasses } from '@touchvue/hooks'\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(...getModeClasses(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":";;;;;AAEA,MAAA,WAA6B,GAAAA,eAAA,CAAmB,EAAE,IAAA,EAAM,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"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, ref } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToIcon } from '@touchvue/components'\nimport { vSize } from '@touchvue/directives'\n\n\nconst $el2 = ref<HTMLElement | null>(null)\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: 'default',\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(...getModeClasses(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// --color/--hover-color/--active-color 支持 linear-gradient 渐变文字\n\tif ($el2.value) {\n\t\tconst cs = getComputedStyle($el2.value)\n\t\tif (cs.getPropertyValue('--color').trim().includes('linear-gradient')) arr.push('is-gd-color')\n\t\tif (cs.getPropertyValue('--hover-color').trim().includes('linear-gradient')) arr.push('is-gd-hover')\n\t\tif (cs.getPropertyValue('--active-color').trim().includes('linear-gradient')) arr.push('is-gd-active')\n\t}\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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.vue.mjs","sources":["../../../../../../packages/components/timeline/src/timeline.vue"],"sourcesContent":["<template>\n\t<div class=\"to-timeline\" :flex=\"flex ? flex : null\" :class=\"getClass\">\n\t\t<div v-for=\"(item, index) in displayItems\" :key=\"index\" class=\"to-timeline-item\" :style=\"getItemStyle()\" @click=\"handleItemClick(item, index)\">\n\t\t\t<!-- 外部时间显示 -->\n\t\t\t<div v-if=\"showTimeOutside(item)\" class=\"to-timeline-datetime\">\n\t\t\t\t<div v-if=\"item.date\" class=\"to-timeline-date\">\n\t\t\t\t\t<div class=\"to-timeline-date-text\">{{ item.date }}</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"item.time\" class=\"to-timeline-time\">\n\t\t\t\t\t<div class=\"to-timeline-time-text\">{{ item.time }}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<!-- 图标 -->\n\t\t\t<to-icon class=\"to-timeline-icon\" :value=\"item.icon\" :color=\"item.color\" :mode=\"item.mode\">\n\t\t\t\t{{ item.text }}\n\t\t\t</to-icon>\n\n\t\t\t<!-- 主内容区域 -->\n\t\t\t<div class=\"to-timeline-main\">\n\t\t\t\t<!-- 内部时间显示 -->\n\t\t\t\t<div v-if=\"showTimeInside(item)\" class=\"to-timeline-datetime\">\n\t\t\t\t\t<div v-if=\"item.date\" class=\"to-timeline-date\">\n\t\t\t\t\t\t<div class=\"to-timeline-date-text\">{{ item.date }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"item.time\" class=\"to-timeline-time\">\n\t\t\t\t\t\t<div class=\"to-timeline-time-text\">{{ item.time }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- 内容区域 -->\n\t\t\t\t<div class=\"to-timeline-content\" :style=\"item.style\">\n\t\t\t\t\t<template v-if=\"item.content\">{{ item.content }}</template>\n\t\t\t\t\t<slot name=\"default\" :item=\"item\" :index=\"index\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div v-if=\"index < displayItems.length - 1 || tail\" class=\"to-timeline-line\"></div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType, watch, onMounted, nextTick } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToIcon } from '../../icon'\nimport type { TimelineItem, TimelineTimePosition, TimelineDirection, TimelineAlign, TimelineMode } from './timeline'\n\nexport default defineComponent({\n\tname: 'ToTimeline',\n\tcomponents: {\n\t\tToIcon\n\t},\n\tprops: {\n\t\tflex: Boolean,\n\t\tdata: {\n\t\t\ttype: Array as PropType<TimelineItem[]>,\n\t\t\tdefault: () => []\n\t\t},\n\t\ttimePosition: {\n\t\t\ttype: String as PropType<TimelineTimePosition>,\n\t\t\tdefault: 'in',\n\t\t\tvalidator: (val: string) => ['in', 'out'].includes(val)\n\t\t},\n\t\tdir: {\n\t\t\ttype: String as PropType<TimelineDirection>,\n\t\t\tdefault: 'v',\n\t\t\tvalidator: (val: string) => ['v', 'h', ''].includes(val)\n\t\t},\n\t\tmode: {\n\t\t\ttype: String as PropType<TimelineMode>,\n\t\t\tdefault: ''\n\t\t},\n\t\talign: {\n\t\t\ttype: String as PropType<TimelineAlign>,\n\t\t\tdefault: 'left',\n\t\t\tvalidator: (val: string) => ['left', 'center', 'right'].includes(val)\n\t\t},\n\t\titemWidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: ''\n\t\t},\n\t\treverse: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\ttail: Boolean\n\t},\n\temits: ['click', 'item-rendered'],\n\tsetup(props, { emit }) {\n\t\t// 处理数据顺序\n\t\tconst displayItems = computed(() => {\n\t\t\tif (props.reverse) {\n\t\t\t\treturn [...props.data].reverse()\n\t\t\t}\n\t\t\treturn props.data\n\t\t})\n\n\t\t// 组件基础类名\n\t\tconst getClass = computed(() => {\n\t\t\tconst classArray = []\n\n\t\t\t// 布局类型\n\t\t\tif (props.dir === 'h') {\n\t\t\t\tclassArray.push('dir-h')\n\t\t\t}\n\n\t\t\t// 时间位置\n\t\t\tif (props.timePosition === 'out') {\n\t\t\t\tclassArray.push('time-position-out')\n\t\t\t}\n\n\t\t\t// 对齐方式\n\t\t\tif (props.align === 'center') {\n\t\t\t\tclassArray.push('align-center')\n\t\t\t} else if (props.align === 'right') {\n\t\t\t\tclassArray.push('align-right')\n\t\t\t}\n\n\t\t\t// 全局模式类\n\t\t\tif (props.mode) {\n\t\t\t\tclassArray.push(...getModeClasses(props.mode))\n\t\t\t}\n\n\t\t\t// 是否含有 date\n\t\t\tif (props.data.some(item => item.date)) {\n\t\t\t\tclassArray.push(`has-date`)\n\t\t\t}\n\n\t\t\t// 是否含有 time\n\t\t\tif (props.data.some(item => item.time)) {\n\t\t\t\tclassArray.push(`has-time`)\n\t\t\t}\n\n\t\t\t// 是否设置 item-width\n\t\t\tif (props.itemWidth) {\n\t\t\t\tclassArray.push(`is-item-width`)\n\t\t\t}\n\n\t\t\treturn classArray\n\t\t})\n\n\t\t// 获取图标模式\n\t\tconst getIconMode = (item: TimelineItem) => {\n\t\t\t// 优先使用全局模式,如果未设置则使用项目自身模式\n\t\t\tif (props.mode) {\n\t\t\t\treturn props.mode\n\t\t\t}\n\t\t\treturn item.mode\n\t\t}\n\n\t\t// 获取内容样式\n\t\tconst getItemStyle = () => {\n\t\t\tconst style: Record<string, string> = {}\n\n\t\t\t// 处理宽度设置 - 仅在水平布局时有效\n\t\t\tif (props.dir === 'h' && props.itemWidth) {\n\t\t\t\tif (!isNaN(Number(props.itemWidth))) {\n\t\t\t\t\tstyle.width = props.itemWidth + 'em'\n\t\t\t\t} else {\n\t\t\t\t\tstyle.width = props.itemWidth.toString()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn style\n\t\t}\n\n\t\t// 判断是否显示外部时间\n\t\tconst showTimeOutside = (item: TimelineItem) => {\n\t\t\treturn props.timePosition === 'out' && (item.date || item.time)\n\t\t}\n\n\t\t// 判断是否显示内部时间\n\t\tconst showTimeInside = (item: TimelineItem) => {\n\t\t\treturn props.timePosition === 'in' && (item.date || item.time)\n\t\t}\n\n\t\t// 点击事件处理\n\t\tconst handleItemClick = (item: TimelineItem, index: number) => {\n\t\t\temit('click', item, index)\n\t\t}\n\n\t\t// 监听数据变化\n\t\twatch(\n\t\t\t() => props.data,\n\t\t\t() => {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tprops.data.forEach((_item, _index) => {\n\t\t\t\t\t\temit('item-rendered', _item, _index)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t},\n\t\t\t{ immediate: false, deep: true }\n\t\t)\n\n\t\t// 初始化时触发渲染完成事件\n\t\tonMounted(() => {\n\t\t\tnextTick(() => {\n\t\t\t\tprops.data.forEach((_item, _index) => {\n\t\t\t\t\temit('item-rendered', _item, _index)\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\n\t\treturn {\n\t\t\tdisplayItems,\n\t\t\tgetClass,\n\t\t\tgetIconMode,\n\t\t\tgetItemStyle,\n\t\t\tshowTimeOutside,\n\t\t\tshowTimeInside,\n\t\t\thandleItemClick\n\t\t}\n\t}\n})\n</script>\n"],"names":["_resolveComponent","flex","_normalizeClass","_createElementBlock","_Fragment","_renderList","_openBlock","_normalizeStyle","showTimeOutside","_createCommentVNode","_createVNode","_createElementVNode","showTimeInside","_renderSlot","displayItems"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timeline.vue.mjs","sources":["../../../../../../packages/components/timeline/src/timeline.vue"],"sourcesContent":["<template>\n\t<div class=\"to-timeline\" :flex=\"flex ? flex : null\" :class=\"getClass\">\n\t\t<div v-for=\"(item, index) in displayItems\" :key=\"index\" class=\"to-timeline-item\" :style=\"getItemStyle()\" @click=\"handleItemClick(item, index)\">\n\t\t\t<!-- 外部时间显示 -->\n\t\t\t<div v-if=\"showTimeOutside(item)\" class=\"to-timeline-datetime\">\n\t\t\t\t<div v-if=\"item.date\" class=\"to-timeline-date\">\n\t\t\t\t\t<div class=\"to-timeline-date-text\">{{ item.date }}</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"item.time\" class=\"to-timeline-time\">\n\t\t\t\t\t<div class=\"to-timeline-time-text\">{{ item.time }}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<!-- 图标 -->\n\t\t\t<to-icon class=\"to-timeline-icon\" :value=\"item.icon\" :color=\"item.color\" :mode=\"item.mode\">\n\t\t\t\t{{ item.text }}\n\t\t\t</to-icon>\n\n\t\t\t<!-- 主内容区域 -->\n\t\t\t<div class=\"to-timeline-main\">\n\t\t\t\t<!-- 内部时间显示 -->\n\t\t\t\t<div v-if=\"showTimeInside(item)\" class=\"to-timeline-datetime\">\n\t\t\t\t\t<div v-if=\"item.date\" class=\"to-timeline-date\">\n\t\t\t\t\t\t<div class=\"to-timeline-date-text\">{{ item.date }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"item.time\" class=\"to-timeline-time\">\n\t\t\t\t\t\t<div class=\"to-timeline-time-text\">{{ item.time }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- 内容区域 -->\n\t\t\t\t<div class=\"to-timeline-content\" :style=\"item.style\">\n\t\t\t\t\t<template v-if=\"item.content\">{{ item.content }}</template>\n\t\t\t\t\t<slot name=\"default\" :item=\"item\" :index=\"index\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div v-if=\"index < displayItems.length - 1 || tail\" class=\"to-timeline-line\"></div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType, watch, onMounted, nextTick } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToIcon } from '../../icon'\nimport type { TimelineItem, TimelineTimePosition, TimelineDirection, TimelineAlign, TimelineMode } from './timeline'\n\nexport default defineComponent({\n\tname: 'ToTimeline',\n\tcomponents: {\n\t\tToIcon\n\t},\n\tprops: {\n\t\tflex: Boolean,\n\t\tdata: {\n\t\t\ttype: Array as PropType<TimelineItem[]>,\n\t\t\tdefault: () => []\n\t\t},\n\t\ttimePosition: {\n\t\t\ttype: String as PropType<TimelineTimePosition>,\n\t\t\tdefault: 'in',\n\t\t\tvalidator: (val: string) => ['in', 'out'].includes(val)\n\t\t},\n\t\tdir: {\n\t\t\ttype: String as PropType<TimelineDirection>,\n\t\t\tdefault: 'v',\n\t\t\tvalidator: (val: string) => ['v', 'h', ''].includes(val)\n\t\t},\n\t\tmode: {\n\t\t\ttype: String as PropType<TimelineMode>,\n\t\t\tdefault: 'default'\n\t\t},\n\t\talign: {\n\t\t\ttype: String as PropType<TimelineAlign>,\n\t\t\tdefault: 'left',\n\t\t\tvalidator: (val: string) => ['left', 'center', 'right'].includes(val)\n\t\t},\n\t\titemWidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: ''\n\t\t},\n\t\treverse: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\ttail: Boolean\n\t},\n\temits: ['click', 'item-rendered'],\n\tsetup(props, { emit }) {\n\t\t// 处理数据顺序\n\t\tconst displayItems = computed(() => {\n\t\t\tif (props.reverse) {\n\t\t\t\treturn [...props.data].reverse()\n\t\t\t}\n\t\t\treturn props.data\n\t\t})\n\n\t\t// 组件基础类名\n\t\tconst getClass = computed(() => {\n\t\t\tconst classArray = []\n\n\t\t\t// 布局类型\n\t\t\tif (props.dir === 'h') {\n\t\t\t\tclassArray.push('dir-h')\n\t\t\t}\n\n\t\t\t// 时间位置\n\t\t\tif (props.timePosition === 'out') {\n\t\t\t\tclassArray.push('time-position-out')\n\t\t\t}\n\n\t\t\t// 对齐方式\n\t\t\tif (props.align === 'center') {\n\t\t\t\tclassArray.push('align-center')\n\t\t\t} else if (props.align === 'right') {\n\t\t\t\tclassArray.push('align-right')\n\t\t\t}\n\n\t\t\t// 全局模式类\n\t\t\tif (props.mode) {\n\t\t\t\tclassArray.push(...getModeClasses(props.mode))\n\t\t\t}\n\n\t\t\t// 是否含有 date\n\t\t\tif (props.data.some(item => item.date)) {\n\t\t\t\tclassArray.push(`has-date`)\n\t\t\t}\n\n\t\t\t// 是否含有 time\n\t\t\tif (props.data.some(item => item.time)) {\n\t\t\t\tclassArray.push(`has-time`)\n\t\t\t}\n\n\t\t\t// 是否设置 item-width\n\t\t\tif (props.itemWidth) {\n\t\t\t\tclassArray.push(`is-item-width`)\n\t\t\t}\n\n\t\t\treturn classArray\n\t\t})\n\n\t\t// 获取图标模式\n\t\tconst getIconMode = (item: TimelineItem) => {\n\t\t\t// 优先使用全局模式,如果未设置则使用项目自身模式\n\t\t\tif (props.mode) {\n\t\t\t\treturn props.mode\n\t\t\t}\n\t\t\treturn item.mode\n\t\t}\n\n\t\t// 获取内容样式\n\t\tconst getItemStyle = () => {\n\t\t\tconst style: Record<string, string> = {}\n\n\t\t\t// 处理宽度设置 - 仅在水平布局时有效\n\t\t\tif (props.dir === 'h' && props.itemWidth) {\n\t\t\t\tif (!isNaN(Number(props.itemWidth))) {\n\t\t\t\t\tstyle.width = props.itemWidth + 'em'\n\t\t\t\t} else {\n\t\t\t\t\tstyle.width = props.itemWidth.toString()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn style\n\t\t}\n\n\t\t// 判断是否显示外部时间\n\t\tconst showTimeOutside = (item: TimelineItem) => {\n\t\t\treturn props.timePosition === 'out' && (item.date || item.time)\n\t\t}\n\n\t\t// 判断是否显示内部时间\n\t\tconst showTimeInside = (item: TimelineItem) => {\n\t\t\treturn props.timePosition === 'in' && (item.date || item.time)\n\t\t}\n\n\t\t// 点击事件处理\n\t\tconst handleItemClick = (item: TimelineItem, index: number) => {\n\t\t\temit('click', item, index)\n\t\t}\n\n\t\t// 监听数据变化\n\t\twatch(\n\t\t\t() => props.data,\n\t\t\t() => {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tprops.data.forEach((_item, _index) => {\n\t\t\t\t\t\temit('item-rendered', _item, _index)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t},\n\t\t\t{ immediate: false, deep: true }\n\t\t)\n\n\t\t// 初始化时触发渲染完成事件\n\t\tonMounted(() => {\n\t\t\tnextTick(() => {\n\t\t\t\tprops.data.forEach((_item, _index) => {\n\t\t\t\t\temit('item-rendered', _item, _index)\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\n\t\treturn {\n\t\t\tdisplayItems,\n\t\t\tgetClass,\n\t\t\tgetIconMode,\n\t\t\tgetItemStyle,\n\t\t\tshowTimeOutside,\n\t\t\tshowTimeInside,\n\t\t\thandleItemClick\n\t\t}\n\t}\n})\n</script>\n"],"names":["_resolveComponent","flex","_normalizeClass","_createElementBlock","_Fragment","_renderList","_openBlock","_normalizeStyle","showTimeOutside","_createCommentVNode","_createVNode","_createElementVNode","showTimeInside","_renderSlot","displayItems"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.vue2.mjs","sources":["../../../../../../packages/components/timeline/src/timeline.vue"],"sourcesContent":["<template>\n\t<div class=\"to-timeline\" :flex=\"flex ? flex : null\" :class=\"getClass\">\n\t\t<div v-for=\"(item, index) in displayItems\" :key=\"index\" class=\"to-timeline-item\" :style=\"getItemStyle()\" @click=\"handleItemClick(item, index)\">\n\t\t\t<!-- 外部时间显示 -->\n\t\t\t<div v-if=\"showTimeOutside(item)\" class=\"to-timeline-datetime\">\n\t\t\t\t<div v-if=\"item.date\" class=\"to-timeline-date\">\n\t\t\t\t\t<div class=\"to-timeline-date-text\">{{ item.date }}</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"item.time\" class=\"to-timeline-time\">\n\t\t\t\t\t<div class=\"to-timeline-time-text\">{{ item.time }}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<!-- 图标 -->\n\t\t\t<to-icon class=\"to-timeline-icon\" :value=\"item.icon\" :color=\"item.color\" :mode=\"item.mode\">\n\t\t\t\t{{ item.text }}\n\t\t\t</to-icon>\n\n\t\t\t<!-- 主内容区域 -->\n\t\t\t<div class=\"to-timeline-main\">\n\t\t\t\t<!-- 内部时间显示 -->\n\t\t\t\t<div v-if=\"showTimeInside(item)\" class=\"to-timeline-datetime\">\n\t\t\t\t\t<div v-if=\"item.date\" class=\"to-timeline-date\">\n\t\t\t\t\t\t<div class=\"to-timeline-date-text\">{{ item.date }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"item.time\" class=\"to-timeline-time\">\n\t\t\t\t\t\t<div class=\"to-timeline-time-text\">{{ item.time }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- 内容区域 -->\n\t\t\t\t<div class=\"to-timeline-content\" :style=\"item.style\">\n\t\t\t\t\t<template v-if=\"item.content\">{{ item.content }}</template>\n\t\t\t\t\t<slot name=\"default\" :item=\"item\" :index=\"index\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div v-if=\"index < displayItems.length - 1 || tail\" class=\"to-timeline-line\"></div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType, watch, onMounted, nextTick } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToIcon } from '../../icon'\nimport type { TimelineItem, TimelineTimePosition, TimelineDirection, TimelineAlign, TimelineMode } from './timeline'\n\nexport default defineComponent({\n\tname: 'ToTimeline',\n\tcomponents: {\n\t\tToIcon\n\t},\n\tprops: {\n\t\tflex: Boolean,\n\t\tdata: {\n\t\t\ttype: Array as PropType<TimelineItem[]>,\n\t\t\tdefault: () => []\n\t\t},\n\t\ttimePosition: {\n\t\t\ttype: String as PropType<TimelineTimePosition>,\n\t\t\tdefault: 'in',\n\t\t\tvalidator: (val: string) => ['in', 'out'].includes(val)\n\t\t},\n\t\tdir: {\n\t\t\ttype: String as PropType<TimelineDirection>,\n\t\t\tdefault: 'v',\n\t\t\tvalidator: (val: string) => ['v', 'h', ''].includes(val)\n\t\t},\n\t\tmode: {\n\t\t\ttype: String as PropType<TimelineMode>,\n\t\t\tdefault: ''\n\t\t},\n\t\talign: {\n\t\t\ttype: String as PropType<TimelineAlign>,\n\t\t\tdefault: 'left',\n\t\t\tvalidator: (val: string) => ['left', 'center', 'right'].includes(val)\n\t\t},\n\t\titemWidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: ''\n\t\t},\n\t\treverse: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\ttail: Boolean\n\t},\n\temits: ['click', 'item-rendered'],\n\tsetup(props, { emit }) {\n\t\t// 处理数据顺序\n\t\tconst displayItems = computed(() => {\n\t\t\tif (props.reverse) {\n\t\t\t\treturn [...props.data].reverse()\n\t\t\t}\n\t\t\treturn props.data\n\t\t})\n\n\t\t// 组件基础类名\n\t\tconst getClass = computed(() => {\n\t\t\tconst classArray = []\n\n\t\t\t// 布局类型\n\t\t\tif (props.dir === 'h') {\n\t\t\t\tclassArray.push('dir-h')\n\t\t\t}\n\n\t\t\t// 时间位置\n\t\t\tif (props.timePosition === 'out') {\n\t\t\t\tclassArray.push('time-position-out')\n\t\t\t}\n\n\t\t\t// 对齐方式\n\t\t\tif (props.align === 'center') {\n\t\t\t\tclassArray.push('align-center')\n\t\t\t} else if (props.align === 'right') {\n\t\t\t\tclassArray.push('align-right')\n\t\t\t}\n\n\t\t\t// 全局模式类\n\t\t\tif (props.mode) {\n\t\t\t\tclassArray.push(...getModeClasses(props.mode))\n\t\t\t}\n\n\t\t\t// 是否含有 date\n\t\t\tif (props.data.some(item => item.date)) {\n\t\t\t\tclassArray.push(`has-date`)\n\t\t\t}\n\n\t\t\t// 是否含有 time\n\t\t\tif (props.data.some(item => item.time)) {\n\t\t\t\tclassArray.push(`has-time`)\n\t\t\t}\n\n\t\t\t// 是否设置 item-width\n\t\t\tif (props.itemWidth) {\n\t\t\t\tclassArray.push(`is-item-width`)\n\t\t\t}\n\n\t\t\treturn classArray\n\t\t})\n\n\t\t// 获取图标模式\n\t\tconst getIconMode = (item: TimelineItem) => {\n\t\t\t// 优先使用全局模式,如果未设置则使用项目自身模式\n\t\t\tif (props.mode) {\n\t\t\t\treturn props.mode\n\t\t\t}\n\t\t\treturn item.mode\n\t\t}\n\n\t\t// 获取内容样式\n\t\tconst getItemStyle = () => {\n\t\t\tconst style: Record<string, string> = {}\n\n\t\t\t// 处理宽度设置 - 仅在水平布局时有效\n\t\t\tif (props.dir === 'h' && props.itemWidth) {\n\t\t\t\tif (!isNaN(Number(props.itemWidth))) {\n\t\t\t\t\tstyle.width = props.itemWidth + 'em'\n\t\t\t\t} else {\n\t\t\t\t\tstyle.width = props.itemWidth.toString()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn style\n\t\t}\n\n\t\t// 判断是否显示外部时间\n\t\tconst showTimeOutside = (item: TimelineItem) => {\n\t\t\treturn props.timePosition === 'out' && (item.date || item.time)\n\t\t}\n\n\t\t// 判断是否显示内部时间\n\t\tconst showTimeInside = (item: TimelineItem) => {\n\t\t\treturn props.timePosition === 'in' && (item.date || item.time)\n\t\t}\n\n\t\t// 点击事件处理\n\t\tconst handleItemClick = (item: TimelineItem, index: number) => {\n\t\t\temit('click', item, index)\n\t\t}\n\n\t\t// 监听数据变化\n\t\twatch(\n\t\t\t() => props.data,\n\t\t\t() => {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tprops.data.forEach((_item, _index) => {\n\t\t\t\t\t\temit('item-rendered', _item, _index)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t},\n\t\t\t{ immediate: false, deep: true }\n\t\t)\n\n\t\t// 初始化时触发渲染完成事件\n\t\tonMounted(() => {\n\t\t\tnextTick(() => {\n\t\t\t\tprops.data.forEach((_item, _index) => {\n\t\t\t\t\temit('item-rendered', _item, _index)\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\n\t\treturn {\n\t\t\tdisplayItems,\n\t\t\tgetClass,\n\t\t\tgetIconMode,\n\t\t\tgetItemStyle,\n\t\t\tshowTimeOutside,\n\t\t\tshowTimeInside,\n\t\t\thandleItemClick\n\t\t}\n\t}\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timeline.vue2.mjs","sources":["../../../../../../packages/components/timeline/src/timeline.vue"],"sourcesContent":["<template>\n\t<div class=\"to-timeline\" :flex=\"flex ? flex : null\" :class=\"getClass\">\n\t\t<div v-for=\"(item, index) in displayItems\" :key=\"index\" class=\"to-timeline-item\" :style=\"getItemStyle()\" @click=\"handleItemClick(item, index)\">\n\t\t\t<!-- 外部时间显示 -->\n\t\t\t<div v-if=\"showTimeOutside(item)\" class=\"to-timeline-datetime\">\n\t\t\t\t<div v-if=\"item.date\" class=\"to-timeline-date\">\n\t\t\t\t\t<div class=\"to-timeline-date-text\">{{ item.date }}</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"item.time\" class=\"to-timeline-time\">\n\t\t\t\t\t<div class=\"to-timeline-time-text\">{{ item.time }}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<!-- 图标 -->\n\t\t\t<to-icon class=\"to-timeline-icon\" :value=\"item.icon\" :color=\"item.color\" :mode=\"item.mode\">\n\t\t\t\t{{ item.text }}\n\t\t\t</to-icon>\n\n\t\t\t<!-- 主内容区域 -->\n\t\t\t<div class=\"to-timeline-main\">\n\t\t\t\t<!-- 内部时间显示 -->\n\t\t\t\t<div v-if=\"showTimeInside(item)\" class=\"to-timeline-datetime\">\n\t\t\t\t\t<div v-if=\"item.date\" class=\"to-timeline-date\">\n\t\t\t\t\t\t<div class=\"to-timeline-date-text\">{{ item.date }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"item.time\" class=\"to-timeline-time\">\n\t\t\t\t\t\t<div class=\"to-timeline-time-text\">{{ item.time }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- 内容区域 -->\n\t\t\t\t<div class=\"to-timeline-content\" :style=\"item.style\">\n\t\t\t\t\t<template v-if=\"item.content\">{{ item.content }}</template>\n\t\t\t\t\t<slot name=\"default\" :item=\"item\" :index=\"index\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div v-if=\"index < displayItems.length - 1 || tail\" class=\"to-timeline-line\"></div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType, watch, onMounted, nextTick } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToIcon } from '../../icon'\nimport type { TimelineItem, TimelineTimePosition, TimelineDirection, TimelineAlign, TimelineMode } from './timeline'\n\nexport default defineComponent({\n\tname: 'ToTimeline',\n\tcomponents: {\n\t\tToIcon\n\t},\n\tprops: {\n\t\tflex: Boolean,\n\t\tdata: {\n\t\t\ttype: Array as PropType<TimelineItem[]>,\n\t\t\tdefault: () => []\n\t\t},\n\t\ttimePosition: {\n\t\t\ttype: String as PropType<TimelineTimePosition>,\n\t\t\tdefault: 'in',\n\t\t\tvalidator: (val: string) => ['in', 'out'].includes(val)\n\t\t},\n\t\tdir: {\n\t\t\ttype: String as PropType<TimelineDirection>,\n\t\t\tdefault: 'v',\n\t\t\tvalidator: (val: string) => ['v', 'h', ''].includes(val)\n\t\t},\n\t\tmode: {\n\t\t\ttype: String as PropType<TimelineMode>,\n\t\t\tdefault: 'default'\n\t\t},\n\t\talign: {\n\t\t\ttype: String as PropType<TimelineAlign>,\n\t\t\tdefault: 'left',\n\t\t\tvalidator: (val: string) => ['left', 'center', 'right'].includes(val)\n\t\t},\n\t\titemWidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: ''\n\t\t},\n\t\treverse: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\ttail: Boolean\n\t},\n\temits: ['click', 'item-rendered'],\n\tsetup(props, { emit }) {\n\t\t// 处理数据顺序\n\t\tconst displayItems = computed(() => {\n\t\t\tif (props.reverse) {\n\t\t\t\treturn [...props.data].reverse()\n\t\t\t}\n\t\t\treturn props.data\n\t\t})\n\n\t\t// 组件基础类名\n\t\tconst getClass = computed(() => {\n\t\t\tconst classArray = []\n\n\t\t\t// 布局类型\n\t\t\tif (props.dir === 'h') {\n\t\t\t\tclassArray.push('dir-h')\n\t\t\t}\n\n\t\t\t// 时间位置\n\t\t\tif (props.timePosition === 'out') {\n\t\t\t\tclassArray.push('time-position-out')\n\t\t\t}\n\n\t\t\t// 对齐方式\n\t\t\tif (props.align === 'center') {\n\t\t\t\tclassArray.push('align-center')\n\t\t\t} else if (props.align === 'right') {\n\t\t\t\tclassArray.push('align-right')\n\t\t\t}\n\n\t\t\t// 全局模式类\n\t\t\tif (props.mode) {\n\t\t\t\tclassArray.push(...getModeClasses(props.mode))\n\t\t\t}\n\n\t\t\t// 是否含有 date\n\t\t\tif (props.data.some(item => item.date)) {\n\t\t\t\tclassArray.push(`has-date`)\n\t\t\t}\n\n\t\t\t// 是否含有 time\n\t\t\tif (props.data.some(item => item.time)) {\n\t\t\t\tclassArray.push(`has-time`)\n\t\t\t}\n\n\t\t\t// 是否设置 item-width\n\t\t\tif (props.itemWidth) {\n\t\t\t\tclassArray.push(`is-item-width`)\n\t\t\t}\n\n\t\t\treturn classArray\n\t\t})\n\n\t\t// 获取图标模式\n\t\tconst getIconMode = (item: TimelineItem) => {\n\t\t\t// 优先使用全局模式,如果未设置则使用项目自身模式\n\t\t\tif (props.mode) {\n\t\t\t\treturn props.mode\n\t\t\t}\n\t\t\treturn item.mode\n\t\t}\n\n\t\t// 获取内容样式\n\t\tconst getItemStyle = () => {\n\t\t\tconst style: Record<string, string> = {}\n\n\t\t\t// 处理宽度设置 - 仅在水平布局时有效\n\t\t\tif (props.dir === 'h' && props.itemWidth) {\n\t\t\t\tif (!isNaN(Number(props.itemWidth))) {\n\t\t\t\t\tstyle.width = props.itemWidth + 'em'\n\t\t\t\t} else {\n\t\t\t\t\tstyle.width = props.itemWidth.toString()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn style\n\t\t}\n\n\t\t// 判断是否显示外部时间\n\t\tconst showTimeOutside = (item: TimelineItem) => {\n\t\t\treturn props.timePosition === 'out' && (item.date || item.time)\n\t\t}\n\n\t\t// 判断是否显示内部时间\n\t\tconst showTimeInside = (item: TimelineItem) => {\n\t\t\treturn props.timePosition === 'in' && (item.date || item.time)\n\t\t}\n\n\t\t// 点击事件处理\n\t\tconst handleItemClick = (item: TimelineItem, index: number) => {\n\t\t\temit('click', item, index)\n\t\t}\n\n\t\t// 监听数据变化\n\t\twatch(\n\t\t\t() => props.data,\n\t\t\t() => {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tprops.data.forEach((_item, _index) => {\n\t\t\t\t\t\temit('item-rendered', _item, _index)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t},\n\t\t\t{ immediate: false, deep: true }\n\t\t)\n\n\t\t// 初始化时触发渲染完成事件\n\t\tonMounted(() => {\n\t\t\tnextTick(() => {\n\t\t\t\tprops.data.forEach((_item, _index) => {\n\t\t\t\t\temit('item-rendered', _item, _index)\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\n\t\treturn {\n\t\t\tdisplayItems,\n\t\t\tgetClass,\n\t\t\tgetIconMode,\n\t\t\tgetItemStyle,\n\t\t\tshowTimeOutside,\n\t\t\tshowTimeInside,\n\t\t\thandleItemClick\n\t\t}\n\t}\n})\n</script>\n"],"names":[],"mappings":"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"}
|