@touchvue/ui 0.0.1-alpha.2

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 (141) hide show
  1. package/README.md +70 -0
  2. package/es/components/article/index.js +66 -0
  3. package/es/components/article/index.js.map +1 -0
  4. package/es/components/box/index.js +98 -0
  5. package/es/components/box/index.js.map +1 -0
  6. package/es/components/button/index.js +96 -0
  7. package/es/components/button/index.js.map +1 -0
  8. package/es/components/calendar/index.js +44 -0
  9. package/es/components/calendar/index.js.map +1 -0
  10. package/es/components/card/index.js +290 -0
  11. package/es/components/card/index.js.map +1 -0
  12. package/es/components/checkbox/index.js +97 -0
  13. package/es/components/checkbox/index.js.map +1 -0
  14. package/es/components/datepicker/index.js +44 -0
  15. package/es/components/datepicker/index.js.map +1 -0
  16. package/es/components/form/index.js +303 -0
  17. package/es/components/form/index.js.map +1 -0
  18. package/es/components/grid/index.js +253 -0
  19. package/es/components/grid/index.js.map +1 -0
  20. package/es/components/header/index.js +233 -0
  21. package/es/components/header/index.js.map +1 -0
  22. package/es/components/icon/index.js +98 -0
  23. package/es/components/icon/index.js.map +1 -0
  24. package/es/components/input/index.js +436 -0
  25. package/es/components/input/index.js.map +1 -0
  26. package/es/components/line/index.js +100 -0
  27. package/es/components/line/index.js.map +1 -0
  28. package/es/components/msg/index.js +322 -0
  29. package/es/components/msg/index.js.map +1 -0
  30. package/es/components/padding/index.js +92 -0
  31. package/es/components/padding/index.js.map +1 -0
  32. package/es/components/page/index.js +334 -0
  33. package/es/components/page/index.js.map +1 -0
  34. package/es/components/select/index.js +218 -0
  35. package/es/components/select/index.js.map +1 -0
  36. package/es/components/space/index.js +88 -0
  37. package/es/components/space/index.js.map +1 -0
  38. package/es/components/step/index.js +127 -0
  39. package/es/components/step/index.js.map +1 -0
  40. package/es/components/switch/index.js +120 -0
  41. package/es/components/switch/index.js.map +1 -0
  42. package/es/components/tab/index.js +227 -0
  43. package/es/components/tab/index.js.map +1 -0
  44. package/es/components/table/index.js +893 -0
  45. package/es/components/table/index.js.map +1 -0
  46. package/es/directives/dis/index.js +32 -0
  47. package/es/directives/dis/index.js.map +1 -0
  48. package/es/directives/size/index.js +23 -0
  49. package/es/directives/size/index.js.map +1 -0
  50. package/es/hooks/index.js +2 -0
  51. package/es/hooks/index.js.map +1 -0
  52. package/es/index.js +4209 -0
  53. package/es/index.js.map +1 -0
  54. package/es/utils/index.js +90 -0
  55. package/es/utils/index.js.map +1 -0
  56. package/lib/components/article/index.js +70 -0
  57. package/lib/components/article/index.js.map +1 -0
  58. package/lib/components/box/index.js +102 -0
  59. package/lib/components/box/index.js.map +1 -0
  60. package/lib/components/button/index.js +98 -0
  61. package/lib/components/button/index.js.map +1 -0
  62. package/lib/components/calendar/index.js +46 -0
  63. package/lib/components/calendar/index.js.map +1 -0
  64. package/lib/components/card/index.js +292 -0
  65. package/lib/components/card/index.js.map +1 -0
  66. package/lib/components/checkbox/index.js +99 -0
  67. package/lib/components/checkbox/index.js.map +1 -0
  68. package/lib/components/datepicker/index.js +46 -0
  69. package/lib/components/datepicker/index.js.map +1 -0
  70. package/lib/components/form/index.js +306 -0
  71. package/lib/components/form/index.js.map +1 -0
  72. package/lib/components/grid/index.js +256 -0
  73. package/lib/components/grid/index.js.map +1 -0
  74. package/lib/components/header/index.js +235 -0
  75. package/lib/components/header/index.js.map +1 -0
  76. package/lib/components/icon/index.js +101 -0
  77. package/lib/components/icon/index.js.map +1 -0
  78. package/lib/components/input/index.js +438 -0
  79. package/lib/components/input/index.js.map +1 -0
  80. package/lib/components/line/index.js +102 -0
  81. package/lib/components/line/index.js.map +1 -0
  82. package/lib/components/msg/index.js +324 -0
  83. package/lib/components/msg/index.js.map +1 -0
  84. package/lib/components/padding/index.js +94 -0
  85. package/lib/components/padding/index.js.map +1 -0
  86. package/lib/components/page/index.js +336 -0
  87. package/lib/components/page/index.js.map +1 -0
  88. package/lib/components/select/index.js +220 -0
  89. package/lib/components/select/index.js.map +1 -0
  90. package/lib/components/space/index.js +90 -0
  91. package/lib/components/space/index.js.map +1 -0
  92. package/lib/components/step/index.js +129 -0
  93. package/lib/components/step/index.js.map +1 -0
  94. package/lib/components/switch/index.js +122 -0
  95. package/lib/components/switch/index.js.map +1 -0
  96. package/lib/components/tab/index.js +230 -0
  97. package/lib/components/tab/index.js.map +1 -0
  98. package/lib/components/table/index.js +898 -0
  99. package/lib/components/table/index.js.map +1 -0
  100. package/lib/directives/dis/index.js +34 -0
  101. package/lib/directives/dis/index.js.map +1 -0
  102. package/lib/directives/size/index.js +25 -0
  103. package/lib/directives/size/index.js.map +1 -0
  104. package/lib/hooks/index.js +3 -0
  105. package/lib/hooks/index.js.map +1 -0
  106. package/lib/index.js +4251 -0
  107. package/lib/index.js.map +1 -0
  108. package/lib/utils/index.js +99 -0
  109. package/lib/utils/index.js.map +1 -0
  110. package/package.json +35 -0
  111. package/theme/components/article/index.css +1 -0
  112. package/theme/components/box/index.css +1 -0
  113. package/theme/components/button/index.css +1 -0
  114. package/theme/components/calendar/index.css +0 -0
  115. package/theme/components/card/index.css +1 -0
  116. package/theme/components/checkbox/index.css +1 -0
  117. package/theme/components/datepicker/index.css +0 -0
  118. package/theme/components/form/index.css +1 -0
  119. package/theme/components/grid/index.css +1 -0
  120. package/theme/components/header/index.css +1 -0
  121. package/theme/components/icon/index.css +1 -0
  122. package/theme/components/input/index.css +1 -0
  123. package/theme/components/line/index.css +1 -0
  124. package/theme/components/msg/index.css +1 -0
  125. package/theme/components/padding/index.css +1 -0
  126. package/theme/components/space/index.css +1 -0
  127. package/theme/components/step/index.css +1 -0
  128. package/theme/components/switch/index.css +1 -0
  129. package/theme/components/tab/index.css +1 -0
  130. package/theme/components/table/index.css +1 -0
  131. package/theme/img/default.png +0 -0
  132. package/theme/img/icon-type-fill.ttf +0 -0
  133. package/theme/img/icon.ttf +0 -0
  134. package/theme/img/loading-in.png +0 -0
  135. package/theme/img/loading-out.png +0 -0
  136. package/theme/img/msg/error-bg.png +0 -0
  137. package/theme/img/msg/error-icon.png +0 -0
  138. package/theme/img/msg/success-bg.png +0 -0
  139. package/theme/img/msg/success-icon.png +0 -0
  140. package/theme/index.css +1 -0
  141. package/theme/skin/default.css +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../packages/components/button/src/button.vue","../../packages/utils/types.ts","../../packages/utils/ratio.ts","../../packages/components/button/index.ts","../../packages/components/icon/src/icon.vue","../../packages/components/icon/index.ts","../../packages/components/article/src/article.vue","../../packages/components/article/src/article.ts","../../packages/components/article/index.ts","../../packages/components/box/src/box.vue","../../packages/components/box/src/box.ts","../../packages/components/box/index.ts","../../packages/components/select/src/select.vue","../../packages/components/select/index.ts","../../packages/components/calendar/src/calendar.vue","../../packages/components/calendar/index.ts","../../packages/components/space/src/space.vue","../../packages/components/space/index.ts","../../packages/components/step/src/step.vue","../../packages/components/step/index.ts","../../packages/components/form/src/form.vue","../../packages/components/form/src/form-item.vue","../../packages/components/form/index.ts","../../packages/components/grid/src/grid.vue","../../packages/components/grid/src/grid-item.vue","../../packages/components/grid/index.ts","../../packages/components/header/src/header.vue","../../packages/components/header/index.ts","../../packages/components/input/src/input.vue","../../packages/components/input/index.ts","../../packages/components/line/src/line.vue","../../packages/components/line/index.ts","../../packages/components/msg/src/msg.vue","../../packages/components/msg/index.ts","../../packages/components/padding/src/padding.vue","../../packages/components/padding/index.ts","../../packages/components/page/src/page.vue","../../packages/components/page/index.ts","../../packages/components/card/src/Card.vue","../../packages/components/card/src/CardItem.vue","../../packages/components/card/index.ts","../../packages/components/checkbox/src/Checkbox.vue","../../packages/components/checkbox/index.ts","../../packages/components/datepicker/src/DatePicker.vue","../../packages/components/datepicker/index.ts","../../packages/components/switch/src/switch.vue","../../packages/components/switch/index.ts","../../packages/components/tab/src/tab.vue","../../packages/components/tab/src/tab-item.vue","../../packages/components/tab/index.ts","../../packages/components/table/src/table.vue","../../packages/components/table/src/table-config.vue","../../packages/components/table/src/table-head.vue","../../packages/components/table/src/table-body.vue","../../packages/components/table/index.ts","../../packages/directives/dis/index.ts","../../packages/directives/size/index.ts","../../packages/directives/index.ts","../../packages/components/resolver.ts","../../packages/components/index.ts"],"sourcesContent":["<template>\n <button ref=\"el\" class=\"to-button\" :class=\"setClass\" :style=\"setStyle\">\n <ToIcon v-if=\"icon\" class=\"to-button-icon\" :value=\"icon\"></ToIcon>\n <span class=\"to-button-text\">\n <slot></slot>\n </span>\n </button>\n</template>\n<script setup lang=\"ts\">\nimport { ref, computed, defineProps } from 'vue';\n\ndefineOptions({\n name: 'ToButton',\n});\n\nconst el = ref(null);\n\ninterface Props {\n icon?: string;\n mode?: string;\n color?: string;\n width?: string | number;\n iconPosition?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n mode: 'default',\n color: '',\n icon: '',\n iconPosition: '',\n});\n\nconst setStyle = computed(() => {\n const style: Record<string, string> = {};\n if (props.width) {\n style.width = `${props.width}em`;\n }\n return style;\n});\n\nconst setClass = computed(() => {\n let arr: string[] = [];\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n if (props.color) {\n arr.push(`color-${props.color}`);\n }\n if (props.iconPosition) {\n arr.push(`icon-position-${props.iconPosition}`);\n }\n return arr;\n});\ndefineExpose({ el });\n</script>\n","import type { App, Plugin } from 'vue';\n\n/* 生成install函数 */\n\nexport type SFCWithInstall<T> = T & Plugin;\n\nexport type SFCInstallWithContext<T> = SFCWithInstall<T> & {\n _context: App | null;\n};\n\nexport const withInstall = <T, E extends Record<string, any>>(main: T, extra?: E) => {\n (main as SFCWithInstall<T>).install = (app: App): void => {\n for (const comp of [main, ...Object.values(extra ?? {})]) {\n app.component(comp.name, comp);\n }\n };\n\n if (extra) {\n for (const [key, comp] of Object.entries(extra)) {\n (main as any)[key] = comp;\n }\n }\n return main as SFCWithInstall<T> & E;\n};\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n (fn as SFCWithInstall<T>).install = (app: App) => {\n (fn as SFCInstallWithContext<T>)._context = app;\n app.config.globalProperties[name] = fn;\n };\n\n return fn as SFCInstallWithContext<T>;\n};\n","interface Options {\n ratio?: {\n base?: {\n pc?: number;\n pad?: number;\n phone?: number;\n };\n };\n}\n\nconst ua = navigator.userAgent.toLowerCase();\n\nexport function setRatio(options: Options = {}) {\n const ua = navigator.userAgent.toLowerCase();\n const base = options?.ratio?.base ?? {};\n\n const baseSize = /iphone|android.*mobile|windows phone|ipod/i.test(ua)\n ? (base.phone ?? 375)\n : /ipad|android(?!.*mobile)|tablet/i.test(ua)\n ? (base.pad ?? 1100)\n : (base.pc ?? 1366);\n\n const updateFontSize = () => {\n const width = window.innerWidth || document.documentElement.clientWidth;\n document.documentElement.style.fontSize = (width / baseSize) * 100 + 'px';\n };\n\n updateFontSize();\n window.addEventListener('resize', updateFontSize);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getMedia(options: Options = {}) {\n const isMobile = /iphone|android.*mobile|windows phone|ipod/i.test(ua);\n const isTablet = /ipad|android(?!.*mobile)|tablet/i.test(ua);\n\n return isMobile ? 'phone' : isTablet ? 'pad' : 'pc';\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function setMedia(options: Options = {}) {\n const html = document.documentElement;\n const classList: string[] = [];\n\n // 判断操作系统\n if (/windows/i.test(ua)) {\n classList.push('os-windows');\n } else if (/macintosh|mac os x/i.test(ua)) {\n classList.push('os-macos');\n } else if (/android/i.test(ua)) {\n classList.push('os-android');\n } else if (/iphone|ipad|ipod/i.test(ua)) {\n classList.push('os-ios');\n }\n\n // 判断设备类型\n const media = getMedia();\n if (media === 'pad') {\n classList.push('media-pad');\n } else if (media === 'phone') {\n classList.push('media-phone');\n } else {\n classList.push('media-pc');\n }\n\n // 添加 class 到 <html>\n html.className += ' ' + classList.join(' ');\n}\n\nexport function getEm() {\n const el = document.createElement('div');\n el.style.width = '1em';\n el.style.height = '1em';\n el.style.position = 'absolute';\n document.body.appendChild(el);\n const size = el.getBoundingClientRect().height;\n document.body.removeChild(el);\n return size;\n}\n","import Button from './src/button.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToButton: SFCWithInstall<typeof Button> = withInstall(Button);\n\nexport * from './src/instance';\n","<template>\n <span class=\"to-icon\" :class=\"setClass\" @click=\"clickHandle\">\n <span ref=\"text\" class=\"to-icon-text\">\n <slot></slot>\n </span>\n </span>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\ndefineOptions({\n name: 'ToIcon',\n});\n// 定义 props\ninterface Props {\n value?: string;\n type?: string;\n color?: string;\n mode?: string;\n contentSize?: number | string;\n link?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n value: '',\n type: '',\n color: '',\n mode: 'text',\n link: false,\n contentSize: '',\n});\n\nconst emit = defineEmits<{\n (e: 'click', evt: MouseEvent): void;\n}>();\n\n// ref\nconst text = ref<HTMLElement | null>(null);\n\n// 计算 class\nconst setClass = computed(() => {\n const arr: string[] = props.value ? [`value-${props.value}`] : [];\n\n if (props.type === 'fill') {\n arr.push('type-fill');\n }\n\n if (props.mode && props.mode !== 'text') {\n arr.push(`mode-${props.mode}`);\n }\n\n if (props.color) {\n arr.push(`color-${props.color}`);\n }\n\n if (props.link) {\n arr.push('is-link');\n }\n\n return arr;\n});\n\n// 事件处理\nfunction clickHandle(evt: MouseEvent) {\n emit('click', evt);\n}\n</script>\n","import Icon from './src/icon.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToIcon: SFCWithInstall<typeof Icon> = withInstall(Icon);\n\nexport { Icon };\nexport * from './src/icon.vue';\n","<template>\n <article class=\"to-article\">\n <header v-if=\"$slots.header\" class=\"to-article-header\">\n <slot name=\"header\" />\n </header>\n <section class=\"to-article-content\">\n <slot />\n </section>\n <footer v-if=\"$slots.footer\" class=\"to-article-footer\">\n <slot name=\"footer\" />\n </footer>\n </article>\n</template>\n\n<script lang=\"ts\" setup>\n// import { articleProps } from './article';\n\ndefineOptions({\n name: 'ToArticle',\n});\n\n// const props = defineProps(articleProps);\n</script>\n","import { ExtractPropTypes } from 'vue';\n\nexport const articleProps = {};\n\nexport type ArticleProps = ExtractPropTypes<typeof articleProps>;\n","import Article from './src/article.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToArticle: SFCWithInstall<typeof Article> = withInstall(Article);\n\nexport { Article };\nexport * from './src/article';\nexport * from './src/instance';\n","<template>\n <div class=\"to-box\" :class=\"setClass\" :style=\"setStyle\">\n <slot></slot>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ndefineOptions({\n name: 'ToBox',\n});\n\ninterface Props {\n mode?: string;\n color?: string;\n padding?: string | number;\n height?: '' | 'full' | number | string;\n cut?: boolean;\n link?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), {\n mode: 'default',\n cut: false,\n});\nconst setClass = computed(() => {\n let arr: string[] = [];\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n if (props.cut) {\n arr.push(`is-cut`);\n }\n if (props.link) {\n arr.push(`is-link`);\n }\n if (props.height && props.height === 'full') {\n arr.push('height-full');\n }\n return arr;\n});\nconst setStyle = computed(() => {\n const obj: { height?: string; padding?: string | number } = {};\n\n if (props.height && props.height !== 'full') {\n if (!isNaN(Number(props.height))) {\n obj.height = props.height + 'em';\n }\n }\n\n const hasUnit = (val: string) => /[a-z%]+$/i.test(val);\n if (String(props.padding).trim()) {\n // 分割成各个值\n const padded = String(props.padding)\n .trim()\n .split(/\\s+/)\n .map(val => {\n // 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n return hasUnit(val) ? val : `${val}em`;\n })\n .join(' ');\n\n obj.padding = padded;\n }\n return obj;\n});\n</script>\n","import { ExtractPropTypes } from 'vue';\n\nexport const boxProps = {};\n\nexport type BoxProps = ExtractPropTypes<typeof boxProps>;\n","import Box from './src/box.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToBox: SFCWithInstall<typeof Box> = withInstall(Box);\n\nexport { Box };\nexport * from './src/box';\nexport * from './src/instance';\n","<template>\n <div\n ref=\"elRef\"\n class=\"to-select\"\n :class=\"[{ 'is-placeholder': isPlaceholder }, ...setClass]\"\n @click=\"open\"\n >\n <div class=\"to-select-content\">\n <span v-if=\"!isPlaceholder\">{{ prefix }}</span>\n {{ displayText }}\n <span v-if=\"!isPlaceholder\">{{ suffix }}</span>\n </div>\n <div class=\"to-select-arrow\"></div>\n <Teleport to=\"body\">\n <div\n ref=\"optionRef\"\n class=\"to-select-option\"\n :class=\"{ 'is-show': showOption }\"\n :style=\"setOptionStyle\"\n >\n <div class=\"to-select-item\" @click=\"clear\">{{ placeholderText }}</div>\n <div\n v-for=\"(item, index) in options\"\n :key=\"index\"\n class=\"to-select-item\"\n :class=\"{ 'is-on': modelValue === item.value }\"\n @click=\"select(item)\"\n >\n {{ item.label }}\n </div>\n </div>\n </Teleport>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\ndefineOptions({\n name: 'ToSelect',\n});\nconst props = defineProps({\n modelValue: {\n type: [String, Number],\n default: '',\n },\n data: {\n type: [Boolean, Array],\n default: () => {\n return [];\n },\n },\n prefix: {\n type: String,\n default: '',\n },\n suffix: {\n type: String,\n default: '',\n },\n mode: {\n type: String,\n default: 'default',\n },\n placeholderText: {\n type: String,\n default: '请选择',\n },\n});\nconst elRef = ref(null);\nconst optionRef = ref(null);\nlet showOption = ref(false);\nconst options = computed(() => {\n if (typeof props.data === 'string') {\n // 按逗号拆分字符串,过滤空项\n return props.data\n .split(',')\n .map(item => item.trim())\n .filter(item => item.length > 0)\n .map(item => ({ label: item, value: item }));\n } else if (Array.isArray(props.data)) {\n return props.data;\n }\n // 其它情况返回空数组\n return [];\n});\n\nconst emit = defineEmits(['update:modelValue', 'change']);\n\nconst isPlaceholder = computed(\n () => props.modelValue === undefined || props.modelValue === null || props.modelValue === ''\n);\n\nconst displayText = computed(() => {\n if (isPlaceholder.value) return props.placeholderText;\n if (options.value.length) {\n const found = options.value.find(item => item.value === props.modelValue);\n return found && found.label !== undefined ? found.label : String(props.modelValue);\n }\n return String(props.modelValue);\n});\n\nconst setClass = computed(() => {\n const arr = [];\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n return arr;\n});\n\nconst setOptionStyle = computed(() => {\n const obj = {};\n return obj;\n});\n\nconst open = () => {\n if (showOption.value) {\n showOption.value = false;\n } else {\n // 获取初始变量\n const baseInfo = elRef.value.getBoundingClientRect();\n // const floatInfo = optionRef.value.getBoundingClientRect()\n const contentHeight = optionRef.value.scrollHeight;\n const spaceHeight = document.body.offsetHeight - (baseInfo.top + baseInfo.height);\n\n // 定位\n optionRef.value.style.left = `${baseInfo.left}px`;\n optionRef.value.style.top = `${baseInfo.top + baseInfo.height - 1}px`;\n\n // 设置大小\n optionRef.value.style.width = `${baseInfo.width}px`;\n\n // 设置高度\n if (spaceHeight < contentHeight) {\n optionRef.value.style.height = `${spaceHeight}px`;\n }\n\n // 打开\n showOption.value = true;\n\n // 点击组件之外关闭\n document.body.addEventListener('mousedown', blur);\n }\n};\n\nconst blur = e => {\n let node = e.target;\n while (node && node !== optionRef.value && node !== elRef.value && node.nodeName !== 'BODY') {\n node = node.parentNode;\n }\n if (node && node.nodeName === 'BODY') {\n close();\n }\n};\n\nconst select = item => {\n emit('update:modelValue', item.value);\n emit('change', item.value);\n close();\n};\n\nconst close = () => {\n showOption.value = false;\n};\n\nconst clear = () => {\n emit('update:modelValue', '');\n emit('change', '');\n close();\n};\n</script>\n","import Select from './src/select.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToSelect: SFCWithInstall<typeof Select> = withInstall(Select);\n\nexport * from './src/instance';\n","<template>\n <div></div>\n</template>\n<script setup lang=\"ts\">\ndefineOptions({\n name: 'ToCalendar',\n});\n</script>\n","import { withInstall, SFCWithInstall } from '@touchvue/utils';\nimport Calendar from './src/calendar.vue';\n\nexport const ToCalendar: SFCWithInstall<typeof Calendar> = withInstall(Calendar);\n","<template>\n <div class=\"to-space\" :style=\"setStyle\" :class=\"setClass\"></div>\n</template>\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { CSSProperties } from 'vue';\n\ndefineOptions({\n name: 'ToSpace',\n});\n\ninterface Props {\n mode?: string;\n value?: string | number;\n inline?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n mode: 'default',\n value: '',\n inline: false,\n});\n\nconst setStyle = computed((): CSSProperties => {\n const obj: CSSProperties = {};\n if (props.value) {\n if (props.inline) {\n if (!isNaN(Number(props.value))) {\n obj.width = props.value + 'em';\n } else {\n obj.width = props.value;\n }\n } else {\n if (!isNaN(Number(props.value))) {\n obj.height = props.value + 'em';\n } else {\n obj.height = props.value;\n }\n }\n }\n return obj;\n});\nconst setClass = computed(() => {\n let arr: string[] = [];\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n if (props.inline) {\n arr.push(`is-inline`);\n }\n return arr;\n});\n</script>\n","import Space from './src/space.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToSpace: SFCWithInstall<typeof Space> = withInstall(Space);\n\nexport * from './src/instance';\n","<template>\n <div class=\"to-step\">\n <div\n v-for=\"(item, idx) in data\"\n :key=\"idx\"\n class=\"to-step-item\"\n :class=\"{ 'is-on': idx === Number(modelValue), 'is-completed': Number(modelValue) > idx }\"\n >\n <div class=\"to-step-index\">\n <div v-if=\"Number(modelValue) > idx\" class=\"to-step-icon\"></div>\n <div v-else class=\"to-step-number\">{{ idx + 1 }}</div>\n </div>\n <div class=\"to-step-text\">\n <div class=\"to-step-title\">\n <div class=\"to-step-label\">{{ item.label }}</div>\n <div class=\"to-step-line\"></div>\n </div>\n <div class=\"to-step-content\">{{ item.content }}</div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: 'ToStep',\n});\nconst props = defineProps({\n data: {\n type: Array as () => { label: string; content: string }[],\n default: () => [],\n },\n modelValue: { type: [Number, String], default: 0 },\n});\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: number): void;\n}>();\n\nconst updateValue = (idx: number) => {\n console.log(props);\n emit('update:modelValue', idx);\n};\nconsole.log(updateValue);\n</script>\n","import Step from './src/step.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToStep: SFCWithInstall<typeof Step> = withInstall(Step);\n\nexport * from './src/instance';\n","<template>\n <div class=\"to-form\" :class=\"setClass\">\n <ul ref=\"toForm\" class=\"to-form-list\">\n <slot></slot>\n <li\n v-if=\"props.submitPosition === 'corner'\"\n class=\"to-form-item to-form-placeholder\"\n :style=\"setLiStyle\"\n ></li>\n <li v-if=\"slots.submit\" class=\"to-form-submit\" :style=\"setSubmitStyle.value\">\n <slot name=\"submit\"></slot>\n </li>\n </ul>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref,\n computed,\n onMounted,\n onBeforeUnmount,\n provide,\n getCurrentInstance,\n useSlots,\n} from 'vue';\n\ndefineOptions({\n name: 'ToForm',\n});\nconst props = defineProps({\n labelWidth: {\n type: [Number, String],\n default: '',\n },\n labelPosition: {\n type: String,\n default: 'left',\n },\n col: {\n type: [Number, String],\n default: 1,\n },\n submitPosition: {\n type: String,\n default: '',\n },\n type: {\n type: String,\n default: '',\n },\n mode: {\n type: String,\n default: '',\n },\n space: {\n type: [Number, String],\n default: (props: any) => (props.type === 'list' ? 0 : 0.5),\n },\n spaceX: {\n type: [Number, String],\n default: '',\n },\n spaceY: {\n type: [Number, String],\n default: '',\n },\n valueWidth: {\n type: String,\n default: '',\n },\n comparable: Boolean,\n readonly: Boolean,\n});\n\nconst toForm = ref<HTMLElement | null>(null);\nconst slots = useSlots();\nconst items = ref<any[]>([]);\n\nconst setClass = computed(() => {\n const arr: string[] = [];\n if (props.col) arr.push(`col-${props.col}`);\n if (props.submitPosition) arr.push(`submit-position-${props.submitPosition}`);\n if (props.mode) arr.push(`mode-${props.mode}`);\n if (props.labelPosition) arr.push(`label-position-${props.labelPosition}`);\n if (props.valueWidth) arr.push(`value-width-${props.valueWidth}`);\n return arr;\n});\n\n// const setUlStyle = computed(() => {\n// \tconst obj: Record<string, string> = {}\n// \tif (props.space || props.space === 0) obj.marginTop = `-${props.space}em`\n// \tif (props.spaceY || props.spaceY === 0) obj.marginTop = `-${props.spaceY}em`\n// \treturn obj\n// })\n\nconst setSubmitStyle = computed(() => {\n const obj: Record<string, string> = {};\n const sp = props.space;\n const spy = props.spaceY;\n const pos = props.submitPosition;\n if ((sp || sp === 0) && pos !== 'right' && pos !== 'follow' && props.type !== 'list') {\n obj.marginTop = `${sp}em`;\n }\n if ((sp || sp === 0) && (pos === 'rightBottom' || pos === 'item')) {\n obj.paddingTop = `${sp}em`;\n }\n if ((spy || spy === 0) && pos !== 'right' && pos !== 'follow' && props.type !== 'list') {\n obj.marginTop = `${spy}em`;\n }\n if ((spy || spy === 0) && (pos === 'rightBottom' || pos === 'item')) {\n obj.paddingTop = `${spy}em`;\n }\n return obj;\n});\n\nconst setLiStyle = computed(() => {\n const obj: Record<string, string> = {};\n const pos = props.submitPosition;\n if ((props.space || props.space === 0) && pos === 'rightBottom') {\n obj.marginTop = `${props.space}em`;\n }\n if ((props.spaceY || props.spaceY === 0) && pos === 'rightBottom') {\n obj.marginTop = `${props.spaceY}em`;\n }\n return obj;\n});\n\nconst adjust = () => {\n setTimeout(() => {\n let maxWidth = 0;\n items.value.forEach(item => {\n if (item?.$refs?.label) {\n item.$refs.label.style.width = '';\n }\n });\n items.value.forEach(item => {\n const labelText = item?.$refs?.labelText;\n if (labelText && labelText.clientWidth > maxWidth) {\n maxWidth = labelText.clientWidth;\n }\n });\n items.value.forEach(item => {\n if (item?.$refs?.label) {\n item.$refs.label.style.width = `${maxWidth + 1}px`;\n }\n });\n }, 200);\n};\n\nonMounted(() => {\n if (props.labelWidth === 'max') {\n window.addEventListener('resize', adjust);\n adjust();\n }\n});\n\nonBeforeUnmount(() => {\n if (props.labelWidth === 'max') {\n window.removeEventListener('resize', adjust);\n }\n});\n\n// provide current instance\nconst instance = getCurrentInstance();\nprovide('ToForm', instance?.proxy);\n</script>\n","<template>\n <li class=\"to-form-item\" :class=\"setClass\" @click=\"emit('click')\">\n <div class=\"to-form-label\" :style=\"setLabelStyle\">{{ props.label }}</div>\n <div class=\"to-form-value\">\n <slot></slot>\n </div>\n </li>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, computed, inject, provide, onMounted } from 'vue';\n\ninterface ToFormContext {\n type?: string;\n space?: number;\n spaceX?: number;\n spaceY?: number;\n labelWidth?: string | number;\n submitPosition?: string;\n items: any[];\n}\n\ndefineOptions({\n name: 'ToFormItem',\n inheritAttrs: false,\n});\n\nconst emit = defineEmits<{\n (e: 'click'): void;\n}>();\n\nconst props = defineProps<{\n label?: string;\n labelTip?: string;\n tip?: string;\n labelWidth?: number | string;\n required?: boolean;\n merge?: number | string | null;\n link?: boolean;\n}>();\n\nconst labelV = ref<HTMLElement | null>(null);\nconst labelText = ref<HTMLElement | null>(null);\n\nconst ToForm = inject<ToFormContext>('ToForm', {\n items: [],\n});\n\nprovide('ToFormItem', {});\n\nconst setClass = computed(() => {\n const arr: string[] = [];\n if (props.required) arr.push('is-required');\n if (props.link) arr.push('link');\n if (props.merge !== null && props.merge !== undefined) arr.push(`merge-${props.merge}`);\n return arr;\n});\n\n// const setLabelClass = computed(() => {\n// \tconst arr: string[] = []\n// \tif (props.labelWidth || props.labelWidth === 0) {\n// \t\tarr.push(`label-width-${props.labelWidth}`)\n// \t}\n// \treturn arr\n// })\n\nconst setLabelStyle = computed(() => {\n const style: Record<string, string> = {};\n if (ToForm.labelWidth) {\n style.width = ToForm.labelWidth + 'em';\n }\n return style;\n});\n\nonMounted(() => {\n ToForm?.items?.push({\n $refs: {\n label: labelV.value,\n labelText: labelText.value,\n },\n });\n});\n</script>\n","import Form from './src/form.vue';\nimport FormItem from './src/form-item.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToForm: SFCWithInstall<typeof Form> = withInstall(Form);\nexport const ToFormItem: SFCWithInstall<typeof FormItem> = withInstall(FormItem);\n\nexport * from './src/instance';\n","<template>\n <div class=\"to-grid\" :class=\"setClass\" :style=\"setStyle\">\n <div class=\"to-grid-content\" :style=\"setContentStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, provide } from 'vue';\n\ntype GridProps = {\n type?: string;\n mode?: string;\n space?: number | string;\n spaceX?: number | string;\n spaceY?: number | string;\n padding?: number | string;\n paddingX?: number | string;\n paddingY?: number | string;\n paddingPosition?: string;\n col?: number | string;\n height?: number | string;\n verticalAlign?: string;\n va?: string;\n line?: boolean;\n wrap?: boolean;\n visible?: boolean;\n};\n\n// 默认值\nconst props = withDefaults(defineProps<GridProps>(), {\n type: '',\n mode: 'default',\n space: 0,\n spaceX: 0,\n spaceY: 0,\n padding: 0,\n paddingX: 0,\n paddingY: 0,\n visible: false,\n paddingPosition: '',\n col: '',\n height: '',\n verticalAlign: 'top',\n va: 'top',\n line: false,\n wrap: true,\n});\n\nprovide('grid', props);\n\nconst setStyle = computed(() => {\n const obj: Record<string, string> = {};\n\n if (!props.paddingPosition) {\n if (typeof props.padding === 'string' && props.padding.includes(' ')) {\n const arr = props.padding.split(' ').map(item => (isNaN(Number(item)) ? item : `${item}em`));\n obj.padding = arr.join(' ');\n } else {\n if (!props.paddingX && !props.paddingY) {\n obj.padding = isNaN(Number(props.padding as string))\n ? String(props.padding)\n : `${props.padding}em`;\n } else {\n if (props.paddingX) {\n const px = isNaN(Number(props.paddingX as string))\n ? String(props.paddingX)\n : `${props.paddingX}em`;\n obj.paddingLeft = px;\n obj.paddingRight = px;\n }\n if (props.paddingY) {\n const py = isNaN(Number(props.paddingY as string))\n ? String(props.paddingY)\n : `${props.paddingY}em`;\n obj.paddingTop = py;\n obj.paddingBottom = py;\n }\n }\n }\n } else {\n const p = props.padding;\n const position = props.paddingPosition;\n if (['u', 'n', 'c', 'left', 'side'].includes(position)) {\n obj.paddingLeft = isNaN(Number(p as string)) ? String(p) : `${p}em`;\n }\n if (['u', 'n', 'ɔ', 'right', 'side'].includes(position)) {\n obj.paddingRight = isNaN(Number(p as string)) ? String(p) : `${p}em`;\n }\n if (['n', 'c', 'ɔ'].includes(position)) {\n obj.paddingTop = isNaN(Number(p as string)) ? String(p) : `${p}em`;\n }\n if (['u', 'c', 'ɔ'].includes(position)) {\n obj.paddingBottom = isNaN(Number(p as string)) ? String(p) : `${p}em`;\n }\n }\n\n return obj;\n});\n\nconst setContentStyle = computed(() => {\n const obj: Record<string, string> = {};\n\n if (props.space && props.type !== 'v') {\n obj.marginTop = `-${props.space}em`;\n }\n if (props.space) {\n obj.marginLeft = `-${props.space}em`;\n }\n if (props.spaceY && props.type !== 'v') {\n obj.marginTop = `-${props.spaceY}em`;\n }\n if (props.spaceX) {\n obj.marginLeft = `-${props.spaceX}em`;\n }\n\n if (String(props.space) === '-1') {\n obj.paddingTop = '1px';\n obj.paddingLeft = '1px';\n }\n if (String(props.spaceY) === '-1') {\n obj.paddingTop = '1px';\n }\n if (String(props.spaceX) === '-1') {\n obj.paddingLeft = '1px';\n }\n\n if (props.height && props.height !== 'full') {\n obj.height = isNaN(Number(props.height as string)) ? String(props.height) : `${props.height}em`;\n }\n\n return obj;\n});\n\nconst setClass = computed(() => {\n const classes: string[] = [];\n\n if (props.col !== '') classes.push(`col-${props.col}`);\n if (props.line) classes.push('is-line');\n if (props.mode) classes.push(`mode-${props.mode}`);\n if (props.visible) classes.push(`is-visible`);\n if (!props.wrap) classes.push('wrap-false');\n if (props.type === 'v') classes.push('type-v');\n if (props.height === 'full') classes.push('height-full');\n if (props.verticalAlign === 'center' || props.va === 'center') classes.push('va-center');\n if (props.verticalAlign === 'bottom' || props.va === 'bottom') classes.push('va-bottom');\n\n return classes;\n});\n</script>\n","<template>\n <div class=\"to-grid-item\" :style=\"setStyle\" :class=\"setClass\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue';\n\ninterface GridProps {\n space?: number | string;\n spaceX?: number | string;\n spaceY?: number | string;\n}\n\ninterface Props {\n merge?: number | string;\n width?: number | string;\n side?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n merge: 1,\n width: '',\n side: false,\n});\n\nconst grid = inject<GridProps>('grid', {});\n\nfunction parseVal(val: number | string | undefined): number {\n return Number(val ?? 0);\n}\n\nconst setStyle = computed(() => {\n const style: Record<string, string> = {};\n\n const space = parseVal(grid?.space);\n const spaceX = parseVal(grid?.spaceX);\n const spaceY = parseVal(grid?.spaceY);\n\n if (space > 0) {\n style.paddingTop = `${space}em`;\n style.paddingLeft = `${space}em`;\n }\n if (spaceY > 0) {\n style.paddingTop = `${spaceY}em`;\n }\n if (spaceX > 0) {\n style.paddingLeft = `${spaceX}em`;\n }\n\n if (space === -1) {\n style.marginTop = '-1px';\n style.marginLeft = '-1px';\n }\n if (spaceY === -1) {\n style.marginTop = '-1px';\n }\n if (spaceX === -1) {\n style.marginLeft = '-1px';\n }\n\n if (props.width) {\n if (!isNaN(Number(props.width))) {\n style.width = `${props.width}em`;\n } else if (props.width === 'full') {\n style.width = '100%';\n } else {\n style.width = props.width.toString();\n }\n }\n\n return style;\n});\n\nconst setClass = computed(() => {\n const arr: string[] = [];\n\n if (Number(props.merge) > 1) {\n arr.push(`merge-${props.merge}`);\n }\n if (props.side) {\n arr.push('is-side');\n }\n\n return arr;\n});\n</script>\n","import Grid from './src/grid.vue';\nimport GridItem from './src/grid-item.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToGrid: SFCWithInstall<typeof Grid> = withInstall(Grid);\nexport const ToGridItem: SFCWithInstall<typeof GridItem> = withInstall(GridItem);\n\nexport * from './src/instance';\n","<template>\n <div class=\"to-header\" :class=\"setClass\">\n <div\n v-if=\"slots.left || (Boolean(hasBack) && props.titlePosition === 'center')\"\n class=\"to-header-left\"\n >\n <to-button\n v-if=\"Boolean(hasBack) && props.titlePosition === 'center'\"\n icon=\"back\"\n mode=\"none\"\n @click=\"emit('back')\"\n />\n <slot name=\"left\" />\n </div>\n\n <div\n v-if=\"(props.title || slots.title) && Boolean(hasBack) && props.titlePosition === 'left'\"\n class=\"to-header-back\"\n >\n <to-button mode=\"none\" icon=\"back\" @click=\"emit('back')\">\n <slot name=\"title\">{{ props.title }}</slot>\n </to-button>\n <span v-if=\"slots.tip\" class=\"tip\">\n <slot name=\"tip\" />\n </span>\n </div>\n\n <div v-if=\"props.titlePosition === 'center'\" class=\"to-header-center\">\n <slot name=\"icon\" />\n <slot name=\"title\">{{ props.title }}</slot>\n </div>\n\n <div\n v-if=\"(props.title || slots.title) && !Boolean(hasBack) && props.titlePosition === 'left'\"\n class=\"to-header-title\"\n >\n <div class=\"to-header-title-icon\"></div>\n <div v-if=\"props.title\" class=\"to-header-title-text\">{{ props.title }}</div>\n <div v-if=\"slots.title\" class=\"to-header-title-text\">\n <slot v-if=\"slots.title\" name=\"title\" />\n </div>\n <div v-if=\"slots.tip\" class=\"to-header-title-tip\">\n <slot name=\"tip\" />\n </div>\n </div>\n\n <div\n v-if=\"slots.content || !((props.title || slots.title) && props.titlePosition === 'left')\"\n class=\"to-header-content\"\n >\n <slot name=\"content\" />\n </div>\n\n <div class=\"to-header-fn\">\n <slot />\n </div>\n\n <div v-if=\"slots.floatFn\" class=\"to-header-fn is-float\">\n <to-icon\n ref=\"floatFnIcon\"\n link\n value=\"menu\"\n mode=\"none\"\n fillet=\"normal\"\n @click=\"toggleFloat\"\n />\n <to-float ref=\"float\" class=\"to-header-floatFn\" :width=\"10\">\n <slot name=\"floatFn\" />\n </to-float>\n </div>\n\n <div v-if=\"slots.right\" class=\"to-header-right\">\n <slot name=\"right\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, computed, useSlots, getCurrentInstance } from 'vue';\nconst instance = getCurrentInstance();\n\ninterface Props {\n title?: string;\n color?: string;\n mode?: string;\n titlePosition?: 'left' | 'center';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: '',\n color: '',\n mode: 'default',\n titlePosition: 'left',\n});\n\nconst emit = defineEmits<{\n (e: 'back'): void;\n}>();\n\nconst slots = useSlots();\n\nconst float = ref();\nconst floatFnIcon = ref();\n\nconst hasBack = computed(() => {\n return !!instance?.vnode.props?.onClick;\n});\n\nconst setClass = computed(() => {\n const arr: string[] = [];\n\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n\n return arr;\n});\n\nconst toggleFloat = () => {\n float.value?.toggle?.(floatFnIcon.value);\n};\n</script>\n","import Header from './src/header.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\nexport const ToHeader: SFCWithInstall<typeof Header> = withInstall(Header);\nexport * from './src/instance';\n","<template>\n <span class=\"to-input\" :class=\"setClass\" :style=\"setStyle\" @click=\"click\">\n <!-- 前缀 -->\n <span v-if=\"props.prefix || $slots.prefix || props.step\" class=\"to-input-prefix\">\n <slot name=\"prefix\" />\n <span v-if=\"props.prefix\" class=\"to-input-text\">{{ props.prefix }}</span>\n <ToIcon\n v-if=\"props.step\"\n :value=\"props.stepIconMode ? 'unfold' : 'reduce'\"\n link\n color=\"primary\"\n mode=\"none\"\n :disabled=\"Number(data) === Number(props.min) || props.readonly\"\n @mousedown=\"reduce\"\n />\n </span>\n\n <!-- 输入框部分 -->\n <textarea\n v-if=\"props.type === 'textarea'\"\n ref=\"inputRef\"\n v-model=\"data\"\n class=\"to-input-textarea\"\n :autocomplete=\"props.autocomplete ? 'on' : 'new-password'\"\n :maxlength=\"props.maxlength\"\n :placeholder=\"iPlaceholder\"\n :readonly=\"disabled\"\n :tabindex=\"props.tabindex\"\n @keyup=\"inputKeyup\"\n @keydown=\"inputKeydown\"\n @cut=\"inputCut\"\n @focus=\"inputFocus\"\n @blur=\"inputBlur\"\n @paste=\"inputPaste\"\n @keypress=\"inputKeyPress\"\n />\n\n <span v-else-if=\"props.type === 'html'\" class=\"to-input-html\"\n >{{ props.html }}\n <slot name=\"html\" />\n </span>\n\n <input\n v-else\n ref=\"inputRef\"\n v-model=\"data\"\n class=\"to-input-content\"\n :autocomplete=\"props.autocomplete ? 'on' : 'new-password'\"\n :tabindex=\"props.tabindex\"\n :maxlength=\"props.maxlength\"\n :placeholder=\"iPlaceholder\"\n :type=\"itype\"\n :readonly=\"disabled\"\n @keyup=\"inputKeyup\"\n @keydown=\"inputKeydown\"\n @cut=\"inputCut\"\n @focus=\"inputFocus\"\n @blur=\"inputBlur\"\n @paste=\"inputPaste\"\n @keypress=\"inputKeyPress\"\n @change=\"inputChange\"\n @input=\"inputInput\"\n />\n\n <!-- 后缀区 -->\n <span\n v-if=\"\n props.clearable ||\n props.suggestion ||\n $slots.default ||\n $slots.suffix ||\n props.suffix ||\n props.step\n \"\n class=\"to-input-suffix\"\n >\n <ToIcon\n v-if=\"!props.readonly && props.clearable\"\n v-show=\"clearVisible\"\n class=\"to-input-clear\"\n :mode=\"iconMode\"\n link\n value=\"close\"\n @click.stop=\"clear\"\n />\n <ToIcon\n v-if=\"props.step\"\n :value=\"props.stepIconMode ? 'fold' : 'add'\"\n link\n :disabled=\"Number(data) === Number(props.max) || props.readonly\"\n @mousedown=\"increase\"\n />\n <span v-if=\"props.suffix\" class=\"to-input-text\">{{ props.suffix }}</span>\n <slot name=\"suffix\" />\n <slot />\n <span v-if=\"props.suggestion\" class=\"to-input-suggestion\">\n <ToButton\n v-for=\"(item, i) in props.suggestion.split(',')\"\n :key=\"i\"\n :fillet=\"true\"\n color=\"info\"\n mode=\"text\"\n @click=\"addSuggestion(item)\"\n >{{ item }}</ToButton\n >\n </span>\n </span>\n </span>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, computed, watch, CSSProperties } from 'vue';\ndefineOptions({\n name: 'ToInput',\n});\nconst props = defineProps({\n id: {\n type: String,\n default: '',\n },\n placeholder: {\n type: String,\n default: '请输入',\n },\n type: {\n type: String,\n default: 'text',\n },\n tabindex: {\n type: String,\n default: '1',\n },\n autocomplete: {\n type: Boolean,\n default: false,\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n max: {\n type: [String, Number],\n default: Infinity,\n },\n min: {\n type: [String, Number],\n default: -Infinity,\n },\n maxlength: {\n type: [String, Number],\n default: Infinity,\n },\n dot: {\n type: [String, Number],\n default: 0,\n },\n step: {\n type: [String, Number],\n default: null,\n },\n stepIconMode: {\n type: String,\n default: '',\n },\n spChars: {\n type: [String, Boolean],\n default: '/,\\\\,[,],{,},\"',\n },\n prefix: {\n type: String,\n default: '',\n },\n suffix: {\n type: String,\n default: '',\n },\n suggestion: {\n type: String,\n default: '',\n },\n suggestionType: {\n type: String,\n default: '',\n },\n suggestionSymbol: {\n type: String,\n default: '、',\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n preventFocus: {\n type: Boolean,\n default: false,\n },\n comparable: {\n type: Boolean,\n default: false,\n },\n modelValue: {\n type: [String, Number],\n default: () => '',\n },\n html: {\n type: [String, Number],\n default: '',\n },\n trim: {\n type: Boolean,\n default: true,\n },\n fillet: {\n type: String,\n default: 'normal',\n },\n filletPosition: {\n type: String,\n default: '',\n },\n color: {\n type: String,\n default: 'default',\n },\n placeholderColor: {\n type: String,\n default: '',\n },\n mode: {\n type: String,\n default: '',\n },\n width: {\n type: [Number, String],\n default: '',\n },\n height: {\n type: [Number, String],\n default: '',\n },\n link: {\n type: Boolean,\n default: false,\n },\n conversionType: {\n type: [String, Number],\n default: 0,\n },\n});\ninterface styleProps extends CSSProperties {\n width?: string | number;\n height?: string | number;\n}\nconst emit = defineEmits(['update:modelValue', 'click', 'clear']);\n// const errorTip = ref('')\n// const errorType = ref('rule')\n// const valueStore = ref([])\n// const prevent = ref(false)\n// const inited = ref(false)\nconst focused = ref(false);\nconst data = ref(props.modelValue);\nconst clearVisible = ref(false);\nconst itype = ref('text');\nconst disabled = computed(() => props.readonly);\n// const multipleNumber = ref(1)\n\nwatch(\n () => props.modelValue,\n val => {\n data.value = val;\n }\n);\n\nconst iPlaceholder = computed(() => {\n if (!disabled.value && !props.placeholder && props.placeholder !== '') {\n return '请填写';\n } else {\n return props.placeholder;\n }\n});\n\nconst iconMode = computed(() => {\n if (props.mode === 'none' || props.mode === 'line' || focused.value) return 'none';\n if (props.mode === 'fill') return 'fill';\n return 'plain';\n});\n\nconst setClass = computed(() => {\n const arr = [];\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n if (props.type) {\n arr.push(`type-${props.type}`);\n }\n if (props.readonly) {\n arr.push(`is-readonly`);\n }\n return arr;\n});\n\nconst setStyle = computed(() => {\n const obj: styleProps = {};\n if (props.width) {\n if (!isNaN(Number(props.width))) {\n obj.width = props.width + 'em';\n }\n }\n if (props.height) {\n if (!isNaN(Number(props.height))) {\n obj.height = props.height + 'em';\n }\n }\n return obj;\n});\nconst inputRef = ref(null);\n\nfunction inputKeyup() {}\nfunction inputChange() {}\nfunction inputKeydown() {}\nfunction inputCut() {}\nfunction inputFocus() {\n focused.value = true;\n}\nfunction inputBlur() {\n focused.value = false;\n}\nfunction inputPaste() {}\nfunction inputKeyPress() {}\nfunction inputInput() {\n // emit('input', data.value)\n emit('update:modelValue', data.value);\n}\nfunction clear() {\n data.value = '';\n emit('clear');\n}\nfunction reduce() {}\nfunction increase() {}\nfunction addSuggestion(item: any) {\n data.value += item;\n}\n\nfunction click() {\n emit('click');\n}\n</script>\n","import Input from './src/input.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\nexport const ToInput: SFCWithInstall<typeof Input> = withInstall(Input);\nexport * from './src/instance';\n","<template>\n <div class=\"to-line\" :class=\"setClass\" :style=\"setStyle\"></div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, CSSProperties } from 'vue';\n\ninterface Props {\n height?: string;\n mode?: string;\n type?: string;\n color?: string;\n marginX?: string | number;\n marginY?: string | number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n mode: 'default',\n type: 'default',\n color: '',\n height: '',\n marginX: 0,\n marginY: 0,\n});\n\nconst setClass = computed(() => {\n let arr: string[] = [];\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n if (props.type) {\n arr.push(`type-${props.type}`);\n }\n if (props.color) {\n arr.push(`color-${props.color}`);\n }\n return arr;\n});\n\nconst setStyle = computed(() => {\n const obj: CSSProperties = {};\n if (props.marginX) {\n if (!isNaN(Number(props.marginX))) {\n obj.marginLeft = props.marginX + 'em';\n obj.marginRight = props.marginX + 'em';\n } else {\n obj.marginLeft = props.marginX;\n obj.marginRight = props.marginX + 'em';\n }\n }\n if (props.marginY) {\n if (!isNaN(Number(props.marginY))) {\n obj.marginTop = props.marginY + 'em';\n obj.marginBottom = props.marginY + 'em';\n } else {\n obj.marginTop = props.marginY;\n }\n }\n if (props.height) {\n if (!isNaN(Number(props.height))) {\n obj.height = props.height + 'em';\n } else {\n obj.height = props.height;\n }\n }\n return obj;\n});\n</script>\n","import Line from './src/line.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\nexport const ToLine: SFCWithInstall<typeof Line> = withInstall(Line);\nexport * from './src/instance';\n","<template>\n <div class=\"to-msg\" :class=\"setClass\" :style=\"setStyle\">\n <div class=\"to-msg-bg\" @click=\"bgClose\"></div>\n <div class=\"to-msg-wrapper\" :style=\"setWrapperStyle\">\n <div class=\"to-msg-side\">\n <component :is=\"emoteComponent\" v-if=\"emoteComponent\"></component>\n <div v-else class=\"to-msg-pic\"></div>\n </div>\n\n <div v-if=\"hasInfoContent\" class=\"to-msg-main\">\n <div v-if=\"title || slots.title || slots.default\" class=\"to-msg-title\">\n <div class=\"to-msg-title-text\">\n {{ title }}\n <slot name=\"title\" />\n </div>\n </div>\n\n <div v-if=\"htmlContent\" class=\"to-msg-content\" :style=\"setHtmlStyle\">\n <div class=\"to-msg-content-text\">\n <span v-html=\"htmlContent\"></span>\n </div>\n </div>\n\n <div v-else class=\"to-msg-content\">\n <div class=\"to-msg-content-text\">\n <template v-if=\"content || slots.content\">{{ content }}</template>\n <slot name=\"content\" />\n </div>\n </div>\n\n <!-- <div v-if=\"slots.detail || detail\">\n\t\t\t\t\t<to-space />\n\t\t\t\t\t<a v-if=\"!iShowDetail\" href=\"javascript:void(0)\" @click=\"iShowDetail = true\">显示详情</a>\n\t\t\t\t\t<a v-else href=\"javascript:void(0)\" @click=\"iShowDetail = false\">隐藏详情</a>\n\t\t\t\t</div> -->\n\n <div v-show=\"iShowDetail\" v-if=\"slots.detail\" :style=\"setDetailStyle\" class=\"to-msg-detail\">\n <slot name=\"detail\" />\n </div>\n <div\n v-show=\"iShowDetail\"\n v-if=\"detail\"\n :style=\"setDetailStyle\"\n class=\"detail\"\n v-html=\"detail\"\n />\n\n <div class=\"to-msg-fn\">\n <slot>\n <to-button v-if=\"cancelButtonText\" icon=\"close\" fillet=\"normal\" @click=\"cancel\">{{\n cancelButtonText\n }}</to-button>\n <to-button\n v-if=\"confirmButtonText\"\n icon=\"ok\"\n color=\"primary\"\n fillet=\"normal\"\n @click=\"confirm\"\n >{{ confirmButtonText }}</to-button\n >\n </slot>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, onBeforeUnmount, computed, ref, useSlots } from 'vue';\nimport { useAttrs } from 'vue';\n\ninterface Props {\n type?: string;\n title?: string;\n content?: string;\n htmlContent?: string;\n htmlHeight?: string | number;\n width?: string | number;\n detail?: string;\n detailWidth?: string | number;\n showDetail?: boolean;\n padding?: string | number;\n pic?: string;\n picPosition?: string;\n position?: string;\n height?: string | number;\n confirmButtonText?: string;\n cancelButtonText?: string;\n closeOnClickModal?: boolean;\n closeOnBlur?: boolean;\n zIndex?: number;\n global?: boolean;\n show?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n type: '',\n title: '',\n content: '',\n htmlContent: '',\n htmlHeight: 'auto',\n detail: '',\n width: '',\n detailWidth: 'auto',\n showDetail: true,\n padding: 0,\n pic: '',\n picPosition: 'top',\n position: '',\n height: 'auto',\n confirmButtonText: '',\n cancelButtonText: '',\n closeOnClickModal: true,\n closeOnBlur: true,\n zIndex: 0,\n global: false,\n show: false,\n});\n\nconst emit = defineEmits(['close', 'confirm']);\n\nconst iShowDetail = ref(props.showDetail);\nconst visible = ref(false);\nconst slots = useSlots();\n\nconst className = useAttrs().class as string | undefined;\n\nconst setClass = computed(() => {\n const arr: string[] = [];\n if (props.type) arr.push(`type-${props.type}`);\n if (props.show || visible.value) arr.push('is-show');\n if (className) arr.push(className);\n return arr;\n});\n\nconst setStyle = computed(() => {\n const style: Record<string, string> = {};\n if (typeof props.height === 'string' && props.height !== 'auto') {\n style.height = props.height;\n } else if (typeof props.height === 'number') {\n style.height = `${props.height}em`;\n }\n return style;\n});\n\nconst setWrapperStyle = computed(() => {\n const style: Record<string, string> = {};\n if (props.width) {\n style.width = `${props.width}em`;\n }\n return style;\n});\n\nconst setHtmlStyle = computed(() => {\n if (props.htmlHeight !== 'auto') {\n return {\n height: typeof props.htmlHeight === 'number' ? `${props.htmlHeight}em` : props.htmlHeight,\n overflow: 'auto',\n };\n }\n return {};\n});\n\nconst setDetailStyle = computed(() => {\n if (props.detailWidth !== 'auto') {\n return {\n width: typeof props.detailWidth === 'number' ? `${props.detailWidth}em` : props.detailWidth,\n };\n }\n return {};\n});\n\nconst hasInfoContent = computed(\n () => props.title || slots.default || props.content || slots.content || slots.title\n);\n\nconst emoteComponent = computed(() => {\n return (window as any).$TouchUI?.msg?.emote?.[props.pic || 'default'];\n});\n\nconst open = () => {\n const el = document.querySelector('.to-msg') as HTMLElement;\n if (props.zIndex) {\n el.style.zIndex = props.zIndex.toString();\n } else {\n el.style.zIndex = ((window as any).$TouchUI?.zIndex ?? 1000).toString();\n if ((window as any).$TouchUI) (window as any).$TouchUI.zIndex++;\n }\n visible.value = true;\n};\n\nconst close = () => {\n visible.value = false;\n emit('close');\n};\n\nconst confirm = () => {\n emit('confirm');\n visible.value = false;\n emit('close');\n};\n\nconst cancel = () => {\n visible.value = false;\n emit('close');\n};\n\nconst bgClose = () => {\n if (!props.closeOnClickModal || !props.closeOnBlur) return;\n close();\n};\n\nonMounted(() => {\n if (props.global) {\n document.body.appendChild(document.querySelector('.to-msg')!);\n }\n});\n\nonBeforeUnmount(() => {\n if (props.global) {\n const el = document.querySelector('.to-msg');\n if (el && el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n});\n\ndefineExpose({ open, close });\n</script>\n","import Msg from './src/msg.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\nexport const ToMsg: SFCWithInstall<typeof Msg> = withInstall(Msg);\nexport * from './src/instance';\n","<template>\n <div class=\"to-padding\" :style=\"setStyle\" :class=\"setClass\">\n <slot></slot>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineProps, withDefaults } from 'vue';\nimport type { CSSProperties } from 'vue';\n\ninterface Props {\n mode?: string;\n value?: string | number;\n height?: string;\n position?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n mode: 'default',\n value: '',\n height: '',\n position: 'trbl',\n});\n\nconst hasUnit = (val: string) => /[a-z%]+$/i.test(val);\nconst setStyle = computed((): CSSProperties => {\n const obj: CSSProperties = {};\n\n if (String(props.value).trim()) {\n // 分割成各个值\n const padded = String(props.value)\n .trim()\n .split(/\\s+/)\n .map(val => {\n // 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n return hasUnit(val) ? val : `${val}em`;\n })\n .join(' ');\n\n obj.padding = padded;\n }\n\n if (!props.position.includes('t')) {\n obj.paddingTop = 0;\n }\n if (!props.position.includes('r')) {\n obj.paddingRight = 0;\n }\n if (!props.position.includes('b')) {\n obj.paddingBottom = 0;\n }\n if (!props.position.includes('l')) {\n obj.paddingLeft = 0;\n }\n\n return obj;\n});\n\nconst setClass = computed(() => {\n const arr: string[] = [];\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n if (props.height && props.height === 'full') {\n arr.push('height-full');\n }\n return arr;\n});\n</script>\n","import Padding from './src/padding.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\nexport const ToPadding: SFCWithInstall<typeof Padding> = withInstall(Padding);\nexport * from './src/instance';\n","<template>\n <div v-if=\"cShowInSingle\" v-align=\"align\" :class=\"setClass\" class=\"to-page\">\n <div v-if=\"layout.includes('total') || layout === 'all'\" class=\"to-page-total\">\n 共 {{ total }} 项数据\n </div>\n <!-- <div class=\"to-page-slot\" v-if=\"slots.default || !lite\"> -->\n <slot />\n <!-- </div> -->\n <div v-if=\"layout.includes('pager') || layout === 'all'\" class=\"to-page-pager\">\n <div\n v-dis=\"Number(currentPage_) <= 1\"\n class=\"to-page-pager-prev\"\n @click=\"handlePagePrev\"\n ></div>\n <ul class=\"to-page-pager-list\">\n <li\n class=\"to-page-pager-item\"\n :class=\"{ 'is-on': Number(currentPage_) === 1 }\"\n @click=\"handleCurrentChange(1)\"\n >\n 1\n </li>\n <li v-if=\"showPrevMore\" class=\"to-page-pager-ellipsis\">…</li>\n <li\n v-for=\"page in pager_\"\n :key=\"page\"\n class=\"to-page-pager-item\"\n :class=\"{ 'is-on': Number(currentPage_) === page }\"\n @click=\"handleCurrentChange(page)\"\n >\n {{ page }}\n </li>\n <li v-if=\"showNextMore\" class=\"to-page-pager-ellipsis\">…</li>\n <li\n v-if=\"pageCount_ > 1\"\n class=\"to-page-pager-item\"\n :class=\"{ 'is-on': Number(currentPage_) === Number(pageCount_) }\"\n @click=\"handleCurrentChange(pageCount_)\"\n >\n {{ pageCount_ }}\n </li>\n </ul>\n <div\n v-dis=\"Number(currentPage_) >= Number(pageCount_)\"\n class=\"to-page-pager-next\"\n @click=\"handlePageNext\"\n ></div>\n </div>\n <div v-if=\"layout.includes('size') || layout === 'all'\" class=\"to-page-size\">\n <to-select\n v-model=\"pageSize_\"\n v-dis=\"disabled\"\n suffix=\"条/页\"\n mode=\"none\"\n :clearable=\"false\"\n :data=\"cPageSizes\"\n :option-width=\"10\"\n @change=\"handleSizeChange\"\n />\n </div>\n <div v-if=\"layout.includes('jumper') || layout === 'all'\" class=\"to-page-jumper\">\n <span>跳至</span>\n <to-input\n v-model=\"jumperPage\"\n v-dis=\"disabled\"\n placeholder=\"1\"\n @keyup.enter=\"handleJump\"\n ></to-input>\n <span>/{{ pageCount_ }}页</span>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, defineProps, defineEmits, onMounted } from 'vue';\n// const slots = useSlots\nconst props = defineProps({\n align: { type: String, default: '' },\n pageSize: { type: [Number, String], default: 10 },\n total: { type: [Number, String], default: 0 },\n pageCount: { type: [Number, String], default: undefined },\n pagerCount: { type: [Number, String], default: 7 },\n currentPage: { type: [Number, String], default: 1 },\n layout: { type: String, default: 'all' },\n pageSizes: { type: [Array, String], default: () => [10, 20, 30, 40, 50, 100] },\n prevText: { type: String, default: '' },\n nextText: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n hideOnSinglePage: { type: Boolean, default: false },\n lite: Boolean,\n});\n\nconst emit = defineEmits([\n 'update:pageSize',\n 'size-change',\n 'update:currentPage',\n 'current-change',\n 'prev-click',\n 'next-click',\n]);\n\nconst pageCount_ = ref<number>(0);\nconst pageSize_ = ref<number>(Number(props.pageSize));\nconst currentPage_ = ref<number>(Number(props.currentPage));\nconst pager_ = ref<number[]>([]);\nconst jumperPage = ref<string>('');\nconst showPrevMore = ref(false);\nconst showNextMore = ref(false);\n\nconst cShowInSingle = computed(() => {\n return !(props.hideOnSinglePage && Number(pageCount_.value) <= 1) || !props.hideOnSinglePage;\n});\n\nconst cPageSizes = computed(() => {\n const sizes = typeof props.pageSizes === 'string' ? props.pageSizes.split(',') : props.pageSizes;\n return sizes.map(size => ({\n label: size,\n value: Number(size),\n }));\n});\n\nconst setClass = computed(() => {\n let arr: string[] = [];\n if (props.lite) {\n arr.push(`is-lite`);\n }\n return arr;\n});\n\nwatch(\n () => props.pageSize,\n val => {\n const sizes =\n typeof props.pageSizes === 'string' ? props.pageSizes.split(',') : props.pageSizes;\n pageSize_.value = sizes.includes(val) ? Number(val) : Number(sizes[0]);\n },\n { immediate: true }\n);\n\nwatch(\n () => props.currentPage,\n val => {\n currentPage_.value = Number(val);\n computePager();\n },\n { immediate: true }\n);\n\nwatch(\n () => props.pageCount,\n val => {\n pageCount_.value = Number(val);\n computePager();\n },\n { immediate: true }\n);\n\nwatch(() => props.total, computePager);\nwatch(() => props.pagerCount, computePager);\n\nonMounted(() => computePager());\n\nfunction handleJump() {\n if (props.disabled || !jumperPage.value) return;\n let jump = Number(jumperPage.value);\n jump = Math.max(1, Math.min(jump, pageCount_.value));\n jumperPage.value = '';\n handleCurrentChange(jump);\n}\n\nfunction handleSizeChange(size: number) {\n if (props.disabled) return;\n emit('update:pageSize', size);\n emit('size-change', size);\n computePager();\n}\n\nfunction handleCurrentChange(page: number) {\n if (props.disabled) return;\n currentPage_.value = page;\n emit('update:currentPage', page);\n emit('current-change', page);\n computePager();\n}\n\nfunction handlePagePrev() {\n if (props.disabled || currentPage_.value <= 1) return;\n currentPage_.value--;\n handleCurrentChange(currentPage_.value);\n emit('prev-click', currentPage_.value);\n}\n\nfunction handlePageNext() {\n if (props.disabled || currentPage_.value >= pageCount_.value) return;\n currentPage_.value++;\n handleCurrentChange(currentPage_.value);\n emit('next-click', currentPage_.value);\n}\n\nfunction computePager() {\n const pagerCount = Number(props.pagerCount);\n const halfPagerCount = (pagerCount - 1) / 2;\n const count = props.pageCount\n ? Number(props.pageCount)\n : Math.ceil(Number(props.total) / pageSize_.value);\n pageCount_.value = Math.max(1, count);\n\n const current = currentPage_.value;\n showPrevMore.value = current > pagerCount - halfPagerCount;\n showNextMore.value = current < pageCount_.value - halfPagerCount;\n\n const pages: number[] = [];\n\n if (showPrevMore.value && !showNextMore.value) {\n const start = pageCount_.value - (pagerCount - 2);\n for (let i = start; i < pageCount_.value; i++) pages.push(i);\n } else if (!showPrevMore.value && showNextMore.value) {\n for (let i = 2; i < pagerCount; i++) pages.push(i);\n } else if (showPrevMore.value && showNextMore.value) {\n const offset = Math.floor(pagerCount / 2) - 1;\n for (let i = current - offset; i <= current + offset; i++) pages.push(i);\n } else {\n for (let i = 2; i < pageCount_.value; i++) pages.push(i);\n }\n\n pager_.value = pages;\n}\n</script>\n","import Page from './src/page.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\nexport const ToPage: SFCWithInstall<typeof Page> = withInstall(Page);\nexport * from './src/instance';\n","<template>\n <div class=\"to-card\" :style=\"setStyle\" :class=\"setClass\" @click=\"clickHandle\">\n <slot></slot>\n <div v-if=\"$slots.fn\" class=\"to-card-fn\" :style=\"setFnStyle\">\n <slot name=\"fn\"></slot>\n </div>\n </div>\n</template>\n<script setup>\nimport { computed, provide } from 'vue';\n\ndefineOptions({\n name: 'ToCard',\n});\n\nconst props = defineProps({\n fillet: { type: String, default: 'none' },\n color: { type: String, default: '' },\n mode: { type: String, default: 'default' },\n padding: { type: [Number, String], default: '' },\n link: Boolean,\n shadow: Boolean,\n checked: Boolean,\n wrap: Boolean,\n type: { type: String, default: '' },\n width: { type: [Number, String], default: '' },\n});\n\nconst emits = defineEmits(['click']);\n\nprovide('toCard', {});\n\nconst setClass = computed(() => {\n const arr = [];\n if (props.wrap) arr.push('is-wrap');\n if (props.mode) arr.push(`mode-${props.mode}`);\n if (props.color) arr.push(`color-${props.color}`);\n if (props.link) arr.push('is-link');\n if (props.type) arr.push(`type-${props.type}`);\n if (props.checked) arr.push('is-checked');\n if (props.width === 'auto') arr.push('width-auto');\n return arr;\n});\n\nconst setStyle = computed(() => {\n const obj = {};\n if (props.width) {\n obj.width = isNaN(Number(props.width)) ? props.width : `${props.width}em`;\n }\n\n const hasUnit = val => /[a-z%]+$/i.test(val);\n if (String(props.padding).trim()) {\n // 分割成各个值\n const padded = String(props.padding)\n .trim()\n .split(/\\s+/)\n .map(val => {\n // 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n return hasUnit(val) ? val : `${val}em`;\n })\n .join(' ');\n\n obj.padding = padded;\n }\n return obj;\n});\n\nconst setFnStyle = computed(() => {\n const obj = {};\n if (props.padding >= 0 && props.padding !== 1) {\n obj.top = `${props.padding}em`;\n obj.right = `${props.padding}em`;\n }\n return obj;\n});\n\nfunction clickHandle(evt) {\n if (props.link) {\n emits('click', evt);\n }\n}\n</script>\n","<template>\n <div class=\"to-card-item\" :class=\"setClass\" :style=\"setStyle\">\n <slot></slot>\n <div v-if=\"$slots.title || $slots.titleSide\" class=\"to-card-title\">\n <div v-if=\"$slots.title\" class=\"to-card-title-main\">\n <span class=\"to-card-title-text\">\n <slot name=\"title\" />\n </span>\n </div>\n <div v-if=\"$slots.titleSide\" class=\"to-card-title-side\">\n <span class=\"to-card-title-side-text\">\n <slot name=\"titleSide\" />\n </span>\n </div>\n </div>\n <div v-if=\"$slots.content || $slots.contentSide\" class=\"to-card-content\">\n <div v-if=\"$slots.content\" class=\"to-card-content-main\">\n <span class=\"to-card-content-text\">\n <slot name=\"content\" />\n </span>\n </div>\n <div v-if=\"$slots.contentSide\" class=\"to-card-content-side\">\n <span class=\"to-card-content-side-text\">\n <slot name=\"contentSide\" />\n </span>\n </div>\n </div>\n <div v-if=\"$slots.value\" class=\"to-card-value\">\n <span class=\"to-card-value-text\">\n <slot name=\"value\" />\n </span>\n </div>\n <div v-if=\"$slots.label\" class=\"to-card-label\">\n <span class=\"to-card-value-text\">\n <slot name=\"label\" />\n </span>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\n\nconst props = defineProps({\n type: { type: String, default: 'side' },\n align: { type: String, default: '' },\n padding: { type: [Number, String], default: 0 },\n width: { type: [Number, String], default: 0 },\n line: Boolean,\n more: Boolean,\n link: Boolean,\n main: Boolean,\n});\n\n// const toCard = inject('toCard')\n\ndefineOptions({\n name: 'ToCardItem',\n});\n\nconst setClass = computed(() => {\n const arr = [];\n if (props.type === 'main' || props.main) arr.push('is-main');\n if (props.type === 'more' || props.more) arr.push('is-more');\n if (props.type === 'link' || props.link) arr.push('is-link');\n if (props.line === 'solid') arr.push('line-solid');\n if (props.align) arr.push(`align-${props.align}`);\n return arr;\n});\n\nconst setStyle = computed(() => {\n const obj = {};\n\n const hasUnit = val => /[a-z%]+$/i.test(val);\n if (String(props.padding).trim()) {\n // 分割成各个值\n const padded = String(props.padding)\n .trim()\n .split(/\\s+/)\n .map(val => {\n // 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n return hasUnit(val) ? val : `${val}em`;\n })\n .join(' ');\n\n obj.padding = padded;\n }\n\n if (props.width) {\n obj.width = props.width + 'em';\n }\n\n return obj;\n});\n</script>\n","import { withInstall } from '@touchvue/utils';\nimport Card from './src/Card.vue';\nimport CardItem from './src/CardItem.vue';\n\nexport const ToCard = withInstall(Card, [CardItem]);\n\nexport * from './src/Card.vue';\nexport * from './src/CardItem.vue';\n","<template>\n <div class=\"to-checkbox\" :class=\"setClass\" :style=\"setStyle\" @click.stop=\"toggle\">\n <div class=\"to-checkbox-box\"></div>\n <div v-if=\"label\" class=\"to-checkbox-label\">{{ label }}</div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref, computed, defineProps } from 'vue';\n\ndefineOptions({\n name: 'ToCheckbox',\n});\n\ninterface Props {\n mode?: string;\n label?: string;\n value?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n mode: 'default',\n label: '',\n});\n\nlet checked = ref<boolean>(false);\n\nconst setStyle = computed(() => {\n const obj = {};\n return obj;\n});\n\nconst setClass = computed(() => {\n let arr: string[] = [];\n if (props.mode) {\n arr.push(`mode-${props.mode}`);\n }\n if (checked.value) {\n arr.push(`is-checked`);\n }\n return arr;\n});\n\nfunction toggle() {\n checked.value = !checked.value;\n}\n</script>\n","import { withInstall, SFCWithInstall } from '@touchvue/utils';\nimport Checkbox from './src/Checkbox.vue';\n\nexport const ToCheckbox: SFCWithInstall<typeof Checkbox> = withInstall(Checkbox);\nexport * from './src/Checkbox.vue';\n","<template>\n <div></div>\n</template>\n<script setup lang=\"ts\">\ndefineOptions({\n name: 'ToDatepicker',\n});\n</script>\n","import { withInstall, SFCWithInstall } from '@touchvue/utils';\nimport DatePicker from './src/DatePicker.vue';\n\nexport const ToDatepikcer: SFCWithInstall<typeof DatePicker> = withInstall(DatePicker);\nexport * from './src/DatePicker.vue';\n","<template>\n\t<div v-dis.opacity=\"disabled\" class=\"to-switch\" :class=\"setClass\" @click=\"toggle\">\n\t\t<div class=\"to-switch-on\">{{ onText }}</div>\n\t\t<div class=\"to-switch-off\">{{ offText }}</div>\n\t</div>\n</template>\n\n<script setup>\ndefineOptions({\n name: 'ToSwitch',\n});\nimport { computed, ref, watch, defineEmits, defineProps } from 'vue';\n\nconst props = defineProps({\n\treadonly: Boolean,\n\tmodelValue: {\n\t\ttype: [Boolean, String, Number],\n\t\tdefault: false\n\t},\n\tonValue: {\n\t\ttype: [Boolean, String, Number],\n\t\tdefault: true\n\t},\n\toffValue: {\n\t\ttype: [Boolean, String, Number],\n\t\tdefault: false\n\t},\n\tonText: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\toffText: {\n\t\ttype: String,\n\t\tdefault: ''\n\t}\n});\n\nconst emit = defineEmits(['update:modelValue', 'change', 'beforeChange']);\n\nconst ivalue = ref(props.modelValue);\nconst disabled = ref(props.readonly);\n\nwatch(() => props.modelValue, val => {\n\tivalue.value = val;\n}, { immediate: true });\n\nwatch(() => props.readonly, val => {\n\tdisabled.value = val;\n});\n\nconst setClass = computed(() => {\n\tconst arr = [];\n\tif (ivalue.value === props.onValue) {\n\t\tarr.push(`is-on`);\n\t}\n\treturn arr;\n});\n\nfunction toggle() {\n\tif (disabled.value) return;\n\n\temit('beforeChange', ivalue.value);\n\tivalue.value = (ivalue.value === props.onValue) ? props.offValue : props.onValue;\n\temit('update:modelValue', ivalue.value);\n\temit('change', ivalue.value);\n}\n</script>\n","import Switch from './src/switch.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToSwitch: SFCWithInstall<typeof Switch> = withInstall(Switch);\n\nexport * from './src/instance';","<template>\n\t<div class=\"to-tab\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<div class=\"to-tab-tab\">\n\t\t\t<div class=\"to-tab-list\">\n\t\t\t\t<ul ref=\"ul\" class=\"to-tab-wrapper\" :style=\"setUlStyle\">\n\t\t\t\t\t<template v-for=\"(item, index) in data\" :key=\"index\">\n\t\t\t\t\t\t<li class=\"to-tab-item\" :class=\"{ 'is-on': item.value === modelValue }\" @click=\"changeTab(item, index)\">\n\t\t\t\t\t\t\t<slot name=\"item\" v-bind=\"item\">\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<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<span class=\"to-tab-item-delete\" v-if=\"deletable\" @click.stop=\"removeTab(item, index)\"><span></span></span>\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-item-under\"></div>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</template>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div class=\"to-tab-line\"></div>\n\t\t\t<div class=\"to-tab-fn\">\n\t\t\t\t<slot name=\"fn\"></slot>\n\t\t\t\t<!-- <div class=\"to-tab-fn-item fn-left\"></div>\n\t\t\t\t<div class=\"to-tab-fn-item fn-right\"></div>\n\t\t\t\t<div class=\"to-tab-fn-item fn-refresh\"></div> -->\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"to-tab-page\">\n\t\t\t<slot></slot>\n\t\t</div>\n\t</div>\n</template>\n<script setup lang=\"ts\">\ndefineOptions({\n name: 'ToTab',\n});\nimport { ref, reactive, computed, onMounted, CSSProperties } from 'vue'\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\ninterface TabItem {\n\tlabel: string,\n\tvalue: string | number,\n}\ninterface Props {\n\tmodelValue?: string | number,\n\tposition?: string,\n\tmode?: string,\n\tdata?: TabItem[],\n\tdeletable?: boolean,\n\ttabOver?: 'float' | 'avg' | 'control' | 'scroll'\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tmodelValue: '',\n\tposition: '',\n\tmode: 'default',\n\ttabOver: 'control',\n\tdeletable: false,\n\tdata: () => [] as TabItem[]\n})\n\nconst left = ref(0)\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\tif (props.position) {\n\t\tarr.push(`position-${props.position}`)\n\t}\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\treturn obj\n})\n\nconst setUlStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tobj.transform = `translateX(${left}px)`\n\treturn obj\n})\n\nfunction changeTab(item, index) {\n\temit('update:modelValue', item.value, index)\n\temit('change', item.value, index)\n}\n\nfunction removeTab(item, index) {\n\t// \n}\n</script>","<template>\n\t<div class=\"to-tab-item\" :class=\"setClass\"></div>\n</template>\n<script setup lang=\"ts\">\ndefineOptions({\n name: 'ToTabItem',\n});\nimport { ref, reactive, computed, onMounted, defineProps } from 'vue'\n\ninterface Props {\n\tmode: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tmode: 'default'\n})\n\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\treturn arr\n})\n</script>","import Tab from './src/tab.vue';\nimport TabItem from './src/tab-item.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToTab: SFCWithInstall<typeof Tab> = withInstall(Tab);\nexport const ToTabItem: SFCWithInstall<typeof TabItem> = withInstall(TabItem);\n\nexport * from './src/instance';","<template>\n\t<div class=\"to-table\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<table class=\"to-table-table\">\n\t\t\t<thead class=\"to-table-head\">\n\t\t\t\t<tr class=\"to-table-head-row\">\n\t\t\t\t\t<template v-for=\"(column) in columns\">\n\t\t\t\t\t\t<th v-if=\"column.type === 'check'\" :key=\"column.prop + 'check'\" class=\"to-table-th is-check\">\n\t\t\t\t\t\t\t<ToCheckbox></ToCheckbox>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th v-else class=\"to-table-th\" :key=\"column.prop\">\n\t\t\t\t\t\t\t{{ column.label }}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</template>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody class=\"to-table-body\">\n\t\t\t\t<tr class=\"to-table-body-row\" v-for=\"(row, rowIndex) in visibleRows\" :key=\"rowIndex\">\n\t\t\t\t\t<template v-for=\"(column) in columns\">\n\t\t\t\t\t\t<td v-if=\"column.type === 'check'\" :key=\"column.prop + 'check'\" class=\"to-table-td is-check\">\n\t\t\t\t\t\t\t<ToCheckbox></ToCheckbox>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td v-else class=\"to-table-td\" :class=\"setTdClass(column).value\" :key=\"column.prop\" :style=\"{ paddingLeft: column.toggler && row.level ? `${row.level + 2}em` : '' }\">\n\t\t\t\t\t\t\t<span v-if=\"hasChildren(row) && column.toggler\" @click=\"toggleExpand(row)\" class=\"to-table-toggle\" :class=\"{\n\t\t\t\t\t\t\t\t'is-expand': expandedSet.has(row.id)\n\t\t\t\t\t\t\t}\">\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<slot :name=\"column.prop\" :row=\"row\" :index=\"rowIndex\">\n\t\t\t\t\t\t\t\t<template v-if=\"column.prop\">\n\t\t\t\t\t\t\t\t\t{{ row[column.prop] }}\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</template>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\ndefineOptions({\n name: 'ToTable',\n});\ninterface Props {\n\tcolumns?: { prop?: string; label?: string, type?: string, toggler?: boolean }[]\n\tdata?: Record<string, any>[],\n\theight?: number | string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolumns: () => [],\n\tdata: () => [],\n\theight: ''\n})\n\nconst flatData = computed(() => flattenTree(props.data))\nconst expandedSet = ref(new Set<number>())\n\nlet uid = 0\ninterface FlatNode {\n\tid: number\n\tparentId?: number\n\tlevel: number\n\tchildren?: any[]\n\t[key: string]: any\n}\nfunction flattenTree(data: any[], level = 0, parentId?: number): FlatNode[] {\n\tconst result: FlatNode[] = []\n\tfor (const item of data) {\n\t\tconst id = uid++\n\t\tconst { children, ...rest } = item\n\t\tresult.push({ ...rest, id, parentId, level })\n\n\t\tif (children && Array.isArray(children)) {\n\t\t\tresult.push(...flattenTree(children, level + 1, id))\n\t\t}\n\t}\n\treturn result\n}\nfunction isVisible(item: FlatNode, all: FlatNode[]) {\n\t// 只有它的所有祖先都被展开,才能显示\n\tlet parentId = item.parentId\n\twhile (parentId !== undefined) {\n\t\tif (!expandedSet.value.has(parentId)) return false\n\t\tconst parent = all.find(n => n.id === parentId)\n\t\tparentId = parent?.parentId\n\t}\n\treturn true\n}\n\nconst visibleRows = computed(() =>\n\tflatData.value.filter(item => item.level === 0 || isVisible(item, flatData.value))\n)\n\nfunction toggleExpand(row: FlatNode) {\n\tif (expandedSet.value.has(row.id)) {\n\t\texpandedSet.value.delete(row.id)\n\t} else {\n\t\texpandedSet.value.add(row.id)\n\t}\n}\n\nfunction hasChildren(row: FlatNode) {\n\treturn flatData.value.some(item => item.parentId === row.id)\n}\n\nconst setClass = computed(() => {\n\tconst classes: string[] = []\n\tif (props.height === 'full') classes.push('height-full')\n\treturn classes\n})\n\nconst setTdClass = (column) => {\n\treturn computed(() => {\n\t\tconst classes: string[] = []\n\t\tif (column.type === 'action') classes.push('is-action')\n\t\treturn classes\n\t})\n}\n\nconst setStyle = computed(() => {\n\tconst obj: Record<string, string> = {}\n\n\tif (props.height && props.height !== 'full') {\n\t\tobj.height = isNaN(Number(props.height as string)) ? String(props.height) : `${props.height}em`\n\t}\n\n\treturn obj\n})\n</script>","<template>\n\t<div class=\"config\">\n\t <to-icon ref=\"configIcon\" value=\"config\" color=\"info\" mode=\"none\" link fillet=\"round\" @click=\"() => floatRef.value?.toggle(configIconRef.value)\" />\n\t <to-float ref=\"floatRef\" width=\"18\" :lazy=\"false\">\n\t <to-scroll padding=\"0.5\">\n\t\t<to-tree show-checkbox check-strictly expand check-on-click-node :data=\"configData\" value-text=\"label\" :checked-keys=\"checked\" @check-change=\"check\" @node-expand=\"flex\" @node-collapse=\"flex\" />\n\t </to-scroll>\n\t </to-float>\n\t</div>\n </template>\n \n <script setup lang=\"ts\">\n defineOptions({\n name: 'ToTableConfig',\n});\n import { ref, onMounted, watch } from 'vue';\n \n const props = defineProps({\n\tdata: { type: Array as () => any[], default: () => [] }\n });\n const emit = defineEmits(['change']);\n \n const checked = ref<string[]>([]);\n const configData = ref<any[]>([]);\n const configIconRef = ref();\n const floatRef = ref();\n \n function setConfigData() {\n\tconst data = JSON.parse(JSON.stringify(props.data));\n\tfunction setData(data: any[], path?: string[]) {\n\t data.forEach((dataItem, dataIndex) => {\n\t if (dataItem.type === 'selection' || dataItem.type === 'radio') {\n\t\tdataItem.label = '选择器';\n\t }\n\t if (dataItem.type === 'action') {\n\t\tdata.splice(dataIndex, 1);\n\t }\n\t dataItem.path = path ? path.concat(dataItem.label) : [dataItem.label];\n\t if (dataItem.children) {\n\t\tsetData(dataItem.children, dataItem.path);\n\t }\n\t });\n\t}\n\tsetData(data);\n\tconfigData.value = data;\n }\n \n function setChecked() {\n\tconst arr: string[] = [];\n\tfunction setData(data: any[]) {\n\t data.forEach((dataItem) => {\n\t if (dataItem.show !== false) {\n\t\tif (dataItem.type === 'selection') {\n\t\t arr.push('选择器');\n\t\t} else {\n\t\t arr.push(dataItem.label);\n\t\t}\n\t }\n\t if (dataItem.children) {\n\t\tsetData(dataItem.children);\n\t }\n\t });\n\t}\n\tsetData(props.data);\n\tchecked.value = arr;\n }\n \n function flex() {\n\tfloatRef.value?.set(configIconRef.value?.$el);\n }\n \n function check(checkedKeys: string[], checkedNodes: any, node: any, checkedFlag: boolean) {\n\tconst data = JSON.parse(JSON.stringify(props.data));\n\tfunction checkData(data: any[]) {\n\t data.forEach((dataItem) => {\n\t if (dataItem.type === 'selection') {\n\t\tdataItem.show = checkedKeys.includes('选择器');\n\t } else {\n\t\tdataItem.show = checkedKeys.includes(dataItem.label) || dataItem.type === 'action';\n\t }\n\t if (dataItem.children) {\n\t\tcheckData(dataItem.children);\n\t }\n\t });\n\t}\n\tfunction setChildrenHide(data: any[], setHide: boolean) {\n\t data.forEach((dataItem) => {\n\t if (setHide) {\n\t\tdataItem.show = false;\n\t\tchecked.value = checked.value.filter(item => item !== dataItem.label);\n\t }\n\t if (dataItem.children) {\n\t\tsetChildrenHide(dataItem.children, dataItem.label === node.label || setHide);\n\t }\n\t });\n\t}\n\tfunction setChildrenAndParentShow(data: any[], setShow: boolean) {\n\t data.forEach((dataItem) => {\n\t if (setShow || node.path.includes(dataItem.label)) {\n\t\tdataItem.show = true;\n\t\tif (!checked.value.includes(dataItem.label)) {\n\t\t checked.value.push(dataItem.label);\n\t\t}\n\t }\n\t if (dataItem.children) {\n\t\tsetChildrenAndParentShow(dataItem.children, dataItem.label === node.label || setShow);\n\t }\n\t });\n\t}\n\tcheckData(data);\n\tif (!checkedFlag) {\n\t setChildrenHide(data, false);\n\t checked.value = checked.value.filter(item => item !== node.label);\n\t} else {\n\t setChildrenAndParentShow(data, false);\n\t checked.value.push(node.label);\n\t}\n\temit('change', data);\n }\n \n onMounted(() => {\n\tsetConfigData();\n\tsetChecked();\n });\n watch(() => props.data, () => {\n\tsetConfigData();\n\tsetChecked();\n });\n </script>\n ","<template>\n\t<thead ref=\"row\">\n\t\t<tr v-for=\"(titem, tindex) in tableData\" :key=\"tindex\">\n\t\t\t<template v-for=\"(item, index) in titem\">\n\t\t\t\t<template v-if=\"showColumn(item, index)\">\n\t\t\t\t\t<th v-if=\"ToTable.isNeedSelectAll && item.type === 'selection'\" :key=\"index + '_selection'\" class=\"selection\" :rowspan=\"item.rowspan || 1\" :colspan=\"item.colspan || 1\" :class=\"[item.sortable === true ? 'sort' : '', 'checkbox']\">\n\t\t\t\t\t\t<to-checkbox :value=\"ToTable.isSelectAll && ToTable.iData.length > 0\" @change=\"checkAllChange\" />\n\t\t\t\t\t</th>\n\t\t\t\t\t<th v-else-if=\"item.type === 'radio'\" :key=\"index + '_radio'\" class=\"radio\" :rowspan=\"item.rowspan || 1\" :colspan=\"item.colspan || 1\" :class=\"[item.sortable === true ? 'sort' : '', 'index']\">\n\t\t\t\t\t\t{{ t('to.common.select') }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th v-else-if=\"item.type === 'index'\" :key=\"index + '_index'\" :rowspan=\"item.rowspan || 1\" :colspan=\"item.colspan || 1\" :class=\"[item.sortable === true ? 'sort' : '', 'index']\" @click=\"($event) => ToTable.handleTableHeadCellClick(item, index, $event)\">\n\t\t\t\t\t\t<template v-if=\"item.sortable === true\">\n\t\t\t\t\t\t\t<to-icon v-if=\"item.orderType == 'asc'\" value=\"fold\" />\n\t\t\t\t\t\t\t<to-icon v-if=\"item.orderType == 'desc'\" value=\"unfold\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<span>{{ ToTable.indexColumnName || item.label }}</span>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th v-else-if=\"item.type === 'action' && configurable && ToTable.hasAction\" :key=\"index + '_action'\" :rowspan=\"item.rowspan || 1\" :colspan=\"item.colspan || 1\" class=\"configTh action\">\n\t\t\t\t\t\t<TableConfig :data=\"ToTable.columns\" @change=\"configChange\" />\n\t\t\t\t\t</th>\n\t\t\t\t\t<th v-else-if=\"!(item.type === 'action' && ToTable.contextAction)\" :key=\"index + '_other'\" :rowspan=\"item.rowspan || 1\" :colspan=\"item.colspan || 1\" :class=\"[item.sortable === true ? 'sort' : '', item.type === 'action' ? 'action' : '']\" @click=\"($event) => ToTable.handleTableHeadCellClick(item, index, $event)\">\n\t\t\t\t\t\t<span v-if=\"item.sortable === true\" class=\"to-table-sorticon\" :class=\"`type-${item.orderType}`\">\n\t\t\t\t\t\t\t<to-icon value=\"fold\" type=\"fill\" />\n\t\t\t\t\t\t\t<to-icon value=\"unfold\" type=\"fill\" />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<slot :name=\"item.prop + '_th'\" :column=\"item\" :index=\"index\">\n\t\t\t\t\t\t\t<span>{{ item.label }}</span>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</th>\n\t\t\t\t</template>\n\t\t\t</template>\n\t\t</tr>\n\t</thead>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject } from 'vue';\nimport TableConfig from './table-config.vue';\ndefineOptions({\n name: 'ToTableHead',\n});\n\n// 简单 t 占位,后续可替换为你的 i18n 实现\nconst t = (str: string) => str;\n\nconst props = defineProps({\n\tname: { type: String, default: '' },\n\tstart: { type: Number, default: null },\n\tend: { type: Number, default: null },\n\tdata: { type: Array as () => any[], default: () => [] },\n\tconfigurable: Boolean\n});\n\nconst emit = defineEmits(['select-all', 'column-change']);\n\nconst ToTable = inject<any>('ToTable');\n\nconst showColumn = (column: any, columnIndex: number) => {\n\tconsole.log(columnIndex);\n\tif (column.show === false) return false;\n\tif ([\"selection\", \"radio\", \"action\"].includes(column.type)) return true;\n\tif (ToTable.showColumns || ToTable.showColumns === 0) {\n\t\tif (!isNaN(ToTable.showColumns)) {\n\t\t\tconst index = ToTable.normalColumn.findIndex((item: any) => column.prop === item.prop);\n\t\t\treturn index !== -1 && index < Number(ToTable.showColumns);\n\t\t} else {\n\t\t\treturn ToTable.showColumns.split(',').includes(column.prop);\n\t\t}\n\t}\n\treturn true;\n};\n\nfunction countLeafNodes(tree: any[]): number {\n\tif (!tree || tree.length === 0) return 0;\n\tlet leafCount = 0;\n\tfor (let i = 0; i < tree.length; i++) {\n\t\tif (tree[i].show !== false) {\n\t\t\tif (!tree[i].children || tree[i].children.length === 0 || tree[i].children.every((child: any) => child.show === false)) {\n\t\t\t\tleafCount += 1;\n\t\t\t} else {\n\t\t\t\tleafCount += countLeafNodes(tree[i].children);\n\t\t\t}\n\t\t}\n\t}\n\treturn leafCount;\n}\n\nconst tableData = computed(() => {\n\tconst result: any[] = [];\n\tlet maxDepth = 0;\n\tfunction calculateMaxDepth(heads: any[], depth = 1) {\n\t\theads.forEach(head => {\n\t\t\tif (head.children) {\n\t\t\t\tcalculateMaxDepth(head.children, depth + 1);\n\t\t\t}\n\t\t});\n\t\tmaxDepth = Math.max(maxDepth, depth);\n\t}\n\tcalculateMaxDepth(props.data);\n\tfunction generateTableData(heads: any[], depth = 0, rowIndex = 0) {\n\t\tif (!result[rowIndex]) result[rowIndex] = [];\n\t\theads.forEach((head: any) => {\n\t\t\tconst cell = Object.assign({}, head, { rowspan: 1, colspan: 1 });\n\t\t\tif (head.children && !head.children.every((child: any) => child.show === false)) {\n\t\t\t\tcell.colspan = countLeafNodes(head.children);\n\t\t\t\tresult[rowIndex].push(cell);\n\t\t\t\tgenerateTableData(head.children, depth + 1, rowIndex + 1);\n\t\t\t} else {\n\t\t\t\tcell.rowspan = maxDepth - depth;\n\t\t\t\tresult[rowIndex].push(cell);\n\t\t\t}\n\t\t});\n\t}\n\tgenerateTableData(JSON.parse(JSON.stringify(props.data)));\n\treturn result;\n});\n\nfunction checkAllChange(checked: boolean) {\n\temit('select-all', checked);\n}\nfunction configChange(data: any) {\n\temit('column-change', data);\n}\n</script>\n","<template>\n\t<tbody ref=\"tbody\" @click=\"clickHandle\" @mouseover=\"ToTable.handleTableMouseover\" @mouseout=\"ToTable.handleTableMouseout\" @mousedown=\"ToTable.handleTableMousedown\" @touchstart=\"ToTable.handleTableMousedown\" @touchmove=\"ToTable.handleTableMousemove\" @mouseup=\"ToTable.handleTableMouseup\" @touchend=\"ToTable.handleTableMouseup\" @dblclick=\"dbclickHandle\">\n\t\t<tr v-for=\"(dataItem, dataIndex) in data\" v-show=\"dataItem._show\" :key=\"dataIndex\" :class=\"setTrClass(dataItem)\" :style=\"setTrStyle\" :data-index=\"dataIndex\" @contextmenu.prevent=\"($event) => ToTable.handleTableRowRightClick(dataItem, dataIndex, $event)\">\n\t\t\t<td v-if=\"ToTable.type === 'v'\">\n\t\t\t\t<slot name=\"v\" :row=\"dataItem\" :index=\"dataIndex\">\n\t\t\t\t\t<!-- ... 保持原有结构 ... -->\n\t\t\t\t</slot>\n\t\t\t</td>\n\t\t\t<template v-for=\"(column, columnIndex) in tableData\" v-else>\n\t\t\t\t<template v-if=\"showColumn(column, columnIndex)\">\n\t\t\t\t\t<!-- ... 保持原有结构 ... -->\n\t\t\t\t</template>\n\t\t\t</template>\n\t\t</tr>\n\t</tbody>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: 'ToTableBody',\n});\nimport { computed, inject, ref } from 'vue';\n\nconst props = defineProps({\n\tcolumnData: { type: Array as () => any[], default: () => [] },\n\tdata: { type: Array as () => any[], default: () => [] }\n});\n\nconst ToTable = inject<any>('ToTable');\n\nconst isClick = ref(false);\nconst isDblClick = ref(false);\nconst clickTimer = ref<number | null>(null);\n\nconst showColumn = (column: any, columnIndex: number) => {\n\tconsole.log(columnIndex);\n\tif (column.show === false) return false;\n\tif (ToTable.type === 'v') {\n\t\tif ([\"key\", \"desc\", \"icon\", \"state\", \"selection\", \"radio\", \"action\"].includes(column.type)) return false;\n\t} else {\n\t\tif ([\"selection\", \"radio\", \"action\"].includes(column.type)) return true;\n\t}\n\tif (ToTable.showColumns) {\n\t\tif (!isNaN(ToTable.showColumns)) {\n\t\t\tconst index = ToTable.normalColumn.findIndex((item: any) => column.prop === item.prop);\n\t\t\treturn index !== -1 && index < Number(ToTable.showColumns);\n\t\t} else {\n\t\t\treturn ToTable.showColumns.split(',').includes(column.prop);\n\t\t}\n\t}\n\treturn true;\n};\n\nconst setClass = (column: any) => {\n\tconst arr: string[] = [];\n\tif (column.type === 'key') arr.push('key');\n\tif (column.type === 'action') arr.push('action');\n\tif (column.type === 'edit') arr.push('edit');\n\tif (column.type === 'desc') arr.push('desc');\n\tif (column.wrap) arr.push('wrap');\n\tif (column.className) arr.push(...column.className.split(','));\n\treturn arr;\n};\nconsole.log(setClass);\nconst setTrClass = (dataItem: any) => {\n\tconst arr: string[] = [];\n\tif (dataItem._on) arr.push('on');\n\tif (dataItem._hover) arr.push('hover');\n\tif (dataItem._active) arr.push('active');\n\tif (dataItem._className) arr.push(...dataItem._className.split(','));\n\treturn arr;\n};\n\nconst setTrStyle = computed(() => {\n\tconst obj: Record<string, string> = {};\n\tif (ToTable.space) obj.marginTop = `${ToTable.space}em`;\n\treturn obj;\n});\n\nconst tableData = computed(() => {\n\tconst result: any[] = [];\n\tfunction traverse(headers: any[]) {\n\t\theaders.forEach(header => {\n\t\t\tif (header.children && !header.children.every((child: any) => child.show === false)) {\n\t\t\t\ttraverse(header.children);\n\t\t\t} else {\n\t\t\t\tresult.push(header);\n\t\t\t}\n\t\t});\n\t}\n\ttraverse(props.columnData);\n\treturn result;\n});\n\nfunction toggleFold(item: any, index: number) {\n\tif (!item._showChild) {\n\t\titem._showChild = true;\n\t} else {\n\t\titem._showChild = false;\n\t}\n\tfor (let i = index + 1; i < props.data.length; i++) {\n\t\tconst el = props.data[i];\n\t\tif (item._showChild) {\n\t\t\tif (el._level === item._level + 1) {\n\t\t\t\tel._show = true;\n\t\t\t} else if (el._level <= item._level) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else {\n\t\t\tif (el._level === item._level + 1) {\n\t\t\t\thide(el, i);\n\t\t\t} else if (el._level <= item._level) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tfunction hide(tr: any, index: number) {\n\t\ttr._show = false;\n\t\ttr._showChild = false;\n\t\tif (tr._hasChild) {\n\t\t\tfor (let i = index + 1; i < props.data.length; i++) {\n\t\t\t\tconst el = props.data[i];\n\t\t\t\tif (el._level === tr._level + 1) {\n\t\t\t\t\thide(el, i);\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tToTable.adjust();\n}\nconsole.log(toggleFold);\nfunction clickHandle(event: Event) {\n\tconst path = (event as any).composedPath ? (event as any).composedPath() : (event as any).path;\n\tif (ToTable.$listeners && (ToTable.$listeners['row-dblclick'] || ToTable.$listeners['cell-dblclick'])) {\n\t\tclickTimer.value = window.setTimeout(() => {\n\t\t\tif (!isDblClick.value) {\n\t\t\t\tisClick.value = true;\n\t\t\t\tToTable.handleTableClick(event, path);\n\t\t\t\tconst timer = window.setTimeout(() => {\n\t\t\t\t\tisClick.value = false;\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t}, 300);\n\t\t\t} else {\n\t\t\t\tisDblClick.value = false;\n\t\t\t}\n\t\t\tif (clickTimer.value) clearTimeout(clickTimer.value);\n\t\t}, 300);\n\t} else {\n\t\tToTable.handleTableClick(event);\n\t}\n}\n\nfunction dbclickHandle(event: Event) {\n\tif (!isClick.value) {\n\t\tisDblClick.value = true;\n\t\tToTable.handleTableDblClick(event);\n\t} else {\n\t\tisClick.value = false;\n\t}\n}\n</script>\n","import Table from './src/table.vue';\nimport TableHead from './src/table-head.vue';\nimport TableBody from './src/table-body.vue';\nimport TableConfig from './src/table-config.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToTable: SFCWithInstall<typeof Table> = withInstall(Table);\nexport const ToTableHead: SFCWithInstall<typeof TableHead> = withInstall(TableHead);\nexport const ToTableBody: SFCWithInstall<typeof TableBody> = withInstall(TableBody);\nexport const ToTableConfig: SFCWithInstall<typeof TableConfig> = withInstall(TableConfig);\n\nexport * from './src/instance';","import type { Directive } from 'vue';\n\nconst dis: Directive<HTMLElement, boolean> = {\n mounted(el, binding) {\n updateClass(el, binding);\n },\n updated(el, binding) {\n updateClass(el, binding);\n },\n};\n\nfunction updateClass(el: HTMLElement, binding: any) {\n queueMicrotask(() => {\n const { value, modifiers } = binding;\n\n if (value) {\n el.classList.add('to-dis');\n if (modifiers.opacity) {\n el.classList.add('type-opacity');\n } else {\n el.classList.remove('type-opacity');\n }\n if (modifiers.select) {\n el.classList.add('type-select');\n } else {\n el.classList.remove('type-select');\n }\n } else {\n el.classList.remove('to-dis');\n el.classList.remove('type-opacity');\n }\n });\n}\n\nexport { dis };\n","import { DirectiveBinding, ObjectDirective } from 'vue';\n\nfunction setFontSize(el: HTMLElement, binding: DirectiveBinding) {\n const val = binding.value;\n if (val) {\n if (['xxs', 'xs', 's', 'm', 'l', 'xl', 'xxl', 'xxxl'].includes(val)) {\n el.classList.add(`to-size-${val}`);\n } else if (!isNaN(Number(val))) {\n el.style.fontSize = `${val * 100}%`;\n } else {\n el.style.fontSize = val;\n }\n }\n}\n\nconst sizeDirective: ObjectDirective = {\n mounted(el, binding) {\n setFontSize(el, binding);\n },\n updated(el, binding) {\n setFontSize(el, binding);\n },\n};\n\nexport { sizeDirective };\n","import type { App } from 'vue';\nimport { dis } from './dis';\nimport { sizeDirective } from './size';\n\n// 定义所有指令\nconst directives = {\n dis,\n size: sizeDirective,\n};\n\n// 安装函数\nconst install = (app: App) => {\n // 注册所有指令\n Object.entries(directives).forEach(([name, directive]) => {\n app.directive(name, directive);\n });\n};\n\nexport default {\n install,\n};\n\nexport { dis, sizeDirective };\n","/**\n * TouchVue UI 组件解析器\n * 用于支持 unplugin-auto-import 和 unplugin-vue-components 插件\n */\n\nimport { existsSync } from 'fs';\nimport { resolve } from 'path';\n\n// 组件库名称\nconst LIBRARY_NAME = '@touchvue/ui';\n// 组件前缀\nconst PREFIX = 'To';\n\n/**\n * 检查组件名称是否符合规则\n * @param name 组件名称\n * @returns 是否符合规则\n */\nconst isValidComponentName = (name: string): boolean => {\n return name.startsWith(PREFIX);\n};\n\n/**\n * 获取组件名称(不带前缀)\n * @param name 组件名称\n * @returns 不带前缀的组件名称\n */\nconst getComponentName = (name: string): string => {\n return name.slice(PREFIX.length);\n};\n\nconst getSideEffectsPath = (name: string, prefix: string = LIBRARY_NAME): string | false => {\n const componentName = getComponentName(name).toLowerCase();\n const cssPath = `${prefix}/theme/components/${componentName}/index.css`;\n \n // 在开发环境下检查文件是否存在\n if (process.env.NODE_ENV === 'development') {\n try {\n // 尝试解析本地主题文件路径\n const localThemePath = resolve(__dirname, `../themes/components/${componentName}/index.less`);\n if (!existsSync(localThemePath)) {\n console.warn(`[TouchVue Resolver] 组件 ${name} 的样式文件不存在: ${localThemePath}`);\n // 返回 false 表示不加载任何样式文件\n return false;\n }\n } catch (error) {\n console.warn(`[TouchVue Resolver] 检查样式文件时出错:`, error);\n return false;\n }\n }\n \n return cssPath;\n};\n\n/**\n * 组件解析器\n * 用于 unplugin-vue-components 插件\n */\nexport function TouchVueResolver() {\n return {\n type: 'component',\n resolve: (name: string) => {\n if (!isValidComponentName(name)) return;\n \n const sideEffects = getSideEffectsPath(name);\n const result: any = {\n name,\n from: LIBRARY_NAME,\n };\n \n // 只有当样式文件存在时才添加 sideEffects\n if (sideEffects !== false) {\n result.sideEffects = sideEffects;\n }\n \n return result;\n },\n };\n}\n\n/**\n * 默认导出所有解析器\n */\nexport default {\n TouchVueResolver,\n};\n","import type { App } from 'vue';\nimport { ToButton } from './button';\nimport { ToIcon } from './icon';\nimport { ToArticle } from './article';\nimport { ToBox } from './box';\nimport { ToSelect } from './select';\nimport { ToCalendar } from './calendar';\nimport { ToSpace } from './space';\nimport { ToStep } from './step';\nimport { ToForm } from './form';\nimport { ToFormItem } from './form';\nimport { ToGrid } from './grid';\nimport { ToGridItem } from './grid';\nimport { ToHeader } from './header';\nimport { ToInput } from './input';\nimport { ToLine } from './line';\nimport { ToMsg } from './msg';\nimport { ToPadding } from './padding';\nimport { ToPage } from './page';\nimport { ToCard } from './card';\nimport { ToCheckbox } from './checkbox';\nimport { ToDatepikcer } from './datepicker';\nimport { ToSwitch } from './switch';\nimport { ToTab, ToTabItem } from './tab';\nimport { ToTable, ToTableHead, ToTableBody, ToTableConfig } from './table';\n\nimport InstallDirective from '../directives';\n\n// 导出解析器\nexport * from './resolver';\n\nimport { setRatio, getEm, setMedia, getMedia } from '../utils';\n\n// 定义配置项接口\nexport interface TouchVueUIOptions {\n ratio?: {\n base?: {\n pc?: number;\n };\n };\n}\n\n// 全局默认配置\nexport const defaultOptions: TouchVueUIOptions = {};\n\n// 全局配置\nexport let globalOptions = { ...defaultOptions };\n\n// 获取全局配置\nexport const getGlobalOptions = (): TouchVueUIOptions => {\n return globalOptions;\n};\n\nconst components = [\n ToButton,\n ToIcon,\n ToArticle,\n ToBox,\n ToSelect,\n ToCalendar,\n ToSpace,\n ToStep,\n ToForm,\n ToFormItem,\n ToGrid,\n ToGridItem,\n ToHeader,\n ToInput,\n ToLine,\n ToMsg,\n ToPadding,\n ToPage,\n ToCard,\n ToCheckbox,\n ToDatepikcer,\n ToSwitch,\n ToTab,\n ToTabItem,\n ToTable,\n ToTableHead,\n ToTableBody,\n ToTableConfig,\n];\n\nconst install = (app: App, options: TouchVueUIOptions = {}) => {\n // 合并配置项\n globalOptions = {\n ...defaultOptions,\n ...options,\n };\n\n // 将配置注入到应用实例中,可以通过app.config.globalProperties.$TOUCHVUE_CONFIG访问\n // 工具\n app.config.globalProperties.$hello = () => console.log('Hello from plugin!');\n app.config.globalProperties.$getEm = getEm;\n app.config.globalProperties.$setMedia = setMedia;\n app.config.globalProperties.$getMedia = getMedia;\n\n const media = getMedia();\n app.config.globalProperties.$phone = media === 'phone';\n app.config.globalProperties.$pad = media === 'pad';\n app.config.globalProperties.$pc = media === 'pc';\n\n // 初始化\n setMedia(options);\n setRatio(options);\n\n // 注册所有组件\n components.forEach(component => {\n app.use(component);\n });\n\n InstallDirective.install(app);\n};\n\nexport default {\n install,\n};\n\nexport {\n ToButton,\n ToIcon,\n ToArticle,\n ToBox,\n ToSelect,\n ToCalendar,\n ToSpace,\n ToStep,\n ToForm,\n ToFormItem,\n ToGrid,\n ToGridItem,\n ToHeader,\n ToInput,\n ToLine,\n ToMsg,\n ToPadding,\n ToPage,\n ToCard,\n ToCheckbox,\n ToDatepikcer,\n ToSwitch,\n ToTab,\n ToTabItem,\n ToTable,\n ToTableHead,\n ToTableBody,\n ToTableConfig,\n};\n\nexport * from '../directives';\n\nexport * from './button';\nexport * from './icon';\nexport * from './article';\nexport * from './box';\nexport * from './select';\nexport * from './calendar';\nexport * from './space';\nexport * from './form';\nexport * from './grid';\nexport * from './header';\nexport * from './input';\nexport * from './line';\nexport * from './msg';\nexport * from './padding';\nexport * from './page';\nexport * from './card';\nexport * from './checkbox';\nexport * from './datepicker';\nexport * from './switch';\nexport * from './tab';\n"],"names":["_createElementBlock","_normalizeClass","icon","_createBlock","_createElementVNode","_hoisted_1","_renderSlot","ua","_openBlock","$slots","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_Teleport","_unref","_Fragment","_renderList","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_normalizeStyle","_createVNode","_createTextVNode","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_createCommentVNode","_resolveDynamicComponent","title","htmlContent","content","detail","cancelButtonText","confirmButtonText","label","data","modelValue","_mergeProps","deletable","_withModifiers","columns","index","_vShow","install"],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { getCurrentInstance } from 'vue';
