vxe-pc-ui 4.1.19 → 4.1.21

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 (259) hide show
  1. package/README.md +83 -2
  2. package/es/anchor/src/anchor-link.js +1 -1
  3. package/es/anchor/src/anchor.js +1 -1
  4. package/es/breadcrumb/src/breadcrumb.js +1 -1
  5. package/es/button/src/button-group.js +4 -1
  6. package/es/button/src/button.js +2 -1
  7. package/es/calendar/src/calendar.js +64 -32
  8. package/es/card/src/card.js +4 -3
  9. package/es/carousel/src/carousel-item.js +13 -3
  10. package/es/carousel/src/carousel.js +16 -8
  11. package/es/checkbox/src/checkbox.js +30 -14
  12. package/es/checkbox/src/group.js +17 -8
  13. package/es/collapse-pane/index.js +1 -1
  14. package/es/countdown/src/countdown.js +17 -8
  15. package/es/date-picker/src/date-picker.js +148 -69
  16. package/es/drawer/src/drawer.js +86 -46
  17. package/es/form/render/index.js +1 -2
  18. package/es/form/src/form-config-item.js +4 -3
  19. package/es/form/src/form-gather.js +5 -3
  20. package/es/form/src/form-item.js +15 -10
  21. package/es/form/src/form.js +11 -8
  22. package/es/form/src/render.js +2 -1
  23. package/es/form/src/util.js +2 -1
  24. package/es/icon/src/icon.js +3 -0
  25. package/es/icon/style.css +1 -1
  26. package/es/icon-picker/src/icon-picker.js +24 -11
  27. package/es/image/src/group.js +4 -1
  28. package/es/image/src/preview.js +1 -1
  29. package/es/input/src/input.js +131 -66
  30. package/es/layout-aside/src/layout-aside.js +1 -1
  31. package/es/list/src/list.js +7 -5
  32. package/es/list-design/src/list-design.js +1 -1
  33. package/es/list-design/src/list-view.js +1 -1
  34. package/es/loading/src/loading.js +4 -1
  35. package/es/menu/src/menu.js +4 -3
  36. package/es/number-input/src/number-input.js +100 -77
  37. package/es/pager/src/pager.js +85 -45
  38. package/es/password-input/src/password-input.js +2 -2
  39. package/es/print/src/page-break.js +11 -2
  40. package/es/print/src/print.js +6 -4
  41. package/es/pulldown/src/pulldown.js +19 -13
  42. package/es/radio/src/button.js +2 -2
  43. package/es/radio/src/group.js +8 -4
  44. package/es/row/src/row.js +1 -1
  45. package/es/select/src/optgroup.js +19 -10
  46. package/es/select/src/option.js +17 -9
  47. package/es/select/src/select.js +64 -41
  48. package/es/select/src/util.js +2 -2
  49. package/es/style.css +1 -1
  50. package/es/style.min.css +1 -1
  51. package/es/tabs/src/tab-pane.js +13 -3
  52. package/es/tabs/src/tabs.js +57 -47
  53. package/es/textarea/src/textarea.js +28 -10
  54. package/es/tooltip/src/tooltip.js +107 -78
  55. package/es/tree/src/tree.js +6 -3
  56. package/es/tree-select/src/tree-select.js +18 -10
  57. package/es/ui/index.js +1 -7
  58. package/es/ui/src/log.js +1 -1
  59. package/es/upload/src/upload.js +5 -5
  60. package/lib/anchor/src/anchor-link.js +1 -1
  61. package/lib/anchor/src/anchor-link.min.js +1 -1
  62. package/lib/anchor/src/anchor.js +1 -1
  63. package/lib/anchor/src/anchor.min.js +1 -1
  64. package/lib/breadcrumb/src/breadcrumb.js +1 -1
  65. package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
  66. package/lib/button/src/button-group.js +4 -1
  67. package/lib/button/src/button-group.min.js +1 -1
  68. package/lib/button/src/button.js +2 -1
  69. package/lib/button/src/button.min.js +1 -1
  70. package/lib/calendar/src/calendar.js +42 -24
  71. package/lib/calendar/src/calendar.min.js +1 -1
  72. package/lib/card/src/card.js +6 -5
  73. package/lib/card/src/card.min.js +1 -1
  74. package/lib/carousel/src/carousel-item.js +16 -3
  75. package/lib/carousel/src/carousel-item.min.js +1 -1
  76. package/lib/carousel/src/carousel.js +18 -8
  77. package/lib/carousel/src/carousel.min.js +1 -1
  78. package/lib/checkbox/src/checkbox.js +16 -12
  79. package/lib/checkbox/src/checkbox.min.js +1 -1
  80. package/lib/checkbox/src/group.js +10 -7
  81. package/lib/checkbox/src/group.min.js +1 -1
  82. package/lib/collapse-pane/index.js +1 -1
  83. package/lib/collapse-pane/index.min.js +1 -1
  84. package/lib/countdown/src/countdown.js +15 -7
  85. package/lib/countdown/src/countdown.min.js +1 -1
  86. package/lib/date-picker/src/date-picker.js +124 -62
  87. package/lib/date-picker/src/date-picker.min.js +1 -1
  88. package/lib/drawer/src/drawer.js +15 -30
  89. package/lib/drawer/src/drawer.min.js +1 -1
  90. package/lib/form/render/index.js +1 -4
  91. package/lib/form/render/index.min.js +1 -1
  92. package/lib/form/src/form-config-item.js +4 -5
  93. package/lib/form/src/form-config-item.min.js +1 -1
  94. package/lib/form/src/form-gather.js +11 -9
  95. package/lib/form/src/form-gather.min.js +1 -1
  96. package/lib/form/src/form-item.js +11 -12
  97. package/lib/form/src/form-item.min.js +1 -1
  98. package/lib/form/src/form.js +7 -7
  99. package/lib/form/src/form.min.js +1 -1
  100. package/lib/form/src/render.js +2 -1
  101. package/lib/form/src/util.js +2 -1
  102. package/lib/icon/src/icon.js +3 -0
  103. package/lib/icon/src/icon.min.js +1 -1
  104. package/lib/icon/style/style.css +1 -1
  105. package/lib/icon/style/style.min.css +1 -1
  106. package/lib/icon-picker/src/icon-picker.js +22 -12
  107. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  108. package/lib/image/src/group.js +4 -1
  109. package/lib/image/src/group.min.js +1 -1
  110. package/lib/image/src/preview.js +1 -1
  111. package/lib/image/src/preview.min.js +1 -1
  112. package/lib/index.umd.js +884 -649
  113. package/lib/index.umd.min.js +1 -1
  114. package/lib/input/src/input.js +79 -51
  115. package/lib/input/src/input.min.js +1 -1
  116. package/lib/layout-aside/src/layout-aside.js +1 -1
  117. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  118. package/lib/list/src/list.js +9 -5
  119. package/lib/list/src/list.min.js +1 -1
  120. package/lib/list-design/src/list-design.js +1 -1
  121. package/lib/list-design/src/list-design.min.js +1 -1
  122. package/lib/list-design/src/list-view.js +1 -1
  123. package/lib/list-design/src/list-view.min.js +1 -1
  124. package/lib/loading/src/loading.js +4 -1
  125. package/lib/loading/src/loading.min.js +1 -1
  126. package/lib/menu/src/menu.js +4 -3
  127. package/lib/menu/src/menu.min.js +1 -1
  128. package/lib/number-input/src/number-input.js +67 -69
  129. package/lib/number-input/src/number-input.min.js +1 -1
  130. package/lib/pager/src/pager.js +40 -39
  131. package/lib/pager/src/pager.min.js +1 -1
  132. package/lib/password-input/src/password-input.js +2 -2
  133. package/lib/print/src/page-break.js +14 -2
  134. package/lib/print/src/page-break.min.js +1 -1
  135. package/lib/print/src/print.js +8 -6
  136. package/lib/print/src/print.min.js +1 -1
  137. package/lib/pulldown/src/pulldown.js +19 -13
  138. package/lib/pulldown/src/pulldown.min.js +1 -1
  139. package/lib/radio/src/button.js +2 -2
  140. package/lib/radio/src/group.js +8 -4
  141. package/lib/radio/src/group.min.js +1 -1
  142. package/lib/row/src/row.js +1 -1
  143. package/lib/row/src/row.min.js +1 -1
  144. package/lib/select/src/optgroup.js +12 -9
  145. package/lib/select/src/optgroup.min.js +1 -1
  146. package/lib/select/src/option.js +9 -7
  147. package/lib/select/src/option.min.js +1 -1
  148. package/lib/select/src/select.js +52 -41
  149. package/lib/select/src/select.min.js +1 -1
  150. package/lib/select/src/util.js +2 -2
  151. package/lib/select/src/util.min.js +1 -1
  152. package/lib/style.css +1 -1
  153. package/lib/style.min.css +1 -1
  154. package/lib/tabs/src/tab-pane.js +16 -3
  155. package/lib/tabs/src/tab-pane.min.js +1 -1
  156. package/lib/tabs/src/tabs.js +62 -50
  157. package/lib/tabs/src/tabs.min.js +1 -1
  158. package/lib/textarea/src/textarea.js +4 -4
  159. package/lib/tooltip/src/tooltip.js +96 -88
  160. package/lib/tooltip/src/tooltip.min.js +1 -1
  161. package/lib/tree/src/tree.js +2 -2
  162. package/lib/tree/src/tree.min.js +1 -1
  163. package/lib/tree-select/src/tree-select.js +13 -8
  164. package/lib/tree-select/src/tree-select.min.js +1 -1
  165. package/lib/ui/index.js +3 -10
  166. package/lib/ui/index.min.js +1 -1
  167. package/lib/ui/src/log.js +1 -1
  168. package/lib/ui/src/log.min.js +1 -1
  169. package/lib/upload/src/upload.js +5 -5
  170. package/lib/upload/src/upload.min.js +1 -1
  171. package/package.json +2 -2
  172. package/packages/anchor/src/anchor-link.ts +2 -2
  173. package/packages/anchor/src/anchor.ts +2 -2
  174. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  175. package/packages/button/src/button-group.ts +4 -1
  176. package/packages/button/src/button.ts +6 -5
  177. package/packages/calendar/src/calendar.ts +67 -35
  178. package/packages/card/src/card.ts +6 -4
  179. package/packages/carousel/src/carousel-item.ts +19 -4
  180. package/packages/carousel/src/carousel.ts +19 -11
  181. package/packages/checkbox/src/checkbox.ts +34 -15
  182. package/packages/checkbox/src/group.ts +22 -10
  183. package/packages/collapse-pane/index.ts +1 -1
  184. package/packages/countdown/src/countdown.ts +20 -11
  185. package/packages/date-picker/src/date-picker.ts +160 -80
  186. package/packages/drawer/src/drawer.ts +91 -50
  187. package/packages/form/render/index.ts +1 -3
  188. package/packages/form/src/form-config-item.ts +4 -3
  189. package/packages/form/src/form-gather.ts +5 -3
  190. package/packages/form/src/form-item.ts +15 -10
  191. package/packages/form/src/form.ts +12 -10
  192. package/packages/form/src/render.ts +2 -1
  193. package/packages/form/src/util.ts +2 -1
  194. package/packages/icon/src/icon.ts +3 -0
  195. package/packages/icon-picker/src/icon-picker.ts +31 -17
  196. package/packages/image/src/group.ts +4 -1
  197. package/packages/image/src/preview.ts +2 -2
  198. package/packages/input/src/input.ts +138 -75
  199. package/packages/layout-aside/src/layout-aside.ts +2 -2
  200. package/packages/list/src/list.ts +12 -11
  201. package/packages/list-design/src/list-design.ts +2 -2
  202. package/packages/list-design/src/list-view.ts +2 -2
  203. package/packages/loading/src/loading.ts +5 -2
  204. package/packages/menu/src/menu.ts +5 -4
  205. package/packages/number-input/src/number-input.ts +102 -79
  206. package/packages/pager/src/pager.ts +91 -50
  207. package/packages/password-input/src/password-input.ts +2 -2
  208. package/packages/print/src/page-break.ts +18 -4
  209. package/packages/print/src/print.ts +10 -5
  210. package/packages/pulldown/src/pulldown.ts +28 -22
  211. package/packages/radio/src/button.ts +2 -2
  212. package/packages/radio/src/group.ts +9 -5
  213. package/packages/row/src/row.ts +2 -2
  214. package/packages/select/src/optgroup.ts +22 -13
  215. package/packages/select/src/option.ts +18 -10
  216. package/packages/select/src/select.ts +79 -52
  217. package/packages/select/src/util.ts +3 -3
  218. package/packages/tabs/src/tab-pane.ts +20 -5
  219. package/packages/tabs/src/tabs.ts +59 -49
  220. package/packages/textarea/src/textarea.ts +28 -10
  221. package/packages/tooltip/src/tooltip.ts +118 -84
  222. package/packages/tree/src/tree.ts +7 -4
  223. package/packages/tree-select/src/tree-select.ts +25 -16
  224. package/packages/ui/index.ts +0 -7
  225. package/packages/upload/src/upload.ts +6 -6
  226. package/types/components/calendar.d.ts +6 -0
  227. package/types/components/carousel.d.ts +5 -0
  228. package/types/components/countdown.d.ts +4 -0
  229. package/types/components/date-picker.d.ts +23 -5
  230. package/types/components/drawer.d.ts +0 -1
  231. package/types/components/form.d.ts +4 -2
  232. package/types/components/icon-picker.d.ts +4 -0
  233. package/types/components/input.d.ts +9 -1
  234. package/types/components/list.d.ts +1 -0
  235. package/types/components/number-input.d.ts +6 -2
  236. package/types/components/optgroup.d.ts +10 -4
  237. package/types/components/pulldown.d.ts +5 -1
  238. package/types/components/select.d.ts +4 -0
  239. package/types/components/tabs.d.ts +4 -0
  240. package/types/components/toolbar.d.ts +5 -0
  241. package/types/components/tooltip.d.ts +4 -0
  242. package/types/components/tree-select.d.ts +4 -0
  243. package/types/ui/index.d.ts +0 -22
  244. /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  245. /package/es/icon/style/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  246. /package/es/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  247. /package/es/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  248. /package/es/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  249. /package/es/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  250. /package/es/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  251. /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  252. /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
  253. /package/lib/icon/style/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  254. /package/lib/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  255. /package/lib/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  256. /package/lib/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  257. /package/lib/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  258. /package/lib/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  259. /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
