ChainedSelect-OY-rt2XA.js 6.6 KB

1
  1. import{s as R,aG as D,X as H,y as C,E as P,G as w,aH as T,aI as G,aB as L,f as S,t as Q,ag as E,aE as B,ad as V,O as X,ae as Z,z,aZ as $,Q as O,bm as q,aS as J,ah as U}from"./index-BPRWoLf4.js";var K=function(N){R(c,N);function c(t){var e=N.call(this,t)||this;return e.state={stack:[]},e.handleChange=e.handleChange.bind(e),e.loadMore=e.loadMore.bind(e),e}return c.prototype.componentDidMount=function(){var t,e,i=this.props.formInited;i||!this.props.addHook?this.loadMore():(e=(t=this.props).addHook)===null||e===void 0||e.call(t,this.loadMore,"init")},c.prototype.componentDidUpdate=function(t){var e=this.props;t.options!==e.options?this.setState({stack:[]}):e.formInited&&e.value!==t.value&&this.loadMore()},c.prototype.doAction=function(t,e,i){var o,h,u=this.props,f=u.resetValue,d=u.onChange,p=u.formStore,l=u.store,r=u.name,v=t==null?void 0:t.actionType;if(v==="clear")d("");else if(v==="reset"){var n=(h=D((o=p==null?void 0:p.pristine)!==null&&o!==void 0?o:l==null?void 0:l.pristine,r))!==null&&h!==void 0?h:f;d(n??"")}},c.prototype.array2value=function(t,e){e===void 0&&(e=!1);var i=this.props,o=i.delimiter,h=i.joinValues,u=i.extractValue,f=i.valueField;return e?h?t.join(o||","):t:h?t.join(o||","):u?t.map(function(d){return d[f||"value"]||d}):t},c.prototype.loadMore=function(){for(var t=this,e=this.props,i=e.value,o=e.delimiter,h=e.onChange,u=e.joinValues,f=e.extractValue,d=e.valueField,p=e.source,l=e.data,r=e.env,v=e.dispatchEvent,n=Array.isArray(i)?i.concat():i&&typeof i=="string"?i.split(o||","):[],a=0,k=this.state.stack.length;a<k&&n[a]&&this.state.stack[a].parentId==(u||f?n[a]:n[a][d||"value"]);)a++;if(!(!n[a]||!r||!H(p,l))){var b=u||f?n[a]:n[a][d||"value"],m=this.state.stack.concat();m.splice(a,m.length-a),m.push({parentId:b,loading:!0,options:[]}),this.setState({stack:m},function(){r.fetcher(p,C(C({},l),{value:n,level:a+1,parentId:b,parent:n[a]})).then(function(s){return P(t,void 0,void 0,function(){var _,g,y,I,A,x,M,j;return w(this,function(F){switch(F.label){case 0:return _=this.state.stack.concat(),g=s.data?s.data[d||"value"]:void 0,y=((x=s==null?void 0:s.data)===null||x===void 0?void 0:x.options)||((M=s==null?void 0:s.data)===null||M===void 0?void 0:M.items)||((j=s==null?void 0:s.data)===null||j===void 0?void 0:j.rows)||s.data||[],_.splice(a,_.length-a),typeof g<"u"?(n.splice(a+1,i.length-a-1),n.push(g),I=this.array2value(n,!0),[4,v("change",U(this.props,{value:I}))]):[3,2];case 1:if(A=F.sent(),A!=null&&A.prevented)return[2];h(I),F.label=2;case 2:return _.push({options:y,parentId:b,loading:!1,visible:Array.isArray(y)&&!J(y)}),this.setState({stack:_},this.loadMore),[2]}})})}).catch(function(s){!(p!=null&&p.silent)&&r.notify("error",s.message)})})}},c.prototype.handleChange=function(t,e){return P(this,void 0,void 0,function(){var i,o,h,u,f,d,p,l,r,v,n;return w(this,function(a){switch(a.label){case 0:return i=this.props,o=i.value,h=i.delimiter,u=i.onChange,f=i.joinValues,i.extractValue,d=i.dispatchEvent,p=i.valueField,i.data,l=Array.isArray(o)?o.concat():o&&typeof o=="string"?o.split(h||","):[],l.splice(t,l.length-t),r=f?e[p||"value"]:e,r!==void 0&&l.push(r),v=this.array2value(l),[4,d("change",U(this.props,{value:v}))];case 1:return n=a.sent(),n!=null&&n.prevented?[2]:(u(v),[2])}})})},c.prototype.reload=function(){var t=this.props.reloadOptions;t&&t()},c.prototype.renderStatic=function(t){t===void 0&&(t="-");var e=this.props,i=e.options,o=i===void 0?[]:i,h=e.labelField,u=e.valueField,f=e.classPrefix,d=e.classnames,p=e.className,l=e.value,r=e.delimiter,v=T([{options:o,visible:!0}],G(this.state.stack||[]),!1),n=Array.isArray(l)?l.concat():l&&typeof l=="string"?l.split(r||","):[];return(n==null?void 0:n.length)>0&&(t=n.map(function(a,k){var b,m=v[k]||{},s=m.options,_=m.visible;if(_===!1)return null;if(!s||!s.length)return a;var g=L(s,function(y){return a===y[u||"value"]})||{};return(b=g[h||"label"])!==null&&b!==void 0?b:a}).filter(function(a){return a!=null}).join(" > ")),S.createElement("div",{className:d("".concat(f,"SelectStaticControl"),p)},t)},c.prototype.render=function(){var t=this,e=this.props,i=e.options,o=e.classPrefix,h=e.className,u=e.style;e.inline;var f=e.loading,d=e.value,p=e.delimiter;e.joinValues,e.extractValue,e.multiple;var l=e.mobileUI,r=e.env,v=e.testIdBuilder,n=e.popoverClassName,a=Q(e,["options","classPrefix","className","style","inline","loading","value","delimiter","joinValues","extractValue","multiple","mobileUI","env","testIdBuilder","popoverClassName"]),k=Array.isArray(d)?d.concat():d&&typeof d=="string"?d.split(p||","):[],b=this.props,m=b.themeCss,s=b.id,_=this.state.stack.find(function(g){return g.loading});return S.createElement("div",{className:E("".concat(o,"ChainedSelectControl"),h)},S.createElement(B,C({},a,{mobileUI:l,popOverContainer:l?r==null?void 0:r.getModalContainer:a.popOverContainer||(r==null?void 0:r.getModalContainer),className:E(V(C(C({},this.props),{name:"chainedSelectControlClassName",id:s,themeCss:m}))),popoverClassName:E(n,V(C(C({},this.props),{name:"chainedSelectPopoverClassName",id:s,themeCss:m}))),controlStyle:u,classPrefix:o,key:"base",testIdBuilder:v==null?void 0:v.getChild("base"),options:Array.isArray(i)?i:[],value:k[0],onChange:this.handleChange.bind(this,0),loading:f,inline:!0})),this.state.stack.map(function(g,y){var I=g.options,A=g.loading,x=g.visible;return x===!1||A?null:S.createElement(B,C({},a,{mobileUI:l,popOverContainer:l?r.getModalContainer:a.popOverContainer||(r==null?void 0:r.getModalContainer),classPrefix:o,key:"x-".concat(y+1),testIdBuilder:v==null?void 0:v.getChild("x-".concat(y+1)),options:Array.isArray(I)?I:[],value:k[y+1],onChange:t.handleChange.bind(t,y+1),inline:!0,controlStyle:u,className:E(V(C(C({},t.props),{name:"chainedSelectControlClassName",id:s,themeCss:m}))),popoverClassName:E(n,V(C(C({},t.props),{name:"chainedSelectPopoverClassName",id:s,themeCss:m})))}))}),_&&S.createElement(X,{size:"sm",className:E("".concat(o,"ChainedSelectControl-spinner"))}),S.createElement(Z,C({},this.props,{config:{themeCss:m,classNames:[{key:"chainedSelectControlClassName",weights:{focused:{suf:".is-opened:not(.is-mobile)"},disabled:{suf:".is-disabled"}}},{key:"chainedSelectPopoverClassName",weights:{default:{suf:" .".concat(o,"Select-option")},hover:{suf:" .".concat(o,"Select-option.is-highlight")},focused:{inner:".".concat(o,"Select-option.is-active")}}}],id:s},env:r})))},c.defaultProps={clearable:!1,searchable:!1,multiple:!0},z([$(),O("design:type",Function),O("design:paramtypes",[]),O("design:returntype",void 0)],c.prototype,"render",null),c}(S.Component),Y=function(N){R(c,N);function c(){return N!==null&&N.apply(this,arguments)||this}return c=z([q({type:"chained-select",sizeMutable:!1})],c),c}(K);export{Y as ChainedSelectControlRenderer,K as default};