@flatbiz/antd 4.2.81 → 4.2.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ 组件定义规范
2
+
3
+ # 格式要求
4
+
5
+ ```
6
+ 1. 文件夹名称必须使用 中划线连接,组件名称必须与文件夹名称相同,但是是驼峰写法
7
+ 例如:文件夹:abc-xyz,则组件名称:AbcXyz
8
+ 2. 组件结构
9
+ - 组件目录名称
10
+ - index.ts
11
+ - 组件名称.tsx
12
+ 例如:
13
+ - 组件 abc-xyz
14
+ - index.ts
15
+ - abc-xyz.tsx (导出AbcXyz)
16
+ ```
@@ -8,7 +8,8 @@ import './../form-grid/index.css';
8
8
  import './../simple-layout/index.css';
9
9
  import './../table-scrollbar/index.css';
10
10
  import './../table-title-tooltip/index.css';
11
+ import './../tips-wrapper/index.css';
11
12
  import './index.css';
12
13
  /*! @flatjs/forge MIT @flatbiz/antd */
13
- import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{_ as r,a}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{hooks as o}from"@wove/react/cjs/hooks";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as c}from"antd";import{forwardRef as d,useState as f,useMemo as p,useRef as m,useImperativeHandle as g,Children as v}from"react";import{P as y,S as h}from"../index-e98b9352.js";import{createCtx as C}from"@wove/react/cjs/create-ctx";import{Model as S}from"@dimjs/model-react";import{jsx as b,jsxs as j}from"react/jsx-runtime";import F from"@ant-design/icons/es/icons/DownOutlined";import q from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as z}from"react-is";import{ButtonWrapper as N}from"../button-wrapper/index.js";import{FormGrid as R}from"../form-grid/index.js";import{SimpleLayout as x}from"../simple-layout/index.js";import{isUndefinedOrNull as w,getUuid as P,isMacEnv as k}from"@flatbiz/utils";import{fbaHooks as T}from"../fba-hooks/index.js";import{TableScrollbar as D}from"../table-scrollbar/index.js";import{TableTitleTooltip as K}from"../table-title-tooltip/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var V=C(),L=V[0],E=V[1];var I={queryCondition:{},isInit:true};var O={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=r({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=r({},I.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:I};var B={};var A=function e(t){if(!B[t]){B[t]=S(O)}return B[t]};var W=d((function(e,a){var c;var d=f([]),v=d[0],h=d[1];var C=f(0),S=C[0],F=C[1];var q=f(false),z=q[0],N=q[1];var R=o.useId(undefined,"easy-table-key");var x=p((function(){return e.cacheSwitch?location.pathname:R}),[R,e.cacheSwitch]);var w=A(x).useStore(),P=w[0],k=w[1];var T=e.pageSize||((c=e.initialPaginationParams)==null?void 0:c.pageSize)||10;var D=e.initRequest===undefined?true:e.initRequest;var K=f(false),V=K[0],L=K[1];var I=m();var O=r({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var B=s.useForm(e.form),W=B[0];var _=o.useCallbackRef((function(t){return new Promise((function(i,r){var a,o,s,c,d,f,p,m,g,v;var y=function(){try{return i()}catch(e){return r(e)}};var C=function(t){try{N(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return y()}catch(e){return r(e)}};try{N(true);return Promise.resolve(k.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,c=s.requestParamsAdapter,d=s.onRequest,f=s.requestResultAdapter;p=c?c(o):o;return Promise.resolve(d(p)).then((function(t){try{m=t||{};I.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=f?f(m):m;v=g[O.list];h(n(v)?v:[]);F(g[O.total]);N(false);return y()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var H=o.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(k.resetFilterCondition()).then((function(n){try{W.resetFields();if(e){void k.updateFilterCondition(e);W.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var U=function e(t,i){if(V){var n;return n={},n[O.pageNo]=t,n[O.pageSize]=i||T,n}else{return{}}};var Q=o.useCallbackRef((function(t){return new Promise((function(i,n){var a;a=r({},U(1,P.queryCondition[O.pageSize]),e.initialValues,t);return Promise.resolve(k.resetFilterCondition(a)).then((function(e){try{W.resetFields();if(t){W.setFieldsValue(t)}void _(a);return i()}catch(e){return n(e)}}),n)}))}));var Y=o.useCallbackRef((function(){return r({},P.queryCondition,W.getFieldsValue())}));var G=function t(){return{onRequest:_,clearQueryCondition:H,getRequestParams:Y,onResetRequest:Q,form:W,getDataSource:function e(){return I.current},onFilterDataSource:function e(t){h(t)},onClearDataSource:function e(){F(0);h([])},onUpdateDataSource:function t(i){h(i);I.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};g(a,(function(){return G()}));var $=function e(t){L(t)};var J=function t(){var i=W.getFieldsValue();if(e.onFormFinish){e.onFormFinish(r({},i,U(1,P.queryCondition[O.pageSize])))}else{void _(r({},i,U(1,P.queryCondition[O.pageSize])))}};var M=i(e.isFull)?true:e.isFull;var X=t("fba-easy-table",{"fba-easy-table-full":M,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var Z=p((function(){return r({showSizeChanger:true,current:P.queryCondition[O.pageNo]||1,pageSize:P.queryCondition[O.pageSize]||T,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[O.pageNo,O.pageSize,T,e.pagination,P.queryCondition,S]);var ee=o.useCallbackRef((function(t,i){var n,r;void _((n={},n[O.pageSize]=i,n[O.pageNo]=t,n));(r=e.pagination)==null||r.onChange==null?void 0:r.onChange(t,i)}));var te=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ie=typeof e.children==="function"?e.children(I.current):e.children;return b(E,{value:{getEasyTableRef:G,modelKey:x,onRequest:_,tableList:v,tableTotal:S,loading:z,fieldNames:O,pageSize:T,initRequest:D,initialValues:e.initialValues||{},onSetPaginationStatus:$,paginationStatus:V,onFormFinish:J,form:W,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?j("div",{className:te,style:e.style,children:[b("div",{className:X,children:ie}),S>0&&b("div",{className:"fba-easy-table-pagination",children:b(y,r({size:"small"},Z,{onChange:ee}))})]}):b("div",{className:X,style:e.style,children:ie})})}));var _=function e(n){var a=n.queryButtonProps,l=n.resetButtonProps,u=n.filterOperate,c=n.formClassName,d=n.defaultResetButtonTriggerRequest,m=n.filterWrapperStyle,g=n.filterWrapperClassName;var y=L(),h=y.modelKey,C=y.foldKeys,S=y.fieldNames,w=y.onRequest,P=y.pageSize,k=y.paginationStatus,T=y.initialValues,D=y.form,K=y.onFormFinish;var V=typeof n.children==="function"?n.children(D):n.children;var E=p((function(){if(z(V)){return v.toArray(V.props.children)}else{return v.toArray(V)}}),[V]);var I=f(false),O=I[0],B=I[1];var W=A(h).useStore(),_=W[0],H=W[1];var U=o.useCallbackRef((function(){return new Promise((function(e,t){var n;return Promise.resolve(H.resetFilterCondition()).then((function(a){try{D.resetFields();if(i(d)||d){if(k){w(r((n={},n[S.pageNo]=1,n[S.pageSize]=P,n),T))}else{w(T)}}return e()}catch(e){return t(e)}}),t)}))}));var Q=p((function(){var e=r({rightList:[!(a!=null&&a.hidden)?b(N,r({type:"primary",htmlType:"submit"},a,{children:(a==null?void 0:a.text)||"查询"}),"1"):null,!(l!=null&&l.hidden)?b(N,r({onClick:U},l,{children:(l==null?void 0:l.text)||"重置"}),"2"):null],leftList:[]},u==null?void 0:u(D));if(C.length>0){var t=b(N,{type:"link",style:{padding:"0"},onClick:function e(){B(!O)},children:O?j("span",{children:["收起",b(q,{style:{marginLeft:3,fontSize:12}})]}):j("span",{children:["展开",b(F,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");var i=e.rightList,n=e.leftList;if(i.length>0||n.length===0){i.push(t)}else if((n==null?void 0:n.length)>0){n.push(t)}}return E.map((function(e,t){if(!O&&C.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return b(R.Col,{children:e},t)})).filter(Boolean).concat(b(R.OperateCol,r({},e),999))}),[E,u,C,D,U,O,a,l]);return b(x,{className:t("easy-table-filter",g),style:m,children:b(s,{form:D,autoComplete:"off",onFinish:K,initialValues:r({},T,_.queryCondition),className:c,children:n.isPure?V:b(R.Row,{gutter:[15,0],gridSize:n.formGridSize,children:Q})})})};var H=function e(){var t=L();var i=m(t.getEasyTableRef());return i.current};var U=function e(){var t=L(),i=t.getEasyTableRef;var n=m(i());return n};var Q=["children","rowKey","pagination"],Y=["tooltip","title"];var G=function e(i){var n=i.children,o=i.rowKey,l=i.pagination,s=a(i,Q);var u=L(),d=u.modelKey,f=u.fieldNames,m=u.onRequest,g=u.tableList,v=u.initRequest,y=u.pageSize,C=u.tableTotal,S=u.loading,F=u.initialValues,q=u.paginationFixed,z=u.onSetPaginationStatus;var N=A(d).useStore(),R=N[0],V=N[1];var E=p((function(){if(q||l===false)return false;return r({showSizeChanger:true,current:R.queryCondition[f.pageNo]||1,pageSize:R.queryCondition[f.pageSize]||y,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:h})}),[f.pageNo,f.pageSize,y,l,q,i.pagination,R.queryCondition,C]);var I=function e(t,n,r,a){if(a.action==="paginate"&&E){var o;m((o={},o[f.pageSize]=t.pageSize,o[f.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,n,r,a)}};var O=p((function(){if(g.length===0){return[]}if(typeof o==="string"&&w(g[0][o])){return g.map((function(e){e[o]=P();return e}))}return g}),[g,o]);T.useEffectCustom((function(){var e=q||E!==false;z(e);if(v!==false||!R.isInit){if(e){var t;void m(r((t={},t[f.pageNo]=1,t[f.pageSize]=y,t),F,R.queryCondition))}else{void m(F)}}else{void V.updateFilterCondition(F)}void V.updateInitStatus()}),[]);var B=p((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.title,n=a(e,Y);if(typeof i==="string"&&!!t){return r({},n,{title:b(K,{title:i,tooltip:t})})}return e}))}),[i.columns]);return j(x,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[n,k()?b(c,r({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:E,rowKey:o,onChange:I,loading:S,dataSource:O})):b(D,{children:b(c,r({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:E,rowKey:o,onChange:I,loading:S,dataSource:O}))})]})};var $=e.attachPropertiesToComponent(W,{Filter:_,Table:G,useEasyTablRef:U,useEasyTable:H});export{$ as EasyTable};
14
+ import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{_ as n,a}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{hooks as o}from"@wove/react/cjs/hooks";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as p}from"antd";import{createContext as c,forwardRef as d,useState as f,useMemo as m,useRef as g,useImperativeHandle as v,useContext as y,Children as h}from"react";import{P as C,S}from"../index-e98b9352.js";import{noop as b,isUndefinedOrNull as j,getUuid as F,isMacEnv as q}from"@flatbiz/utils";import{Model as z}from"@dimjs/model-react";import{jsx as R,jsxs as N}from"react/jsx-runtime";import x from"@ant-design/icons/es/icons/DownOutlined";import P from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as w}from"react-is";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FormGrid as T}from"../form-grid/index.js";import{SimpleLayout as D}from"../simple-layout/index.js";import{fbaHooks as K}from"../fba-hooks/index.js";import{TableScrollbar as L}from"../table-scrollbar/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as E}from"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var A=c({onRequest:b,tableList:[],getEasyTableRef:function e(){}});var O={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var W=function e(t){if(!B[t]){B[t]=z(I)}return B[t]};var _=d((function(e,a){var p;var c=f([]),d=c[0],y=c[1];var h=f(0),S=h[0],b=h[1];var j=f(false),F=j[0],q=j[1];var z=o.useId(undefined,"easy-table-key");var x=m((function(){return e.cacheSwitch?location.pathname:z}),[z,e.cacheSwitch]);var P=W(x).useStore(),w=P[0],k=P[1];var T=e.pageSize||((p=e.initialPaginationParams)==null?void 0:p.pageSize)||10;var D=e.initRequest===undefined?true:e.initRequest;var K=f(false),L=K[0],V=K[1];var E=g();var O=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var I=s.useForm(e.form),B=I[0];var _=o.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,p,c,d,f,m,g,v;var h=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{q(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return h()}catch(e){return n(e)}};try{q(true);return Promise.resolve(k.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,p=s.requestParamsAdapter,c=s.onRequest,d=s.requestResultAdapter;f=p?p(o):o;return Promise.resolve(c(f)).then((function(t){try{m=t||{};E.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=d?d(m):m;v=g[O.list];y(r(v)?v:[]);b(g[O.total]);q(false);return h()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var H=o.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(k.resetFilterCondition()).then((function(r){try{B.resetFields();if(e){void k.updateFilterCondition(e);B.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var U=function e(t,i){if(L){var r;return r={},r[O.pageNo]=t,r[O.pageSize]=i||T,r}else{return{}}};var Q=o.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},U(1,w.queryCondition[O.pageSize]),e.initialValues,t);return Promise.resolve(k.resetFilterCondition(a)).then((function(e){try{B.resetFields();if(t){B.setFieldsValue(t)}void _(a);return i()}catch(e){return r(e)}}),r)}))}));var Y=o.useCallbackRef((function(){return n({},w.queryCondition,B.getFieldsValue())}));var G=function t(){return{onRequest:_,clearQueryCondition:H,getRequestParams:Y,onResetRequest:Q,form:B,getDataSource:function e(){return E.current},onFilterDataSource:function e(t){y(t)},onClearDataSource:function e(){b(0);y([])},onUpdateDataSource:function t(i){y(i);E.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};v(a,(function(){return G()}));var $=function e(t){V(t)};var J=function t(){var i=B.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,U(1,w.queryCondition[O.pageSize])))}else{void _(n({},i,U(1,w.queryCondition[O.pageSize])))}};var M=i(e.isFull)?true:e.isFull;var X=t("fba-easy-table",{"fba-easy-table-full":M,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var Z=m((function(){return n({showSizeChanger:true,current:w.queryCondition[O.pageNo]||1,pageSize:w.queryCondition[O.pageSize]||T,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[O.pageNo,O.pageSize,T,e.pagination,w.queryCondition,S]);var ee=o.useCallbackRef((function(t,i){var r,n;void _((r={},r[O.pageSize]=i,r[O.pageNo]=t,r));(n=e.pagination)==null||n.onChange==null?void 0:n.onChange(t,i)}));var te=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ie=typeof e.children==="function"?e.children(E.current):e.children;return R(A.Provider,{value:{getEasyTableRef:G,modelKey:x,onRequest:_,tableList:d,tableTotal:S,loading:F,fieldNames:O,pageSize:T,initRequest:D,initialValues:e.initialValues||{},onSetPaginationStatus:$,paginationStatus:L,onFormFinish:J,form:B,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?N("div",{className:te,style:e.style,children:[R("div",{className:X,children:ie}),S>0&&R("div",{className:"fba-easy-table-pagination",children:R(C,n({size:"small"},Z,{onChange:ee}))})]}):R("div",{className:X,style:e.style,children:ie})})}));var H=function e(r){var a=y(A);var l=r.queryButtonProps,u=r.resetButtonProps,p=r.filterOperate,c=r.formClassName,d=r.defaultResetButtonTriggerRequest,g=r.filterWrapperStyle,v=r.filterWrapperClassName,C=r.rightOperateAreaAppendType;var S=a.modelKey,b=a.foldKeys,j=a.fieldNames,F=a.onRequest,q=a.pageSize,z=a.paginationStatus,K=a.initialValues,L=a.form,V=a.onFormFinish;var E=typeof r.children==="function"?r.children(L):r.children;var O=C||"cover";var I=m((function(){if(w(E)){return h.toArray(E.props.children)}else{return h.toArray(E)}}),[E]);var B=f(false),_=B[0],H=B[1];var U=W(S).useStore(),Q=U[0],Y=U[1];var G=o.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(Y.resetFilterCondition()).then((function(a){try{L.resetFields();if(i(d)||d){if(z){F(n((r={},r[j.pageNo]=1,r[j.pageSize]=q,r),K))}else{F(K)}}return e()}catch(e){return t(e)}}),t)}))}));var $=m((function(){var e=[R(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"),R(k,n({onClick:G},u,{children:(u==null?void 0:u.text)||"重置"}),"2")].filter(Boolean);var t=p==null?void 0:p(L);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(O==="afterAppend"){a=[].concat(e,i)}else if(O==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(b.length>0){var o=R(k,{type:"link",style:{padding:"0"},onClick:function e(){H(!_)},children:_?N("span",{children:["收起",R(P,{style:{marginLeft:3,fontSize:12}})]}):N("span",{children:["展开",R(x,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return I.map((function(e,t){if(!_&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return R(T.Col,{children:e},t)})).filter(Boolean).concat(R(T.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[I,p,b,L,G,_,l,u,O]);return R(D,{className:t("easy-table-filter",v),style:g,children:R(s,{form:L,autoComplete:"off",onFinish:V,initialValues:n({},K,Q.queryCondition),className:c,children:r.isPure?E:R(T.Row,{gutter:[15,0],gridSize:r.formGridSize,children:$})})})};var U=function e(){var t=y(A);return t.getEasyTableRef()};var Q=function e(){var t=y(A);return{current:t.getEasyTableRef()}};var Y=["children","rowKey","pagination"],G=["tooltip","tipsWrapperProps","title"];var $=function e(i){var r=y(A);var o=i.children,l=i.rowKey,s=i.pagination,u=a(i,Y);var c=r.modelKey,d=r.fieldNames,f=r.onRequest,g=r.tableList,v=r.initRequest,h=r.pageSize,C=r.tableTotal,b=r.loading,z=r.initialValues,x=r.paginationFixed,P=r.onSetPaginationStatus;var w=W(c).useStore(),k=w[0],T=w[1];var O=m((function(){if(x||s===false)return false;return n({showSizeChanger:true,current:k.queryCondition[d.pageNo]||1,pageSize:k.queryCondition[d.pageSize]||h,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:S})}),[d.pageNo,d.pageSize,h,s,x,i.pagination,k.queryCondition,C]);var I=function e(t,r,n,a){if(a.action==="paginate"&&O){var o;f((o={},o[d.pageSize]=t.pageSize,o[d.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var B=m((function(){if(g.length===0){return[]}if(typeof l==="string"&&j(g[0][l])){return g.map((function(e){e[l]=F();return e}))}return g}),[g,l]);K.useEffectCustom((function(){var e=x||O!==false;P(e);if(v!==false||!k.isInit){if(e){var t;void f(n((t={},t[d.pageNo]=1,t[d.pageSize]=h,t),z,k.queryCondition))}else{void f(z)}}else{void T.updateFilterCondition(z)}void T.updateInitStatus()}),[]);var _=m((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.tipsWrapperProps,r=e.title,o=a(e,G);if(typeof r==="string"&&i){if(typeof i==="string"){return n({},o,{title:R(E,{tipType:"popover",popoverProps:{content:i},children:r})})}return n({},o,{title:R(E,n({},i,{children:r}))})}if(typeof r==="string"&&!!t){return n({},o,{title:R(V,{tooltip:t,title:r})})}return e}))}),[i.columns]);return N(D,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[o,q()?R(p,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B})):R(L,{children:R(p,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B}))})]})};var J=e.attachPropertiesToComponent(_,{Filter:H,Table:$,useEasyTablRef:Q,useEasyTable:U});export{J as EasyTable};
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableCtxProvider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n leftList: [],\n ...filterOperate?.(form),\n };\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n const { rightList, leftList } = formOperateColProps;\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(<FormGrid.OperateCol key={999} {...formOperateColProps} />);\n }, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, title, ...otherProps } = item;\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip title={title} tooltip={tooltip} />,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getEasyTableRef","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","value","tableList","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","_useEasyTableCtx","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","leftList","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","filter","Boolean","concat","OperateCol","SimpleLayout","autoComplete","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","ctx","resp","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","title","_excluded2","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi } from './type';\n\n// export const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n// modelKey: string;\n// onRequest: (params?: TPlainObject) => void;\n// tableList: TPlainObject[];\n// tableTotal: number;\n// loading?: boolean;\n// fieldNames: TPlainObject;\n// pageSize: number;\n// initRequest: boolean;\n// initialValues: TPlainObject;\n// onSetPaginationStatus: (status: boolean) => void;\n// paginationStatus: boolean;\n// onFormFinish?: (values?: TPlainObject) => void;\n// form: FormInstance;\n// getEasyTableRef: () => EasyTableRefApi;\n// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useContext, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","SimpleLayout","autoComplete","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
@@ -13,5 +13,5 @@ import './../input-wrapper/index.css';
13
13
  import './../input-text-area-wrapper/index.css';
14
14
  import './index.css';
15
15
  /*! @flatjs/forge MIT @flatbiz/antd */
16
- import e from"@ant-design/icons/es/icons/PlusOutlined";import{_ as n,a as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{arrayField2LabelValue as a,toArray as i}from"@flatbiz/utils";import{Form as t,Checkbox as l,Tag as o,InputNumber as d,Radio as u,Space as m,Button as s,Input as f,Table as c}from"antd";import{useMemo as p,useState as v,useEffect as g,Fragment as b,isValidElement as C}from"react";import{ButtonWrapper as h}from"../button-wrapper/index.js";import{TableTitleTooltip as I}from"../table-title-tooltip/index.js";import{isArray as x}from"@dimjs/lang/cjs/is-array";import{extend as j}from"@dimjs/utils/cjs/extend";import{classNames as w}from"@dimjs/utils/cjs/class-names";import{hooks as R}from"@wove/react/cjs/hooks";import{jsx as N,jsxs as y,Fragment as k}from"react/jsx-runtime";import{DatePickerWrapper as P}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as F}from"../date-range-picker-wrapper/index.js";import{InputWrapper as L}from"../input-wrapper/index.js";import{SelectorWrapper as A}from"../selector-wrapper/index.js";import{isBoolean as O}from"@dimjs/lang/cjs/is-boolean";import{isNumber as V}from"@dimjs/lang/cjs/is-number";import{isString as S}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as T}from"../input-text-area-wrapper/index.js";import{UploadWrapper as _}from"../upload-wrapper/index.js";import B from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-plain-object";import"react-dom";var W=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var D=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,d=a.render;var u=i.editableComptProps;var m=p((function(){return u.options||[]}),[u.options]);var s=p((function(){if(t)return[];var e=x(r.value)?r.value:[];if(!x(m)||m.length===0){return e.map((function(e){return{label:e,value:e}}))}var n=[];e.forEach((function(e){var r=m.find((function(n){return n.value===e}));n.push(r?r:{label:e,value:e})}));return n}),[t,m,r.value]);var f=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e)}));if(t){return N(l.Group,n({},u,{value:r.value,onChange:f}))}return N("span",{className:"editable-checkbox-group-view",children:d?d(r.value,m):s.map((function(e,n){return N(o,{color:"geekblue",children:e.label},n)}))})};var G=function e(r){var a=r.fieldConfig.formItemProps;return N(t.Item,n({},a,{name:r.name,className:w("editable-checkbox-group-form-item",a==null?void 0:a.className),children:N(D,n({},r))}))};var z=function e(r){var a=r.fieldConfig,i=a.formItemProps,l=a.editableConfig;return N(t.Item,n({},i,{name:r.name,className:w("editable-date-picker-wraper-form-item",i==null?void 0:i.className),children:N(P,n({allowClear:true},l.editableComptProps))}))};var E=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,l=a.render;var o=i.editableComptProps;var d=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var u=p((function(){var e=x(r.value)?r.value:[];if(t)return undefined;return e.join("~")}),[t,r.value]);if(t){return N(F,n({allowClear:true},o,{value:r.value,onChange:d}))}return N("span",{className:"editable-date-range-picker-view",children:l?l(r.value):u})};var q=function e(r){var a=r.fieldConfig.formItemProps;return N(t.Item,n({},a,{name:r.name,className:w("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:N(E,n({},r))}))};var M=function e(r){var a=r.fieldConfig,i=a.formItemProps,l=a.editableConfig;return N(t.Item,n({},i,{name:r.name,children:N(L,n({allowClear:true},l.editableComptProps))}))};var Y=function e(r){var a=r.fieldConfig,i=a.formItemProps,l=a.editableConfig;return N(t.Item,n({},i,{name:r.name,className:w("editable-input-number-form-item",i==null?void 0:i.className),children:N(d,n({},l.editableComptProps))}))};var H=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,l=a.render;var d=i.editableComptProps;var m=p((function(){return d.options||[]}),[d.options]);var s=p((function(){if(t)return[];var e=r.value;if(!x(m)||m.length===0){return e}var n=m.find((function(n){return n.value===e}));return(n==null?void 0:n.label)||e}),[t,m,r.value]);var f=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);d.onChange==null?void 0:d.onChange(e)}));if(t){return N(u.Group,n({},d,{value:r.value,onChange:f}))}return N("span",{className:"editable-radio-group-view",children:l?l(r.value,m):s?N(o,{color:"geekblue",children:s}):null})};var J=function e(r){var a=r.fieldConfig.formItemProps;return N(t.Item,n({},a,{name:r.name,className:w("editable-radio-group-form-item",a==null?void 0:a.className),children:N(H,n({},r))}))};var K=function e(r){var i=r.fieldConfig,t=i.editableConfig,l=i.editable,d=i.render;var u=t.editableComptProps;var m=v([]),s=m[0],f=m[1];var c=v([]),p=c[0],C=c[1];g((function(){if(!l){var e=x(r.value)?r.value:r.value===undefined?[]:[r.value];if(s.length===0){C(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=s.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));C(n)}}),[l,u.fieldNames,r.value,s]);var h=R.useCallbackRef((function(e){f(a(e||[],u.fieldNames))}));var I=R.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e,n)}));if(l){return N(A,n({},u,{value:r.value,onChange:I,onSelectorListAllChange:h}))}return y(b,{children:[N("div",{style:{display:"none"},children:N(A,n({},u,{onSelectorListAllChange:h}))}),N("span",{className:"editable-selector-view",children:d?d(r.value,s):p.map((function(e,n){return N(o,{color:"geekblue",children:e.label},n)}))})]})};var Q=function e(r){var a=r.fieldConfig.formItemProps;return N(t.Item,n({},a,{name:r.name,className:w("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:N(K,n({},r))}))};var U=function e(n){var r,a;var i=p((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=S(n.value)||V(n.value)||O(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((a=n.fieldConfig)==null||a.render==null?void 0:a.render(n.value))||i;return N("span",{children:t})};var X=function e(n){return N(t.Item,{noStyle:true,name:n.name,children:N(U,{name:n.name,fieldConfig:n.fieldConfig})})};var Z=function e(r){var a=r.fieldConfig,i=a.formItemProps,l=a.editableConfig;return N(t.Item,n({},i,{name:r.name,children:N(T,n({},l.editableComptProps))}))};var $=["children"];var ee=function e(a){var i=a.fieldConfig,t=i.editableConfig,l=i.render,o=i.editable;var d=t.editableComptProps,u=d.children,m=r(d,$);if(o){return N(_,n({listType:"text"},m,{value:a.value,onChange:a.onChange,children:u}))}return N("div",{className:"upload-wrapper-selector-view",children:l?l(a.value):N(_,n({listType:"text"},m,{value:a.value,disabled:true}))})};var ne=function e(r){var a=r.fieldConfig.formItemProps;return N(t.Item,n({},a,{name:r.name,className:w("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:N(ee,n({},r))}))};var re=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable;var l=W(t,r.tableRowIndex);var o=j({},r.fieldConfig,{editable:l});var d={name:r.name,fieldConfig:o};if((i==null?void 0:i.type)==="input"&&l){return N(M,n({},d))}else if((i==null?void 0:i.type)==="inputNumber"&&l){return N(Y,n({},d))}else if((i==null?void 0:i.type)==="textArea"&&l){return N(Z,n({},d))}else if((i==null?void 0:i.type)==="datePickerWrapper"&&l){return N(z,n({},d))}else if((i==null?void 0:i.type)==="dateRangePickerWrapper"){return N(q,n({},d))}else if((i==null?void 0:i.type)==="selectorWrapper"){return N(Q,n({},d))}else if((i==null?void 0:i.type)==="checkboxGroup"){return N(G,n({},d))}else if((i==null?void 0:i.type)==="radioGroup"){return N(J,n({},d))}else if((i==null?void 0:i.type)==="uploadWrapper"){return N(ne,n({},d))}else if((i==null?void 0:i.type)==="custom"){return i.editableComptProps({name:r.name,editable:l,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return N(X,n({},d))};var ae=function e(n){var r=t.useFormInstance();var a=n.formListConfig,i=a.onFormListBeforeRender,l=a.editableConfigList,o=a.onFormListAfterRender,d=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return N(t.List,{name:n.name,children:function e(a,t){var f=t.add,c=t.remove;return y(k,{children:[i?i({tableRowIndex:n.tableRowIndex,add:f,get value(){return r.getFieldValue(n.completeName)}}):null,a.map((function(e,a){var i=l.find((function(e){return W(e.editable,n.tableRowIndex)}));var t=w("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!i});return y("div",{className:t,children:[d==null?void 0:d({add:f,remove:function e(){c(a)},formListItemIndex:a,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),y(m,{children:[l.map((function(r,a){return N(re,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},a)})),i?N(ie,{deleteOperateRender:s,remove:function e(){c(a)},index:a}):undefined]}),u==null?void 0:u({add:f,formListItemIndex:a,tableRowIndex:n.tableRowIndex,remove:function e(){c(a)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},a)})),o?o({tableRowIndex:n.tableRowIndex,add:f,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var ie=function e(n){return N(t.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):N(s,{type:"link",danger:true,icon:N(B,{}),onClick:n.remove,children:"删除"})})};var te=function e(n){if(n.fieldConfig){if(x(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return N(ae,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return y(b,{children:[N(re,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?N(t.Item,{hidden:true,name:n.hiddenField.dataIndex,children:N(f,{})}):null]})}}return N(X,{name:n.name})};var le=["fieldConfig","renderMiddleware","tableChildrenColumnRender","tooltip","title"];var oe=function a(l){var o;var d=t.useFormInstance();var u=p((function(){if(!l.columns)return[];return l.columns.map((function(e){var a=e.fieldConfig,t=e.renderMiddleware,o=e.tableChildrenColumnRender,d=e.tooltip,u=e.title,m=r(e,le);var s=C(u)||typeof u==="string";return n({title:s&&!!d?N(I,{title:u,tooltip:d}):u,onCell:function e(){var n;return{valign:((n=l.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},m,{render:function n(r,d,u){if(d["_isChildrenItem"]){if(o){return o(r,d,u)}return r}var m=[].concat(i(l.name),[d.name]);var s=e.dataIndex?[].concat(m,[e.dataIndex]):m;var f=t==null?void 0:t({name:s,tableRowIndex:d.name,operation:d.operation,tableRowName:m,index:u});if(f){return f}var c=typeof a==="function"?a({name:s,tableRowIndex:d.name,tableRowName:m}):a;return N(te,{name:e.dataIndex?[d.name,e.dataIndex]:[d.name],completeName:s,fieldConfig:c,tableRowIndex:d.name,hiddenField:e.hiddenField})}})}))}),[l.columns,l.name,(o=l.tableProps)==null?void 0:o.cellVerticalAlign]);var m=t.useWatch(l.name,d);return N("div",{className:"editable-table",children:N(t.List,{name:l.name,rules:l.rules,children:function r(a,i){return y(b,{children:[l.onTableBeforeRender?l.onTableBeforeRender(i,a.length):null,N(c,n({scroll:{x:"max-content"},pagination:false,rowKey:"key"},l.tableProps,{dataSource:a.map((function(e){var r;var a=m==null||(r=m[e.name])==null?void 0:r.children;if(a){a.forEach((function(e){e["_isChildrenItem"]=true}))}return n({},e,{operation:i,children:a})})),columns:u})),l.onTableAfterRender?l.onTableAfterRender(i,a.length):N(h,{type:"dashed",hidden:l.hiddenFooterBtn,onClick:function e(){return i.add(l.getAddRowDefaultValues==null?void 0:l.getAddRowDefaultValues())},block:true,icon:N(e,{}),style:{marginTop:15},children:"新增"})]})}})})};export{oe as EditableTable};
16
+ import e from"@ant-design/icons/es/icons/PlusOutlined";import{_ as n,a as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{arrayField2LabelValue as a,toArray as i}from"@flatbiz/utils";import{Form as t,Checkbox as l,Tag as o,InputNumber as d,Radio as u,Space as m,Button as s,Input as f,Table as c}from"antd";import{useMemo as p,useState as v,useEffect as g,Fragment as b,forwardRef as C,useRef as h,useImperativeHandle as I,isValidElement as x}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TableTitleTooltip as w}from"../table-title-tooltip/index.js";import{TipsWrapper as R}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{extend as y}from"@dimjs/utils/cjs/extend";import{classNames as P}from"@dimjs/utils/cjs/class-names";import{hooks as k}from"@wove/react/cjs/hooks";import{jsx as F,jsxs as L,Fragment as A}from"react/jsx-runtime";import{DatePickerWrapper as O}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as T}from"../date-range-picker-wrapper/index.js";import{InputWrapper as V}from"../input-wrapper/index.js";import{SelectorWrapper as B}from"../selector-wrapper/index.js";import{isBoolean as S}from"@dimjs/lang/cjs/is-boolean";import{isNumber as W}from"@dimjs/lang/cjs/is-number";import{isString as _}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as D}from"../input-text-area-wrapper/index.js";import{UploadWrapper as G}from"../upload-wrapper/index.js";import z from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-plain-object";import"react-dom";var E=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var q=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,d=a.render;var u=i.editableComptProps;var m=p((function(){return u.options||[]}),[u.options]);var s=p((function(){if(t)return[];var e=N(r.value)?r.value:[];if(!N(m)||m.length===0){return e.map((function(e){return{label:e,value:e}}))}var n=[];e.forEach((function(e){var r=m.find((function(n){return n.value===e}));n.push(r?r:{label:e,value:e})}));return n}),[t,m,r.value]);var f=k.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e)}));if(t){return F(l.Group,n({},u,{value:r.value,onChange:f}))}return F("span",{className:"editable-checkbox-group-view",children:d?d(r.value,m):s.map((function(e,n){return F(o,{color:"geekblue",children:e.label},n)}))})};var K=function e(r){var a=r.fieldConfig.formItemProps;return F(t.Item,n({},a,{name:r.name,className:P("editable-checkbox-group-form-item",a==null?void 0:a.className),children:F(q,n({},r))}))};var M=function e(r){var a=r.fieldConfig,i=a.formItemProps,l=a.editableConfig;return F(t.Item,n({},i,{name:r.name,className:P("editable-date-picker-wraper-form-item",i==null?void 0:i.className),children:F(O,n({allowClear:true},l.editableComptProps))}))};var Y=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,l=a.render;var o=i.editableComptProps;var d=k.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var u=p((function(){var e=N(r.value)?r.value:[];if(t)return undefined;return e.join("~")}),[t,r.value]);if(t){return F(T,n({allowClear:true},o,{value:r.value,onChange:d}))}return F("span",{className:"editable-date-range-picker-view",children:l?l(r.value):u})};var H=function e(r){var a=r.fieldConfig.formItemProps;return F(t.Item,n({},a,{name:r.name,className:P("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:F(Y,n({},r))}))};var J=function e(r){var a=r.fieldConfig,i=a.formItemProps,l=a.editableConfig;return F(t.Item,n({},i,{name:r.name,children:F(V,n({allowClear:true},l.editableComptProps))}))};var Q=function e(r){var a=r.fieldConfig,i=a.formItemProps,l=a.editableConfig;return F(t.Item,n({},i,{name:r.name,className:P("editable-input-number-form-item",i==null?void 0:i.className),children:F(d,n({},l.editableComptProps))}))};var U=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,l=a.render;var d=i.editableComptProps;var m=p((function(){return d.options||[]}),[d.options]);var s=p((function(){if(t)return[];var e=r.value;if(!N(m)||m.length===0){return e}var n=m.find((function(n){return n.value===e}));return(n==null?void 0:n.label)||e}),[t,m,r.value]);var f=k.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);d.onChange==null?void 0:d.onChange(e)}));if(t){return F(u.Group,n({},d,{value:r.value,onChange:f}))}return F("span",{className:"editable-radio-group-view",children:l?l(r.value,m):s?F(o,{color:"geekblue",children:s}):null})};var X=function e(r){var a=r.fieldConfig.formItemProps;return F(t.Item,n({},a,{name:r.name,className:P("editable-radio-group-form-item",a==null?void 0:a.className),children:F(U,n({},r))}))};var Z=function e(r){var i=r.fieldConfig,t=i.editableConfig,l=i.editable,d=i.render;var u=t.editableComptProps;var m=v([]),s=m[0],f=m[1];var c=v([]),p=c[0],C=c[1];g((function(){if(!l){var e=N(r.value)?r.value:r.value===undefined?[]:[r.value];if(s.length===0){C(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=s.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));C(n)}}),[l,u.fieldNames,r.value,s]);var h=k.useCallbackRef((function(e){f(a(e||[],u.fieldNames))}));var I=k.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e,n)}));if(l){return F(B,n({},u,{value:r.value,onChange:I,onSelectorListAllChange:h}))}return L(b,{children:[F("div",{style:{display:"none"},children:F(B,n({},u,{onSelectorListAllChange:h}))}),F("span",{className:"editable-selector-view",children:d?d(r.value,s):p.map((function(e,n){return F(o,{color:"geekblue",children:e.label},n)}))})]})};var $=function e(r){var a=r.fieldConfig.formItemProps;return F(t.Item,n({},a,{name:r.name,className:P("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:F(Z,n({},r))}))};var ee=function e(n){var r,a;var i=p((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=_(n.value)||W(n.value)||S(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((a=n.fieldConfig)==null||a.render==null?void 0:a.render(n.value))||i;return F("span",{children:t})};var ne=function e(n){return F(t.Item,{noStyle:true,name:n.name,children:F(ee,{name:n.name,fieldConfig:n.fieldConfig})})};var re=function e(r){var a=r.fieldConfig,i=a.formItemProps,l=a.editableConfig;return F(t.Item,n({},i,{name:r.name,children:F(D,n({},l.editableComptProps))}))};var ae=["children"];var ie=function e(a){var i=a.fieldConfig,t=i.editableConfig,l=i.render,o=i.editable;var d=t.editableComptProps,u=d.children,m=r(d,ae);if(o){return F(G,n({listType:"text"},m,{value:a.value,onChange:a.onChange,children:u}))}return F("div",{className:"upload-wrapper-selector-view",children:l?l(a.value):F(G,n({listType:"text"},m,{value:a.value,disabled:true}))})};var te=function e(r){var a=r.fieldConfig.formItemProps;return F(t.Item,n({},a,{name:r.name,className:P("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:F(ie,n({},r))}))};var le=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable;var l=E(t,r.tableRowIndex);var o=y({},r.fieldConfig,{editable:l});var d={name:r.name,fieldConfig:o};if((i==null?void 0:i.type)==="input"&&l){return F(J,n({},d))}else if((i==null?void 0:i.type)==="inputNumber"&&l){return F(Q,n({},d))}else if((i==null?void 0:i.type)==="textArea"&&l){return F(re,n({},d))}else if((i==null?void 0:i.type)==="datePickerWrapper"&&l){return F(M,n({},d))}else if((i==null?void 0:i.type)==="dateRangePickerWrapper"){return F(H,n({},d))}else if((i==null?void 0:i.type)==="selectorWrapper"){return F($,n({},d))}else if((i==null?void 0:i.type)==="checkboxGroup"){return F(K,n({},d))}else if((i==null?void 0:i.type)==="radioGroup"){return F(X,n({},d))}else if((i==null?void 0:i.type)==="uploadWrapper"){return F(te,n({},d))}else if((i==null?void 0:i.type)==="custom"){return i.editableComptProps({name:r.name,editable:l,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return F(ne,n({},d))};var oe=function e(n){var r=t.useFormInstance();var a=n.formListConfig,i=a.onFormListBeforeRender,l=a.editableConfigList,o=a.onFormListAfterRender,d=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return F(t.List,{name:n.name,children:function e(a,t){var f=t.add,c=t.remove;return L(A,{children:[i?i({tableRowIndex:n.tableRowIndex,add:f,get value(){return r.getFieldValue(n.completeName)}}):null,a.map((function(e,a){var i=l.find((function(e){return E(e.editable,n.tableRowIndex)}));var t=P("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!i});return L("div",{className:t,children:[d==null?void 0:d({add:f,remove:function e(){c(a)},formListItemIndex:a,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),L(m,{children:[l.map((function(r,a){return F(le,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},a)})),i?F(de,{deleteOperateRender:s,remove:function e(){c(a)},index:a}):undefined]}),u==null?void 0:u({add:f,formListItemIndex:a,tableRowIndex:n.tableRowIndex,remove:function e(){c(a)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},a)})),o?o({tableRowIndex:n.tableRowIndex,add:f,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var de=function e(n){return F(t.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):F(s,{type:"link",danger:true,icon:F(z,{}),onClick:n.remove,children:"删除"})})};var ue=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return F(oe,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return L(b,{children:[F(le,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?F(t.Item,{hidden:true,name:n.hiddenField.dataIndex,children:F(f,{})}):null]})}}return F(ne,{name:n.name})};var me=["fieldConfig","renderMiddleware","tableChildrenColumnRender","tooltip","title","tipsWrapperProps"];var se=C((function(a,l){var o;var d=t.useFormInstance();var u=h([]);var m=p((function(){if(!a.columns)return[];return a.columns.map((function(e){var t=e.fieldConfig,l=e.renderMiddleware,o=e.tableChildrenColumnRender,d=e.tooltip,u=e.title,m=e.tipsWrapperProps,s=r(e,me);var f=x(u)||typeof u==="string";var c;if(m&&f){if(typeof m==="string"){c=F(R,{tipType:"popover",popoverProps:{content:m},children:u})}else{c=F(R,n({},m,{children:u}))}}else if(d){c=F(w,{title:u,tooltip:d})}else{c=u}return n({title:c,onCell:function e(){var n;return{valign:((n=a.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},s,{render:function n(r,d,u){if(d["_isChildrenItem"]){if(o){return o(r,d,u)}return r}var m=[].concat(i(a.name),[d.name]);var s=e.dataIndex?[].concat(m,[e.dataIndex]):m;var f=l==null?void 0:l({name:s,tableRowIndex:d.name,operation:d.operation,tableRowName:m,index:u});if(f){return f}var c=typeof t==="function"?t({name:s,tableRowIndex:d.name,tableRowName:m}):t;return F(ue,{name:e.dataIndex?[d.name,e.dataIndex]:[d.name],completeName:s,fieldConfig:c,tableRowIndex:d.name,hiddenField:e.hiddenField})}})}))}),[a.columns,a.name,(o=a.tableProps)==null?void 0:o.cellVerticalAlign]);var s=t.useWatch(a.name,d);I(l,(function(){return{getTableItemDataByFormListItemKey:function e(n){var r=u.current.find((function(e){return e.key===n}));if(r){return d.getFieldValue([].concat(i(a.name),[r.name]))}return undefined}}}));return F("div",{className:"editable-table",children:F(t.List,{name:a.name,rules:a.rules,children:function r(i,t){u.current=i;return L(b,{children:[a.onTableBeforeRender?a.onTableBeforeRender(t,i.length):null,F(c,n({scroll:{x:"max-content"},pagination:false,rowKey:"key"},a.tableProps,{dataSource:i.map((function(e){var r;var a=s==null||(r=s[e.name])==null?void 0:r.children;if(a){a.forEach((function(e){e["_isChildrenItem"]=true}))}return n({},e,{operation:t,children:a})})),columns:m})),a.onTableAfterRender?a.onTableAfterRender(t,i.length):F(j,{type:"dashed",hidden:a.hiddenFooterBtn,onClick:function e(){return t.add(a.getAddRowDefaultValues==null?void 0:a.getAddRowDefaultValues())},block:true,icon:F(e,{}),style:{marginTop:15},children:"新增"})]})}})})}));export{se as EditableTable};
17
17
  //# sourceMappingURL=index.js.map