@touchvue/ui 1.0.0-beta.46 → 1.0.0-beta.47

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.
Files changed (30) hide show
  1. package/es/components/float/index.d.ts +15 -0
  2. package/es/components/float/src/Float.vue.d.ts +9 -0
  3. package/es/components/float/src/float.d.ts +4 -0
  4. package/es/components/grid/src/grid-item.vue.d.ts +2 -9
  5. package/es/components/scroll/index.d.ts +3 -3
  6. package/es/components/scroll/src/Scroll.vue.d.ts +1 -1
  7. package/es/packages/components/float/src/Float.vue2.mjs +81 -71
  8. package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
  9. package/es/packages/components/float/src/float.mjs +2 -1
  10. package/es/packages/components/float/src/float.mjs.map +1 -1
  11. package/es/packages/components/grid/src/grid-item.vue2.mjs +9 -52
  12. package/es/packages/components/grid/src/grid-item.vue2.mjs.map +1 -1
  13. package/es/packages/hooks/useDevice.mjs.map +1 -1
  14. package/lib/components/float/index.d.ts +15 -0
  15. package/lib/components/float/src/Float.vue.d.ts +9 -0
  16. package/lib/components/float/src/float.d.ts +4 -0
  17. package/lib/components/grid/src/grid-item.vue.d.ts +2 -9
  18. package/lib/components/scroll/index.d.ts +3 -3
  19. package/lib/components/scroll/src/Scroll.vue.d.ts +1 -1
  20. package/lib/packages/components/float/src/Float.vue2.js +81 -71
  21. package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
  22. package/lib/packages/components/float/src/float.js +2 -1
  23. package/lib/packages/components/float/src/float.js.map +1 -1
  24. package/lib/packages/components/grid/src/grid-item.vue2.js +8 -51
  25. package/lib/packages/components/grid/src/grid-item.vue2.js.map +1 -1
  26. package/lib/packages/hooks/useDevice.js.map +1 -1
  27. package/package.json +1 -1
  28. package/theme/components/index.css +27 -3
  29. package/theme/index.css +27 -3
  30. package/theme/skin/default.css +27 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Float.vue2.js","sources":["../../../../../../packages/components/float/src/Float.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToFloat',\n\tinheritAttrs: false\n});\n</script>\n<template>\n\t<Teleport to=\"body\" :disabled=\"!global\">\n\t\t<div v-if=\"lazy ? ifShow : true\" ref=\"el\" class=\"to-float\" :class=\"[setClass, attrs.class as string | string[] | undefined]\" :style=\"[setStyle, attrs.style as Record<string, string | number> | undefined]\" @mousedown=\"$emit('click')\" @touchstart=\"$emit('click')\" @mouseenter=\"$emit('mouseenter')\" @mouseleave=\"$emit('mouseleave')\" @click.stop>\n\t\t\t<div ref=\"mask\" class=\"to-float-mask\" @click=\"maskClickHandle\"></div>\n\t\t\t<div ref=\"wrapper\" class=\"to-float-wrapper\" :style=\"slide ? wrapperStyle : null\">\n\t\t\t\t<div ref=\"content\" class=\"to-float-content\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, computed, onMounted, onBeforeUnmount, nextTick, onDeactivated, onActivated, CSSProperties, useAttrs } from 'vue'\nimport { floatProps, floatEmits } from './float'\n\n// 获取当前 vue 实例\n\n\nconst props = defineProps(floatProps)\nconst emit = defineEmits(floatEmits)\nconst attrs = useAttrs()\n\nconst el = ref<HTMLElement | null>(null)\nconst origin = ref('top')\nconst ifShow = ref(false)\nconst scrollNode = ref<HTMLElement | null>(null)\nconst iposition = ref<string>(props.position || (props.slide ? 'right' : 'auto'))\nconst ialign = ref(props.align)\nconst link = ref<\n\t| HTMLElement\n\t| {\n\t\t\tx?: number\n\t\t\ttouches?: TouchList\n\t\t\tclientX?: number\n\t\t\tclientY?: number\n\t\t\toffsetWidth?: number\n\t\t\toffsetHeight?: number\n\t\t\tgetBoundingClientRect?: () => DOMRect\n\t\t\ttarget?: HTMLElement\n\t\t\tparentNode?: HTMLElement\n\t }\n\t| null\n>(null)\nconst isOpen = ref(false)\nconst isOver = ref(false)\nconst mask = ref<HTMLElement | null>(null)\nconst wrapper = ref<HTMLElement | null>(null)\nconst content = ref<HTMLElement | null>(null)\nconst event = ref('')\nconst size = ref(1)\n\nwatch(\n\t() => props.position,\n\tval => {\n\t\tiposition.value = val || (props.slide ? 'right' : 'auto')\n\t},\n\t{ immediate: true }\n)\nwatch(\n\t() => props.align,\n\tval => {\n\t\tialign.value = val\n\t},\n\t{ immediate: true }\n)\n\nconst setClass = computed(() => {\n\tconst arr = [] as string[]\n\tif (isOpen.value) arr.push('is-show')\n\tif (props.slide) {\n\t\tarr.push('is-slide')\n\t}\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\tif (iposition.value !== 'auto') arr.push(`position-${iposition.value}`)\n\tif (origin.value === 'bottom') arr.push('origin-bottom')\n\tif (props.mask) arr.push('is-mask')\n\treturn arr\n})\nconst setStyle = computed(() => {\n\tconst obj: Record<string, any> = {}\n\tif (props.width && !props.slide) {\n\t\tif (!isNaN(Number(props.width))) obj.width = props.width + 'em'\n\t\telse if (props.width === 'full') obj.width = '100%'\n\t\telse obj.width = props.width\n\t}\n\tif (props.left) {\n\t\tif (isNaN(Number(props.left))) obj.left = props.left\n\t\telse obj.left = props.left + 'em'\n\t}\n\tif (props.top) {\n\t\tif (isNaN(Number(props.top))) obj.top = props.top\n\t\telse obj.top = props.top + 'em'\n\t}\n\tif (size.value !== 1) {\n\t\tobj.fontSize = size.value + 'em'\n\t}\n\tif (props.zIndex) {\n\t\tobj.zIndex = props.zIndex\n\t} else {\n\t\tobj.zIndex = (window as any).$TouchUI?.zIndex.toString()\n\t\t;(window as any).$TouchUI ? (window as any).$TouchUI.zIndex++ : ((window as any).$TouchUI = { zIndex: 1 })\n\t}\n\treturn obj\n})\n\nconst wrapperStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\n\t// 宽度设置\n\t// 高度设置在打开的时候再设置,因为涉及到动态计算 wrapper 的高度\n\tif ((iposition.value === 'right' || iposition.value === 'left') && props.width) {\n\t\tif (!isNaN(Number(props.width))) obj.width = props.width + 'em'\n\t\telse if (props.width === 'full') obj.width = '100%'\n\t\telse obj.width = props.width\n\t}\n\treturn obj\n})\n\n// 初始化\nonMounted(() => {\n\tinit()\n})\n\nonActivated(() => {\n\tinit()\n})\n\nonBeforeUnmount(() => {\n\tdestroy()\n})\n\nonDeactivated(() => {\n\tdestroy()\n})\n\nfunction init() {\n\tif (!props.slide) {\n\t\twindow.addEventListener('resize', close, false)\n\t}\n}\n\nfunction destroy() {\n\tif (!props.slide) {\n\t\tdocument.body.removeEventListener('mousedown', blur)\n\t\tdocument.body.removeEventListener('touchstart', blur)\n\t\twindow.removeEventListener('resize', close)\n\t}\n\tdocument.body.removeEventListener('scroll', close)\n\tdocument.body.removeEventListener('wheel', close)\n}\n\nfunction maskClickHandle() {\n\tif (props.closeOnBlur) {\n\t\tclose()\n\t}\n}\n\nfunction set(link?: any) {\n\t// 重置 wrapper 高度,这样下次打开的时候才好重新计算是否超过整体高度\n\tif (props.slide) {\n\t\tsetTimeout(() => {\n\t\t\tif ((iposition.value === 'top' || iposition.value === 'bottom') && !props.height && wrapper.value) {\n\t\t\t\twrapper.value.style.height = ''\n\t\t\t\twrapper.value.style.height = wrapper.value.getBoundingClientRect().height + 'px'\n\t\t\t}\n\t\t}, 0)\n\t} else if (link) {\n\t\tif (wrapper.value) wrapper.value.style.height = ''\n\t\tnextTick(() => {\n\t\t\t// 宽度设置\n\t\t\tif (!props.width && el.value) {\n\t\t\t\tif ('x' in link || 'touches' in link) {\n\t\t\t\t\tel.value.style.width = '14em'\n\t\t\t\t} else {\n\t\t\t\t\tel.value.style.width = link.getBoundingClientRect().width + 'px'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (props.top === '' || props.left === '') {\n\t\t\t\tlet x: number, y: number, linkWidth: number, linkHeight: number\n\t\t\t\tconst wrapperWidth = wrapper.value?.getBoundingClientRect().width || 0\n\t\t\t\tconst wrapperHeight = wrapper.value?.getBoundingClientRect().height || 0\n\t\t\t\tconst bodyWidth = document.body.getBoundingClientRect().width\n\t\t\t\tconst bodyHeight = document.body.getBoundingClientRect().height\n\t\t\t\tlet topSpace: number, bottomSpace: number, leftSpace: number, rightSpace: number\n\t\t\t\tlet useSpace = 0\n\t\t\t\tconst dx = Number(props.dx) * 1 // 这里 em() 需根据实际情况补充\n\t\t\t\tconst dy = Number(props.dy) * 1\n\t\t\t\tif ('clientX' in link || 'touches' in link) {\n\t\t\t\t\tx = 'clientX' in link ? link.clientX : link.touches[0].clientX\n\t\t\t\t\ty = 'clientY' in link ? link.clientY : link.touches[0].clientY\n\t\t\t\t\tlinkWidth = 0\n\t\t\t\t\tlinkHeight = 0\n\t\t\t\t} else {\n\t\t\t\t\tx = link.getBoundingClientRect().left\n\t\t\t\t\ty = link.getBoundingClientRect().top\n\t\t\t\t\tlinkWidth = link.getBoundingClientRect().width\n\t\t\t\t\tlinkHeight = link.getBoundingClientRect().height\n\t\t\t\t}\n\t\t\t\ttopSpace = y\n\t\t\t\tbottomSpace = bodyHeight - y - linkHeight\n\t\t\t\tleftSpace = x\n\t\t\t\trightSpace = bodyWidth - x - linkWidth\n\t\t\t\t// 计算相对位置\n\t\t\t\tif (!props.position) {\n\t\t\t\t\tif (bottomSpace >= wrapperHeight) {\n\t\t\t\t\t\tiposition.value = 'bottom'\n\t\t\t\t\t} else if (y >= wrapperHeight) {\n\t\t\t\t\t\tiposition.value = 'top'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (y + linkHeight / 2 < bodyHeight / 2) {\n\t\t\t\t\t\t\tiposition.value = 'bottom'\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tiposition.value = 'top'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// 自动计算对齐方式\n\t\t\t\tif (props.align === 'auto') {\n\t\t\t\t\tif (iposition.value === 'top' || iposition.value === 'bottom') {\n\t\t\t\t\t\tif (rightSpace >= wrapperWidth) {\n\t\t\t\t\t\t\tialign.value = 'left'\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tialign.value = 'right'\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (y + linkHeight / 2 < bodyHeight / 2) {\n\t\t\t\t\t\t\tialign.value = 'top'\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tialign.value = 'bottom'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (el.value === null) return\n\t\t\t\tif (iposition.value === 'top') {\n\t\t\t\t\tel.value.style.top = ''\n\t\t\t\t\tel.value.style.bottom = bottomSpace + linkHeight - 1 - dy + 'px'\n\t\t\t\t}\n\t\t\t\tif (iposition.value === 'bottom') {\n\t\t\t\t\tel.value.style.top = topSpace + linkHeight - 1 + dy + 'px'\n\t\t\t\t\tel.value.style.bottom = ''\n\t\t\t\t}\n\t\t\t\tif (iposition.value === 'top' || iposition.value === 'bottom') {\n\t\t\t\t\tif (ialign.value === 'left') {\n\t\t\t\t\t\tel.value.style.left = leftSpace + dx + 'px'\n\t\t\t\t\t\tel.value.style.right = ''\n\t\t\t\t\t} else if (ialign.value === 'center') {\n\t\t\t\t\t\tel.value.style.left = leftSpace - wrapperWidth / 2 + linkWidth / 2 + 'px'\n\t\t\t\t\t\tel.value.style.right = ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.value.style.right = rightSpace - dx + 'px'\n\t\t\t\t\t\tel.value.style.left = ''\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (iposition.value === 'left') {\n\t\t\t\t\tel.value.style.right = rightSpace + linkWidth - dx - 1 + 'px'\n\t\t\t\t\tel.value.style.left = ''\n\t\t\t\t}\n\t\t\t\tif (iposition.value === 'right') {\n\t\t\t\t\tel.value.style.left = leftSpace + linkWidth + dx - 1 + 'px'\n\t\t\t\t\tel.value.style.right = ''\n\t\t\t\t}\n\t\t\t\tif (iposition.value === 'left' || iposition.value === 'right') {\n\t\t\t\t\tif (ialign.value === 'bottom') {\n\t\t\t\t\t\tel.value.style.top = ''\n\t\t\t\t\t\tel.value.style.bottom = bottomSpace - dy + 'px'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.value.style.top = topSpace + dy + 'px'\n\t\t\t\t\t\tel.value.style.bottom = ''\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (iposition.value === 'bottom') {\n\t\t\t\t\tuseSpace = bottomSpace\n\t\t\t\t\torigin.value = 'top'\n\t\t\t\t} else if (iposition.value === 'top') {\n\t\t\t\t\tuseSpace = topSpace\n\t\t\t\t\torigin.value = 'bottom'\n\t\t\t\t} else {\n\t\t\t\t\tif (ialign.value === 'bottom') {\n\t\t\t\t\t\tuseSpace = topSpace + linkHeight\n\t\t\t\t\t\torigin.value = 'bottom'\n\t\t\t\t\t} else if (ialign.value === 'top') {\n\t\t\t\t\t\tuseSpace = bottomSpace + linkHeight\n\t\t\t\t\t\torigin.value = 'top'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error('[ToFloat] 浮层对齐方式设置错误!position 在左右两侧时,对齐方式应是顶部或底部')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (useSpace < wrapperHeight && wrapper.value) {\n\t\t\t\t\tisOver.value = true\n\t\t\t\t\twrapper.value.style.height = useSpace + 'px'\n\t\t\t\t}\n\t\t\t\t// 自动计算大小\n\t\t\t\tif (link) {\n\t\t\t\t\tconst ratio = link.getBoundingClientRect().width / link.offsetWidth\n\t\t\t\t\tconst ratio2 = Number(getComputedStyle(link).fontSize.trim().toLowerCase().replace(/px$/, '')) / Number(getComputedStyle(document.body).fontSize.trim().toLowerCase().replace(/px$/, ''))\n\t\t\t\t\tsize.value = ratio * ratio2\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunction open(by?: any) {\n\tif (props.beforeOpen) {\n\t\tconst fn = props.beforeOpen()\n\t\tif (fn && typeof (fn as any).then === 'function') {\n\t\t\t;(fn as Promise<boolean>)\n\t\t\t\t.then(() => {\n\t\t\t\t\topenAction(by)\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tconsole.log(error)\n\t\t\t\t})\n\t\t} else {\n\t\t\tif (fn) openAction(by)\n\t\t}\n\t} else {\n\t\topenAction(by)\n\t}\n}\n\nfunction openAction(by?: any) {\n\tif (!isOpen.value) {\n\t\temit('beforeOpen')\n\n\t\tif (props.slide) {\n\t\t\t// 打开\n\t\t\tif (props.lazy) {\n\t\t\t\tifShow.value = true\n\t\t\t}\n\n\t\t\t// 设置样式\n\t\t\tnextTick(() => {\n\t\t\t\tset()\n\t\t\t\tsetOpenStyle()\n\t\t\t})\n\n\t\t\t// 后置事件\n\t\t\tif (props.afterOpen && Object.prototype.toString.call(props.afterOpen) === '[object Function]') {\n\t\t\t\tprops.afterOpen()\n\t\t\t}\n\n\t\t\t// 后置动作\n\t\t\tlet timer: any = null\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\temit('opened')\n\t\t\t\tclearTimeout(timer)\n\t\t\t\ttimer = null\n\t\t\t}, 100)\n\n\t\t\tisOpen.value = true\n\t\t} else {\n\t\t\tdocument.body.addEventListener('mousedown', blur)\n\t\t\tdocument.body.addEventListener('touchstart', blur)\n\n\t\t\tif (by) {\n\t\t\t\tif (by.clientX || (by.touches && by.touches[0].clientX)) {\n\t\t\t\t\tlink.value = by\n\t\t\t\t\tif (by.clientX || (by.touches && by.touches[0].clientX)) {\n\t\t\t\t\t\tevent.value = 'contextmenu'\n\t\t\t\t\t}\n\t\t\t\t\tif (by.type === 'contextmenu') {\n\t\t\t\t\t\tby.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// 兼容处理:如果by是DOM元素则直接使用,否则通过$refs.el获取\n\t\t\t\t\tif (by instanceof HTMLElement) {\n\t\t\t\t\t\tlink.value = by\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgetElementFromRef(by).then(element => {\n\t\t\t\t\t\t\tlink.value = element\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 打开\n\t\t\tif (props.lazy) {\n\t\t\t\tifShow.value = true\n\t\t\t}\n\n\t\t\t// 设置其他依赖项\n\t\t\tsetTimeout(() => {\n\t\t\t\tset(link.value)\n\t\t\t\tsetOpenStyle()\n\t\t\t\tif (link.value && !('x' in link.value) && !('touches' in link.value)) {\n\t\t\t\t\tsetScrollStatus()\n\t\t\t\t}\n\t\t\t}, 0)\n\n\t\t\t// 后置事件\n\t\t\tif (props.afterOpen && Object.prototype.toString.call(props.afterOpen) === '[object Function]') {\n\t\t\t\tprops.afterOpen()\n\t\t\t}\n\n\t\t\t// 后置动作\n\t\t\temit('opened')\n\t\t\tisOpen.value = true\n\t\t}\n\t}\n}\n\nfunction setOpenStyle() {\n\tif (props.slide) {\n\t\tif (iposition.value === 'top') {\n\t\t\twrapper.value.style.transform = 'translateY(-100%)'\n\t\t}\n\t\tif (iposition.value === 'bottom') {\n\t\t\twrapper.value.style.transform = 'translateY(100%)'\n\t\t}\n\t\tif (iposition.value === 'right') {\n\t\t\twrapper.value.style.transform = 'translateX(100%)'\n\t\t}\n\t\tif (iposition.value === 'left') {\n\t\t\twrapper.value.style.transform = 'translateX(-100%)'\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\twrapper.value.style.transition = 'transform 100ms ease-out'\n\t\t\twrapper.value.style.transform = 'translateY(0)'\n\t\t\tsetTimeout(() => {\n\t\t\t\twrapper.value.style.transform = ''\n\t\t\t}, 100)\n\t\t}, 0)\n\t} else {\n\t\tel.value.style.transform = 'scale(1, 0)'\n\t\tel.value.style.visibility = 'visible'\n\t\tsetTimeout(() => {\n\t\t\tel.value.style.transition = 'transform 100ms ease-out'\n\t\t\tel.value.style.transform = 'scale(1)'\n\t\t\tsetTimeout(() => {\n\t\t\t\tel.value.style.transform = ''\n\t\t\t}, 100)\n\t\t}, 0)\n\t}\n\tel.value.style.zIndex = (window as any).$TouchUI?.zIndex\n}\n\nfunction close(e?: Event) {\n\t// float 组件内部滚动不关闭\n\tif (e && el.value && e.target && typeof Node !== 'undefined' && e.target instanceof Node && el.value.contains(e.target)) {\n\t\treturn\n\t}\n\tif (isOpen.value) {\n\t\tif (props.beforeClose) {\n\t\t\tconst fn = props.beforeClose()\n\t\t\tif (fn && typeof (fn as any).then === 'function') {\n\t\t\t\t;(fn as Promise<boolean>)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tcloseAction()\n\t\t\t\t\t})\n\t\t\t\t\t.catch(error => {\n\t\t\t\t\t\tconsole.log(error)\n\t\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tif (fn) closeAction()\n\t\t\t}\n\t\t} else {\n\t\t\tcloseAction()\n\t\t}\n\t}\n}\n\nfunction closeAction() {\n\t// 参数重置\n\tif (!props.height && wrapper.value) {\n\t\twrapper.value.style.height = ''\n\t}\n\tisOver.value = false\n\n\tif (props.slide) {\n\t\tsetCloseStyle()\n\t\tisOpen.value = false\n\t} else {\n\t\t// 移除事件\n\t\tif (scrollNode.value) {\n\t\t\tscrollNode.value.removeEventListener('scroll', close)\n\t\t}\n\n\t\t// 前置事件\n\t\temit('beforeClose')\n\n\t\t// 样式设置\n\t\tsetCloseStyle()\n\n\t\t// 关闭\n\t\tisOpen.value = false\n\t}\n\n\tsetTimeout(() => {\n\t\t// 销毁\n\t\tif (props.lazy) {\n\t\t\tifShow.value = false\n\t\t}\n\n\t\t// 后置事件\n\t\temit('closed')\n\n\t\t// 后置方法\n\t\tif (props.afterClose && Object.prototype.toString.call(props.afterClose) === '[object Function]') {\n\t\t\tprops.afterClose()\n\t\t}\n\t}, 100)\n}\n\nfunction setCloseStyle() {\n\tif (props.slide) {\n\t\tif (iposition.value === 'top') {\n\t\t\twrapper.value.style.transform = 'translateY(-100%)'\n\t\t}\n\t\tif (iposition.value === 'bottom') {\n\t\t\twrapper.value.style.transform = 'translateY(100%)'\n\t\t}\n\t\tif (iposition.value === 'right') {\n\t\t\twrapper.value.style.transform = 'translateX(100%)'\n\t\t}\n\t\tif (iposition.value === 'left') {\n\t\t\twrapper.value.style.transform = 'translateX(-100%)'\n\t\t}\n\t} else {\n\t\tel.value.style.transform = 'scale(1,0)'\n\t}\n}\n\nfunction toggle(by?: any) {\n\tif (isOpen.value) {\n\t\tclose()\n\t} else {\n\t\tif (by) {\n\t\t\topen(by)\n\t\t} else {\n\t\t\topen()\n\t\t}\n\t}\n}\n\nfunction blur(e: MouseEvent | TouchEvent) {\n\tif (!props.closeOnBlur) return\n\tnextTick(() => {\n\t\tlet node = e.target as HTMLElement | null\n\t\tif (event.value === 'contextmenu') {\n\t\t\t// 右键点击,任意位置均隐藏 && node !== this.$el\n\t\t\twhile (node && node.nodeName !== 'BODY') {\n\t\t\t\tnode = node.parentNode as HTMLElement | null\n\t\t\t}\n\t\t} else if (link.value && 'target' in link.value && link.value.target) {\n\t\t\twhile (node && node !== el.value && node !== link.value.target && node.nodeName !== 'BODY') {\n\t\t\t\tnode = node.parentNode as HTMLElement | null\n\t\t\t}\n\t\t} else {\n\t\t\twhile (node && node !== el.value && node !== link.value && node.nodeName !== 'BODY') {\n\t\t\t\tnode = node.parentNode as HTMLElement | null\n\t\t\t}\n\t\t}\n\t\tif (node && node.nodeName === 'BODY') {\n\t\t\tclose()\n\t\t}\n\t})\n}\n\nfunction setScrollStatus() {\n\tdocument.body.addEventListener('scroll', close, { passive: true })\n\tdocument.body.addEventListener('wheel', close, { passive: true })\n}\n\nasync function getElementFromRef(refOrNode) {\n\tawait nextTick() // 保证 DOM 已渲染\n\tif (!refOrNode) return null\n\tconst val = refOrNode.value ?? refOrNode\n\tif (!val) return null\n\tif (val instanceof Element || val instanceof Text) return val\n\tif (val.$el) return val.$el\n\tif (val._vnode && val._vnode.el) return val._vnode.el\n\treturn null\n}\n\n// 暴露方法\ndefineExpose({ open, close, toggle, set })\n</script>\n"],"names":["DO_defineComponent","useAttrs","ref","watch","computed","onMounted","onActivated","onBeforeUnmount","onDeactivated","link","nextTick","_createBlock","_Teleport","global","lazy","_createElementBlock","_unref","_normalizeStyle","$emit","_createElementVNode","slide","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"Float.vue2.js","sources":["../../../../../../packages/components/float/src/Float.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToFloat',\n\tinheritAttrs: false\n});\n</script>\n<template>\n\t<Teleport to=\"body\" :disabled=\"!global\">\n\t\t<div v-if=\"lazy ? ifShow : true\" ref=\"el\" class=\"to-float\" :class=\"[setClass, attrs.class as string | string[] | undefined]\" :style=\"[setStyle, attrs.style as Record<string, string | number> | undefined]\" @mousedown=\"$emit('click')\" @touchstart=\"$emit('click')\" @mouseenter=\"$emit('mouseenter')\" @mouseleave=\"$emit('mouseleave')\" @click.stop>\n\t\t\t<div ref=\"mask\" class=\"to-float-mask\" @click=\"maskClickHandle\"></div>\n\t\t\t<div ref=\"wrapper\" class=\"to-float-wrapper\" :style=\"slide ? wrapperStyle : null\">\n\t\t\t\t<div ref=\"content\" class=\"to-float-content\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, computed, onMounted, onBeforeUnmount, nextTick, onDeactivated, onActivated, CSSProperties, useAttrs } from 'vue'\nimport { floatProps, floatEmits } from './float'\n\n// 获取当前 vue 实例\n\n\nconst props = defineProps(floatProps)\nconst emit = defineEmits(floatEmits)\nconst attrs = useAttrs()\n\nconst el = ref<HTMLElement | null>(null)\nconst origin = ref('top')\nconst ifShow = ref(false)\nconst scrollNode = ref<HTMLElement | null>(null)\nconst iposition = ref<string>(props.position || (props.slide ? 'right' : 'auto'))\nconst ialign = ref(props.align)\nconst link = ref<\n\t| HTMLElement\n\t| {\n\t\t\tx?: number\n\t\t\ttouches?: TouchList\n\t\t\tclientX?: number\n\t\t\tclientY?: number\n\t\t\toffsetWidth?: number\n\t\t\toffsetHeight?: number\n\t\t\tgetBoundingClientRect?: () => DOMRect\n\t\t\ttarget?: HTMLElement\n\t\t\tparentNode?: HTMLElement\n\t }\n\t| null\n>(null)\nconst isOpen = ref(false)\nconst isOver = ref(false)\nconst mask = ref<HTMLElement | null>(null)\nconst wrapper = ref<HTMLElement | null>(null)\nconst content = ref<HTMLElement | null>(null)\nconst event = ref('')\nconst size = ref(1)\n\nwatch(\n\t() => props.position,\n\tval => {\n\t\tiposition.value = val || (props.slide ? 'right' : 'auto')\n\t},\n\t{ immediate: true }\n)\nwatch(\n\t() => props.align,\n\tval => {\n\t\tialign.value = val\n\t},\n\t{ immediate: true }\n)\n\nconst setClass = computed(() => {\n\tconst arr = [] as string[]\n\tif (isOpen.value) arr.push('is-show')\n\tif (props.slide) {\n\t\tarr.push('is-slide')\n\t}\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\tif (iposition.value !== 'auto') arr.push(`position-${iposition.value}`)\n\tif (origin.value === 'bottom') arr.push('origin-bottom')\n\tif (props.mask) arr.push('is-mask')\n\treturn arr\n})\nconst transitionTransform = computed(() => `transform ${props.speed}ms ease-out`)\n\nconst setStyle = computed(() => {\n\tconst obj: Record<string, any> = {}\n\tif (props.width && !props.slide) {\n\t\tif (!isNaN(Number(props.width))) obj.width = props.width + 'em'\n\t\telse if (props.width === 'full') obj.width = '100%'\n\t\telse obj.width = props.width\n\t}\n\tif (props.left) {\n\t\tif (isNaN(Number(props.left))) obj.left = props.left\n\t\telse obj.left = props.left + 'em'\n\t}\n\tif (props.top) {\n\t\tif (isNaN(Number(props.top))) obj.top = props.top\n\t\telse obj.top = props.top + 'em'\n\t}\n\tif (size.value !== 1) {\n\t\tobj.fontSize = size.value + 'em'\n\t}\n\tif (props.zIndex) {\n\t\tobj.zIndex = props.zIndex\n\t} else {\n\t\tobj.zIndex = (window as any).$TouchUI?.zIndex.toString()\n\t\t;(window as any).$TouchUI ? (window as any).$TouchUI.zIndex++ : ((window as any).$TouchUI = { zIndex: 1 })\n\t}\n\treturn obj\n})\n\nconst wrapperStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\n\t// 宽度设置\n\t// 高度设置在打开的时候再设置,因为涉及到动态计算 wrapper 的高度\n\tif ((iposition.value === 'right' || iposition.value === 'left') && props.width) {\n\t\tif (!isNaN(Number(props.width))) obj.width = props.width + 'em'\n\t\telse if (props.width === 'full') obj.width = '100%'\n\t\telse obj.width = props.width\n\t}\n\treturn obj\n})\n\n// 初始化\nonMounted(() => {\n\tinit()\n})\n\nonActivated(() => {\n\tinit()\n})\n\nonBeforeUnmount(() => {\n\tdestroy()\n})\n\nonDeactivated(() => {\n\tdestroy()\n})\n\nfunction init() {\n\tif (!props.slide) {\n\t\twindow.addEventListener('resize', close, false)\n\t}\n}\n\nfunction destroy() {\n\tif (!props.slide) {\n\t\tdocument.body.removeEventListener('mousedown', blur)\n\t\tdocument.body.removeEventListener('touchstart', blur)\n\t\twindow.removeEventListener('resize', close)\n\t}\n\tdocument.body.removeEventListener('scroll', close)\n\tdocument.body.removeEventListener('wheel', close)\n}\n\nfunction maskClickHandle() {\n\tif (props.closeOnBlur) {\n\t\tclose()\n\t}\n}\n\nfunction set(link?: any) {\n\t// 重置 wrapper 高度,这样下次打开的时候才好重新计算是否超过整体高度\n\tif (props.slide) {\n\t\tsetTimeout(() => {\n\t\t\tif ((iposition.value === 'top' || iposition.value === 'bottom') && !props.height && wrapper.value) {\n\t\t\t\twrapper.value.style.height = ''\n\t\t\t\twrapper.value.style.height = wrapper.value.getBoundingClientRect().height + 'px'\n\t\t\t}\n\t\t}, 0)\n\t} else if (link) {\n\t\tif (wrapper.value) wrapper.value.style.height = ''\n\t\t// 关闭后 el 上仍有 scale(1,0)+transition;若只清 transform,会沿关闭时的 transition 插值展开,\n\t\t// nextTick 里测量时往往仍是收起态 → 高度仍为 0。测量前必须无过渡地重置;展开由 setOpenStyle 重播\n\t\tif (el.value) {\n\t\t\tel.value.style.transition = 'none'\n\t\t\tel.value.style.transform = ''\n\t\t}\n\t\tnextTick(() => {\n\t\t\t// 宽度设置\n\t\t\tif (!props.width && el.value) {\n\t\t\t\tif ('x' in link || 'touches' in link) {\n\t\t\t\t\tel.value.style.width = '14em'\n\t\t\t\t} else {\n\t\t\t\t\tel.value.style.width = link.getBoundingClientRect().width + 'px'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (props.top === '' || props.left === '') {\n\t\t\t\tlet x: number, y: number, linkWidth: number, linkHeight: number\n\t\t\t\tconst wrapperWidth = wrapper.value?.getBoundingClientRect().width || 0\n\t\t\t\tconst wrapperHeight = wrapper.value?.getBoundingClientRect().height || 0\n\t\t\t\tconst bodyWidth = document.body.getBoundingClientRect().width\n\t\t\t\tconst bodyHeight = document.body.getBoundingClientRect().height\n\t\t\t\tlet topSpace: number, bottomSpace: number, leftSpace: number, rightSpace: number\n\t\t\t\tlet useSpace = 0\n\t\t\t\tconst dx = Number(props.dx) * 1 // 这里 em() 需根据实际情况补充\n\t\t\t\tconst dy = Number(props.dy) * 1\n\t\t\t\tif ('clientX' in link || 'touches' in link) {\n\t\t\t\t\tx = 'clientX' in link ? link.clientX : link.touches[0].clientX\n\t\t\t\t\ty = 'clientY' in link ? link.clientY : link.touches[0].clientY\n\t\t\t\t\tlinkWidth = 0\n\t\t\t\t\tlinkHeight = 0\n\t\t\t\t} else {\n\t\t\t\t\tx = link.getBoundingClientRect().left\n\t\t\t\t\ty = link.getBoundingClientRect().top\n\t\t\t\t\tlinkWidth = link.getBoundingClientRect().width\n\t\t\t\t\tlinkHeight = link.getBoundingClientRect().height\n\t\t\t\t}\n\t\t\t\ttopSpace = y\n\t\t\t\tbottomSpace = bodyHeight - y - linkHeight\n\t\t\t\tleftSpace = x\n\t\t\t\trightSpace = bodyWidth - x - linkWidth\n\t\t\t\t// 计算相对位置\n\t\t\t\tif (!props.position) {\n\t\t\t\t\tif (bottomSpace >= wrapperHeight) {\n\t\t\t\t\t\tiposition.value = 'bottom'\n\t\t\t\t\t} else if (y >= wrapperHeight) {\n\t\t\t\t\t\tiposition.value = 'top'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (y + linkHeight / 2 < bodyHeight / 2) {\n\t\t\t\t\t\t\tiposition.value = 'bottom'\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tiposition.value = 'top'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// 自动计算对齐方式\n\t\t\t\tif (props.align === 'auto') {\n\t\t\t\t\tif (iposition.value === 'top' || iposition.value === 'bottom') {\n\t\t\t\t\t\tif (rightSpace >= wrapperWidth) {\n\t\t\t\t\t\t\tialign.value = 'left'\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tialign.value = 'right'\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (y + linkHeight / 2 < bodyHeight / 2) {\n\t\t\t\t\t\t\tialign.value = 'top'\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tialign.value = 'bottom'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (el.value) {\n\t\t\t\t\tif (iposition.value === 'top') {\n\t\t\t\t\t\tel.value.style.top = ''\n\t\t\t\t\t\tel.value.style.bottom = bottomSpace + linkHeight - 1 - dy + 'px'\n\t\t\t\t\t}\n\t\t\t\t\tif (iposition.value === 'bottom') {\n\t\t\t\t\t\tel.value.style.top = topSpace + linkHeight - 1 + dy + 'px'\n\t\t\t\t\t\tel.value.style.bottom = ''\n\t\t\t\t\t}\n\t\t\t\t\tif (iposition.value === 'top' || iposition.value === 'bottom') {\n\t\t\t\t\t\tif (ialign.value === 'left') {\n\t\t\t\t\t\t\tel.value.style.left = leftSpace + dx + 'px'\n\t\t\t\t\t\t\tel.value.style.right = ''\n\t\t\t\t\t\t} else if (ialign.value === 'center') {\n\t\t\t\t\t\t\tel.value.style.left = leftSpace - wrapperWidth / 2 + linkWidth / 2 + 'px'\n\t\t\t\t\t\t\tel.value.style.right = ''\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.value.style.right = rightSpace - dx + 'px'\n\t\t\t\t\t\t\tel.value.style.left = ''\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (iposition.value === 'left') {\n\t\t\t\t\t\tel.value.style.right = rightSpace + linkWidth - dx - 1 + 'px'\n\t\t\t\t\t\tel.value.style.left = ''\n\t\t\t\t\t}\n\t\t\t\t\tif (iposition.value === 'right') {\n\t\t\t\t\t\tel.value.style.left = leftSpace + linkWidth + dx - 1 + 'px'\n\t\t\t\t\t\tel.value.style.right = ''\n\t\t\t\t\t}\n\t\t\t\t\tif (iposition.value === 'left' || iposition.value === 'right') {\n\t\t\t\t\t\tif (ialign.value === 'bottom') {\n\t\t\t\t\t\t\tel.value.style.top = ''\n\t\t\t\t\t\t\tel.value.style.bottom = bottomSpace - dy + 'px'\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.value.style.top = topSpace + dy + 'px'\n\t\t\t\t\t\t\tel.value.style.bottom = ''\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (iposition.value === 'bottom') {\n\t\t\t\t\t\tuseSpace = bottomSpace\n\t\t\t\t\t\torigin.value = 'top'\n\t\t\t\t\t} else if (iposition.value === 'top') {\n\t\t\t\t\t\tuseSpace = topSpace\n\t\t\t\t\t\torigin.value = 'bottom'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (ialign.value === 'bottom') {\n\t\t\t\t\t\t\tuseSpace = topSpace + linkHeight\n\t\t\t\t\t\t\torigin.value = 'bottom'\n\t\t\t\t\t\t} else if (ialign.value === 'top') {\n\t\t\t\t\t\t\tuseSpace = bottomSpace + linkHeight\n\t\t\t\t\t\t\torigin.value = 'top'\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.error('[ToFloat] 浮层对齐方式设置错误!position 在左右两侧时,对齐方式应是顶部或底部')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (useSpace < wrapperHeight && wrapper.value) {\n\t\t\t\t\t\tisOver.value = true\n\t\t\t\t\t\twrapper.value.style.height = useSpace + 'px'\n\t\t\t\t\t}\n\t\t\t\t\t// 自动计算大小\n\t\t\t\t\tif (link) {\n\t\t\t\t\t\tconst ratio = link.getBoundingClientRect().width / link.offsetWidth\n\t\t\t\t\t\tconst ratio2 = Number(getComputedStyle(link).fontSize.trim().toLowerCase().replace(/px$/, '')) / Number(getComputedStyle(document.body).fontSize.trim().toLowerCase().replace(/px$/, ''))\n\t\t\t\t\t\tsize.value = ratio * ratio2\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (el.value) {\n\t\t\t\tsetOpenStyle()\n\t\t\t}\n\t\t\tif (link && !('x' in link) && !('touches' in link)) {\n\t\t\t\tsetScrollStatus()\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunction open(by?: any) {\n\tif (props.beforeOpen) {\n\t\tconst fn = props.beforeOpen()\n\t\tif (fn && typeof (fn as any).then === 'function') {\n\t\t\t;(fn as Promise<boolean>)\n\t\t\t\t.then(() => {\n\t\t\t\t\topenAction(by)\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tconsole.log(error)\n\t\t\t\t})\n\t\t} else {\n\t\t\tif (fn) openAction(by)\n\t\t}\n\t} else {\n\t\topenAction(by)\n\t}\n}\n\nfunction openAction(by?: any) {\n\tif (!isOpen.value) {\n\t\temit('beforeOpen')\n\n\t\tif (props.slide) {\n\t\t\t// 打开\n\t\t\tif (props.lazy) {\n\t\t\t\tifShow.value = true\n\t\t\t}\n\n\t\t\t// 设置样式\n\t\t\tnextTick(() => {\n\t\t\t\tset()\n\t\t\t\tsetOpenStyle()\n\t\t\t})\n\n\t\t\t// 后置事件\n\t\t\tif (props.afterOpen && Object.prototype.toString.call(props.afterOpen) === '[object Function]') {\n\t\t\t\tprops.afterOpen()\n\t\t\t}\n\n\t\t\t// 后置动作\n\t\t\tlet timer: any = null\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\temit('opened')\n\t\t\t\tclearTimeout(timer)\n\t\t\t\ttimer = null\n\t\t\t}, Number(props.speed))\n\n\t\t\tisOpen.value = true\n\t\t} else {\n\t\t\tdocument.body.addEventListener('mousedown', blur)\n\t\t\tdocument.body.addEventListener('touchstart', blur)\n\n\t\t\tif (by) {\n\t\t\t\tif (by.clientX || (by.touches && by.touches[0].clientX)) {\n\t\t\t\t\tlink.value = by\n\t\t\t\t\tif (by.clientX || (by.touches && by.touches[0].clientX)) {\n\t\t\t\t\t\tevent.value = 'contextmenu'\n\t\t\t\t\t}\n\t\t\t\t\tif (by.type === 'contextmenu') {\n\t\t\t\t\t\tby.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// 兼容处理:如果by是DOM元素则直接使用,否则通过$refs.el获取\n\t\t\t\t\tif (by instanceof HTMLElement) {\n\t\t\t\t\t\tlink.value = by\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgetElementFromRef(by).then(element => {\n\t\t\t\t\t\t\tlink.value = element\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 打开\n\t\t\tif (props.lazy) {\n\t\t\t\tifShow.value = true\n\t\t\t}\n\n\t\t\t// 设置其他依赖项\n\t\t\tsetTimeout(() => {\n\t\t\t\tset(link.value)\n\t\t\t}, 0)\n\n\t\t\t// 后置事件\n\t\t\tif (props.afterOpen && Object.prototype.toString.call(props.afterOpen) === '[object Function]') {\n\t\t\t\tprops.afterOpen()\n\t\t\t}\n\n\t\t\t// 后置动作\n\t\t\temit('opened')\n\t\t\tisOpen.value = true\n\t\t}\n\t}\n}\n\nfunction setOpenStyle() {\n\tif (props.slide) {\n\t\tif (iposition.value === 'top') {\n\t\t\twrapper.value.style.transform = 'translateY(-100%)'\n\t\t}\n\t\tif (iposition.value === 'bottom') {\n\t\t\twrapper.value.style.transform = 'translateY(100%)'\n\t\t}\n\t\tif (iposition.value === 'right') {\n\t\t\twrapper.value.style.transform = 'translateX(100%)'\n\t\t}\n\t\tif (iposition.value === 'left') {\n\t\t\twrapper.value.style.transform = 'translateX(-100%)'\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\twrapper.value.style.transition = transitionTransform.value\n\t\t\twrapper.value.style.transform = 'translateY(0)'\n\t\t\tsetTimeout(() => {\n\t\t\t\twrapper.value.style.transform = ''\n\t\t\t}, Number(props.speed))\n\t\t}, 0)\n\t} else {\n\t\t// 先固定为收起态且无过渡,再下一帧加 transition 并展开,避免与布局测量同一帧合并导致无动画\n\t\tel.value.style.transition = 'none'\n\t\tel.value.style.transform = 'scale(1, 0)'\n\t\tel.value.style.visibility = 'visible'\n\t\trequestAnimationFrame(() => {\n\t\t\tel.value.style.transition = transitionTransform.value\n\t\t\tel.value.style.transform = 'scale(1)'\n\t\t\tsetTimeout(() => {\n\t\t\t\tel.value.style.transform = ''\n\t\t\t\tel.value.style.transition = ''\n\t\t\t}, Number(props.speed))\n\t\t})\n\t}\n\tel.value.style.zIndex = (window as any).$TouchUI?.zIndex\n}\n\nfunction close(e?: Event) {\n\t// float 组件内部滚动不关闭\n\tif (e && el.value && e.target && typeof Node !== 'undefined' && e.target instanceof Node && el.value.contains(e.target)) {\n\t\treturn\n\t}\n\tif (isOpen.value) {\n\t\tif (props.beforeClose) {\n\t\t\tconst fn = props.beforeClose()\n\t\t\tif (fn && typeof (fn as any).then === 'function') {\n\t\t\t\t;(fn as Promise<boolean>)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tcloseAction()\n\t\t\t\t\t})\n\t\t\t\t\t.catch(error => {\n\t\t\t\t\t\tconsole.log(error)\n\t\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tif (fn) closeAction()\n\t\t\t}\n\t\t} else {\n\t\t\tcloseAction()\n\t\t}\n\t}\n}\n\nfunction closeAction() {\n\t// 参数重置\n\tif (!props.height && wrapper.value) {\n\t\twrapper.value.style.height = ''\n\t}\n\tisOver.value = false\n\n\tif (props.slide) {\n\t\tsetCloseStyle()\n\t\tisOpen.value = false\n\t} else {\n\t\t// 移除事件\n\t\tif (scrollNode.value) {\n\t\t\tscrollNode.value.removeEventListener('scroll', close)\n\t\t}\n\n\t\t// 前置事件\n\t\temit('beforeClose')\n\n\t\t// 样式设置\n\t\tsetCloseStyle()\n\n\t\t// 关闭\n\t\tisOpen.value = false\n\t}\n\n\tsetTimeout(() => {\n\t\t// 销毁\n\t\tif (props.lazy) {\n\t\t\tifShow.value = false\n\t\t}\n\n\t\t// 后置事件\n\t\temit('closed')\n\n\t\t// 后置方法\n\t\tif (props.afterClose && Object.prototype.toString.call(props.afterClose) === '[object Function]') {\n\t\t\tprops.afterClose()\n\t\t}\n\t}, Number(props.speed))\n}\n\nfunction setCloseStyle() {\n\tif (props.slide) {\n\t\tif (iposition.value === 'top') {\n\t\t\twrapper.value.style.transform = 'translateY(-100%)'\n\t\t}\n\t\tif (iposition.value === 'bottom') {\n\t\t\twrapper.value.style.transform = 'translateY(100%)'\n\t\t}\n\t\tif (iposition.value === 'right') {\n\t\t\twrapper.value.style.transform = 'translateX(100%)'\n\t\t}\n\t\tif (iposition.value === 'left') {\n\t\t\twrapper.value.style.transform = 'translateX(-100%)'\n\t\t}\n\t} else {\n\t\t// 打开结束时会清空 transition,这里必须带上 transition,否则收起没有过渡\n\t\tel.value.style.transition = transitionTransform.value\n\t\tel.value.style.transform = 'scale(1, 0)'\n\t}\n}\n\nfunction toggle(by?: any) {\n\tif (isOpen.value) {\n\t\tclose()\n\t} else {\n\t\tif (by) {\n\t\t\topen(by)\n\t\t} else {\n\t\t\topen()\n\t\t}\n\t}\n}\n\nfunction blur(e: MouseEvent | TouchEvent) {\n\tif (!props.closeOnBlur) return\n\tnextTick(() => {\n\t\tlet node = e.target as HTMLElement | null\n\t\tif (event.value === 'contextmenu') {\n\t\t\t// 右键点击,任意位置均隐藏 && node !== this.$el\n\t\t\twhile (node && node.nodeName !== 'BODY') {\n\t\t\t\tnode = node.parentNode as HTMLElement | null\n\t\t\t}\n\t\t} else if (link.value && 'target' in link.value && link.value.target) {\n\t\t\twhile (node && node !== el.value && node !== link.value.target && node.nodeName !== 'BODY') {\n\t\t\t\tnode = node.parentNode as HTMLElement | null\n\t\t\t}\n\t\t} else {\n\t\t\twhile (node && node !== el.value && node !== link.value && node.nodeName !== 'BODY') {\n\t\t\t\tnode = node.parentNode as HTMLElement | null\n\t\t\t}\n\t\t}\n\t\tif (node && node.nodeName === 'BODY') {\n\t\t\tclose()\n\t\t}\n\t})\n}\n\nfunction setScrollStatus() {\n\tdocument.body.addEventListener('scroll', close, { passive: true })\n\tdocument.body.addEventListener('wheel', close, { passive: true })\n}\n\nasync function getElementFromRef(refOrNode) {\n\tawait nextTick() // 保证 DOM 已渲染\n\tif (!refOrNode) return null\n\tconst val = refOrNode.value ?? refOrNode\n\tif (!val) return null\n\tif (val instanceof Element || val instanceof Text) return val\n\tif (val.$el) return val.$el\n\tif (val._vnode && val._vnode.el) return val._vnode.el\n\treturn null\n}\n\n// 暴露方法\ndefineExpose({ open, close, toggle, set })\n</script>\n"],"names":["DO_defineComponent","useAttrs","ref","watch","computed","onMounted","onActivated","onBeforeUnmount","onDeactivated","link","nextTick","_createBlock","_Teleport","global","lazy","_createElementBlock","_unref","_normalizeStyle","$emit","_createElementVNode","slide","_renderSlot"],"mappings":"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"}