@@ -20,28 +20,31 @@ var _default = exports.default = (0, _vue.defineComponent)({
20
20
  className: [String, Function],
21
21
  disabled: Boolean
22
22
  },
23
+ emits: [],
23
24
  setup(props, {
24
25
  slots
25
26
  }) {
26
27
  const elem = (0, _vue.ref)();
27
28
  const $xeSelect = (0, _vue.inject)('$xeSelect', {});
28
- const option = (0, _util.createOption)($xeSelect, props);
29
- const xeOption = {
30
- option
29
+ const optionConfig = (0, _util.createOption)($xeSelect, props);
30
+ const $xeOptgroup = {
31
+ optionConfig
31
32
  };
32
- option.options = [];
33
- (0, _vue.provide)('xeoptgroup', xeOption);
34
- (0, _util.watchOption)(props, option);
33
+ optionConfig.options = [];
34
+ (0, _vue.provide)('$xeOptgroup', $xeOptgroup);
35
+ (0, _util.watchOption)(props, optionConfig);
35
36
  (0, _vue.onMounted)(() => {
36
- (0, _util.assembleOption)($xeSelect, elem.value, option);
37
+ const el = elem.value;
38
+ (0, _util.assembleOption)($xeSelect, el, optionConfig);
37
39
  });
38
40
  (0, _vue.onUnmounted)(() => {
39
- (0, _util.destroyOption)($xeSelect, option);
41
+ (0, _util.destroyOption)($xeSelect, optionConfig);
40
42
  });
41
43
  return () => {
44
+ const defaultSlot = slots.default;
42
45
  return (0, _vue.h)('div', {
43
46
  ref: elem
44
- }, slots.default ? slots.default() : []);
47
+ }, defaultSlot ? defaultSlot({}) : []);
45
48
  };
46
49
  }
