@touchvue/ui 1.0.0-beta.50 → 1.0.0-beta.52

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 (136) hide show
  1. package/es/components/form/src/form.vue.d.ts +0 -3
  2. package/es/components/index.d.ts +3 -1
  3. package/es/components/input/src/input.vue.d.ts +1 -10
  4. package/es/components/rate/index.d.ts +4 -0
  5. package/es/components/rate/src/instance.d.ts +2 -0
  6. package/es/components/rate/src/rate.vue.d.ts +77 -0
  7. package/es/components/select/src/select.d.ts +0 -8
  8. package/es/components/select/src/select.vue.d.ts +0 -9
  9. package/es/components/switch/src/switch.vue.d.ts +3 -3
  10. package/es/components/tab/src/tab.d.ts +1 -1
  11. package/es/components/tab/src/tab.vue.d.ts +17 -4
  12. package/es/index.d.mjs +1 -0
  13. package/es/index.d.mjs.map +1 -1
  14. package/es/index.mjs +1 -0
  15. package/es/index.mjs.map +1 -1
  16. package/es/packages/components/cascader/src/cascader.vue2.mjs +1 -1
  17. package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
  18. package/es/packages/components/checkbox/src/Checkbox.vue2.mjs +1 -1
  19. package/es/packages/components/checkbox/src/Checkbox.vue2.mjs.map +1 -1
  20. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
  21. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +2 -3
  22. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
  23. package/es/packages/components/daterange/src/date-range.vue2.mjs +18 -6
  24. package/es/packages/components/daterange/src/date-range.vue2.mjs.map +1 -1
  25. package/es/packages/components/form/src/form.vue2.mjs +1 -2
  26. package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
  27. package/es/packages/components/index.d.mjs +1 -0
  28. package/es/packages/components/index.d.mjs.map +1 -1
  29. package/es/packages/components/index.mjs +1 -0
  30. package/es/packages/components/index.mjs.map +1 -1
  31. package/es/packages/components/input/src/input.vue2.mjs +63 -62
  32. package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
  33. package/es/packages/components/page/src/page.vue2.mjs +9 -4
  34. package/es/packages/components/page/src/page.vue2.mjs.map +1 -1
  35. package/es/packages/components/rate/index.d.mjs +2 -0
  36. package/es/packages/components/rate/index.d.mjs.map +1 -0
  37. package/es/packages/components/rate/index.mjs +7 -0
  38. package/es/packages/components/rate/index.mjs.map +1 -0
  39. package/es/packages/components/rate/src/instance.d.mjs +2 -0
  40. package/es/packages/components/rate/src/instance.d.mjs.map +1 -0
  41. package/es/packages/components/rate/src/instance.mjs +2 -0
  42. package/es/packages/components/rate/src/instance.mjs.map +1 -0
  43. package/es/packages/components/rate/src/rate.vue.mjs +7 -0
  44. package/es/packages/components/rate/src/rate.vue.mjs.map +1 -0
  45. package/es/packages/components/rate/src/rate.vue2.mjs +153 -0
  46. package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -0
  47. package/es/packages/components/segment/src/segment.vue.mjs +1 -4
  48. package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
  49. package/es/packages/components/select/src/hooks/use-select-class-style.mjs +1 -1
  50. package/es/packages/components/select/src/hooks/use-select-class-style.mjs.map +1 -1
  51. package/es/packages/components/select/src/select.mjs +0 -8
  52. package/es/packages/components/select/src/select.mjs.map +1 -1
  53. package/es/packages/components/select/src/select.vue2.mjs +11 -2
  54. package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
  55. package/es/packages/components/switch/src/switch.vue2.mjs +4 -4
  56. package/es/packages/components/switch/src/switch.vue2.mjs.map +1 -1
  57. package/es/packages/components/tab/src/tab.vue2.mjs +378 -47
  58. package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
  59. package/es/packages/components/transfer/src/transfer.vue2.mjs.map +1 -1
  60. package/es/packages/components/upload/src/upload.vue2.mjs +2 -2
  61. package/es/packages/components/upload/src/upload.vue2.mjs.map +1 -1
  62. package/es/packages/utils/disabledArea.mjs +2 -2
  63. package/es/packages/utils/disabledArea.mjs.map +1 -1
  64. package/es/packages/utils/validate.mjs +18 -11
  65. package/es/packages/utils/validate.mjs.map +1 -1
  66. package/global.d.ts +1 -0
  67. package/lib/components/form/src/form.vue.d.ts +0 -3
  68. package/lib/components/index.d.ts +3 -1
  69. package/lib/components/input/src/input.vue.d.ts +1 -10
  70. package/lib/components/rate/index.d.ts +4 -0
  71. package/lib/components/rate/src/instance.d.ts +2 -0
  72. package/lib/components/rate/src/rate.vue.d.ts +77 -0
  73. package/lib/components/select/src/select.d.ts +0 -8
  74. package/lib/components/select/src/select.vue.d.ts +0 -9
  75. package/lib/components/switch/src/switch.vue.d.ts +3 -3
  76. package/lib/components/tab/src/tab.d.ts +1 -1
  77. package/lib/components/tab/src/tab.vue.d.ts +17 -4
  78. package/lib/index.d.js +8 -6
  79. package/lib/index.d.js.map +1 -1
  80. package/lib/index.js +13 -11
  81. package/lib/index.js.map +1 -1
  82. package/lib/packages/components/cascader/src/cascader.vue2.js +1 -1
  83. package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
  84. package/lib/packages/components/checkbox/src/Checkbox.vue2.js +1 -1
  85. package/lib/packages/components/checkbox/src/Checkbox.vue2.js.map +1 -1
  86. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
  87. package/lib/packages/components/datepicker/src/DatePicker.vue2.js +2 -3
  88. package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
  89. package/lib/packages/components/daterange/src/date-range.vue2.js +18 -6
  90. package/lib/packages/components/daterange/src/date-range.vue2.js.map +1 -1
  91. package/lib/packages/components/form/src/form.vue2.js +1 -2
  92. package/lib/packages/components/form/src/form.vue2.js.map +1 -1
  93. package/lib/packages/components/index.d.js +2 -0
  94. package/lib/packages/components/index.d.js.map +1 -1
  95. package/lib/packages/components/index.js +2 -0
  96. package/lib/packages/components/index.js.map +1 -1
  97. package/lib/packages/components/input/src/input.vue2.js +63 -62
  98. package/lib/packages/components/input/src/input.vue2.js.map +1 -1
  99. package/lib/packages/components/page/src/page.vue2.js +9 -4
  100. package/lib/packages/components/page/src/page.vue2.js.map +1 -1
  101. package/lib/packages/components/rate/index.d.js +3 -0
  102. package/lib/packages/components/rate/index.d.js.map +1 -0
  103. package/lib/packages/components/rate/index.js +9 -0
  104. package/lib/packages/components/rate/index.js.map +1 -0
  105. package/lib/packages/components/rate/src/instance.d.js +3 -0
  106. package/lib/packages/components/rate/src/instance.d.js.map +1 -0
  107. package/lib/packages/components/rate/src/instance.js +3 -0
  108. package/lib/packages/components/rate/src/instance.js.map +1 -0
  109. package/lib/packages/components/rate/src/rate.vue.js +11 -0
  110. package/lib/packages/components/rate/src/rate.vue.js.map +1 -0
  111. package/lib/packages/components/rate/src/rate.vue2.js +157 -0
  112. package/lib/packages/components/rate/src/rate.vue2.js.map +1 -0
  113. package/lib/packages/components/segment/src/segment.vue.js +1 -4
  114. package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
  115. package/lib/packages/components/select/src/hooks/use-select-class-style.js +1 -1
  116. package/lib/packages/components/select/src/hooks/use-select-class-style.js.map +1 -1
  117. package/lib/packages/components/select/src/select.js +0 -8
  118. package/lib/packages/components/select/src/select.js.map +1 -1
  119. package/lib/packages/components/select/src/select.vue2.js +11 -2
  120. package/lib/packages/components/select/src/select.vue2.js.map +1 -1
  121. package/lib/packages/components/switch/src/switch.vue2.js +4 -4
  122. package/lib/packages/components/switch/src/switch.vue2.js.map +1 -1
  123. package/lib/packages/components/tab/src/tab.vue2.js +377 -46
  124. package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
  125. package/lib/packages/components/transfer/src/transfer.vue2.js.map +1 -1
  126. package/lib/packages/components/upload/src/upload.vue2.js +2 -2
  127. package/lib/packages/components/upload/src/upload.vue2.js.map +1 -1
  128. package/lib/packages/utils/disabledArea.js +2 -2
  129. package/lib/packages/utils/disabledArea.js.map +1 -1
  130. package/lib/packages/utils/validate.js +24 -17
  131. package/lib/packages/utils/validate.js.map +1 -1
  132. package/package.json +1 -1
  133. package/theme/components/index.css +326 -122
  134. package/theme/index.css +326 -122
  135. package/theme/skin/default.css +326 -122
  136. package/types/global.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"validate.mjs","sources":["../../../../packages/utils/validate.ts"],"sourcesContent":["import { createVNode, render, nextTick, type ComponentPublicInstance } from 'vue'\ntype VueInstance = ComponentPublicInstance\nimport { ToTooltip, $tip } from '@touchvue/components'\nimport { hasClass, queryVm } from './dom'\nimport { t } from '@touchvue/locale'\n\ninterface ValidationRule {\n\trule: RegExp\n\tdesc: string\n\tremark?: string\n}\n\ninterface Regs {\n\t[key: string]: ValidationRule\n}\nconst regs: Regs = {\n\t// 基础判断\n\ten: {\n\t\trule: /^[A-Za-z]+$/,\n\t\tdesc: t('to.validate.desc.en')\n\t},\n\t'en-lower': {\n\t\trule: /^[a-z]+$/,\n\t\tdesc: t('to.validate.desc.enLower')\n\t},\n\t'en-upper': {\n\t\trule: /^[A-Z]+$/,\n\t\tdesc: t('to.validate.desc.enUpper')\n\t},\n\t'en-none': {\n\t\trule: /^[^A-Za-z]*$/,\n\t\tdesc: t('to.validate.desc.enNone')\n\t},\n\tcn: {\n\t\trule: /^(?:[\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29]|[\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0])+$/,\n\t\tdesc: t('to.validate.desc.cn')\n\t},\n\tnumber: {\n\t\trule: /^[-+]?([1-9][0-9]*|0)(\\.[0-9]+)?$/,\n\t\tdesc: t('to.validate.desc.number')\n\t},\n\tinteger: {\n\t\trule: /^-?[0-9]\\d*$/,\n\t\tdesc: t('to.validate.desc.integer')\n\t},\n\t'integer-p': {\n\t\trule: /^\\+?[1-9]\\d*$/,\n\t\tdesc: t('to.validate.desc.integerP')\n\t},\n\t'integer-n': {\n\t\trule: /^-[1-9]\\d*$/,\n\t\tdesc: t('to.validate.desc.integerN')\n\t},\n\tnature: {\n\t\trule: /^\\d+$/,\n\t\tdesc: t('to.validate.desc.nature')\n\t},\n\tdate: {\n\t\trule: /^\\d{4}(-)(1[0-2]|0?\\d)\\1([0-2]\\d|\\d|30|31)$/,\n\t\tdesc: t('to.validate.desc.date')\n\t},\n\ttime: {\n\t\trule: /^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/,\n\t\tdesc: t('to.validate.desc.time')\n\t},\n\t'time-12': {\n\t\trule: /^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/,\n\t\tdesc: t('to.validate.desc.time12')\n\t},\n\t// 基本数据格式\n\tmoney: {\n\t\trule: /^-?\\d+(,\\d{3})*(\\.\\d{1,2})?$/,\n\t\tdesc: t('to.validate.desc.money')\n\t},\n\tip: {\n\t\trule: /^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]).){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])(?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/,\n\t\tdesc: t('to.validate.desc.ip')\n\t},\n\t'ip-v6': {\n\t\trule: /^(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))|\\[(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))\\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/i,\n\t\tdesc: t('to.validate.desc.ipV6')\n\t},\n\tpassword: {\n\t\trule: /^\\S*(?=\\S{6,})(?=\\S*\\d)(?=\\S*[A-Z])(?=\\S*[a-z])(?=\\S*[!@#$%^&*? ])\\S*$/,\n\t\tdesc: t('to.validate.desc.password'),\n\t\tremark: t('to.validate.remark.password')\n\t},\n\tusername: {\n\t\trule: /^[a-zA-Z0-9_-]{4,16}$/,\n\t\tdesc: t('to.validate.desc.username'),\n\t\tremark: t('to.validate.remark.username')\n\t},\n\t// 用户信息\n\tname: {\n\t\trule: /^([\\u4e00-\\u9fa5·]{2,16}|[a-zA-Z.\\s]{1,20})$/,\n\t\tdesc: t('to.validate.desc.name')\n\t},\n\t'name-cn': {\n\t\trule: /^(?:[\\u4e00-\\u9fa5·]{2,16})$/,\n\t\tdesc: t('to.validate.desc.nameCn')\n\t},\n\t'name-en': {\n\t\trule: /(^[a-zA-Z]{1}[a-zA-Z\\s]{0,20}[a-zA-Z]{1}$)/,\n\t\tdesc: t('to.validate.desc.nameEn')\n\t},\n\temail: {\n\t\trule: /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n\t\tdesc: t('to.validate.desc.email')\n\t},\n\tqq: {\n\t\trule: /^[1-9][0-9]{4,10}$/,\n\t\tdesc: t('to.validate.desc.qq')\n\t},\n\twechat: {\n\t\trule: /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/,\n\t\tdesc: t('to.validate.desc.wechat')\n\t},\n\tweb: {\n\t\trule: /^(((ht|f)tps?):\\/\\/)?[\\w-]+(\\.[\\w-]+)+([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?$/,\n\t\tdesc: t('to.validate.desc.web')\n\t},\n\tuscc: {\n\t\trule: /^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/,\n\t\tdesc: t('to.validate.desc.uscc')\n\t},\n\tbank: {\n\t\trule: /^[1-9]\\d{9,29}$/,\n\t\tdesc: t('to.validate.desc.bank')\n\t},\n\tphone: {\n\t\trule: /^1[3456789]\\d{9}$/,\n\t\tdesc: t('to.validate.desc.phone')\n\t},\n\ttelphone: {\n\t\trule: /^\\d{3}-\\d{8}$|^\\d{4}-\\d{7,8}$/,\n\t\tdesc: t('to.validate.desc.telphone')\n\t},\n\tid: {\n\t\trule: /^[1-9]\\d{5}(?:18|19|20)\\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\\d|30|31)\\d{3}[\\dXx]$/,\n\t\tdesc: t('to.validate.desc.id')\n\t},\n\tpassport: {\n\t\trule: /(^[EeKkGgDdSsPpHh]\\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\\d{7}$)/,\n\t\tdesc: t('to.validate.desc.passport')\n\t},\n\tmac: {\n\t\trule: /^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i,\n\t\tdesc: t('to.validate.desc.mac')\n\t}\n}\n\n// 判断是否在滚动条以内\nfunction isHideByScroller(node) {\n\tconst el = node\n\twhile (node && !hasClass(node, 'to-scroll') && node.nodeName !== 'BODY') {\n\t\tnode = (node as VueInstance & { __vueParentComponent?: any; __vue_app__?: any }).__vueParentComponent || node.parentNode\n\t}\n\tif (node && node.nodeName !== 'BODY') {\n\t\tconst scroller = node\n\t\treturn el.getBoundingClientRect().top > scroller.getBoundingClientRect().top + scroller.offsetHeight || el.getBoundingClientRect().top + el.offsetHeight <= scroller.getBoundingClientRect().top\n\t} else {\n\t\treturn false\n\t}\n}\n\n// 显示提示的方法\nfunction showTip(formEl, desc = '') {\n\t// 元素未被隐藏使用 tooltip\n\tif (formEl.offsetWidth > 0 && !isHideByScroller(formEl)) {\n\t\tconst tooltip = createVNode(\n\t\t\tToTooltip,\n\t\t\t{\n\t\t\t\tevent: '',\n\t\t\t\tshadow: false,\n\t\t\t\tposition: 'auto',\n\t\t\t\talign: 'auto',\n\t\t\t\tcolor: 'danger',\n\t\t\t\twidth: '',\n\t\t\t\tlazy: true,\n\t\t\t\tcloseOnBlur: true,\n\t\t\t\tisScrollClose: true,\n\t\t\t\tdelay: 0,\n\t\t\t\tmode: ''\n\t\t\t},\n\t\t\t{\n\t\t\t\tdefault: () => desc\n\t\t\t}\n\t\t)\n\t\tconst container = document.createElement('div')\n\t\trender(tooltip, container)\n\t\tdocument.body.appendChild(container)\n\t\tnextTick(() => {\n\t\t\tformEl._tip = {\n\t\t\t\tvnode: tooltip,\n\t\t\t\tcontainer\n\t\t\t}\n\t\t\tconst open = () => {\n\t\t\t\ttooltip.component.exposed.open(formEl)\n\t\t\t}\n\t\t\t// const close = () => {\n\t\t\t// \ttooltip.component.exposed.close(formEl)\n\t\t\t// }\n\t\t\t// 参数 click,弹出方式\n\t\t\t// if (binding.arg) {\n\t\t\t// \tformEl.addEventListener('click', open)\n\t\t\t// } else {\n\t\t\t// formEl.addEventListener('mouseenter', open)\n\t\t\t// formEl.addEventListener('mouseleave', close)\n\t\t\topen()\n\t\t\t// }\n\t\t})\n\n\t\t// 当前元素获取焦点\n\t\tif (formEl.getElementsByTagName('input')[0]) {\n\t\t\tformEl.getElementsByTagName('input')[0].select()\n\t\t}\n\t}\n\n\t// 元素被隐藏使用 floattip\n\telse {\n\t\t// ToTip.danger(desc)\n\t\t$tip.warning(desc)\n\t}\n}\n\n/**\n * 表单验证函数\n * 该函数用于验证网页表单中的输入是否符合规范\n * 它可以接受一个DOM元素、Vue实例或元素ID作为参数,并验证指定元素及其子元素中带有.to-validate类的元素\n * @param {string|HTMLElement|Vue} dom - 表单的DOM元素、Vue实例或元素ID\n * @param {boolean} isAll - 是否验证所有输入项,默认为false,只验证第一个不符合规则的项\n * @returns {boolean} - 如果所有验证项都通过验证,则返回true;否则返回false\n */\nconst validate = function (dom: string | HTMLElement | VueInstance, isAll = false): boolean {\n\t// 存储待验证的DOM节点\n\tlet nodes: Element[] = []\n\n\t// 标记验证是否全部通过\n\tlet allPass = true\n\n\t// 标记是否存在校验未通过并且在可视范围内的节点\n\tlet hasErrorVisible = false\n\n\t// 标记所有在滚动条之外的节点\n\tconst hiddenErrorNodes = []\n\n\t/**\n\t * 标记所有在滚动条之外的节点信息\n\t * 此函数用于检查给定的表单元素是否在滚动条之外,从而决定是将其标记为可见错误还是隐藏错误\n\t * @param {HTMLElement} formEl - 需要检查的表单元素\n\t */\n\tfunction setHiddenErrorNodes(formEl) {\n\t\t// 如果表单元素不在滚动条之外,则设置有错误可见标志为true\n\t\tif (!isHideByScroller(formEl)) {\n\t\t\thasErrorVisible = true\n\t\t}\n\t\t// 如果表单元素在滚动条之外,则将其添加到隐藏错误节点列表中\n\t\telse {\n\t\t\thiddenErrorNodes.push(formEl)\n\t\t}\n\t}\n\n\t// 根据传入参数类型获取待验证的节点列表\n\tif (typeof dom === 'string' && document.getElementById(dom)) {\n\t\tnodes = Array.from(document.getElementById(dom).querySelectorAll('.to-validate'))\n\t} else if (dom instanceof HTMLElement) {\n\t\tnodes = Array.from(dom.querySelectorAll('.to-validate'))\n\t} else if (typeof dom !== 'string' && dom && dom.$el) {\n\t\tnodes = Array.from(dom.$el.querySelectorAll('.to-validate'))\n\t}\n\n\t// 如果没有找到任何待验证的节点,直接返回true\n\tif (nodes.length === 0) {\n\t\treturn true\n\t}\n\n\t// 遍历所有待验证的节点\n\tfor (let i = 0; i < nodes.length; i++) {\n\t\tconst node = nodes[i]\n\n\t\t// 获取验证规则、是否需要trim空格、描述、是否必填等属性\n\t\tconst rule = node.getAttribute('rule')\n\t\tconst trim = node.getAttribute('trim') === 'true'\n\t\tconst value = (function () {\n\t\t\tif (node.getAttribute('value')) {\n\t\t\t\treturn trim ? node.getAttribute('value').trim() : node.getAttribute('value')\n\t\t\t} else {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t})()\n\t\tconst desc = node.getAttribute('desc')\n\t\tconst required = node.getAttribute('req') === 'true'\n\t\tconst formEl = node.parentNode\n\t\t// 修改这里,将formEl转换为any类型以访问Vue特定属性\n\t\tlet formVue = (formEl as any).__vueParentComponent || (formEl as any).__vue_app__?.$parent\n\n\t\t// 特殊处理ToDatePicker组件的验证 (兼容Vue2/Vue3)\n\t\tconst vueInstance = formVue || (formEl as any).__vue_app__?.$parent\n\t\tif (vueInstance && ['ToDatePicker'].includes(vueInstance.$options?.name)) {\n\t\t\tformVue = vueInstance.$refs.inputBox\n\t\t}\n\n\t\t// 根据isAll参数决定验证流程\n\t\tif (isAll) {\n\t\t\t// 如果值存在且有规则,则应用规则验证\n\t\t\tif (value) {\n\t\t\t\tif (rule) {\n\t\t\t\t\tformVue.exposed.errorType.value = 'rule'\n\t\t\t\t\tlet reg\n\t\t\t\t\tif (regs[rule] && regs[rule].rule) {\n\t\t\t\t\t\treg = regs[rule].rule\n\t\t\t\t\t\tif (!reg.test(value)) {\n\t\t\t\t\t\t\tformVue.exposed.errorTip.value = t('to.validate.tip.common', desc, `${regs[rule].desc}${regs[rule].remark ? ',' + regs[rule].remark : ''}`)\n\t\t\t\t\t\t\tallPass = false\n\t\t\t\t\t\t\tsetHiddenErrorNodes(formEl)\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treg = new RegExp(rule)\n\t\t\t\t\t\tif (!reg.test(value)) {\n\t\t\t\t\t\t\tformVue.errorTip = t('to.validate.tip.customRemark', desc, formVue.validateTip ? `,${formVue.validateTip}` : '')\n\t\t\t\t\t\t\tallPass = false\n\t\t\t\t\t\t\tsetHiddenErrorNodes(formEl)\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if (required) {\n\t\t\t\tformVue.exposed.errorType.value = 'required'\n\t\t\t\tformVue.exposed.errorTip.value = t('to.validate.tip.requiredRemark', desc)\n\t\t\t\tallPass = false\n\t\t\t\tsetHiddenErrorNodes(formEl)\n\t\t\t\tcontinue\n\t\t\t} else {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else {\n\t\t\t// 如果值存在且有规则,则应用规则验证\n\t\t\tif (value) {\n\t\t\t\tif (rule) {\n\t\t\t\t\tlet reg\n\t\t\t\t\tif (regs[rule] && regs[rule].rule) {\n\t\t\t\t\t\treg = regs[rule].rule\n\t\t\t\t\t\tif (!reg.test(value)) {\n\t\t\t\t\t\t\tshowTip(formEl, t('to.validate.tip.common', desc, `${regs[rule].desc}${regs[rule].remark ? ',' + regs[rule].remark : ''}`))\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treg = new RegExp(rule)\n\t\t\t\t\t\tif (!reg.test(value)) {\n\t\t\t\t\t\t\tshowTip(formEl, t('to.validate.tip.customRemark', desc, formVue.validateTip ? `,${formVue.validateTip}` : ''))\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if (required) {\n\t\t\t\tshowTip(formEl, t('to.validate.tip.requiredRemark', desc))\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t}\n\n\t// 根据isAll参数返回相应的结果\n\tif (isAll) {\n\t\t// 如果全部不通过的选项都在滚动条之外,则滚动到第一个出问题的节点上\n\t\tif (!allPass && !hasErrorVisible) {\n\t\t\tconst scroller = queryVm(hiddenErrorNodes[0], 'ToScroll')\n\t\t\tscroller.to(hiddenErrorNodes[0])\n\t\t}\n\t\treturn allPass\n\t} else {\n\t\treturn true\n\t}\n}\n\nconst validateAll = function (dom) {\n\treturn validate(dom, true)\n}\nexport { validate, validateAll }\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.mjs","sources":["../../../../packages/utils/validate.ts"],"sourcesContent":["import { createVNode, render, nextTick, type ComponentPublicInstance } from 'vue'\ntype VueInstance = ComponentPublicInstance\nimport { ToTooltip, $tip } from '@touchvue/components'\nimport { hasClass } from './dom'\nimport { t } from '@touchvue/locale'\n\ninterface ValidationRule {\n\trule: RegExp\n\tdesc: string\n\tremark?: string\n}\n\ninterface Regs {\n\t[key: string]: ValidationRule\n}\nconst regs: Regs = {\n\t// 基础判断\n\ten: {\n\t\trule: /^[A-Za-z]+$/,\n\t\tdesc: t('to.validate.desc.en')\n\t},\n\t'en-lower': {\n\t\trule: /^[a-z]+$/,\n\t\tdesc: t('to.validate.desc.enLower')\n\t},\n\t'en-upper': {\n\t\trule: /^[A-Z]+$/,\n\t\tdesc: t('to.validate.desc.enUpper')\n\t},\n\t'en-none': {\n\t\trule: /^[^A-Za-z]*$/,\n\t\tdesc: t('to.validate.desc.enNone')\n\t},\n\tcn: {\n\t\trule: /^(?:[\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29]|[\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0])+$/,\n\t\tdesc: t('to.validate.desc.cn')\n\t},\n\tnumber: {\n\t\trule: /^[-+]?([1-9][0-9]*|0)(\\.[0-9]+)?$/,\n\t\tdesc: t('to.validate.desc.number')\n\t},\n\tinteger: {\n\t\trule: /^-?[0-9]\\d*$/,\n\t\tdesc: t('to.validate.desc.integer')\n\t},\n\t'integer-p': {\n\t\trule: /^\\+?[1-9]\\d*$/,\n\t\tdesc: t('to.validate.desc.integerP')\n\t},\n\t'integer-n': {\n\t\trule: /^-[1-9]\\d*$/,\n\t\tdesc: t('to.validate.desc.integerN')\n\t},\n\tnature: {\n\t\trule: /^\\d+$/,\n\t\tdesc: t('to.validate.desc.nature')\n\t},\n\tdate: {\n\t\trule: /^\\d{4}(-)(1[0-2]|0?\\d)\\1([0-2]\\d|\\d|30|31)$/,\n\t\tdesc: t('to.validate.desc.date')\n\t},\n\ttime: {\n\t\trule: /^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/,\n\t\tdesc: t('to.validate.desc.time')\n\t},\n\t'time-12': {\n\t\trule: /^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/,\n\t\tdesc: t('to.validate.desc.time12')\n\t},\n\t// 基本数据格式\n\tmoney: {\n\t\trule: /^-?\\d+(,\\d{3})*(\\.\\d{1,2})?$/,\n\t\tdesc: t('to.validate.desc.money')\n\t},\n\tip: {\n\t\trule: /^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]).){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])(?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/,\n\t\tdesc: t('to.validate.desc.ip')\n\t},\n\t'ip-v6': {\n\t\trule: /^(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))|\\[(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))\\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/i,\n\t\tdesc: t('to.validate.desc.ipV6')\n\t},\n\tpassword: {\n\t\trule: /^\\S*(?=\\S{6,})(?=\\S*\\d)(?=\\S*[A-Z])(?=\\S*[a-z])(?=\\S*[!@#$%^&*? ])\\S*$/,\n\t\tdesc: t('to.validate.desc.password'),\n\t\tremark: t('to.validate.remark.password')\n\t},\n\tusername: {\n\t\trule: /^[a-zA-Z0-9_-]{4,16}$/,\n\t\tdesc: t('to.validate.desc.username'),\n\t\tremark: t('to.validate.remark.username')\n\t},\n\t// 用户信息\n\tname: {\n\t\trule: /^([\\u4e00-\\u9fa5·]{2,16}|[a-zA-Z.\\s]{1,20})$/,\n\t\tdesc: t('to.validate.desc.name')\n\t},\n\t'name-cn': {\n\t\trule: /^(?:[\\u4e00-\\u9fa5·]{2,16})$/,\n\t\tdesc: t('to.validate.desc.nameCn')\n\t},\n\t'name-en': {\n\t\trule: /(^[a-zA-Z]{1}[a-zA-Z\\s]{0,20}[a-zA-Z]{1}$)/,\n\t\tdesc: t('to.validate.desc.nameEn')\n\t},\n\temail: {\n\t\trule: /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n\t\tdesc: t('to.validate.desc.email')\n\t},\n\tqq: {\n\t\trule: /^[1-9][0-9]{4,10}$/,\n\t\tdesc: t('to.validate.desc.qq')\n\t},\n\twechat: {\n\t\trule: /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/,\n\t\tdesc: t('to.validate.desc.wechat')\n\t},\n\tweb: {\n\t\trule: /^(((ht|f)tps?):\\/\\/)?[\\w-]+(\\.[\\w-]+)+([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?$/,\n\t\tdesc: t('to.validate.desc.web')\n\t},\n\tuscc: {\n\t\trule: /^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/,\n\t\tdesc: t('to.validate.desc.uscc')\n\t},\n\tbank: {\n\t\trule: /^[1-9]\\d{9,29}$/,\n\t\tdesc: t('to.validate.desc.bank')\n\t},\n\tphone: {\n\t\trule: /^1[3456789]\\d{9}$/,\n\t\tdesc: t('to.validate.desc.phone')\n\t},\n\ttelphone: {\n\t\trule: /^\\d{3}-\\d{8}$|^\\d{4}-\\d{7,8}$/,\n\t\tdesc: t('to.validate.desc.telphone')\n\t},\n\tid: {\n\t\trule: /^[1-9]\\d{5}(?:18|19|20)\\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\\d|30|31)\\d{3}[\\dXx]$/,\n\t\tdesc: t('to.validate.desc.id')\n\t},\n\tpassport: {\n\t\trule: /(^[EeKkGgDdSsPpHh]\\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\\d{7}$)/,\n\t\tdesc: t('to.validate.desc.passport')\n\t},\n\tmac: {\n\t\trule: /^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i,\n\t\tdesc: t('to.validate.desc.mac')\n\t}\n}\n\n// 判断是否在滚动条以内\nfunction isHideByScroller(node) {\n\tconst el = node\n\twhile (node && !hasClass(node, 'to-scroll') && node.nodeName !== 'BODY') {\n\t\tnode = (node as VueInstance & { __vueParentComponent?: any; __vue_app__?: any }).__vueParentComponent || node.parentNode\n\t}\n\tif (node && node.nodeName !== 'BODY') {\n\t\tconst scroller = node\n\t\treturn el.getBoundingClientRect().top > scroller.getBoundingClientRect().top + scroller.offsetHeight || el.getBoundingClientRect().top + el.offsetHeight <= scroller.getBoundingClientRect().top\n\t} else {\n\t\treturn false\n\t}\n}\n\n// 显示提示的方法\nfunction showTip(formEl, desc = '') {\n\t// 元素未被隐藏使用 tooltip\n\tif (formEl.offsetWidth > 0 && !isHideByScroller(formEl)) {\n\t\tconst tooltip = createVNode(\n\t\t\tToTooltip,\n\t\t\t{\n\t\t\t\tevent: '',\n\t\t\t\tshadow: false,\n\t\t\t\tposition: 'auto',\n\t\t\t\talign: 'auto',\n\t\t\t\tcolor: 'danger',\n\t\t\t\twidth: '',\n\t\t\t\tlazy: true,\n\t\t\t\tcloseOnBlur: true,\n\t\t\t\tisScrollClose: true,\n\t\t\t\tdelay: 0,\n\t\t\t\tmode: ''\n\t\t\t},\n\t\t\t{\n\t\t\t\tdefault: () => desc\n\t\t\t}\n\t\t)\n\t\tconst container = document.createElement('div')\n\t\trender(tooltip, container)\n\t\tdocument.body.appendChild(container)\n\t\tnextTick(() => {\n\t\t\tformEl._tip = {\n\t\t\t\tvnode: tooltip,\n\t\t\t\tcontainer\n\t\t\t}\n\t\t\tconst open = () => {\n\t\t\t\ttooltip.component.exposed.open(formEl)\n\t\t\t}\n\t\t\t// const close = () => {\n\t\t\t// \ttooltip.component.exposed.close(formEl)\n\t\t\t// }\n\t\t\t// 参数 click,弹出方式\n\t\t\t// if (binding.arg) {\n\t\t\t// \tformEl.addEventListener('click', open)\n\t\t\t// } else {\n\t\t\t// formEl.addEventListener('mouseenter', open)\n\t\t\t// formEl.addEventListener('mouseleave', close)\n\t\t\topen()\n\t\t\t// }\n\t\t})\n\n\t\t// 当前元素获取焦点\n\t\tif (formEl.getElementsByTagName('input')[0]) {\n\t\t\tformEl.getElementsByTagName('input')[0].select()\n\t\t}\n\t}\n\n\t// 元素被隐藏使用 floattip\n\telse {\n\t\t// ToTip.danger(desc)\n\t\t$tip.warning(desc)\n\t}\n}\n\n/**\n * 表单验证函数\n * 该函数用于验证网页表单中的输入是否符合规范\n * 它可以接受一个DOM元素、Vue实例或元素ID作为参数,并验证指定元素及其子元素中带有.to-validate类的元素\n * @param {string|HTMLElement|Vue} dom - 表单的DOM元素、Vue实例或元素ID\n * @param {boolean} isAll - 是否验证所有输入项,默认为false,只验证第一个不符合规则的项\n * @returns {boolean} - 如果所有验证项都通过验证,则返回true;否则返回false\n */\nconst validate = function (dom: string | HTMLElement | VueInstance, isAll = false): boolean {\n\t// 存储待验证的DOM节点\n\tlet nodes: Element[] = []\n\n\t// 标记验证是否全部通过\n\tlet allPass = true\n\n\t// 标记所有在滚动条之外的节点\n\tconst hiddenErrorNodes = []\n\n\t// 记录第一个校验不通过的节点(按 DOM 顺序),用于滚动定位\n\tlet firstErrorNode: any = null\n\n\t/**\n\t * 标记所有在滚动条之外的节点信息\n\t * 此函数用于检查给定的表单元素是否在滚动条之外,从而决定是将其标记为可见错误还是隐藏错误\n\t * @param {HTMLElement} formEl - 需要检查的表单元素\n\t */\n\tfunction setHiddenErrorNodes(formEl) {\n\t\t// 记录首个错误节点(仅记录第一次)\n\t\tif (!firstErrorNode) firstErrorNode = formEl\n\t\t\n\t\t// 如果表单元素在滚动条之外,则将其添加到隐藏错误节点列表中\n\t\telse {\n\t\t\thiddenErrorNodes.push(formEl)\n\t\t}\n\t}\n\n\t// 根据传入参数类型获取待验证的节点列表\n\tif (typeof dom === 'string' && document.getElementById(dom)) {\n\t\tnodes = Array.from(document.getElementById(dom).querySelectorAll('.to-validate'))\n\t} else if (dom instanceof HTMLElement) {\n\t\tnodes = Array.from(dom.querySelectorAll('.to-validate'))\n\t} else if (typeof dom !== 'string' && dom && dom.$el) {\n\t\tnodes = Array.from(dom.$el.querySelectorAll('.to-validate'))\n\t}\n\n\t// 如果没有找到任何待验证的节点,直接返回true\n\tif (nodes.length === 0) {\n\t\treturn true\n\t}\n\n\t// 遍历所有待验证的节点\n\tfor (let i = 0; i < nodes.length; i++) {\n\t\tconst node = nodes[i]\n\n\t\t// 获取验证规则、是否需要trim空格、描述、是否必填等属性\n\t\tconst rule = node.getAttribute('rule')\n\t\tconst trim = node.getAttribute('trim') === 'true'\n\t\tconst value = (function () {\n\t\t\tif (node.getAttribute('value')) {\n\t\t\t\treturn trim ? node.getAttribute('value').trim() : node.getAttribute('value')\n\t\t\t} else {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t})()\n\t\tconst desc = node.getAttribute('desc')\n\t\tconst required = node.getAttribute('req') === 'true'\n\t\tconst formEl = node.parentNode\n\t\t// 修改这里,将formEl转换为any类型以访问Vue特定属性\n\t\tlet formVue = (formEl as any).__vueParentComponent || (formEl as any).__vue_app__?.$parent\n\n\t\t// 特殊处理ToDatePicker组件的验证 (兼容Vue2/Vue3)\n\t\tconst vueInstance = formVue || (formEl as any).__vue_app__?.$parent\n\t\tif (vueInstance && ['ToDatePicker'].includes(vueInstance.$options?.name)) {\n\t\t\tformVue = vueInstance.$refs.inputBox\n\t\t}\n\n\t\t// 根据isAll参数决定验证流程\n\t\tif (isAll) {\n\t\t\t// 如果值存在且有规则,则应用规则验证\n\t\t\tif (value) {\n\t\t\t\tif (rule) {\n\t\t\t\t\tformVue.exposed.errorType.value = 'rule'\n\t\t\t\t\tlet reg\n\t\t\t\t\tif (regs[rule] && regs[rule].rule) {\n\t\t\t\t\t\treg = regs[rule].rule\n\t\t\t\t\t\tif (!reg.test(value)) {\n\t\t\t\t\t\t\tformVue.exposed.errorTip.value = t('to.validate.tip.common', desc, `${regs[rule].desc}${regs[rule].remark ? ',' + regs[rule].remark : ''}`)\n\t\t\t\t\t\t\tallPass = false\n\t\t\t\t\t\t\tsetHiddenErrorNodes(formEl)\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treg = new RegExp(rule)\n\t\t\t\t\t\tif (!reg.test(value)) {\n\t\t\t\t\t\t\tformVue.errorTip = t('to.validate.tip.customRemark', desc, formVue.validateTip ? `,${formVue.validateTip}` : '')\n\t\t\t\t\t\t\tallPass = false\n\t\t\t\t\t\t\tsetHiddenErrorNodes(formEl)\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if (required) {\n\t\t\t\tformVue.exposed.errorType.value = 'required'\n\t\t\t\tformVue.exposed.errorTip.value = t('to.validate.tip.requiredRemark', desc)\n\t\t\t\tallPass = false\n\t\t\t\tsetHiddenErrorNodes(formEl)\n\t\t\t\tcontinue\n\t\t\t} else {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else {\n\t\t\t// 如果值存在且有规则,则应用规则验证\n\t\t\tif (value) {\n\t\t\t\tif (rule) {\n\t\t\t\t\tlet reg\n\t\t\t\t\tif (regs[rule] && regs[rule].rule) {\n\t\t\t\t\t\treg = regs[rule].rule\n\t\t\t\t\t\tif (!reg.test(value)) {\n\t\t\t\t\t\t\tshowTip(formEl, t('to.validate.tip.common', desc, `${regs[rule].desc}${regs[rule].remark ? ',' + regs[rule].remark : ''}`))\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treg = new RegExp(rule)\n\t\t\t\t\t\tif (!reg.test(value)) {\n\t\t\t\t\t\t\tshowTip(formEl, t('to.validate.tip.customRemark', desc, formVue.validateTip ? `,${formVue.validateTip}` : ''))\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if (required) {\n\t\t\t\tshowTip(formEl, t('to.validate.tip.requiredRemark', desc))\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t}\n\n\t// 根据isAll参数返回相应的结果\n\tif (isAll) {\n\t\t// 校验不通过时,自动滚动到第一个不通过的表单项(若其位于 to-scroll 内)\n\t\tif (!allPass && firstErrorNode) {\n\t\t\t// 用纯 DOM 向上查找最近的 .to-scroll 容器,兼容 Vue 3\n\t\t\tlet scrollEl: any = firstErrorNode\n\t\t\twhile (scrollEl && scrollEl.nodeName !== 'BODY' && !(scrollEl.classList && scrollEl.classList.contains('to-scroll'))) {\n\t\t\t\tscrollEl = scrollEl.parentNode\n\t\t\t}\n\t\t\tif (scrollEl && scrollEl.nodeName !== 'BODY') {\n\t\t\t\t// 真正可滚动的元素是 .to-scroll-content,回退到 .to-scroll 自身\n\t\t\t\tconst inner = scrollEl.querySelector('.to-scroll-content') || scrollEl\n\t\t\t\tconst targetRect = (firstErrorNode as HTMLElement).getBoundingClientRect()\n\t\t\t\tconst scrollRect = (inner as HTMLElement).getBoundingClientRect()\n\t\t\t\t;(inner as HTMLElement).scrollTo({\n\t\t\t\t\ttop: (inner as HTMLElement).scrollTop + targetRect.top - scrollRect.top - 10,\n\t\t\t\t\tbehavior: 'smooth'\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn allPass\n\t} else {\n\t\treturn true\n\t}\n}\n\nconst validateAll = function (dom) {\n\treturn validate(dom, true)\n}\nexport { validate, validateAll }\n"],"names":[],"mappings":"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"}