2
+
3
+ const withInstall = (main, extra) => {
4
+ main.install = (app) => {
5
+ for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
6
+ app.component(comp.name, comp);
7
+ }
8
+ };
9
+ if (extra) {
10
+ for (const [key, comp] of Object.entries(extra)) {
11
+ main[key] = comp;
12
+ }
13
+ }
14
+ return main;
15
+ };
16
+ const withInstallFunction = (fn, name) => {
17
+ fn.install = (app) => {
18
+ fn._context = app;
19
+ app.config.globalProperties[name] = fn;
20
+ };
21
+ return fn;
22
+ };
23
+
24
+ const useGlobalConfig = () => {
25
+ const instance = getCurrentInstance();
26
+ if (!instance) {
27
+ console.warn("useGlobalConfig() \u53EA\u80FD\u5728setup()\u6216\u751F\u547D\u5468\u671F\u94A9\u5B50\u4E2D\u8C03\u7528");
28
+ return {};
29
+ }
30
+ return instance.appContext.config.globalProperties.$TOUCHVUE_CONFIG || {};
31
+ };
32
+ const getComponentConfig = (props, key) => {
33
+ var _a;
34
+ const globalConfig = useGlobalConfig();
35
+ return (_a = props[key]) != null ? _a : globalConfig[key];
36
+ };
37
+
38
+ const ua = navigator.userAgent.toLowerCase();
39
+ function setRatio(options = {}) {
40
+ var _a, _b, _c, _d, _e;
41
+ const ua2 = navigator.userAgent.toLowerCase();
42
+ const base = (_b = (_a = options == null ? void 0 : options.ratio) == null ? void 0 : _a.base) != null ? _b : {};
43
+ const baseSize = /iphone|android.*mobile|windows phone|ipod/i.test(ua2) ? (_c = base.phone) != null ? _c : 375 : /ipad|android(?!.*mobile)|tablet/i.test(ua2) ? (_d = base.pad) != null ? _d : 1100 : (_e = base.pc) != null ? _e : 1366;
44
+ const updateFontSize = () => {
45
+ const width = window.innerWidth || document.documentElement.clientWidth;
46
+ document.documentElement.style.fontSize = width / baseSize * 100 + "px";
47
+ };
48
+ updateFontSize();
49
+ window.addEventListener("resize", updateFontSize);
50
+ }
51
+ function getMedia(options = {}) {
52
+ const isMobile = /iphone|android.*mobile|windows phone|ipod/i.test(ua);
53
+ const isTablet = /ipad|android(?!.*mobile)|tablet/i.test(ua);
54
+ return isMobile ? "phone" : isTablet ? "pad" : "pc";
55
+ }
56
+ function setMedia(options = {}) {
57
+ const html = document.documentElement;
58
+ const classList = [];
59
+ if (/windows/i.test(ua)) {
60
+ classList.push("os-windows");
61
+ } else if (/macintosh|mac os x/i.test(ua)) {
62
+ classList.push("os-macos");
63
+ } else if (/android/i.test(ua)) {
64
+ classList.push("os-android");
65
+ } else if (/iphone|ipad|ipod/i.test(ua)) {
66
+ classList.push("os-ios");
67
+ }
68
+ const media = getMedia();
69
+ if (media === "pad") {
70
+ classList.push("media-pad");
71
+ } else if (media === "phone") {
72
+ classList.push("media-phone");
73
+ } else {
74
+ classList.push("media-pc");
75
+ }
76
+ html.className += " " + classList.join(" ");
77
+ }
78
+ function getEm() {
79
+ const el = document.createElement("div");
80
+ el.style.width = "1em";
81
+ el.style.height = "1em";
82
+ el.style.position = "absolute";
83
+ document.body.appendChild(el);
84
+ const size = el.getBoundingClientRect().height;
85
+ document.body.removeChild(el);
86
+ return size;
87
+ }
88
+
89
+ export { getComponentConfig, getEm, getMedia, setMedia, setRatio, useGlobalConfig, withInstall, withInstallFunction };
90
+ //# sourceMappingURL=index.js.map