@touchvue/ui 1.0.0-beta.53 → 1.0.0-beta.55

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 (222) hide show
  1. package/es/components/calendar/src/calendar.d.ts +8 -1
  2. package/es/components/calendar/src/calendar.vue.d.ts +9 -0
  3. package/es/components/cascader/src/cascader-item.vue.d.ts +5 -1
  4. package/es/components/cascader/src/cascader.vue.d.ts +0 -7
  5. package/es/components/datepicker/src/DatePicker.vue.d.ts +9 -0
  6. package/es/components/datepicker/src/Picker.vue.d.ts +9 -0
  7. package/es/components/datepicker/src/date-picker.d.ts +1 -1
  8. package/es/components/datepicker/src/use-date-picker.d.ts +1 -0
  9. package/es/components/float/index.d.ts +15 -0
  10. package/es/components/float/src/Float.vue.d.ts +9 -0
  11. package/es/components/float/src/float.d.ts +4 -0
  12. package/es/components/icon/src/icon.vue.d.ts +2 -0
  13. package/es/components/input/src/input.vue.d.ts +2 -2
  14. package/es/components/rate/src/rate.vue.d.ts +46 -10
  15. package/es/components/select/src/select.d.ts +18 -0
  16. package/es/components/select/src/select.vue.d.ts +18 -0
  17. package/es/components/tab/src/tab-item.vue.d.ts +2 -0
  18. package/es/components/timeline/src/timeline.vue.d.ts +5 -0
  19. package/es/components/tip/src/tip.vue.d.ts +2 -2
  20. package/es/directives/index.d.ts +2 -1
  21. package/es/directives/press/index.d.ts +2 -0
  22. package/es/directives/press/src/press.d.ts +20 -0
  23. package/es/index.d.mjs +1 -0
  24. package/es/index.d.mjs.map +1 -1
  25. package/es/index.mjs +3 -1
  26. package/es/index.mjs.map +1 -1
  27. package/es/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.mjs +2425 -0
  28. package/es/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
  29. package/es/packages/components/calendar/src/calendar.mjs +7 -0
  30. package/es/packages/components/calendar/src/calendar.mjs.map +1 -1
  31. package/es/packages/components/calendar/src/calendar.vue2.mjs +31 -38
  32. package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
  33. package/es/packages/components/cascader/src/cascader-item.vue2.mjs +36 -84
  34. package/es/packages/components/cascader/src/cascader-item.vue2.mjs.map +1 -1
  35. package/es/packages/components/cascader/src/cascader.vue2.mjs +86 -28
  36. package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
  37. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs +2 -3
  38. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
  39. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +9 -3
  40. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
  41. package/es/packages/components/datepicker/src/Picker.vue2.mjs +4 -0
  42. package/es/packages/components/datepicker/src/Picker.vue2.mjs.map +1 -1
  43. package/es/packages/components/datepicker/src/date-picker.mjs.map +1 -1
  44. package/es/packages/components/datepicker/src/use-date-picker.mjs +8 -8
  45. package/es/packages/components/datepicker/src/use-date-picker.mjs.map +1 -1
  46. package/es/packages/components/float/src/Float.vue2.mjs +13 -6
  47. package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
  48. package/es/packages/components/float/src/float.mjs +1 -0
  49. package/es/packages/components/float/src/float.mjs.map +1 -1
  50. package/es/packages/components/header/src/header.vue2.mjs +4 -3
  51. package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
  52. package/es/packages/components/icon/src/icon.vue2.mjs +7 -3
  53. package/es/packages/components/icon/src/icon.vue2.mjs.map +1 -1
  54. package/es/packages/components/index.d.mjs +1 -0
  55. package/es/packages/components/index.d.mjs.map +1 -1
  56. package/es/packages/components/index.mjs +1 -0
  57. package/es/packages/components/index.mjs.map +1 -1
  58. package/es/packages/components/input/src/input.vue2.mjs +11 -11
  59. package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
  60. package/es/packages/components/msg/src/msg.vue2.mjs +1 -1
  61. package/es/packages/components/rate/src/rate.vue2.mjs +153 -85
  62. package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -1
  63. package/es/packages/components/segment/src/segment.vue.mjs +2 -2
  64. package/es/packages/components/select/src/select.mjs +18 -0
  65. package/es/packages/components/select/src/select.mjs.map +1 -1
  66. package/es/packages/components/select/src/select.vue2.mjs +262 -87
  67. package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
  68. package/es/packages/components/slide/src/slide.vue2.mjs.map +1 -1
  69. package/es/packages/components/tab/src/tab-item.vue2.mjs +3 -1
  70. package/es/packages/components/tab/src/tab-item.vue2.mjs.map +1 -1
  71. package/es/packages/components/tab/src/tab.vue2.mjs +24 -2
  72. package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
  73. package/es/packages/components/table/src/table.vue2.mjs +60 -2
  74. package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
  75. package/es/packages/components/tree/src/tree-item.vue2.mjs +1 -1
  76. package/es/packages/components/tree/src/tree-item.vue2.mjs.map +1 -1
  77. package/es/packages/components/tree/src/tree.vue2.mjs.map +1 -1
  78. package/es/packages/directives/index.d.mjs +1 -0
  79. package/es/packages/directives/index.d.mjs.map +1 -1
  80. package/es/packages/directives/index.mjs +3 -3
  81. package/es/packages/directives/index.mjs.map +1 -1
  82. package/es/packages/directives/press/index.d.mjs +2 -0
  83. package/es/packages/directives/press/index.mjs +2 -0
  84. package/es/packages/directives/press/src/press.d.mjs +2 -0
  85. package/es/packages/directives/press/src/press.d.mjs.map +1 -0
  86. package/es/packages/directives/press/src/press.mjs +100 -0
  87. package/es/packages/directives/press/src/press.mjs.map +1 -0
  88. package/es/packages/directives/tip/src/tip.mjs +42 -27
  89. package/es/packages/directives/tip/src/tip.mjs.map +1 -1
  90. package/es/packages/locale/format.mjs +1 -1
  91. package/es/packages/locale/format.mjs.map +1 -1
  92. package/es/packages/locale/lang/en-US.mjs +6 -0
  93. package/es/packages/locale/lang/en-US.mjs.map +1 -1
  94. package/es/packages/locale/lang/zh-CN.mjs +6 -0
  95. package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
  96. package/es/packages/utils/print.mjs +1 -1
  97. package/es/ui/index.d.ts +6 -0
  98. package/lib/components/calendar/src/calendar.d.ts +8 -1
  99. package/lib/components/calendar/src/calendar.vue.d.ts +9 -0
  100. package/lib/components/cascader/src/cascader-item.vue.d.ts +5 -1
  101. package/lib/components/cascader/src/cascader.vue.d.ts +0 -7
  102. package/lib/components/datepicker/src/DatePicker.vue.d.ts +9 -0
  103. package/lib/components/datepicker/src/Picker.vue.d.ts +9 -0
  104. package/lib/components/datepicker/src/date-picker.d.ts +1 -1
  105. package/lib/components/datepicker/src/use-date-picker.d.ts +1 -0
  106. package/lib/components/float/index.d.ts +15 -0
  107. package/lib/components/float/src/Float.vue.d.ts +9 -0
  108. package/lib/components/float/src/float.d.ts +4 -0
  109. package/lib/components/icon/src/icon.vue.d.ts +2 -0
  110. package/lib/components/input/src/input.vue.d.ts +2 -2
  111. package/lib/components/rate/src/rate.vue.d.ts +46 -10
  112. package/lib/components/select/src/select.d.ts +18 -0
  113. package/lib/components/select/src/select.vue.d.ts +18 -0
  114. package/lib/components/tab/src/tab-item.vue.d.ts +2 -0
  115. package/lib/components/timeline/src/timeline.vue.d.ts +5 -0
  116. package/lib/components/tip/src/tip.vue.d.ts +2 -2
  117. package/lib/directives/index.d.ts +2 -1
  118. package/lib/directives/press/index.d.ts +2 -0
  119. package/lib/directives/press/src/press.d.ts +20 -0
  120. package/lib/index.d.js +2 -0
  121. package/lib/index.d.js.map +1 -1
  122. package/lib/index.js +4 -1
  123. package/lib/index.js.map +1 -1
  124. package/lib/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.js +2429 -0
  125. package/lib/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.js.map +1 -0
  126. package/lib/packages/components/calendar/src/calendar.js +7 -0
  127. package/lib/packages/components/calendar/src/calendar.js.map +1 -1
  128. package/lib/packages/components/calendar/src/calendar.vue2.js +31 -38
  129. package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
  130. package/lib/packages/components/cascader/src/cascader-item.vue2.js +35 -83
  131. package/lib/packages/components/cascader/src/cascader-item.vue2.js.map +1 -1
  132. package/lib/packages/components/cascader/src/cascader.vue2.js +85 -27
  133. package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
  134. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js +1 -2
  135. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
  136. package/lib/packages/components/datepicker/src/DatePicker.vue2.js +9 -3
  137. package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
  138. package/lib/packages/components/datepicker/src/Picker.vue2.js +4 -0
  139. package/lib/packages/components/datepicker/src/Picker.vue2.js.map +1 -1
  140. package/lib/packages/components/datepicker/src/date-picker.js.map +1 -1
  141. package/lib/packages/components/datepicker/src/use-date-picker.js +8 -8
  142. package/lib/packages/components/datepicker/src/use-date-picker.js.map +1 -1
  143. package/lib/packages/components/float/src/Float.vue2.js +12 -5
  144. package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
  145. package/lib/packages/components/float/src/float.js +1 -0
  146. package/lib/packages/components/float/src/float.js.map +1 -1
  147. package/lib/packages/components/header/src/header.vue2.js +4 -3
  148. package/lib/packages/components/header/src/header.vue2.js.map +1 -1
  149. package/lib/packages/components/icon/src/icon.vue2.js +7 -3
  150. package/lib/packages/components/icon/src/icon.vue2.js.map +1 -1
  151. package/lib/packages/components/index.d.js +2 -0
  152. package/lib/packages/components/index.d.js.map +1 -1
  153. package/lib/packages/components/index.js +2 -0
  154. package/lib/packages/components/index.js.map +1 -1
  155. package/lib/packages/components/input/src/input.vue2.js +11 -11
  156. package/lib/packages/components/input/src/input.vue2.js.map +1 -1
  157. package/lib/packages/components/msg/src/msg.vue2.js +1 -1
  158. package/lib/packages/components/rate/src/rate.vue2.js +152 -84
  159. package/lib/packages/components/rate/src/rate.vue2.js.map +1 -1
  160. package/lib/packages/components/segment/src/segment.vue.js +2 -2
  161. package/lib/packages/components/select/src/select.js +18 -0
  162. package/lib/packages/components/select/src/select.js.map +1 -1
  163. package/lib/packages/components/select/src/select.vue2.js +261 -86
  164. package/lib/packages/components/select/src/select.vue2.js.map +1 -1
  165. package/lib/packages/components/slide/src/slide.vue2.js.map +1 -1
  166. package/lib/packages/components/tab/src/tab-item.vue2.js +3 -1
  167. package/lib/packages/components/tab/src/tab-item.vue2.js.map +1 -1
  168. package/lib/packages/components/tab/src/tab.vue2.js +23 -1
  169. package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
  170. package/lib/packages/components/table/src/table.vue2.js +59 -1
  171. package/lib/packages/components/table/src/table.vue2.js.map +1 -1
  172. package/lib/packages/components/tree/src/tree-item.vue2.js +1 -1
  173. package/lib/packages/components/tree/src/tree-item.vue2.js.map +1 -1
  174. package/lib/packages/components/tree/src/tree.vue2.js.map +1 -1
  175. package/lib/packages/directives/index.d.js +2 -0
  176. package/lib/packages/directives/index.d.js.map +1 -1
  177. package/lib/packages/directives/index.js +3 -2
  178. package/lib/packages/directives/index.js.map +1 -1
  179. package/lib/packages/directives/press/index.d.js +8 -0
  180. package/lib/packages/directives/press/index.js +8 -0
  181. package/lib/packages/directives/press/src/press.d.js +3 -0
  182. package/lib/packages/directives/press/src/press.d.js.map +1 -0
  183. package/lib/packages/directives/press/src/press.js +102 -0
  184. package/lib/packages/directives/press/src/press.js.map +1 -0
  185. package/lib/packages/directives/tip/src/tip.js +41 -26
  186. package/lib/packages/directives/tip/src/tip.js.map +1 -1
  187. package/lib/packages/locale/format.js +1 -1
  188. package/lib/packages/locale/format.js.map +1 -1
  189. package/lib/packages/locale/lang/en-US.js +6 -0
  190. package/lib/packages/locale/lang/en-US.js.map +1 -1
  191. package/lib/packages/locale/lang/zh-CN.js +6 -0
  192. package/lib/packages/locale/lang/zh-CN.js.map +1 -1
  193. package/lib/packages/utils/print.js +1 -1
  194. package/lib/ui/index.d.ts +6 -0
  195. package/package.json +1 -1
  196. package/theme/components/index.css +304 -173
  197. package/theme/index.css +304 -173
  198. package/theme/skin/default.css +304 -173
  199. package/es/directives/longtap/index.d.ts +0 -2
  200. package/es/directives/longtap/src/longtap.d.ts +0 -7
  201. package/es/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.mjs +0 -1386
  202. package/es/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.mjs.map +0 -1
  203. package/es/packages/directives/longtap/index.d.mjs +0 -2
  204. package/es/packages/directives/longtap/index.mjs +0 -2
  205. package/es/packages/directives/longtap/src/longtap.d.mjs +0 -2
  206. package/es/packages/directives/longtap/src/longtap.d.mjs.map +0 -1
  207. package/es/packages/directives/longtap/src/longtap.mjs +0 -80
  208. package/es/packages/directives/longtap/src/longtap.mjs.map +0 -1
  209. package/lib/directives/longtap/index.d.ts +0 -2
  210. package/lib/directives/longtap/src/longtap.d.ts +0 -7
  211. package/lib/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js +0 -1390
  212. package/lib/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js.map +0 -1
  213. package/lib/packages/directives/longtap/index.d.js +0 -8
  214. package/lib/packages/directives/longtap/index.js +0 -8
  215. package/lib/packages/directives/longtap/src/longtap.d.js +0 -3
  216. package/lib/packages/directives/longtap/src/longtap.d.js.map +0 -1
  217. package/lib/packages/directives/longtap/src/longtap.js +0 -82
  218. package/lib/packages/directives/longtap/src/longtap.js.map +0 -1
  219. /package/es/packages/directives/{longtap → press}/index.d.mjs.map +0 -0
  220. /package/es/packages/directives/{longtap → press}/index.mjs.map +0 -0
  221. /package/lib/packages/directives/{longtap → press}/index.d.js.map +0 -0
  222. /package/lib/packages/directives/{longtap → press}/index.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.ts"],"sourcesContent":["import { ExtractPropTypes, PropType } from 'vue'\r\n\r\nfunction ajax() {}\r\n\r\n/**\r\n * 选择框模式类型\r\n */\r\nexport type SelectMode = 'default' | 'fill' | 'none' | 'plain' | 'line' | string\r\n\r\n/**\r\n * 选择值的类型\r\n */\r\nexport type SelectValueType = string | number | (string | number)[]\r\n\r\n/**\r\n * 选择框选项数据类型\r\n */\r\nexport type SelectOptionsData = {\r\n\t/**\r\n\t * 默认的选项标题字段\r\n\t */\r\n\tlabel?: string | unknown\r\n\t/**\r\n\t * 默认的选项值字段\r\n\t */\r\n\tvalue?: string | number | unknown\r\n\tdisabled?: boolean\r\n\thide?: boolean\r\n\t[props: string]: any\r\n}\r\n\r\n/**\r\n * 箭头类型\r\n */\r\nexport type ArrowType = 'browse' | 'next' | ''\r\n\r\n/**\r\n * 选项显示模式\r\n */\r\nexport type OptionDisplay = 'none' | 'float' | 'popup' | string\r\n\r\nexport const selectProps = {\r\n\tflex: Boolean,\r\n\t/**\r\n\t * 懒加载\r\n\t */\r\n\tlazy: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: true\r\n\t},\r\n\t/**\r\n\t * 原生模式(性能极端低下情况下使用)\r\n\t */\r\n\tnative: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 表单校验描述\r\n\t */\r\n\tdesc: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 表单校验规则\r\n\t */\r\n\trule: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 元素ID\r\n\t */\r\n\tid: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 是否必填\r\n\t */\r\n\trequired: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 安全字符过滤\r\n\t */\r\n\tspChars: {\r\n\t\ttype: [String, Boolean],\r\n\t\tdefault: '/,\\\\,[,],{,},\"' // 微软拼音输入法使用单引号做上屏前多个字符分隔符,不能过滤单引号\r\n\t},\r\n\t/**\r\n\t * 单位\r\n\t */\r\n\tunit: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 分割符号\r\n\t */\r\n\tsplitSymbol: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * Tab索引\r\n\t */\r\n\ttabindex: {\r\n\t\ttype: String,\r\n\t\tdefault: '1'\r\n\t},\r\n\t/**\r\n\t * 值字段名\r\n\t */\r\n\tvalueText: {\r\n\t\ttype: String,\r\n\t\tdefault: 'value'\r\n\t},\r\n\t/**\r\n\t * 标签字段名\r\n\t */\r\n\tlabelText: {\r\n\t\ttype: String,\r\n\t\tdefault: 'label'\r\n\t},\r\n\t/**\r\n\t * 绑定值\r\n\t */\r\n\tmodelValue: {\r\n\t\ttype: [String, Number, Array] as PropType<SelectValueType>,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 选择框数据\r\n\t */\r\n\tdata: {\r\n\t\ttype: [Array, String] as PropType<SelectOptionsData[] | string>,\r\n\t\tdefault: () => []\r\n\t},\r\n\t/**\r\n\t * 占位符文本\r\n\t */\r\n\tplaceholder: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 占位符颜色\r\n\t */\r\n\tplaceholderColor: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 无匹配数据文本\r\n\t */\r\n\tnomatchText: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 暂无数据文本\r\n\t */\r\n\tnodataText: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tdisabled: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 是否多选\r\n\t */\r\n\tmultiple: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 是否可过滤\r\n\t */\r\n\tfilterable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 是否可输入\r\n\t */\r\n\tinputable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 使用全选文本\r\n\t */\r\n\tuseAllText: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 全选文本\r\n\t */\r\n\tallText: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 是否可清空\r\n\t */\r\n\tclearable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: true\r\n\t},\r\n\t/**\r\n\t * 多选是否可逐个删除\r\n\t */\r\n\tremovable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: true\r\n\t},\r\n\t/**\r\n\t * 选择框颜色\r\n\t */\r\n\tcolor: {\r\n\t\ttype: String,\r\n\t\tdefault: 'default'\r\n\t},\r\n\t/**\r\n\t * 选择框模式\r\n\t */\r\n\tmode: {\r\n\t\ttype: String as PropType<SelectMode>,\r\n\t\tdefault: 'default'\r\n\t},\r\n\t/**\r\n\t * 选择框宽度\r\n\t */\r\n\twidth: {\r\n\t\ttype: [Number, String],\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 箭头类型\r\n\t */\r\n\tarrowType: {\r\n\t\ttype: String as PropType<ArrowType>,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 选项宽度\r\n\t */\r\n\toptionWidth: {\r\n\t\ttype: [Number, String],\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 选项显示模式\r\n\t */\r\n\toptionDisplay: {\r\n\t\ttype: [Number, String] as PropType<OptionDisplay>,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 选项列数\r\n\t */\r\n\toptionCol: {\r\n\t\ttype: [Number, String],\r\n\t\tdefault: 1\r\n\t},\r\n\t/**\r\n\t * 选项换行\r\n\t */\r\n\toptionWrap: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 选项对齐方式\r\n\t */\r\n\toptionAlign: {\r\n\t\ttype: String as PropType<'left' | 'right' | 'center'>,\r\n\t\tdefault: 'left'\r\n\t},\r\n\t/**\r\n\t * HTTP请求函数\r\n\t */\r\n\thttpRequest: {\r\n\t\ttype: Function,\r\n\t\tdefault: ajax\r\n\t},\r\n\t/**\r\n\t * API地址\r\n\t */\r\n\tapi: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * API参数\r\n\t */\r\n\tapiParam: {\r\n\t\ttype: Object,\r\n\t\tdefault: null\r\n\t},\r\n\t/**\r\n\t * API请求头\r\n\t */\r\n\tapiHeaders: {\r\n\t\ttype: Object,\r\n\t\tdefault: () => ({})\r\n\t},\r\n\t/**\r\n\t * API标签字段\r\n\t */\r\n\tapiLabel: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 响应数据路径\r\n\t */\r\n\tresPath: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 错误信息路径\r\n\t */\r\n\terrorPath: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 成功状态码\r\n\t */\r\n\tsuccessCode: {\r\n\t\ttype: String,\r\n\t\tdefault: '0'\r\n\t},\r\n\t/**\r\n\t * 远程异步数据设置函数\r\n\t */\r\n\tsetDataFn: {\r\n\t\ttype: Function,\r\n\t\tdefault: null\r\n\t},\r\n\t/**\r\n\t * 前缀文本\r\n\t */\r\n\tprefix: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 后缀文本\r\n\t */\r\n\tsuffix: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 图标\r\n\t */\r\n\ticon: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 是否去除空格\r\n\t */\r\n\ttrim: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: true\r\n\t},\r\n\t/**\r\n\t * 多选时每次选择都关闭弹窗\r\n\t */\r\n\tcloseSelection: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 是否可验证\r\n\t */\r\n\tverifiable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: true\r\n\t},\r\n\t/**\r\n\t * 是否可比较\r\n\t */\r\n\tcomparable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 自定义标签函数\r\n\t */\r\n\tsetLabelFn: {\r\n\t\ttype: Function,\r\n\t\tdefault: undefined\r\n\t},\r\n\t/**\r\n\t * 是否换行\r\n\t */\r\n\twrap: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 过滤模式下清空数据是否弹出下拉框\r\n\t */\r\n\tfocusWhenClear: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 值改变前的回调\r\n\t */\r\n\tbeforeChange: {\r\n\t\ttype: Function,\r\n\t\tdefault: null\r\n\t},\r\n\t/**\r\n\t * 值类型\r\n\t */\r\n\tvalueType: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\t/**\r\n\t * 是否开启远程搜索\r\n\t */\r\n\tremote: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\t/**\r\n\t * 远程搜索方法\r\n\t */\r\n\tremoteMethod: {\r\n\t\ttype: Function,\r\n\t\tdefault: null\r\n\t}\r\n}\r\n\r\nexport type SelectProps = ExtractPropTypes<typeof selectProps>\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.ts"],"sourcesContent":["import { ExtractPropTypes, PropType } from 'vue'\n\nfunction ajax() {}\n\n/**\n * 选择框模式类型\n */\nexport type SelectMode = 'default' | 'fill' | 'none' | 'plain' | 'line' | string\n\n/**\n * 选择值的类型\n */\nexport type SelectValueType = string | number | (string | number)[]\n\n/**\n * 选择框选项数据类型\n */\nexport type SelectOptionsData = {\n\t/**\n\t * 默认的选项标题字段\n\t */\n\tlabel?: string | unknown\n\t/**\n\t * 默认的选项值字段\n\t */\n\tvalue?: string | number | unknown\n\tdisabled?: boolean\n\thide?: boolean\n\t[props: string]: any\n}\n\n/**\n * 箭头类型\n */\nexport type ArrowType = 'browse' | 'next' | ''\n\n/**\n * 选项显示模式\n */\nexport type OptionDisplay = 'none' | 'float' | 'popup' | string\n\nexport const selectProps = {\n\tflex: Boolean,\n\t/**\n\t * 懒加载\n\t */\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true\n\t},\n\t/**\n\t * 原生模式(性能极端低下情况下使用)\n\t */\n\tnative: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 表单校验描述\n\t */\n\tdesc: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 表单校验规则\n\t */\n\trule: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 元素ID\n\t */\n\tid: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 是否必填\n\t */\n\trequired: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 安全字符过滤\n\t */\n\tspChars: {\n\t\ttype: [String, Boolean],\n\t\tdefault: '/,\\\\,[,],{,},\"' // 微软拼音输入法使用单引号做上屏前多个字符分隔符,不能过滤单引号\n\t},\n\t/**\n\t * 单位\n\t */\n\tunit: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 分割符号\n\t */\n\tsplitSymbol: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * Tab索引\n\t */\n\ttabindex: {\n\t\ttype: String,\n\t\tdefault: '1'\n\t},\n\t/**\n\t * 值字段名\n\t */\n\tvalueText: {\n\t\ttype: String,\n\t\tdefault: 'value'\n\t},\n\t/**\n\t * 标签字段名\n\t */\n\tlabelText: {\n\t\ttype: String,\n\t\tdefault: 'label'\n\t},\n\t/**\n\t * 绑定值\n\t */\n\tmodelValue: {\n\t\ttype: [String, Number, Array] as PropType<SelectValueType>,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 选择框数据\n\t */\n\tdata: {\n\t\ttype: [Array, String] as PropType<SelectOptionsData[] | string>,\n\t\tdefault: () => []\n\t},\n\t/**\n\t * 占位符文本\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 占位符颜色\n\t */\n\tplaceholderColor: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 无匹配数据文本\n\t */\n\tnomatchText: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 暂无数据文本\n\t */\n\tnodataText: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 是否多选\n\t */\n\tmultiple: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 多选时是否折叠标签为计数显示(+N)\n\t * 开启后自动根据宽度判断一行能放下的标签数,超出部分显示 +N\n\t */\n\tisCount: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 是否可过滤\n\t */\n\tfilterable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 是否可输入\n\t */\n\tinputable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 使用全选文本\n\t */\n\tuseAllText: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 全选文本\n\t */\n\tallText: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 是否可清空\n\t */\n\tclearable: {\n\t\ttype: Boolean,\n\t\tdefault: true\n\t},\n\t/**\n\t * 清空方式\n\t * - icon:输入框内显示清除图标按钮,不展示\"请选择\"默认项\n\t * - default:通过下拉选项中的\"请选择\"空选项清空(原始行为)\n\t * 支持全局配置 $TouchUI.select.clearType\n\t */\n\tclearType: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 多选是否可逐个删除\n\t */\n\tremovable: {\n\t\ttype: Boolean,\n\t\tdefault: true\n\t},\n\t/**\n\t * 选择框颜色\n\t */\n\tcolor: {\n\t\ttype: String,\n\t\tdefault: 'default'\n\t},\n\t/**\n\t * 选择框模式\n\t */\n\tmode: {\n\t\ttype: String as PropType<SelectMode>,\n\t\tdefault: 'default'\n\t},\n\t/**\n\t * 选择框宽度\n\t */\n\twidth: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 箭头类型\n\t */\n\tarrowType: {\n\t\ttype: String as PropType<ArrowType>,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 选项宽度\n\t */\n\toptionWidth: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 选项显示模式\n\t */\n\toptionDisplay: {\n\t\ttype: [Number, String] as PropType<OptionDisplay>,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 选项列数\n\t */\n\toptionCol: {\n\t\ttype: [Number, String],\n\t\tdefault: 1\n\t},\n\t/**\n\t * 选项换行\n\t */\n\toptionWrap: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 选项对齐方式\n\t */\n\toptionAlign: {\n\t\ttype: String as PropType<'left' | 'right' | 'center'>,\n\t\tdefault: 'left'\n\t},\n\t/**\n\t * HTTP请求函数\n\t */\n\thttpRequest: {\n\t\ttype: Function,\n\t\tdefault: ajax\n\t},\n\t/**\n\t * API地址\n\t */\n\tapi: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * API参数\n\t */\n\tapiParam: {\n\t\ttype: Object,\n\t\tdefault: null\n\t},\n\t/**\n\t * API请求头\n\t */\n\tapiHeaders: {\n\t\ttype: Object,\n\t\tdefault: () => ({})\n\t},\n\t/**\n\t * API标签字段\n\t */\n\tapiLabel: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 响应数据路径\n\t */\n\tresPath: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 错误信息路径\n\t */\n\terrorPath: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 成功状态码\n\t */\n\tsuccessCode: {\n\t\ttype: String,\n\t\tdefault: '0'\n\t},\n\t/**\n\t * 远程异步数据设置函数\n\t */\n\tsetDataFn: {\n\t\ttype: Function,\n\t\tdefault: null\n\t},\n\t/**\n\t * 前缀文本\n\t */\n\tprefix: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 后缀文本\n\t */\n\tsuffix: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 图标\n\t */\n\ticon: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 是否去除空格\n\t */\n\ttrim: {\n\t\ttype: Boolean,\n\t\tdefault: true\n\t},\n\t/**\n\t * 多选时每次选择都关闭弹窗\n\t */\n\tcloseSelection: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 是否可验证\n\t */\n\tverifiable: {\n\t\ttype: Boolean,\n\t\tdefault: true\n\t},\n\t/**\n\t * 是否可比较\n\t */\n\tcomparable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 自定义标签函数\n\t */\n\tsetLabelFn: {\n\t\ttype: Function,\n\t\tdefault: undefined\n\t},\n\t/**\n\t * 是否换行\n\t */\n\twrap: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 过滤模式下清空数据是否弹出下拉框\n\t */\n\tfocusWhenClear: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 值改变前的回调\n\t */\n\tbeforeChange: {\n\t\ttype: Function,\n\t\tdefault: null\n\t},\n\t/**\n\t * 值类型\n\t */\n\tvalueType: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 是否开启远程搜索\n\t */\n\tremote: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 远程搜索方法\n\t */\n\tremoteMethod: {\n\t\ttype: Function,\n\t\tdefault: null\n\t}\n}\n\nexport type SelectProps = ExtractPropTypes<typeof selectProps>\n"],"names":[],"mappings":"AAEA,SAAS,IAAO,GAAA;AAAC,CAAA;AAuCV,MAAM,WAAc,GAAA;AAAA,EAC1B,IAAM,EAAA,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,EAAI,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACR,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,IACtB,OAAS,EAAA,gBAAA;AAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,GAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,CAAC,MAAQ,EAAA,MAAA,EAAQ,KAAK,CAAA;AAAA,IAC5B,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAA,EAAM,CAAC,KAAA,EAAO,MAAM,CAAA;AAAA,IACpB,OAAA,EAAS,MAAM,EAAC;AAAA,GACjB;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAkB,EAAA;AAAA,IACjB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA,EACA,QAAU,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAS,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,KAAO,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,SAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,SAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,KAAO,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACZ,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,aAAe,EAAA;AAAA,IACd,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACZ,IAAM,EAAA,QAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,GAAK,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GAClB;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,GAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,QAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,cAAgB,EAAA;AAAA,IACf,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,QAAA;AAAA,IACN,OAAS,EAAA,KAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,cAAgB,EAAA;AAAA,IACf,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,YAAc,EAAA;AAAA,IACb,IAAM,EAAA,QAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,YAAc,EAAA;AAAA,IACb,IAAM,EAAA,QAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACV;AACD;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, onMounted, onUnmounted, inject, computed, watch, nextTick, resolveDirective, openBlock, createElementBlock, Fragment, createCommentVNode, withDirectives, unref, normalizeClass, normalizeStyle, withKeys, createElementVNode, vShow, renderSlot, toDisplayString, createBlock, renderList, vModelSelect, createTextVNode, withCtx, createVNode, Teleport, withModifiers } from 'vue';
1
+ import { defineComponent, ref, onMounted, nextTick, onUnmounted, inject, getCurrentInstance, computed, watch, resolveDirective, openBlock, createElementBlock, Fragment, createCommentVNode, withDirectives, unref, normalizeClass, normalizeStyle, withKeys, createElementVNode, vShow, renderSlot, toDisplayString, createBlock, renderList, vModelSelect, createTextVNode, withCtx, withModifiers, createVNode, Teleport } from 'vue';
2
2
  import { langKey, t } from '../../../locale/index.mjs';
3
3
  import { selectProps } from './select.mjs';
4
4
  import { ToButton } from '../../button/index.mjs';
@@ -39,8 +39,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
39
39
  onMounted(() => {
40
40
  calcScale();
41
41
  window.addEventListener("resize", calcScale);
42
+ nextTick(() => setupTagResizeObserver());
42
43
  onUnmounted(() => {
43
44
  window.removeEventListener("resize", calcScale);
45
+ if (tagResizeObserver) {
46
+ tagResizeObserver.disconnect();
47
+ tagResizeObserver = null;
48
+ }
44
49
  });
45
50
  });
46
51
  const props = __props;
@@ -50,6 +55,28 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
50
55
  const $TouchUI = inject("$TouchUI", {
51
56
  colors: ["primary", "success", "warning", "danger", "info", "default", "dark"]
52
57
  });
58
+ const ins = getCurrentInstance();
59
+ const iClearType = computed(() => {
60
+ var _a, _b, _c;
61
+ if (props.clearType) {
62
+ return props.clearType;
63
+ }
64
+ return (_c = (_b = (_a = ins == null ? void 0 : ins.appContext.config.globalProperties.$TouchUI) == null ? void 0 : _a.select) == null ? void 0 : _b.clearType) != null ? _c : "icon";
65
+ });
66
+ const showClearIcon = computed(() => {
67
+ var _a;
68
+ if (!props.clearable || disabled.value || props.native)
69
+ return false;
70
+ if (iClearType.value !== "icon")
71
+ return false;
72
+ if (props.inputable || props.filterable || props.setDataFn || props.remoteMethod)
73
+ return false;
74
+ if (props.multiple) {
75
+ return selected.value.filter((item) => !item.hide).length > 0;
76
+ } else {
77
+ return Boolean((_a = selected.value) == null ? void 0 : _a[iValueText.value]);
78
+ }
79
+ });
53
80
  const { isPhone } = useDevice();
54
81
  const $phone = isPhone.value;
55
82
  const iValue = ref(props.modelValue);
@@ -66,6 +93,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
66
93
  const multipleInputValue = ref("");
67
94
  const multipleFilterValue = ref("");
68
95
  const setDataInputValue = ref("");
96
+ const isFiltering = ref(false);
69
97
  const dataLoading = ref(false);
70
98
  const errorTip = ref("");
71
99
  const errorType = ref("rule");
@@ -86,6 +114,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
86
114
  const popupFilter = ref(null);
87
115
  const popupInput = ref(null);
88
116
  const trigger = ref(null);
117
+ const tagContainerRef = ref(null);
89
118
  const options = ref([]);
90
119
  const anotherOptions = ref([]);
91
120
  const { selected } = useSelectOptionData({
@@ -96,6 +125,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
96
125
  return true;
97
126
  if (props.remoteMethod)
98
127
  return true;
128
+ if (!isFiltering.value)
129
+ return true;
99
130
  const value = filterValue.value;
100
131
  if (value === "")
101
132
  return true;
@@ -106,12 +137,16 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
106
137
  return true;
107
138
  if (props.remoteMethod)
108
139
  return true;
140
+ if (!isFiltering.value)
141
+ return true;
109
142
  const value = multipleFilterValue.value;
110
143
  if (value === "")
111
144
  return true;
112
145
  return item[iLabelText.value].includes(value);
113
146
  };
114
147
  const nomatch = computed(() => {
148
+ if (!isFiltering.value)
149
+ return false;
115
150
  let nomatch2 = true;
116
151
  let value = props.multiple ? multipleFilterValue.value : filterValue.value;
117
152
  if (value === "") {
@@ -281,7 +316,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
281
316
  if (props.native) {
282
317
  return;
283
318
  }
284
- if (!props.multiple && props.clearable && !props.inputable && !props.setDataFn && !props.filterable && !props.remoteMethod && (!props.optionDisplay || props.optionDisplay === "float")) {
319
+ if (!props.multiple && props.clearable && iClearType.value === "default" && !props.inputable && !props.setDataFn && !props.filterable && !props.remoteMethod && (!props.optionDisplay || props.optionDisplay === "float")) {
285
320
  options.value.unshift({
286
321
  [iLabelText.value]: "",
287
322
  [iValueText.value]: ""
@@ -524,6 +559,82 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
524
559
  }
525
560
  return arr;
526
561
  });
562
+ const visibleCount = ref(Infinity);
563
+ let isRecalculating = false;
564
+ let tagResizeObserver = null;
565
+ const displaySelected = computed(() => {
566
+ return selected.value.filter((item) => !item.hide);
567
+ });
568
+ const overflowCount = computed(() => {
569
+ if (!props.isCount)
570
+ return 0;
571
+ const max = visibleCount.value;
572
+ if (max >= displaySelected.value.length)
573
+ return 0;
574
+ return displaySelected.value.length - max;
575
+ });
576
+ const recalcVisibleCount = () => {
577
+ if (!props.isCount || isRecalculating || !tagContainerRef.value)
578
+ return;
579
+ isRecalculating = true;
580
+ visibleCount.value = Infinity;
581
+ nextTick(() => {
582
+ const container = tagContainerRef.value;
583
+ if (!container) {
584
+ isRecalculating = false;
585
+ return;
586
+ }
587
+ const containerWidth = container.clientWidth;
588
+ const tags = container.querySelectorAll(".to-select-item");
589
+ if (tags.length === 0) {
590
+ isRecalculating = false;
591
+ return;
592
+ }
593
+ const style = getComputedStyle(container);
594
+ const fontSize = parseFloat(style.fontSize) || 16;
595
+ const gap = parseFloat(style.gap || style.rowGap) || 0;
596
+ const firstTagStyle = getComputedStyle(tags[0]);
597
+ const tagMarginLeft = parseFloat(firstTagStyle.marginLeft) || 0;
598
+ const tagMarginRight = parseFloat(firstTagStyle.marginRight) || 0;
599
+ const tagMargin = tagMarginLeft + tagMarginRight;
600
+ const overflowEstimate = 3 * fontSize + tagMargin + gap;
601
+ let reserved = overflowEstimate;
602
+ const inputEl = container.querySelector(".to-select-input");
603
+ if (inputEl) {
604
+ const inputStyle = getComputedStyle(inputEl);
605
+ const inputMargin = (parseFloat(inputStyle.marginLeft) || 0) + (parseFloat(inputStyle.marginRight) || 0);
606
+ reserved += inputEl.offsetWidth + inputMargin + gap;
607
+ }
608
+ let totalWidth = reserved;
609
+ let count = 0;
610
+ for (let i = 0; i < tags.length; i++) {
611
+ const w = tags[i].offsetWidth + tagMargin + gap;
612
+ if (totalWidth + w > containerWidth)
613
+ break;
614
+ totalWidth += w;
615
+ count++;
616
+ }
617
+ visibleCount.value = count > 0 ? count : 1;
618
+ nextTick(() => {
619
+ isRecalculating = false;
620
+ });
621
+ });
622
+ };
623
+ const setupTagResizeObserver = () => {
624
+ if (props.isCount && props.multiple && tagContainerRef.value) {
625
+ if (!tagResizeObserver) {
626
+ tagResizeObserver = new ResizeObserver(() => recalcVisibleCount());
627
+ }
628
+ tagResizeObserver.observe(tagContainerRef.value);
629
+ recalcVisibleCount();
630
+ } else {
631
+ if (tagResizeObserver) {
632
+ tagResizeObserver.disconnect();
633
+ tagResizeObserver = null;
634
+ }
635
+ visibleCount.value = Infinity;
636
+ }
637
+ };
527
638
  const change = (value, option) => {
528
639
  if (props.beforeChange) {
529
640
  let result = props.beforeChange(value, option);
@@ -629,6 +740,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
629
740
  }
630
741
  };
631
742
  const filterInput = () => {
743
+ isFiltering.value = true;
632
744
  if (props.remoteMethod) {
633
745
  const keyword = props.multiple ? multipleFilterValue.value : filterValue.value;
634
746
  clearTimeout(remoteSearchTimer);
@@ -638,6 +750,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
638
750
  }
639
751
  };
640
752
  const filterClear = () => {
753
+ isFiltering.value = false;
641
754
  iValue.value = "";
642
755
  };
643
756
  const setDataLoading = (loading) => {
@@ -698,6 +811,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
698
811
  const clear = () => {
699
812
  clearChange();
700
813
  };
814
+ const clearClick = () => {
815
+ clear();
816
+ closeLayer();
817
+ };
701
818
  const clearChange = () => {
702
819
  if (props.multiple) {
703
820
  change("", []);
@@ -842,6 +959,21 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
842
959
  disabled.value = newVal;
843
960
  }
844
961
  );
962
+ watch(
963
+ () => props.isCount,
964
+ () => {
965
+ nextTick(() => setupTagResizeObserver());
966
+ }
967
+ );
968
+ watch(
969
+ selected,
970
+ () => {
971
+ if (props.isCount) {
972
+ nextTick(() => recalcVisibleCount());
973
+ }
974
+ },
975
+ { deep: true }
976
+ );
845
977
  const getLabel = (val) => {
846
978
  const obj = options.value.find((item) => String(item[iValueText.value]) === String(val));
847
979
  if (obj && obj[iLabelText.value]) {
@@ -926,6 +1058,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
926
1058
  }
927
1059
  };
928
1060
  const layerClose = () => {
1061
+ isFiltering.value = false;
929
1062
  if (!props.multiple) {
930
1063
  if ((props.filterable || props.remoteMethod) && !props.inputable) {
931
1064
  if (iValue.value) {
@@ -956,6 +1089,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
956
1089
  openOptionLayer();
957
1090
  };
958
1091
  const layerOpen = () => {
1092
+ isFiltering.value = false;
959
1093
  calcScale();
960
1094
  };
961
1095
  const compare = () => {
@@ -1072,7 +1206,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
1072
1206
  ref: selector,
1073
1207
  "onUpdate:modelValue": ($event) => iValue.value = $event
1074
1208
  }, [
1075
- _ctx.clearable ? (openBlock(), createElementBlock(
1209
+ _ctx.clearable && iClearType.value === "default" ? (openBlock(), createElementBlock(
1076
1210
  "option",
1077
1211
  {
1078
1212
  key: 0,
@@ -1257,91 +1391,124 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
1257
1391
  { key: 2 },
1258
1392
  [
1259
1393
  createCommentVNode(" \u591A\u9009\u6807\u7B7E\u5BB9\u5668 "),
1260
- createElementVNode("span", { class: "to-select-tag" }, [
1261
- createCommentVNode(" \u5DF2\u9009\u4E2D\u9879\u7684\u6807\u7B7E\u663E\u793A "),
1262
- unref(selected).length > 0 && !(isAll.value && _ctx.useAllText) ? (openBlock(true), createElementBlock(
1263
- Fragment,
1264
- { key: 0 },
1265
- renderList(unref(selected), (item, index) => {
1266
- return openBlock(), createElementBlock(
1267
- Fragment,
1268
- null,
1269
- [
1270
- !item.hide ? (openBlock(), createBlock(unref(ToTag), {
1271
- key: index,
1272
- class: "to-select-item",
1273
- removable: _ctx.removable && !disabled.value,
1274
- onRemove: ($event) => removeTag(item)
1275
- }, {
1276
- default: withCtx(() => [
1277
- createTextVNode(
1278
- toDisplayString(item[iLabelText.value]),
1279
- 1
1280
- /* TEXT */
1281
- )
1282
- ]),
1283
- _: 2
1284
- /* DYNAMIC */
1285
- }, 1032, ["removable", "onRemove"])) : createCommentVNode("v-if", true)
1286
- ],
1287
- 64
1288
- /* STABLE_FRAGMENT */
1289
- );
1290
- }),
1291
- 256
1292
- /* UNKEYED_FRAGMENT */
1293
- )) : createCommentVNode("v-if", true),
1294
- createCommentVNode(" \u591A\u9009\u8F93\u5165\u6846\u533A\u57DF\uFF08\u975E\u624B\u673A\u7AEF\u6216\u624B\u673A\u7AEF\u65E0\u9009\u4E2D\u9879\u65F6\u663E\u793A\uFF09 "),
1295
- !unref($phone) || unref($phone) && unref(selected).length === 0 ? (openBlock(), createElementBlock("span", {
1296
- key: 1,
1297
- class: "to-select-input"
1298
- }, [
1299
- createCommentVNode(" \u591A\u9009\u53EF\u8F93\u5165\u6A21\u5F0F\u7684\u8F93\u5165\u6846 "),
1300
- _ctx.inputable && !_ctx.filterable && !_ctx.remoteMethod ? (openBlock(), createBlock(unref(ToInput), {
1301
- key: 0,
1302
- ref_key: "input",
1303
- ref: input,
1304
- modelValue: multipleInputValue.value,
1305
- "onUpdate:modelValue": ($event) => multipleInputValue.value = $event,
1306
- "sp-chars": _ctx.spChars,
1307
- disabled: unref($phone),
1308
- "prevent-focus": "",
1309
- mode: "none",
1310
- placeholder: unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || unref(t)("to.common.placeholder.select"),
1311
- onFocus: multipleInputFocus,
1312
- onBlur: multipleInputBlur
1313
- }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "disabled", "placeholder"])) : createCommentVNode("v-if", true),
1314
- createCommentVNode(" \u591A\u9009\u53EF\u8FC7\u6EE4\u6A21\u5F0F filterable = true \u6216 \u8FDC\u7A0B\u641C\u7D22\u6A21\u5F0F remoteMethod \u5B58\u5728\u7684\u8F93\u5165\u6846 "),
1315
- _ctx.filterable || _ctx.remoteMethod ? (openBlock(), createBlock(unref(ToInput), {
1394
+ createElementVNode(
1395
+ "span",
1396
+ {
1397
+ ref_key: "tagContainerRef",
1398
+ ref: tagContainerRef,
1399
+ class: normalizeClass(["to-select-tag", { "is-collapse": _ctx.isCount }])
1400
+ },
1401
+ [
1402
+ createCommentVNode(" \u5DF2\u9009\u4E2D\u9879\u7684\u6807\u7B7E\u663E\u793A "),
1403
+ unref(selected).length > 0 && !(isAll.value && _ctx.useAllText) ? (openBlock(), createElementBlock(
1404
+ Fragment,
1405
+ { key: 0 },
1406
+ [
1407
+ (openBlock(true), createElementBlock(
1408
+ Fragment,
1409
+ null,
1410
+ renderList(_ctx.isCount ? displaySelected.value : unref(selected), (item, index) => {
1411
+ return openBlock(), createElementBlock(
1412
+ Fragment,
1413
+ { key: index },
1414
+ [
1415
+ (_ctx.isCount ? index < visibleCount.value : !item.hide) ? (openBlock(), createBlock(unref(ToTag), {
1416
+ key: 0,
1417
+ class: "to-select-item",
1418
+ removable: _ctx.removable && !disabled.value,
1419
+ onRemove: ($event) => removeTag(item)
1420
+ }, {
1421
+ default: withCtx(() => [
1422
+ createTextVNode(
1423
+ toDisplayString(item[iLabelText.value]),
1424
+ 1
1425
+ /* TEXT */
1426
+ )
1427
+ ]),
1428
+ _: 2
1429
+ /* DYNAMIC */
1430
+ }, 1032, ["removable", "onRemove"])) : createCommentVNode("v-if", true)
1431
+ ],
1432
+ 64
1433
+ /* STABLE_FRAGMENT */
1434
+ );
1435
+ }),
1436
+ 128
1437
+ /* KEYED_FRAGMENT */
1438
+ )),
1439
+ createCommentVNode(" \u6298\u53E0\u6A21\u5F0F\u4E0B\u663E\u793A +N "),
1440
+ _ctx.isCount && overflowCount.value > 0 ? (openBlock(), createBlock(unref(ToTag), {
1441
+ key: 0,
1442
+ class: "to-select-overflow"
1443
+ }, {
1444
+ default: withCtx(() => [
1445
+ createTextVNode(
1446
+ " +" + toDisplayString(overflowCount.value),
1447
+ 1
1448
+ /* TEXT */
1449
+ )
1450
+ ]),
1451
+ _: 1
1452
+ /* STABLE */
1453
+ })) : createCommentVNode("v-if", true)
1454
+ ],
1455
+ 64
1456
+ /* STABLE_FRAGMENT */
1457
+ )) : createCommentVNode("v-if", true),
1458
+ createCommentVNode(" \u591A\u9009\u8F93\u5165\u6846\u533A\u57DF\uFF08\u975E\u624B\u673A\u7AEF\u6216\u624B\u673A\u7AEF\u65E0\u9009\u4E2D\u9879\u65F6\u663E\u793A\uFF09 "),
1459
+ !unref($phone) || unref($phone) && unref(selected).length === 0 ? (openBlock(), createElementBlock("span", {
1316
1460
  key: 1,
1317
- ref_key: "filter",
1318
- ref: filter,
1319
- modelValue: multipleFilterValue.value,
1320
- "onUpdate:modelValue": ($event) => multipleFilterValue.value = $event,
1321
- "sp-chars": _ctx.inputable ? _ctx.spChars : false,
1322
- disabled: unref($phone),
1323
- "prevent-focus": "",
1324
- mode: "none",
1325
- placeholder: unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || unref(t)("to.common.placeholder.select"),
1326
- onFocus: multipleFilterFocus,
1327
- onBlur: multipleFilterBlur
1328
- }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "disabled", "placeholder"])) : createCommentVNode("v-if", true),
1329
- createCommentVNode(" \u591A\u9009\u81EA\u5B9A\u4E49\u6570\u636E\u8BBE\u7F6E\u6A21\u5F0F\u7684\u8F93\u5165\u6846 "),
1330
- _ctx.setDataFn ? (openBlock(), createBlock(unref(ToInput), {
1331
- key: 2,
1332
- ref_key: "filter",
1333
- ref: filter,
1334
- modelValue: setDataInputValue.value,
1335
- "onUpdate:modelValue": ($event) => setDataInputValue.value = $event,
1336
- "sp-chars": _ctx.inputable ? _ctx.spChars : false,
1337
- "prevent-focus": "",
1338
- mode: "none",
1339
- placeholder: unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || unref(t)("to.common.placeholder.select"),
1340
- onFocus: multipleFilterFocus,
1341
- onBlur: multipleFilterBlur
1342
- }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "placeholder"])) : createCommentVNode("v-if", true)
1343
- ])) : createCommentVNode("v-if", true)
1344
- ])
1461
+ class: "to-select-input"
1462
+ }, [
1463
+ createCommentVNode(" \u591A\u9009\u53EF\u8F93\u5165\u6A21\u5F0F\u7684\u8F93\u5165\u6846 "),
1464
+ _ctx.inputable && !_ctx.filterable && !_ctx.remoteMethod ? (openBlock(), createBlock(unref(ToInput), {
1465
+ key: 0,
1466
+ ref_key: "input",
1467
+ ref: input,
1468
+ modelValue: multipleInputValue.value,
1469
+ "onUpdate:modelValue": ($event) => multipleInputValue.value = $event,
1470
+ "sp-chars": _ctx.spChars,
1471
+ disabled: unref($phone),
1472
+ "prevent-focus": "",
1473
+ mode: "none",
1474
+ placeholder: unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || unref(t)("to.common.placeholder.select"),
1475
+ onFocus: multipleInputFocus,
1476
+ onBlur: multipleInputBlur
1477
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "disabled", "placeholder"])) : createCommentVNode("v-if", true),
1478
+ createCommentVNode(" \u591A\u9009\u53EF\u8FC7\u6EE4\u6A21\u5F0F filterable = true \u6216 \u8FDC\u7A0B\u641C\u7D22\u6A21\u5F0F remoteMethod \u5B58\u5728\u7684\u8F93\u5165\u6846 "),
1479
+ _ctx.filterable || _ctx.remoteMethod ? (openBlock(), createBlock(unref(ToInput), {
1480
+ key: 1,
1481
+ ref_key: "filter",
1482
+ ref: filter,
1483
+ modelValue: multipleFilterValue.value,
1484
+ "onUpdate:modelValue": ($event) => multipleFilterValue.value = $event,
1485
+ "sp-chars": _ctx.inputable ? _ctx.spChars : false,
1486
+ disabled: unref($phone),
1487
+ "prevent-focus": "",
1488
+ mode: "none",
1489
+ placeholder: unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || unref(t)("to.common.placeholder.select"),
1490
+ onFocus: multipleFilterFocus,
1491
+ onBlur: multipleFilterBlur
1492
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "disabled", "placeholder"])) : createCommentVNode("v-if", true),
1493
+ createCommentVNode(" \u591A\u9009\u81EA\u5B9A\u4E49\u6570\u636E\u8BBE\u7F6E\u6A21\u5F0F\u7684\u8F93\u5165\u6846 "),
1494
+ _ctx.setDataFn ? (openBlock(), createBlock(unref(ToInput), {
1495
+ key: 2,
1496
+ ref_key: "filter",
1497
+ ref: filter,
1498
+ modelValue: setDataInputValue.value,
1499
+ "onUpdate:modelValue": ($event) => setDataInputValue.value = $event,
1500
+ "sp-chars": _ctx.inputable ? _ctx.spChars : false,
1501
+ "prevent-focus": "",
1502
+ mode: "none",
1503
+ placeholder: unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || unref(t)("to.common.placeholder.select"),
1504
+ onFocus: multipleFilterFocus,
1505
+ onBlur: multipleFilterBlur
1506
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "placeholder"])) : createCommentVNode("v-if", true)
1507
+ ])) : createCommentVNode("v-if", true)
1508
+ ],
1509
+ 2
1510
+ /* CLASS */
1511
+ )
1345
1512
  ],
1346
1513
  2112
1347
1514
  /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
@@ -1354,6 +1521,14 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
1354
1521
  64
1355
1522
  /* STABLE_FRAGMENT */
1356
1523
  )),
1524
+ createCommentVNode(" \u6E05\u9664\u56FE\u6807 "),
1525
+ showClearIcon.value ? (openBlock(), createBlock(unref(ToIcon), {
1526
+ key: 3,
1527
+ class: "to-select-clear",
1528
+ link: "",
1529
+ value: "close",
1530
+ onClick: withModifiers(clearClick, ["stop"])
1531
+ })) : createCommentVNode("v-if", true),
1357
1532
  createCommentVNode(" \u4E0B\u62C9\u7BAD\u5934\u56FE\u6807 "),
1358
1533
  createElementVNode(
1359
1534
  "span",