47
50
  });
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOptgroup",props:{label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},setup(e,{slots:t}){const u=(0,_vue.ref)(),o=(0,_vue.inject)("$xeSelect",{}),l=(0,_util.createOption)(o,e);var i={option:l};return l.options=[],(0,_vue.provide)("xeoptgroup",i),(0,_util.watchOption)(e,l),(0,_vue.onMounted)(()=>{(0,_util.assembleOption)(o,u.value,l)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyOption)(o,l)}),()=>(0,_vue.h)("div",{ref:u},t.default?t.default():[])}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOptgroup",props:{label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},emits:[],setup(e,{slots:t}){const u=(0,_vue.ref)(),o=(0,_vue.inject)("$xeSelect",{}),i=(0,_util.createOption)(o,e);var n={optionConfig:i};return i.options=[],(0,_vue.provide)("$xeOptgroup",n),(0,_util.watchOption)(e,i),(0,_vue.onMounted)(()=>{var e=u.value;(0,_util.assembleOption)(o,e,i)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyOption)(o,i)}),()=>{var e=t.default;return(0,_vue.h)("div",{ref:u},e?e({}):[])}}});
@@ -9,7 +9,7 @@ var _util = require("./util");
9
9
  var _default = exports.default = (0, _vue.defineComponent)({
10
10
  name: 'VxeOption',
11
11
  props: {
12
- value: null,
12
+ value: [String, Number, Boolean],
13
13
  label: {
14
14
  type: [String, Number, Boolean],
15
15
  default: ''
@@ -21,20 +21,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
21
21
  className: [String, Function],
22
22
  disabled: Boolean
23
23
  },
24
+ emits: [],
24
25
  setup(props, {
25
26
  slots
26
27
  }) {
27
28
  const elem = (0, _vue.ref)();
28
29
  const $xeSelect = (0, _vue.inject)('$xeSelect', {});
29
- const optGroup = (0, _vue.inject)('xeoptgroup', null);
30
- const option = (0, _util.createOption)($xeSelect, props);
31
- option.slots = slots;
32
- (0, _util.watchOption)(props, option);
30
+ const $xeOptgroup = (0, _vue.inject)('$xeOptgroup', null);
31
+ const optionConfig = (0, _util.createOption)($xeSelect, props);
32
+ optionConfig.slots = slots;
33
+ (0, _util.watchOption)(props, optionConfig);
33
34
  (0, _vue.onMounted)(() => {
34
- (0, _util.assembleOption)($xeSelect, elem.value, option, optGroup);
35
+ const el = elem.value;
36
+ (0, _util.assembleOption)($xeSelect, el, optionConfig, $xeOptgroup);
35
37
  });
36
38
  (0, _vue.onUnmounted)(() => {
37
- (0, _util.destroyOption)($xeSelect, option);
39
+ (0, _util.destroyOption)($xeSelect, optionConfig);
38
40
  });
39
41
  return () => {
40
42
  return (0, _vue.h)('div', {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOption",props:{value:null,label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},setup(e,{slots:t}){const u=(0,_vue.ref)(),l=(0,_vue.inject)("$xeSelect",{}),o=(0,_vue.inject)("xeoptgroup",null),n=(0,_util.createOption)(l,e);return n.slots=t,(0,_util.watchOption)(e,n),(0,_vue.onMounted)(()=>{(0,_util.assembleOption)(l,u.value,n,o)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyOption)(l,n)}),()=>(0,_vue.h)("div",{ref:u})}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOption",props:{value:[String,Number,Boolean],label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},emits:[],setup(e,{slots:t}){const u=(0,_vue.ref)(),l=(0,_vue.inject)("$xeSelect",{}),o=(0,_vue.inject)("$xeOptgroup",null),n=(0,_util.createOption)(l,e);return n.slots=t,(0,_util.watchOption)(e,n),(0,_vue.onMounted)(()=>{var e=u.value;(0,_util.assembleOption)(l,e,n,o)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyOption)(l,n)}),()=>(0,_vue.h)("div",{ref:u})}});
@@ -60,17 +60,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
60
60
  remote: Boolean,
61
61
  remoteMethod: Function,
62
62
  emptyText: String,
63
+ transfer: {
64
+ type: Boolean,
65
+ default: null
66
+ },
63
67
  // 已废弃,被 option-config.keyField 替换
64
68
  optionId: {
65
69
  type: String,
66
70
  default: () => (0, _ui.getConfig)().select.optionId
67
71
  },
68
72
  // 已废弃,被 option-config.useKey 替换
69
- optionKey: Boolean,
70
- transfer: {
71
- type: Boolean,
72
- default: null
73
- }
73
+ optionKey: Boolean
74
74
  },
75
75
  emits: ['update:modelValue', 'change', 'clear', 'blur', 'focus', 'click'],
76
76
  setup(props, context) {
@@ -79,6 +79,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
79
79
  emit
80
80
  } = context;
81
81
  const $xeModal = (0, _vue.inject)('$xeModal', null);
82
+ const $xeDrawer = (0, _vue.inject)('$xeDrawer', null);
82
83
  const $xeTable = (0, _vue.inject)('$xeTable', null);
83
84
  const $xeForm = (0, _vue.inject)('$xeForm', null);
84
85
  const formItemInfo = (0, _vue.inject)('xeFormItemInfo', null);
@@ -106,6 +107,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
106
107
  searchValue: '',
107
108
  searchLoading: false
108
109
  });
110
+ const internalData = {
111
+ hpTimeout: undefined
112
+ };
109
113
  const refElem = (0, _vue.ref)();
110
114
  const refInput = (0, _vue.ref)();
111
115
  const refInpSearch = (0, _vue.ref)();
@@ -119,6 +123,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
119
123
  props,
120
124
  context,
121
125
  reactData,
126
+ internalData,
122
127
  getRefMaps: () => refMaps
123
128
  };
124
129
  let selectMethods = {};
@@ -155,7 +160,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
155
160
  if (_xeUtils.default.isBoolean(globalTransfer)) {
156
161
  return globalTransfer;
157
162
  }
158
- if ($xeTable || $xeModal || $xeForm) {
163
+ if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
159
164
  return true;
160
165
  }
161
166
  }
@@ -175,10 +180,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
175
180
  return (0, _ui.getI18n)('vxe.base.pleaseSelect');
176
181
  });
177
182
  const computePropsOpts = (0, _vue.computed)(() => {
178
- return props.optionProps || {};
183
+ return Object.assign({}, props.optionProps);
179
184
  });
180
185
  const computeGroupPropsOpts = (0, _vue.computed)(() => {
181
- return props.optionGroupProps || {};
186
+ return Object.assign({}, props.optionGroupProps);
182
187
  });
