UNPKG

vxe-pc-ui

Version:
1 lines • 21.5 kB
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"),_log=require("../../ui/src/log"),_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_")}function createInternalData(){return{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}}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,lazyOptions:Array,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,filterConfig:Object,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},popupConfig:Object,virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","default-change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(V,e){let{slots:I,emit:a}=e,T=(0,_vue.inject)("$xeModal",null),E=(0,_vue.inject)("$xeDrawer",null),y=(0,_vue.inject)("$xeTable",null),i=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();let L=(0,_vue.ref)(),P=(0,_vue.ref)(),Y=(0,_vue.ref)(),w=(0,_vue.ref)(),M=(0,_vue.ref)(),j=(0,_vue.ref)(),z=(0,_ui.useSize)(V).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}),S=createInternalData(),C={refElem:L},A={xID:t,props:V,context:e,reactData:k,internalData:S,getRefMaps:()=>C},H=(0,_vue.computed)(()=>{var e=V.readonly;return null===e?!!i&&i.props.readonly:e}),U=(0,_vue.computed)(()=>{var e=V.disabled;return null===e?!!i&&i.props.disabled:e}),q=(0,_vue.computed)(()=>{var e=V.transfer,t=F.value;if(_xeUtils.default.isBoolean(t.transfer))return t.transfer;if(null===e){t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(y||T||E||i)return!0}return e}),K=(0,_vue.computed)(()=>{var e=V.placeholder;return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),$=(0,_vue.computed)(()=>Object.assign({},V.defaultConfig)),G=(0,_vue.computed)(()=>Object.assign({},V.optionProps)),R=(0,_vue.computed)(()=>Object.assign({},V.optionGroupProps)),v=(0,_vue.computed)(()=>G.value.label||"label"),O=(0,_vue.computed)(()=>G.value.value||"value"),W=(0,_vue.computed)(()=>R.value.label||"label"),X=(0,_vue.computed)(()=>R.value.options||"options"),Z=(0,_vue.computed)(()=>{var e=N.value;return ne(e)}),F=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.popupConfig,V.popupConfig)),J=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,V.virtualYConfig||V.scrollY)),n=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,V.remoteConfig)),Q=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.filterConfig,V.filterConfig)),ee=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,V.optionConfig)),te=(0,_vue.computed)(()=>_xeUtils.default.toNumber(V.multiCharOverflow)),le=(0,_vue.computed)(()=>{var{height:e,width:t}=F.value,l={};return t&&(l.width=(0,_dom.toCssUnit)(t)),e&&(l.height=(0,_dom.toCssUnit)(e),l.maxHeight=(0,_dom.toCssUnit)(e)),l}),N=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t}=V;let l=[];return _xeUtils.default.isArray(e)?l=e:t?(0,_utils.eqEmptyValue)(e)||(l=-1<(""+e).indexOf(",")?(""+e).split(","):[e]):l=null==e?[]:[e],l}),ae=(0,_vue.computed)(()=>{var e=V.remote,t=k.reactFlag,l=N.value;return(e&&t?l.map(e=>ue(e)):l.map(e=>se(e))).join(", ")}),ie=(0,_vue.computed)(()=>{var{remote:e,multiple:t}=V,l=k.reactFlag,a=te.value,i=N.value;return e&&l?i.map(e=>ue(e)).join(", "):(e=i.map(e=>se(e)),t&&0<a&&e.length>a?e.slice(0,a)+"...":e.join(", "))}),B=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=I[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],u=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:A},t))},oe=e=>{a("update:modelValue",e)},re=e=>{oe(e),u("default-change",{value:e},null)},s=()=>ee.value.keyField||V.optionId||"_X_OPTION_KEY",D=e=>{e=e[s()];return e?encodeURIComponent(e):""},ne=e=>{var{multiple:t,max:l}=V;return!(!t||!l)&&e.length>=_xeUtils.default.toNumber(l)},ue=t=>{var e=V.lazyOptions,{remoteValMaps:l,optFullValMaps:a}=S;let i=O.value;var o=v.value,l=l[t]||a[t],a=l?l.item:null;if(a)return _xeUtils.default.toValueString(a[o]);if(e){l=e.find(e=>e[i]===t);if(l)return l[o]}return t},se=t=>{var e=V.lazyOptions,l=S.optFullValMaps;let a=O.value;var i=v.value,l=k.reactFlag?l[t]:null;if(l)return l.item[i];if(e){l=e.find(e=>e[a]===t);if(l)return l[i]}return t},c=()=>{let{remote:e,modelValue:t,filterable:l}=V,a=k.searchValue,{fullData:i,optFullValMaps:o}=S,r=v.value,n=O.value;let u=Q.value.filterMethod||V.filterMethod,s=(""+(a||"")).toLowerCase(),c=[];return(c=e?i.filter(isOptionVisible):l&&u?i.filter(e=>isOptionVisible(e)&&u({$select:A,group:null,option:e,searchValue:a,value:t})):l?i.filter(e=>isOptionVisible(e)&&(!s||-1<(""+(e[r]||e[n])).toLowerCase().indexOf(s))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[n]];e&&(e._index=t)}),S.afterVisibleList=c,(0,_vue.nextTick)()},ce=e=>{e&&(k.currentOption=e)},ve=()=>{var e=F.value.zIndex||V.zIndex;e?k.panelIndex=_xeUtils.default.toNumber(e):k.panelIndex<(0,_utils.getLastZIndex)()&&(k.panelIndex=(0,_utils.nextZIndex)())},d=()=>{let l=V.placement,a=k.panelIndex,i=L.value,o=M.value,r=q.value,n=F.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:n.placement||l,defaultPlacement:n.defaultPlacement,teleportTo:r}),t=Object.assign(e.style,{zIndex:a});k.panelStyle=t,k.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},de=()=>{(0,_vue.nextTick)(()=>{var{isAniVisible:e,visiblePanel:t}=k,l=S.optFullValMaps,a=N.value;a.length&&e&&t&&(e=k.reactFlag?l[""+a[0]]:null)&&Ne(e.item)})},p=()=>{var{loading:e,filterable:t,remote:l}=V,{fullData:a,hpTimeout:i}=S,o=U.value,r=n.value;e||o||(i&&(clearTimeout(i),S.hpTimeout=void 0),k.initialized||(k.initialized=!0),k.isActivated=!0,k.isAniVisible=!0,t&&(l&&r.enabled&&(r.autoLoad&&!a.length||a.length&&r.clearOnClose)?Pe:(c(),h))(),setTimeout(()=>{k.visiblePanel=!0,ye(),x().then(()=>{de(),m()}),d()},10),setTimeout(()=>{x().then(()=>m())},100),ve(),d(),u("visible-change",{visible:!0},null))},f=()=>{var{filterable:e,remote:t}=V,l=Q.value,a=n.value;t?a.clearOnClose&&(k.searchValue=""):e&&!l.clearOnClose||(k.searchValue=""),k.searchLoading=!1,k.visiblePanel=!1,S.hpTimeout=setTimeout(()=>{k.isAniVisible=!1},350),u("visible-change",{visible:!1},null)},r=(e,t,l)=>{oe(t),t!==V.modelValue&&(u("change",{value:t,option:l},e),i)&&o&&i.triggerItemEvent(e,o.itemConfig.field,t)},_=(e,t)=>{S.remoteValMaps={},r(e,t,null),u("clear",{value:t},e)},pe=e=>{e=e.$event;_(e,null),f()},fe=e=>{var e=e.$event,{multiple:t,max:l}=V,a=k.optList,i=O.value;if(t){var o=N.value.slice(0);for(let e=0;e<a.length;e++){let t=a[e][i];if(ne(o)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[l]),status:"warning"});break}o.some(e=>e===t)||o.push(t)}r(e,o,a[0]),u("all-change",{value:o},e)}},_e=e=>{e=e.$event;_(e,null),f()},ge=(t,l)=>{var e=V.multiple,a=S.remoteValMaps;let i=l[O.value];var o=a[i];if(k.visiblePanel){if(o?o.item=l:a[i]={key:D(l),item:l,_index:-1},e){let e=[];o=N.value,a=_xeUtils.default.findIndexOf(o,e=>e===i);e=-1===a?o.concat([i]):o.filter(e=>e!==i),r(t,e,l)}else r(t,i,l),f();k.reactFlag++}},he=e=>{var t=k.visiblePanel;U.value||t&&(t=M.value,((0,_dom.getEventTargetNode)(e,t).flag?d:f)())},me=e=>{var t,l=k.visiblePanel,a=U.value,i=F.value.trigger;a||(a=L.value,t=M.value,k.isActivated=(0,_dom.getEventTargetNode)(e,a).flag||(0,_dom.getEventTargetNode)(e,t).flag,l&&!k.isActivated&&"manual"!==i&&f())},g=e=>{var t=e.disabled,e=D(e);return!t&&!ze(e)},xe=(e,t)=>{var l=V.allowCreate,a=k.optList,{optFullValMaps:i,optAddMaps:o,afterVisibleList:r}=S,n=O.value;let u=r,s=0;if(l&&a.length&&(r=a[0],o[l=D(r)])&&(s=1,u=[o[l]].concat(u)),!e)if(t)for(let e=0;e<u.length;e++){var c=u[e];if(g(c))return c}else for(let e=u.length-1;0<=e;e--){var v=u[e];if(g(v))return v}let d=0;a=e?i[e[n]]:null;if(-1<(d=a?a._index+s:d))if(t)for(let e=d+1;e<=u.length-1;e++){var p=u[e];if(g(p))return p}else if(0<d)for(let e=d-1;0<=e;e--){var f=u[e];if(g(f))return f}return null},be=t=>{var e=V.clearable,{visiblePanel:l,currentOption:a}=k,i=U.value,o=F.value.trigger;if(!i){var i=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),n=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),c=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE);if(i&&(k.isActivated=!1),l){if(n||i)"manual"!==o&&f();else if(r)a&&(t.preventDefault(),t.stopPropagation(),ge(t,a));else if(u||s){t.preventDefault();let e=xe(a,s);(e=e||xe(null,s))&&(ce(e),Ne(e,s))}}else(u||s||r)&&k.isActivated&&(t.preventDefault(),p());k.isActivated&&c&&e&&_(t,null)}},Te=()=>{var{visiblePanel:e,isActivated:t}=k,l=F.value.trigger;e&&"manual"!==l&&f(),t&&(k.isActivated=!1),(e||t)&&(l=P.value)&&l.blur()},Ee=()=>{var e=k.visiblePanel;e&&d()},ye=()=>{V.filterable&&(0,_vue.nextTick)(()=>{var e=Y.value;e&&e.focus()})},Ce=e=>{var t=U.value,l=F.value.trigger;t||k.visiblePanel||l&&"default"!==l||(k.triggerFocusPanel=!0,p(),setTimeout(()=>{k.triggerFocusPanel=!1},500)),u("focus",{},e)},Se=e=>{var t=F.value.trigger;t&&"default"!==t||Me(e),u("click",{triggerButton:!1,visible:k.visiblePanel},e)},Oe=e=>{k.isActivated=!1,u("blur",{},e)},Ve=e=>{var t=F.value.trigger;t&&"default"!==t&&"icon"!==t||Me(e),u("click",{triggerButton:!0,visible:k.visiblePanel},e)},Ie=e=>{k.searchValue=e},Le=()=>{k.isActivated=!0},Pe=()=>{var{modelValue:e,remote:t}=V,l=k.searchValue,a=n.value,i=a.queryMethod||V.remoteMethod;t&&i&&a.enabled?(k.searchLoading=!0,Promise.resolve(i({$select:A,searchValue:l,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{k.searchLoading=!1,c(),h()})):(c(),h())},we=_xeUtils.default.debounce(Pe,350,{trailing:!0}),Me=e=>{e=e.$event;e.preventDefault(),k.triggerFocusPanel?k.triggerFocusPanel=!1:(k.visiblePanel?f:p)()},ke=(e,t)=>!!t.disabled||!(!Z.value||e),Ae=()=>{var e=k.scrollYLoad,{scrollYStore:t,afterVisibleList:l}=S;k.bodyHeight=e?l.length*t.rowHeight:0,k.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Ue=()=>{var{filterable:e,allowCreate:t}=V;let{scrollYLoad:l,searchValue:a}=k;var{optAddMaps:i,scrollYStore:o,afterVisibleList:r}=S;let n=v.value;var u=O.value,o=l?r.slice(o.startIndex,o.endIndex):r.slice(0);return e&&t&&a&&(o.some(e=>e[n]===a)||(r=i[a]||(0,_vue.reactive)({[s()]:a,[n]:a,[u]:a}),i[a]=r,o.unshift(r))),k.optList=o,(0,_vue.nextTick)()},h=()=>{Ue(),Ae()},Fe=()=>(0,_vue.nextTick)().then(()=>{var e=k.scrollYLoad,t=S.scrollYStore,l=j.value,a=J.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=w.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),h):Ae)()}),Ne=(e,t)=>{var l,a,i=k.scrollYLoad,{optFullValMaps:o,scrollYStore:r}=S,o=o[e[O.value]];o&&(e=o.key,-1<(o=o._index))&&(l=w.value,a=M.value)&&(a=a.querySelector(`[optid='${e}']`),l)&&(a?(e=l.offsetHeight,t?a.offsetTop+a.offsetHeight-l.scrollTop>e?l.scrollTop=a.offsetTop+a.offsetHeight-e:(a.offsetTop+1<l.scrollTop||a.offsetTop+1>l.scrollTop+l.clientHeight)&&(l.scrollTop=a.offsetTop-1):a.offsetTop+1<l.scrollTop||a.offsetTop+1>l.scrollTop+l.clientHeight?l.scrollTop=a.offsetTop-1:a.offsetTop+a.offsetHeight-l.scrollTop>e&&(l.scrollTop=a.offsetTop+a.offsetHeight-e)):i&&(l.scrollTop=t?o*r.rowHeight-l.clientHeight+r.rowHeight:o*r.rowHeight))},Be=(e,t)=>{var l=w.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=()=>{let{lastScrollLeft:e,lastScrollTop:t}=S;return b().then(()=>{if(e||t)return S.lastScrollLeft=0,S.lastScrollTop=0,Be(e,t)})},x=()=>{var e=L.value;return e&&e.clientWidth&&e.clientHeight?Fe():Promise.resolve()},De=e=>{var t=S.scrollYStore,{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:r}=t,e=e.target.scrollTop,e=Math.floor(e/r),r=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===r&&a===o||(t.startIndex=r,t.endIndex=o,h())},Ye=()=>{var e=S.lastScrollTime;return!!(e&&Date.now()<e+250)},je=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==S.lastScrollLeft,i=l!==S.lastScrollTop;S.lastScrollTop=l,S.lastScrollLeft=t,k.scrollYLoad&&De(e),S.lastScrollTime=Date.now(),u("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},l=t=>{(e=>{let t=X.value,l=O.value,a=s(),i={},o={},r=[],n=e=>{r.push(e);let t=D(e);t||(t=getOptUniqueId(),e[a]=t),o[e[l]]={key:t,item:e,_index:-1}};e.forEach(e=>{n(e),e[t]&&(i[e[a]]=e)[t].forEach(n)}),S.fullData=r,S.optGroupKeyMaps=i,S.optFullValMaps=o,k.reactFlag++,c()})(t||[]);var e=V.multiple,{isLoaded:l,fullData:a,scrollYStore:i}=S,o=$.value,r=J.value;let n=O.value;if(Object.assign(i,{startIndex:0,endIndex:1,visibleSize:0}),S.synchData=t||[],k.scrollYLoad=!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<=a.length),Ue(),!l){i=o.selectMode;if(0<t.length&&_xeUtils.default.eqNull(V.modelValue)){if("all"===i)e?(0,_vue.nextTick)(()=>{re(t.map(e=>e[n]))}):(0,_log.errLog)("vxe.error.notConflictProp",["default-config.selectMode=all","multiple=true"]);else if("first"===i||"last"===i){let e=_xeUtils.default[i](t);e&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(V.modelValue)&&re(e[n])})}S.isLoaded=!0}}return Fe().then(()=>{m()})},b=()=>{var e=w.value;return e&&(e.scrollTop=0,e.scrollLeft=0),S.lastScrollTop=0,(S.lastScrollLeft=0,_vue.nextTick)()},ze=e=>{var t=S.optGroupKeyMaps;return!!t[e]};t={dispatchEvent:u,loadData:l,reloadData(e){return S.isLoaded=!1,b(),l(e)},isPanelVisible(){return k.visiblePanel},togglePanel(){return(k.visiblePanel?f:p)(),(0,_vue.nextTick)()},hidePanel(){return k.visiblePanel&&f(),(0,_vue.nextTick)()},showPanel(){return k.visiblePanel||p(),(0,_vue.nextTick)()},refreshOption(){return c(),h(),(0,_vue.nextTick)()},focus(){var e=P.value;return e&&e.blur(),k.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=P.value;return e&&e.blur(),(k.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:b};Object.assign(A,t);let He=e=>{let{allowCreate:f,optionKey:_}=V,g=k.currentOption,h=S.optAddMaps;var t=ee.value;let m=v.value,x=O.value,b=W.value,T=N.value,{useKey:E,height:y}=t,C=I.option;return e.map((t,e)=>{var{slots:l,className:a}=t,i=D(t),o=t[x];let r=ze(i);var n=!(!f||!h[i]),u=!n&&-1<T.indexOf(o),s=n||!r||isOptionVisible(t);let c=!n&&ke(u,t);var l=l?l.default:null,v={option:t,group:r?t:null,$select:A};let d="",p=[];return p=C?B(C,v):l?B(l,v):d=(0,_utils.getFuncText)(t[r?b:m]||o),s?(0,_vue.h)("div",{key:E||_?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(v):a:"",{"vxe-select-optgroup":r,"is--disabled":c,"is--selected":u,"is--add":n,"is--hover":g&&D(g)===i}],optid:i,title:d||null,style:y?{height:(0,_dom.toCssUnit)(y)}:void 0,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{c||r||ge(e,t)},onMouseenter:()=>{c||r||Ye()||ce(t)}},f?[(0,_vue.h)("span",{key:1,class:"vxe-select-option--label"},p),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)(A)]:p):(0,_ui.renderEmptyElement)(A)})};return(0,_vue.watch)(()=>k.staticOptions,e=>{l(e)}),(0,_vue.watch)(()=>V.options,e=>{l(e||[])}),(0,_vue.watch)(()=>V.optionGroups,e=>{l(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=V;t?l(t):e&&l(e)}),_ui.globalEvents.on(A,"mousewheel",he),_ui.globalEvents.on(A,"mousedown",me),_ui.globalEvents.on(A,"keydown",be),_ui.globalEvents.on(A,"blur",Te),_ui.globalEvents.on(A,"resize",Ee)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(A,"mousewheel"),_ui.globalEvents.off(A,"mousedown"),_ui.globalEvents.off(A,"keydown"),_ui.globalEvents.off(A,"blur"),_ui.globalEvents.off(A,"resize"),_xeUtils.default.assign(S,createInternalData())}),(0,_vue.provide)("$xeSelect",A),A.renderVN=()=>{var{className:e,multiple:t,loading:l,filterable:a,showTotalButoon:i,showCheckedButoon:o,showClearButton:r}=V,{initialized:n,isActivated:u,isAniVisible:s,optList:c,visiblePanel:v,bodyHeight:d,topSpaceHeight:p}=k,f=z.value,_=U.value,g=ie.value,h=ae.value,m=q.value,x=H.value,b=K.value,T=le.value,E=F.value,y=I.default,C=I.header,S=I.footer;let O=I.prefix;E=E.className||V.popupClassName;return x?(0,_vue.h)("div",{ref:L,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},y?y({}):[]),(0,_vue.h)("span",{class:"vxe-select-label",title:h},g)]):(x=N.value,(0,_vue.h)("div",{ref:L,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:A}):e:"",{["size--"+f]:f,"is--visible":v,"is--disabled":_,"is--filter":a,"is--loading":l,"is--active":u}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},y?y({}):[]),(0,_vue.h)(_input.default,{ref:P,clearable:V.clearable,placeholder:b,editable:!1,disabled:_,type:"text",prefixIcon:V.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:v?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:h,modelValue:g,onClear:pe,onClick:Se,onFocus:Ce,onBlur:Oe,onSuffixClick:Ve},O?{prefix:()=>O({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!m||!n},[(0,_vue.h)("div",{ref:M,class:["vxe-table--ignore-clear vxe-select--panel",E?_xeUtils.default.isFunction(E)?E({$select:A}):E:"",{["size--"+f]:f,"is--transfer":m,"ani--leave":!l&&s,"ani--enter":!l&&v}],placement:k.panelPlacement,style:k.panelStyle},n&&(v||s)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper",style:T},[a?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:Y,class:"vxe-select-search--input",modelValue:k.searchValue,type:"text",clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":Ie,onFocus:Le,onChange:we,onSearch:we})]):(0,_ui.renderEmptyElement)(A),i||o&&t||r||C?(0,_vue.h)("div",{class:"vxe-select--panel-header"},C?B(C,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[i?(0,_vue.h)("div",{class:"vxe-select--header-total"},(0,_ui.getI18n)("vxe.select.total",[x.length,c.length])):(0,_ui.renderEmptyElement)(A),(0,_vue.h)("div",{class:"vxe-select--header-btns"},[o&&t?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:fe}):(0,_ui.renderEmptyElement)(A),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:_e}):(0,_ui.renderEmptyElement)(A)])])]):(0,_ui.renderEmptyElement)(A),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:w,class:"vxe-select-option--wrapper",onScroll:je},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:d?d+"px":""}}),(0,_vue.h)("div",{ref:j,class:"vxe-select--body",style:{transform:`translateY(${p}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?He(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},V.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},B(S,{})):(0,_ui.renderEmptyElement)(A)])]:[])])]))},A},render(){return this.renderVN()}});