MatrixCheckboxes-Bkyhr0Of.js 7.3 KB

1
  1. import{s as N,cb as x,cc as D,aG as O,E as y,G as E,f as d,a4 as T,b4 as A,O as B,z as S,aZ as z,Q as I,y as v,a1 as F,bn as H,X as V,ah as G}from"./index-BPRWoLf4.js";var L=function(k){N(a,k);function a(t){var e=k.call(this,t)||this;return e.mounted=!1,e.toDispose=[],e.state={columns:t.columns||[],rows:t.rows||[],loading:!1},e.toggleItem=e.toggleItem.bind(e),e.reload=e.reload.bind(e),e.initOptions=e.initOptions.bind(e),e.mounted=!0,e}return a.prototype.componentDidMount=function(){var t=this.props,e=t.formInited,n=t.addHook,r=t.formItem;r&&this.toDispose.push(e||!n?r.addInitHook(this.initOptions):n(this.initOptions,"init"))},a.prototype.componentDidUpdate=function(t){var e=this.props;if(t.columns!==e.columns||t.rows!==e.rows)this.setState({columns:e.columns||[],rows:e.rows||[]});else if(e.formInited&&(e.source!==t.source||t.data!==e.data)){var n=x(t.source,t.data,{ignoreData:!0}),r=x(e.source,e.data,{ignoreData:!0});n.url!==r.url&&D(r.url)&&this.reload()}},a.prototype.componentWillUnmount=function(){this.mounted=!1,this.toDispose.forEach(function(t){return t()}),this.toDispose=[]},a.prototype.doAction=function(t,e,n){var r,o,i=this.props,c=i.resetValue,m=i.onChange,h=i.formStore,g=i.store,s=i.name,l=t==null?void 0:t.actionType;if(l==="clear")m==null||m("");else if(l==="reset"){var p=(o=O((r=h==null?void 0:h.pristine)!==null&&r!==void 0?r:g==null?void 0:g.pristine,s))!==null&&o!==void 0?o:c;m==null||m(p??"")}},a.prototype.initOptions=function(t){return y(this,void 0,void 0,function(){var e,n,r;return E(this,function(o){switch(o.label){case 0:return[4,this.reload()];case 1:return o.sent(),e=this.props,n=e.formItem,r=e.name,n?(n.value&&H(t,r,n.value),[2]):[2]}})})},a.prototype.reload=function(){return y(this,void 0,void 0,function(){var t,e,n,r,o,i,c=this;return E(this,function(m){switch(m.label){case 0:if(t=this.props,e=t.source,n=t.data,r=t.env,o=t.onChange,i=t.translate,!V(e,n)||this.state.loading)return[2];if(!r||!r.fetcher)throw new Error("fetcher is required");return[4,new Promise(function(h,g){if(!c.mounted)return h();c.setState({loading:!0},function(){if(!c.mounted)return h();r.fetcher(e,n).then(function(s){if(!s.ok)throw new Error(s.msg||i("fetchFailed"));if(!c.mounted)return h();c.setState({loading:!1,rows:s.data.rows||[],columns:s.data.columns||[]},function(){e&&e.replaceData;var l=s.data.value;l&&(l=e.replaceData?l:U(l,c.state.columns,c.state.rows),o(l)),h()})}).catch(function(s){return c.setState({error:s,loading:!1},function(){return h()})})})})];case 1:return[2,m.sent()]}})})},a.prototype.toggleItem=function(t,e,n){return y(this,void 0,void 0,function(){var r,o,i,c,m,h,g,s,u,p,l,p,l,p,u,b,C;return E(this,function(f){switch(f.label){case 0:if(r=this.state,o=r.columns,i=r.rows,c=this.props,m=c.multiple,h=c.singleSelectMode,g=c.dispatchEvent,c.data,s=this.props.value||M(o,i),m)s[e][n]=v(v({},s[e][n]),{checked:t});else if(h==="row")for(u=0,p=o.length;u<p;u++)s[u][n]=v(v({},s[u][n]),{checked:e===u?t:!t});else if(h==="column")for(l=0,p=i.length;l<p;l++)s[e][l]=v(v({},s[e][l]),{checked:n===l?t:!t});else for(l=0,p=i.length;l<p;l++)for(u=0,b=o.length;u<b;u++)s[u][l]=v(v({},s[u][l]),{checked:e===u&&n===l?t:!t});return[4,g("change",G(this.props,{value:s.concat()}))];case 1:return C=f.sent(),C!=null&&C.prevented?[2]:(this.props.onChange(s.concat()),[2])}})})},a.prototype.isColumChecked=function(t,e){var n=t[e];return n?n.some(function(r){return r&&r.checked}):!1},a.prototype.isColumnPartialChecked=function(t,e){var n=t[e];if(!n||n.length==1)return!1;var r=n[0].checked;return n.some(function(o){return o.checked!==r})&&!n.every(function(o){return o.checked===r})},a.prototype.toggleColumnCheckAll=function(t,e,n){return y(this,void 0,void 0,function(){var r,o;return E(this,function(i){switch(i.label){case 0:r=e[n],o=0,i.label=1;case 1:return o<r.length?[4,this.toggleItem(t,n,o)]:[3,4];case 2:i.sent(),i.label=3;case 3:return o++,[3,1];case 4:return[2]}})})},a.prototype.isRowChecked=function(t,e){return t&&t.some(function(n){return n[e]&&n[e].checked})},a.prototype.isRowPartialChecked=function(t,e){if(!t||t.length==1)return!1;var n=t[0][e].checked;return t.some(function(r){return n!==r[e].checked})&&!t.every(function(r){return r.checked})},a.prototype.toggleRowCheckAll=function(t,e,n){return y(this,void 0,void 0,function(){var r;return E(this,function(o){switch(o.label){case 0:r=0,o.label=1;case 1:return r<e.length?[4,this.toggleItem(t,r,n)]:[3,4];case 2:o.sent(),o.label=3;case 3:return r++,[3,1];case 4:return[2]}})})},a.prototype.renderInput=function(t){var e=this;t===void 0&&(t=!1);var n=this.state,r=n.columns,o=n.rows,i=this.props,c=i.rowLabel,m=i.disabled,h=i.classnames,g=i.multiple,s=i.textAlign,l=i.xCheckAll,p=i.yCheckAll,u=i.testIdBuilder,b=this.props.value||M(r,o);return d.createElement("div",{className:h("Table m-b-none",{"is-mobile":T()})},d.createElement("div",{className:h("Table-content")},d.createElement("table",{className:h("Table-table")},d.createElement("thead",null,d.createElement("tr",null,d.createElement("th",null,c),r.map(function(C,f){return d.createElement("th",{key:f,className:"text-"+(s||g?"left":"center")},g&&p?d.createElement(A,{type:"checkbox",disabled:t||m,checked:e.isColumChecked(b,f),partial:e.isColumnPartialChecked(b,f),onChange:function(_){return e.toggleColumnCheckAll(_,b,f)}}):null,C.label)}))),d.createElement("tbody",null,o.map(function(C,f){return d.createElement("tr",{key:f},d.createElement("td",null,g&&l?d.createElement(A,{type:"checkbox",disabled:t||m,checked:e.isRowChecked(b,f),partial:e.isRowPartialChecked(b,f),onChange:function(_){return e.toggleRowCheckAll(_,b,f)},testIdBuilder:u==null?void 0:u.getChild(f)}):null,C.label,C.description||C.desc?d.createElement("span",{className:"m-l-xs text-muted text-xs"},C.description||C.desc):null),r.map(function(_,w){return d.createElement("td",{key:w,className:"text-"+(s||g?"left":"center")},d.createElement(A,{type:g?"checkbox":"radio",disabled:t||m,checked:!!(b[w]&&b[w][f]&&b[w][f].checked),onChange:function(R){return e.toggleItem(R,w,f)},testIdBuilder:u==null?void 0:u.getChild("".concat(w,"-").concat(f))}))}))})))))},a.prototype.renderStatic=function(t){t===void 0&&(t="-");var e=this.props,n=e.className;e.render;var r=e.classnames,o=this.state.error;return d.createElement("div",{key:"input",className:r("MatrixControl",n||"")},o?t:this.renderInput(!0))},a.prototype.render=function(){var t=this.props,e=t.className;t.render;var n=t.classnames,r=t.loadingConfig,o=this.state,i=o.error,c=o.loading;return d.createElement("div",{key:"input",className:n("MatrixControl",e||"")},i?d.createElement("div",{className:n("MatrixControl-error Alert Alert--danger")},String(i)):this.renderInput(),d.createElement(B,{size:"lg",overlay:!0,key:"info",show:c,loadingConfig:r}))},a.defaultProps={columns:[],rows:[],multiple:!0,singleSelectMode:"column"},S([z(),I("design:type",Function),I("design:paramtypes",[]),I("design:returntype",void 0)],a.prototype,"render",null),a}(d.Component);function M(k,a){return Array.isArray(k)||(k=[]),Array.isArray(a)||(a=[]),k.map(function(t){return a.map(function(e){return v(v(v({},e),t),{checked:!1})})})}function U(k,a,t){return k.map(function(e,n){return e.map(function(r,o){return v(v(v({},a[n]),t[o]),r)})})}var j=function(k){N(a,k);function a(){return k!==null&&k.apply(this,arguments)||this}return a=S([F({type:"matrix-checkboxes",strictMode:!1,sizeMutable:!1})],a),a}(L);export{j as MatrixRenderer,L as default};