@@ -19,7 +19,8 @@ const floatProps = {
19
19
  dx: { type: [Number, String], default: 0 },
20
20
  dy: { type: [Number, String], default: 0 },
21
21
  mode: { type: String, default: "" },
22
- global: { type: Boolean, default: true }
22
+ global: { type: Boolean, default: true },
23
+ speed: { type: [Number, String], default: 100 }
23
24
  };
24
25
  const floatEmits = ["click", "mouseenter", "mouseleave", "beforeOpen", "opened", "beforeClose", "closed"];
25
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"float.js","sources":["../../../../../../packages/components/float/src/float.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue'\n\nexport const floatProps = {\n\tslide: { type: Boolean, default: false },\n\tlazy: { type: Boolean, default: true },\n\tposition: { type: String, default: '' },\n\twidth: { type: [Number, String], default: '' },\n\theight: { type: [Number, String], default: '' },\n\tleft: { type: [Number, String], default: '' },\n\ttop: { type: [Number, String], default: '' },\n\talign: { type: String, default: 'auto' },\n\tmask: { type: Boolean, default: true },\n\tzIndex: { type: Number, default: 0 },\n\tcloseOnBlur: { type: Boolean, default: true },\n\tbeforeClose: { type: Function, default: null },\n\tbeforeOpen: { type: Function, default: null },\n\tafterClose: { type: Function, default: null },\n\tafterOpen: { type: Function, default: null },\n\tdx: { type: [Number, String], default: 0 },\n\tdy: { type: [Number, String], default: 0 },\n\tmode: { type: String, default: '' },\n\tglobal: { type: Boolean, default: true }\n}\n\nexport type FloatProps = ExtractPropTypes<typeof floatProps>\n\nexport const floatEmits = ['click', 'mouseenter', 'mouseleave', 'beforeOpen', 'opened', 'beforeClose', 'closed']\n\nexport type FloatEmits = typeof floatEmits\n"],"names":[],"mappings":";;AAEO,MAAM,UAAa,GAAA;AAAA,EACzB,KAAO,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,KAAM,EAAA;AAAA,EACvC,IAAM,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AAAA,EACrC,QAAU,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,EAAG,EAAA;AAAA,EACtC,KAAA,EAAO,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,EAAG,EAAA;AAAA,EAC7C,MAAA,EAAQ,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,EAAG,EAAA;AAAA,EAC9C,IAAA,EAAM,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,EAAG,EAAA;AAAA,EAC5C,GAAA,EAAK,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,EAAG,EAAA;AAAA,EAC3C,KAAO,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,MAAO,EAAA;AAAA,EACvC,IAAM,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AAAA,EACrC,MAAQ,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,CAAE,EAAA;AAAA,EACnC,WAAa,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AAAA,EAC5C,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,EAC7C,UAAY,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,EAC5C,UAAY,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,EAC5C,SAAW,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,EAC3C,EAAA,EAAI,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,CAAE,EAAA;AAAA,EACzC,EAAA,EAAI,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,CAAE,EAAA;AAAA,EACzC,IAAM,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,EAAG,EAAA;AAAA,EAClC,MAAQ,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AACxC,EAAA;AAIa,MAAA,UAAA,GAAa,CAAC,OAAS,EAAA,YAAA,EAAc,cAAc,YAAc,EAAA,QAAA,EAAU,eAAe,QAAQ;;;;;"}
1
+ {"version":3,"file":"float.js","sources":["../../../../../../packages/components/float/src/float.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue'\n\nexport const floatProps = {\n\tslide: { type: Boolean, default: false },\n\tlazy: { type: Boolean, default: true },\n\tposition: { type: String, default: '' },\n\twidth: { type: [Number, String], default: '' },\n\theight: { type: [Number, String], default: '' },\n\tleft: { type: [Number, String], default: '' },\n\ttop: { type: [Number, String], default: '' },\n\talign: { type: String, default: 'auto' },\n\tmask: { type: Boolean, default: true },\n\tzIndex: { type: Number, default: 0 },\n\tcloseOnBlur: { type: Boolean, default: true },\n\tbeforeClose: { type: Function, default: null },\n\tbeforeOpen: { type: Function, default: null },\n\tafterClose: { type: Function, default: null },\n\tafterOpen: { type: Function, default: null },\n\tdx: { type: [Number, String], default: 0 },\n\tdy: { type: [Number, String], default: 0 },\n\tmode: { type: String, default: '' },\n\tglobal: { type: Boolean, default: true },\n\tspeed: { type: [Number, String], default: 100 }\n}\n\nexport type FloatProps = ExtractPropTypes<typeof floatProps>\n\nexport const floatEmits = ['click', 'mouseenter', 'mouseleave', 'beforeOpen', 'opened', 'beforeClose', 'closed']\n\nexport type FloatEmits = typeof floatEmits\n"],"names":[],"mappings":";;AAEO,MAAM,UAAa,GAAA;AAAA,EACzB,KAAO,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,KAAM,EAAA;AAAA,EACvC,IAAM,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AAAA,EACrC,QAAU,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,EAAG,EAAA;AAAA,EACtC,KAAA,EAAO,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,EAAG,EAAA;AAAA,EAC7C,MAAA,EAAQ,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,EAAG,EAAA;AAAA,EAC9C,IAAA,EAAM,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,EAAG,EAAA;AAAA,EAC5C,GAAA,EAAK,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,EAAG,EAAA;AAAA,EAC3C,KAAO,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,MAAO,EAAA;AAAA,EACvC,IAAM,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AAAA,EACrC,MAAQ,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,CAAE,EAAA;AAAA,EACnC,WAAa,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AAAA,EAC5C,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,EAC7C,UAAY,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,EAC5C,UAAY,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,EAC5C,SAAW,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,EAC3C,EAAA,EAAI,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,CAAE,EAAA;AAAA,EACzC,EAAA,EAAI,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,CAAE,EAAA;AAAA,EACzC,IAAM,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,EAAG,EAAA;AAAA,EAClC,MAAQ,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AAAA,EACvC,KAAA,EAAO,EAAE,IAAM,EAAA,CAAC,QAAQ,MAAM,CAAA,EAAG,SAAS,GAAI,EAAA;AAC/C,EAAA;AAIa,MAAA,UAAA,GAAa,CAAC,OAAS,EAAA,YAAA,EAAc,cAAc,YAAc,EAAA,QAAA,EAAU,eAAe,QAAQ;;;;;"}
@@ -10,41 +10,13 @@ const __default__ = vue.defineComponent({
10
10
  var _sfc_main = /* @__PURE__ */ vue.defineComponent({
11
11
  ...__default__,
12
12
  props: {
13
- merge: { default: 1 },
14
13
  width: { default: "" },
15
- side: { type: Boolean, default: false }
14
+ flex: { type: Boolean, default: false }
16
15
  },
17
16
  setup(__props) {
18
17
  const props = __props;
19
- const grid = vue.inject("grid", {});
20
- function parseVal(val) {
21
- return Number(val != null ? val : 0);
22
- }
23
18
  const setStyle = vue.computed(() => {
24
19
  const style = {};
25
- const space = parseVal(grid == null ? void 0 : grid.space);
26
- const spaceX = parseVal(grid == null ? void 0 : grid.spaceX);
27
- const spaceY = parseVal(grid == null ? void 0 : grid.spaceY);
28
- if (space > 0) {
29
- style.paddingTop = `${space}em`;
30
- style.paddingLeft = `${space}em`;
31
- }
32
- if (spaceY > 0) {
33
- style.paddingTop = `${spaceY}em`;
34
- }
35
- if (spaceX > 0) {
36
- style.paddingLeft = `${spaceX}em`;
37
- }
38
- if (space === -1) {
39
- style.marginTop = "-1px";
40
- style.marginLeft = "-1px";
41
- }
42
- if (spaceY === -1) {
43
- style.marginTop = "-1px";
44
- }
45
- if (spaceX === -1) {
46
- style.marginLeft = "-1px";
47
- }
48
20
  if (props.width) {
49
21
  if (!isNaN(Number(props.width))) {
50
22
  style.width = `${props.width}em`;
@@ -56,29 +28,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
56
28
  }
57
29
  return style;
58
30
  });
59
- const setClass = vue.computed(() => {
60
- const arr = [];
61
- if (Number(props.merge) > 1) {
62
- arr.push(`merge-${props.merge}`);
63
- }
64
- if (props.side) {
65
- arr.push("is-side");
66
- }
67
- return arr;
68
- });
69
31
  return (_ctx, _cache) => {
70
- return vue.openBlock(), vue.createElementBlock(
71
- "div",
72
- {
73
- class: vue.normalizeClass(["to-grid-item", setClass.value]),
74
- style: vue.normalizeStyle(setStyle.value)
75
- },
76
- [
77
- vue.renderSlot(_ctx.$slots, "default")
78
- ],
79
- 6
80
- /* CLASS, STYLE */
81
- );
32
+ return vue.openBlock(), vue.createElementBlock("div", {
33
+ flex: _ctx.flex ? _ctx.flex : null,
34
+ class: "to-grid-item",
35
+ style: vue.normalizeStyle(setStyle.value)
36
+ }, [
37
+ vue.renderSlot(_ctx.$slots, "default")
38
+ ], 12, ["flex"]);
82
39
  };
83
40
  }
84
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"grid-item.vue2.js","sources":["../../../../../../packages/components/grid/src/grid-item.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToGridItem',\n});\n</script>\n<template>\n\t<div class=\"to-grid-item\" :style=\"setStyle\" :class=\"setClass\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\n\n\nexport interface GridProps {\n\tspace?: number | string\n\tspaceX?: number | string\n\tspaceY?: number | string\n}\n\nexport interface Props {\n\tmerge?: number | string\n\twidth?: number | string\n\tside?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tmerge: 1,\n\twidth: '',\n\tside: false,\n})\n\nconst grid = inject<GridProps>('grid', {})\n\nfunction parseVal(val: number | string | undefined): number {\n\treturn Number(val ?? 0)\n}\n\nconst setStyle = computed(() => {\n\tconst style: Record<string, string> = {}\n\n\tconst space = parseVal(grid?.space)\n\tconst spaceX = parseVal(grid?.spaceX)\n\tconst spaceY = parseVal(grid?.spaceY)\n\n\tif (space > 0) {\n\t\tstyle.paddingTop = `${space}em`\n\t\tstyle.paddingLeft = `${space}em`\n\t}\n\tif (spaceY > 0) {\n\t\tstyle.paddingTop = `${spaceY}em`\n\t}\n\tif (spaceX > 0) {\n\t\tstyle.paddingLeft = `${spaceX}em`\n\t}\n\n\tif (space === -1) {\n\t\tstyle.marginTop = '-1px'\n\t\tstyle.marginLeft = '-1px'\n\t}\n\tif (spaceY === -1) {\n\t\tstyle.marginTop = '-1px'\n\t}\n\tif (spaceX === -1) {\n\t\tstyle.marginLeft = '-1px'\n\t}\n\n\tif (props.width) {\n\t\tif (!isNaN(Number(props.width))) {\n\t\t\tstyle.width = `${props.width}em`\n\t\t} else if (props.width === 'full') {\n\t\t\tstyle.width = '100%'\n\t\t} else {\n\t\t\tstyle.width = props.width.toString()\n\t\t}\n\t}\n\n\treturn style\n})\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\n\tif (Number(props.merge) > 1) {\n\t\tarr.push(`merge-${props.merge}`)\n\t}\n\tif (props.side) {\n\t\tarr.push('is-side')\n\t}\n\n\treturn arr\n})\n</script>\n"],"names":["DO_defineComponent","inject","computed","_createElementBlock","_normalizeClass","_renderSlot"],"mappings":";;;;;;AAEA,MAAA,cAA6BA,mBAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,YAAA;AACP,CAAC,CAAA,CAAA;;;;;;;;;AAwBD,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAMd,IAAA,MAAM,IAAO,GAAAC,UAAA,CAAkB,MAAQ,EAAA,EAAE,CAAA,CAAA;AAEzC,IAAA,SAAS,SAAS,GAA0C,EAAA;AAC3D,MAAO,OAAA,MAAA,CAAO,oBAAO,CAAC,CAAA,CAAA;AAAA,KACvB;AAEA,IAAM,MAAA,QAAA,GAAWC,aAAS,MAAM;AAC/B,MAAA,MAAM,QAAgC,EAAC,CAAA;AAEvC,MAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,KAAK,CAAA,CAAA;AAClC,MAAM,MAAA,MAAA,GAAS,QAAS,CAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,MAAM,CAAA,CAAA;AACpC,MAAM,MAAA,MAAA,GAAS,QAAS,CAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,MAAM,CAAA,CAAA;AAEpC,MAAA,IAAI,QAAQ,CAAG,EAAA;AACd,QAAA,KAAA,CAAM,aAAa,CAAG,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AACtB,QAAA,KAAA,CAAM,cAAc,CAAG,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OACxB;AACA,MAAA,IAAI,SAAS,CAAG,EAAA;AACf,QAAA,KAAA,CAAM,aAAa,CAAG,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OACvB;AACA,MAAA,IAAI,SAAS,CAAG,EAAA;AACf,QAAA,KAAA,CAAM,cAAc,CAAG,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OACxB;AAEA,MAAA,IAAI,UAAU,CAAI,CAAA,EAAA;AACjB,QAAA,KAAA,CAAM,SAAY,GAAA,MAAA,CAAA;AAClB,QAAA,KAAA,CAAM,UAAa,GAAA,MAAA,CAAA;AAAA,OACpB;AACA,MAAA,IAAI,WAAW,CAAI,CAAA,EAAA;AAClB,QAAA,KAAA,CAAM,SAAY,GAAA,MAAA,CAAA;AAAA,OACnB;AACA,MAAA,IAAI,WAAW,CAAI,CAAA,EAAA;AAClB,QAAA,KAAA,CAAM,UAAa,GAAA,MAAA,CAAA;AAAA,OACpB;AAEA,MAAA,IAAI,MAAM,KAAO,EAAA;AAChB,QAAA,IAAI,CAAC,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAK,CAAC,CAAG,EAAA;AAChC,UAAM,KAAA,CAAA,KAAA,GAAQ,GAAG,KAAM,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SACxB,MAAA,IAAW,KAAM,CAAA,KAAA,KAAU,MAAQ,EAAA;AAClC,UAAA,KAAA,CAAM,KAAQ,GAAA,MAAA,CAAA;AAAA,SACR,MAAA;AACN,UAAM,KAAA,CAAA,KAAA,GAAQ,KAAM,CAAA,KAAA,CAAM,QAAS,EAAA,CAAA;AAAA,SACpC;AAAA,OACD;AAEA,MAAO,OAAA,KAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAM,MAAA,QAAA,GAAWA,aAAS,MAAM;AAC/B,MAAA,MAAM,MAAgB,EAAC,CAAA;AAEvB,MAAA,IAAI,MAAO,CAAA,KAAA,CAAM,KAAK,CAAA,GAAI,CAAG,EAAA;AAC5B,QAAI,GAAA,CAAA,IAAA,CAAK,CAAS,MAAA,EAAA,KAAA,CAAM,KAAO,CAAA,CAAA,CAAA,CAAA;AAAA,OAChC;AACA,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAA,GAAA,CAAI,KAAK,SAAS,CAAA,CAAA;AAAA,OACnB;AAEA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;;4BAtFA,EAAAC,sBAAA;AAAA,QAEM,KAAA;AAAA,QAAA;AAAA,UAFD,OAAKC,kBAAA,CAAA,CAAC,cAAyC,EAAA,QAAA,CAAQ,KAAA,CAAA,CAAA;AAAA,UAAjC,KAAA,oBAAO,CAAA,QAAA,CAAQ,KAAA,CAAA;AAAA;;UACzCC,cAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"grid-item.vue2.js","sources":["../../../../../../packages/components/grid/src/grid-item.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToGridItem'\n});\n</script>\n<template>\n\t<div :flex=\"flex ? flex : null\" class=\"to-grid-item\" :style=\"setStyle\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\n\n\n\nexport interface Props {\n\twidth?: number | string\n\tflex?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\twidth: '',\n\tflex: false\n})\n\nconst setStyle = computed(() => {\n\tconst style: Record<string, string> = {}\n\n\tif (props.width) {\n\t\tif (!isNaN(Number(props.width))) {\n\t\t\tstyle.width = `${props.width}em`\n\t\t} else if (props.width === 'full') {\n\t\t\tstyle.width = '100%'\n\t\t} else {\n\t\t\tstyle.width = props.width.toString()\n\t\t}\n\t}\n\n\treturn style\n})\n</script>\n"],"names":["DO_defineComponent","computed","_createElementBlock","flex","_renderSlot"],"mappings":";;;;;;AAEA,MAAA,cAA6BA,mBAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,YAAA;AACP,CAAC,CAAA,CAAA;;;;;;;;AAkBD,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAKd,IAAM,MAAA,QAAA,GAAWC,aAAS,MAAM;AAC/B,MAAA,MAAM,QAAgC,EAAC,CAAA;AAEvC,MAAA,IAAI,MAAM,KAAO,EAAA;AAChB,QAAA,IAAI,CAAC,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAK,CAAC,CAAG,EAAA;AAChC,UAAM,KAAA,CAAA,KAAA,GAAQ,GAAG,KAAM,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SACxB,MAAA,IAAW,KAAM,CAAA,KAAA,KAAU,MAAQ,EAAA;AAClC,UAAA,KAAA,CAAM,KAAQ,GAAA,MAAA,CAAA;AAAA,SACR,MAAA;AACN,UAAM,KAAA,CAAA,KAAA,GAAQ,KAAM,CAAA,KAAA,CAAM,QAAS,EAAA,CAAA;AAAA,SACpC;AAAA,OACD;AAEA,MAAO,OAAA,KAAA,CAAA;AAAA,KACP,CAAA,CAAA;;4BAlCA,EAAAC,sBAAA,CAEM,KAAA,EAAA;AAAA,QAFA,IAAMC,EAAAA,IAAAA,CAAI,IAAGA,GAAAA,IAAAA,CAAI,IAAA,GAAA,IAAA;AAAA,QAAS,KAAM,EAAA,cAAA;AAAA,QAAgB,KAAA,oBAAO,CAAA,QAAA,CAAQ,KAAA,CAAA;AAAA;QACpEC,cAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDevice.js","sources":["../../../../packages/hooks/useDevice.ts"],"sourcesContent":["import { ref, computed, onMounted, onUnmounted } from 'vue';\nimport { getMedia } from '@touchvue/utils';\n\n/**\n * 设备类型\n */\nexport type DeviceType = 'pc' | 'pad' | 'phone';\n\n/**\n * 全局设备检测管理器\n * 使用单例模式避免重复注册resize事件\n */\nclass DeviceManager {\n private static instance: DeviceManager;\n private deviceType = ref<DeviceType>(getMedia());\n private listeners = new Set<() => void>();\n private resizeHandler: (() => void) | null = null;\n\n private constructor() {\n this.initResizeListener();\n }\n\n static getInstance(): DeviceManager {\n if (!DeviceManager.instance) {\n DeviceManager.instance = new DeviceManager();\n }\n return DeviceManager.instance;\n }\n\n private initResizeListener() {\n if (typeof window !== 'undefined') {\n this.resizeHandler = () => {\n const newDeviceType = getMedia();\n if (this.deviceType.value !== newDeviceType) {\n this.deviceType.value = newDeviceType;\n // 通知所有监听器\n this.listeners.forEach(listener => listener());\n }\n };\n window.addEventListener('resize', this.resizeHandler);\n }\n }\n\n getDeviceType() {\n return this.deviceType;\n }\n\n addListener(listener: () => void) {\n this.listeners.add(listener);\n }\n\n removeListener(listener: () => void) {\n this.listeners.delete(listener);\n\n // 如果没有监听器了,移除resize事件\n if (this.listeners.size === 0 && this.resizeHandler && typeof window !== 'undefined') {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n\n destroy() {\n if (this.resizeHandler && typeof window !== 'undefined') {\n window.removeEventListener('resize', this.resizeHandler);\n }\n this.listeners.clear();\n this.resizeHandler = null;\n }\n}\n\n/**\n * 设备检测 Hook\n * 提供响应式的设备类型判断,替代 Vue2 中的 $phone、$pc、$pad\n * 使用单例模式避免重复注册resize事件监听器\n */\nexport function useDevice() {\n const manager = DeviceManager.getInstance();\n const deviceType = manager.getDeviceType();\n\n // 计算属性:是否为手机\n const isPhone = computed(() => deviceType.value === 'phone');\n\n // 计算属性:是否为平板\n const isPad = computed(() => deviceType.value === 'pad');\n\n // 计算属性:是否为PC\n const isPc = computed(() => deviceType.value === 'pc');\n\n // 计算属性:是否为移动设备(手机或平板)\n const isMobile = computed(() => deviceType.value === 'phone' || deviceType.value === 'pad');\n\n // 更新设备类型的回调\n const updateCallback = () => {\n // 这里不需要做任何事情,因为deviceType是响应式的\n // 当manager更新deviceType时,所有计算属性会自动更新\n };\n\n // 手动更新设备类型\n const updateDeviceType = () => {\n const newDeviceType = getMedia();\n if (deviceType.value !== newDeviceType) {\n // 直接更新manager中的deviceType\n (deviceType as any).value = newDeviceType;\n }\n };\n\n // 组件挂载时添加监听器\n onMounted(() => {\n manager.addListener(updateCallback);\n });\n\n // 组件卸载时移除监听器\n onUnmounted(() => {\n manager.removeListener(updateCallback);\n });\n\n return {\n // 设备类型(响应式)\n deviceType,\n\n // 响应式判断\n isPhone,\n isPad,\n isPc,\n isMobile,\n\n // 手动更新设备类型\n updateDeviceType,\n };\n}\n\n/**\n * 获取当前设备类型(非响应式)\n * @returns 设备类型字符串\n */\nexport function getDeviceType(): DeviceType {\n return getMedia();\n}\n\n/**\n * 判断是否为手机设备(非响应式)\n * @returns 是否为手机\n */\nexport function isPhoneDevice(): boolean {\n return getMedia() === 'phone';\n}\n\n/**\n * 判断是否为平板设备(非响应式)\n * @returns 是否为平板\n */\nexport function isPadDevice(): boolean {\n return getMedia() === 'pad';\n}\n\n/**\n * 判断是否为PC设备(非响应式)\n * @returns 是否为PC\n */\nexport function isPcDevice(): boolean {\n return getMedia() === 'pc';\n}\n\n/**\n * 判断是否为移动设备(非响应式)\n * @returns 是否为移动设备(手机或平板)\n */\nexport function isMobileDevice(): boolean {\n const device = getMedia();\n return device === 'phone' || device === 'pad';\n}\n"],"names":["ref","getMedia","computed","onMounted","onUnmounted"],"mappings":"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"}
1
+ {"version":3,"file":"useDevice.js","sources":["../../../../packages/hooks/useDevice.ts"],"sourcesContent":["import { ref, computed, onMounted, onUnmounted } from 'vue'\nimport { getMedia } from '@touchvue/utils'\n\n/**\n * 设备类型\n */\nexport type DeviceType = 'pc' | 'pad' | 'phone'\n\n/**\n * 全局设备检测管理器\n * 使用单例模式避免重复注册resize事件\n */\nclass DeviceManager {\n\tprivate static instance: DeviceManager\n\tprivate deviceType = ref<DeviceType>(getMedia())\n\tprivate listeners = new Set<() => void>()\n\tprivate resizeHandler: (() => void) | null = null\n\n\tprivate constructor() {\n\t\tthis.initResizeListener()\n\t}\n\n\tstatic getInstance(): DeviceManager {\n\t\tif (!DeviceManager.instance) {\n\t\t\tDeviceManager.instance = new DeviceManager()\n\t\t}\n\t\treturn DeviceManager.instance\n\t}\n\n\tprivate initResizeListener() {\n\t\tif (typeof window !== 'undefined') {\n\t\t\tthis.resizeHandler = () => {\n\t\t\t\tconst newDeviceType = getMedia()\n\t\t\t\tif (this.deviceType.value !== newDeviceType) {\n\t\t\t\t\tthis.deviceType.value = newDeviceType\n\t\t\t\t\t// 通知所有监听器\n\t\t\t\t\tthis.listeners.forEach(listener => listener())\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('resize', this.resizeHandler)\n\t\t}\n\t}\n\n\tgetDeviceType() {\n\t\treturn this.deviceType\n\t}\n\n\taddListener(listener: () => void) {\n\t\tthis.listeners.add(listener)\n\t}\n\n\tremoveListener(listener: () => void) {\n\t\tthis.listeners.delete(listener)\n\n\t\t// 如果没有监听器了,移除resize事件\n\t\tif (this.listeners.size === 0 && this.resizeHandler && typeof window !== 'undefined') {\n\t\t\twindow.removeEventListener('resize', this.resizeHandler)\n\t\t\tthis.resizeHandler = null\n\t\t}\n\t}\n\n\tdestroy() {\n\t\tif (this.resizeHandler && typeof window !== 'undefined') {\n\t\t\twindow.removeEventListener('resize', this.resizeHandler)\n\t\t}\n\t\tthis.listeners.clear()\n\t\tthis.resizeHandler = null\n\t}\n}\n\n/**\n * 设备检测 Hook\n * 提供响应式的设备类型判断,替代 Vue2 中的 $phone、$pc、$pad\n * 使用单例模式避免重复注册resize事件监听器\n */\nexport function useDevice() {\n\tconst manager = DeviceManager.getInstance()\n\tconst deviceType = manager.getDeviceType()\n\n\t// 计算属性:是否为手机\n\tconst isPhone = computed(() => deviceType.value === 'phone')\n\n\t// 计算属性:是否为平板\n\tconst isPad = computed(() => deviceType.value === 'pad')\n\n\t// 计算属性:是否为PC\n\tconst isPc = computed(() => deviceType.value === 'pc')\n\n\t// 计算属性:是否为移动设备(手机或平板)\n\tconst isMobile = computed(() => deviceType.value === 'phone' || deviceType.value === 'pad')\n\n\t// 更新设备类型的回调\n\tconst updateCallback = () => {\n\t\t// 这里不需要做任何事情,因为deviceType是响应式的\n\t\t// 当manager更新deviceType时,所有计算属性会自动更新\n\t}\n\n\t// 手动更新设备类型\n\tconst updateDeviceType = () => {\n\t\tconst newDeviceType = getMedia()\n\t\tif (deviceType.value !== newDeviceType) {\n\t\t\t// 直接更新manager中的deviceType\n\t\t\t;(deviceType as any).value = newDeviceType\n\t\t}\n\t}\n\n\t// 组件挂载时添加监听器\n\tonMounted(() => {\n\t\tmanager.addListener(updateCallback)\n\t})\n\n\t// 组件卸载时移除监听器\n\tonUnmounted(() => {\n\t\tmanager.removeListener(updateCallback)\n\t})\n\n\treturn {\n\t\t// 设备类型(响应式)\n\t\tdeviceType,\n\n\t\t// 响应式判断\n\t\tisPhone,\n\t\tisPad,\n\t\tisPc,\n\t\tisMobile,\n\n\t\t// 手动更新设备类型\n\t\tupdateDeviceType\n\t}\n}\n\n/**\n * 获取当前设备类型(非响应式)\n * @returns 设备类型字符串\n */\nexport function getDeviceType(): DeviceType {\n\treturn getMedia()\n}\n\n/**\n * 判断是否为手机设备(非响应式)\n * @returns 是否为手机\n */\nexport function isPhoneDevice(): boolean {\n\treturn getMedia() === 'phone'\n}\n\n/**\n * 判断是否为平板设备(非响应式)\n * @returns 是否为平板\n */\nexport function isPadDevice(): boolean {\n\treturn getMedia() === 'pad'\n}\n\n/**\n * 判断是否为PC设备(非响应式)\n * @returns 是否为PC\n */\nexport function isPcDevice(): boolean {\n\treturn getMedia() === 'pc'\n}\n\n/**\n * 判断是否为移动设备(非响应式)\n * @returns 是否为移动设备(手机或平板)\n */\nexport function isMobileDevice(): boolean {\n\tconst device = getMedia()\n\treturn device === 'phone' || device === 'pad'\n}\n"],"names":["ref","getMedia","computed","onMounted","onUnmounted"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@touchvue/ui",
3
- "version": "1.0.0-beta.46",
3
+ "version": "1.0.0-beta.47",
4
4
  "description": "TouchVue UI Component Library",
5
5
  "main": "lib/index.js",
6
6
  "private": false,
@@ -737,6 +737,7 @@ html body .height-full {
737
737
  gap: var(--gap-y) var(--gap-x);
738
738
  padding: var(--padding);
739
739
  vertical-align: top;
740
+ box-sizing: border-box;
740
741
  }
741
742
  .to-grid > [flex] {
742
743
  flex: 1;
@@ -819,6 +820,10 @@ html body .height-full {
819
820
  .to-grid.is-col > *[merge="10"] {
820
821
  --merge: 10;
821
822
  }
823
+ .to-grid.is-col > .to-grid {
824
+ --item-col: var(--col);
825
+ width: calc((100% - (var(--item-col) - 1) * var(--gap-x)) / var(--item-col) * var(--merge) + (var(--merge) - 1) * var(--gap-x));
826
+ }
822
827
  .to-grid.col-avg {
823
828
  display: flex;
824
829
  }
@@ -866,10 +871,10 @@ html body .height-full {
866
871
  .to-grid.col-1 > *:last-child::after {
867
872
  display: none;
868
873
  }
869
- .to-grid.height-full {
870
- height: 100%;
874
+ .to-grid-item {
875
+ box-sizing: border-box;
871
876
  }
872
- .to-grid.height-full > .to-grid-item {
877
+ .to-grid.height-full:not(.dir-v) > .to-grid-item {
873
878
  height: 100%;
874
879
  }
875
880
  @font-face {
@@ -1926,6 +1931,12 @@ html body .height-full {
1926
1931
  --dot-color: var(--color-fg);
1927
1932
  --dot-radius: 50%;
1928
1933
  --rotate-offset: 0em;
1934
+ --hover-bg: #dedede;
1935
+ --hover-color: var(--color);
1936
+ --hover-border: var(--border);
1937
+ --active-bg: #ababab;
1938
+ --active-color: var(--color);
1939
+ --active-border: var(--border);
1929
1940
  }
1930
1941
  .to-tag {
1931
1942
  display: inline-block;
@@ -2093,6 +2104,19 @@ html body .height-full {
2093
2104
  .to-tag.type-corner.position-bottom-right .to-tag-wrapper {
2094
2105
  border-radius: var(--radius) 0 0 0;
2095
2106
  }
2107
+ .to-tag.is-link {
2108
+ cursor: pointer;
2109
+ }
2110
+ .to-tag.is-link .to-tag-wrapper:hover {
2111
+ background: var(--hover-bg);
2112
+ color: var(--hover-color);
2113
+ border: var(--hover-border);
2114
+ }
2115
+ .to-tag.is-link .to-tag-wrapper:active {
2116
+ background: var(--active-bg);
2117
+ color: var(--active-color);
2118
+ border: var(--active-border);
2119
+ }
2096
2120
  .to-box {
2097
2121
  --bg: var(--color-bg);
2098
2122
  --bg-size: 100% 100%;
package/theme/index.css CHANGED
@@ -740,6 +740,7 @@ html body .height-full {
740
740
  gap: var(--gap-y) var(--gap-x);
741
741
  padding: var(--padding);
742
742
  vertical-align: top;
743
+ box-sizing: border-box;
743
744
  }
744
745
  .to-grid > [flex] {
745
746
  flex: 1;
@@ -822,6 +823,10 @@ html body .height-full {
822
823
  .to-grid.is-col > *[merge="10"] {
823
824
  --merge: 10;
824
825
  }
826
+ .to-grid.is-col > .to-grid {
827
+ --item-col: var(--col);
828
+ width: calc((100% - (var(--item-col) - 1) * var(--gap-x)) / var(--item-col) * var(--merge) + (var(--merge) - 1) * var(--gap-x));
829
+ }
825
830
  .to-grid.col-avg {
826
831
  display: flex;
827
832
  }
@@ -869,10 +874,10 @@ html body .height-full {
869
874
  .to-grid.col-1 > *:last-child::after {
870
875
  display: none;
871
876
  }
872
- .to-grid.height-full {
873
- height: 100%;
877
+ .to-grid-item {
878
+ box-sizing: border-box;
874
879
  }
875
- .to-grid.height-full > .to-grid-item {
880
+ .to-grid.height-full:not(.dir-v) > .to-grid-item {
876
881
  height: 100%;
877
882
  }
878
883
  @font-face {
@@ -1929,6 +1934,12 @@ html body .height-full {
1929
1934
  --dot-color: var(--color-fg);
1930
1935
  --dot-radius: 50%;
1931
1936
  --rotate-offset: 0em;
1937
+ --hover-bg: #dedede;
1938
+ --hover-color: var(--color);
1939
+ --hover-border: var(--border);
1940
+ --active-bg: #ababab;
1941
+ --active-color: var(--color);
1942
+ --active-border: var(--border);
1932
1943
  }
1933
1944
  .to-tag {
1934
1945
  display: inline-block;
@@ -2096,6 +2107,19 @@ html body .height-full {
2096
2107
  .to-tag.type-corner.position-bottom-right .to-tag-wrapper {
2097
2108
  border-radius: var(--radius) 0 0 0;
2098
2109
  }
2110
+ .to-tag.is-link {
2111
+ cursor: pointer;
2112
+ }
2113
+ .to-tag.is-link .to-tag-wrapper:hover {
2114
+ background: var(--hover-bg);
2115
+ color: var(--hover-color);
2116
+ border: var(--hover-border);
2117
+ }
2118
+ .to-tag.is-link .to-tag-wrapper:active {
2119
+ background: var(--active-bg);
2120
+ color: var(--active-color);
2121
+ border: var(--active-border);
2122
+ }
2099
2123
  .to-box {
2100
2124
  --bg: var(--color-bg);
2101
2125
  --bg-size: 100% 100%;
@@ -740,6 +740,7 @@ html body .height-full {
740
740
  gap: var(--gap-y) var(--gap-x);
741
741
  padding: var(--padding);
742
742
  vertical-align: top;
743
+ box-sizing: border-box;
743
744
  }
744
745
  .to-grid > [flex] {
745
746
  flex: 1;
@@ -822,6 +823,10 @@ html body .height-full {
822
823
  .to-grid.is-col > *[merge="10"] {
823
824
  --merge: 10;
824
825
  }
826
+ .to-grid.is-col > .to-grid {
827
+ --item-col: var(--col);
828
+ width: calc((100% - (var(--item-col) - 1) * var(--gap-x)) / var(--item-col) * var(--merge) + (var(--merge) - 1) * var(--gap-x));
829
+ }
825
830
  .to-grid.col-avg {
826
831
  display: flex;
827
832
  }
@@ -869,10 +874,10 @@ html body .height-full {
869
874
  .to-grid.col-1 > *:last-child::after {
870
875
  display: none;
871
876
  }
872
- .to-grid.height-full {
873
- height: 100%;
877
+ .to-grid-item {
878
+ box-sizing: border-box;
874
879
  }
875
- .to-grid.height-full > .to-grid-item {
880
+ .to-grid.height-full:not(.dir-v) > .to-grid-item {
876
881
  height: 100%;
877
882
  }
878
883
  @font-face {
@@ -1929,6 +1934,12 @@ html body .height-full {
1929
1934
  --dot-color: var(--color-fg);
1930
1935
  --dot-radius: 50%;
1931
1936
  --rotate-offset: 0em;
1937
+ --hover-bg: #dedede;
1938
+ --hover-color: var(--color);
1939
+ --hover-border: var(--border);
1940
+ --active-bg: #ababab;
1941
+ --active-color: var(--color);
1942
+ --active-border: var(--border);
1932
1943
  }
1933
1944
  .to-tag {
1934
1945
  display: inline-block;
@@ -2096,6 +2107,19 @@ html body .height-full {
2096
2107
  .to-tag.type-corner.position-bottom-right .to-tag-wrapper {
2097
2108
  border-radius: var(--radius) 0 0 0;
2098
2109
  }
2110
+ .to-tag.is-link {
2111
+ cursor: pointer;
2112
+ }
2113
+ .to-tag.is-link .to-tag-wrapper:hover {
2114
+ background: var(--hover-bg);
2115
+ color: var(--hover-color);
2116
+ border: var(--hover-border);
2117
+ }
2118
+ .to-tag.is-link .to-tag-wrapper:active {
2119
+ background: var(--active-bg);
2120
+ color: var(--active-color);
2121
+ border: var(--active-border);
2122
+ }
2099
2123
  .to-box {
2100
2124
  --bg: var(--color-bg);
2101
2125
  --bg-size: 100% 100%;