Cards-LZWTRC3J.js 15 KB

1
  1. import{s as j,ai as B,w,al as R,v as Y,a3 as q,aZ as L,aA as K,y as f,ap as Z,a_ as J,f as u,L as C,K as P,k as Q,a7 as ee,a$ as te,ad as H,b0 as re,O as ae,ae as ne,E as A,G as N,T as oe,z as se,D as ie,b1 as le,Q as de,aL as G}from"./index-DT8qTvyx.js";var ce=function(v){j(i,v);function i(t){var e=v.call(this,t)||this;e.handleAction=e.handleAction.bind(e),e.handleCheck=e.handleCheck.bind(e),e.handleCheckAll=e.handleCheckAll.bind(e),e.handleQuickChange=e.handleQuickChange.bind(e),e.handleSave=e.handleSave.bind(e),e.handleSaveOrder=e.handleSaveOrder.bind(e),e.reset=e.reset.bind(e),e.dragTipRef=e.dragTipRef.bind(e),e.bodyRef=e.bodyRef.bind(e),e.renderToolbar=e.renderToolbar.bind(e);var r=t.store,a=t.selectable,n=t.draggable,s=t.orderBy,o=t.orderDir,d=t.multiple,l=t.hideCheckToggler,c=t.itemCheckableOn,p=t.itemDraggableOn;return r.update({selectable:a,draggable:n,orderBy:s,orderDir:o,multiple:d,hideCheckToggler:l,itemCheckableOn:c,itemDraggableOn:p}),i.syncItems(r,e.props)&&e.syncSelected(),e}return i.syncItems=function(t,e,r){var a=e.source,n=B(e,function(c){return c.items}),s=[],o=!1;if(Array.isArray(n)&&(!r||B(r,function(c){return c.items})!==n))s=n,o=!0;else if(typeof a=="string"){var d=w(a,e.data,"| raw"),l=r?w(a,r.data,"| raw"):null;l===d?o=!1:(s=Array.isArray(d)?d:[],o=!0)}return o&&t.initItems(s),Array.isArray(e.selected)&&t.updateSelected(e.selected,e.valueField),o},i.prototype.componentDidUpdate=function(t){var e=this.props,r=e.store;R(["selectable","draggable","orderBy","orderDir","multiple","hideCheckToggler","itemCheckableOn","itemDraggableOn"],t,e)&&r.update({selectable:e.selectable,draggable:e.draggable,orderBy:e.orderBy,orderDir:e.orderDir,multiple:e.multiple,hideCheckToggler:e.hideCheckToggler,itemCheckableOn:e.itemCheckableOn,itemDraggableOn:e.itemDraggableOn}),R(["source","value","items"],t,e)||!e.value&&!e.items&&(e.data!==t.data||typeof e.source=="string"&&Y(e.source))?i.syncItems(r,e,t)&&this.syncSelected():t.selected!==e.selected&&r.updateSelected(e.selected||[],e.valueField)},i.prototype.bodyRef=function(t){this.body=t},i.prototype.handleAction=function(t,e,r){var a=this.props.onAction;a(t,e,r)},i.prototype.handleCheck=function(t){t.toggle(),this.syncSelected()},i.prototype.handleCheckAll=function(){var t=this.props.store;t.toggleAll(),this.syncSelected()},i.prototype.handleSelectAll=function(){var t=this.props.store;t.selectAll(),this.syncSelected()},i.prototype.handleClearAll=function(){var t=this.props.store;t.clearAll(),this.syncSelected()},i.prototype.syncSelected=function(){var t=this.props,e=t.store,r=t.onSelect,a=t.dispatchEvent,n=e.selectedItems.map(function(o){return o.data}),s=e.unSelectedItems.map(function(o){return o.data});a("selected",q(e.data,{selectItems:n,unSelectItems:s})),r&&r(n,s)},i.prototype.handleQuickChange=function(t,e,r,a,n){if(t.change(e,a),!(!r||a)){if(r&&r.api){this.props.onAction(null,{actionType:"ajax",api:r.api,reload:n==null?void 0:n.reload},t.locals);return}var s=this.props,o=s.onSave,d=s.primaryField;o&&o(t.data,L(t.data,t.pristine,["id",d]),t.index,void 0,t.pristine,n)}},i.prototype.handleSave=function(){var t=this.props,e=t.store,r=t.onSave,a=t.primaryField;if(!(!r||!e.modifiedItems.length)){var n=e.modifiedItems.map(function(l){return l.data}),s=e.modifiedItems.map(function(l){return l.index}),o=e.modifiedItems.map(function(l){return L(l.data,l.pristine,["id",a])}),d=e.items.filter(function(l){return!l.modified}).map(function(l){return l.data});r(n,o,s,d,e.modifiedItems.map(function(l){return l.pristine}))}},i.prototype.handleSaveOrder=function(){var t=this.props,e=t.store,r=t.onSaveOrder;!r||!e.movedItems.length||r(e.movedItems.map(function(a){return a.data}),e.items.map(function(a){return a.data}))},i.prototype.reset=function(){var t=this.props.store;t.reset()},i.prototype.bulkUpdate=function(t,e){var r=this.props,a=r.store,n=r.primaryField;if(n&&t.ids){var s=t.ids.split(","),o=a.items.filter(function(l){return K(s,function(c){return c&&c==l.data[n]})}),d=f(f({},t),{ids:void 0});o.forEach(function(l){return l.change(d)})}else if(Array.isArray(e)){var o=a.items.filter(function(c){return~e.indexOf(c.pristine)});o.forEach(function(c){return c.change(t)})}},i.prototype.getSelected=function(){var t=this.props.store;return t.selectedItems.map(function(e){return e.data})},i.prototype.dragTipRef=function(t){!this.dragTip&&t?this.initDragging():this.dragTip&&!t&&this.destroyDragging(),this.dragTip=t},i.prototype.initDragging=function(){if(!this.sortable){var t=this.props.store,e=Z.findDOMNode(this),r=this.props.classPrefix;this.sortable=new J(e.querySelector(".".concat(r,"Cards-body")),{group:"table",animation:150,handle:".".concat(r,"Card-dragBtn"),ghostClass:"is-dragging",onEnd:function(a){if(a.newIndex!==a.oldIndex){var n=a.to;a.oldIndex<n.childNodes.length-1?n.insertBefore(a.item,n.childNodes[a.oldIndex>a.newIndex?a.oldIndex+1:a.oldIndex]):n.appendChild(a.item),t.exchange(a.oldIndex,a.newIndex)}}})}},i.prototype.destroyDragging=function(){this.sortable&&this.sortable.destroy(),this.sortable=void 0},i.prototype.renderActions=function(t){var e=this,r=this.props,a=r.actions,n=r.render,s=r.store,o=r.classnames,d;return a=Array.isArray(a)?a.concat():[],!~this.renderedToolbars.indexOf("check-all")&&(d=this.renderCheckAll())&&a.unshift({type:"button",children:d}),t==="header"&&!~this.renderedToolbars.indexOf("drag-toggler")&&(d=this.renderDragToggler())&&a.unshift({type:"button",children:d}),Array.isArray(a)&&a.length?u.createElement("div",{className:o("Cards-actions")},a.map(function(l,c){return n("action/".concat(c),f({type:"button"},l),{onAction:e.handleAction,key:c,btnDisabled:s.dragging})})):null},i.prototype.renderHeading=function(){var t=this.props,e=t.title,r=t.store,a=t.hideQuickSaveBtn,n=t.classnames,s=t.data;return e||r.modified&&!a||r.moved?u.createElement("div",{className:n("Cards-heading")},r.modified&&!a?u.createElement("span",null,"当前有 ".concat(r.modified," 条记录修改了内容, 但并没有提交。请选择:"),u.createElement("button",{type:"button",className:n("Button Button--xs Button--success m-l-sm"),onClick:this.handleSave},u.createElement(C,{icon:"check",className:"icon m-r-xs"}),"提交"),u.createElement("button",{type:"button",className:n("Button Button--xs Button--danger m-l-sm"),onClick:this.reset},u.createElement(C,{icon:"close",className:"icon m-r-xs"}),"放弃")):r.moved?u.createElement("span",null,"当前有 ".concat(r.moved," 条记录修改了顺序, 但并没有提交。请选择:"),u.createElement("button",{type:"button",className:n("Button Button--xs Button--success m-l-sm"),onClick:this.handleSaveOrder},u.createElement(C,{icon:"check",className:"icon m-r-xs"}),"提交"),u.createElement("button",{type:"button",className:n("Button Button--xs Button--danger m-l-sm"),onClick:this.reset},u.createElement(C,{icon:"close",className:"icon m-r-xs"}),"放弃")):e?P(e,s):""):null},i.prototype.renderHeader=function(){var t=this.props,e=t.header,r=t.headerClassName;t.headerToolbar;var a=t.headerToolbarRender,n=t.showHeader,s=t.render,o=t.store,d=t.classnames,l=t.translate;if(n===!1)return null;var c=a?a(f(f({},this.props),{selectedItems:o.selectedItems.map(function(h){return h.data}),items:o.items.map(function(h){return h.data}),unSelectedItems:o.unSelectedItems.map(function(h){return h.data})}),this.renderToolbar):null,p=this.renderActions("header"),m=p||c||o.dragging?u.createElement("div",{className:d("Cards-toolbar"),key:"header-toolbar"},p,c,o.dragging?u.createElement("div",{className:d("Cards-dragTip"),ref:this.dragTipRef},l("Card.dragTip")):null):null,g=e?u.createElement("div",{className:d("Cards-header",r),key:"header"},s("header",e)):null;return g&&m?[g,m]:g||m||null},i.prototype.renderFooter=function(){var t=this.props,e=t.footer,r=t.footerClassName;t.footerToolbar;var a=t.footerToolbarRender,n=t.render,s=t.showFooter,o=t.store,d=t.classnames,l=t.affixFooter;if(s===!1)return null;var c=a?a(f(f({},this.props),{selectedItems:o.selectedItems.map(function(h){return h.data}),items:o.items.map(function(h){return h.data}),unSelectedItems:o.unSelectedItems.map(function(h){return h.data})}),this.renderToolbar):null,p=this.renderActions("footer"),m=e?u.createElement("div",{className:d("Cards-footer",r,l?"Cards-footer--affix":""),key:"footer"},n("footer",e)):null,g=p||c?u.createElement("div",{className:d("Cards-toolbar",!m&&l?"Cards-footToolbar--affix":""),key:"footer-toolbar"},p,c):null;return m&&g?[g,m]:m||g||null},i.prototype.renderCheckAll=function(){var t=this.props,e=t.store,r=t.multiple,a=t.selectable,n=t.checkAll;return!e.selectable||!r||!a||e.dragging||!e.items.length||!n?null:u.createElement(Q,{key:"checkall",tooltip:"切换全选",onClick:this.handleCheckAll,size:"sm",level:e.allChecked?"info":"default"},"全选")},i.prototype.renderDragToggler=function(){var t=this,e=this.props,r=e.store;e.multiple,e.selectable;var a=e.popOverContainer,n=e.env,s=e.translate,o=e.dragIcon;return!r.draggable||r.items.length<2?null:u.createElement(Q,{iconOnly:!0,key:"dragging-toggle",tooltip:s("Card.toggleDrag"),tooltipContainer:a||(n==null?void 0:n.getModalContainer),size:"sm",active:r.dragging,onClick:function(d){d.preventDefault(),r.toggleDragging(),r.dragging&&r.clear(),r.dragging&&t.initDragging()}},u.isValidElement(o)?o:u.createElement(C,{icon:"exchange",className:"icon r90"}))},i.prototype.renderToolbar=function(t,e){var r=t.type||t;if(r==="drag-toggler")return this.renderedToolbars.push(r),this.renderDragToggler();if(r==="check-all")return this.renderedToolbars.push(r),this.renderCheckAll()},i.prototype.renderCard=function(t,e,r,a,n){var s=this,o=this.props,d=o.render,l=o.classnames,c=o.store,p=o.multiple,m=o.checkOnItemClick,g=o.hideCheckToggler,h={className:l(ee(e&&e.className||"",r.locals),{"is-checked":r.checked,"is-modified":r.modified,"is-moved":r.moved,"is-dragging":c.dragging}),item:r,key:t,itemIndex:r.index,multiple:p,selectable:c.selectable,checkable:r.checkable,draggable:r.draggable,selected:r.checked,dragging:c.dragging,data:r.locals,onAction:this.handleAction,onCheck:this.handleCheck,onQuickChange:c.dragging?null:this.handleQuickChange};return(e==null?void 0:e.type)==="card2"&&(h=f(f({},h),{item:r.locals,onCheck:function(){s.handleCheck(r)}})),u.createElement("div",{key:r.index,className:l(a),style:n},d("card/".concat(t),f({type:e.type||"card",hideCheckToggler:g,checkOnItemClick:m},e),h))},i.prototype.render=function(){var t=this,e=this.props,r=e.className,a=e.style,n=e.store,s=e.columnsCount,o=e.itemClassName,d=e.placeholder,l=e.card,c=e.data,p=e.render,m=e.affixHeader,g=e.masonryLayout,h=e.itemsClassName,b=e.classnames,U=e.translate,S=e.loading,$=S===void 0?!1:S,M=e.loadingConfig,V=e.env,x=e.id,T=e.wrapperCustomStyle,_=e.themeCss,z=e.mobileUI;this.renderedToolbars=[];var D=s?"Grid-col--sm".concat(Math.round(12/s)):o||"",I=this.renderHeader(),O=this.renderHeading(),W=this.renderFooter(),F="";g&&(F="Cards--masonry "+D.split(/\s/).map(function(k){return/^Grid-col--(xs|sm|md|lg)(\d+)/.test(k)?"Cards--masonry".concat(te(RegExp.$1)).concat(RegExp.$2):k}).join(" "));var E={},y={};return(a==null?void 0:a.gutterX)>=0&&(E.marginLeft=E.marginRight=-((a==null?void 0:a.gutterX)/2)+"px",y.paddingLeft=y.paddingRight=(a==null?void 0:a.gutterX)/2+"px"),(a==null?void 0:a.gutterY)>=0&&(y.marginBottom=(a==null?void 0:a.gutterY)+"px"),s&&!g&&!z&&(y.flex="0 0 ".concat(100/s,"%"),y.maxWidth="".concat(100/s,"%")),u.createElement("div",{ref:this.bodyRef,className:b("Cards",r,{"Cards--unsaved":!!n.modified||!!n.moved},H(f(f({},this.props),{name:"baseControlClassName",id:x,themeCss:_})),H(f(f({},this.props),{name:"wrapperCustomStyle",id:x,themeCss:T}))),style:re(a,c)},m?u.createElement("div",{className:b("Cards-fixedTop")},I,O):u.createElement(u.Fragment,null,I,O),n.items.length?u.createElement("div",{className:b("Cards-body Grid",h,F),style:E},n.items.map(function(k,X){return t.renderCard(X,l,k,D,y)})):u.createElement("div",{className:b("Cards-placeholder")},p("placeholder",U(d))),W,u.createElement(ae,{loadingConfig:M,overlay:!0,show:$}),u.createElement(ne,f({},this.props,{config:{wrapperCustomStyle:T,id:x,themeCss:_,classNames:[{key:"baseControlClassName"}]},env:V})))},i.propsList=["header","headerToolbarRender","footer","footerToolbarRender","placeholder","source","selectable","headerClassName","footerClassName","hideQuickSaveBtn","hideCheckToggler","itemCheckableOn","itemDraggableOn","masonryLayout","items","valueField"],i.defaultProps={className:"",placeholder:"placeholder.noData",source:"$items",selectable:!1,headerClassName:"",footerClassName:"",itemClassName:"Grid-col--sm6 Grid-col--md4 Grid-col--lg3",hideCheckToggler:!1,masonryLayout:!1,affixHeader:!0,itemsClassName:"",checkAll:!0},i}(u.Component),he=function(v){j(i,v);function i(t,e){var r=v.call(this,t)||this;return e.registerComponent(r),r}return i.prototype.componentWillUnmount=function(){var t;(t=v.prototype.componentWillUnmount)===null||t===void 0||t.call(this),this.context.unRegisterComponent(this)},i.prototype.receive=function(t,e){var r,a,n,s,o=this.context;if((r=o==null?void 0:o.parent)===null||r===void 0||r.getComponents(),!((a=this.props)===null||a===void 0)&&a.host)return(s=(n=this.props.host).receive)===null||s===void 0?void 0:s.call(n,t,e);if(e)return o.send(e,t)},i.prototype.reload=function(t,e,r,a,n,s){var o,d,l;return A(this,void 0,void 0,function(){var c;return N(this,function(p){return this.props.store,s!=null&&s.index||s!=null&&s.condition?[2]:(c=this.context,!((o=this.props)===null||o===void 0)&&o.host?[2,(l=(d=this.props.host).reload)===null||l===void 0?void 0:l.call(d,t,e,r)]:t?[2,c.reload(t,r)]:[2])})})},i.prototype.setData=function(t,e,r,a){return A(this,void 0,void 0,function(){var n,s;return N(this,function(o){switch(o.label){case 0:return n=this.props.store,r!==void 0||a!==void 0?[4,G(n.items,this.props.data,r,a)]:[3,2];case 1:return s=o.sent(),s.forEach(function(d){d.updateData(t)}),[3,3];case 2:return[2,n.updateData(t,void 0,e)];case 3:return[2]}})})},i.prototype.getData=function(){var t=this.props,e=t.store,r=t.data;return e.getData(r)},i.prototype.doAction=function(t,e,r,a){return A(this,void 0,void 0,function(){var n,s,o,d,l,c,p;return N(this,function(m){switch(m.label){case 0:switch(n=this.props,s=n.store,o=n.valueField,d=n.data,l=t==null?void 0:t.actionType,c=l,c){case"selectAll":return[3,1];case"clearAll":return[3,2];case"select":return[3,3];case"initDrag":return[3,5];case"cancelDrag":return[3,6];case"submitQuickEdit":return[3,7]}return[3,9];case 1:return s.clear(),s.toggleAll(),[3,10];case 2:return s.clear(),[3,10];case 3:return[4,G(s.items,e||this.props.data,a.index,a.condition,a.selected)];case 4:return p=m.sent(),s.updateSelected(p.map(function(g){return g.data}),o),[3,10];case 5:return s.startDragging(),[3,10];case 6:return s.stopDragging(),[3,10];case 7:return[4,this.handleSave()];case 8:return m.sent(),[3,10];case 9:return[2,this.handleAction(void 0,t,d)];case 10:return[2]}})})},i.contextType=oe,i=se([ie({name:"cards",type:"cards",storeType:le.name,weight:-100}),de("design:paramtypes",[Object,Object])],i),i}(ce);export{he as CardsRenderer,ce as default};