vxe-table 4.2.4-beta.2 → 4.2.4

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 (106) hide show
  1. package/es/all.js +0 -2
  2. package/es/button/style.css +0 -5
  3. package/es/checkbox/src/checkbox.js +6 -0
  4. package/es/checkbox/src/group.js +7 -1
  5. package/es/edit/src/hook.js +35 -4
  6. package/es/form/src/form-config-item.js +152 -0
  7. package/es/form/src/form-gather.js +12 -3
  8. package/es/form/src/form-item.js +22 -3
  9. package/es/form/src/form.js +28 -119
  10. package/es/form/src/itemInfo.js +2 -0
  11. package/es/form/style.css +6 -6
  12. package/es/icon/style.css +10 -9
  13. package/es/input/src/input.js +50 -5
  14. package/es/input/style.css +5 -0
  15. package/es/radio/src/button.js +6 -0
  16. package/es/radio/src/group.js +8 -2
  17. package/es/radio/src/radio.js +6 -0
  18. package/es/select/src/select.js +7 -1
  19. package/es/style.css +1 -1
  20. package/es/style.min.css +1 -1
  21. package/es/switch/src/switch.js +7 -1
  22. package/es/table/src/table.js +3 -2
  23. package/es/textarea/src/textarea.js +7 -1
  24. package/es/tools/log.js +1 -1
  25. package/es/v-x-e-table/index.js +1 -1
  26. package/es/validator/src/hook.js +1 -1
  27. package/lib/all.js +15 -15
  28. package/lib/all.min.js +1 -1
  29. package/lib/button/style/style.css +0 -5
  30. package/lib/button/style/style.min.css +1 -1
  31. package/lib/checkbox/src/checkbox.js +7 -1
  32. package/lib/checkbox/src/checkbox.min.js +1 -1
  33. package/lib/checkbox/src/group.js +7 -1
  34. package/lib/checkbox/src/group.min.js +1 -1
  35. package/lib/edit/src/hook.js +35 -4
  36. package/lib/edit/src/hook.min.js +1 -1
  37. package/lib/form/src/form-config-item.js +212 -0
  38. package/lib/form/src/form-config-item.min.js +1 -0
  39. package/lib/form/src/form-gather.js +14 -3
  40. package/lib/form/src/form-gather.min.js +1 -1
  41. package/lib/form/src/form-item.js +25 -2
  42. package/lib/form/src/form-item.min.js +1 -1
  43. package/lib/form/src/form.js +30 -149
  44. package/lib/form/src/form.min.js +1 -1
  45. package/lib/form/src/itemInfo.js +2 -0
  46. package/lib/form/src/itemInfo.min.js +1 -1
  47. package/lib/form/style/style.css +6 -6
  48. package/lib/form/style/style.min.css +1 -1
  49. package/lib/icon/style/style.css +10 -9
  50. package/lib/icon/style/style.min.css +1 -1
  51. package/lib/index.umd.js +2072 -1839
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/input/src/input.js +54 -5
  54. package/lib/input/src/input.min.js +1 -1
  55. package/lib/input/style/style.css +5 -0
  56. package/lib/input/style/style.min.css +1 -1
  57. package/lib/radio/src/button.js +7 -1
  58. package/lib/radio/src/button.min.js +1 -1
  59. package/lib/radio/src/group.js +8 -2
  60. package/lib/radio/src/group.min.js +1 -1
  61. package/lib/radio/src/radio.js +7 -1
  62. package/lib/radio/src/radio.min.js +1 -1
  63. package/lib/select/src/select.js +7 -1
  64. package/lib/select/src/select.min.js +1 -1
  65. package/lib/style.css +1 -1
  66. package/lib/style.min.css +1 -1
  67. package/lib/switch/src/switch.js +8 -1
  68. package/lib/switch/src/switch.min.js +1 -1
  69. package/lib/table/src/table.js +4 -2
  70. package/lib/table/src/table.min.js +1 -1
  71. package/lib/textarea/src/textarea.js +7 -1
  72. package/lib/textarea/src/textarea.min.js +1 -1
  73. package/lib/tools/log.js +1 -1
  74. package/lib/tools/log.min.js +1 -1
  75. package/lib/v-x-e-table/index.js +1 -1
  76. package/lib/v-x-e-table/index.min.js +1 -1
  77. package/lib/validator/src/hook.js +1 -1
  78. package/lib/validator/src/hook.min.js +1 -1
  79. package/package.json +2 -2
  80. package/packages/all.ts +0 -2
  81. package/packages/checkbox/src/checkbox.ts +7 -1
  82. package/packages/checkbox/src/group.ts +8 -2
  83. package/packages/edit/src/hook.ts +35 -4
  84. package/packages/form/src/form-config-item.ts +156 -0
  85. package/packages/form/src/form-gather.ts +13 -3
  86. package/packages/form/src/form-item.ts +24 -3
  87. package/packages/form/src/form.ts +28 -126
  88. package/packages/form/src/itemInfo.ts +2 -0
  89. package/packages/input/src/input.ts +54 -6
  90. package/packages/radio/src/button.ts +7 -1
  91. package/packages/radio/src/group.ts +9 -3
  92. package/packages/radio/src/radio.ts +7 -1
  93. package/packages/select/src/select.ts +8 -2
  94. package/packages/switch/src/switch.ts +8 -2
  95. package/packages/table/src/table.ts +3 -2
  96. package/packages/textarea/src/textarea.ts +8 -2
  97. package/packages/validator/src/hook.ts +1 -1
  98. package/styles/button.scss +0 -5
  99. package/styles/form.scss +17 -19
  100. package/styles/icon.scss +10 -9
  101. package/styles/input.scss +4 -0
  102. package/styles/variable.scss +1 -0
  103. package/types/all.d.ts +0 -1
  104. package/types/edit.d.ts +38 -5
  105. package/types/form-item.d.ts +10 -0
  106. package/types/form.d.ts +14 -2
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_event=require("../../tools/event");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 _default2=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:null,clearable:Boolean,placeholder:String,loading:Boolean,disabled:Boolean,multiple:Boolean,multiCharOverflow:{type:[Number,String],default:function(){return _conf.default.select.multiCharOverflow}},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],size:{type:String,default:function(){return _conf.default.select.size||_conf.default.size}},emptyText:String,optionId:{type:String,default:function(){return _conf.default.select.optionId}},optionKey:Boolean,transfer:{type:Boolean,default:function(){return _conf.default.select.transfer}}},emits:["update:modelValue","change","clear"],setup:function(m,e){function x(e,t){return e&&(_xeUtils.default.isString(e)&&(e=b[e]||null),_xeUtils.default.isFunction(e))?e(t):[]}function v(t){var e=y.fullOptionList,n=y.fullGroupList,i=D.value,o=C.value;if(i)for(var l=0;l<n.length;l++){var u=n[l];if(u.options)for(var r=0;r<u.options.length;r++){var a=u.options[r];if(t===a[o])return a}}return e.find(function(e){return t===e[o]})}function i(e){var t=k.value,n=v(e);return _xeUtils.default.toValueString(n?n[t]:e)}function l(){var e=y.fullOptionList,t=y.fullGroupList;return D.value?y.visibleGroupList=t.filter(isOptionVisible):y.visibleOptionList=e.filter(isOptionVisible),(0,_vue.nextTick)()}function n(){function t(e){B(e)||(e[o]=getOptUniqueId())}var e=y.fullOptionList,n=y.fullGroupList,i=U.value,o=j();n.length?n.forEach(function(e){t(e),e[i]&&e[i].forEach(t)}):e.length&&e.forEach(t),l()}function h(e){var t=C.value;e&&(y.currentValue=e[t])}function c(i,o){return(0,_vue.nextTick)().then(function(){var e,t,n;i&&(e=P.value,t=S.value.querySelector("[optid='"+B(i)+"']"),e&&t&&(n=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>n&&(e.scrollTop=t.offsetTop+t.offsetHeight-n):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5)))})}function o(){return(0,_vue.nextTick)().then(function(){var e=m.transfer,t=m.placement,n=y.panelIndex,i=L.value,o=S.value;if(o&&i){var l=i.offsetHeight,u=i.offsetWidth,r=o.offsetHeight,a=o.offsetWidth,s={zIndex:n},f=(0,_dom.getAbsolutePos)(i),v=f.boundingTop,o=f.boundingLeft,n=f.visibleHeight,i=f.visibleWidth,f="bottom";return e?(e=v+l,"top"===t?(f="top",e=v-r):t||(n<e+r+5&&(f="top",e=v-r),e<5&&(f="bottom",e=v+l)),i<(o=o)+a+5&&(o-=o+a+5-i),o<5&&(o=5),Object.assign(s,{left:o+"px",top:e+"px",minWidth:u+"px"})):"top"===t?(f="top",s.bottom=l+"px"):t||n<v+l+r&&5<v-l-r&&(f="top",s.bottom=l+"px"),y.panelStyle=s,y.panelPlacement=f,(0,_vue.nextTick)()}})}function f(e,t){H(t,null),$()}function g(e,t){var n,i=m.modelValue;m.multiple?(n=void 0,n=i?-1===i.indexOf(t)?i.concat([t]):i.filter(function(e){return e!==t}):[t],Y(e,n)):(Y(e,t),$())}function t(e){var t=m.disabled,n=y.visiblePanel;t||n&&(n=S.value,((0,_dom.getEventTargetNode)(e,n).flag?o:$)())}function u(e){var t,n=m.disabled,i=y.visiblePanel;n||(t=L.value,n=S.value,y.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,n).flag,i&&!y.isActivated&&$())}function r(e){var t,n,i,o,l,u,r=m.clearable,a=m.disabled,s=y.visiblePanel,f=y.currentValue;a||(l=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.TAB),t=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ENTER),u=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ESCAPE),n=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ARROW_UP),i=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ARROW_DOWN),o=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.DELETE),a=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.SPACEBAR),l&&(y.isActivated=!1),s?u||l?$():t?(e.preventDefault(),e.stopPropagation(),g(e,f)):n||i?(e.preventDefault(),l=(u=function(e,t){var n,i,o,l,u=y.visibleOptionList,r=y.visibleGroupList,a=D.value,s=C.value,f=U.value;if(a)for(var v=0;v<r.length;v++){var c=r[v],p=c[f],d=c.disabled;if(p)for(var _=0;_<p.length;_++){var b=isOptionVisible(x=p[_]),m=d||x.disabled;if(n||m||(n=x),l&&b&&!m&&(o=x,!t))return{offsetOption:o};if(e===x[s]){if(l=x,t)return{offsetOption:i}}else b&&!m&&(i=x)}}else for(_=0;_<u.length;_++){var x,m=(x=u[_]).disabled;if(n||m||(n=x),l&&!m&&(o=x,!t))return{offsetOption:o};if(e===x[s]){if(l=x,t)return{offsetOption:i}}else m||(i=x)}return{firstOption:n}}(f,n)).firstOption,(u=u.offsetOption)||v(f)||(u=l),h(u),c(u,i)):a&&e.preventDefault():(n||i||t||a)&&y.isActivated&&(e.preventDefault(),F()),y.isActivated&&o&&r&&H(e,null))}function a(){$()}function p(){m.disabled||(y.isActivated=!0)}function d(){y.isActivated=!1}function _(e){e.$event.preventDefault(),(y.visiblePanel?$:F)()}var s,b=e.slots,E=e.emit,O=_xeUtils.default.uniqueId(),T=(0,_size.useSize)(m),y=(0,_vue.reactive)({inited:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentValue:null,visiblePanel:!1,animatVisible:!1,isActivated:!1}),L=(0,_vue.ref)(),V=(0,_vue.ref)(),P=(0,_vue.ref)(),S=(0,_vue.ref)(),G={refElem:L},A={xID:O,props:m,context:e,reactData:y,getRefMaps:function(){return G}},N={},I=(0,_vue.computed)(function(){return m.optionProps||{}}),K=(0,_vue.computed)(function(){return m.optionGroupProps||{}}),k=(0,_vue.computed)(function(){return I.value.label||"label"}),C=(0,_vue.computed)(function(){return I.value.value||"value"}),w=(0,_vue.computed)(function(){return K.value.label||"label"}),U=(0,_vue.computed)(function(){return K.value.options||"options"}),q=(0,_vue.computed)(function(){return Object.assign({},_conf.default.select.optionConfig,m.optionConfig)}),D=(0,_vue.computed)(function(){return y.fullGroupList.some(function(e){return e.options&&e.options.length})}),R=(0,_vue.computed)(function(){return _xeUtils.default.toNumber(m.multiCharOverflow)}),z=(0,_vue.computed)(function(){var e=m.modelValue,t=m.multiple,n=R.value;return e&&t?(_xeUtils.default.isArray(e)?e:[e]).map(function(e){e=i(e);return 0<n&&e.length>n?e.substring(0,n)+"...":e}).join(", "):i(e)}),j=function(){return q.value.keyField||m.optionId||"_X_OPTION_KEY"},B=function(e){e=e[j()];return e?encodeURIComponent(e):""},F=function(){var e=m.loading,t=m.disabled;e||t||(clearTimeout(s),y.inited||(y.inited=!0),y.isActivated=!0,y.animatVisible=!0,setTimeout(function(){var e=m.modelValue,t=m.multiple,e=v(t&&e?e[0]:e);y.visiblePanel=!0,e&&(h(e),c(e))},10),y.panelIndex<(0,_utils.getLastZIndex)()&&(y.panelIndex=(0,_utils.nextZIndex)()),o())},$=function(){y.visiblePanel=!1,s=window.setTimeout(function(){y.animatVisible=!1},350)},Y=function(e,t){t!==m.modelValue&&(E("update:modelValue",t),N.dispatchEvent("change",{value:t},e))},H=function(e,t){Y(e,t),N.dispatchEvent("clear",{value:t},e)},W=function(e,a){var s=m.optionKey,f=m.modelValue,v=m.multiple,c=y.currentValue,t=q.value,p=k.value,d=C.value,_=D.value,b=t.useKey;return e.map(function(e,t){var n=e.slots,i=e.className,o=!_||isOptionVisible(e),l=a&&a.disabled||e.disabled,u=e[d],r=B(e),n=n?n.default:null;return o?(0,_vue.h)("div",{key:b||s?r:t,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i({option:e,$select:A}):i:"",{"is--disabled":l,"is--selected":v?f&&-1<f.indexOf(u):f===u,"is--hover":c===u}],optid:r,onMousedown:function(e){0===e.button&&e.stopPropagation()},onClick:function(e){l||g(e,u)},onMouseenter:function(){l||h(e)}},n?x(n,{option:e,$select:A}):(0,_utils.formatText)((0,_utils.getFuncText)(e[p]))):null})},M=function(){var u=m.optionKey,e=y.visibleGroupList,t=q.value,r=w.value,a=U.value,s=t.useKey;return e.map(function(e,t){var n=e.slots,i=e.className,o=B(e),l=e.disabled,n=n?n.default:null;return(0,_vue.h)("div",{key:s||u?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i({option:e,$select:A}):i:"",{"is--disabled":l}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},n?x(n,{option:e,$select:A}):(0,_utils.getFuncText)(e[r])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},W(e[a]||[],e))])})},N={dispatchEvent:function(e,t,n){E(e,Object.assign({$select:A,$event:n},t))},isPanelVisible:function(){return y.visiblePanel},togglePanel:function(){return(y.visiblePanel?$:F)(),(0,_vue.nextTick)()},hidePanel:function(){return y.visiblePanel&&$(),(0,_vue.nextTick)()},showPanel:function(){return y.visiblePanel||F(),(0,_vue.nextTick)()},refreshOption:l,focus:function(){var e=V.value;return y.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur:function(){return V.value.blur(),(y.isActivated=!1,_vue.nextTick)()}};Object.assign(A,N),(0,_vue.watch)(function(){return y.staticOptions},function(e){e.some(function(e){return e.options&&e.options.length})?(y.fullOptionList=[],y.fullGroupList=e):(y.fullGroupList=[],y.fullOptionList=e||[]),n()}),(0,_vue.watch)(function(){return m.options},function(e){y.fullGroupList=[],y.fullOptionList=e||[],n()}),(0,_vue.watch)(function(){return m.optionGroups},function(e){y.fullOptionList=[],y.fullGroupList=e||[],n()}),(0,_vue.onMounted)(function(){(0,_vue.nextTick)(function(){var e=m.options,t=m.optionGroups;t?y.fullGroupList=t:e&&(y.fullOptionList=e),n()}),_event.GlobalEvent.on(A,"mousewheel",t),_event.GlobalEvent.on(A,"mousedown",u),_event.GlobalEvent.on(A,"keydown",r),_event.GlobalEvent.on(A,"blur",a)}),(0,_vue.onUnmounted)(function(){_event.GlobalEvent.off(A,"mousewheel"),_event.GlobalEvent.off(A,"mousedown"),_event.GlobalEvent.off(A,"keydown"),_event.GlobalEvent.off(A,"blur")});return A.renderVN=function(){var e=m.className,t=m.transfer,n=m.disabled,i=m.loading,o=y.inited,l=y.isActivated,u=y.visiblePanel,r=T.value,a=z.value,s=b.prefix;return(0,_vue.h)("div",{ref:L,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:A}):e:"",((e={})["size--"+r]=r,e["is--visivle"]=u,e["is--disabled"]=n,e["is--loading"]=i,e["is--active"]=l,e)]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},b.default?b.default({}):[]),(0,_vue.h)((0,_vue.resolveComponent)("vxe-input"),{ref:V,clearable:m.clearable,placeholder:m.placeholder,readonly:!0,disabled:n,type:"text",prefixIcon:m.prefixIcon,suffixIcon:i?_conf.default.icon.SELECT_LOADED:u?_conf.default.icon.SELECT_OPEN:_conf.default.icon.SELECT_CLOSE,modelValue:a,onClear:f,onClick:_,onFocus:p,onBlur:d,onSuffixClick:_},s?{prefix:function(){return s({})}}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!t||!o},[(0,_vue.h)("div",{ref:S,class:["vxe-table--ignore-clear vxe-select--panel",((a={})["size--"+r]=r,a["is--transfer"]=t,a["animat--leave"]=!i&&y.animatVisible,a["animat--enter"]=!i&&u,a)],placement:y.panelPlacement,style:y.panelStyle},o?[(0,_vue.h)("div",{ref:P,class:"vxe-select-option--wrapper"},function(){var e=y.visibleGroupList,t=y.visibleOptionList;if(D.value){if(e.length)return M()}else if(t.length)return W(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},m.emptyText||_conf.default.i18n("vxe.select.emptyText"))]}())]:[])])])},(0,_vue.provide)("$xeselect",A),A},render:function(){return this.renderVN()}});exports.default=_default2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_event=require("../../tools/event");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 _default2=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:null,clearable:Boolean,placeholder:String,loading:Boolean,disabled:Boolean,multiple:Boolean,multiCharOverflow:{type:[Number,String],default:function(){return _conf.default.select.multiCharOverflow}},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],size:{type:String,default:function(){return _conf.default.select.size||_conf.default.size}},emptyText:String,optionId:{type:String,default:function(){return _conf.default.select.optionId}},optionKey:Boolean,transfer:{type:Boolean,default:function(){return _conf.default.select.transfer}}},emits:["update:modelValue","change","clear"],setup:function(m,e){function x(e,t){return e&&(_xeUtils.default.isString(e)&&(e=b[e]||null),_xeUtils.default.isFunction(e))?e(t):[]}function v(t){var e=V.fullOptionList,n=V.fullGroupList,i=R.value,o=U.value;if(i)for(var l=0;l<n.length;l++){var u=n[l];if(u.options)for(var r=0;r<u.options.length;r++){var a=u.options[r];if(t===a[o])return a}}return e.find(function(e){return t===e[o]})}function i(e){var t=w.value,n=v(e);return _xeUtils.default.toValueString(n?n[t]:e)}function l(){var e=V.fullOptionList,t=V.fullGroupList;return R.value?V.visibleGroupList=t.filter(isOptionVisible):V.visibleOptionList=e.filter(isOptionVisible),(0,_vue.nextTick)()}function n(){function t(e){F(e)||(e[o]=getOptUniqueId())}var e=V.fullOptionList,n=V.fullGroupList,i=D.value,o=B();n.length?n.forEach(function(e){t(e),e[i]&&e[i].forEach(t)}):e.length&&e.forEach(t),l()}function g(e){var t=U.value;e&&(V.currentValue=e[t])}function c(i,o){return(0,_vue.nextTick)().then(function(){var e,t,n;i&&(e=G.value,t=A.value.querySelector("[optid='"+F(i)+"']"),e&&t&&(n=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>n&&(e.scrollTop=t.offsetTop+t.offsetHeight-n):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5)))})}function o(){return(0,_vue.nextTick)().then(function(){var e=m.transfer,t=m.placement,n=V.panelIndex,i=P.value,o=A.value;if(o&&i){var l=i.offsetHeight,u=i.offsetWidth,r=o.offsetHeight,a=o.offsetWidth,s={zIndex:n},f=(0,_dom.getAbsolutePos)(i),v=f.boundingTop,o=f.boundingLeft,n=f.visibleHeight,i=f.visibleWidth,f="bottom";return e?(e=v+l,"top"===t?(f="top",e=v-r):t||(n<e+r+5&&(f="top",e=v-r),e<5&&(f="bottom",e=v+l)),i<(o=o)+a+5&&(o-=o+a+5-i),o<5&&(o=5),Object.assign(s,{left:o+"px",top:e+"px",minWidth:u+"px"})):"top"===t?(f="top",s.bottom=l+"px"):t||n<v+l+r&&5<v-l-r&&(f="top",s.bottom=l+"px"),V.panelStyle=s,V.panelPlacement=f,(0,_vue.nextTick)()}})}function f(e,t){M(t,null),H()}function h(e,t){var n,i=m.modelValue;m.multiple?(n=void 0,n=i?-1===i.indexOf(t)?i.concat([t]):i.filter(function(e){return e!==t}):[t],W(e,n)):(W(e,t),H())}function t(e){var t=m.disabled,n=V.visiblePanel;t||n&&(n=A.value,((0,_dom.getEventTargetNode)(e,n).flag?o:H)())}function u(e){var t,n=m.disabled,i=V.visiblePanel;n||(t=P.value,n=A.value,V.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,n).flag,i&&!V.isActivated&&H())}function r(e){var t,n,i,o,l,u,r=m.clearable,a=m.disabled,s=V.visiblePanel,f=V.currentValue;a||(l=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.TAB),t=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ENTER),u=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ESCAPE),n=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ARROW_UP),i=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ARROW_DOWN),o=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.DELETE),a=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.SPACEBAR),l&&(V.isActivated=!1),s?u||l?H():t?(e.preventDefault(),e.stopPropagation(),h(e,f)):n||i?(e.preventDefault(),l=(u=function(e,t){var n,i,o,l,u=V.visibleOptionList,r=V.visibleGroupList,a=R.value,s=U.value,f=D.value;if(a)for(var v=0;v<r.length;v++){var c=r[v],p=c[f],d=c.disabled;if(p)for(var _=0;_<p.length;_++){var b=isOptionVisible(x=p[_]),m=d||x.disabled;if(n||m||(n=x),l&&b&&!m&&(o=x,!t))return{offsetOption:o};if(e===x[s]){if(l=x,t)return{offsetOption:i}}else b&&!m&&(i=x)}}else for(_=0;_<u.length;_++){var x,m=(x=u[_]).disabled;if(n||m||(n=x),l&&!m&&(o=x,!t))return{offsetOption:o};if(e===x[s]){if(l=x,t)return{offsetOption:i}}else m||(i=x)}return{firstOption:n}}(f,n)).firstOption,(u=u.offsetOption)||v(f)||(u=l),g(u),c(u,i)):a&&e.preventDefault():(n||i||t||a)&&V.isActivated&&(e.preventDefault(),Y()),V.isActivated&&o&&r&&M(e,null))}function a(){H()}function p(){m.disabled||(V.isActivated=!0)}function d(){V.isActivated=!1}function _(e){e.$event.preventDefault(),(V.visiblePanel?H:Y)()}var s,b=e.slots,E=e.emit,O=(0,_vue.inject)("$xeform",null),T=(0,_vue.inject)("$xeformiteminfo",null),y=_xeUtils.default.uniqueId(),L=(0,_size.useSize)(m),V=(0,_vue.reactive)({inited:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentValue:null,visiblePanel:!1,animatVisible:!1,isActivated:!1}),P=(0,_vue.ref)(),S=(0,_vue.ref)(),G=(0,_vue.ref)(),A=(0,_vue.ref)(),I={refElem:P},N={xID:y,props:m,context:e,reactData:V,getRefMaps:function(){return I}},C={},K=(0,_vue.computed)(function(){return m.optionProps||{}}),k=(0,_vue.computed)(function(){return m.optionGroupProps||{}}),w=(0,_vue.computed)(function(){return K.value.label||"label"}),U=(0,_vue.computed)(function(){return K.value.value||"value"}),q=(0,_vue.computed)(function(){return k.value.label||"label"}),D=(0,_vue.computed)(function(){return k.value.options||"options"}),j=(0,_vue.computed)(function(){return Object.assign({},_conf.default.select.optionConfig,m.optionConfig)}),R=(0,_vue.computed)(function(){return V.fullGroupList.some(function(e){return e.options&&e.options.length})}),$=(0,_vue.computed)(function(){return _xeUtils.default.toNumber(m.multiCharOverflow)}),z=(0,_vue.computed)(function(){var e=m.modelValue,t=m.multiple,n=$.value;return e&&t?(_xeUtils.default.isArray(e)?e:[e]).map(function(e){e=i(e);return 0<n&&e.length>n?e.substring(0,n)+"...":e}).join(", "):i(e)}),B=function(){return j.value.keyField||m.optionId||"_X_OPTION_KEY"},F=function(e){e=e[B()];return e?encodeURIComponent(e):""},Y=function(){var e=m.loading,t=m.disabled;e||t||(clearTimeout(s),V.inited||(V.inited=!0),V.isActivated=!0,V.animatVisible=!0,setTimeout(function(){var e=m.modelValue,t=m.multiple,e=v(t&&e?e[0]:e);V.visiblePanel=!0,e&&(g(e),c(e))},10),V.panelIndex<(0,_utils.getLastZIndex)()&&(V.panelIndex=(0,_utils.nextZIndex)()),o())},H=function(){V.visiblePanel=!1,s=window.setTimeout(function(){V.animatVisible=!1},350)},W=function(e,t){t!==m.modelValue&&(E("update:modelValue",t),C.dispatchEvent("change",{value:t},e),O&&T&&O.triggerItemEvent(e,T.itemConfig.field,t))},M=function(e,t){W(e,t),C.dispatchEvent("clear",{value:t},e)},Z=function(e,a){var s=m.optionKey,f=m.modelValue,v=m.multiple,c=V.currentValue,t=j.value,p=w.value,d=U.value,_=R.value,b=t.useKey;return e.map(function(e,t){var n=e.slots,i=e.className,o=!_||isOptionVisible(e),l=a&&a.disabled||e.disabled,u=e[d],r=F(e),n=n?n.default:null;return o?(0,_vue.h)("div",{key:b||s?r:t,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i({option:e,$select:N}):i:"",{"is--disabled":l,"is--selected":v?f&&-1<f.indexOf(u):f===u,"is--hover":c===u}],optid:r,onMousedown:function(e){0===e.button&&e.stopPropagation()},onClick:function(e){l||h(e,u)},onMouseenter:function(){l||g(e)}},n?x(n,{option:e,$select:N}):(0,_utils.formatText)((0,_utils.getFuncText)(e[p]))):null})},X=function(){var u=m.optionKey,e=V.visibleGroupList,t=j.value,r=q.value,a=D.value,s=t.useKey;return e.map(function(e,t){var n=e.slots,i=e.className,o=F(e),l=e.disabled,n=n?n.default:null;return(0,_vue.h)("div",{key:s||u?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i({option:e,$select:N}):i:"",{"is--disabled":l}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},n?x(n,{option:e,$select:N}):(0,_utils.getFuncText)(e[r])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},Z(e[a]||[],e))])})},C={dispatchEvent:function(e,t,n){E(e,Object.assign({$select:N,$event:n},t))},isPanelVisible:function(){return V.visiblePanel},togglePanel:function(){return(V.visiblePanel?H:Y)(),(0,_vue.nextTick)()},hidePanel:function(){return V.visiblePanel&&H(),(0,_vue.nextTick)()},showPanel:function(){return V.visiblePanel||Y(),(0,_vue.nextTick)()},refreshOption:l,focus:function(){var e=S.value;return V.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur:function(){return S.value.blur(),(V.isActivated=!1,_vue.nextTick)()}};Object.assign(N,C),(0,_vue.watch)(function(){return V.staticOptions},function(e){e.some(function(e){return e.options&&e.options.length})?(V.fullOptionList=[],V.fullGroupList=e):(V.fullGroupList=[],V.fullOptionList=e||[]),n()}),(0,_vue.watch)(function(){return m.options},function(e){V.fullGroupList=[],V.fullOptionList=e||[],n()}),(0,_vue.watch)(function(){return m.optionGroups},function(e){V.fullOptionList=[],V.fullGroupList=e||[],n()}),(0,_vue.onMounted)(function(){(0,_vue.nextTick)(function(){var e=m.options,t=m.optionGroups;t?V.fullGroupList=t:e&&(V.fullOptionList=e),n()}),_event.GlobalEvent.on(N,"mousewheel",t),_event.GlobalEvent.on(N,"mousedown",u),_event.GlobalEvent.on(N,"keydown",r),_event.GlobalEvent.on(N,"blur",a)}),(0,_vue.onUnmounted)(function(){_event.GlobalEvent.off(N,"mousewheel"),_event.GlobalEvent.off(N,"mousedown"),_event.GlobalEvent.off(N,"keydown"),_event.GlobalEvent.off(N,"blur")});return N.renderVN=function(){var e=m.className,t=m.transfer,n=m.disabled,i=m.loading,o=V.inited,l=V.isActivated,u=V.visiblePanel,r=L.value,a=z.value,s=b.prefix;return(0,_vue.h)("div",{ref:P,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:N}):e:"",((e={})["size--"+r]=r,e["is--visivle"]=u,e["is--disabled"]=n,e["is--loading"]=i,e["is--active"]=l,e)]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},b.default?b.default({}):[]),(0,_vue.h)((0,_vue.resolveComponent)("vxe-input"),{ref:S,clearable:m.clearable,placeholder:m.placeholder,readonly:!0,disabled:n,type:"text",prefixIcon:m.prefixIcon,suffixIcon:i?_conf.default.icon.SELECT_LOADED:u?_conf.default.icon.SELECT_OPEN:_conf.default.icon.SELECT_CLOSE,modelValue:a,onClear:f,onClick:_,onFocus:p,onBlur:d,onSuffixClick:_},s?{prefix:function(){return s({})}}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!t||!o},[(0,_vue.h)("div",{ref:A,class:["vxe-table--ignore-clear vxe-select--panel",((a={})["size--"+r]=r,a["is--transfer"]=t,a["animat--leave"]=!i&&V.animatVisible,a["animat--enter"]=!i&&u,a)],placement:V.panelPlacement,style:V.panelStyle},o?[(0,_vue.h)("div",{ref:G,class:"vxe-select-option--wrapper"},function(){var e=V.visibleGroupList,t=V.visibleOptionList;if(R.value){if(e.length)return X()}else if(t.length)return Z(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},m.emptyText||_conf.default.i18n("vxe.select.emptyText"))]}())]:[])])])},(0,_vue.provide)("$xeselect",N),N},render:function(){return this.renderVN()}});exports.default=_default2;