package/global.d.ts CHANGED
@@ -58,6 +58,7 @@ declare module 'vue' {
58
58
  ToUpload: typeof import('@touchvue/ui')['ToUpload']
59
59
  ToImport: typeof import('@touchvue/ui')['ToImport']
60
60
  ToExport: typeof import('@touchvue/ui')['ToExport']
61
+ ToRate: typeof import('@touchvue/ui')['ToRate']
61
62
  }
62
63
  }
63
64
 
@@ -49,7 +49,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
49
49
  default: string;
50
50
  };
51
51
  comparable: BooleanConstructor;
52
- readonly: BooleanConstructor;
53
52
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
54
53
  flex: BooleanConstructor;
55
54
  labelWidth: {
@@ -97,11 +96,9 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
97
96
  default: string;
98
97
  };
99
98
  comparable: BooleanConstructor;
100
- readonly: BooleanConstructor;
101
99
  }>> & Readonly<{}>, {
102
100
  mode: string;
103
101
  flex: boolean;
104
- readonly: boolean;
105
102
  type: string;
106
103
  col: string | number;
107
104
  dir: string;
@@ -48,7 +48,8 @@ import { ToTransfer } from './transfer';
48
48
  import { ToUpload } from './upload';
49
49
  import { ToImport } from './import';
50
50
  import { ToExport } from './export';
51
- export { ToButton, ToIcon, ToBox, ToSelect, ToCalendar, ToGap, ToStep, ToForm, ToFormItem, ToGrid, ToGridItem, ToHeader, ToInput, ToDivider, ToMsg, ToPadding, ToPage, ToCheckbox, ToCheckboxes, ToCenterScroll, ToDatePicker, ToDateRange, ToSwitch, ToTab, ToTabItem, ToTable, ToTableHead, ToTableBody, ToTableConfig, ToTag, ToText, ToTip, ToDialog, ToEllipsis, ToFix, ToFloat, ToTooltip, ToSegment, ToPic, ToParam, ToProgress, ToScroll, ToScrollPoint, ToSlide, ToBreadcrumb, ToBreadcrumbItem, ToTree, ToCascader, ToTimeline, ToCollapse, ToCollapseItem, ToRange, ToGuider, ToTransfer, ToUpload, ToImport, ToExport };
51
+ import { ToRate } from './rate';
52
+ export { ToButton, ToIcon, ToBox, ToSelect, ToCalendar, ToGap, ToStep, ToForm, ToFormItem, ToGrid, ToGridItem, ToHeader, ToInput, ToDivider, ToMsg, ToPadding, ToPage, ToCheckbox, ToCheckboxes, ToCenterScroll, ToDatePicker, ToDateRange, ToSwitch, ToTab, ToTabItem, ToTable, ToTableHead, ToTableBody, ToTableConfig, ToTag, ToText, ToTip, ToDialog, ToEllipsis, ToFix, ToFloat, ToTooltip, ToSegment, ToPic, ToParam, ToProgress, ToScroll, ToScrollPoint, ToSlide, ToBreadcrumb, ToBreadcrumbItem, ToTree, ToCascader, ToTimeline, ToCollapse, ToCollapseItem, ToRange, ToGuider, ToTransfer, ToUpload, ToImport, ToExport, ToRate };
52
53
  export * from '@touchvue/ui/lib/directives';
53
54
  export * from './button';
54
55
  export * from './icon';
@@ -97,3 +98,4 @@ export * from './transfer';
97
98
  export * from './upload';
98
99
  export * from './import';
99
100
  export * from './export';
101
+ export * from './rate';
@@ -6,7 +6,7 @@ declare function __VLS_template(): {
6
6
  default?(_: {}): any;
7
7
  default?(_: {}): any;
8
8
  suffix?(_: {}): any;
9
- suffix?(_: {}): any;
9
+ fn?(_: {}): any;
10
10
  };
11
11
  declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
12
12
  flex: BooleanConstructor;
@@ -170,10 +170,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
170
170
  type: (NumberConstructor | StringConstructor)[];
171
171
  default: number;
172
172
  };
