vxe-pc-ui 4.7.16 → 4.7.18

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 (192) hide show
  1. package/es/color-picker/src/color-picker.js +15 -3
  2. package/es/date-panel/src/date-panel.js +21 -9
  3. package/es/date-panel/style.css +14 -15
  4. package/es/date-panel/style.min.css +1 -1
  5. package/es/date-picker/src/date-picker.js +10 -6
  6. package/es/date-range-picker/src/date-range-picker.js +20 -3
  7. package/es/form/src/itemInfo.js +11 -3
  8. package/es/icon/style.css +1 -1
  9. package/es/icon-picker/src/icon-picker.js +13 -1
  10. package/es/input/src/input.js +8 -2
  11. package/es/language/ar-EG.js +1 -0
  12. package/es/language/de-DE.js +1 -0
  13. package/es/language/en-US.js +1 -0
  14. package/es/language/es-ES.js +1 -0
  15. package/es/language/fr-FR.js +1 -0
  16. package/es/language/hu-HU.js +1 -0
  17. package/es/language/hy-AM.js +1 -0
  18. package/es/language/id-ID.js +1 -0
  19. package/es/language/it-IT.js +1 -0
  20. package/es/language/ja-JP.js +1 -0
  21. package/es/language/ko-KR.js +1 -0
  22. package/es/language/ms-MY.js +1 -0
  23. package/es/language/nb-NO.js +1 -0
  24. package/es/language/pt-BR.js +1 -0
  25. package/es/language/ru-RU.js +1 -0
  26. package/es/language/th-TH.js +1 -0
  27. package/es/language/ug-CN.js +1 -0
  28. package/es/language/uk-UA.js +1 -0
  29. package/es/language/uz-UZ.js +1 -0
  30. package/es/language/vi-VN.js +1 -0
  31. package/es/language/zh-CHT.js +1 -0
  32. package/es/language/zh-CN.js +1 -0
  33. package/es/pulldown/src/pulldown.js +14 -11
  34. package/es/select/src/select.js +13 -1
  35. package/es/style.css +1 -1
  36. package/es/style.min.css +1 -1
  37. package/es/table-select/src/table-select.js +13 -1
  38. package/es/tree-select/src/tree-select.js +13 -1
  39. package/es/ui/index.js +1 -1
  40. package/es/ui/src/log.js +1 -1
  41. package/es/vxe-date-panel/style.css +14 -15
  42. package/es/vxe-date-panel/style.min.css +1 -1
  43. package/lib/color-picker/src/color-picker.js +18 -3
  44. package/lib/color-picker/src/color-picker.min.js +1 -1
  45. package/lib/date-panel/src/date-panel.js +27 -13
  46. package/lib/date-panel/src/date-panel.min.js +1 -1
  47. package/lib/date-panel/style/style.css +14 -15
  48. package/lib/date-panel/style/style.min.css +1 -1
  49. package/lib/date-picker/src/date-picker.js +10 -5
  50. package/lib/date-picker/src/date-picker.min.js +1 -1
  51. package/lib/date-range-picker/src/date-range-picker.js +21 -3
  52. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  53. package/lib/form/src/itemInfo.js +12 -2
  54. package/lib/form/src/itemInfo.min.js +1 -1
  55. package/lib/icon/style/style.css +1 -1
  56. package/lib/icon/style/style.min.css +1 -1
  57. package/lib/icon-picker/src/icon-picker.js +16 -1
  58. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  59. package/lib/index.umd.js +181 -45
  60. package/lib/index.umd.min.js +1 -1
  61. package/lib/input/src/input.js +9 -2
  62. package/lib/input/src/input.min.js +1 -1
  63. package/lib/language/ar-EG.js +1 -0
  64. package/lib/language/ar-EG.min.js +1 -1
  65. package/lib/language/ar-EG.umd.js +1 -0
  66. package/lib/language/de-DE.js +1 -0
  67. package/lib/language/de-DE.min.js +1 -1
  68. package/lib/language/de-DE.umd.js +1 -0
  69. package/lib/language/en-US.js +1 -0
  70. package/lib/language/en-US.min.js +1 -1
  71. package/lib/language/en-US.umd.js +1 -0
  72. package/lib/language/es-ES.js +1 -0
  73. package/lib/language/es-ES.min.js +1 -1
  74. package/lib/language/es-ES.umd.js +1 -0
  75. package/lib/language/fr-FR.js +1 -0
  76. package/lib/language/fr-FR.min.js +1 -1
  77. package/lib/language/fr-FR.umd.js +1 -0
  78. package/lib/language/hu-HU.js +1 -0
  79. package/lib/language/hu-HU.min.js +1 -1
  80. package/lib/language/hu-HU.umd.js +1 -0
  81. package/lib/language/hy-AM.js +1 -0
  82. package/lib/language/hy-AM.min.js +1 -1
  83. package/lib/language/hy-AM.umd.js +1 -0
  84. package/lib/language/id-ID.js +1 -0
  85. package/lib/language/id-ID.min.js +1 -1
  86. package/lib/language/id-ID.umd.js +1 -0
  87. package/lib/language/it-IT.js +1 -0
  88. package/lib/language/it-IT.min.js +1 -1
  89. package/lib/language/it-IT.umd.js +1 -0
  90. package/lib/language/ja-JP.js +1 -0
  91. package/lib/language/ja-JP.min.js +1 -1
  92. package/lib/language/ja-JP.umd.js +1 -0
  93. package/lib/language/ko-KR.js +1 -0
  94. package/lib/language/ko-KR.min.js +1 -1
  95. package/lib/language/ko-KR.umd.js +1 -0
  96. package/lib/language/ms-MY.js +1 -0
  97. package/lib/language/ms-MY.min.js +1 -1
  98. package/lib/language/ms-MY.umd.js +1 -0
  99. package/lib/language/nb-NO.js +1 -0
  100. package/lib/language/nb-NO.min.js +1 -1
  101. package/lib/language/nb-NO.umd.js +1 -0
  102. package/lib/language/pt-BR.js +1 -0
  103. package/lib/language/pt-BR.min.js +1 -1
  104. package/lib/language/pt-BR.umd.js +1 -0
  105. package/lib/language/ru-RU.js +1 -0
  106. package/lib/language/ru-RU.min.js +1 -1
  107. package/lib/language/ru-RU.umd.js +1 -0
  108. package/lib/language/th-TH.js +1 -0
  109. package/lib/language/th-TH.min.js +1 -1
  110. package/lib/language/th-TH.umd.js +1 -0
  111. package/lib/language/ug-CN.js +1 -0
  112. package/lib/language/ug-CN.min.js +1 -1
  113. package/lib/language/ug-CN.umd.js +1 -0
  114. package/lib/language/uk-UA.js +1 -0
  115. package/lib/language/uk-UA.min.js +1 -1
  116. package/lib/language/uk-UA.umd.js +1 -0
  117. package/lib/language/uz-UZ.js +1 -0
  118. package/lib/language/uz-UZ.min.js +1 -1
  119. package/lib/language/uz-UZ.umd.js +1 -0
  120. package/lib/language/vi-VN.js +1 -0
  121. package/lib/language/vi-VN.min.js +1 -1
  122. package/lib/language/vi-VN.umd.js +1 -0
  123. package/lib/language/zh-CHT.js +1 -0
  124. package/lib/language/zh-CHT.min.js +1 -1
  125. package/lib/language/zh-CHT.umd.js +1 -0
  126. package/lib/language/zh-CN.js +1 -0
  127. package/lib/language/zh-CN.min.js +1 -1
  128. package/lib/language/zh-CN.umd.js +1 -0
  129. package/lib/pulldown/src/pulldown.js +17 -11
  130. package/lib/pulldown/src/pulldown.min.js +1 -1
  131. package/lib/select/src/select.js +16 -1
  132. package/lib/select/src/select.min.js +1 -1
  133. package/lib/style.css +1 -1
  134. package/lib/style.min.css +1 -1
  135. package/lib/table-select/src/table-select.js +16 -1
  136. package/lib/table-select/src/table-select.min.js +1 -1
  137. package/lib/tree-select/src/tree-select.js +16 -1
  138. package/lib/tree-select/src/tree-select.min.js +1 -1
  139. package/lib/ui/index.js +1 -1
  140. package/lib/ui/index.min.js +1 -1
  141. package/lib/ui/src/log.js +1 -1
  142. package/lib/ui/src/log.min.js +1 -1
  143. package/lib/vxe-date-panel/style/style.css +14 -15
  144. package/lib/vxe-date-panel/style/style.min.css +1 -1
  145. package/package.json +1 -1
  146. package/packages/color-picker/src/color-picker.ts +15 -3
  147. package/packages/date-panel/src/date-panel.ts +23 -9
  148. package/packages/date-picker/src/date-picker.ts +11 -6
  149. package/packages/date-range-picker/src/date-range-picker.ts +20 -3
  150. package/packages/form/src/itemInfo.ts +12 -3
  151. package/packages/icon-picker/src/icon-picker.ts +13 -1
  152. package/packages/input/src/input.ts +9 -2
  153. package/packages/language/ar-EG.ts +1 -0
  154. package/packages/language/de-DE.ts +1 -0
  155. package/packages/language/en-US.ts +1 -0
  156. package/packages/language/es-ES.ts +1 -0
  157. package/packages/language/fr-FR.ts +1 -0
  158. package/packages/language/hu-HU.ts +1 -0
  159. package/packages/language/hy-AM.ts +1 -0
  160. package/packages/language/id-ID.ts +1 -0
  161. package/packages/language/it-IT.ts +1 -0
  162. package/packages/language/ja-JP.ts +1 -0
  163. package/packages/language/ko-KR.ts +1 -0
  164. package/packages/language/ms-MY.ts +1 -0
  165. package/packages/language/nb-NO.ts +1 -0
  166. package/packages/language/pt-BR.ts +1 -0
  167. package/packages/language/ru-RU.ts +1 -0
  168. package/packages/language/th-TH.ts +1 -0
  169. package/packages/language/ug-CN.ts +1 -0
  170. package/packages/language/uk-UA.ts +1 -0
  171. package/packages/language/uz-UZ.ts +1 -0
  172. package/packages/language/vi-VN.ts +1 -0
  173. package/packages/language/zh-CHT.ts +1 -0
  174. package/packages/language/zh-CN.ts +1 -0
  175. package/packages/pulldown/src/pulldown.ts +14 -11
  176. package/packages/select/src/select.ts +13 -1
  177. package/packages/table-select/src/table-select.ts +13 -1
  178. package/packages/tree-select/src/tree-select.ts +13 -1
  179. package/styles/components/date-panel.scss +29 -21
  180. package/types/components/date-range-picker.d.ts +6 -0
  181. /package/es/icon/{iconfont.1752913482569.ttf → iconfont.1753075998102.ttf} +0 -0
  182. /package/es/icon/{iconfont.1752913482569.woff → iconfont.1753075998102.woff} +0 -0
  183. /package/es/icon/{iconfont.1752913482569.woff2 → iconfont.1753075998102.woff2} +0 -0
  184. /package/es/{iconfont.1752913482569.ttf → iconfont.1753075998102.ttf} +0 -0
  185. /package/es/{iconfont.1752913482569.woff → iconfont.1753075998102.woff} +0 -0
  186. /package/es/{iconfont.1752913482569.woff2 → iconfont.1753075998102.woff2} +0 -0
  187. /package/lib/icon/style/{iconfont.1752913482569.ttf → iconfont.1753075998102.ttf} +0 -0
  188. /package/lib/icon/style/{iconfont.1752913482569.woff → iconfont.1753075998102.woff} +0 -0
  189. /package/lib/icon/style/{iconfont.1752913482569.woff2 → iconfont.1753075998102.woff2} +0 -0
  190. /package/lib/{iconfont.1752913482569.ttf → iconfont.1753075998102.ttf} +0 -0
  191. /package/lib/{iconfont.1752913482569.woff → iconfont.1753075998102.woff} +0 -0
  192. /package/lib/{iconfont.1752913482569.woff2 → iconfont.1753075998102.woff2} +0 -0
