ll-package
Version:
4 lines (3 loc) • 11.4 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const M=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),m=require("../../../@babel/runtime/helpers/esm/extends.js"),t=require("vue"),Ye=require("./utils/valueUtil.js"),Ze=require("./SelectTrigger.js"),en=require("./Selector/index.js"),nn=require("./hooks/useSelectTriggerControl.js"),on=require("./hooks/useDelayReset.js"),ce=require("./TransBtn.js"),tn=require("./hooks/useLock.js"),an=require("./hooks/useBaseProps.js"),C=require("../_util/vue-types/index.js"),ln=require("../_util/props-util/index.js"),un=require("../vc-util/isMobile.js"),de=require("../_util/KeyCode.js"),rn=require("../_util/toReactive.js"),se=require("../_util/classNames.js"),cn=require("../_util/createRef.js"),dn=require("../vc-tree-select/LegacyContext.js"),sn=require("../_util/vnode.js"),fn=require("../_util/props-util/initDefaultProps.js");var vn=function(e,O){var V={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&O.indexOf(c)<0&&(V[c]=e[c]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var h=0,c=Object.getOwnPropertySymbols(e);h<c.length;h++)O.indexOf(c[h])<0&&Object.prototype.propertyIsEnumerable.call(e,c[h])&&(V[c[h]]=e[c[h]]);return V};const mn=["value","onChange","removeIcon","placeholder","autofocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabindex","OptionList","notFoundContent"],hn=()=>({prefixCls:String,id:String,omitDomProps:Array,displayValues:Array,onDisplayValuesChange:Function,activeValue:String,activeDescendantId:String,onActiveValueChange:Function,searchValue:String,onSearch:Function,onSearchSplit:Function,maxLength:Number,OptionList:C.default.any,emptyOptions:Boolean}),fe=()=>({showSearch:{type:Boolean,default:void 0},tagRender:{type:Function},optionLabelRender:{type:Function},direction:{type:String},tabindex:Number,autofocus:Boolean,notFoundContent:C.default.any,placeholder:C.default.any,onClear:Function,choiceTransitionName:String,mode:String,disabled:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:void 0},onDropdownVisibleChange:{type:Function},getInputElement:{type:Function},getRawInputElement:{type:Function},maxTagTextLength:Number,maxTagCount:{type:[String,Number]},maxTagPlaceholder:C.default.any,tokenSeparators:{type:Array},allowClear:{type:Boolean,default:void 0},showArrow:{type:Boolean,default:void 0},inputIcon:C.default.any,clearIcon:C.default.any,removeIcon:C.default.any,animation:String,transitionName:String,dropdownStyle:{type:Object},dropdownClassName:String,dropdownMatchSelectWidth:{type:[Boolean,Number],default:void 0},dropdownRender:{type:Function},dropdownAlign:Object,placement:{type:String},getPopupContainer:{type:Function},showAction:{type:Array},onBlur:{type:Function},onFocus:{type:Function},onKeyup:Function,onKeydown:Function,onMousedown:Function,onPopupScroll:Function,onInputKeyDown:Function,onMouseenter:Function,onMouseleave:Function,onClick:Function}),pn=()=>m.default(m.default({},hn()),fe());function ve(e){return e==="tags"||e==="multiple"}const gn=t.defineComponent({compatConfig:{MODE:3},name:"BaseSelect",inheritAttrs:!1,props:fn.default(pn(),{showAction:[],notFoundContent:"Not Found"}),setup(e,O){let{attrs:V,expose:c,slots:h}=O;const g=t.computed(()=>ve(e.mode)),x=t.computed(()=>e.showSearch!==void 0?e.showSearch:g.value||e.mode==="combobox"),Q=t.shallowRef(!1);t.onMounted(()=>{Q.value=un.default()});const me=dn.default(),T=t.shallowRef(null),A=cn.default(),B=t.shallowRef(null),I=t.shallowRef(null),F=t.shallowRef(null),q=t.ref(!1),[L,K,he]=on.default();c({focus:()=>{var n;(n=I.value)===null||n===void 0||n.focus()},blur:()=>{var n;(n=I.value)===null||n===void 0||n.blur()},scrollTo:n=>{var o;return(o=F.value)===null||o===void 0?void 0:o.scrollTo(n)}});const w=t.computed(()=>{var n;if(e.mode!=="combobox")return e.searchValue;const o=(n=e.displayValues[0])===null||n===void 0?void 0:n.value;return typeof o=="string"||typeof o=="number"?String(o):""}),X=e.open!==void 0?e.open:e.defaultOpen,N=t.shallowRef(X),a=t.shallowRef(X),$=n=>{N.value=e.open!==void 0?e.open:n,a.value=N.value};t.watch(()=>e.open,()=>{$(e.open)});const Y=t.computed(()=>!e.notFoundContent&&e.emptyOptions);t.watchEffect(()=>{a.value=N.value,(e.disabled||Y.value&&a.value&&e.mode==="combobox")&&(a.value=!1)});const P=t.computed(()=>Y.value?!1:a.value),p=n=>{const o=n!==void 0?n:!a.value;a.value!==o&&!e.disabled&&($(o),e.onDropdownVisibleChange&&e.onDropdownVisibleChange(o))},pe=t.computed(()=>(e.tokenSeparators||[]).some(n=>[`
`,`\r
`].includes(n))),W=(n,o,l)=>{var u,d;let i=!0,s=n;(u=e.onActiveValueChange)===null||u===void 0||u.call(e,null);const r=l?null:Ye.getSeparatedContent(n,e.tokenSeparators);return e.mode!=="combobox"&&r&&(s="",(d=e.onSearchSplit)===null||d===void 0||d.call(e,r),p(!1),i=!1),e.onSearch&&w.value!==s&&e.onSearch(s,{source:o?"typing":"effect"}),i},ge=n=>{var o;!n||!n.trim()||(o=e.onSearch)===null||o===void 0||o.call(e,n,{source:"submit"})};t.watch(a,()=>{!a.value&&!g.value&&e.mode!=="combobox"&&W("",!1,!1)},{immediate:!0,flush:"post"}),t.watch(()=>e.disabled,()=>{N.value&&e.disabled&&$(!1),e.disabled&&!q.value&&K(!1)},{immediate:!0});const[we,ye]=tn.default(),be=function(n){var o;const l=we(),{which:u}=n;if(u===de.default.ENTER&&(e.mode!=="combobox"&&n.preventDefault(),a.value||p(!0)),ye(!!w.value),u===de.default.BACKSPACE&&!l&&g.value&&!w.value&&e.displayValues.length){const r=[...e.displayValues];let y=null;for(let f=r.length-1;f>=0;f-=1){const b=r[f];if(!b.disabled){r.splice(f,1),y=b;break}}y&&e.onDisplayValuesChange(r,{type:"remove",values:[y]})}for(var d=arguments.length,i=new Array(d>1?d-1:0),s=1;s<d;s++)i[s-1]=arguments[s];a.value&&F.value&&F.value.onKeydown(n,...i),(o=e.onKeydown)===null||o===void 0||o.call(e,n,...i)},Se=function(n){for(var o=arguments.length,l=new Array(o>1?o-1:0),u=1;u<o;u++)l[u-1]=arguments[u];a.value&&F.value&&F.value.onKeyup(n,...l),e.onKeyup&&e.onKeyup(n,...l)},Ce=n=>{const o=e.displayValues.filter(l=>l!==n);e.onDisplayValuesChange(o,{type:"remove",values:[n]})},j=t.shallowRef(!1),Ve=function(){K(!0),e.disabled||(e.onFocus&&!j.value&&e.onFocus(...arguments),e.showAction&&e.showAction.includes("focus")&&p(!0)),j.value=!0},k=t.ref(!1),Fe=function(){if(k.value||(q.value=!0,K(!1,()=>{j.value=!1,q.value=!1,p(!1)}),e.disabled))return;const n=w.value;n&&(e.mode==="tags"?e.onSearch(n,{source:"submit"}):e.mode==="multiple"&&e.onSearch("",{source:"blur"})),e.onBlur&&e.onBlur(...arguments)},Pe=()=>{k.value=!0},Re=()=>{k.value=!1};t.provide("VCSelectContainerEvent",{focus:Ve,blur:Fe});const v=[];t.onMounted(()=>{v.forEach(n=>clearTimeout(n)),v.splice(0,v.length)}),t.onBeforeUnmount(()=>{v.forEach(n=>clearTimeout(n)),v.splice(0,v.length)});const Oe=function(n){var o,l;const{target:u}=n,d=(o=B.value)===null||o===void 0?void 0:o.getPopupElement();if(d&&d.contains(u)){const y=setTimeout(()=>{var f;const b=v.indexOf(y);b!==-1&&v.splice(b,1),he(),!Q.value&&!d.contains(document.activeElement)&&((f=I.value)===null||f===void 0||f.focus())});v.push(y)}for(var i=arguments.length,s=new Array(i>1?i-1:0),r=1;r<i;r++)s[r-1]=arguments[r];(l=e.onMousedown)===null||l===void 0||l.call(e,n,...s)},_=t.shallowRef(null),xe=()=>{};return t.onMounted(()=>{t.watch(P,()=>{var n;if(P.value){const o=Math.ceil((n=T.value)===null||n===void 0?void 0:n.offsetWidth);_.value!==o&&!Number.isNaN(o)&&(_.value=o)}},{immediate:!0,flush:"post"})}),nn.default([T,B],P,p),an.useProvideBaseSelectProps(rn.toReactive(m.default(m.default({},t.toRefs(e)),{open:a,triggerOpen:P,showSearch:x,multiple:g,toggleOpen:p}))),()=>{const n=m.default(m.default({},e),V),{prefixCls:o,id:l,open:u,defaultOpen:d,mode:i,showSearch:s,searchValue:r,onSearch:y,allowClear:f,clearIcon:b,showArrow:Z,inputIcon:Ie,disabled:z,loading:D,getInputElement:ee,getPopupContainer:Ne,placement:De,animation:Ee,transitionName:Me,dropdownStyle:Te,dropdownClassName:Ae,dropdownMatchSelectWidth:Be,dropdownRender:qe,dropdownAlign:Le,showAction:bn,direction:Ke,tokenSeparators:Sn,tagRender:$e,optionLabelRender:We,onPopupScroll:Cn,onDropdownVisibleChange:Vn,onFocus:Fn,onBlur:Pn,onKeyup:Rn,onKeydown:On,onMousedown:xn,onClear:U,omitDomProps:G,getRawInputElement:ne,displayValues:E,onDisplayValuesChange:je,emptyOptions:ke,activeDescendantId:_e,activeValue:ze,OptionList:Ue}=n,Ge=vn(n,["prefixCls","id","open","defaultOpen","mode","showSearch","searchValue","onSearch","allowClear","clearIcon","showArrow","inputIcon","disabled","loading","getInputElement","getPopupContainer","placement","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","showAction","direction","tokenSeparators","tagRender","optionLabelRender","onPopupScroll","onDropdownVisibleChange","onFocus","onBlur","onKeyup","onKeydown","onMousedown","onClear","omitDomProps","getRawInputElement","displayValues","onDisplayValuesChange","emptyOptions","activeDescendantId","activeValue","OptionList"]),oe=i==="combobox"&&ee&&ee()||null,R=typeof ne=="function"&&ne(),H=m.default({},Ge);let te;R&&(te=S=>{p(S)}),mn.forEach(S=>{delete H[S]}),G==null||G.forEach(S=>{delete H[S]});const ae=Z!==void 0?Z:D||!g.value&&i!=="combobox";let le;ae&&(le=t.createVNode(ce.default,{class:se.default(`${o}-arrow`,{[`${o}-arrow-loading`]:D}),customizeIcon:Ie,customizeIconProps:{loading:D,searchValue:w.value,open:a.value,focused:L.value,showSearch:x.value}},null));let ue;const He=()=>{U==null||U(),je([],{type:"clear",values:E}),W("",!1,!1)};!z&&f&&(E.length||w.value)&&(ue=t.createVNode(ce.default,{class:`${o}-clear`,onMousedown:He,customizeIcon:b},{default:()=>[t.createTextVNode("×")]}));const Je=t.createVNode(Ue,{ref:F},m.default(m.default({},me.customSlots),{option:h.option})),Qe=se.default(o,V.class,{[`${o}-focused`]:L.value,[`${o}-multiple`]:g.value,[`${o}-single`]:!g.value,[`${o}-allow-clear`]:f,[`${o}-show-arrow`]:ae,[`${o}-disabled`]:z,[`${o}-loading`]:D,[`${o}-open`]:a.value,[`${o}-customize-input`]:oe,[`${o}-show-search`]:x.value}),ie=t.createVNode(Ze.default,{ref:B,disabled:z,prefixCls:o,visible:P.value,popupElement:Je,containerWidth:_.value,animation:Ee,transitionName:Me,dropdownStyle:Te,dropdownClassName:Ae,direction:Ke,dropdownMatchSelectWidth:Be,dropdownRender:qe,dropdownAlign:Le,placement:De,getPopupContainer:Ne,empty:ke,getTriggerDOMNode:()=>A.current,onPopupVisibleChange:te,onPopupMouseEnter:xe,onPopupFocusin:Pe,onPopupFocusout:Re},{default:()=>R?ln.isValidElement(R)&&sn.cloneElement(R,{ref:A},!1,!0):t.createVNode(en.default,M.default(M.default({},e),{},{domRef:A,prefixCls:o,inputElement:oe,ref:I,id:l,showSearch:x.value,mode:i,activeDescendantId:_e,tagRender:$e,optionLabelRender:We,values:E,open:a.value,onToggleOpen:p,activeValue:ze,searchValue:w.value,onSearch:W,onSearchSubmit:ge,onRemove:Ce,tokenWithEnter:pe.value}),null)});let J;return R?J=ie:J=t.createVNode("div",M.default(M.default({},H),{},{class:Qe,ref:T,onMousedown:Oe,onKeydown:be,onKeyup:Se}),[L.value&&!a.value&&t.createVNode("span",{style:{width:0,height:0,position:"absolute",overflow:"hidden",opacity:0},"aria-live":"polite"},[`${E.map(S=>{let{label:re,value:Xe}=S;return["number","string"].includes(typeof re)?re:Xe}).join(", ")}`]),ie,le,ue]),J}}});exports.baseSelectPropsWithoutPrivate=fe;exports.default=gn;exports.isMultiple=ve;
;