@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.js","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.js","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;;;;"}
@@ -43,8 +43,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
43
43
  vue.onMounted(() => {
44
44
  calcScale();
45
45
  window.addEventListener("resize", calcScale);
46
+ vue.nextTick(() => setupTagResizeObserver());
46
47
  vue.onUnmounted(() => {
47
48
  window.removeEventListener("resize", calcScale);
49
+ if (tagResizeObserver) {
50
+ tagResizeObserver.disconnect();
51
+ tagResizeObserver = null;
52
+ }
48
53
  });
49
54
  });
50
55
  const props = __props;
@@ -54,6 +59,28 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
54
59
  const $TouchUI = vue.inject("$TouchUI", {
55
60
  colors: ["primary", "success", "warning", "danger", "info", "default", "dark"]
56
61
  });
62
+ const ins = vue.getCurrentInstance();
63
+ const iClearType = vue.computed(() => {
64
+ var _a, _b, _c;
65
+ if (props.clearType) {
66
+ return props.clearType;
67
+ }
68
+ 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";
69
+ });
70
+ const showClearIcon = vue.computed(() => {
71
+ var _a;
72
+ if (!props.clearable || disabled.value || props.native)
73
+ return false;
74
+ if (iClearType.value !== "icon")
75
+ return false;
76
+ if (props.inputable || props.filterable || props.setDataFn || props.remoteMethod)
77
+ return false;
78
+ if (props.multiple) {
79
+ return selected.value.filter((item) => !item.hide).length > 0;
80
+ } else {
81
+ return Boolean((_a = selected.value) == null ? void 0 : _a[iValueText.value]);
82
+ }
83
+ });
57
84
  const { isPhone } = useDevice.useDevice();
58
85
  const $phone = isPhone.value;
59
86
  const iValue = vue.ref(props.modelValue);
@@ -70,6 +97,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
70
97
  const multipleInputValue = vue.ref("");
71
98
  const multipleFilterValue = vue.ref("");
72
99
  const setDataInputValue = vue.ref("");
100
+ const isFiltering = vue.ref(false);
73
101
  const dataLoading = vue.ref(false);
74
102
  const errorTip = vue.ref("");
75
103
  const errorType = vue.ref("rule");
@@ -90,6 +118,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
90
118
  const popupFilter = vue.ref(null);
91
119
  const popupInput = vue.ref(null);
92
120
  const trigger = vue.ref(null);
121
+ const tagContainerRef = vue.ref(null);
93
122
  const options = vue.ref([]);
94
123
  const anotherOptions = vue.ref([]);