183
188
  const computeLabelField = (0, _vue.computed)(() => {
184
189
  const propsOpts = computePropsOpts.value;
@@ -216,6 +221,31 @@ var _default = exports.default = (0, _vue.defineComponent)({
216
221
  const computeMultiMaxCharNum = (0, _vue.computed)(() => {
217
222
  return _xeUtils.default.toNumber(props.multiCharOverflow);
218
223
  });
224
+ const computeSelectLabel = (0, _vue.computed)(() => {
225
+ const {
226
+ modelValue,
227
+ multiple,
228
+ remote
229
+ } = props;
230
+ const multiMaxCharNum = computeMultiMaxCharNum.value;
231
+ if (modelValue && multiple) {
232
+ const vals = _xeUtils.default.isArray(modelValue) ? modelValue : [modelValue];
233
+ if (remote) {
234
+ return vals.map(val => getRemoteSelectLabel(val)).join(', ');
235
+ }
236
+ return vals.map(val => {
237
+ const label = getSelectLabel(val);
238
+ if (multiMaxCharNum > 0 && label.length > multiMaxCharNum) {
239
+ return `${label.substring(0, multiMaxCharNum)}...`;
240
+ }
241
+ return label;
242
+ }).join(', ');
243
+ }
244
+ if (remote) {
245
+ return getRemoteSelectLabel(modelValue);
246
+ }
247
+ return getSelectLabel(modelValue);
248
+ });
219
249
  const callSlot = (slotFunc, params) => {
220
250
  if (slotFunc) {
221
251
  if (_xeUtils.default.isString(slotFunc)) {
@@ -285,31 +315,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
285
315
  const item = findOption(value);
286
316
  return _xeUtils.default.toValueString(item ? item[labelField] : value);
287
317
  };
288
- const computeSelectLabel = (0, _vue.computed)(() => {
289
- const {
290
- modelValue,
291
- multiple,
292
- remote
293
- } = props;
294
- const multiMaxCharNum = computeMultiMaxCharNum.value;
295
- if (modelValue && multiple) {
296
- const vals = _xeUtils.default.isArray(modelValue) ? modelValue : [modelValue];
297
- if (remote) {
298
- return vals.map(val => getRemoteSelectLabel(val)).join(', ');
299
- }
300
- return vals.map(val => {
301
- const label = getSelectLabel(val);
302
- if (multiMaxCharNum > 0 && label.length > multiMaxCharNum) {
303
- return `${label.substring(0, multiMaxCharNum)}...`;
304
- }
305
- return label;
306
- }).join(', ');
307
- }
308
- if (remote) {
309
- return getRemoteSelectLabel(modelValue);
310
- }
311
- return getSelectLabel(modelValue);
312
- });
313
318
  const getOptkey = () => {
314
319
  const optionOpts = computeOptionOpts.value;
315
320
  return optionOpts.keyField || props.optionId || '_X_OPTION_KEY';
@@ -499,15 +504,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
499
504
  }
500
505
  });
501
506
  };
502
- let hidePanelTimeout;
503
507
  const showOptionPanel = () => {
504
508
  const {
505
509
  loading,
506
510
  filterable
507
511
  } = props;
512
+ const {
513
+ hpTimeout
514
+ } = internalData;
508
515
  const isDisabled = computeIsDisabled.value;
509
516
  if (!loading && !isDisabled) {
510
- clearTimeout(hidePanelTimeout);
517
+ if (hpTimeout) {
518
+ clearTimeout(hpTimeout);
519
+ internalData.hpTimeout = undefined;
520
+ }
511
521
  if (!reactData.initialized) {
512
522
  reactData.initialized = true;
513
523
  }
@@ -536,13 +546,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
536
546
  reactData.searchValue = '';
537
547
  reactData.searchLoading = false;
538
548
  reactData.visiblePanel = false;
539
- hidePanelTimeout = window.setTimeout(() => {
549
+ internalData.hpTimeout = window.setTimeout(() => {
540
550
  reactData.isAniVisible = false;
541
551
  }, 350);
542
552
  };
543
553
  const changeEvent = (evnt, selectValue) => {
554
+ emit('update:modelValue', selectValue);
544
555
  if (selectValue !== props.modelValue) {
545
- emit('update:modelValue', selectValue);
546
556
  selectMethods.dispatchEvent('change', {
547
557
  value: selectValue
548
558
  }, evnt);
@@ -807,7 +817,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
807
817
  const focusSearchEvent = () => {
808
818
  reactData.isActivated = true;
809
819
  };
810
- const triggerSearchEvent = _xeUtils.default.debounce(function () {
820
+ const handleSearchEvent = () => {
811
821
  const {
812
822
  remote,
813
823
  remoteMethod
@@ -826,7 +836,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
826
836
  } else {
827
837
  refreshOption();
828
838
  }
829
- }, 350, {
839
+ };
840
+ const triggerSearchEvent = _xeUtils.default.debounce(handleSearchEvent, 350, {
830
841
  trailing: true
831
842
  });
832
843
  const togglePanelEvent = params => {
@@ -1063,7 +1074,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1063
1074
  ref: 'hideOption'
1064
1075
  }, defaultSlot ? defaultSlot({}) : []), (0, _vue.h)('span', {
1065
1076
  class: 'vxe-select-label'
1066
- }, selectLabel)]);
1077
+ }, [selectLabel])]);
1067
1078
  }
1068
1079
  return (0, _vue.h)('div', {
1069
1080
  ref: refElem,
@@ -1138,7 +1149,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
1138
1149
  class: 'vxe-select--panel-footer'
1139
1150
  }, footerSlot({})) : (0, _vue.createCommentVNode)()])] : [])])]);
1140
1151
  };
1141
- $xeSelect.renderVN = renderVN;
1142
1152
  (0, _vue.watch)(() => reactData.staticOptions, value => {
1143
1153
  if (value.some(item => item.options && item.options.length)) {
1144
1154
  reactData.fullOptionList = [];
@@ -1184,6 +1194,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1184
1194
  _ui.globalEvents.off($xeSelect, 'blur');
1185
1195
  });
1186
1196
  (0, _vue.provide)('$xeSelect', $xeSelect);
1197
+ $xeSelect.renderVN = renderVN;
1187
1198
  return $xeSelect;
1188
1199
  },
