TreeSelect-pQtnzNfs.js 13 KB

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