95
124
  const { selected } = useSelectOptionData.useSelectOptionData({
@@ -100,6 +129,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
100
129
  return true;
101
130
  if (props.remoteMethod)
102
131
  return true;
132
+ if (!isFiltering.value)
133
+ return true;
103
134
  const value = filterValue.value;
104
135
  if (value === "")
105
136
  return true;
@@ -110,12 +141,16 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
110
141
  return true;
111
142
  if (props.remoteMethod)
112
143
  return true;
144
+ if (!isFiltering.value)
145
+ return true;
113
146
  const value = multipleFilterValue.value;
114
147
  if (value === "")
115
148
  return true;
116
149
  return item[iLabelText.value].includes(value);
117
150
  };
118
151
  const nomatch = vue.computed(() => {
152
+ if (!isFiltering.value)
153
+ return false;
119
154
  let nomatch2 = true;
120
155
  let value = props.multiple ? multipleFilterValue.value : filterValue.value;
121
156
  if (value === "") {
@@ -285,7 +320,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
285
320
  if (props.native) {
286
321
  return;
287
322
  }
288
- if (!props.multiple && props.clearable && !props.inputable && !props.setDataFn && !props.filterable && !props.remoteMethod && (!props.optionDisplay || props.optionDisplay === "float")) {
323
+ if (!props.multiple && props.clearable && iClearType.value === "default" && !props.inputable && !props.setDataFn && !props.filterable && !props.remoteMethod && (!props.optionDisplay || props.optionDisplay === "float")) {
289
324
  options.value.unshift({
290
325
  [iLabelText.value]: "",
291
326
  [iValueText.value]: ""
@@ -528,6 +563,82 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
528
563
  }
529
564
  return arr;
530
565
  });
566
+ const visibleCount = vue.ref(Infinity);
567
+ let isRecalculating = false;
568
+ let tagResizeObserver = null;
569
+ const displaySelected = vue.computed(() => {
570
+ return selected.value.filter((item) => !item.hide);
571
+ });
572
+ const overflowCount = vue.computed(() => {
573
+ if (!props.isCount)
574
+ return 0;
575
+ const max = visibleCount.value;
576
+ if (max >= displaySelected.value.length)
577
+ return 0;
578
+ return displaySelected.value.length - max;
579
+ });
580
+ const recalcVisibleCount = () => {
581
+ if (!props.isCount || isRecalculating || !tagContainerRef.value)
582
+ return;
583
+ isRecalculating = true;
584
+ visibleCount.value = Infinity;
585
+ vue.nextTick(() => {
586
+ const container = tagContainerRef.value;
587
+ if (!container) {
588
+ isRecalculating = false;
589
+ return;
590
+ }
591
+ const containerWidth = container.clientWidth;
592
+ const tags = container.querySelectorAll(".to-select-item");
593
+ if (tags.length === 0) {
594
+ isRecalculating = false;
595
+ return;
596
+ }
597
+ const style = getComputedStyle(container);
598
+ const fontSize = parseFloat(style.fontSize) || 16;
599
+ const gap = parseFloat(style.gap || style.rowGap) || 0;
600
+ const firstTagStyle = getComputedStyle(tags[0]);
601
+ const tagMarginLeft = parseFloat(firstTagStyle.marginLeft) || 0;
602
+ const tagMarginRight = parseFloat(firstTagStyle.marginRight) || 0;
603
+ const tagMargin = tagMarginLeft + tagMarginRight;
604
+ const overflowEstimate = 3 * fontSize + tagMargin + gap;
605
+ let reserved = overflowEstimate;
606
+ const inputEl = container.querySelector(".to-select-input");
607
+ if (inputEl) {
608
+ const inputStyle = getComputedStyle(inputEl);
609
+ const inputMargin = (parseFloat(inputStyle.marginLeft) || 0) + (parseFloat(inputStyle.marginRight) || 0);
610
+ reserved += inputEl.offsetWidth + inputMargin + gap;
611
+ }
612
+ let totalWidth = reserved;
613
+ let count = 0;
614
+ for (let i = 0; i < tags.length; i++) {
615
+ const w = tags[i].offsetWidth + tagMargin + gap;
616
+ if (totalWidth + w > containerWidth)
617
+ break;
618
+ totalWidth += w;
619
+ count++;
620
+ }
621
+ visibleCount.value = count > 0 ? count : 1;
622
+ vue.nextTick(() => {
623
+ isRecalculating = false;
624
+ });
625
+ });
626
+ };
627
+ const setupTagResizeObserver = () => {
628
+ if (props.isCount && props.multiple && tagContainerRef.value) {
629
+ if (!tagResizeObserver) {
630
+ tagResizeObserver = new ResizeObserver(() => recalcVisibleCount());
631
+ }
632
+ tagResizeObserver.observe(tagContainerRef.value);
633
+ recalcVisibleCount();
634
+ } else {
635
+ if (tagResizeObserver) {
636
+ tagResizeObserver.disconnect();
637
+ tagResizeObserver = null;
638
+ }
639
+ visibleCount.value = Infinity;
640
+ }
641
+ };
531
642
  const change = (value, option) => {
532
643
  if (props.beforeChange) {
533
644
  let result = props.beforeChange(value, option);
@@ -633,6 +744,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
633
744
  }
634
745
  };
635
746
  const filterInput = () => {
747
+ isFiltering.value = true;
636
748
  if (props.remoteMethod) {
637
749
  const keyword = props.multiple ? multipleFilterValue.value : filterValue.value;
638
750
  clearTimeout(remoteSearchTimer);
@@ -642,6 +754,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
642
754
  }
643
755
  };
644
756
  const filterClear = () => {
757
+ isFiltering.value = false;
645
758
  iValue.value = "";
646
759
  };
647
760
  const setDataLoading = (loading) => {
@@ -702,6 +815,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
702
815
  const clear = () => {
703
816
  clearChange();
704
817
  };
818
+ const clearClick = () => {
819
+ clear();
820
+ closeLayer();
821
+ };
705
822
  const clearChange = () => {
706
823
  if (props.multiple) {
707
824
  change("", []);
@@ -846,6 +963,21 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
846
963
  disabled.value = newVal;
847
964
  }
848
965
  );
966
+ vue.watch(
967
+ () => props.isCount,
968
+ () => {
969
+ vue.nextTick(() => setupTagResizeObserver());
970
+ }
971
+ );
972
+ vue.watch(
973
+ selected,
974
+ () => {
975
+ if (props.isCount) {
976
+ vue.nextTick(() => recalcVisibleCount());
977
+ }
978
+ },
979
+ { deep: true }
980
+ );
849
981
  const getLabel = (val) => {
850
982
  const obj = options.value.find((item) => String(item[iValueText.value]) === String(val));
851
983
  if (obj && obj[iLabelText.value]) {
@@ -930,6 +1062,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
930
1062
  }
931
1063
  };
932
1064
  const layerClose = () => {
1065
+ isFiltering.value = false;
933
1066
  if (!props.multiple) {
934
1067
  if ((props.filterable || props.remoteMethod) && !props.inputable) {
935
1068
  if (iValue.value) {
@@ -960,6 +1093,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
960
1093
  openOptionLayer();
961
1094
  };
962
1095
  const layerOpen = () => {
1096
+ isFiltering.value = false;
963
1097
  calcScale();
964
1098
  };
965
1099
  const compare = () => {
@@ -1076,7 +1210,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
1076
1210
  ref: selector,
1077
1211
  "onUpdate:modelValue": ($event) => iValue.value = $event
1078
1212
  }, [
1079
- _ctx.clearable ? (vue.openBlock(), vue.createElementBlock(
1213
+ _ctx.clearable && iClearType.value === "default" ? (vue.openBlock(), vue.createElementBlock(
1080
1214
  "option",
1081
1215
  {
1082
1216
  key: 0,
@@ -1261,91 +1395,124 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
1261
1395
  { key: 2 },
1262
1396
  [
1263
1397
  vue.createCommentVNode(" \u591A\u9009\u6807\u7B7E\u5BB9\u5668 "),
1264
- vue.createElementVNode("span", { class: "to-select-tag" }, [
1265
- vue.createCommentVNode(" \u5DF2\u9009\u4E2D\u9879\u7684\u6807\u7B7E\u663E\u793A "),
1266
- vue.unref(selected).length > 0 && !(isAll.value && _ctx.useAllText) ? (vue.openBlock(true), vue.createElementBlock(
1267
- vue.Fragment,
1268
- { key: 0 },
1269
- vue.renderList(vue.unref(selected), (item, index) => {
1270
- return vue.openBlock(), vue.createElementBlock(
1271
- vue.Fragment,
1272
- null,
1273
- [
1274
- !item.hide ? (vue.openBlock(), vue.createBlock(vue.unref(index$3.ToTag), {
1275
- key: index,
1276
- class: "to-select-item",
1277
- removable: _ctx.removable && !disabled.value,
1278
- onRemove: ($event) => removeTag(item)
1279
- }, {
1280
- default: vue.withCtx(() => [
1281
- vue.createTextVNode(
1282
- vue.toDisplayString(item[iLabelText.value]),
1283
- 1
1284
- /* TEXT */
1285
- )
1286
- ]),
1287
- _: 2
1288
- /* DYNAMIC */
1289
- }, 1032, ["removable", "onRemove"])) : vue.createCommentVNode("v-if", true)
1290
- ],
1291
- 64
1292
- /* STABLE_FRAGMENT */
1293
- );
1294
- }),
1295
- 256
1296
- /* UNKEYED_FRAGMENT */
1297
- )) : vue.createCommentVNode("v-if", true),
1298
- vue.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 "),
1299
- !vue.unref($phone) || vue.unref($phone) && vue.unref(selected).length === 0 ? (vue.openBlock(), vue.createElementBlock("span", {
1300
- key: 1,
1301
- class: "to-select-input"
1302
- }, [
1303
- vue.createCommentVNode(" \u591A\u9009\u53EF\u8F93\u5165\u6A21\u5F0F\u7684\u8F93\u5165\u6846 "),
1304
- _ctx.inputable && !_ctx.filterable && !_ctx.remoteMethod ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ToInput), {
1305
- key: 0,
1306
- ref_key: "input",
1307
- ref: input,
1308
- modelValue: multipleInputValue.value,
1309
- "onUpdate:modelValue": ($event) => multipleInputValue.value = $event,
1310
- "sp-chars": _ctx.spChars,
1311
- disabled: vue.unref($phone),
1312
- "prevent-focus": "",
1313
- mode: "none",
1314
- placeholder: vue.unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || vue.unref(index.t)("to.common.placeholder.select"),
1315
- onFocus: multipleInputFocus,
1316
- onBlur: multipleInputBlur
1317
- }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "disabled", "placeholder"])) : vue.createCommentVNode("v-if", true),
1318
- vue.createCommentVNode(" \u591A\u9009\u53EF\u8FC7\u6EE4\u6A21\u5F0F filterable = true \u6216 \u8FDC\u7A0B\u641C\u7D22\u6A21\u5F0F remoteMethod \u5B58\u5728\u7684\u8F93\u5165\u6846 "),
1319
- _ctx.filterable || _ctx.remoteMethod ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ToInput), {
1398
+ vue.createElementVNode(
1399
+ "span",
1400
+ {
1401
+ ref_key: "tagContainerRef",
1402
+ ref: tagContainerRef,
1403
+ class: vue.normalizeClass(["to-select-tag", { "is-collapse": _ctx.isCount }])
1404
+ },
1405
+ [
1406
+ vue.createCommentVNode(" \u5DF2\u9009\u4E2D\u9879\u7684\u6807\u7B7E\u663E\u793A "),
1407
+ vue.unref(selected).length > 0 && !(isAll.value && _ctx.useAllText) ? (vue.openBlock(), vue.createElementBlock(
1408
+ vue.Fragment,
1409
+ { key: 0 },
1410
+ [
1411
+ (vue.openBlock(true), vue.createElementBlock(
1412
+ vue.Fragment,
1413
+ null,
1414
+ vue.renderList(_ctx.isCount ? displaySelected.value : vue.unref(selected), (item, index) => {
1415
+ return vue.openBlock(), vue.createElementBlock(
1416
+ vue.Fragment,
1417
+ { key: index },
1418
+ [
1419
+ (_ctx.isCount ? index < visibleCount.value : !item.hide) ? (vue.openBlock(), vue.createBlock(vue.unref(index$3.ToTag), {
1420
+ key: 0,
1421
+ class: "to-select-item",
1422
+ removable: _ctx.removable && !disabled.value,
1423
+ onRemove: ($event) => removeTag(item)
1424
+ }, {
1425
+ default: vue.withCtx(() => [
1426
+ vue.createTextVNode(
1427
+ vue.toDisplayString(item[iLabelText.value]),
1428
+ 1
1429
+ /* TEXT */
1430
+ )
1431
+ ]),
1432
+ _: 2
1433
+ /* DYNAMIC */
1434
+ }, 1032, ["removable", "onRemove"])) : vue.createCommentVNode("v-if", true)
1435
+ ],
1436
+ 64
1437
+ /* STABLE_FRAGMENT */
1438
+ );
1439
+ }),
1440
+ 128
1441
+ /* KEYED_FRAGMENT */
1442
+ )),
1443
+ vue.createCommentVNode(" \u6298\u53E0\u6A21\u5F0F\u4E0B\u663E\u793A +N "),
1444
+ _ctx.isCount && overflowCount.value > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(index$3.ToTag), {
1445
+ key: 0,
1446
+ class: "to-select-overflow"
1447
+ }, {
1448
+ default: vue.withCtx(() => [
1449
+ vue.createTextVNode(
1450
+ " +" + vue.toDisplayString(overflowCount.value),
1451
+ 1
1452
+ /* TEXT */
1453
+ )
1454
+ ]),
1455
+ _: 1
1456
+ /* STABLE */
1457
+ })) : vue.createCommentVNode("v-if", true)
1458
+ ],
1459
+ 64
1460
+ /* STABLE_FRAGMENT */
1461
+ )) : vue.createCommentVNode("v-if", true),
1462
+ vue.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 "),
1463
+ !vue.unref($phone) || vue.unref($phone) && vue.unref(selected).length === 0 ? (vue.openBlock(), vue.createElementBlock("span", {
1320
1464
  key: 1,
1321
- ref_key: "filter",
1322
- ref: filter,
1323
- modelValue: multipleFilterValue.value,
1324
- "onUpdate:modelValue": ($event) => multipleFilterValue.value = $event,
1325
- "sp-chars": _ctx.inputable ? _ctx.spChars : false,
1326
- disabled: vue.unref($phone),
1327
- "prevent-focus": "",
1328
- mode: "none",
1329
- placeholder: vue.unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || vue.unref(index.t)("to.common.placeholder.select"),
1330
- onFocus: multipleFilterFocus,
1331
- onBlur: multipleFilterBlur
1332
- }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "disabled", "placeholder"])) : vue.createCommentVNode("v-if", true),
1333
- vue.createCommentVNode(" \u591A\u9009\u81EA\u5B9A\u4E49\u6570\u636E\u8BBE\u7F6E\u6A21\u5F0F\u7684\u8F93\u5165\u6846 "),
1334
- _ctx.setDataFn ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ToInput), {
1335
- key: 2,
1336
- ref_key: "filter",
1337
- ref: filter,
1338
- modelValue: setDataInputValue.value,
1339
- "onUpdate:modelValue": ($event) => setDataInputValue.value = $event,
1340
- "sp-chars": _ctx.inputable ? _ctx.spChars : false,
1341
- "prevent-focus": "",
1342
- mode: "none",
1343
- placeholder: vue.unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || vue.unref(index.t)("to.common.placeholder.select"),
1344
- onFocus: multipleFilterFocus,
1345
- onBlur: multipleFilterBlur
1346
- }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "placeholder"])) : vue.createCommentVNode("v-if", true)
1347
- ])) : vue.createCommentVNode("v-if", true)
1348
- ])
1465
+ class: "to-select-input"
1466
+ }, [
1467
+ vue.createCommentVNode(" \u591A\u9009\u53EF\u8F93\u5165\u6A21\u5F0F\u7684\u8F93\u5165\u6846 "),
1468
+ _ctx.inputable && !_ctx.filterable && !_ctx.remoteMethod ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ToInput), {
1469
+ key: 0,
1470
+ ref_key: "input",
1471
+ ref: input,
1472
+ modelValue: multipleInputValue.value,
1473
+ "onUpdate:modelValue": ($event) => multipleInputValue.value = $event,
1474
+ "sp-chars": _ctx.spChars,
1475
+ disabled: vue.unref($phone),
1476
+ "prevent-focus": "",
1477
+ mode: "none",
1478
+ placeholder: vue.unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || vue.unref(index.t)("to.common.placeholder.select"),
1479
+ onFocus: multipleInputFocus,
1480
+ onBlur: multipleInputBlur
1481
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "disabled", "placeholder"])) : vue.createCommentVNode("v-if", true),
1482
+ vue.createCommentVNode(" \u591A\u9009\u53EF\u8FC7\u6EE4\u6A21\u5F0F filterable = true \u6216 \u8FDC\u7A0B\u641C\u7D22\u6A21\u5F0F remoteMethod \u5B58\u5728\u7684\u8F93\u5165\u6846 "),
1483
+ _ctx.filterable || _ctx.remoteMethod ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ToInput), {
1484
+ key: 1,
1485
+ ref_key: "filter",
1486
+ ref: filter,
1487
+ modelValue: multipleFilterValue.value,
1488
+ "onUpdate:modelValue": ($event) => multipleFilterValue.value = $event,
1489
+ "sp-chars": _ctx.inputable ? _ctx.spChars : false,
1490
+ disabled: vue.unref($phone),
1491
+ "prevent-focus": "",
1492
+ mode: "none",
1493
+ placeholder: vue.unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || vue.unref(index.t)("to.common.placeholder.select"),
1494
+ onFocus: multipleFilterFocus,
1495
+ onBlur: multipleFilterBlur
1496
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "disabled", "placeholder"])) : vue.createCommentVNode("v-if", true),
1497
+ vue.createCommentVNode(" \u591A\u9009\u81EA\u5B9A\u4E49\u6570\u636E\u8BBE\u7F6E\u6A21\u5F0F\u7684\u8F93\u5165\u6846 "),
1498
+ _ctx.setDataFn ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ToInput), {
1499
+ key: 2,
1500
+ ref_key: "filter",
1501
+ ref: filter,
1502
+ modelValue: setDataInputValue.value,
1503
+ "onUpdate:modelValue": ($event) => setDataInputValue.value = $event,
1504
+ "sp-chars": _ctx.inputable ? _ctx.spChars : false,
1505
+ "prevent-focus": "",
1506
+ mode: "none",
1507
+ placeholder: vue.unref(selected).filter((item) => !item.hide).length > 0 ? "" : _ctx.placeholder || vue.unref(index.t)("to.common.placeholder.select"),
1508
+ onFocus: multipleFilterFocus,
1509
+ onBlur: multipleFilterBlur
1510
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "sp-chars", "placeholder"])) : vue.createCommentVNode("v-if", true)
1511
+ ])) : vue.createCommentVNode("v-if", true)
1512
+ ],
1513
+ 2
1514
+ /* CLASS */
1515
+ )
1349
1516
  ],
1350
1517
  2112
1351
1518
  /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
@@ -1358,6 +1525,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
1358
1525
  64
1359
1526
  /* STABLE_FRAGMENT */
1360
1527
  )),
1528
+ vue.createCommentVNode(" \u6E05\u9664\u56FE\u6807 "),
1529
+ showClearIcon.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToIcon), {
1530
+ key: 3,
1531
+ class: "to-select-clear",
1532
+ link: "",
1533
+ value: "close",
1534
+ onClick: vue.withModifiers(clearClick, ["stop"])
1535
+ })) : vue.createCommentVNode("v-if", true),
1361
1536
  vue.createCommentVNode(" \u4E0B\u62C9\u7BAD\u5934\u56FE\u6807 "),
1362
1537
  vue.createElementVNode(
1363
1538
  "span",