1189
1200
  render() {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_input=_interopRequireDefault(require("../../input/src/input")),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteMethod:Function,emptyText:String,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean,transfer:{type:Boolean,default:null}},emits:["update:modelValue","change","clear","blur","focus","click"],setup(m,e){const{slots:x,emit:i}=e,w=(0,_vue.inject)("$xeModal",null),F=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var B=_xeUtils.default.uniqueId();const K=(0,_ui.useSize)(m)["computeSize"],E=(0,_vue.reactive)({initialized:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],remoteValueList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentOption:null,currentValue:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,searchValue:"",searchLoading:!1}),b=(0,_vue.ref)(),h=(0,_vue.ref)(),O=(0,_vue.ref)(),L=(0,_vue.ref)(),V=(0,_vue.ref)(),q={refElem:b},T={xID:B,props:m,context:e,reactData:E,getRefMaps:()=>q};let u={};const D=(0,_vue.computed)(()=>{var e=m["readonly"];return null===e?!!l&&l.props.readonly:e}),y=(0,_vue.computed)(()=>{var e=m["disabled"];return null===e?!!l&&l.props.disabled:e}),A=(0,_vue.computed)(()=>{var e=m["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(F||w||l)return!0}return e}),j=(0,_vue.computed)(()=>{var e=m["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),t=(0,_vue.computed)(()=>m.optionProps||{}),n=(0,_vue.computed)(()=>m.optionGroupProps||{}),r=(0,_vue.computed)(()=>{return t.value.label||"label"}),S=(0,_vue.computed)(()=>{return t.value.value||"value"}),c=(0,_vue.computed)(()=>{return n.value.label||"label"}),P=(0,_vue.computed)(()=>{return n.value.options||"options"}),z=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,max:l}=m;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)}),C=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,m.optionConfig)),I=(0,_vue.computed)(()=>E.fullGroupList.some(e=>e.options&&e.options.length)),R=(0,_vue.computed)(()=>_xeUtils.default.toNumber(m.multiCharOverflow)),N=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=x[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],s=t=>{var{fullOptionList:e,fullGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])},a=t=>{var e=E["remoteValueList"],l=r.value,e=e.find(e=>t===e.key),e=e?e.result:null;return _xeUtils.default.toValueString(e?e[l]:t)},v=e=>{var t=r.value,l=s(e);return _xeUtils.default.toValueString(l?l[t]:e)},M=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,remote:l}=m;const i=R.value;return e&&t?(t=_xeUtils.default.isArray(e)?e:[e],(l?t.map(e=>a(e)):t.map(e=>{e=v(e);return 0<i&&e.length>i?e.substring(0,i)+"...":e})).join(", ")):(l?a:v)(e)}),p=()=>{return C.value.keyField||m.optionId||"_X_OPTION_KEY"},U=e=>{e=e[p()];return e?encodeURIComponent(e):""},d=()=>{const{filterable:e,filterMethod:t}=m;var{fullOptionList:l,fullGroupList:i,searchValue:o}=E,u=I.value;const n=c.value,s=r.value,a=(""+(o||"")).toLowerCase();return u?e&&t?E.visibleGroupList=i.filter(e=>isOptionVisible(e)&&t({group:e,option:null,searchValue:a})):E.visibleGroupList=e?i.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[n]).toLowerCase().indexOf(a))):i.filter(isOptionVisible):e&&t?E.visibleOptionList=l.filter(e=>isOptionVisible(e)&&t({group:null,option:e,searchValue:a})):E.visibleOptionList=e?l.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[s]).toLowerCase().indexOf(a))):l.filter(isOptionVisible),(0,_vue.nextTick)()},f=()=>{var{fullOptionList:e,fullGroupList:t}=E;const l=P.value,i=p(),o=e=>{U(e)||(e[i]=getOptUniqueId())};t.length?t.forEach(e=>{o(e),e[l]&&e[l].forEach(o)}):e.length&&e.forEach(o),d()},G=e=>{var t=S.value;e&&(E.currentOption=e,E.currentValue=e[t])},$=(i,o)=>(0,_vue.nextTick)().then(()=>{var e,t,l;i&&(e=L.value,t=V.value.querySelector(`[optid='${U(i)}']`),e)&&t&&(l=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>l&&(e.scrollTop=t.offsetTop+t.offsetHeight-l):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5))}),H=()=>(0,_vue.nextTick)().then(()=>{var i=m["placement"],o=E["panelIndex"],u=b.value,n=V.value,e=A.value;if(n&&u){var s=u.offsetHeight,a=u.offsetWidth,r=n.offsetHeight,n=n.offsetWidth,o={zIndex:o},{boundingTop:u,boundingLeft:v,visibleHeight:p,visibleWidth:c}=(0,_dom.getAbsolutePos)(u);let l="bottom";if(e){let e=v,t=u+s;"top"===i?(l="top",t=u-r):i||(t+r+5>p&&(l="top",t=u-r),t<5&&(l="bottom",t=u+s)),e+n+5>c&&(e-=e+n+5-c),e<5&&(e=5),Object.assign(o,{left:e+"px",top:t+"px",minWidth:a+"px"})}else"top"===i?(l="top",o.bottom=s+"px"):i||p<u+s+r&&5<u-s-r&&(l="top",o.bottom=s+"px");return E.panelStyle=o,E.panelPlacement=l,(0,_vue.nextTick)()}});let Y;const _=()=>{var{loading:e,filterable:t}=m,l=y.value;e||l||(clearTimeout(Y),E.initialized||(E.initialized=!0),E.isActivated=!0,E.isAniVisible=!0,t&&d(),setTimeout(()=>{var e=m["modelValue"],e=s(_xeUtils.default.isArray(e)?e[0]:e);E.visiblePanel=!0,e&&(G(e),$(e)),m.filterable&&(0,_vue.nextTick)(()=>{var e=O.value;e&&e.focus()})},10),E.panelIndex<(0,_utils.getLastZIndex)()&&(E.panelIndex=(0,_utils.nextZIndex)()),H())},g=()=>{E.searchValue="",E.searchLoading=!1,E.visiblePanel=!1,Y=window.setTimeout(()=>{E.isAniVisible=!1},350)},k=(e,t)=>{t!==m.modelValue&&(i("update:modelValue",t),u.dispatchEvent("change",{value:t},e),l)&&o&&l.triggerItemEvent(e,o.itemConfig.field,t)},W=(e,t)=>{E.remoteValueList=[],k(e,t),u.dispatchEvent("clear",{value:t},e)},Z=(e,t)=>{W(t,null),g()},X=(t,l,i)=>{var{modelValue:o,multiple:u}=m,n=E["remoteValueList"];if(u){let e=[];u=_xeUtils.default.eqNull(o)?[]:_xeUtils.default.isArray(o)?o:[o],o=_xeUtils.default.findIndexOf(u,e=>e===l),o=(e=-1===o?u.concat([l]):u.filter(e=>e!==l),n.find(e=>e.key===l));o?o.result=i:n.push({key:l,result:i}),k(t,e)}else E.remoteValueList=[{key:l,result:i}],k(t,l),g()},J=e=>{var t=E["visiblePanel"];y.value||t&&(t=V.value,((0,_dom.getEventTargetNode)(e,t).flag?H:g)())},Q=e=>{var t,l,i=E["visiblePanel"];y.value||(t=b.value,l=V.value,E.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!E.isActivated&&g())},ee=l=>{var e=m["clearable"],{visiblePanel:t,currentValue:i,currentOption:o}=E;if(!y.value){var u=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.TAB),n=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ESCAPE),a=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),v=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.DELETE),p=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(u&&(E.isActivated=!1),t)if(s||u)g();else if(n)l.preventDefault(),l.stopPropagation(),X(l,i,o);else if(a||r){l.preventDefault();let{firstOption:e,offsetOption:t}=((t,l)=>{var{visibleOptionList:i,visibleGroupList:o}=E,e=I.value,u=S.value,n=P.value;let s,a,r,v;if(e)for(let e=0;e<o.length;e++){var p=o[e],c=p[n],d=p.disabled;if(c)for(let e=0;e<c.length;e++){var f=c[e],_=isOptionVisible(f),g=d||f.disabled;if(s||g||(s=f),v&&_&&!g&&(r=f,!l))return{offsetOption:r};if(t===f[u]){if(v=f,l)return{offsetOption:a}}else _&&!g&&(a=f)}}else for(let e=0;e<i.length;e++){var b=i[e],h=b.disabled;if(s||h||(s=b),v&&!h&&(r=b,!l))return{offsetOption:r};if(t===b[u]){if(v=b,l)return{offsetOption:a}}else h||(a=b)}return{firstOption:s}})(i,a);t||(t=>{var{visibleOptionList:e,visibleGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])})(i)||(t=e),G(t),$(t,r)}else p&&l.preventDefault();else(a||r||n||p)&&E.isActivated&&(l.preventDefault(),_());E.isActivated&&v&&e&&W(l,null)}},te=()=>{g()},le=e=>{y.value||E.visiblePanel||(E.triggerFocusPanel=!0,_(),setTimeout(()=>{E.triggerFocusPanel=!1},150)),u.dispatchEvent("focus",{},e)},ie=e=>{ae(e),u.dispatchEvent("click",{},e)},oe=e=>{E.isActivated=!1,u.dispatchEvent("blur",{},e)},ue=e=>{E.searchValue=e},ne=()=>{E.isActivated=!0},se=_xeUtils.default.debounce(function(){var{remote:e,remoteMethod:t}=m,l=E["searchValue"];e&&t?(E.searchLoading=!0,Promise.resolve(t({searchValue:l})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{E.searchLoading=!1,d()})):d()},350,{trailing:!0}),ae=e=>{e=e.$event;e.preventDefault(),E.triggerFocusPanel?E.triggerFocusPanel=!1:(E.visiblePanel?g:_)()},re=(e,v)=>{const{optionKey:p,modelValue:c}=m,d=E["currentValue"];var t=C.value;const f=r.value,_=S.value,g=I.value,b=t["useKey"],h=x.option;return e.map((t,e)=>{var{slots:l,className:i}=t;const o=t[_];var u=_xeUtils.default.isArray(c)?-1<c.indexOf(o):c===o,n=!g||isOptionVisible(t);r=u,a=v;const s=!!t.disabled||!(!a||!a.disabled)||!(!z.value||r);var a=U(t),r=l?l.default:null,l={option:t,group:null,$select:T};return n?(0,_vue.h)("div",{key:b||p?a:e,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i(l):i:"",{"is--disabled":s,"is--selected":u,"is--hover":d===o}],optid:a,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{s||X(e,o,t)},onMouseenter:()=>{s||G(t)}},h?N(h,l):r?N(r,l):(0,_utils.getFuncText)(t[f])):(0,_vue.createCommentVNode)()})},ve=()=>{const s=m["optionKey"];var e=E["visibleGroupList"],t=C.value;const a=c.value,r=P.value,v=t["useKey"],p=x.option;return e.map((e,t)=>{var{slots:l,className:i}=e,o=U(e),u=e.disabled,l=l?l.default:null,n={option:e,group:e,$select:T};return(0,_vue.h)("div",{key:v||s?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i(n):i:"",{"is--disabled":u}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},p?N(p,n):l?N(l,n):(0,_utils.getFuncText)(e[a])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},re(e[r]||[],e))])})};u={dispatchEvent(e,t,l){i(e,(0,_ui.createEvent)(l,{$select:T},t))},isPanelVisible(){return E.visiblePanel},togglePanel(){return(E.visiblePanel?g:_)(),(0,_vue.nextTick)()},hidePanel(){return E.visiblePanel&&g(),(0,_vue.nextTick)()},showPanel(){return E.visiblePanel||_(),(0,_vue.nextTick)()},refreshOption:d,focus(){var e=h.value;return E.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur(){return h.value.blur(),(E.isActivated=!1,_vue.nextTick)()}},Object.assign(T,u);return T.renderVN=()=>{var{className:e,popupClassName:t,loading:l,filterable:i}=m,{initialized:o,isActivated:u,visiblePanel:n}=E,s=K.value,a=y.value,r=M.value,v=A.value,p=D.value,c=j.value,d=x.default,f=x.header,_=x.footer;const g=x.prefix;return p?(0,_vue.h)("div",{ref:b,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},r)]):(0,_vue.h)("div",{ref:b,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:T}):e:"",{["size--"+s]:s,"is--visible":n,"is--disabled":a,"is--filter":i,"is--loading":l,"is--active":u}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)(_input.default,{ref:h,clearable:m.clearable,placeholder:c,readonly:!0,disabled:a,type:"text",prefixIcon:m.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:n?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,modelValue:r,onClear:Z,onClick:ie,onFocus:le,onBlur:oe,onSuffixClick:ae},g?{prefix:()=>g({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!v||!o},[(0,_vue.h)("div",{ref:V,class:["vxe-table--ignore-clear vxe-select--panel",t?_xeUtils.default.isFunction(t)?t({$select:T}):t:"",{["size--"+s]:s,"is--transfer":v,"ani--leave":!l&&E.isAniVisible,"ani--enter":!l&&n}],placement:E.panelPlacement,style:E.panelStyle},o?[i?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:O,class:"vxe-select-search--input",modelValue:E.searchValue,clearable:!0,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":ue,onFocus:ne,onChange:se,onSearch:se})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[f?(0,_vue.h)("div",{class:"vxe-select--panel-header"},f({})):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:L,class:"vxe-select-option--wrapper"},(()=>{var{visibleGroupList:e,visibleOptionList:t,searchLoading:l}=E,i=I.value;if(l)return[(0,_vue.h)("div",{class:"vxe-select--search-loading"},[(0,_vue.h)("i",{class:["vxe-select--search-icon",(0,_ui.getIcon)().SELECT_LOADED]}),(0,_vue.h)("span",{class:"vxe-select--search-text"},(0,_ui.getI18n)("vxe.select.loadingText"))])];if(i){if(e.length)return ve()}else if(t.length)return re(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},m.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())]),_?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},_({})):(0,_vue.createCommentVNode)()])]:[])])])},(0,_vue.watch)(()=>E.staticOptions,e=>{e.some(e=>e.options&&e.options.length)?(E.fullOptionList=[],E.fullGroupList=e):(E.fullGroupList=[],E.fullOptionList=e||[]),f()}),(0,_vue.watch)(()=>m.options,e=>{E.fullGroupList=[],E.fullOptionList=e||[],f()}),(0,_vue.watch)(()=>m.optionGroups,e=>{E.fullOptionList=[],E.fullGroupList=e||[],f()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=m;t?E.fullGroupList=t:e&&(E.fullOptionList=e),f()}),_ui.globalEvents.on(T,"mousewheel",J),_ui.globalEvents.on(T,"mousedown",Q),_ui.globalEvents.on(T,"keydown",ee),_ui.globalEvents.on(T,"blur",te)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(T,"mousewheel"),_ui.globalEvents.off(T,"mousedown"),_ui.globalEvents.off(T,"keydown"),_ui.globalEvents.off(T,"blur")}),(0,_vue.provide)("$xeSelect",T),T},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_input=_interopRequireDefault(require("../../input/src/input")),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteMethod:Function,emptyText:String,transfer:{type:Boolean,default:null},optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","clear","blur","focus","click"],setup(m,e){const{slots:x,emit:i}=e,w=(0,_vue.inject)("$xeModal",null),F=(0,_vue.inject)("$xeDrawer",null),B=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var K=_xeUtils.default.uniqueId();const D=(0,_ui.useSize)(m)["computeSize"],E=(0,_vue.reactive)({initialized:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],remoteValueList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentOption:null,currentValue:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,searchValue:"",searchLoading:!1}),u={hpTimeout:void 0},h=(0,_vue.ref)(),b=(0,_vue.ref)(),O=(0,_vue.ref)(),L=(0,_vue.ref)(),V=(0,_vue.ref)(),q={refElem:h},T={xID:K,props:m,context:e,reactData:E,internalData:u,getRefMaps:()=>q};let n={};const j=(0,_vue.computed)(()=>{var e=m["readonly"];return null===e?!!l&&l.props.readonly:e}),y=(0,_vue.computed)(()=>{var e=m["disabled"];return null===e?!!l&&l.props.disabled:e}),A=(0,_vue.computed)(()=>{var e=m["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(B||w||F||l)return!0}return e}),z=(0,_vue.computed)(()=>{var e=m["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),t=(0,_vue.computed)(()=>Object.assign({},m.optionProps)),s=(0,_vue.computed)(()=>Object.assign({},m.optionGroupProps)),r=(0,_vue.computed)(()=>{return t.value.label||"label"}),S=(0,_vue.computed)(()=>{return t.value.value||"value"}),c=(0,_vue.computed)(()=>{return s.value.label||"label"}),P=(0,_vue.computed)(()=>{return s.value.options||"options"}),R=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,max:l}=m;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)}),C=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,m.optionConfig)),I=(0,_vue.computed)(()=>E.fullGroupList.some(e=>e.options&&e.options.length)),$=(0,_vue.computed)(()=>_xeUtils.default.toNumber(m.multiCharOverflow)),M=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,remote:l}=m;const i=$.value;return e&&t?(t=_xeUtils.default.isArray(e)?e:[e],(l?t.map(e=>v(e)):t.map(e=>{e=p(e);return 0<i&&e.length>i?e.substring(0,i)+"...":e})).join(", ")):(l?v:p)(e)}),N=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=x[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],a=t=>{var{fullOptionList:e,fullGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])},v=t=>{var e=E["remoteValueList"],l=r.value,e=e.find(e=>t===e.key),e=e?e.result:null;return _xeUtils.default.toValueString(e?e[l]:t)},p=e=>{var t=r.value,l=a(e);return _xeUtils.default.toValueString(l?l[t]:e)},H=()=>{return C.value.keyField||m.optionId||"_X_OPTION_KEY"},U=e=>{e=e[H()];return e?encodeURIComponent(e):""},d=()=>{const{filterable:e,filterMethod:t}=m;var{fullOptionList:l,fullGroupList:i,searchValue:o}=E,u=I.value;const n=c.value,s=r.value,a=(""+(o||"")).toLowerCase();return u?e&&t?E.visibleGroupList=i.filter(e=>isOptionVisible(e)&&t({group:e,option:null,searchValue:a})):E.visibleGroupList=e?i.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[n]).toLowerCase().indexOf(a))):i.filter(isOptionVisible):e&&t?E.visibleOptionList=l.filter(e=>isOptionVisible(e)&&t({group:null,option:e,searchValue:a})):E.visibleOptionList=e?l.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[s]).toLowerCase().indexOf(a))):l.filter(isOptionVisible),(0,_vue.nextTick)()},f=()=>{var{fullOptionList:e,fullGroupList:t}=E;const l=P.value,i=H(),o=e=>{U(e)||(e[i]=getOptUniqueId())};t.length?t.forEach(e=>{o(e),e[l]&&e[l].forEach(o)}):e.length&&e.forEach(o),d()},G=e=>{var t=S.value;e&&(E.currentOption=e,E.currentValue=e[t])},Y=(i,o)=>(0,_vue.nextTick)().then(()=>{var e,t,l;i&&(e=L.value,t=V.value.querySelector(`[optid='${U(i)}']`),e)&&t&&(l=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>l&&(e.scrollTop=t.offsetTop+t.offsetHeight-l):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5))}),W=()=>(0,_vue.nextTick)().then(()=>{var i=m["placement"],o=E["panelIndex"],u=h.value,n=V.value,e=A.value;if(n&&u){var s=u.offsetHeight,a=u.offsetWidth,r=n.offsetHeight,n=n.offsetWidth,o={zIndex:o},{boundingTop:u,boundingLeft:v,visibleHeight:p,visibleWidth:c}=(0,_dom.getAbsolutePos)(u);let l="bottom";if(e){let e=v,t=u+s;"top"===i?(l="top",t=u-r):i||(t+r+5>p&&(l="top",t=u-r),t<5&&(l="bottom",t=u+s)),e+n+5>c&&(e-=e+n+5-c),e<5&&(e=5),Object.assign(o,{left:e+"px",top:t+"px",minWidth:a+"px"})}else"top"===i?(l="top",o.bottom=s+"px"):i||p<u+s+r&&5<u-s-r&&(l="top",o.bottom=s+"px");return E.panelStyle=o,E.panelPlacement=l,(0,_vue.nextTick)()}}),_=()=>{var{loading:e,filterable:t}=m,l=u["hpTimeout"],i=y.value;e||i||(l&&(clearTimeout(l),u.hpTimeout=void 0),E.initialized||(E.initialized=!0),E.isActivated=!0,E.isAniVisible=!0,t&&d(),setTimeout(()=>{var e=m["modelValue"],e=a(_xeUtils.default.isArray(e)?e[0]:e);E.visiblePanel=!0,e&&(G(e),Y(e)),m.filterable&&(0,_vue.nextTick)(()=>{var e=O.value;e&&e.focus()})},10),E.panelIndex<(0,_utils.getLastZIndex)()&&(E.panelIndex=(0,_utils.nextZIndex)()),W())},g=()=>{E.searchValue="",E.searchLoading=!1,E.visiblePanel=!1,u.hpTimeout=window.setTimeout(()=>{E.isAniVisible=!1},350)},k=(e,t)=>{i("update:modelValue",t),t!==m.modelValue&&(n.dispatchEvent("change",{value:t},e),l)&&o&&l.triggerItemEvent(e,o.itemConfig.field,t)},Z=(e,t)=>{E.remoteValueList=[],k(e,t),n.dispatchEvent("clear",{value:t},e)},X=(e,t)=>{Z(t,null),g()},J=(t,l,i)=>{var{modelValue:o,multiple:u}=m,n=E["remoteValueList"];if(u){let e=[];u=_xeUtils.default.eqNull(o)?[]:_xeUtils.default.isArray(o)?o:[o],o=_xeUtils.default.findIndexOf(u,e=>e===l),o=(e=-1===o?u.concat([l]):u.filter(e=>e!==l),n.find(e=>e.key===l));o?o.result=i:n.push({key:l,result:i}),k(t,e)}else E.remoteValueList=[{key:l,result:i}],k(t,l),g()},Q=e=>{var t=E["visiblePanel"];y.value||t&&(t=V.value,((0,_dom.getEventTargetNode)(e,t).flag?W:g)())},ee=e=>{var t,l,i=E["visiblePanel"];y.value||(t=h.value,l=V.value,E.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!E.isActivated&&g())},te=l=>{var e=m["clearable"],{visiblePanel:t,currentValue:i,currentOption:o}=E;if(!y.value){var u=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.TAB),n=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ESCAPE),a=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),v=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.DELETE),p=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(u&&(E.isActivated=!1),t)if(s||u)g();else if(n)l.preventDefault(),l.stopPropagation(),J(l,i,o);else if(a||r){l.preventDefault();let{firstOption:e,offsetOption:t}=((t,l)=>{var{visibleOptionList:i,visibleGroupList:o}=E,e=I.value,u=S.value,n=P.value;let s,a,r,v;if(e)for(let e=0;e<o.length;e++){var p=o[e],c=p[n],d=p.disabled;if(c)for(let e=0;e<c.length;e++){var f=c[e],_=isOptionVisible(f),g=d||f.disabled;if(s||g||(s=f),v&&_&&!g&&(r=f,!l))return{offsetOption:r};if(t===f[u]){if(v=f,l)return{offsetOption:a}}else _&&!g&&(a=f)}}else for(let e=0;e<i.length;e++){var h=i[e],b=h.disabled;if(s||b||(s=h),v&&!b&&(r=h,!l))return{offsetOption:r};if(t===h[u]){if(v=h,l)return{offsetOption:a}}else b||(a=h)}return{firstOption:s}})(i,a);t||(t=>{var{visibleOptionList:e,visibleGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])})(i)||(t=e),G(t),Y(t,r)}else p&&l.preventDefault();else(a||r||n||p)&&E.isActivated&&(l.preventDefault(),_());E.isActivated&&v&&e&&Z(l,null)}},le=()=>{g()},ie=e=>{y.value||E.visiblePanel||(E.triggerFocusPanel=!0,_(),setTimeout(()=>{E.triggerFocusPanel=!1},150)),n.dispatchEvent("focus",{},e)},oe=e=>{re(e),n.dispatchEvent("click",{},e)},ue=e=>{E.isActivated=!1,n.dispatchEvent("blur",{},e)},ne=e=>{E.searchValue=e},se=()=>{E.isActivated=!0};const ae=_xeUtils.default.debounce(()=>{var{remote:e,remoteMethod:t}=m,l=E["searchValue"];e&&t?(E.searchLoading=!0,Promise.resolve(t({searchValue:l})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{E.searchLoading=!1,d()})):d()},350,{trailing:!0}),re=e=>{e=e.$event;e.preventDefault(),E.triggerFocusPanel?E.triggerFocusPanel=!1:(E.visiblePanel?g:_)()},ve=(e,v)=>{const{optionKey:p,modelValue:c}=m,d=E["currentValue"];var t=C.value;const f=r.value,_=S.value,g=I.value,h=t["useKey"],b=x.option;return e.map((t,e)=>{var{slots:l,className:i}=t;const o=t[_];var u=_xeUtils.default.isArray(c)?-1<c.indexOf(o):c===o,n=!g||isOptionVisible(t);r=u,a=v;const s=!!t.disabled||!(!a||!a.disabled)||!(!R.value||r);var a=U(t),r=l?l.default:null,l={option:t,group:null,$select:T};return n?(0,_vue.h)("div",{key:h||p?a:e,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i(l):i:"",{"is--disabled":s,"is--selected":u,"is--hover":d===o}],optid:a,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{s||J(e,o,t)},onMouseenter:()=>{s||G(t)}},b?N(b,l):r?N(r,l):(0,_utils.getFuncText)(t[f])):(0,_vue.createCommentVNode)()})},pe=()=>{const s=m["optionKey"];var e=E["visibleGroupList"],t=C.value;const a=c.value,r=P.value,v=t["useKey"],p=x.option;return e.map((e,t)=>{var{slots:l,className:i}=e,o=U(e),u=e.disabled,l=l?l.default:null,n={option:e,group:e,$select:T};return(0,_vue.h)("div",{key:v||s?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i(n):i:"",{"is--disabled":u}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},p?N(p,n):l?N(l,n):(0,_utils.getFuncText)(e[a])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},ve(e[r]||[],e))])})};n={dispatchEvent(e,t,l){i(e,(0,_ui.createEvent)(l,{$select:T},t))},isPanelVisible(){return E.visiblePanel},togglePanel(){return(E.visiblePanel?g:_)(),(0,_vue.nextTick)()},hidePanel(){return E.visiblePanel&&g(),(0,_vue.nextTick)()},showPanel(){return E.visiblePanel||_(),(0,_vue.nextTick)()},refreshOption:d,focus(){var e=b.value;return E.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur(){return b.value.blur(),(E.isActivated=!1,_vue.nextTick)()}},Object.assign(T,n);return(0,_vue.watch)(()=>E.staticOptions,e=>{e.some(e=>e.options&&e.options.length)?(E.fullOptionList=[],E.fullGroupList=e):(E.fullGroupList=[],E.fullOptionList=e||[]),f()}),(0,_vue.watch)(()=>m.options,e=>{E.fullGroupList=[],E.fullOptionList=e||[],f()}),(0,_vue.watch)(()=>m.optionGroups,e=>{E.fullOptionList=[],E.fullGroupList=e||[],f()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=m;t?E.fullGroupList=t:e&&(E.fullOptionList=e),f()}),_ui.globalEvents.on(T,"mousewheel",Q),_ui.globalEvents.on(T,"mousedown",ee),_ui.globalEvents.on(T,"keydown",te),_ui.globalEvents.on(T,"blur",le)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(T,"mousewheel"),_ui.globalEvents.off(T,"mousedown"),_ui.globalEvents.off(T,"keydown"),_ui.globalEvents.off(T,"blur")}),(0,_vue.provide)("$xeSelect",T),T.renderVN=()=>{var{className:e,popupClassName:t,loading:l,filterable:i}=m,{initialized:o,isActivated:u,visiblePanel:n}=E,s=D.value,a=y.value,r=M.value,v=A.value,p=j.value,c=z.value,d=x.default,f=x.header,_=x.footer;const g=x.prefix;return p?(0,_vue.h)("div",{ref:h,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},[r])]):(0,_vue.h)("div",{ref:h,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:T}):e:"",{["size--"+s]:s,"is--visible":n,"is--disabled":a,"is--filter":i,"is--loading":l,"is--active":u}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)(_input.default,{ref:b,clearable:m.clearable,placeholder:c,readonly:!0,disabled:a,type:"text",prefixIcon:m.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:n?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,modelValue:r,onClear:X,onClick:oe,onFocus:ie,onBlur:ue,onSuffixClick:re},g?{prefix:()=>g({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!v||!o},[(0,_vue.h)("div",{ref:V,class:["vxe-table--ignore-clear vxe-select--panel",t?_xeUtils.default.isFunction(t)?t({$select:T}):t:"",{["size--"+s]:s,"is--transfer":v,"ani--leave":!l&&E.isAniVisible,"ani--enter":!l&&n}],placement:E.panelPlacement,style:E.panelStyle},o?[i?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:O,class:"vxe-select-search--input",modelValue:E.searchValue,clearable:!0,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":ne,onFocus:se,onChange:ae,onSearch:ae})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[f?(0,_vue.h)("div",{class:"vxe-select--panel-header"},f({})):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:L,class:"vxe-select-option--wrapper"},(()=>{var{visibleGroupList:e,visibleOptionList:t,searchLoading:l}=E,i=I.value;if(l)return[(0,_vue.h)("div",{class:"vxe-select--search-loading"},[(0,_vue.h)("i",{class:["vxe-select--search-icon",(0,_ui.getIcon)().SELECT_LOADED]}),(0,_vue.h)("span",{class:"vxe-select--search-text"},(0,_ui.getI18n)("vxe.select.loadingText"))])];if(i){if(e.length)return pe()}else if(t.length)return ve(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},m.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())]),_?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},_({})):(0,_vue.createCommentVNode)()])]:[])])])},T},render(){return this.renderVN()}});
@@ -25,7 +25,7 @@ function watchOption(props, option) {
25
25
  });
26
26
  });
27
27
  }
28
- function assembleOption($xeSelect, el, option, optGroup) {
28
+ function assembleOption($xeSelect, el, option, $xeOptgroup) {
29
29
  const {
30
30
  reactData
31
31
  } = $xeSelect;
@@ -33,7 +33,7 @@ function assembleOption($xeSelect, el, option, optGroup) {
33
33
  staticOptions
34
34
  } = reactData;
35
35
  const parentElem = el.parentNode;
36
- const parentOption = optGroup ? optGroup.option : null;
36
+ const parentOption = $xeOptgroup ? $xeOptgroup.optionConfig : null;
37
37
  const parentCols = parentOption ? parentOption.options : staticOptions;
38
38
  if (parentElem && parentCols) {
39
39
  parentCols.splice(_xeUtils.default.arrayIndexOf(parentElem.children, el), 0, option);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleOption=assembleOption,exports.createOption=createOption,exports.destroyOption=destroyOption,exports.isOption=isOption,exports.watchOption=watchOption;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_optionInfo=require("./option-info");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function isOption(t){return t instanceof _optionInfo.OptionInfo}function createOption(t,e){return isOption(e)?e:new _optionInfo.OptionInfo(t,e)}function watchOption(t,i){Object.keys(t).forEach(e=>{(0,_vue.watch)(()=>t[e],t=>{i.update(e,t)})})}function assembleOption(t,e,i,o){var t=t["reactData"],n=t["staticOptions"],s=e.parentNode,o=o?o.option:null,o=o?o.options:n;s&&o&&(o.splice(_xeUtils.default.arrayIndexOf(s.children,e),0,i),t.staticOptions=n.slice(0))}function destroyOption(t,e){var t=t["reactData"],i=t["staticOptions"],o=_xeUtils.default.findTree(i,t=>t.id===e.id,{children:"options"});o&&o.items.splice(o.index,1),t.staticOptions=i.slice(0)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleOption=assembleOption,exports.createOption=createOption,exports.destroyOption=destroyOption,exports.isOption=isOption,exports.watchOption=watchOption;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_optionInfo=require("./option-info");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function isOption(t){return t instanceof _optionInfo.OptionInfo}function createOption(t,e){return isOption(e)?e:new _optionInfo.OptionInfo(t,e)}function watchOption(t,i){Object.keys(t).forEach(e=>{(0,_vue.watch)(()=>t[e],t=>{i.update(e,t)})})}function assembleOption(t,e,i,o){var t=t["reactData"],n=t["staticOptions"],s=e.parentNode,o=o?o.optionConfig:null,o=o?o.options:n;s&&o&&(o.splice(_xeUtils.default.arrayIndexOf(s.children,e),0,i),t.staticOptions=n.slice(0))}function destroyOption(t,e){var t=t["reactData"],i=t["staticOptions"],o=_xeUtils.default.findTree(i,t=>t.id===e.id,{children:"options"});o&&o.items.splice(o.index,1),t.staticOptions=i.slice(0)}