173
- readonly: {
174
- type: BooleanConstructor;
175
- default: boolean;
176
- };
177
173
  count: {
178
174
  type: BooleanConstructor;
179
175
  default: boolean;
@@ -363,10 +359,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
363
359
  type: (NumberConstructor | StringConstructor)[];
364
360
  default: number;
365
361
  };
366
- readonly: {
367
- type: BooleanConstructor;
368
- default: boolean;
369
- };
370
362
  count: {
371
363
  type: BooleanConstructor;
372
364
  default: boolean;
@@ -391,7 +383,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
391
383
  color: string;
392
384
  flex: boolean;
393
385
  width: string | number;
394
- readonly: boolean;
395
386
  trim: boolean;
396
387
  link: boolean;
397
388
  type: string;
@@ -0,0 +1,4 @@
1
+ import Rate from './src/rate.vue';
2
+ import { SFCWithInstall } from '@touchvue/ui/lib/utils';
3
+ export declare const ToRate: SFCWithInstall<typeof Rate>;
4
+ export * from './src/instance';
@@ -0,0 +1,2 @@
1
+ import type Rate from './rate.vue';
2
+ export type RateInstance = InstanceType<typeof Rate>;
@@ -0,0 +1,77 @@
1
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ modelValue: {
3
+ type: NumberConstructor;
4
+ default: number;
5
+ };
6
+ max: {
7
+ type: NumberConstructor;
8
+ default: number;
9
+ };
10
+ size: {
11
+ type: NumberConstructor;
12
+ default: number;
13
+ };
14
+ readonly: BooleanConstructor;
15
+ allowHalf: {
16
+ type: BooleanConstructor;
17
+ default: boolean;
18
+ };
19
+ color: {
20
+ type: StringConstructor;
21
+ default: string;
22
+ };
23
+ showScore: {
24
+ type: BooleanConstructor;
25
+ default: boolean;
26
+ };
27
+ clearable: {
28
+ type: BooleanConstructor;
29
+ default: boolean;
30
+ };
31
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
32
+ change: (...args: any[]) => void;
33
+ "update:modelValue": (...args: any[]) => void;
34
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
35
+ modelValue: {
36
+ type: NumberConstructor;
37
+ default: number;
38
+ };
39
+ max: {
40
+ type: NumberConstructor;
41
+ default: number;
42
+ };
43
+ size: {
44
+ type: NumberConstructor;
45
+ default: number;
46
+ };
47
+ readonly: BooleanConstructor;
48
+ allowHalf: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
52
+ color: {
53
+ type: StringConstructor;
54
+ default: string;
55
+ };
56
+ showScore: {
57
+ type: BooleanConstructor;
58
+ default: boolean;
59
+ };
60
+ clearable: {
61
+ type: BooleanConstructor;
62
+ default: boolean;
63
+ };
64
+ }>> & Readonly<{
65
+ onChange?: (...args: any[]) => any;
66
+ "onUpdate:modelValue"?: (...args: any[]) => any;
67
+ }>, {
68
+ size: number;
69
+ color: string;
70
+ readonly: boolean;
71
+ modelValue: number;
72
+ clearable: boolean;
73
+ max: number;
74
+ allowHalf: boolean;
75
+ showScore: boolean;
76
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
77
+ export default _default;
@@ -160,14 +160,6 @@ export declare const selectProps: {
160
160
  type: StringConstructor;
161
161
  default: string;
162
162
  };
163
- /**
164
- * 是否只读
165
- * @deprecated replace by disabled
166
- */
167
- readonly: {
168
- type: BooleanConstructor;
169
- default: boolean;
170
- };
171
163
  disabled: {
172
164
  type: BooleanConstructor;
173
165
  default: boolean;
@@ -86,10 +86,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
86
86
  type: StringConstructor;
87
87
  default: string;
88
88
  };
89
- readonly: {
90
- type: BooleanConstructor;
91
- default: boolean;
92
- };
93
89
  disabled: {
94
90
  type: BooleanConstructor;
95
91
  default: boolean;
@@ -338,10 +334,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
338
334
  type: StringConstructor;
339
335
  default: string;
340
336
  };
341
- readonly: {
342
- type: BooleanConstructor;
343
- default: boolean;
344
- };
345
337
  disabled: {
346
338
  type: BooleanConstructor;
347
339
  default: boolean;
@@ -513,7 +505,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
513
505
  flex: boolean;
514
506
  width: string | number;
515
507
  lazy: boolean;
516
- readonly: boolean;
517
508
  trim: boolean;
518
509
  data: string | SelectOptionsData[];
519
510
  required: boolean;
@@ -1,6 +1,6 @@
1
1
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
2
  flex: BooleanConstructor;
3
- readonly: BooleanConstructor;
3
+ disabled: BooleanConstructor;
4
4
  modelValue: {
5
5
  type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
6
6
  default: boolean;
@@ -67,7 +67,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
67
67
  "update:modelValue": (...args: any[]) => void;
68
68
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
69
69
  flex: BooleanConstructor;
70
- readonly: BooleanConstructor;
70
+ disabled: BooleanConstructor;
71
71
  modelValue: {
72
72
  type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
73
73
  default: boolean;
@@ -132,7 +132,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
132
132
  color: string;
133
133
  flex: boolean;
134
134
  width: string | number;
135
- readonly: boolean;
135
+ disabled: boolean;
136
136
  modelValue: string | number | boolean;
137
137
  comparable: boolean;
138
138
  beforeChange: string | boolean | Function;
@@ -17,4 +17,4 @@ export type ToTabIconPosition = 'left' | 'top';
17
17
  /**
18
18
  * 超出的显示方式
19
19
  */
20
- export type ToTabOver = 'control' | 'avg' | 'float' | 'wrap';
20
+ export type ToTabOver = '' | 'control' | 'float' | 'wrap' | 'avg';
@@ -13,7 +13,7 @@ export interface TabProps {
13
13
  removable?: boolean;
14
14
  position?: 'left' | 'right' | 'bottom' | 'top' | '';
15
15
  itemDir?: 'v' | '';
16
- over?: 'float' | 'wrap' | 'control';
16
+ over?: 'float' | 'wrap' | 'control' | 'avg' | '';
17
17
  event?: string;
18
18
  contentType?: string;
19
19
  title?: string;
@@ -33,10 +33,23 @@ declare function __VLS_template(): {
33
33
  title?(_: {}): any;
34
34
  center?(_: {}): any;
35
35
  item?(_: {
36
- item: any;
36
+ item: {
37
+ [x: string]: any;
38
+ label: string;
39
+ value: string | number;
40
+ };
37
41
  index: number;
38
42
  }): any;
39
- label?(_: any): any;
43
+ label?(_: {
44
+ [x: string]: any;
45
+ label: string;
46
+ value: string | number;
47
+ }): any;
48
+ label?(_: {
49
+ [x: string]: any;
50
+ label: string;
51
+ value: string | number;
52
+ }): any;
40
53
  fn?(_: {}): any;
41
54
  default?(_: {}): any;
42
55
  default?(_: {}): any;
@@ -65,7 +78,7 @@ declare const __VLS_component: import("vue").DefineComponent<TabProps, {}, {}, {
65
78
  beforeChange: () => boolean | Promise<boolean>;
66
79
  itemDir: "v" | "";
67
80
  itemWidth: string | number;
68
- over: "float" | "wrap" | "control";
81
+ over: "float" | "wrap" | "control" | "avg" | "";
69
82
  contentType: string;
70
83
  beforeRemove: () => boolean | Promise<boolean>;
71
84
  changePic: boolean;
package/lib/index.d.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index$M = require('./packages/locale/index.js');
5
+ var index$N = require('./packages/locale/index.js');
6
6
  var align = require('./packages/directives/align/src/align.js');
7
7
  var color = require('./packages/directives/color/src/color.js');
8
8
  var dis = require('./packages/directives/dis/src/dis.js');
@@ -71,6 +71,7 @@ var index$I = require('./packages/components/transfer/index.js');
71
71
  var index$J = require('./packages/components/upload/index.js');
72
72
  var index$K = require('./packages/components/import/index.js');
73
73
  var index$L = require('./packages/components/export/index.js');
74
+ var index$M = require('./packages/components/rate/index.js');
74
75
  var index$6 = require('./packages/components/step/index.js');
75
76
  var md5 = require('./packages/utils/md5.js');
76
77
  var types = require('./packages/utils/types.js');
@@ -95,11 +96,11 @@ var useWidthStyle = require('./packages/hooks/useWidthStyle.js');
95
96
 
96
97
  var install$1 = install;
97
98
 
98
- exports.i18n = index$M.i18n;
99
- exports.langKey = index$M.langKey;
100
- exports.onLangChange = index$M.onLangChange;
101
- exports.t = index$M.t;
102
- exports.use = index$M.use;
99
+ exports.i18n = index$N.i18n;
100
+ exports.langKey = index$N.langKey;
101
+ exports.onLangChange = index$N.onLangChange;
102
+ exports.t = index$N.t;
103
+ exports.use = index$N.use;
103
104
  exports.vAlign = align.default;
104
105
  exports.vColor = color.default;
105
106
  exports.vDis = dis.default;
@@ -189,6 +190,7 @@ exports.ToTransfer = index$I.ToTransfer;
189
190
  exports.ToUpload = index$J.ToUpload;
190
191
  exports.ToImport = index$K.ToImport;
191
192
  exports.ToExport = index$L.ToExport;
193
+ exports.ToRate = index$M.ToRate;
192
194
  exports.ToStep = index$6.ToStep;
193
195
  exports.md5 = md5.md5;
194
196
  exports.isArray = types.isArray;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","sources":["../../packages/ui/index.d.ts"],"sourcesContent":["import type { App } from 'vue';\nexport interface TouchVueUIOptions {\n ratio?: {\n base?: {\n pc?: number;\n pad?: number;\n phone?: number;\n };\n };\n zIndex?: number;\n input?: {\n spChars?: string;\n };\n lang?: string;\n}\nexport declare const defaultOptions: TouchVueUIOptions;\nexport declare let globalOptions: {\n ratio?: {\n base?: {\n pc?: number;\n pad?: number;\n phone?: number;\n };\n };\n zIndex?: number;\n input?: {\n spChars?: string;\n };\n lang?: string;\n};\nexport declare const getGlobalOptions: () => TouchVueUIOptions;\ndeclare const install: (app: App, options?: TouchVueUIOptions) => void;\nexport default install;\nexport * from '@touchvue/components';\nexport * from '@touchvue/directives';\nexport * from '@touchvue/locale';\nexport * from '@touchvue/utils';\nexport * from '@touchvue/hooks';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,gBAAe,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.d.js","sources":["../../packages/ui/index.d.ts"],"sourcesContent":["import type { App } from 'vue';\nexport interface TouchVueUIOptions {\n ratio?: {\n base?: {\n pc?: number;\n pad?: number;\n phone?: number;\n };\n };\n zIndex?: number;\n input?: {\n spChars?: string;\n };\n lang?: string;\n}\nexport declare const defaultOptions: TouchVueUIOptions;\nexport declare let globalOptions: {\n ratio?: {\n base?: {\n pc?: number;\n pad?: number;\n phone?: number;\n };\n };\n zIndex?: number;\n input?: {\n spChars?: string;\n };\n lang?: string;\n};\nexport declare const getGlobalOptions: () => TouchVueUIOptions;\ndeclare const install: (app: App, options?: TouchVueUIOptions) => void;\nexport default install;\nexport * from '@touchvue/components';\nexport * from '@touchvue/directives';\nexport * from '@touchvue/locale';\nexport * from '@touchvue/utils';\nexport * from '@touchvue/hooks';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,gBAAe,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/lib/index.js CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index$N = require('./packages/components/index.js');
6
- var index$O = require('./packages/directives/index.js');
7
- var index$M = require('./packages/locale/index.js');
5
+ var index$O = require('./packages/components/index.js');
6
+ var index$P = require('./packages/directives/index.js');
7
+ var index$N = require('./packages/locale/index.js');
8
8
  var zhCN = require('./packages/locale/lang/zh-CN.js');
9
9
  var enUS = require('./packages/locale/lang/en-US.js');
10
10
  var ratio = require('./packages/utils/ratio.js');
@@ -76,6 +76,7 @@ var index$I = require('./packages/components/transfer/index.js');
76
76
  var index$J = require('./packages/components/upload/index.js');
77
77
  var index$K = require('./packages/components/import/index.js');
78
78
  var index$L = require('./packages/components/export/index.js');
79
+ var index$M = require('./packages/components/rate/index.js');
79
80
  var index$6 = require('./packages/components/step/index.js');
80
81
  var md5 = require('./packages/utils/md5.js');
81
82
  var types = require('./packages/utils/types.js');
@@ -116,7 +117,7 @@ const install = (app, options = {}) => {
116
117
  } else {
117
118
  localeModule = zhCN.default;
118
119
  }
119
- index$M.use(localeModule);
120
+ index$N.use(localeModule);
120
121
  app.config.globalProperties.$getEm = ratio.getEm;
121
122
  app.config.globalProperties.$setMedia = ratio.setMedia;
122
123
  app.config.globalProperties.$getMedia = ratio.getMedia;
@@ -134,19 +135,19 @@ const install = (app, options = {}) => {
134
135
  };
135
136
  ratio.setMedia(options);
136
137
  ratio.setRatio(options);
137
- Object.values(index$N).forEach((component) => {
138
+ Object.values(index$O).forEach((component) => {
138
139
  if (component && typeof component === "object" && "install" in component && typeof component.install === "function") {
139
140
  app.use(component);
140
141
  }
141
142
  });
142
- index$O.default.install(app);
143
+ index$P.default.install(app);
143
144
  };
144
145
 
145
- exports.i18n = index$M.i18n;
146
- exports.langKey = index$M.langKey;
147
- exports.onLangChange = index$M.onLangChange;
148
- exports.t = index$M.t;
149
- exports.use = index$M.use;
146
+ exports.i18n = index$N.i18n;
147
+ exports.langKey = index$N.langKey;
148
+ exports.onLangChange = index$N.onLangChange;
149
+ exports.t = index$N.t;
150
+ exports.use = index$N.use;
150
151
  exports.commitTouchReport = ratio.commitTouchReport;
151
152
  exports.getEm = ratio.getEm;
152
153
  exports.getMedia = ratio.getMedia;
@@ -241,6 +242,7 @@ exports.ToTransfer = index$I.ToTransfer;
241
242
  exports.ToUpload = index$J.ToUpload;
242
243
  exports.ToImport = index$K.ToImport;
243
244
  exports.ToExport = index$L.ToExport;
245
+ exports.ToRate = index$M.ToRate;
244
246
  exports.ToStep = index$6.ToStep;
245
247
  exports.md5 = md5.md5;
246
248
  exports.isArray = types.isArray;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../packages/ui/index.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { setRatio, getEm, setMedia, getMedia } from '@touchvue/utils'\nimport * as TouchVueComponents from '@touchvue/components'\nimport InstallDirective from '@touchvue/directives'\n// 添加语言包导入\nimport { use as useTouchvueLocale } from '@touchvue/locale'\nimport cnTouchvueLocale from '@touchvue/locale/lang/zh-CN.js'\nimport enTouchvueLocale from '@touchvue/locale/lang/en-US.js'\n\nexport interface TouchVueUIOptions {\n\tratio?: {\n\t\tbase?: {\n\t\t\tpc?: number\n\t\t\tpad?: number\n\t\t\tphone?: number\n\t\t}\n\t}\n\tzIndex?: number\n\tinput?: {\n\t\tspChars?: string\n\t}\n\t// 添加语言配置选项\n\tlang?: string\n}\n\n// 全局默认配置\nexport const defaultOptions: TouchVueUIOptions = {}\n\n// 全局配置\nexport let globalOptions = { ...defaultOptions }\n\n// 获取全局配置\nexport const getGlobalOptions = (): TouchVueUIOptions => {\n\treturn globalOptions\n}\n\nconst install = (app: App, options: TouchVueUIOptions = {}) => {\n\t// 合并配置项\n\tglobalOptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t}\n\n\t// 处理国际化配置\n\tconst lang = options.lang || 'zh-CN'\n\tlet localeModule\n\tif (lang === 'en-US') {\n\t\tlocaleModule = enTouchvueLocale\n\t} else if (lang === 'zh-CN') {\n\t\tlocaleModule = cnTouchvueLocale\n\t} else {\n\t\t// 如果是其他语言,尝试从默认语言包开始,用户可能需要自己提供\n\t\tlocaleModule = cnTouchvueLocale\n\t}\n\t// 设置默认语言\n\tuseTouchvueLocale(localeModule)\n\n\t// 将配置注入到应用实例中,可以通过app.config.globalProperties.$TOUCHVUE_CONFIG访问\n\t// 工具\n\tapp.config.globalProperties.$getEm = getEm\n\tapp.config.globalProperties.$setMedia = setMedia\n\tapp.config.globalProperties.$getMedia = getMedia\n\n\tconst media = getMedia()\n\tapp.config.globalProperties.$phone = media === 'phone'\n\tapp.config.globalProperties.$pad = media === 'pad'\n\tapp.config.globalProperties.$pc = media === 'pc'\n\n\t// 全局默认配置\n\tapp.config.globalProperties.$TouchUI = {\n\t\tzIndex: globalOptions.zIndex || 2000, // 全局zIndex基数\n\t\tinput: globalOptions.input || {}\n\t}\n\t;(window as any).$TouchUI = {\n\t\tzIndex: 2000\n\t}\n\t// 初始化\n\tsetMedia(options)\n\tsetRatio(options)\n\n\t// 注册所有组件\n\tObject.values(TouchVueComponents).forEach(component => {\n\t\t// 确保是有效的Vue组件插件\n\t\tif (component && typeof component === 'object' && 'install' in component && typeof component.install === 'function') {\n\t\t\tapp.use(component as any)\n\t\t}\n\t})\n\n\tInstallDirective.install(app)\n}\n\n// export { install };\n\nexport default install\n\nexport * from '@touchvue/components'\nexport * from '@touchvue/directives'\nexport * from '@touchvue/locale'\nexport * from '@touchvue/utils'\nexport * from '@touchvue/hooks'\n"],"names":["globalOptions","enTouchvueLocale","cnTouchvueLocale","useTouchvueLocale","getEm","setMedia","getMedia","setRatio","TouchVueComponents","InstallDirective"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,MAAM,iBAAoC,GAAC;AAGvCA,qBAAA,GAAgB,EAAE,GAAG,cAAe,GAAA;AAGxC,MAAM,mBAAmB,MAAyB;AACxD,EAAO,OAAAA,qBAAA,CAAA;AACR,EAAA;AAEA,MAAM,OAAU,GAAA,CAAC,GAAU,EAAA,OAAA,GAA6B,EAAO,KAAA;AAE9D,EAAgBA,qBAAA,GAAA;AAAA,IACf,GAAG,cAAA;AAAA,IACH,GAAG,OAAA;AAAA,GACJ,CAAA;AAGA,EAAM,MAAA,IAAA,GAAO,QAAQ,IAAQ,IAAA,OAAA,CAAA;AAC7B,EAAI,IAAA,YAAA,CAAA;AACJ,EAAA,IAAI,SAAS,OAAS,EAAA;AACrB,IAAe,YAAA,GAAAC,YAAA,CAAA;AAAA,GAChB,MAAA,IAAW,SAAS,OAAS,EAAA;AAC5B,IAAe,YAAA,GAAAC,YAAA,CAAA;AAAA,GACT,MAAA;AAEN,IAAe,YAAA,GAAAA,YAAA,CAAA;AAAA,GAChB;AAEA,EAAAC,WAAA,CAAkB,YAAY,CAAA,CAAA;AAI9B,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,MAAS,GAAAC,WAAA,CAAA;AACrC,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,SAAY,GAAAC,cAAA,CAAA;AACxC,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,SAAY,GAAAC,cAAA,CAAA;AAExC,EAAA,MAAM,QAAQA,cAAS,EAAA,CAAA;AACvB,EAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,MAAA,GAAS,KAAU,KAAA,OAAA,CAAA;AAC/C,EAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,IAAA,GAAO,KAAU,KAAA,KAAA,CAAA;AAC7C,EAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,GAAA,GAAM,KAAU,KAAA,IAAA,CAAA;AAG5C,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,QAAW,GAAA;AAAA,IACtC,MAAA,EAAQN,sBAAc,MAAU,IAAA,GAAA;AAAA;AAAA,IAChC,KAAA,EAAOA,qBAAc,CAAA,KAAA,IAAS,EAAC;AAAA,GAChC,CAAA;AACC,EAAC,OAAe,QAAW,GAAA;AAAA,IAC3B,MAAQ,EAAA,GAAA;AAAA,GACT,CAAA;AAEA,EAAAK,cAAA,CAAS,OAAO,CAAA,CAAA;AAChB,EAAAE,cAAA,CAAS,OAAO,CAAA,CAAA;AAGhB,EAAA,MAAA,CAAO,MAAO,CAAAC,OAAkB,CAAE,CAAA,OAAA,CAAQ,CAAa,SAAA,KAAA;AAEtD,IAAI,IAAA,SAAA,IAAa,OAAO,SAAc,KAAA,QAAA,IAAY,aAAa,SAAa,IAAA,OAAO,SAAU,CAAA,OAAA,KAAY,UAAY,EAAA;AACpH,MAAA,GAAA,CAAI,IAAI,SAAgB,CAAA,CAAA;AAAA,KACzB;AAAA,GACA,CAAA,CAAA;AAED,EAAAC,eAAA,CAAiB,QAAQ,GAAG,CAAA,CAAA;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../packages/ui/index.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { setRatio, getEm, setMedia, getMedia } from '@touchvue/utils'\nimport * as TouchVueComponents from '@touchvue/components'\nimport InstallDirective from '@touchvue/directives'\n// 添加语言包导入\nimport { use as useTouchvueLocale } from '@touchvue/locale'\nimport cnTouchvueLocale from '@touchvue/locale/lang/zh-CN.js'\nimport enTouchvueLocale from '@touchvue/locale/lang/en-US.js'\n\nexport interface TouchVueUIOptions {\n\tratio?: {\n\t\tbase?: {\n\t\t\tpc?: number\n\t\t\tpad?: number\n\t\t\tphone?: number\n\t\t}\n\t}\n\tzIndex?: number\n\tinput?: {\n\t\tspChars?: string\n\t}\n\t// 添加语言配置选项\n\tlang?: string\n}\n\n// 全局默认配置\nexport const defaultOptions: TouchVueUIOptions = {}\n\n// 全局配置\nexport let globalOptions = { ...defaultOptions }\n\n// 获取全局配置\nexport const getGlobalOptions = (): TouchVueUIOptions => {\n\treturn globalOptions\n}\n\nconst install = (app: App, options: TouchVueUIOptions = {}) => {\n\t// 合并配置项\n\tglobalOptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t}\n\n\t// 处理国际化配置\n\tconst lang = options.lang || 'zh-CN'\n\tlet localeModule\n\tif (lang === 'en-US') {\n\t\tlocaleModule = enTouchvueLocale\n\t} else if (lang === 'zh-CN') {\n\t\tlocaleModule = cnTouchvueLocale\n\t} else {\n\t\t// 如果是其他语言,尝试从默认语言包开始,用户可能需要自己提供\n\t\tlocaleModule = cnTouchvueLocale\n\t}\n\t// 设置默认语言\n\tuseTouchvueLocale(localeModule)\n\n\t// 将配置注入到应用实例中,可以通过app.config.globalProperties.$TOUCHVUE_CONFIG访问\n\t// 工具\n\tapp.config.globalProperties.$getEm = getEm\n\tapp.config.globalProperties.$setMedia = setMedia\n\tapp.config.globalProperties.$getMedia = getMedia\n\n\tconst media = getMedia()\n\tapp.config.globalProperties.$phone = media === 'phone'\n\tapp.config.globalProperties.$pad = media === 'pad'\n\tapp.config.globalProperties.$pc = media === 'pc'\n\n\t// 全局默认配置\n\tapp.config.globalProperties.$TouchUI = {\n\t\tzIndex: globalOptions.zIndex || 2000, // 全局zIndex基数\n\t\tinput: globalOptions.input || {}\n\t}\n\t;(window as any).$TouchUI = {\n\t\tzIndex: 2000\n\t}\n\t// 初始化\n\tsetMedia(options)\n\tsetRatio(options)\n\n\t// 注册所有组件\n\tObject.values(TouchVueComponents).forEach(component => {\n\t\t// 确保是有效的Vue组件插件\n\t\tif (component && typeof component === 'object' && 'install' in component && typeof component.install === 'function') {\n\t\t\tapp.use(component as any)\n\t\t}\n\t})\n\n\tInstallDirective.install(app)\n}\n\n// export { install };\n\nexport default install\n\nexport * from '@touchvue/components'\nexport * from '@touchvue/directives'\nexport * from '@touchvue/locale'\nexport * from '@touchvue/utils'\nexport * from '@touchvue/hooks'\n"],"names":["globalOptions","enTouchvueLocale","cnTouchvueLocale","useTouchvueLocale","getEm","setMedia","getMedia","setRatio","TouchVueComponents","InstallDirective"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,MAAM,iBAAoC,GAAC;AAGvCA,qBAAA,GAAgB,EAAE,GAAG,cAAe,GAAA;AAGxC,MAAM,mBAAmB,MAAyB;AACxD,EAAO,OAAAA,qBAAA,CAAA;AACR,EAAA;AAEA,MAAM,OAAU,GAAA,CAAC,GAAU,EAAA,OAAA,GAA6B,EAAO,KAAA;AAE9D,EAAgBA,qBAAA,GAAA;AAAA,IACf,GAAG,cAAA;AAAA,IACH,GAAG,OAAA;AAAA,GACJ,CAAA;AAGA,EAAM,MAAA,IAAA,GAAO,QAAQ,IAAQ,IAAA,OAAA,CAAA;AAC7B,EAAI,IAAA,YAAA,CAAA;AACJ,EAAA,IAAI,SAAS,OAAS,EAAA;AACrB,IAAe,YAAA,GAAAC,YAAA,CAAA;AAAA,GAChB,MAAA,IAAW,SAAS,OAAS,EAAA;AAC5B,IAAe,YAAA,GAAAC,YAAA,CAAA;AAAA,GACT,MAAA;AAEN,IAAe,YAAA,GAAAA,YAAA,CAAA;AAAA,GAChB;AAEA,EAAAC,WAAA,CAAkB,YAAY,CAAA,CAAA;AAI9B,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,MAAS,GAAAC,WAAA,CAAA;AACrC,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,SAAY,GAAAC,cAAA,CAAA;AACxC,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,SAAY,GAAAC,cAAA,CAAA;AAExC,EAAA,MAAM,QAAQA,cAAS,EAAA,CAAA;AACvB,EAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,MAAA,GAAS,KAAU,KAAA,OAAA,CAAA;AAC/C,EAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,IAAA,GAAO,KAAU,KAAA,KAAA,CAAA;AAC7C,EAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,GAAA,GAAM,KAAU,KAAA,IAAA,CAAA;AAG5C,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,QAAW,GAAA;AAAA,IACtC,MAAA,EAAQN,sBAAc,MAAU,IAAA,GAAA;AAAA;AAAA,IAChC,KAAA,EAAOA,qBAAc,CAAA,KAAA,IAAS,EAAC;AAAA,GAChC,CAAA;AACC,EAAC,OAAe,QAAW,GAAA;AAAA,IAC3B,MAAQ,EAAA,GAAA;AAAA,GACT,CAAA;AAEA,EAAAK,cAAA,CAAS,OAAO,CAAA,CAAA;AAChB,EAAAE,cAAA,CAAS,OAAO,CAAA,CAAA;AAGhB,EAAA,MAAA,CAAO,MAAO,CAAAC,OAAkB,CAAE,CAAA,OAAA,CAAQ,CAAa,SAAA,KAAA;AAEtD,IAAI,IAAA,SAAA,IAAa,OAAO,SAAc,KAAA,QAAA,IAAY,aAAa,SAAa,IAAA,OAAO,SAAU,CAAA,OAAA,KAAY,UAAY,EAAA;AACpH,MAAA,GAAA,CAAI,IAAI,SAAgB,CAAA,CAAA;AAAA,KACzB;AAAA,GACA,CAAA,CAAA;AAED,EAAAC,eAAA,CAAiB,QAAQ,GAAG,CAAA,CAAA;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -75,7 +75,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
75
75
  return `${(currentLevel.value + 1) * omit}${unit}`;
76
76
  });
77
77
  const setClass = vue.computed(() => {
78
- const arr = ["to-form-readonly"];
78
+ const arr = ["to-disable-target"];
79
79
  if (errorTip.value) {
80
80
  arr.push("to-cascader-mode-line");
81
81
  arr.push("to-cascader-color-danger");