@@ -36,6 +36,7 @@
36
36
  groupTag: '分组列头应该使用 "{0}" 而不是 "{1}",这可能会出现错误',
37
37
  scrollErrProp: '启用虚拟滚动后不支持该参数 "{0}"',
38
38
  errConflicts: '参数 "{0}" 与 "{1}" 有冲突',
39
+ modelConflicts: '绑定的字段值 "{0}" 与 "{1}" 存在冲突,将会出现错误',
39
40
  notSupportProp: '当启用参数 "{0}" 时不支持 "{1}",应该为 "{2}",否则将会出现错误',
40
41
  notConflictProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会存在功能冲突',
41
42
  unableInsert: '无法插入到指定位置,请检查参数是否正确',
@@ -168,7 +168,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
168
168
  /**
169
169
  * 隐藏下拉面板
170
170
  */
171
- const hidePanel = () => {
171
+ const hideOptionPanel = () => {
172
172
  reactData.visiblePanel = false;
173
173
  dispatchEvent('visible-change', {
174
174
  visible: false
@@ -194,14 +194,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
194
194
  */
195
195
  const togglePanel = () => {
196
196
  if (reactData.visiblePanel) {
197
- return hidePanel();
197
+ return hideOptionPanel();
198
198
  }
199
199
  return showPanel();
200
200
  };
201
201
  const handleOptionEvent = (evnt, option) => {
202
202
  if (!option.disabled) {
203
203
  if (reactData.visiblePanel) {
204
- hidePanel();
204
+ hideOptionPanel();
205
205
  dispatchEvent('hide-panel', {}, evnt);
206
206
  }
207
207
  dispatchEvent('option-click', {
@@ -215,7 +215,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
215
215
  } = props;
216
216
  if (trigger === 'click') {
217
217
  if (reactData.visiblePanel) {
218
- hidePanel();
218
+ hideOptionPanel();
219
219
  dispatchEvent('hide-panel', {}, evnt);
220
220
  } else {
221
221
  showPanel();
@@ -239,7 +239,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
239
239
  if ((0, _dom.getEventTargetNode)(evnt, panelElem).flag) {
240
240
  updatePlacement();
241
241
  } else {
242
- hidePanel();
242
+ hideOptionPanel();
243
243
  dispatchEvent('hide-panel', {}, evnt);
244
244
  }
245
245
  }
@@ -257,17 +257,23 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
257
257
  if (!disabled) {
258
258
  reactData.isActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelElem).flag;
259
259
  if (visiblePanel && !reactData.isActivated) {
260
- hidePanel();
260
+ hideOptionPanel();
261
261
  dispatchEvent('hide-panel', {}, evnt);
262
262
  }
263
263
  }
264
264
  };
265
265
  const handleGlobalBlurEvent = evnt => {
266
- if (reactData.visiblePanel) {
267
- reactData.isActivated = false;
268
- hidePanel();
266
+ const {
267
+ visiblePanel,
268
+ isActivated
269
+ } = reactData;
270
+ if (visiblePanel) {
271
+ hideOptionPanel();
269
272
  dispatchEvent('hide-panel', {}, evnt);
270
273
  }
274
+ if (isActivated) {
275
+ reactData.isActivated = false;
276
+ }
271
277
  };
272
278
  const handleGlobalResizeEvent = () => {
273
279
  const {
@@ -287,7 +293,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
287
293
  isPanelVisible,
288
294
  togglePanel,
289
295
  showPanel,
290
- hidePanel
296
+ hidePanel: hideOptionPanel
291
297
  };
292
298
  Object.assign($xePulldown, pulldownMethods);
293
299
  (0, _vue.watch)(() => props.modelValue, value => {
@@ -295,7 +301,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
295
301
  if (value) {
296
302
  showPanel();
297
303
  } else {
298
- hidePanel();
304
+ hideOptionPanel();
299
305
  }
300
306
  });
301
307
  (0, _vue.nextTick)(() => {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxePulldown",props:{modelValue:Boolean,disabled:Boolean,placement:String,trigger:{type:String,default:(0,_ui.getConfig)().pulldown.trigger},size:{type:String,default:()=>(0,_ui.getConfig)().size},options:Array,className:{type:[String,Function],default:(0,_ui.getConfig)().pulldown.className},popupClassName:[String,Function],showPopupShadow:Boolean,destroyOnClose:{type:Boolean,default:(0,_ui.getConfig)().pulldown.destroyOnClose},transfer:{type:Boolean,default:null}},emits:["update:modelValue","click","option-click","show-panel","hide-panel","visible-change"],setup(g,e){const{slots:w,emit:n}=e,i=(0,_vue.inject)("$xeModal",null),t=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null);var l=_xeUtils.default.uniqueId();const h=(0,_ui.useSize)(g)["computeSize"],x=(0,_vue.reactive)({initialized:!1,panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),u={hpTimeout:void 0},P=(0,_vue.ref)(),y=(0,_vue.ref)(),T=(0,_vue.ref)(),E=(0,_vue.computed)(()=>{var e=g["transfer"];if(null===e){var l=(0,_ui.getConfig)().pulldown.transfer;if(_xeUtils.default.isBoolean(l))return l;if(a||i||t||o)return!0}return e}),s={refElem:P},V={xID:l,props:g,context:e,reactData:x,internalData:u,getRefMaps:()=>s};const d=()=>{x.panelIndex<(0,_utils.getLastZIndex)()&&(x.panelIndex=(0,_utils.nextZIndex)())};const r=()=>{const i=g["placement"],n=x["panelIndex"],t=y.value,a=T.value,o=E.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(t,a,{placement:i,teleportTo:o}),l=Object.assign(e.style,{zIndex:n});x.panelStyle=l,x.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>(x.initialized||(x.initialized=!0),new Promise(e=>{g.disabled?(0,_vue.nextTick)(()=>{e()}):(u.hpTimeout&&clearTimeout(u.hpTimeout),x.isActivated=!0,x.isAniVisible=!0,setTimeout(()=>{x.visiblePanel=!0,n("update:modelValue",!0),r(),setTimeout(()=>{e(r())},40)},10),d(),b("visible-change",{visible:!0},null))})),p=()=>(x.visiblePanel=!1,b("visible-change",{visible:!1},null),n("update:modelValue",!1),new Promise(e=>{x.isAniVisible?u.hpTimeout=setTimeout(()=>{(x.isAniVisible=!1,_vue.nextTick)(()=>{e()})},350):(0,_vue.nextTick)(()=>{e()})}));const z=(e,l)=>{l.disabled||(x.visiblePanel&&(p(),b("hide-panel",{},e)),b("option-click",{option:l},e))},A=e=>{var l=g["trigger"];"click"===l&&(x.visiblePanel?(p(),b("hide-panel",{},e)):(v(),b("show-panel",{},e))),b("click",{$pulldown:V},e)},c=e=>{var l=g["disabled"],i=x["visiblePanel"],n=T.value;l||i&&((0,_dom.getEventTargetNode)(e,n).flag?r():(p(),b("hide-panel",{},e)))},_=e=>{var l=g["disabled"],i=x["visiblePanel"],n=P.value,t=T.value;l||(x.isActivated=(0,_dom.getEventTargetNode)(e,n).flag||(0,_dom.getEventTargetNode)(e,t).flag,i&&!x.isActivated&&(p(),b("hide-panel",{},e)))},m=e=>{x.visiblePanel&&(x.isActivated=!1,p(),b("hide-panel",{},e))},f=()=>{var e=x["visiblePanel"];e&&r()},b=(e,l,i)=>{n(e,(0,_ui.createEvent)(i,{$pulldown:V},l))};l={dispatchEvent:b,isPanelVisible:()=>x.visiblePanel,togglePanel:()=>(x.visiblePanel?p:v)(),showPanel:v,hidePanel:p},Object.assign(V,l),(0,_vue.watch)(()=>g.modelValue,e=>{x.isActivated=!!e,(e?v:p)()}),(0,_vue.nextTick)(()=>{g.modelValue&&v(),_ui.globalEvents.on(V,"mousewheel",c),_ui.globalEvents.on(V,"mousedown",_),_ui.globalEvents.on(V,"blur",m),_ui.globalEvents.on(V,"resize",f)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(V,"mousewheel"),_ui.globalEvents.off(V,"mousedown"),_ui.globalEvents.off(V,"blur"),_ui.globalEvents.off(V,"resize")});return V.renderVN=()=>{var{className:e,options:l,popupClassName:i,showPopupShadow:n,destroyOnClose:t,disabled:a}=g,{initialized:o,isActivated:u,isAniVisible:s,visiblePanel:d,panelStyle:r,panelPlacement:v}=x,p=E.value,c=h.value,_=w.default,m=w.header,f=w.footer,b=w.dropdown;return(0,_vue.h)("div",{ref:P,class:["vxe-pulldown",e?_xeUtils.default.isFunction(e)?e({$pulldown:V}):e:"",{["size--"+c]:c,"is--visible":d,"is--disabled":a,"is--active":u}]},[(0,_vue.h)("div",{ref:y,class:"vxe-pulldown--content",onClick:A},_?_({$pulldown:V}):[]),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!p||!o},[(0,_vue.h)("div",{ref:T,class:["vxe-table--ignore-clear vxe-pulldown--panel",i?_xeUtils.default.isFunction(i)?i({$pulldown:V}):i:"",{["size--"+c]:c,"is--transfer":p,"ani--leave":s,"ani--enter":d}],placement:v,style:r},[(0,_vue.h)("div",{class:["vxe-pulldown--panel-wrapper",{"is--shadow":n}]},o&&(!t||d||s)?[m?(0,_vue.h)("div",{class:"vxe-pulldown--panel-header"},m({$pulldown:V})):(0,_ui.renderEmptyElement)(V),(0,_vue.h)("div",{class:"vxe-pulldown--panel-body"},b?b({$pulldown:V}):[(e=>{const i=w.option;return(0,_vue.h)("div",{class:"vxe-pulldown--panel-list"},e?e.map(l=>(0,_vue.h)("div",{class:"vxe-pulldown--panel-item",onClick(e){z(e,l)}},i?i({$pulldown:V,option:l}):""+(l.label||""))):[])})(l)]),f?(0,_vue.h)("div",{class:"vxe-pulldown--panel-footer"},f({$pulldown:V})):(0,_ui.renderEmptyElement)(V)]:[])])])])},V},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxePulldown",props:{modelValue:Boolean,disabled:Boolean,placement:String,trigger:{type:String,default:(0,_ui.getConfig)().pulldown.trigger},size:{type:String,default:()=>(0,_ui.getConfig)().size},options:Array,className:{type:[String,Function],default:(0,_ui.getConfig)().pulldown.className},popupClassName:[String,Function],showPopupShadow:Boolean,destroyOnClose:{type:Boolean,default:(0,_ui.getConfig)().pulldown.destroyOnClose},transfer:{type:Boolean,default:null}},emits:["update:modelValue","click","option-click","show-panel","hide-panel","visible-change"],setup(g,e){const{slots:w,emit:n}=e,i=(0,_vue.inject)("$xeModal",null),t=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null);var l=_xeUtils.default.uniqueId();const h=(0,_ui.useSize)(g)["computeSize"],x=(0,_vue.reactive)({initialized:!1,panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),u={hpTimeout:void 0},P=(0,_vue.ref)(),y=(0,_vue.ref)(),T=(0,_vue.ref)(),E=(0,_vue.computed)(()=>{var e=g["transfer"];if(null===e){var l=(0,_ui.getConfig)().pulldown.transfer;if(_xeUtils.default.isBoolean(l))return l;if(a||i||t||o)return!0}return e}),s={refElem:P},V={xID:l,props:g,context:e,reactData:x,internalData:u,getRefMaps:()=>s};const d=()=>{x.panelIndex<(0,_utils.getLastZIndex)()&&(x.panelIndex=(0,_utils.nextZIndex)())};const r=()=>{const i=g["placement"],n=x["panelIndex"],t=y.value,a=T.value,o=E.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(t,a,{placement:i,teleportTo:o}),l=Object.assign(e.style,{zIndex:n});x.panelStyle=l,x.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>(x.initialized||(x.initialized=!0),new Promise(e=>{g.disabled?(0,_vue.nextTick)(()=>{e()}):(u.hpTimeout&&clearTimeout(u.hpTimeout),x.isActivated=!0,x.isAniVisible=!0,setTimeout(()=>{x.visiblePanel=!0,n("update:modelValue",!0),r(),setTimeout(()=>{e(r())},40)},10),d(),b("visible-change",{visible:!0},null))})),p=()=>(x.visiblePanel=!1,b("visible-change",{visible:!1},null),n("update:modelValue",!1),new Promise(e=>{x.isAniVisible?u.hpTimeout=setTimeout(()=>{(x.isAniVisible=!1,_vue.nextTick)(()=>{e()})},350):(0,_vue.nextTick)(()=>{e()})}));const A=(e,l)=>{l.disabled||(x.visiblePanel&&(p(),b("hide-panel",{},e)),b("option-click",{option:l},e))},z=e=>{var l=g["trigger"];"click"===l&&(x.visiblePanel?(p(),b("hide-panel",{},e)):(v(),b("show-panel",{},e))),b("click",{$pulldown:V},e)},c=e=>{var l=g["disabled"],i=x["visiblePanel"],n=T.value;l||i&&((0,_dom.getEventTargetNode)(e,n).flag?r():(p(),b("hide-panel",{},e)))},_=e=>{var l=g["disabled"],i=x["visiblePanel"],n=P.value,t=T.value;l||(x.isActivated=(0,_dom.getEventTargetNode)(e,n).flag||(0,_dom.getEventTargetNode)(e,t).flag,i&&!x.isActivated&&(p(),b("hide-panel",{},e)))},m=e=>{var{visiblePanel:l,isActivated:i}=x;l&&(p(),b("hide-panel",{},e)),i&&(x.isActivated=!1)},f=()=>{var e=x["visiblePanel"];e&&r()},b=(e,l,i)=>{n(e,(0,_ui.createEvent)(i,{$pulldown:V},l))};l={dispatchEvent:b,isPanelVisible:()=>x.visiblePanel,togglePanel:()=>(x.visiblePanel?p:v)(),showPanel:v,hidePanel:p},Object.assign(V,l),(0,_vue.watch)(()=>g.modelValue,e=>{x.isActivated=!!e,(e?v:p)()}),(0,_vue.nextTick)(()=>{g.modelValue&&v(),_ui.globalEvents.on(V,"mousewheel",c),_ui.globalEvents.on(V,"mousedown",_),_ui.globalEvents.on(V,"blur",m),_ui.globalEvents.on(V,"resize",f)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(V,"mousewheel"),_ui.globalEvents.off(V,"mousedown"),_ui.globalEvents.off(V,"blur"),_ui.globalEvents.off(V,"resize")});return V.renderVN=()=>{var{className:e,options:l,popupClassName:i,showPopupShadow:n,destroyOnClose:t,disabled:a}=g,{initialized:o,isActivated:u,isAniVisible:s,visiblePanel:d,panelStyle:r,panelPlacement:v}=x,p=E.value,c=h.value,_=w.default,m=w.header,f=w.footer,b=w.dropdown;return(0,_vue.h)("div",{ref:P,class:["vxe-pulldown",e?_xeUtils.default.isFunction(e)?e({$pulldown:V}):e:"",{["size--"+c]:c,"is--visible":d,"is--disabled":a,"is--active":u}]},[(0,_vue.h)("div",{ref:y,class:"vxe-pulldown--content",onClick:z},_?_({$pulldown:V}):[]),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!p||!o},[(0,_vue.h)("div",{ref:T,class:["vxe-table--ignore-clear vxe-pulldown--panel",i?_xeUtils.default.isFunction(i)?i({$pulldown:V}):i:"",{["size--"+c]:c,"is--transfer":p,"ani--leave":s,"ani--enter":d}],placement:v,style:r},[(0,_vue.h)("div",{class:["vxe-pulldown--panel-wrapper",{"is--shadow":n}]},o&&(!t||d||s)?[m?(0,_vue.h)("div",{class:"vxe-pulldown--panel-header"},m({$pulldown:V})):(0,_ui.renderEmptyElement)(V),(0,_vue.h)("div",{class:"vxe-pulldown--panel-body"},b?b({$pulldown:V}):[(e=>{const i=w.option;return(0,_vue.h)("div",{class:"vxe-pulldown--panel-list"},e?e.map(l=>(0,_vue.h)("div",{class:"vxe-pulldown--panel-item",onClick(e){A(e,l)}},i?i({$pulldown:V,option:l}):""+(l.label||""))):[])})(l)]),f?(0,_vue.h)("div",{class:"vxe-pulldown--panel-footer"},f({$pulldown:V})):(0,_ui.renderEmptyElement)(V)]:[])])])])},V},render(){return this.renderVN()}});
@@ -785,7 +785,22 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
785
785
  }
786
786
  };
787
787
  const handleGlobalBlurEvent = () => {
788
- hideOptionPanel();
788
+ const {
789
+ visiblePanel,
790
+ isActivated
791
+ } = reactData;
792
+ if (visiblePanel) {
793
+ hideOptionPanel();
794
+ }
795
+ if (isActivated) {
796
+ reactData.isActivated = false;
797
+ }
798
+ if (visiblePanel || isActivated) {
799
+ const $input = refInput.value;
800
+ if ($input) {
801
+ $input.blur();
802
+ }
803
+ }
789
804
  };
790
805
  const handleGlobalResizeEvent = () => {
791
806
  const {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));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,_comp.defineVxeComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],defaultConfig:Object,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,allowCreate:{type:Boolean,default:()=>(0,_ui.getConfig)().select.allowCreate},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,remoteConfig:Object,emptyText:String,showTotalButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showTotalButoon},showCheckedButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButoon},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showClearButton},transfer:{type:Boolean,default:null},virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(L,e){const{slots:C,emit:a}=e,b=(0,_vue.inject)("$xeModal",null),T=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const I=(0,_vue.ref)(),O=(0,_vue.ref)(),P=(0,_vue.ref)(),A=(0,_vue.ref)(),w=(0,_vue.ref)(),U=(0,_vue.ref)(),D=(0,_ui.useSize)(L)["computeSize"],k=(0,_vue.reactive)({initialized:!1,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,optList:[],staticOptions:[],reactFlag:0,currentOption:null,searchValue:"",searchLoading:!1,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),y={synchData:[],fullData:[],afterVisibleList:[],optAddMaps:{},optGroupKeyMaps:{},optFullValMaps:{},remoteValMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0,hpTimeout:void 0},Y={refElem:I},M={xID:t,props:L,context:e,reactData:k,internalData:y,getRefMaps:()=>Y},q=(0,_vue.computed)(()=>{var e=L["readonly"];return null===e?!!l&&l.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=L["disabled"];return null===e?!!l&&l.props.disabled:e}),B=(0,_vue.computed)(()=>{var e=L["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(E||b||T||l)return!0}return e}),H=(0,_vue.computed)(()=>{var e=L["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),j=(0,_vue.computed)(()=>Object.assign({},L.defaultConfig)),z=(0,_vue.computed)(()=>Object.assign({},L.optionProps)),K=(0,_vue.computed)(()=>Object.assign({},L.optionGroupProps)),c=(0,_vue.computed)(()=>{return z.value.label||"label"}),S=(0,_vue.computed)(()=>{return z.value.value||"value"}),$=(0,_vue.computed)(()=>{return K.value.label||"label"}),G=(0,_vue.computed)(()=>{return K.value.options||"options"}),R=(0,_vue.computed)(()=>{var e=L["modelValue"];return te(e)}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,L.virtualYConfig||L.scrollY)),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,L.remoteConfig)),Z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,L.optionConfig)),J=(0,_vue.computed)(()=>_xeUtils.default.toNumber(L.multiCharOverflow)),Q=(0,_vue.computed)(()=>{const{modelValue:e,remote:t,multiple:l}=L;var a,i=k["reactFlag"];const o=J.value;return _xeUtils.default.eqNull(e)?"":(a=_xeUtils.default.isArray(e)?e:[e],(t&&i?a.map(e=>le(e)):a.map(e=>{e=ae(e);return l&&0<o&&e.length>o?e.substring(0,o)+"...":e})).join(", "))}),F=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=C[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],r=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:M},t))},ee=e=>{a("update:modelValue",e)},_=()=>{return Z.value.keyField||L.optionId||"_X_OPTION_KEY"},V=e=>{e=e[_()];return e?encodeURIComponent(e):""},te=e=>{var{multiple:t,max:l}=L;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)},le=e=>{var{remoteValMaps:t,optFullValMaps:l}=y,a=c.value,t=t[e]||l[e],l=t?t.item:null;return _xeUtils.default.toValueString(l?l[a]:e)},ae=e=>{var t=y["optFullValMaps"],l=c.value,t=k.reactFlag?t[e]:null;return t?t.item[l]:_xeUtils.default.toValueString(e)},g=()=>{const{modelValue:t,filterable:e,filterMethod:l}=L,a=k["searchValue"],{fullData:i,optFullValMaps:o}=y,s=c.value,n=S.value,r=(""+(a||"")).toLowerCase();let u=[];return(u=e&&l?i.filter(e=>isOptionVisible(e)&&l({$select:M,group:null,option:e,searchValue:a,value:t})):e?i.filter(e=>isOptionVisible(e)&&(!r||-1<(""+e[s]).toLowerCase().indexOf(r))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[n]];e&&(e._index=t)}),y.afterVisibleList=u,(0,_vue.nextTick)()},ie=e=>{e&&(k.currentOption=e)},n=()=>{const l=L["placement"],a=k["panelIndex"],i=I.value,o=w.value,s=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:l,teleportTo:s}),t=Object.assign(e.style,{zIndex:a});k.panelStyle=t,k.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>{var{loading:e,filterable:t,remote:l}=L,{fullData:a,hpTimeout:i}=y,o=N.value,s=X.value;e||o||(i&&(clearTimeout(i),y.hpTimeout=void 0),k.initialized||(k.initialized=!0),k.isActivated=!0,k.isAniVisible=!0,t&&(l&&s.enabled&&s.autoLoad&&!a.length?Te:(g(),f))(),setTimeout(()=>{k.visiblePanel=!0,L.filterable&&(0,_vue.nextTick)(()=>{var e=P.value;e&&e.focus()});x().then(()=>m())},10),setTimeout(()=>{x().then(()=>m())},100),k.panelIndex<(0,_utils.getLastZIndex)()&&(k.panelIndex=(0,_utils.nextZIndex)()),n(),r("visible-change",{visible:!0},null))},d=()=>{k.searchValue="",k.searchLoading=!1,k.visiblePanel=!1,y.hpTimeout=setTimeout(()=>{k.isAniVisible=!1},350),r("visible-change",{visible:!1},null)},u=(e,t)=>{ee(t),t!==L.modelValue&&(r("change",{value:t},e),l)&&i&&l.triggerItemEvent(e,i.itemConfig.field,t)},p=(e,t)=>{y.remoteValMaps={},u(e,t),r("clear",{value:t},e)},oe=e=>{e=e.$event;p(e,null),d()},se=e=>{var e=e["$event"],{modelValue:t,multiple:l,max:a}=L,i=k["optList"],o=S.value;if(l){var s=_xeUtils.default.eqNull(t)?[]:_xeUtils.default.isArray(t)?t:[t];for(let e=0;e<i.length;e++){const n=i[e][o];if(te(s)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[a]),status:"warning"});break}s.some(e=>e===n)||s.push(n)}u(e,s),r("all-change",{value:s},e),d()}},ne=e=>{e=e.$event;p(e,null),d()},re=(t,e)=>{var{modelValue:l,multiple:a}=L,i=y["remoteValMaps"];const o=e[S.value];var s=i[o];if(k.visiblePanel){if(s?s.item=e:i[o]={key:V(e),item:e,_index:-1},a){let e=[];s=_xeUtils.default.eqNull(l)?[]:_xeUtils.default.isArray(l)?l:[l],i=_xeUtils.default.findIndexOf(s,e=>e===o);e=-1===i?s.concat([o]):s.filter(e=>e!==o),u(t,e)}else u(t,o),d();k.reactFlag++}},ue=e=>{var t=k["visiblePanel"];N.value||t&&(t=w.value,((0,_dom.getEventTargetNode)(e,t).flag?n:d)())},ce=e=>{var t,l,a=k["visiblePanel"];N.value||(t=I.value,l=w.value,k.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,a&&!k.isActivated&&d())},h=e=>{var t=e.disabled,e=V(e);return!t&&!Pe(e)},ve=(e,t)=>{var l=L["allowCreate"],a=k["optList"],{optFullValMaps:i,optAddMaps:o,afterVisibleList:s}=y,n=S.value;let r=s,u=0;if(l&&a.length&&(s=a[0],o[l=V(s)])&&(u=1,r=[o[l]].concat(r)),!e)if(t)for(let e=0;e<r.length;e++){var c=r[e];if(h(c))return c}else for(let e=r.length-1;0<=e;e--){var v=r[e];if(h(v))return v}let d=0;a=e?i[e[n]]:null;if(-1<(d=a?a._index+u:d))if(t)for(let e=d+1;e<=r.length-1;e++){var p=r[e];if(h(p))return p}else if(0<d)for(let e=d-1;0<=e;e--){var f=r[e];if(h(f))return f}return null},de=t=>{var e=L["clearable"],{visiblePanel:l,currentOption:a}=k;if(!N.value){var i=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),o=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),n=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE),c=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(i&&(k.isActivated=!1),l)if(s||i)d();else if(o)a&&(t.preventDefault(),t.stopPropagation(),re(t,a));else if(n||r){t.preventDefault();let e=ve(a,r);(e=e||ve(null,r))&&(ie(e),((e,t)=>{const{scrollYLoad:l}=k,{optFullValMaps:a,scrollYStore:i}=y,o=S.value,s=a[e[o]];if(s){const n=s.key;const r=s._index;if(r>-1){const u=A.value;const c=w.value;if(!c)return;const v=c.querySelector(`[optid='${n}']`);if(u)if(v){const d=u.offsetHeight;const p=1;if(t){if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d;else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p}else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p;else if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d}else if(l)if(t)u.scrollTop=r*i.rowHeight-u.clientHeight+i.rowHeight;else u.scrollTop=r*i.rowHeight}}})(e,r))}else c&&t.preventDefault();else(n||r||o||c)&&k.isActivated&&(t.preventDefault(),v());k.isActivated&&u&&e&&p(t,null)}},pe=()=>{d()},fe=()=>{var e=k["visiblePanel"];e&&n()},_e=e=>{N.value||k.visiblePanel||(k.triggerFocusPanel=!0,v(),setTimeout(()=>{k.triggerFocusPanel=!1},500)),r("focus",{},e)},ge=e=>{ye(e),r("click",{triggerButton:!1,visible:k.visiblePanel},e)},he=e=>{k.isActivated=!1,r("blur",{},e)},me=e=>{ye(e),r("click",{triggerButton:!0,visible:k.visiblePanel},e)},xe=e=>{k.searchValue=e},be=()=>{k.isActivated=!0},Te=()=>{var{modelValue:e,remote:t,remoteMethod:l}=L,a=k["searchValue"],i=X.value,l=i.queryMethod||l;t&&l&&i.enabled?(k.searchLoading=!0,Promise.resolve(l({$select:M,searchValue:a,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{k.searchLoading=!1,g(),f()})):(g(),f())},Ee=_xeUtils.default.debounce(Te,350,{trailing:!0}),ye=e=>{e=e.$event;e.preventDefault(),k.triggerFocusPanel?k.triggerFocusPanel=!1:(k.visiblePanel?d:v)()},Se=()=>{var e=k["scrollYLoad"],{scrollYStore:t,afterVisibleList:l}=y;k.bodyHeight=e?l.length*t.rowHeight:0,k.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Ve=()=>{var{filterable:e,allowCreate:t}=L;const{scrollYLoad:l,searchValue:a}=k;var{optAddMaps:i,scrollYStore:o,afterVisibleList:s}=y;const n=c.value;var r=S.value,o=l?s.slice(o.startIndex,o.endIndex):s.slice(0);return e&&t&&a&&(o.some(e=>e[n]===a)||(s=i[a]||(0,_vue.reactive)({[_()]:a,[n]:a,[r]:a}),i[a]=s,o.unshift(s))),k.optList=o,(0,_vue.nextTick)()},f=()=>{Ve(),Se()},Le=()=>(0,_vue.nextTick)().then(()=>{var e=k["scrollYLoad"],t=y["scrollYStore"],l=U.value,a=W.value;let i=0,o;(o=l?o||l.children[0]:o)&&(i=o.offsetHeight),i=Math.max(20,i),t.rowHeight=i,(e?(l=A.value,e=Math.max(8,l?Math.ceil(l.clientHeight/i):0),l=Math.max(0,Math.min(2,_xeUtils.default.toNumber(a.oSize))),t.offsetSize=l,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+l,t.endIndex),f):Se)()}),Ce=(e,t)=>{var l=A.value;return l&&(_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t))&&(l.scrollTop=t),k.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},m=()=>{const{lastScrollLeft:e,lastScrollTop:t}=y;return s().then(()=>{if(e||t)return y.lastScrollLeft=0,y.lastScrollTop=0,Ce(e,t)})},x=()=>{var e=I.value;return e&&e.clientWidth&&e.clientHeight?Le():Promise.resolve()},Ie=e=>{var t=y["scrollYStore"],{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:s}=t,e=e.target.scrollTop,e=Math.floor(e/s),s=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===s&&a===o||(t.startIndex=s,t.endIndex=o,f())},Oe=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==y.lastScrollLeft,i=l!==y.lastScrollTop;y.lastScrollTop=l,y.lastScrollLeft=t,k.scrollYLoad&&Ie(e),y.lastScrollTime=Date.now(),r("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},o=e=>{{var t=e||[];const n=G.value,r=S.value,u=_(),c={},v={},d=[],p=e=>{d.push(e);let t=V(e);t||(t=getOptUniqueId(),e[u]=t),v[e[r]]={key:t,item:e,_index:-1}};t.forEach(e=>{p(e),e[n]&&(c[e[u]]=e)[n].forEach(p)}),y.fullData=d,y.optGroupKeyMaps=c,y.optFullValMaps=v,k.reactFlag++,g()}var{isLoaded:t,fullData:l,scrollYStore:a}=y,i=j.value,o=W.value;const s=S.value;if(Object.assign(a,{startIndex:0,endIndex:1,visibleSize:0}),y.synchData=e||[],k.scrollYLoad=!!o.enabled&&-1<o.gt&&(0===o.gt||o.gt<=l.length),Ve(),!t){a=i["selectMode"];if(0<e.length&&_xeUtils.default.eqNull(L.modelValue)){if("first"===a||"last"===a){const f=_xeUtils.default[a](e);f&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(L.modelValue)&&ee(f[s])})}y.isLoaded=!0}}return Le().then(()=>{m()})},s=()=>{var e=A.value;return e&&(e.scrollTop=0,e.scrollLeft=0),y.lastScrollTop=0,(y.lastScrollLeft=0,_vue.nextTick)()},Pe=e=>{var t=y["optGroupKeyMaps"];return!!t[e]};t={dispatchEvent:r,loadData:o,reloadData(e){return y.isLoaded=!1,s(),o(e)},isPanelVisible(){return k.visiblePanel},togglePanel(){return(k.visiblePanel?d:v)(),(0,_vue.nextTick)()},hidePanel(){return k.visiblePanel&&d(),(0,_vue.nextTick)()},showPanel(){return k.visiblePanel||v(),(0,_vue.nextTick)()},refreshOption(){return g(),f(),(0,_vue.nextTick)()},focus(){var e=O.value;return e&&e.blur(),k.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=O.value;return e&&e.blur(),(k.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:s};Object.assign(M,t);const Ae=e=>{const{allowCreate:p,optionKey:f,modelValue:_}=L,g=k["currentOption"],h=y["optAddMaps"];var t=Z.value;const m=c.value,x=S.value,b=$.value,T=t["useKey"],E=C.option;return e.map((t,e)=>{var{slots:l,className:a}=t,i=V(t),o=t[x];const s=Pe(i);var n=!(!p||!h[i]),o=!n&&(_xeUtils.default.isArray(_)?-1<_.indexOf(o):_===o),r=n||!s||isOptionVisible(t);const u=!n&&(c=o,!!t.disabled||!(!R.value||c));var c=l?l.default:null,l={option:t,group:s?t:null,$select:M};let v="",d=[];return d=E?F(E,l):c?F(c,l):v=(0,_utils.getFuncText)(t[s?b:m]),r?(0,_vue.h)("div",{key:T||f?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(l):a:"",{"vxe-select-optgroup":s,"is--disabled":u,"is--selected":o,"is--add":n,"is--hover":g&&V(g)===i}],optid:i,title:v||null,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{u||s||re(e,t)},onMouseenter:()=>{var e;u||s||(e=y.lastScrollTime)&&Date.now()<e+250||ie(t)}},p?[(0,_vue.h)("span",{key:1,class:"vxe-select-option--label"},d),n?(0,_vue.h)("span",{key:2,class:"vxe-select-option--add-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().SELECT_ADD_OPTION})]):(0,_ui.renderEmptyElement)(M)]:d):(0,_ui.renderEmptyElement)(M)})};return(0,_vue.watch)(()=>k.staticOptions,e=>{o(e)}),(0,_vue.watch)(()=>L.options,e=>{o(e||[])}),(0,_vue.watch)(()=>L.optionGroups,e=>{o(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=L;t?o(t):e&&o(e)}),_ui.globalEvents.on(M,"mousewheel",ue),_ui.globalEvents.on(M,"mousedown",ce),_ui.globalEvents.on(M,"keydown",de),_ui.globalEvents.on(M,"blur",pe),_ui.globalEvents.on(M,"resize",fe)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(M,"mousewheel"),_ui.globalEvents.off(M,"mousedown"),_ui.globalEvents.off(M,"keydown"),_ui.globalEvents.off(M,"blur"),_ui.globalEvents.off(M,"resize")}),(0,_vue.provide)("$xeSelect",M),M.renderVN=()=>{var{modelValue:e,className:t,popupClassName:l,multiple:a,loading:i,filterable:o,showTotalButoon:s,showCheckedButoon:n,showClearButton:r}=L,{initialized:u,isActivated:c,isAniVisible:v,optList:d,visiblePanel:p,bodyHeight:f,topSpaceHeight:_}=k,g=D.value,h=N.value,m=Q.value,x=B.value,b=q.value,T=H.value,E=C.default,y=C.header,S=C.footer;const V=C.prefix;return b?(0,_vue.h)("div",{ref:I,class:["vxe-select--readonly",t]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},m)]):(b=_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e],(0,_vue.h)("div",{ref:I,class:["vxe-select",t?_xeUtils.default.isFunction(t)?t({$select:M}):t:"",{["size--"+g]:g,"is--visible":p,"is--disabled":h,"is--filter":o,"is--loading":i,"is--active":c}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)(_input.default,{ref:O,clearable:L.clearable,placeholder:T,readonly:!0,disabled:h,type:"text",prefixIcon:L.prefixIcon,suffixIcon:i?(0,_ui.getIcon)().SELECT_LOADED:p?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:m,modelValue:m,onClear:oe,onClick:ge,onFocus:_e,onBlur:he,onSuffixClick:me},V?{prefix:()=>V({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!x||!u},[(0,_vue.h)("div",{ref:w,class:["vxe-table--ignore-clear vxe-select--panel",l?_xeUtils.default.isFunction(l)?l({$select:M}):l:"",{["size--"+g]:g,"is--transfer":x,"ani--leave":!i&&v,"ani--enter":!i&&p}],placement:k.panelPlacement,style:k.panelStyle},u&&(p||v)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:P,class:"vxe-select-search--input",modelValue:k.searchValue,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":xe,onFocus:be,onChange:Ee,onSearch:Ee})]):(0,_ui.renderEmptyElement)(M),s||n&&a||r||y?(0,_vue.h)("div",{class:"vxe-select--panel-header"},y?F(y,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[s?(0,_vue.h)("div",{class:"vxe-select--header-total"},(0,_ui.getI18n)("vxe.select.total",[b.length,d.length])):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--header-btns"},[n&&a?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:se}):(0,_ui.renderEmptyElement)(M),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:ne}):(0,_ui.renderEmptyElement)(M)])])]):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:A,class:"vxe-select-option--wrapper",onScroll:Oe},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:f?f+"px":""}}),(0,_vue.h)("div",{ref:U,class:"vxe-select--body",style:{transform:`translateY(${_}px)`}},(()=>{var{optList:e,searchLoading:t}=k;return t?[(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"))])]:e.length?Ae(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},L.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},F(S,{})):(0,_ui.renderEmptyElement)(M)])]:[])])]))},M},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));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,_comp.defineVxeComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],defaultConfig:Object,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,allowCreate:{type:Boolean,default:()=>(0,_ui.getConfig)().select.allowCreate},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,remoteConfig:Object,emptyText:String,showTotalButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showTotalButoon},showCheckedButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButoon},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showClearButton},transfer:{type:Boolean,default:null},virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(L,e){const{slots:C,emit:a}=e,b=(0,_vue.inject)("$xeModal",null),T=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const I=(0,_vue.ref)(),O=(0,_vue.ref)(),P=(0,_vue.ref)(),A=(0,_vue.ref)(),w=(0,_vue.ref)(),U=(0,_vue.ref)(),D=(0,_ui.useSize)(L)["computeSize"],k=(0,_vue.reactive)({initialized:!1,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,optList:[],staticOptions:[],reactFlag:0,currentOption:null,searchValue:"",searchLoading:!1,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),y={synchData:[],fullData:[],afterVisibleList:[],optAddMaps:{},optGroupKeyMaps:{},optFullValMaps:{},remoteValMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0,hpTimeout:void 0},Y={refElem:I},M={xID:t,props:L,context:e,reactData:k,internalData:y,getRefMaps:()=>Y},q=(0,_vue.computed)(()=>{var e=L["readonly"];return null===e?!!l&&l.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=L["disabled"];return null===e?!!l&&l.props.disabled:e}),B=(0,_vue.computed)(()=>{var e=L["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(E||b||T||l)return!0}return e}),H=(0,_vue.computed)(()=>{var e=L["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),j=(0,_vue.computed)(()=>Object.assign({},L.defaultConfig)),z=(0,_vue.computed)(()=>Object.assign({},L.optionProps)),K=(0,_vue.computed)(()=>Object.assign({},L.optionGroupProps)),c=(0,_vue.computed)(()=>{return z.value.label||"label"}),S=(0,_vue.computed)(()=>{return z.value.value||"value"}),$=(0,_vue.computed)(()=>{return K.value.label||"label"}),G=(0,_vue.computed)(()=>{return K.value.options||"options"}),R=(0,_vue.computed)(()=>{var e=L["modelValue"];return te(e)}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,L.virtualYConfig||L.scrollY)),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,L.remoteConfig)),Z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,L.optionConfig)),J=(0,_vue.computed)(()=>_xeUtils.default.toNumber(L.multiCharOverflow)),Q=(0,_vue.computed)(()=>{const{modelValue:e,remote:t,multiple:l}=L;var a,i=k["reactFlag"];const o=J.value;return _xeUtils.default.eqNull(e)?"":(a=_xeUtils.default.isArray(e)?e:[e],(t&&i?a.map(e=>le(e)):a.map(e=>{e=ae(e);return l&&0<o&&e.length>o?e.substring(0,o)+"...":e})).join(", "))}),F=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=C[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],r=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:M},t))},ee=e=>{a("update:modelValue",e)},_=()=>{return Z.value.keyField||L.optionId||"_X_OPTION_KEY"},V=e=>{e=e[_()];return e?encodeURIComponent(e):""},te=e=>{var{multiple:t,max:l}=L;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)},le=e=>{var{remoteValMaps:t,optFullValMaps:l}=y,a=c.value,t=t[e]||l[e],l=t?t.item:null;return _xeUtils.default.toValueString(l?l[a]:e)},ae=e=>{var t=y["optFullValMaps"],l=c.value,t=k.reactFlag?t[e]:null;return t?t.item[l]:_xeUtils.default.toValueString(e)},g=()=>{const{modelValue:t,filterable:e,filterMethod:l}=L,a=k["searchValue"],{fullData:i,optFullValMaps:o}=y,s=c.value,n=S.value,r=(""+(a||"")).toLowerCase();let u=[];return(u=e&&l?i.filter(e=>isOptionVisible(e)&&l({$select:M,group:null,option:e,searchValue:a,value:t})):e?i.filter(e=>isOptionVisible(e)&&(!r||-1<(""+e[s]).toLowerCase().indexOf(r))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[n]];e&&(e._index=t)}),y.afterVisibleList=u,(0,_vue.nextTick)()},ie=e=>{e&&(k.currentOption=e)},n=()=>{const l=L["placement"],a=k["panelIndex"],i=I.value,o=w.value,s=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:l,teleportTo:s}),t=Object.assign(e.style,{zIndex:a});k.panelStyle=t,k.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>{var{loading:e,filterable:t,remote:l}=L,{fullData:a,hpTimeout:i}=y,o=N.value,s=X.value;e||o||(i&&(clearTimeout(i),y.hpTimeout=void 0),k.initialized||(k.initialized=!0),k.isActivated=!0,k.isAniVisible=!0,t&&(l&&s.enabled&&s.autoLoad&&!a.length?Te:(g(),f))(),setTimeout(()=>{k.visiblePanel=!0,L.filterable&&(0,_vue.nextTick)(()=>{var e=P.value;e&&e.focus()});x().then(()=>m())},10),setTimeout(()=>{x().then(()=>m())},100),k.panelIndex<(0,_utils.getLastZIndex)()&&(k.panelIndex=(0,_utils.nextZIndex)()),n(),r("visible-change",{visible:!0},null))},d=()=>{k.searchValue="",k.searchLoading=!1,k.visiblePanel=!1,y.hpTimeout=setTimeout(()=>{k.isAniVisible=!1},350),r("visible-change",{visible:!1},null)},u=(e,t)=>{ee(t),t!==L.modelValue&&(r("change",{value:t},e),l)&&i&&l.triggerItemEvent(e,i.itemConfig.field,t)},p=(e,t)=>{y.remoteValMaps={},u(e,t),r("clear",{value:t},e)},oe=e=>{e=e.$event;p(e,null),d()},se=e=>{var e=e["$event"],{modelValue:t,multiple:l,max:a}=L,i=k["optList"],o=S.value;if(l){var s=_xeUtils.default.eqNull(t)?[]:_xeUtils.default.isArray(t)?t:[t];for(let e=0;e<i.length;e++){const n=i[e][o];if(te(s)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[a]),status:"warning"});break}s.some(e=>e===n)||s.push(n)}u(e,s),r("all-change",{value:s},e),d()}},ne=e=>{e=e.$event;p(e,null),d()},re=(t,e)=>{var{modelValue:l,multiple:a}=L,i=y["remoteValMaps"];const o=e[S.value];var s=i[o];if(k.visiblePanel){if(s?s.item=e:i[o]={key:V(e),item:e,_index:-1},a){let e=[];s=_xeUtils.default.eqNull(l)?[]:_xeUtils.default.isArray(l)?l:[l],i=_xeUtils.default.findIndexOf(s,e=>e===o);e=-1===i?s.concat([o]):s.filter(e=>e!==o),u(t,e)}else u(t,o),d();k.reactFlag++}},ue=e=>{var t=k["visiblePanel"];N.value||t&&(t=w.value,((0,_dom.getEventTargetNode)(e,t).flag?n:d)())},ce=e=>{var t,l,a=k["visiblePanel"];N.value||(t=I.value,l=w.value,k.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,a&&!k.isActivated&&d())},h=e=>{var t=e.disabled,e=V(e);return!t&&!Pe(e)},ve=(e,t)=>{var l=L["allowCreate"],a=k["optList"],{optFullValMaps:i,optAddMaps:o,afterVisibleList:s}=y,n=S.value;let r=s,u=0;if(l&&a.length&&(s=a[0],o[l=V(s)])&&(u=1,r=[o[l]].concat(r)),!e)if(t)for(let e=0;e<r.length;e++){var c=r[e];if(h(c))return c}else for(let e=r.length-1;0<=e;e--){var v=r[e];if(h(v))return v}let d=0;a=e?i[e[n]]:null;if(-1<(d=a?a._index+u:d))if(t)for(let e=d+1;e<=r.length-1;e++){var p=r[e];if(h(p))return p}else if(0<d)for(let e=d-1;0<=e;e--){var f=r[e];if(h(f))return f}return null},de=t=>{var e=L["clearable"],{visiblePanel:l,currentOption:a}=k;if(!N.value){var i=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),o=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),n=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE),c=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(i&&(k.isActivated=!1),l)if(s||i)d();else if(o)a&&(t.preventDefault(),t.stopPropagation(),re(t,a));else if(n||r){t.preventDefault();let e=ve(a,r);(e=e||ve(null,r))&&(ie(e),((e,t)=>{const{scrollYLoad:l}=k,{optFullValMaps:a,scrollYStore:i}=y,o=S.value,s=a[e[o]];if(s){const n=s.key;const r=s._index;if(r>-1){const u=A.value;const c=w.value;if(!c)return;const v=c.querySelector(`[optid='${n}']`);if(u)if(v){const d=u.offsetHeight;const p=1;if(t){if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d;else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p}else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p;else if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d}else if(l)if(t)u.scrollTop=r*i.rowHeight-u.clientHeight+i.rowHeight;else u.scrollTop=r*i.rowHeight}}})(e,r))}else c&&t.preventDefault();else(n||r||o||c)&&k.isActivated&&(t.preventDefault(),v());k.isActivated&&u&&e&&p(t,null)}},pe=()=>{var{visiblePanel:e,isActivated:t}=k;e&&d(),t&&(k.isActivated=!1),(e||t)&&(e=O.value)&&e.blur()},fe=()=>{var e=k["visiblePanel"];e&&n()},_e=e=>{N.value||k.visiblePanel||(k.triggerFocusPanel=!0,v(),setTimeout(()=>{k.triggerFocusPanel=!1},500)),r("focus",{},e)},ge=e=>{ye(e),r("click",{triggerButton:!1,visible:k.visiblePanel},e)},he=e=>{k.isActivated=!1,r("blur",{},e)},me=e=>{ye(e),r("click",{triggerButton:!0,visible:k.visiblePanel},e)},xe=e=>{k.searchValue=e},be=()=>{k.isActivated=!0},Te=()=>{var{modelValue:e,remote:t,remoteMethod:l}=L,a=k["searchValue"],i=X.value,l=i.queryMethod||l;t&&l&&i.enabled?(k.searchLoading=!0,Promise.resolve(l({$select:M,searchValue:a,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{k.searchLoading=!1,g(),f()})):(g(),f())},Ee=_xeUtils.default.debounce(Te,350,{trailing:!0}),ye=e=>{e=e.$event;e.preventDefault(),k.triggerFocusPanel?k.triggerFocusPanel=!1:(k.visiblePanel?d:v)()},Se=()=>{var e=k["scrollYLoad"],{scrollYStore:t,afterVisibleList:l}=y;k.bodyHeight=e?l.length*t.rowHeight:0,k.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Ve=()=>{var{filterable:e,allowCreate:t}=L;const{scrollYLoad:l,searchValue:a}=k;var{optAddMaps:i,scrollYStore:o,afterVisibleList:s}=y;const n=c.value;var r=S.value,o=l?s.slice(o.startIndex,o.endIndex):s.slice(0);return e&&t&&a&&(o.some(e=>e[n]===a)||(s=i[a]||(0,_vue.reactive)({[_()]:a,[n]:a,[r]:a}),i[a]=s,o.unshift(s))),k.optList=o,(0,_vue.nextTick)()},f=()=>{Ve(),Se()},Le=()=>(0,_vue.nextTick)().then(()=>{var e=k["scrollYLoad"],t=y["scrollYStore"],l=U.value,a=W.value;let i=0,o;(o=l?o||l.children[0]:o)&&(i=o.offsetHeight),i=Math.max(20,i),t.rowHeight=i,(e?(l=A.value,e=Math.max(8,l?Math.ceil(l.clientHeight/i):0),l=Math.max(0,Math.min(2,_xeUtils.default.toNumber(a.oSize))),t.offsetSize=l,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+l,t.endIndex),f):Se)()}),Ce=(e,t)=>{var l=A.value;return l&&(_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t))&&(l.scrollTop=t),k.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},m=()=>{const{lastScrollLeft:e,lastScrollTop:t}=y;return s().then(()=>{if(e||t)return y.lastScrollLeft=0,y.lastScrollTop=0,Ce(e,t)})},x=()=>{var e=I.value;return e&&e.clientWidth&&e.clientHeight?Le():Promise.resolve()},Ie=e=>{var t=y["scrollYStore"],{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:s}=t,e=e.target.scrollTop,e=Math.floor(e/s),s=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===s&&a===o||(t.startIndex=s,t.endIndex=o,f())},Oe=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==y.lastScrollLeft,i=l!==y.lastScrollTop;y.lastScrollTop=l,y.lastScrollLeft=t,k.scrollYLoad&&Ie(e),y.lastScrollTime=Date.now(),r("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},o=e=>{{var t=e||[];const n=G.value,r=S.value,u=_(),c={},v={},d=[],p=e=>{d.push(e);let t=V(e);t||(t=getOptUniqueId(),e[u]=t),v[e[r]]={key:t,item:e,_index:-1}};t.forEach(e=>{p(e),e[n]&&(c[e[u]]=e)[n].forEach(p)}),y.fullData=d,y.optGroupKeyMaps=c,y.optFullValMaps=v,k.reactFlag++,g()}var{isLoaded:t,fullData:l,scrollYStore:a}=y,i=j.value,o=W.value;const s=S.value;if(Object.assign(a,{startIndex:0,endIndex:1,visibleSize:0}),y.synchData=e||[],k.scrollYLoad=!!o.enabled&&-1<o.gt&&(0===o.gt||o.gt<=l.length),Ve(),!t){a=i["selectMode"];if(0<e.length&&_xeUtils.default.eqNull(L.modelValue)){if("first"===a||"last"===a){const f=_xeUtils.default[a](e);f&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(L.modelValue)&&ee(f[s])})}y.isLoaded=!0}}return Le().then(()=>{m()})},s=()=>{var e=A.value;return e&&(e.scrollTop=0,e.scrollLeft=0),y.lastScrollTop=0,(y.lastScrollLeft=0,_vue.nextTick)()},Pe=e=>{var t=y["optGroupKeyMaps"];return!!t[e]};t={dispatchEvent:r,loadData:o,reloadData(e){return y.isLoaded=!1,s(),o(e)},isPanelVisible(){return k.visiblePanel},togglePanel(){return(k.visiblePanel?d:v)(),(0,_vue.nextTick)()},hidePanel(){return k.visiblePanel&&d(),(0,_vue.nextTick)()},showPanel(){return k.visiblePanel||v(),(0,_vue.nextTick)()},refreshOption(){return g(),f(),(0,_vue.nextTick)()},focus(){var e=O.value;return e&&e.blur(),k.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=O.value;return e&&e.blur(),(k.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:s};Object.assign(M,t);const Ae=e=>{const{allowCreate:p,optionKey:f,modelValue:_}=L,g=k["currentOption"],h=y["optAddMaps"];var t=Z.value;const m=c.value,x=S.value,b=$.value,T=t["useKey"],E=C.option;return e.map((t,e)=>{var{slots:l,className:a}=t,i=V(t),o=t[x];const s=Pe(i);var n=!(!p||!h[i]),o=!n&&(_xeUtils.default.isArray(_)?-1<_.indexOf(o):_===o),r=n||!s||isOptionVisible(t);const u=!n&&(c=o,!!t.disabled||!(!R.value||c));var c=l?l.default:null,l={option:t,group:s?t:null,$select:M};let v="",d=[];return d=E?F(E,l):c?F(c,l):v=(0,_utils.getFuncText)(t[s?b:m]),r?(0,_vue.h)("div",{key:T||f?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(l):a:"",{"vxe-select-optgroup":s,"is--disabled":u,"is--selected":o,"is--add":n,"is--hover":g&&V(g)===i}],optid:i,title:v||null,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{u||s||re(e,t)},onMouseenter:()=>{var e;u||s||(e=y.lastScrollTime)&&Date.now()<e+250||ie(t)}},p?[(0,_vue.h)("span",{key:1,class:"vxe-select-option--label"},d),n?(0,_vue.h)("span",{key:2,class:"vxe-select-option--add-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().SELECT_ADD_OPTION})]):(0,_ui.renderEmptyElement)(M)]:d):(0,_ui.renderEmptyElement)(M)})};return(0,_vue.watch)(()=>k.staticOptions,e=>{o(e)}),(0,_vue.watch)(()=>L.options,e=>{o(e||[])}),(0,_vue.watch)(()=>L.optionGroups,e=>{o(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=L;t?o(t):e&&o(e)}),_ui.globalEvents.on(M,"mousewheel",ue),_ui.globalEvents.on(M,"mousedown",ce),_ui.globalEvents.on(M,"keydown",de),_ui.globalEvents.on(M,"blur",pe),_ui.globalEvents.on(M,"resize",fe)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(M,"mousewheel"),_ui.globalEvents.off(M,"mousedown"),_ui.globalEvents.off(M,"keydown"),_ui.globalEvents.off(M,"blur"),_ui.globalEvents.off(M,"resize")}),(0,_vue.provide)("$xeSelect",M),M.renderVN=()=>{var{modelValue:e,className:t,popupClassName:l,multiple:a,loading:i,filterable:o,showTotalButoon:s,showCheckedButoon:n,showClearButton:r}=L,{initialized:u,isActivated:c,isAniVisible:v,optList:d,visiblePanel:p,bodyHeight:f,topSpaceHeight:_}=k,g=D.value,h=N.value,m=Q.value,x=B.value,b=q.value,T=H.value,E=C.default,y=C.header,S=C.footer;const V=C.prefix;return b?(0,_vue.h)("div",{ref:I,class:["vxe-select--readonly",t]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},m)]):(b=_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e],(0,_vue.h)("div",{ref:I,class:["vxe-select",t?_xeUtils.default.isFunction(t)?t({$select:M}):t:"",{["size--"+g]:g,"is--visible":p,"is--disabled":h,"is--filter":o,"is--loading":i,"is--active":c}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)(_input.default,{ref:O,clearable:L.clearable,placeholder:T,readonly:!0,disabled:h,type:"text",prefixIcon:L.prefixIcon,suffixIcon:i?(0,_ui.getIcon)().SELECT_LOADED:p?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:m,modelValue:m,onClear:oe,onClick:ge,onFocus:_e,onBlur:he,onSuffixClick:me},V?{prefix:()=>V({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!x||!u},[(0,_vue.h)("div",{ref:w,class:["vxe-table--ignore-clear vxe-select--panel",l?_xeUtils.default.isFunction(l)?l({$select:M}):l:"",{["size--"+g]:g,"is--transfer":x,"ani--leave":!i&&v,"ani--enter":!i&&p}],placement:k.panelPlacement,style:k.panelStyle},u&&(p||v)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:P,class:"vxe-select-search--input",modelValue:k.searchValue,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":xe,onFocus:be,onChange:Ee,onSearch:Ee})]):(0,_ui.renderEmptyElement)(M),s||n&&a||r||y?(0,_vue.h)("div",{class:"vxe-select--panel-header"},y?F(y,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[s?(0,_vue.h)("div",{class:"vxe-select--header-total"},(0,_ui.getI18n)("vxe.select.total",[b.length,d.length])):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--header-btns"},[n&&a?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:se}):(0,_ui.renderEmptyElement)(M),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:ne}):(0,_ui.renderEmptyElement)(M)])])]):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:A,class:"vxe-select-option--wrapper",onScroll:Oe},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:f?f+"px":""}}),(0,_vue.h)("div",{ref:U,class:"vxe-select--body",style:{transform:`translateY(${_}px)`}},(()=>{var{optList:e,searchLoading:t}=k;return t?[(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"))])]:e.length?Ae(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},L.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},F(S,{})):(0,_ui.renderEmptyElement)(M)])]:[])])]))},M},render(){return this.renderVN()}});