TreeSelect-CgjJtQTu.js 14 KB

1
  1. import{s as G,f as m,ap as _e,bf as H,X as O,c0 as M,ah as j,aG as we,y as f,bh as $,E as N,G as B,bw as Pe,bX as xe,a3 as I,c9 as Se,c7 as Re,bM as z,ad as De,bt as Le,O as je,aa as Ne,ab as Be,bu as ke,ae as Ke,z as v,P as g,Q as s,aZ as Ue,bm as He,bE as W}from"./index-BPRWoLf4.js";var Me=function(F){G(o,F);function o(e){var t=F.call(this,e)||this;return t.container=m.createRef(),t.input=m.createRef(),t.cache={},t.targetRef=function(n){return t.target=n?_e.findDOMNode(n):null},t.sourceLoaded=!1,t.state={inputValue:"",tempValue:"",isOpened:!1},t.open=t.open.bind(t),t.close=t.close.bind(t),t.handleChange=t.handleChange.bind(t),t.handleTempChange=t.handleTempChange.bind(t),t.handleConfirm=t.handleConfirm.bind(t),t.clearValue=t.clearValue.bind(t),t.handleFocus=t.handleFocus.bind(t),t.handleBlur=t.handleBlur.bind(t),t.handleKeyPress=t.handleKeyPress.bind(t),t.handleInputChange=H(t.handleInputChange.bind(t),150,{trailing:!0,leading:!1}),t.handleInputKeyDown=t.handleInputKeyDown.bind(t),t.loadRemote=H(t.loadRemote.bind(t),250,{trailing:!0,leading:!1}),t}return o.prototype.componentDidMount=function(){this.loadRemote("")},o.prototype.componentWillUnmount=function(){this.sourceLoaded=!1},o.prototype.open=function(e){this.props.disabled||this.setState({isOpened:!0},e)},o.prototype.close=function(){var e=this;this.setState({isOpened:!1,inputValue:this.props.multiple?this.state.inputValue:""},function(){return e.loadRemote(e.state.inputValue)})},o.prototype.resolveOptions=function(){var e=this.props,t=e.options,n=e.searchable,a=e.autoComplete;return!O(a)&&n&&this.state.inputValue?this.filterOptions(t,this.state.inputValue):t},o.prototype.resolveOption=function(e,t){var n=this;return M(e,function(a){var i=n.props.valueField||"value",r=W(a,i)?a[i]:"";return r===t})},o.prototype.handleFocus=function(e){var t=this.props,n=t.dispatchEvent,a=t.value,i=this.resolveOptions(),r=this.resolveOption(i,a);n("focus",j(this.props,{value:a,item:r,items:i}))},o.prototype.handleBlur=function(e){var t=this.props,n=t.dispatchEvent,a=t.value,i=this.resolveOptions(),r=this.resolveOption(i,a);n("blur",j(this.props,{value:a,item:r,items:i}))},o.prototype.handleKeyPress=function(e){e.key===" "&&e.shiftKey&&(this.handleOutClick(e),e.preventDefault())},o.prototype.validate=function(){var e=this.props,t=e.value,n=e.minLength,a=e.maxLength,i=e.delimiter,r=Array.isArray(t)?t:(t?String(t):"").split(i||",");if(n&&r.length<n)return"已选择数量低于设定的最小个数".concat(n,",请选择更多的选项。");if(a&&r.length>a)return"已选择数量超出设定的最大个数".concat(a,",请取消选择超出的选项。")},o.prototype.removeItem=function(e,t){var n=this.props,a=n.selectedOptions,i=n.joinValues,r=n.extractValue,l=n.delimiter,d=n.valueField,u=n.onChange,p=n.disabled;if(t&&t.stopPropagation(),!p){var h=a.concat();h.splice(e,1);var c=h;i?c=h.map(function(y){return y[d||"value"]}).join(l||","):r&&(c=h.map(function(y){return y[d||"value"]})),u(c)}},o.prototype.handleChange=function(e){var t=this,n=this.props.multiple;n||this.close(),this.setState({inputValue:""},function(){return t.resultChangeEvent(e)})},o.prototype.handleTempChange=function(e){this.setState({tempValue:e})},o.prototype.handleConfirm=function(){var e=this;this.close(),this.setState({inputValue:""},function(){return e.resultChangeEvent(e.state.tempValue)})},o.prototype.handleInputChange=function(e){var t=this,n=this.props,a=n.autoComplete,i=n.data;this.setState({inputValue:e},O(a,i)?function(){return t.loadRemote(t.state.inputValue)}:void 0)},o.prototype.handleInputKeyDown=function(e){var t=this.state.inputValue,n=this.props,a=n.multiple,i=n.selectedOptions;e.key==="Backspace"&&!t&&i.length&&a&&this.removeItem(i.length-1)},o.prototype.resetValue=function(){var e,t,n=this.props,a=n.onChange,i=n.resetValue,r=n.formStore,l=n.store,d=n.name,u=(t=we((e=r==null?void 0:r.pristine)!==null&&e!==void 0?e:l==null?void 0:l.pristine,d))!==null&&t!==void 0?t:i;a(u)},o.prototype.clearValue=function(){var e=this.props,t=e.onChange,n=e.resetValue;t(typeof n>"u"?"":n)},o.prototype.filterOptions=function(e,t){var n=this,a=this.props,i=a.labelField,r=a.valueField;return e.map(function(l){if(l=f({},l),l.visible=!!$([l],t,{keys:[i||"label",r||"value"],threshold:$.rankings.CONTAINS}).length,!l.visible&&l.children){l.children=n.filterOptions(l.children,t);var d=l.children.filter(function(u){return u.visible}).length;l.visible=!!d}return l.visible&&(l.collapsed=!1),l})},o.prototype.loadRemote=function(e){return N(this,void 0,void 0,function(){var t,n,a,i,r,l,d,p,h,u,p,h;return B(this,function(c){switch(c.label){case 0:if(t=this.props,n=t.autoComplete,a=t.env,i=t.data,r=t.setOptions,l=t.setLoading,d=t.source,!O(n,i)||!e&&O(d)&&!this.sourceLoaded)return this.sourceLoaded=!0,[2];if(!a||!a.fetcher)throw new Error("fetcher is required");if(this.cache[e]||~e.indexOf("'"))return p=this.cache[e]||[],h=this.mergeOptions(p),r(h),[2,Promise.resolve({options:h})];l(!0),c.label=1;case 1:return c.trys.push([1,,3,4]),[4,a.fetcher(n,f(f({},i),{term:e,value:e}))];case 2:return u=c.sent(),p=u.data&&u.data.options||u.data||[],this.cache[e]=p,h=this.mergeOptions(p),r(h),[2,{options:h}];case 3:return l(!1),[7];case 4:return[2]}})})},o.prototype.mergeOptions=function(e){var t=this.props.selectedOptions,n=Pe(e).concat();return Array.isArray(t)&&t.length&&t.forEach(function(a){M(n,function(i){return i.value==a.value})||n.push(f({},a))}),n},o.prototype.reload=function(){var e=this.props.reloadOptions;e&&e()},o.prototype.handleOutClick=function(e){e.defaultPrevented||this.setState({isOpened:!0})},o.prototype.handleResultChange=function(e){var t=this.props,n=t.joinValues,a=t.extractValue,i=t.delimiter,r=t.valueField,l=t.multiple,d=Array.isArray(e)?e.concat():[];if(!l&&!d.length){this.resultChangeEvent("");return}(n||a)&&(d=e.map(function(u){return u[r||"value"]})),n&&(d=d.join(i||",")),this.resultChangeEvent(d)},o.prototype.doAction=function(e,t,n){var a,i,r,l,d;e.actionType==="clear"?this.clearValue():e.actionType==="reset"?this.resetValue():e.actionType==="add"?this.addItemFromAction((a=e.args)===null||a===void 0?void 0:a.item,(i=e.args)===null||i===void 0?void 0:i.parentValue):e.actionType==="edit"?this.editItemFromAction((r=e.args)===null||r===void 0?void 0:r.item,(l=e.args)===null||l===void 0?void 0:l.originValue):e.actionType==="delete"?this.deleteItemFromAction((d=e.args)===null||d===void 0?void 0:d.value):e.actionType==="reload"&&this.reload()},o.prototype.addItemFromAction=function(e,t){var n=this.props,a=n.onAdd,i=n.options,r=n.valueField,l=xe(i,function(d){var u=r||"value",p=W(d,u)?d[u]:"";return p===t})||[];a&&a(l.concat(0),e,!0)},o.prototype.editItemFromAction=function(e,t){var n=this.props,a=n.onEdit,i=n.options,r=this.resolveOption(i,t);a&&r&&a(f(f({},e),{originValue:t}),r,!0)},o.prototype.deleteItemFromAction=function(e){var t=this.props,n=t.onDelete,a=t.options,i=this.resolveOption(a,e);n&&i&&n(i)},o.prototype.resultChangeEvent=function(e){return N(this,void 0,void 0,function(){var t,n,a,i,r,l;return B(this,function(d){switch(d.label){case 0:return t=this.props,n=t.onChange,a=t.dispatchEvent,i=this.resolveOptions(),r=this.resolveOption(i,e),[4,a("change",j(this.props,{value:e,item:r,items:this.resolveOptions()}))];case 1:return l=d.sent(),l!=null&&l.prevented?[2]:(n&&n(e),[2])}})})},o.prototype.handleNodeClick=function(e){return N(this,void 0,void 0,function(){var t,n,a,i;return B(this,function(r){switch(r.label){case 0:return t=this.props,n=t.dispatchEvent,a=t.data,[4,n("itemClick",I(a,{item:e}))];case 1:return i=r.sent(),i!=null&&i.prevented?[2]:[2]}})})},o.prototype.renderOptionItem=function(e,t){var n=this.props,a=n.menuTpl,i=n.render,r=n.data;return i("option/".concat(t.index),a,{data:I(I(r,f({},t)),e)})},o.prototype.renderItem=function(e){var t=this.props,n=t.labelField,a=t.options,i=t.hideNodePathLabel;if(i)return e[n||"label"];var r=Se(a,e,!0);return"".concat(r?r.map(function(l){return"".concat(l[n||"label"])}).join(" / "):e[n||"label"])},o.prototype.domRef=function(e){this.treeRef=e},o.prototype.renderOuter=function(){var e=this.props,t=e.value,n=e.enableNodePath,a=e.pathSeparator,i=a===void 0?"/":a,r=e.disabled,l=e.joinValues,d=e.extractValue,u=e.delimiter;e.placeholder;var p=e.options,h=e.multiple,c=e.valueField,y=e.initiallyOpen,T=e.unfoldedLevel,E=e.withChildren,b=e.rootLabel,w=e.cascade,P=e.rootValue,x=e.showIcon,V=e.showRadio;e.popOverContainer;var S=e.onlyChildren,C=e.onlyLeaf,R=e.classPrefix,D=e.optionsPlaceholder,L=e.searchable,A=e.autoComplete,_=e.maxLength,X=e.minLength,q=e.labelField,Q=e.deferField,Z=e.nodePath,J=e.onAdd,Y=e.creatable,ee=e.createTip,te=e.addControls,ne=e.onEdit,ae=e.editable,ie=e.editTip,oe=e.editControls,re=e.removable,le=e.removeTip,se=e.onDelete,de=e.rootCreatable,ue=e.rootCreateTip,k=e.translate,pe=e.deferLoad,he=e.expandTreeOptions,ce=e.selfDisabledAffectChildren,me=e.showOutline,ve=e.autoCheckChildren,fe=e.autoCancelParent,ge=e.hideRoot,ye=e.virtualThreshold,K=e.itemHeight,Ce=e.menuTpl,be=e.enableDefaultIcon,U=e.mobileUI,Oe=e.testIdBuilder,Fe=e.nodeBehavior,Te=e.itemActions,Ve=e.classnames,Ie=e.id,Ee=e.themeCss,Ae=!O(A)&&L&&this.state.inputValue?this.filterOptions(p,this.state.inputValue):p;return m.createElement(Re,{classPrefix:R,onRef:this.domRef,onlyChildren:S,onHandleNodeClick:this.handleNodeClick,onlyLeaf:C,labelField:q,valueField:c,deferField:Q,disabled:r,onChange:U?this.handleTempChange:this.handleChange,joinValues:l,extractValue:d,delimiter:u,placeholder:k(D),options:Ae,highlightTxt:this.state.inputValue,multiple:h,initiallyOpen:y,unfoldedLevel:T,withChildren:E,autoCheckChildren:ve,autoCancelParent:fe,rootLabel:k(b),rootValue:P,showIcon:x,showRadio:V,showOutline:me,cascade:w,foldedField:"collapsed",hideRoot:ge,value:t||"",nodePath:Z,enableNodePath:n,pathSeparator:i,maxLength:_,minLength:X,onAdd:J,creatable:Y,createTip:ee,rootCreatable:de,rootCreateTip:ue,onEdit:ne,editable:ae,editTip:ie,removable:re,removeTip:le,onDelete:se,bultinCUD:!te&&!oe,onDeferLoad:pe,onExpandTree:he,selfDisabledAffectChildren:ce,virtualThreshold:ye,itemHeight:z(K)>0?z(K):void 0,itemRender:Ce?this.renderOptionItem:void 0,enableDefaultIcon:be,mobileUI:U,nodeBehavior:Fe,itemActionsRender:Te?this.renderItemActions:void 0,actionClassName:Ve(De(f(f({},this.props),{name:"actionControlClassName",id:Ie,themeCss:Ee}))),testIdBuilder:Oe})},o.prototype.renderItemActions=function(e,t){var n=this.props,a=n.itemActions,i=n.data,r=n.render;return r("action/".concat(t.index),a||"",{data:I(I(i,f({},t)),e)})},o.prototype.render=function(){var e=this,t=this.props,n=t.className;t.style;var a=t.disabled,i=t.inline,r=t.loading,l=t.multiple;t.value;var d=t.clearable,u=t.classPrefix,p=t.classnames,h=t.searchable,c=t.autoComplete,y=t.selectedOptions,T=t.placeholder,E=t.popOverContainer,b=t.mobileUI,w=t.maxTagCount,P=t.overflowTagPopover,x=t.translate,V=t.env,S=t.loadingConfig,C=t.testIdBuilder,R=t.wrapperCustomStyle,D=t.id,L=t.themeCss,A=this.state.isOpened,_=l?y:y.length?this.renderItem(y[0]):"";return m.createElement(m.Fragment,null,m.createElement("div",f({ref:this.container,className:p("TreeSelectControl",n)},C==null?void 0:C.getTestId()),m.createElement(Le,{popOverContainer:E||V.getModalContainer,maxTagCount:w,overflowTagPopover:P,disabled:a,ref:this.targetRef,placeholder:x(T??"placeholder.empty"),inputPlaceholder:"",className:p("TreeSelect",{"TreeSelect--inline":i,"TreeSelect--single":!l,"TreeSelect--multi":l,"TreeSelect--searchable":h||O(c),"is-opened":this.state.isOpened,"is-disabled":a}),result:_,onResultClick:this.handleOutClick,value:this.state.inputValue,onChange:this.handleInputChange,onResultChange:this.handleResultChange,itemRender:this.renderItem,onKeyPress:this.handleKeyPress,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleInputKeyDown,clearable:d,allowInput:!b&&(h||O(c))&&(l||!_),hasDropDownArrow:!0,readOnly:b,mobileUI:b,testIdBuilder:C==null?void 0:C.getChild("result-box")},r?m.createElement(je,{loadingConfig:S,size:"sm"}):void 0),!b&&A?m.createElement(Ne,{container:E||function(){return e.container.current},target:function(){return e.target},show:!0},m.createElement(Be,{classPrefix:u,className:"".concat(u,"TreeSelect-popover"),style:{minWidth:this.target?this.target.offsetWidth:void 0},onHide:this.close,overlay:!0},this.renderOuter())):null,b?m.createElement(ke,{container:V.getModalContainer,className:p("".concat(u,"TreeSelect-popup")),isShow:A,onHide:this.close,showConfirm:!0,onConfirm:this.handleConfirm},this.renderOuter()):null),m.createElement(Ke,f({},this.props,{config:{wrapperCustomStyle:R,id:D,themeCss:L,classNames:[{key:"actionControlClassName"}]},env:V})))},o.defaultProps={hideRoot:!0,placeholder:"Select.placeholder",optionsPlaceholder:"placeholder.noData",multiple:!1,clearable:!0,rootLabel:"Tree.root",rootValue:"",showIcon:!0,joinValues:!0,extractValue:!1,delimiter:",",resetValue:"",hideNodePathLabel:!1,enableNodePath:!1,pathSeparator:"/",selfDisabledAffectChildren:!0},v([g,s("design:type",Function),s("design:paramtypes",[Object]),s("design:returntype",void 0)],o.prototype,"handleOutClick",null),v([g,s("design:type",Function),s("design:paramtypes",[Array]),s("design:returntype",void 0)],o.prototype,"handleResultChange",null),v([g,s("design:type",Function),s("design:paramtypes",[Object,Object]),s("design:returntype",void 0)],o.prototype,"addItemFromAction",null),v([g,s("design:type",Function),s("design:paramtypes",[Object,Object]),s("design:returntype",void 0)],o.prototype,"editItemFromAction",null),v([g,s("design:type",Function),s("design:paramtypes",[Object]),s("design:returntype",void 0)],o.prototype,"deleteItemFromAction",null),v([g,s("design:type",Function),s("design:paramtypes",[Object]),s("design:returntype",Promise)],o.prototype,"resultChangeEvent",null),v([g,s("design:type",Function),s("design:paramtypes",[Object]),s("design:returntype",Promise)],o.prototype,"handleNodeClick",null),v([g,s("design:type",Function),s("design:paramtypes",[Object,Object]),s("design:returntype",void 0)],o.prototype,"renderOptionItem",null),v([g,s("design:type",Function),s("design:paramtypes",[Object]),s("design:returntype",void 0)],o.prototype,"renderItem",null),v([g,s("design:type",Function),s("design:paramtypes",[Object]),s("design:returntype",void 0)],o.prototype,"domRef",null),v([g,s("design:type",Function),s("design:paramtypes",[Object,Object]),s("design:returntype",void 0)],o.prototype,"renderItemActions",null),v([Ue(),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],o.prototype,"render",null),o}(m.Component),ze=function(F){G(o,F);function o(){return F!==null&&F.apply(this,arguments)||this}return o=v([He({type:"tree-select"})],o),o}(Me);export{ze as TreeSelectControlRenderer,Me as default};