@flatbiz/antd 4.5.55 → 4.5.56

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.
Files changed (242) hide show
  1. package/esm/ace-editor-groovy/index.js +1 -1
  2. package/esm/ace-editor-groovy/index.js.map +1 -1
  3. package/esm/ace-editor-java/index.js +1 -1
  4. package/esm/ace-editor-java/index.js.map +1 -1
  5. package/esm/ace-editor-json/index.js +1 -1
  6. package/esm/ace-editor-json/index.js.map +1 -1
  7. package/esm/ace-editor-mysql/index.js +1 -1
  8. package/esm/ace-editor-mysql/index.js.map +1 -1
  9. package/esm/ace-editor-xml/index.js +1 -1
  10. package/esm/ace-editor-xml/index.js.map +1 -1
  11. package/esm/anchor-steps/index.js +1 -1
  12. package/esm/anchor-steps/index.js.map +1 -1
  13. package/esm/bootstrap/index.js +1 -1
  14. package/esm/bootstrap/index.js.map +1 -1
  15. package/esm/box-grid/index.js +1 -1
  16. package/esm/box-grid/index.js.map +1 -1
  17. package/esm/button-operate/index.js +1 -1
  18. package/esm/button-operate/index.js.map +1 -1
  19. package/esm/button-wrapper/index.js +1 -1
  20. package/esm/button-wrapper/index.js.map +1 -1
  21. package/esm/card-layout/index.js +1 -1
  22. package/esm/card-layout/index.js.map +1 -1
  23. package/esm/cascader-wrapper/index.js +1 -1
  24. package/esm/cascader-wrapper/index.js.map +1 -1
  25. package/esm/check-list/index.js +1 -1
  26. package/esm/check-list/index.js.map +1 -1
  27. package/esm/checkbox-wrapper/index.js +1 -1
  28. package/esm/checkbox-wrapper/index.js.map +1 -1
  29. package/esm/code-render/index.css +1 -0
  30. package/esm/code-render/index.js +5 -0
  31. package/esm/code-render/index.js.map +1 -0
  32. package/esm/color-picker-wrapper/index.css +1 -1
  33. package/esm/color-picker-wrapper/index.js +1 -1
  34. package/esm/color-picker-wrapper/index.js.map +1 -1
  35. package/esm/config-provider-wrapper/index.js +1 -1
  36. package/esm/copy-wrapper/index.js +1 -1
  37. package/esm/copy-wrapper/index.js.map +1 -1
  38. package/esm/date-picker-wrapper/index.js +1 -1
  39. package/esm/date-picker-wrapper/index.js.map +1 -1
  40. package/esm/date-range-picker-wrapper/index.js +1 -1
  41. package/esm/date-range-picker-wrapper/index.js.map +1 -1
  42. package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
  43. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  44. package/esm/delete-node/index.js +1 -1
  45. package/esm/delete-node/index.js.map +1 -1
  46. package/esm/dialog-alert/index.js +1 -1
  47. package/esm/dialog-confirm/index.js +1 -1
  48. package/esm/dialog-drag-modal/index.js +1 -1
  49. package/esm/dialog-drag-modal/index.js.map +1 -1
  50. package/esm/dialog-drawer/index.js +1 -1
  51. package/esm/dialog-drawer/index.js.map +1 -1
  52. package/esm/dialog-drawer-content/index.js +1 -1
  53. package/esm/dialog-drawer-content/index.js.map +1 -1
  54. package/esm/dialog-loading/index.js +1 -1
  55. package/esm/dialog-loading/index.js.map +1 -1
  56. package/esm/dialog-modal/index.js +1 -1
  57. package/esm/dialog-modal/index.js.map +1 -1
  58. package/esm/dialog-preview-image/index.js +1 -1
  59. package/esm/dialog-preview-image/index.js.map +1 -1
  60. package/esm/drag-collapse/index.js +1 -1
  61. package/esm/drag-collapse/index.js.map +1 -1
  62. package/esm/drag-collapse-form-list/index.js +1 -1
  63. package/esm/drag-collapse-form-list/index.js.map +1 -1
  64. package/esm/drag-editable-card/index.js +1 -1
  65. package/esm/drag-editable-card/index.js.map +1 -1
  66. package/esm/drag-editable-table/index.js +1 -1
  67. package/esm/drag-editable-table/index.js.map +1 -1
  68. package/esm/drag-editable-table-pro/index.js +1 -1
  69. package/esm/drag-editable-table-pro/index.js.map +1 -1
  70. package/esm/drag-form-list/index.js +1 -1
  71. package/esm/drag-form-list/index.js.map +1 -1
  72. package/esm/drag-table/index.js +1 -1
  73. package/esm/drag-table/index.js.map +1 -1
  74. package/esm/drawer-wrapper/index.js +1 -1
  75. package/esm/drawer-wrapper/index.js.map +1 -1
  76. package/esm/dropdown-menu-wrapper/index.js +1 -1
  77. package/esm/dropdown-menu-wrapper/index.js.map +1 -1
  78. package/esm/easy-form/index.js +1 -1
  79. package/esm/easy-form/index.js.map +1 -1
  80. package/esm/easy-table/index.js +1 -1
  81. package/esm/easy-table/index.js.map +1 -1
  82. package/esm/editable-card/index.js +1 -1
  83. package/esm/editable-card/index.js.map +1 -1
  84. package/esm/editable-field/index.js +1 -1
  85. package/esm/editable-field/index.js.map +1 -1
  86. package/esm/editable-table/index.js +1 -1
  87. package/esm/editable-table/index.js.map +1 -1
  88. package/esm/editable-table-pro/index.js +1 -1
  89. package/esm/editable-table-pro/index.js.map +1 -1
  90. package/esm/editor-wrapper/index.js +1 -1
  91. package/esm/editor-wrapper/index.js.map +1 -1
  92. package/esm/fba-app/index.js +1 -1
  93. package/esm/fba-app/index.js.map +1 -1
  94. package/esm/fba-hooks/index.js +1 -1
  95. package/esm/fba-hooks/index.js.map +1 -1
  96. package/esm/fba-utils/index.js +1 -1
  97. package/esm/fba-utils/index.js.map +1 -1
  98. package/esm/file-export/index.js +1 -1
  99. package/esm/file-export/index.js.map +1 -1
  100. package/esm/file-import/index.js +1 -1
  101. package/esm/file-import/index.js.map +1 -1
  102. package/esm/file-select/index.js +1 -1
  103. package/esm/file-select/index.js.map +1 -1
  104. package/esm/flex-layout/index.js +1 -1
  105. package/esm/flex-layout/index.js.map +1 -1
  106. package/esm/form-grid/index.js +1 -1
  107. package/esm/form-grid/index.js.map +1 -1
  108. package/esm/form-item-group/index.js +1 -1
  109. package/esm/form-item-group/index.js.map +1 -1
  110. package/esm/form-item-text/index.js +1 -1
  111. package/esm/form-item-text/index.js.map +1 -1
  112. package/esm/form-item-wrapper/index.js +1 -1
  113. package/esm/form-item-wrapper/index.js.map +1 -1
  114. package/esm/form-list-wrapper/index.js +1 -1
  115. package/esm/form-list-wrapper/index.js.map +1 -1
  116. package/esm/form-wrapper/index.js +1 -1
  117. package/esm/form-wrapper/index.js.map +1 -1
  118. package/esm/full-screen/index.js +1 -1
  119. package/esm/full-screen/index.js.map +1 -1
  120. package/esm/icon-wrapper/index.js +1 -1
  121. package/esm/icon-wrapper/index.js.map +1 -1
  122. package/esm/{index-83bede1b.js → index-853b36e6.js} +2 -2
  123. package/esm/{index-83bede1b.js.map → index-853b36e6.js.map} +1 -1
  124. package/esm/index.js +2 -1
  125. package/esm/input-search-wrapper/index.js +1 -1
  126. package/esm/input-search-wrapper/index.js.map +1 -1
  127. package/esm/input-text-area-wrapper/index.js +1 -1
  128. package/esm/input-text-area-wrapper/index.js.map +1 -1
  129. package/esm/input-wrapper/index.js +1 -1
  130. package/esm/input-wrapper/index.js.map +1 -1
  131. package/esm/json-editor/index.js +1 -1
  132. package/esm/json-editor/index.js.map +1 -1
  133. package/esm/label-value-layout/index.js +1 -1
  134. package/esm/label-value-layout/index.js.map +1 -1
  135. package/esm/label-value-render/index.js +1 -1
  136. package/esm/label-value-render/index.js.map +1 -1
  137. package/esm/local-loading/index.js +1 -1
  138. package/esm/local-loading/index.js.map +1 -1
  139. package/esm/mention-editor/index.js +1 -1
  140. package/esm/mention-editor/index.js.map +1 -1
  141. package/esm/mentions-wrapper/index.js +1 -1
  142. package/esm/mentions-wrapper/index.js.map +1 -1
  143. package/esm/modal-action/index.js +1 -1
  144. package/esm/modal-action/index.js.map +1 -1
  145. package/esm/modal-wrapper/index.js +1 -1
  146. package/esm/modal-wrapper/index.js.map +1 -1
  147. package/esm/number-range-form-item/index.js +1 -1
  148. package/esm/number-range-form-item/index.js.map +1 -1
  149. package/esm/pdf/index.js +1 -1
  150. package/esm/pdf/index.js.map +1 -1
  151. package/esm/pdf-preview/index.js +1 -1
  152. package/esm/pdf-preview/index.js.map +1 -1
  153. package/esm/radio-group-wrapper/index.js +1 -1
  154. package/esm/radio-group-wrapper/index.js.map +1 -1
  155. package/esm/relation-tree/index.js +1 -1
  156. package/esm/relation-tree/index.js.map +1 -1
  157. package/esm/request-status/index.js +1 -1
  158. package/esm/request-status/index.js.map +1 -1
  159. package/esm/resizable-drawer/index.js +1 -1
  160. package/esm/resizable-drawer/index.js.map +1 -1
  161. package/esm/rich-text-editor/index.js +1 -1
  162. package/esm/rich-text-editor/index.js.map +1 -1
  163. package/esm/rich-text-viewer/index.js +1 -1
  164. package/esm/rich-text-viewer/index.js.map +1 -1
  165. package/esm/roll-location-center/index.js +1 -1
  166. package/esm/roll-location-center/index.js.map +1 -1
  167. package/esm/roll-location-in-view/index.js +1 -1
  168. package/esm/roll-location-in-view/index.js.map +1 -1
  169. package/esm/rule-describe/index.js +1 -1
  170. package/esm/rule-describe/index.js.map +1 -1
  171. package/esm/search-form/index.js +1 -1
  172. package/esm/search-form/index.js.map +1 -1
  173. package/esm/search-menu/index.js +1 -1
  174. package/esm/search-menu/index.js.map +1 -1
  175. package/esm/selector-wrapper/index.js +1 -1
  176. package/esm/selector-wrapper/index.js.map +1 -1
  177. package/esm/selector-wrapper-search/index.js +1 -1
  178. package/esm/selector-wrapper-search/index.js.map +1 -1
  179. package/esm/selector-wrapper-simple/index.js +1 -1
  180. package/esm/selector-wrapper-simple/index.js.map +1 -1
  181. package/esm/simple-layout/index.js +1 -1
  182. package/esm/simple-layout/index.js.map +1 -1
  183. package/esm/sms-count-down/index.js +1 -1
  184. package/esm/sms-count-down/index.js.map +1 -1
  185. package/esm/split-wrapper/index.js +1 -1
  186. package/esm/split-wrapper/index.js.map +1 -1
  187. package/esm/styles/index.css +1 -1
  188. package/esm/svg-http-view/index.js +1 -1
  189. package/esm/svg-http-view/index.js.map +1 -1
  190. package/esm/switch-confirm-wrapper/index.js +1 -1
  191. package/esm/switch-confirm-wrapper/index.js.map +1 -1
  192. package/esm/switch-wrapper/index.js +1 -1
  193. package/esm/switch-wrapper/index.js.map +1 -1
  194. package/esm/table-cell-render/index.js +1 -1
  195. package/esm/table-cell-render/index.js.map +1 -1
  196. package/esm/table-scrollbar/index.js +1 -1
  197. package/esm/table-scrollbar/index.js.map +1 -1
  198. package/esm/tabs-sticky/index.js +1 -1
  199. package/esm/tabs-sticky/index.js.map +1 -1
  200. package/esm/tabs-wrapper/index.js +1 -1
  201. package/esm/tabs-wrapper/index.js.map +1 -1
  202. package/esm/tag-group/index.js +1 -1
  203. package/esm/tag-group/index.js.map +1 -1
  204. package/esm/tag-list-render/index.js +1 -1
  205. package/esm/tag-list-render/index.js.map +1 -1
  206. package/esm/tag-list-select/index.js +1 -1
  207. package/esm/tag-list-select/index.js.map +1 -1
  208. package/esm/tag-wrapper/index.js +1 -1
  209. package/esm/tag-wrapper/index.js.map +1 -1
  210. package/esm/text-css-ellipsis/index.js +1 -1
  211. package/esm/text-css-ellipsis/index.js.map +1 -1
  212. package/esm/text-overflow/index.js +1 -1
  213. package/esm/text-overflow/index.js.map +1 -1
  214. package/esm/text-overflow-render/index.js +1 -1
  215. package/esm/text-symbol-wrapper/index.js +1 -1
  216. package/esm/text-symbol-wrapper/index.js.map +1 -1
  217. package/esm/time-ea73b2fb.js +3 -0
  218. package/esm/{time-53b3f55f.js.map → time-ea73b2fb.js.map} +1 -1
  219. package/esm/time-picker-wrapper/index.js +1 -1
  220. package/esm/time-picker-wrapper/index.js.map +1 -1
  221. package/esm/time-range-picker-wrapper/index.js +1 -1
  222. package/esm/time-range-picker-wrapper/index.js.map +1 -1
  223. package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
  224. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  225. package/esm/tree-modal/index.js +1 -1
  226. package/esm/tree-modal/index.js.map +1 -1
  227. package/esm/tree-modal-selector/index.js +1 -1
  228. package/esm/tree-modal-selector/index.js.map +1 -1
  229. package/esm/tree-selector-wrapper/index.js +1 -1
  230. package/esm/tree-selector-wrapper/index.js.map +1 -1
  231. package/esm/tree-wrapper/index.js +1 -1
  232. package/esm/tree-wrapper/index.js.map +1 -1
  233. package/esm/upload-wrapper/index.js +1 -1
  234. package/esm/upload-wrapper/index.js.map +1 -1
  235. package/esm/use-responsive-point-1e6d93d9.js +3 -0
  236. package/esm/{use-responsive-point-21b8c601.js.map → use-responsive-point-1e6d93d9.js.map} +1 -1
  237. package/esm/x-mind-preview/index.js +1 -1
  238. package/esm/x-mind-preview/index.js.map +1 -1
  239. package/index.d.ts +43 -4
  240. package/package.json +4 -5
  241. package/esm/time-53b3f55f.js +0 -3
  242. package/esm/use-responsive-point-21b8c601.js +0 -3
@@ -16,5 +16,5 @@ import './../form-item-wrapper/index.css';
16
16
  import './../tips-wrapper/index.css';
17
17
  import './index.css';
18
18
  /*! @flatjs/forge MIT @flatbiz/antd */
19
- import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{_ as n}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as i}from"@wove/react/cjs/hooks";import{toArray as o,isUndefinedOrNull as t}from"@flatbiz/utils";import{Form as a,ConfigProvider as l,Empty as d}from"antd";import{useRef as s,Fragment as m,createElement as u,isValidElement as p}from"react";import{useBoxBreakpoint as c,BoxGrid as f}from"../box-grid/index.js";import{ButtonWrapper as v}from"../button-wrapper/index.js";import{CardWrapper as y}from"../card-wrapper/index.js";import{DeleteNode as g}from"../delete-node/index.js";import{EasyForm as j}from"../easy-form/index.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{fbaUtils as b}from"../fba-utils/index.js";import{FormItemHidden as x}from"../form-item-hidden/index.js";import{FormItemWrapper as C}from"../form-item-wrapper/index.js";import{TipsWrapper as k}from"../tips-wrapper/index.js";import{jsx as w,jsxs as I}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-83bede1b.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"@dimjs/utils/cjs/extend";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/model";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/DeleteOutlined";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-undefined";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var F=function F(R){var N=a.useFormInstance();var P=o(R.formListName);var E=s();var D=i.useForceUpdate();var q=l.useConfig(),B=q.componentDisabled;var V=s(null);var L=c(V);var S=R.formListCompleteName||P;var _=i.useCallbackRef((function(e,r){return new Promise((function(n,i){return Promise.resolve(N.validateFields(r.map((function(r){return[].concat(e,o(r))})))).then((function(e){try{return n()}catch(e){return i(e)}}),i)}))}));var O=i.useCallbackRef((function(e){return N.getFieldValue(e)}));var z=i.useCallbackRef((function(e,r){b.setFormFieldsAndTriggerValuesChange(N,r.map((function(r){return{name:[].concat(S,[e],o(r.name)),value:r.value}})));D()}));var A=h.useMemoCustom((function(){return R.columns.map((function(e){var r;var i=e.title;var a=i;if(e.tips){a=w(k,{tipType:"popover",popoverProps:{content:e.tips},children:i})}var l=e.required;if(!l&&typeof e.formItemProps==="object"&&(r=e.formItemProps.rules)!=null&&r.length){l=!!e.formItemProps.rules.find((function(e){return!!e["required"]}))}var d=o(e["dataIndex"]);return{dataIndex:d,render:function r(i,o,s){var p;var c=N.getFieldValue([].concat(S,[o.name],d));if(t(e.render)){return w(m,{children:c})}var f=[].concat(S,[o.name]);var v=typeof(e==null?void 0:e.editable)==="function"?e==null?void 0:e.editable({index:i,getCurrentRowData:O.bind(null,f)},i):e==null?void 0:e.editable;var y={index:i,editable:v,add:s.add,remove:s.remove,move:s.move,rowFormItemName:o.name,rowFormItemCompleteName:f,setCurrentRowField:z.bind(null,o.name),validateRowFields:_.bind(null,f),getCurrentRowData:O.bind(null,f),forceUpdate:D};if(e.remove!=null&&e.remove(y,i)){return w(m,{})}if(e.hidden!=null&&e.hidden(y,i)){return w(x,{name:[o.name].concat(d)},o.key)}var g=typeof e.formItemProps==="function"?e.formItemProps(y):e.formItemProps;if(!((p=g)!=null&&(p=p.rules)!=null&&p.length)&&l){g=n({},g,{rules:[{required:true,message:""}]})}if(v===true){if(e.formItemContainer){return e.formItemContainer(u(C,n({label:a},g,{name:[o.name].concat(d),span:e.gridNumber,key:o.key}),e.render==null?void 0:e.render(y)))}return u(C,n({label:a},g,{name:[o.name].concat(d),span:e.gridNumber,key:o.key}),e.render==null?void 0:e.render(y))}if(e.formItemContainer){return e.formItemContainer(w(C,n({label:a,span:e.gridNumber},g,{children:e.render==null?void 0:e.render(y)}),o.key))}return w(C,n({label:a,span:e.gridNumber},g,{children:e.render==null?void 0:e.render(y)}),o.key)}}}))}),[R.columns,N,S,z,_,O,D]);var G=r("editable-card",R.className);return w("div",{className:G,style:R.style,ref:V,children:w(a.List,{name:P,rules:R.rules,initialValue:R.initialValue,children:function r(i,o,t){var l=t.errors;E.current=o;return I("div",{style:{borderRadius:"6px",border:l!=null&&l.length?"1px solid #ff4d4f":"1px solid transparent"},children:[R.contentBeforeRender==null?void 0:R.contentBeforeRender(o,i.length),R.onCustomWrapper?i.map((function(e,r){var t;var a={index:r,fields:i,fieldItem:e,operation:o,required:R.required,key:""+e.key};return w(m,{children:R.onCustomWrapper==null?void 0:R.onCustomWrapper(w(j,n({},R.cardEasyFormProps,{style:n({padding:0,margin:0},(t=R.cardEasyFormProps)==null?void 0:t.style),children:A.map((function(n){return n.render(r,e,o)}))})),a)},e.key)})):w(f.Row,{children:i.map((function(e,r){var t;var a=R.onCustomGroupName?R.onCustomGroupName(r):r+1;var l={index:r,fields:i,fieldItem:e,operation:o,required:R.required,key:""+e.key};var d=R.cardExtraRender==null?void 0:R.cardExtraRender(l);var s=["xs","sm"].includes(L.boxBreakpoint)?24:R.boxGridColSpan;return w(f.Col,{span:s||24,children:w(y,{className:R.cardClassName,title:a,size:"small",style:n({padding:0},R.cardStyle),bodyStyle:{paddingBottom:0},extra:p(d)?d:I("div",{style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[d==null?void 0:d["before"],w(g,{style:{color:"red"},hidden:R.hiddenDeleteBtn||R.required&&i.length===1||B,onDelete:function e(){o.remove(r)}}),d==null?void 0:d["after"]]}),children:w(j,n({},R.cardEasyFormProps,{style:n({padding:0,margin:0},(t=R.cardEasyFormProps)==null?void 0:t.style),children:A.map((function(n){return n.render(r,e,o)}))}))})},e.key)}))}),i.length===0?w("div",{className:"editable-card-empty",children:w(d,{image:d.PRESENTED_IMAGE_SIMPLE})}):null,w(v,{block:true,hidden:R.hiddenFooterBtn||B,type:"dashed",icon:w(e,{}),onClick:function e(){var r=R.addRowDefaultValues==null?void 0:R.addRowDefaultValues();o.add(n({},r))},children:R.addRowBtnName||"新增"}),R.contentAfterRender==null?void 0:R.contentAfterRender(o,i.length),l.length?w(a.ErrorList,{errors:[w("div",{style:{color:"#ff4d4f",padding:"5px"},children:l},"0")]}):null]})}})})};export{F as EditableCard};
19
+ import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{_ as n}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as i}from"@wove/react/cjs/hooks";import{toArray as o,isUndefinedOrNull as t}from"@flatbiz/utils";import{Form as a,ConfigProvider as d,Empty as l}from"antd";import{useRef as s,Fragment as m,createElement as u,isValidElement as p}from"react";import{useBoxBreakpoint as c,BoxGrid as f}from"../box-grid/index.js";import{ButtonWrapper as v}from"../button-wrapper/index.js";import{CardWrapper as y}from"../card-wrapper/index.js";import{DeleteNode as g}from"../delete-node/index.js";import{EasyForm as j}from"../easy-form/index.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{fbaUtils as b}from"../fba-utils/index.js";import{FormItemHidden as x}from"../form-item-hidden/index.js";import{FormItemWrapper as C}from"../form-item-wrapper/index.js";import{TipsWrapper as k}from"../tips-wrapper/index.js";import{jsx as w,jsxs as I}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-853b36e6.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"@dimjs/utils/cjs/extend";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/model";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/DeleteOutlined";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-undefined";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var F=function F(R){var N=a.useFormInstance();var P=o(R.formListName);var E=s();var D=i.useForceUpdate();var q=d.useConfig(),B=q.componentDisabled;var V=s(null);var L=c(V);var S=R.formListCompleteName||P;var _=i.useCallbackRef(function(e,r){return new Promise(function(n,i){return Promise.resolve(N.validateFields(r.map(function(r){return[].concat(e,o(r))}))).then(function(e){try{return n()}catch(e){return i(e)}},i)})});var O=i.useCallbackRef(function(e){return N.getFieldValue(e)});var z=i.useCallbackRef(function(e,r){b.setFormFieldsAndTriggerValuesChange(N,r.map(function(r){return{name:[].concat(S,[e],o(r.name)),value:r.value}}));D()});var A=h.useMemoCustom(function(){return R.columns.map(function(e){var r,i;var a=e.title;var d=a;if(e.tips){d=w(k,{tipType:"popover",popoverProps:{content:e.tips},children:a})}var l=e.required;if(!l&&typeof e.formItemProps==="object"&&(r=e.formItemProps.rules)!=null&&r.length){l=!!e.formItemProps.rules.find(function(e){return!!e["required"]})}var s=o(e["dataIndex"]);s=(i=s)!=null&&i.length?s:undefined;return{dataIndex:s,render:function r(i,o,a){var p;if(s){var c=N.getFieldValue([].concat(S,[o.name],s));if(t(e.render)){return w(m,{children:c})}}var f=[].concat(S,[o.name]);var v=false;if(s){v=typeof(e==null?void 0:e.editable)==="function"?e==null?void 0:e.editable({index:i,getCurrentRowData:O.bind(null,f)},i):e==null?void 0:e.editable}var y={index:i,editable:v,add:a.add,remove:a.remove,move:a.move,rowFormItemName:o.name,rowFormItemCompleteName:f,setCurrentRowField:z.bind(null,o.name),validateRowFields:_.bind(null,f),getCurrentRowData:O.bind(null,f),forceUpdate:D};if(e.remove!=null&&e.remove(y,i)){return w(m,{})}if(e.hidden!=null&&e.hidden(y,i)){return w(x,{name:s?[o.name].concat(s):undefined},o.key)}var g=typeof e.formItemProps==="function"?e.formItemProps(y):e.formItemProps;if(!((p=g)!=null&&(p=p.rules)!=null&&p.length)&&l){g=n({},g,{rules:[{required:true,message:""}]})}if(v===true){if(e.formItemContainer){return e.formItemContainer(u(C,n({label:d},g,{name:s?[o.name].concat(s):undefined,span:e.gridNumber,key:o.key}),e.render==null?void 0:e.render(y)))}return u(C,n({label:d},g,{name:s?[o.name].concat(s):undefined,span:e.gridNumber,key:o.key}),e.render==null?void 0:e.render(y))}if(e.formItemContainer){return e.formItemContainer(w(C,n({label:d,span:e.gridNumber},g,{children:e.render==null?void 0:e.render(y)}),o.key))}return w(C,n({label:d,span:e.gridNumber},g,{children:e.render==null?void 0:e.render(y)}),o.key)}}})},[R.columns,N,S,z,_,O,D]);var G=r("editable-card",R.className);return w("div",{className:G,style:R.style,ref:V,children:w(a.List,{name:P,rules:R.rules,initialValue:R.initialValue,children:function r(i,o,t){var d=t.errors;E.current=o;return I("div",{style:{borderRadius:"6px",border:d!=null&&d.length?"1px solid #ff4d4f":"1px solid transparent"},children:[R.contentBeforeRender==null?void 0:R.contentBeforeRender(o,i.length),R.onCustomWrapper?i.map(function(e,r){var t;var a={index:r,fields:i,fieldItem:e,operation:o,required:R.required,key:""+e.key};return w(m,{children:R.onCustomWrapper==null?void 0:R.onCustomWrapper(w(j,n({},R.cardEasyFormProps,{style:n({padding:0,margin:0},(t=R.cardEasyFormProps)==null?void 0:t.style),children:A.map(function(n){return n.render(r,e,o)})})),a)},e.key)}):w(f.Row,{children:i.map(function(e,r){var t;var a=R.onCustomGroupName?R.onCustomGroupName(r):r+1;var d={index:r,fields:i,fieldItem:e,operation:o,required:R.required,key:""+e.key};var l=R.cardExtraRender==null?void 0:R.cardExtraRender(d);var s=["xs","sm"].includes(L.boxBreakpoint)?24:R.boxGridColSpan;return w(f.Col,{span:s||24,children:w(y,{className:R.cardClassName,title:a,size:"small",style:n({padding:0,margin:"0 0 15px 0"},R.cardStyle),bodyStyle:{paddingBottom:0},extra:p(l)?l:I("div",{style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[l==null?void 0:l["before"],w(g,{style:{color:"red"},hidden:R.hiddenDeleteBtn||R.required&&i.length===1||B,onDelete:function e(){o.remove(r)}}),l==null?void 0:l["after"]]}),children:w(j,n({},R.cardEasyFormProps,{style:n({padding:0,margin:0},(t=R.cardEasyFormProps)==null?void 0:t.style),children:A.map(function(n){return n.render(r,e,o)})}))},e.key)},e.key)})}),i.length===0?w("div",{className:"editable-card-empty",children:w(l,{image:l.PRESENTED_IMAGE_SIMPLE})}):null,w(v,{block:true,hidden:R.hiddenFooterBtn||B,type:"dashed",icon:w(e,{}),onClick:function e(){var r=R.addRowDefaultValues==null?void 0:R.addRowDefaultValues();o.add(n({},r))},children:R.addRowBtnName||"新增"}),R.contentAfterRender==null?void 0:R.contentAfterRender(o,i.length),d.length?w(a.ErrorList,{errors:[w("div",{style:{color:"#ff4d4f",padding:"5px"},children:d},"0")]}):null]})}})})};export{F as EditableCard};
20
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-card/editable-card.tsx"],"sourcesContent":["import { PlusOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\n\nimport type { TAny } from '@flatbiz/utils';\nimport { isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ConfigProvider, Empty, Form, FormListFieldData, type FormListOperation } from 'antd';\nimport type { ReactElement } from 'react';\nimport { Fragment, isValidElement, useRef } from 'react';\nimport { BoxGrid, useBoxBreakpoint } from '../box-grid';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { CardWrapper } from '../card-wrapper';\nimport { DeleteNode } from '../delete-node';\nimport { EasyForm } from '../easy-form';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { TipsWrapper } from '../tips-wrapper';\nimport './style.less';\nimport type { EditableCardDataIndex, EditableCardOperation, EditableCardProps } from './type';\n\n/**\n * 使用FormList实现可编辑卡片\n * ```\n * 1. 必须在外部包裹Form组件或者EasyForm组件\n * 2. 行内需要联动逻辑可使用 column.render.operation.setCurrentRowField 方法\n * 3. 可使用DragEditableCard组件实现拖拽排序\n *\n * demo\n * https://fex.qa.tcshuke.com/docs/admin/main/form/grid\n * ```\n */\nexport const EditableCard = (props: EditableCardProps) => {\n const form = Form.useFormInstance();\n const formListName = toArray<string | number>(props.formListName);\n\n const formListOperationRef = useRef<FormListOperation>();\n const forceUpdate = hooks.useForceUpdate();\n const { componentDisabled } = ConfigProvider.useConfig();\n\n const comRef = useRef<HTMLDivElement>(null);\n const boxBreakpointApi = useBoxBreakpoint(comRef);\n\n const formListCompleteName = props.formListCompleteName || formListName;\n\n const validateRowFields = hooks.useCallbackRef(\n async (formItemPrevName: Array<string | number>, nameList: EditableCardDataIndex[]) => {\n await form.validateFields(\n nameList.map((item) => [...formItemPrevName, ...toArray<string | number>(item)]),\n );\n },\n );\n const getCurrentRowData = hooks.useCallbackRef((formItemPrevName: Array<string | number>) => {\n return form.getFieldValue(formItemPrevName);\n });\n\n const setCurrentRowField = hooks.useCallbackRef(\n (\n formItemPrevName: string | number,\n dataIndexConfigs: {\n name: EditableCardDataIndex;\n value?: TAny;\n }[],\n ) => {\n fbaUtils.setFormFieldsAndTriggerValuesChange(\n form,\n dataIndexConfigs.map((item) => {\n return {\n name: [...formListCompleteName, formItemPrevName, ...toArray<string | number>(item.name)],\n value: item.value,\n };\n }),\n );\n forceUpdate();\n },\n );\n\n const columns = fbaHooks.useMemoCustom(() => {\n return props.columns.map((column) => {\n const title = column.title;\n let titleRender: ReactElement | string | undefined = title;\n if (column.tips) {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: column.tips }}>\n {title}\n </TipsWrapper>\n );\n }\n\n let required = column.required;\n\n if (!required && typeof column.formItemProps === 'object' && column.formItemProps.rules?.length) {\n required = !!column.formItemProps.rules.find((item) => !!item['required']);\n }\n\n const dataIndex = toArray<string>(column['dataIndex']);\n\n return {\n dataIndex,\n render: (index, fieldData: FormListFieldData, operation: FormListOperation) => {\n const value = form.getFieldValue([...formListCompleteName, fieldData.name, ...dataIndex]);\n if (isUndefinedOrNull(column.render)) {\n return <Fragment>{value}</Fragment>;\n }\n\n const rowFormItemCompleteName = [...formListCompleteName, fieldData.name];\n\n const editable =\n typeof column?.editable === 'function'\n ? column?.editable(\n {\n index,\n getCurrentRowData: getCurrentRowData.bind(null, rowFormItemCompleteName),\n },\n index,\n )\n : column?.editable;\n\n const renderOperationProps: EditableCardOperation = {\n index,\n editable,\n add: operation.add,\n remove: operation.remove,\n move: operation.move,\n rowFormItemName: fieldData.name,\n rowFormItemCompleteName,\n setCurrentRowField: setCurrentRowField.bind(null, fieldData.name),\n validateRowFields: validateRowFields.bind(null, rowFormItemCompleteName),\n getCurrentRowData: getCurrentRowData.bind(null, rowFormItemCompleteName),\n forceUpdate,\n };\n\n if (column.remove?.(renderOperationProps, index)) {\n return <Fragment />;\n }\n\n if (column.hidden?.(renderOperationProps, index)) {\n return <FormItemHidden name={[fieldData.name, ...dataIndex]} key={fieldData.key} />;\n }\n let formItemProps =\n typeof column.formItemProps === 'function'\n ? column.formItemProps(renderOperationProps)\n : column.formItemProps;\n\n if (!formItemProps?.rules?.length && required) {\n formItemProps = {\n ...formItemProps,\n rules: [{ required: true, message: '' }],\n };\n }\n\n if (editable === true) {\n if (column.formItemContainer) {\n return column.formItemContainer(\n <FormItemWrapper\n label={titleRender}\n {...formItemProps}\n name={[fieldData.name, ...dataIndex]}\n span={column.gridNumber}\n key={fieldData.key}\n >\n {column.render?.(renderOperationProps) as React.ReactNode}\n </FormItemWrapper>,\n );\n }\n return (\n <FormItemWrapper\n label={titleRender}\n {...formItemProps}\n name={[fieldData.name, ...dataIndex]}\n span={column.gridNumber}\n key={fieldData.key}\n >\n {column.render?.(renderOperationProps) as React.ReactNode}\n </FormItemWrapper>\n );\n }\n if (column.formItemContainer) {\n return column.formItemContainer(\n <FormItemWrapper\n label={titleRender}\n span={column.gridNumber}\n key={fieldData.key}\n {...formItemProps}\n >\n {column.render?.(renderOperationProps)}\n </FormItemWrapper>,\n );\n }\n return (\n <FormItemWrapper\n label={titleRender}\n span={column.gridNumber}\n key={fieldData.key}\n {...formItemProps}\n >\n {column.render?.(renderOperationProps)}\n </FormItemWrapper>\n );\n },\n };\n });\n }, [\n props.columns,\n form,\n formListCompleteName,\n setCurrentRowField,\n validateRowFields,\n getCurrentRowData,\n forceUpdate,\n ]);\n\n const className = classNames('editable-card', props.className);\n\n return (\n <div className={className} style={props.style} ref={comRef}>\n <Form.List name={formListName} rules={props.rules} initialValue={props.initialValue}>\n {(fields, formListOperation, { errors }) => {\n formListOperationRef.current = formListOperation;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.contentBeforeRender?.(formListOperation, fields.length)}\n {props.onCustomWrapper ? (\n fields.map((fieldItem, index) => {\n const extraData = {\n index,\n fields,\n fieldItem,\n operation: formListOperation,\n required: props.required,\n key: `${fieldItem.key}`,\n };\n return (\n <Fragment key={fieldItem.key}>\n {props.onCustomWrapper?.(\n <EasyForm\n {...props.cardEasyFormProps}\n style={{\n padding: 0,\n margin: 0,\n ...props.cardEasyFormProps?.style,\n }}\n >\n {columns.map((column) => {\n return column.render(index, fieldItem, formListOperation);\n })}\n </EasyForm>,\n extraData,\n )}\n </Fragment>\n );\n })\n ) : (\n <BoxGrid.Row>\n {fields.map((fieldItem, index) => {\n const title = props.onCustomGroupName ? props.onCustomGroupName(index) : index + 1;\n\n const extraData = {\n index,\n fields,\n fieldItem,\n operation: formListOperation,\n required: props.required,\n key: `${fieldItem.key}`,\n };\n\n const cardExtraRenderResult = props.cardExtraRender?.(extraData);\n const span = ['xs', 'sm'].includes(boxBreakpointApi.boxBreakpoint)\n ? 24\n : props.boxGridColSpan;\n return (\n <BoxGrid.Col span={span || 24} key={fieldItem.key}>\n <CardWrapper\n className={props.cardClassName}\n title={title}\n size=\"small\"\n style={{\n padding: 0,\n ...props.cardStyle,\n }}\n bodyStyle={{ paddingBottom: 0 }}\n extra={\n isValidElement(cardExtraRenderResult) ? (\n cardExtraRenderResult\n ) : (\n <div\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n }}\n >\n {cardExtraRenderResult?.['before']}\n <DeleteNode\n style={{ color: 'red' }}\n hidden={\n props.hiddenDeleteBtn ||\n (props.required && fields.length === 1) ||\n componentDisabled\n }\n onDelete={() => {\n formListOperation.remove(index);\n }}\n />\n {cardExtraRenderResult?.['after']}\n </div>\n )\n }\n >\n <EasyForm\n {...props.cardEasyFormProps}\n style={{\n padding: 0,\n margin: 0,\n ...props.cardEasyFormProps?.style,\n }}\n >\n {columns.map((column) => {\n return column.render(index, fieldItem, formListOperation);\n })}\n </EasyForm>\n </CardWrapper>\n </BoxGrid.Col>\n );\n })}\n </BoxGrid.Row>\n )}\n\n {fields.length === 0 ? (\n <div className=\"editable-card-empty\">\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\n </div>\n ) : null}\n <ButtonWrapper\n block\n hidden={props.hiddenFooterBtn || componentDisabled}\n type=\"dashed\"\n icon={<PlusOutlined />}\n onClick={() => {\n const defaultValues = props.addRowDefaultValues?.();\n formListOperation.add({ ...defaultValues });\n }}\n >\n {props.addRowBtnName || '新增'}\n </ButtonWrapper>\n {props.contentAfterRender?.(formListOperation, fields.length)}\n {errors.length ? (\n <Form.ErrorList\n errors={[\n <div style={{ color: '#ff4d4f', padding: '5px' }} key=\"0\">\n {errors}\n </div>,\n ]}\n />\n ) : null}\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["EditableCard","props","form","Form","useFormInstance","formListName","toArray","formListOperationRef","useRef","forceUpdate","_hooks","useForceUpdate","_ConfigProvider$useCo","ConfigProvider","useConfig","componentDisabled","comRef","boxBreakpointApi","useBoxBreakpoint","formListCompleteName","validateRowFields","useCallbackRef","formItemPrevName","nameList","Promise","$return","$error","resolve","validateFields","map","item","concat","then","$await_1","$boundEx","getCurrentRowData","getFieldValue","setCurrentRowField","dataIndexConfigs","fbaUtils","setFormFieldsAndTriggerValuesChange","name","value","columns","fbaHooks","useMemoCustom","column","_column$formItemProps","title","titleRender","tips","_jsx","TipsWrapper","tipType","popoverProps","content","children","required","formItemProps","rules","length","find","dataIndex","render","index","fieldData","operation","_formItemProps","isUndefinedOrNull","Fragment","rowFormItemCompleteName","editable","bind","renderOperationProps","add","remove","move","rowFormItemName","hidden","FormItemHidden","key","_extends","message","formItemContainer","_createElement","FormItemWrapper","label","span","gridNumber","className","_classNames","style","ref","List","initialValue","fields","formListOperation","_ref","errors","current","_jsxs","borderRadius","border","contentBeforeRender","onCustomWrapper","fieldItem","_props$cardEasyFormPr","extraData","EasyForm","cardEasyFormProps","padding","margin","BoxGrid","Row","_props$cardEasyFormPr2","onCustomGroupName","cardExtraRenderResult","cardExtraRender","includes","boxBreakpoint","boxGridColSpan","Col","CardWrapper","cardClassName","size","cardStyle","bodyStyle","paddingBottom","extra","isValidElement","display","alignItems","gap","DeleteNode","color","hiddenDeleteBtn","onDelete","Empty","image","PRESENTED_IMAGE_SIMPLE","ButtonWrapper","block","hiddenFooterBtn","type","icon","_PlusOutlined","onClick","defaultValues","addRowDefaultValues","addRowBtnName","contentAfterRender","ErrorList"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-card/editable-card.tsx"],"sourcesContent":["import { PlusOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\n\nimport type { TAny } from '@flatbiz/utils';\nimport { isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ConfigProvider, Empty, Form, FormListFieldData, type FormListOperation } from 'antd';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Fragment, isValidElement, useRef } from 'react';\nimport { BoxGrid, useBoxBreakpoint } from '../box-grid';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { CardWrapper } from '../card-wrapper';\nimport { DeleteNode } from '../delete-node';\nimport { EasyForm } from '../easy-form';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { TipsWrapper } from '../tips-wrapper';\nimport './style.less';\nimport type { EditableCardDataIndex, EditableCardOperation, EditableCardProps } from './type';\n\n/**\n * 使用FormList实现可编辑卡片\n * ```\n * 1. 必须在外部包裹Form组件或者EasyForm组件\n * 2. 行内需要联动逻辑可使用 column.render.operation.setCurrentRowField 方法\n * 3. 可使用DragEditableCard组件实现拖拽排序\n *\n * demo\n * https://fex.qa.tcshuke.com/docs/admin/main/form/grid\n * ```\n */\nexport const EditableCard = (props: EditableCardProps) => {\n const form = Form.useFormInstance();\n const formListName = toArray<string | number>(props.formListName);\n\n const formListOperationRef = useRef<FormListOperation>();\n const forceUpdate = hooks.useForceUpdate();\n const { componentDisabled } = ConfigProvider.useConfig();\n const comRef = useRef<HTMLDivElement>(null);\n const boxBreakpointApi = useBoxBreakpoint(comRef);\n\n const formListCompleteName = props.formListCompleteName || formListName;\n\n const validateRowFields = hooks.useCallbackRef(\n async (formItemPrevName: Array<string | number>, nameList: EditableCardDataIndex[]) => {\n await form.validateFields(\n nameList.map((item) => [...formItemPrevName, ...toArray<string | number>(item)]),\n );\n },\n );\n const getCurrentRowData = hooks.useCallbackRef((formItemPrevName: Array<string | number>) => {\n return form.getFieldValue(formItemPrevName);\n });\n\n const setCurrentRowField = hooks.useCallbackRef(\n (\n formItemPrevName: string | number,\n dataIndexConfigs: {\n name: EditableCardDataIndex;\n value?: TAny;\n }[],\n ) => {\n fbaUtils.setFormFieldsAndTriggerValuesChange(\n form,\n dataIndexConfigs.map((item) => {\n return {\n name: [...formListCompleteName, formItemPrevName, ...toArray<string | number>(item.name)],\n value: item.value,\n };\n }),\n );\n forceUpdate();\n },\n );\n\n const columns = fbaHooks.useMemoCustom(() => {\n return props.columns.map((column) => {\n const title = column.title;\n let titleRender: ReactElement | string | undefined = title;\n if (column.tips) {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: column.tips }}>\n {title}\n </TipsWrapper>\n );\n }\n\n let required = column.required;\n\n if (!required && typeof column.formItemProps === 'object' && column.formItemProps.rules?.length) {\n required = !!column.formItemProps.rules.find((item) => !!item['required']);\n }\n\n let dataIndex: string[] | undefined = toArray<string>(column['dataIndex']);\n\n dataIndex = dataIndex?.length ? dataIndex : undefined;\n\n return {\n dataIndex,\n render: (index, fieldData: FormListFieldData, operation: FormListOperation) => {\n if (dataIndex) {\n const value = form.getFieldValue([...formListCompleteName, fieldData.name, ...dataIndex]);\n if (isUndefinedOrNull(column.render)) {\n return <Fragment>{value}</Fragment>;\n }\n }\n\n const rowFormItemCompleteName = [...formListCompleteName, fieldData.name];\n\n let editable = false;\n\n if (dataIndex) {\n editable =\n typeof column?.editable === 'function'\n ? column?.editable(\n {\n index,\n getCurrentRowData: getCurrentRowData.bind(null, rowFormItemCompleteName),\n },\n index,\n )\n : column?.editable;\n }\n\n const renderOperationProps: EditableCardOperation = {\n index,\n editable,\n add: operation.add,\n remove: operation.remove,\n move: operation.move,\n rowFormItemName: fieldData.name,\n rowFormItemCompleteName,\n setCurrentRowField: setCurrentRowField.bind(null, fieldData.name),\n validateRowFields: validateRowFields.bind(null, rowFormItemCompleteName),\n getCurrentRowData: getCurrentRowData.bind(null, rowFormItemCompleteName),\n forceUpdate,\n };\n\n if (column.remove?.(renderOperationProps, index)) {\n return <Fragment />;\n }\n\n if (column.hidden?.(renderOperationProps, index)) {\n return (\n <FormItemHidden\n name={dataIndex ? [fieldData.name, ...dataIndex] : undefined}\n key={fieldData.key}\n />\n );\n }\n let formItemProps =\n typeof column.formItemProps === 'function'\n ? column.formItemProps(renderOperationProps)\n : column.formItemProps;\n\n if (!formItemProps?.rules?.length && required) {\n formItemProps = {\n ...formItemProps,\n rules: [{ required: true, message: '' }],\n };\n }\n\n if (editable === true) {\n if (column.formItemContainer) {\n return column.formItemContainer(\n <FormItemWrapper\n label={titleRender}\n {...formItemProps}\n name={dataIndex ? [fieldData.name, ...dataIndex] : undefined}\n span={column.gridNumber}\n key={fieldData.key}\n >\n {column.render?.(renderOperationProps) as ReactNode}\n </FormItemWrapper>,\n );\n }\n return (\n <FormItemWrapper\n label={titleRender}\n {...formItemProps}\n name={dataIndex ? [fieldData.name, ...dataIndex] : undefined}\n span={column.gridNumber}\n key={fieldData.key}\n >\n {column.render?.(renderOperationProps) as ReactNode}\n </FormItemWrapper>\n );\n }\n if (column.formItemContainer) {\n return column.formItemContainer(\n <FormItemWrapper\n label={titleRender}\n span={column.gridNumber}\n key={fieldData.key}\n {...formItemProps}\n >\n {column.render?.(renderOperationProps)}\n </FormItemWrapper>,\n );\n }\n return (\n <FormItemWrapper\n label={titleRender}\n span={column.gridNumber}\n key={fieldData.key}\n {...formItemProps}\n >\n {column.render?.(renderOperationProps)}\n </FormItemWrapper>\n );\n },\n };\n });\n }, [\n props.columns,\n form,\n formListCompleteName,\n setCurrentRowField,\n validateRowFields,\n getCurrentRowData,\n forceUpdate,\n ]);\n\n const className = classNames('editable-card', props.className);\n\n return (\n <div className={className} style={props.style} ref={comRef}>\n <Form.List name={formListName} rules={props.rules} initialValue={props.initialValue}>\n {(fields, formListOperation, { errors }) => {\n formListOperationRef.current = formListOperation;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.contentBeforeRender?.(formListOperation, fields.length)}\n {props.onCustomWrapper ? (\n fields.map((fieldItem, index) => {\n const extraData = {\n index,\n fields,\n fieldItem,\n operation: formListOperation,\n required: props.required,\n key: `${fieldItem.key}`,\n };\n return (\n <Fragment key={fieldItem.key}>\n {props.onCustomWrapper?.(\n <EasyForm\n {...props.cardEasyFormProps}\n style={{\n padding: 0,\n margin: 0,\n ...props.cardEasyFormProps?.style,\n }}\n >\n {columns.map((column) => {\n return column.render(index, fieldItem, formListOperation);\n })}\n </EasyForm>,\n extraData,\n )}\n </Fragment>\n );\n })\n ) : (\n <BoxGrid.Row>\n {fields.map((fieldItem, index) => {\n const title = props.onCustomGroupName ? props.onCustomGroupName(index) : index + 1;\n\n const extraData = {\n index,\n fields,\n fieldItem,\n operation: formListOperation,\n required: props.required,\n key: `${fieldItem.key}`,\n };\n\n const cardExtraRenderResult = props.cardExtraRender?.(extraData);\n const span = ['xs', 'sm'].includes(boxBreakpointApi.boxBreakpoint)\n ? 24\n : props.boxGridColSpan;\n return (\n <BoxGrid.Col span={span || 24} key={fieldItem.key}>\n <CardWrapper\n key={fieldItem.key}\n className={props.cardClassName}\n title={title}\n size=\"small\"\n style={{\n padding: 0,\n margin: '0 0 15px 0',\n ...props.cardStyle,\n }}\n bodyStyle={{ paddingBottom: 0 }}\n // styles={{ body: { paddingBottom: 0 } }}\n extra={\n isValidElement(cardExtraRenderResult) ? (\n cardExtraRenderResult\n ) : (\n <div\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n }}\n >\n {cardExtraRenderResult?.['before']}\n <DeleteNode\n style={{ color: 'red' }}\n hidden={\n props.hiddenDeleteBtn ||\n (props.required && fields.length === 1) ||\n componentDisabled\n }\n onDelete={() => {\n formListOperation.remove(index);\n }}\n />\n {cardExtraRenderResult?.['after']}\n </div>\n )\n }\n >\n <EasyForm\n {...props.cardEasyFormProps}\n style={{\n padding: 0,\n margin: 0,\n ...props.cardEasyFormProps?.style,\n }}\n >\n {columns.map((column) => {\n return column.render(index, fieldItem, formListOperation);\n })}\n </EasyForm>\n </CardWrapper>\n </BoxGrid.Col>\n );\n })}\n </BoxGrid.Row>\n )}\n\n {fields.length === 0 ? (\n <div className=\"editable-card-empty\">\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\n </div>\n ) : null}\n <ButtonWrapper\n block\n hidden={props.hiddenFooterBtn || componentDisabled}\n type=\"dashed\"\n icon={<PlusOutlined />}\n onClick={() => {\n const defaultValues = props.addRowDefaultValues?.();\n formListOperation.add({ ...defaultValues });\n }}\n >\n {props.addRowBtnName || '新增'}\n </ButtonWrapper>\n {props.contentAfterRender?.(formListOperation, fields.length)}\n {errors.length ? (\n <Form.ErrorList\n errors={[\n <div style={{ color: '#ff4d4f', padding: '5px' }} key=\"0\">\n {errors}\n </div>,\n ]}\n />\n ) : null}\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["EditableCard","props","form","Form","useFormInstance","formListName","toArray","formListOperationRef","useRef","forceUpdate","_hooks","useForceUpdate","_ConfigProvider$useCo","ConfigProvider","useConfig","componentDisabled","comRef","boxBreakpointApi","useBoxBreakpoint","formListCompleteName","validateRowFields","useCallbackRef","formItemPrevName","nameList","Promise","$return","$error","resolve","validateFields","map","item","concat","then","$await_1","$boundEx","getCurrentRowData","getFieldValue","setCurrentRowField","dataIndexConfigs","fbaUtils","setFormFieldsAndTriggerValuesChange","name","value","columns","fbaHooks","useMemoCustom","column","_column$formItemProps","_dataIndex","title","titleRender","tips","_jsx","TipsWrapper","tipType","popoverProps","content","children","required","formItemProps","rules","length","find","dataIndex","undefined","render","index","fieldData","operation","_formItemProps","isUndefinedOrNull","Fragment","rowFormItemCompleteName","editable","bind","renderOperationProps","add","remove","move","rowFormItemName","hidden","FormItemHidden","key","_extends","message","formItemContainer","_createElement","FormItemWrapper","label","span","gridNumber","className","_classNames","style","ref","List","initialValue","fields","formListOperation","_ref","errors","current","_jsxs","borderRadius","border","contentBeforeRender","onCustomWrapper","fieldItem","_props$cardEasyFormPr","extraData","EasyForm","cardEasyFormProps","padding","margin","BoxGrid","Row","_props$cardEasyFormPr2","onCustomGroupName","cardExtraRenderResult","cardExtraRender","includes","boxBreakpoint","boxGridColSpan","Col","CardWrapper","cardClassName","size","cardStyle","bodyStyle","paddingBottom","extra","isValidElement","display","alignItems","gap","DeleteNode","color","hiddenDeleteBtn","onDelete","Empty","image","PRESENTED_IMAGE_SIMPLE","ButtonWrapper","block","hiddenFooterBtn","type","icon","_PlusOutlined","onClick","defaultValues","addRowDefaultValues","addRowBtnName","contentAfterRender","ErrorList"],"mappings":"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"}
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
3
3
  import './../icon-wrapper/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import e from"@ant-design/icons/es/icons/CloseOutlined";import i from"@ant-design/icons/es/icons/CheckOutlined";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{isString as t}from"@dimjs/lang/cjs/is-string";import{isArray as l}from"@dimjs/lang/cjs/is-array";import a from"@ant-design/icons/es/icons/EditOutlined";import{isUndefinedOrNull as s}from"@flatbiz/utils";import{Space as c}from"antd";import{useState as u,useContext as d,useRef as f,useMemo as m,useEffect as v,Fragment as p}from"react";import{E as h}from"../context-62955871.js";import{fbaHooks as C}from"../fba-hooks/index.js";import{IconWrapper as b}from"../icon-wrapper/index.js";import{jsx as j,jsxs as y}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/lang/cjs/is-undefined";var g=function g(w){var E=w.value,k=w.onChange,I=w.viewRender,x=w.placeholderValue,P=x===void 0?"-":x,z=w.editRender,O=w.isEditFull,N=w.onClickEditIconPre,R=w.onClickConfirmIconPre,T=w.iconConfig,_=w.onEditCallback,B=w.onConfirmCallback,F=w.showEditable;var H=u(F),V=H[0],q=H[1];var A=d(h);var D=f(E);var G=w.showEditableIcon===undefined?true:w.showEditableIcon;var J=function(){if(A.isCtx){return w.showEditableIcon===undefined?A.showEditableIcon:G}return G}();var K=m((function(){if(A.isCtx){return w.readonly===undefined?A.readonly:w.readonly}return w.readonly}),[A.isCtx,A.readonly,w.readonly]);v((function(){if(A.isCtx){q(w.showEditable===undefined?A.showEditable:w.showEditable)}else{q(w.showEditable)}}),[A.showEditable,A.isCtx,w.showEditable]);var L=C.useThemeToken();var M=function n(){return new Promise((function(n,r){if(N){return Promise.resolve(N(E)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){D.current=E;q(true);_==null||_(E);return n()}return e.call(this)}))};var Q=T!=null&&T.editIcon?T.editIcon({onClick:M}):j(b,{size:"small",icon:j(a,{}),onClick:M});var S=function n(){if(E!==D.current){k==null||k(D.current)}q(false)};var U=function n(r){var e=r;if(typeof r==="object"&&r!==null&&!l(r)&&r.target){var i;var a=(i=r.target)==null?void 0:i.value;if(t(a)||o(a)||s(a)){var c;e=(c=r.target)==null?void 0:c.value}}k==null||k(e)};var W=function n(){return new Promise((function(n,r){if(R){return Promise.resolve(R(E,D.current)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){q(false);B==null||B(E,D.current);return n()}return e.call(this)}))};var X=T!=null&&T.confirmIcon?T.confirmIcon({onClick:W}):j(b,{size:"small",icon:j(i,{style:{color:L.colorPrimary}}),onClick:W});var Y=T!=null&&T.cancelIcon?T.cancelIcon({onClick:S}):j(b,{size:"small",icon:j(e,{style:{color:L.colorPrimary}}),onClick:S});var Z=typeof z==="function"?z({value:E,onChange:U}):z;var $=(I?I(w.value):w.value)||P;if(K){return j(p,{children:$})}if(!V){if(!J){return $}return y(c,{size:8,children:[j("span",{children:$}),Q]})}if(!J){return j(Z.type,r({value:E,onChange:U},Z.props))}return y(c,{direction:"horizontal",size:12,style:w.style,className:n("editable-field",{"editable-field-full":O},w.className),children:[j(Z.type,r({value:E,onChange:U},Z.props)),X,Y]})};export{g as EditableField};
6
+ import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import e from"@ant-design/icons/es/icons/CloseOutlined";import i from"@ant-design/icons/es/icons/CheckOutlined";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{isString as t}from"@dimjs/lang/cjs/is-string";import{isArray as l}from"@dimjs/lang/cjs/is-array";import a from"@ant-design/icons/es/icons/EditOutlined";import{isUndefinedOrNull as s}from"@flatbiz/utils";import{Space as c}from"antd";import{useState as u,useContext as d,useRef as f,useMemo as m,useEffect as v,Fragment as p}from"react";import{E as h}from"../context-62955871.js";import{fbaHooks as C}from"../fba-hooks/index.js";import{IconWrapper as b}from"../icon-wrapper/index.js";import{jsx as j,jsxs as y}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/lang/cjs/is-undefined";var g=function g(w){var E=w.value,k=w.onChange,I=w.viewRender,x=w.placeholderValue,P=x===void 0?"-":x,z=w.editRender,O=w.isEditFull,N=w.onClickEditIconPre,R=w.onClickConfirmIconPre,T=w.iconConfig,_=w.onEditCallback,B=w.onConfirmCallback,F=w.showEditable;var H=u(F),V=H[0],q=H[1];var A=d(h);var D=f(E);var G=w.showEditableIcon===undefined?true:w.showEditableIcon;var J=function(){if(A.isCtx){return w.showEditableIcon===undefined?A.showEditableIcon:G}return G}();var K=m(function(){if(A.isCtx){return w.readonly===undefined?A.readonly:w.readonly}return w.readonly},[A.isCtx,A.readonly,w.readonly]);v(function(){if(A.isCtx){q(w.showEditable===undefined?A.showEditable:w.showEditable)}else{q(w.showEditable)}},[A.showEditable,A.isCtx,w.showEditable]);var L=C.useThemeToken();var M=function n(){return new Promise(function(n,r){if(N){return Promise.resolve(N(E)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){D.current=E;q(true);_==null||_(E);return n()}return e.call(this)})};var Q=T!=null&&T.editIcon?T.editIcon({onClick:M}):j(b,{size:"small",icon:j(a,{}),onClick:M});var S=function n(){if(E!==D.current){k==null||k(D.current)}q(false)};var U=function n(r){var e=r;if(typeof r==="object"&&r!==null&&!l(r)&&r.target){var i;var a=(i=r.target)==null?void 0:i.value;if(t(a)||o(a)||s(a)){var c;e=(c=r.target)==null?void 0:c.value}}k==null||k(e)};var W=function n(){return new Promise(function(n,r){if(R){return Promise.resolve(R(E,D.current)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){q(false);B==null||B(E,D.current);return n()}return e.call(this)})};var X=T!=null&&T.confirmIcon?T.confirmIcon({onClick:W}):j(b,{size:"small",icon:j(i,{style:{color:L.colorPrimary}}),onClick:W});var Y=T!=null&&T.cancelIcon?T.cancelIcon({onClick:S}):j(b,{size:"small",icon:j(e,{style:{color:L.colorPrimary}}),onClick:S});var Z=typeof z==="function"?z({value:E,onChange:U}):z;var $=(I?I(w.value):w.value)||P;if(K){return j(p,{children:$})}if(!V){if(!J){return $}return y(c,{size:8,children:[j("span",{children:$}),Q]})}if(!J){return j(Z.type,r({value:E,onChange:U},Z.props))}return y(c,{direction:"horizontal",size:12,style:w.style,className:n("editable-field",{"editable-field-full":O},w.className),children:[j(Z.type,r({value:E,onChange:U},Z.props)),X,Y]})};export{g as EditableField};
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { EditableFieldContext } from '../editable-field-provider/context';\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\nimport './style.less';\n\nexport interface EditableFieldProps {\n className?: string;\n style?: CSSProperties;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 只读状态 */\n readonly?: boolean;\n /** 显示为编辑状态 */\n showEditable?: boolean;\n /** 是否显示编辑、确认、取消操作icon,默认值:true */\n showEditableIcon?: boolean;\n /** 点击编辑按钮,操作前,返回reject不会开启编辑效果 */\n onClickEditIconPre?: (value?: TAny) => Promise<void>;\n onEditCallback?: (value?: TAny) => void;\n /** 点击确定按钮,操作前,返回reject不会执行确定功能 */\n onClickConfirmIconPre?: (value?: TAny, preValue?: TAny) => Promise<void>;\n onConfirmCallback?: (value?: TAny, preValue?: TAny) => void;\n /** 组件操作Icon配置 */\n iconConfig?: {\n editIcon?: (options: { onClick: () => void }) => ReactElement;\n confirmIcon?: (options: { onClick: () => void }) => ReactElement;\n cancelIcon?: (options: { onClick: () => void }) => ReactElement;\n };\n}\n\n/**\n * 可编辑字段组件\n * @param props\n * @returns\n * ```\n * 字段渲染有两种状态\n * 1. 只读:如果value类型为复杂格式,必须要通过【viewRender】来进行处理操作,转成简单数据类型\n * 2. 编辑:参数value的格式要求必须满足编辑组件入参value要求\n * 3. 可自定义编辑Icon、确定Icon、取消Icon\n * 4. 可拦截编辑操作、确定操作\n * ```\n */\nexport const EditableField = (props: EditableFieldProps) => {\n const {\n value,\n onChange,\n viewRender,\n placeholderValue = '-',\n editRender,\n isEditFull,\n onClickEditIconPre,\n onClickConfirmIconPre,\n iconConfig,\n onEditCallback,\n onConfirmCallback,\n showEditable,\n } = props;\n const [isEdit, setIsEdit] = useState(showEditable);\n const ctx = useContext(EditableFieldContext);\n const originalValue = useRef<TAny>(value);\n const showEditableIcon = props.showEditableIcon === undefined ? true : props.showEditableIcon;\n\n const showEditableIconNew = (function () {\n if (ctx.isCtx) {\n return props.showEditableIcon === undefined ? ctx.showEditableIcon : showEditableIcon;\n }\n return showEditableIcon;\n })();\n\n const readonly = useMemo(() => {\n if (ctx.isCtx) {\n return props.readonly === undefined ? ctx.readonly : props.readonly;\n }\n return props.readonly;\n }, [ctx.isCtx, ctx.readonly, props.readonly]);\n\n useEffect(() => {\n if (ctx.isCtx) {\n setIsEdit(props.showEditable === undefined ? ctx.showEditable : props.showEditable);\n } else {\n setIsEdit(props.showEditable);\n }\n }, [ctx.showEditable, ctx.isCtx, props.showEditable]);\n\n const theme = fbaHooks.useThemeToken();\n\n const onClickEditIcon = async () => {\n if (onClickEditIconPre) {\n await onClickEditIconPre(value);\n }\n originalValue.current = value;\n setIsEdit(true);\n onEditCallback?.(value);\n };\n\n const editIcon = iconConfig?.editIcon ? (\n iconConfig.editIcon({ onClick: onClickEditIcon })\n ) : (\n <IconWrapper size=\"small\" icon={<EditOutlined />} onClick={onClickEditIcon} />\n );\n\n const onCancel = () => {\n if (value !== originalValue.current) {\n onChange?.(originalValue.current);\n }\n setIsEdit(false);\n };\n\n const onEditChange = (value) => {\n let target = value;\n /** 为了处理 Input、TextArea等onChange取值 */\n if (typeof value === 'object' && value !== null && !isArray(value) && value.target) {\n const _value = value.target?.value;\n if (isString(_value) || isNumber(_value) || isUndefinedOrNull(_value)) {\n target = value.target?.value;\n }\n }\n onChange?.(target);\n };\n\n const onOk = async () => {\n if (onClickConfirmIconPre) {\n await onClickConfirmIconPre(value, originalValue.current);\n }\n setIsEdit(false);\n onConfirmCallback?.(value, originalValue.current);\n };\n\n const confirmIcon = iconConfig?.confirmIcon ? (\n iconConfig.confirmIcon({ onClick: onOk })\n ) : (\n <IconWrapper size=\"small\" icon={<CheckOutlined style={{ color: theme.colorPrimary }} />} onClick={onOk} />\n );\n\n const cancelIcon = iconConfig?.cancelIcon ? (\n iconConfig.cancelIcon({ onClick: onCancel })\n ) : (\n <IconWrapper\n size=\"small\"\n icon={<CloseOutlined style={{ color: theme.colorPrimary }} />}\n onClick={onCancel}\n />\n );\n\n const editRenderElement =\n typeof editRender === 'function' ? editRender({ value: value, onChange: onEditChange }) : editRender;\n\n const viewValue = (viewRender ? viewRender(props.value) : props.value) || placeholderValue;\n\n if (readonly) {\n return <Fragment>{viewValue}</Fragment>;\n }\n\n if (!isEdit) {\n if (!showEditableIconNew) {\n return viewValue;\n }\n return (\n <Space size={8}>\n <span>{viewValue}</span>\n {editIcon}\n </Space>\n );\n }\n\n if (!showEditableIconNew) {\n return <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />;\n }\n\n return (\n <Space\n direction=\"horizontal\"\n size={12}\n style={props.style}\n className={classNames('editable-field', { 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","showEditable","_useState","useState","isEdit","setIsEdit","ctx","useContext","EditableFieldContext","originalValue","useRef","showEditableIcon","undefined","showEditableIconNew","isCtx","readonly","useMemo","useEffect","theme","fbaHooks","useThemeToken","onClickEditIcon","Promise","$return","$error","resolve","then","$await_3","$If_1","call","this","$boundEx","bind","current","editIcon","onClick","_jsx","IconWrapper","size","icon","_EditOutlined","onCancel","onEditChange","target","_isArray","_value$target","_value","_isString","_isNumber","isUndefinedOrNull","_value$target2","onOk","$await_4","$If_2","confirmIcon","_CheckOutlined","style","color","colorPrimary","cancelIcon","_CloseOutlined","editRenderElement","viewValue","Fragment","children","_jsxs","Space","type","_extends","direction","className","_classNames"],"mappings":";w8BA+DaA,EAAgB,SAAhBA,EAAiBC,GAC5B,IACEC,EAYED,EAZFC,MACAC,EAWEF,EAXFE,SACAC,EAUEH,EAVFG,WAAUC,EAURJ,EATFK,iBAAAA,EAAgBD,SAAG,EAAA,IAAGA,EACtBE,EAQEN,EARFM,WACAC,EAOEP,EAPFO,WACAC,EAMER,EANFQ,mBACAC,EAKET,EALFS,sBACAC,EAIEV,EAJFU,WACAC,EAGEX,EAHFW,eACAC,EAEEZ,EAFFY,kBACAC,EACEb,EADFa,aAEF,IAAAC,EAA4BC,EAASF,GAA9BG,EAAMF,EAAA,GAAEG,EAASH,EAAA,GACxB,IAAMI,EAAMC,EAAWC,GACvB,IAAMC,EAAgBC,EAAarB,GACnC,IAAMsB,EAAmBvB,EAAMuB,mBAAqBC,UAAY,KAAOxB,EAAMuB,iBAE7E,IAAME,EAAuB,WAC3B,GAAIP,EAAIQ,MAAO,CACb,OAAO1B,EAAMuB,mBAAqBC,UAAYN,EAAIK,iBAAmBA,CACvE,CACA,OAAOA,CACT,CAL6B,GAO7B,IAAMI,EAAWC,GAAQ,WACvB,GAAIV,EAAIQ,MAAO,CACb,OAAO1B,EAAM2B,WAAaH,UAAYN,EAAIS,SAAW3B,EAAM2B,QAC7D,CACA,OAAO3B,EAAM2B,QACf,GAAG,CAACT,EAAIQ,MAAOR,EAAIS,SAAU3B,EAAM2B,WAEnCE,GAAU,WACR,GAAIX,EAAIQ,MAAO,CACbT,EAAUjB,EAAMa,eAAiBW,UAAYN,EAAIL,aAAeb,EAAMa,aACxE,KAAO,CACLI,EAAUjB,EAAMa,aAClB,CACF,GAAG,CAACK,EAAIL,aAAcK,EAAIQ,MAAO1B,EAAMa,eAEvC,IAAMiB,EAAQC,EAASC,gBAEvB,IAAMC,EAAkB,SAAlBA,IAAkB,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GACtB,GAAI5B,EAAoB,CACtB,OAAA0B,QAAAG,QAAM7B,EAAmBP,IAAzBqC,KA7GN,SAAAC,GAAA,IAAI,OAAJC,EAAGC,KAAIC,KAAE,CAAC,MAAAC,GAAW,OAAOP,EAAAO,EAAM,CAAC,EAAhCC,KAAKF,MAAKN,EA8GT,CAAC,SAAAI,IACDnB,EAAcwB,QAAU5C,EACxBgB,EAAU,MACVN,GAAAA,MAAAA,EAAiBV,GAAO,OAAAkC,GAAA,CAAA,OAjH5BK,EAAGC,KAAIC,KAAI,GAkHR,EAED,IAAMI,EAAWpC,GAAAA,MAAAA,EAAYoC,SAC3BpC,EAAWoC,SAAS,CAAEC,QAASd,IAE/Be,EAACC,EAAW,CAACC,KAAK,QAAQC,KAAMH,EAAAI,MAAkBL,QAASd,IAG7D,IAAMoB,EAAW,SAAXA,IACJ,GAAIpD,IAAUoB,EAAcwB,QAAS,CACnC3C,SAAAA,EAAWmB,EAAcwB,QAC3B,CACA5B,EAAU,QAGZ,IAAMqC,EAAe,SAAfA,EAAgBrD,GACpB,IAAIsD,EAAStD,EAEb,UAAWA,IAAU,UAAYA,IAAU,OAASuD,EAAQvD,IAAUA,EAAMsD,OAAQ,CAAA,IAAAE,EAClF,IAAMC,GAAMD,EAAGxD,EAAMsD,SAAM,UAAA,EAAZE,EAAcxD,MAC7B,GAAI0D,EAASD,IAAWE,EAASF,IAAWG,EAAkBH,GAAS,CAAA,IAAAI,EACrEP,GAAMO,EAAG7D,EAAMsD,SAAM,UAAA,EAAZO,EAAc7D,KACzB,CACF,CACAC,GAAAA,MAAAA,EAAWqD,IAGb,IAAMQ,EAAO,SAAPA,IAAO,OAAA,IAAA7B,SAAA,SAAAC,EAAAC,GACX,GAAI3B,EAAuB,CACzB,OAAAyB,QAAAG,QAAM5B,EAAsBR,EAAOoB,EAAcwB,UAAjDP,KA/IN,SAAA0B,GAAA,IAAI,OAAJC,EAAGxB,KAAIC,KAAE,CAAC,MAAAC,GAAW,OAAOP,EAAAO,EAAM,CAAC,EAAhCC,KAAKF,MAAKN,EAgJT,CAAC,SAAA6B,IACDhD,EAAU,OACVL,GAAiB,MAAjBA,EAAoBX,EAAOoB,EAAcwB,SAAS,OAAAV,GAAA,CAAA,OAlJtD8B,EAAGxB,KAAIC,KAAI,GAmJR,EAED,IAAMwB,EAAcxD,GAAAA,MAAAA,EAAYwD,YAC9BxD,EAAWwD,YAAY,CAAEnB,QAASgB,IAElCf,EAACC,EAAW,CAACC,KAAK,QAAQC,KAAMH,EAAAmB,EAAA,CAAeC,MAAO,CAAEC,MAAOvC,EAAMwC,gBAAoBvB,QAASgB,IAGpG,IAAMQ,EAAa7D,GAAAA,MAAAA,EAAY6D,WAC7B7D,EAAW6D,WAAW,CAAExB,QAASM,IAEjCL,EAACC,EAAW,CACVC,KAAK,QACLC,KAAMH,EAAAwB,EAAA,CAAeJ,MAAO,CAAEC,MAAOvC,EAAMwC,gBAC3CvB,QAASM,IAIb,IAAMoB,SACGnE,IAAe,WAAaA,EAAW,CAAEL,MAAOA,EAAOC,SAAUoD,IAAkBhD,EAE5F,IAAMoE,GAAavE,EAAaA,EAAWH,EAAMC,OAASD,EAAMC,QAAUI,EAE1E,GAAIsB,EAAU,CACZ,OAAOqB,EAAC2B,EAAQ,CAAAC,SAAEF,GACpB,CAEA,IAAK1D,EAAQ,CACX,IAAKS,EAAqB,CACxB,OAAOiD,CACT,CACA,OACEG,EAACC,EAAK,CAAC5B,KAAM,EAAE0B,UACb5B,EAAA,OAAA,CAAA4B,SAAOF,IACN5B,IAGP,CAEA,IAAKrB,EAAqB,CACxB,OAAOuB,EAACyB,EAAkBM,KAAIC,EAAA,CAAC/E,MAAOA,EAAOC,SAAUoD,GAAkBmB,EAAkBzE,OAC7F,CAEA,OACE6E,EAACC,EAAK,CACJG,UAAU,aACV/B,KAAM,GACNkB,MAAOpE,EAAMoE,MACbc,UAAWC,EAAW,iBAAkB,CAAE,sBAAuB5E,GAAcP,EAAMkF,WAAWN,UAEhG5B,EAACyB,EAAkBM,KAAIC,EAAA,CAAC/E,MAAOA,EAAOC,SAAUoD,GAAkBmB,EAAkBzE,QACnFkE,EACAK,IAGP"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { EditableFieldContext } from '../editable-field-provider/context';\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\nimport './style.less';\n\nexport interface EditableFieldProps {\n className?: string;\n style?: CSSProperties;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 只读状态 */\n readonly?: boolean;\n /** 显示为编辑状态 */\n showEditable?: boolean;\n /** 是否显示编辑、确认、取消操作icon,默认值:true */\n showEditableIcon?: boolean;\n /** 点击编辑按钮,操作前,返回reject不会开启编辑效果 */\n onClickEditIconPre?: (value?: TAny) => Promise<void>;\n onEditCallback?: (value?: TAny) => void;\n /** 点击确定按钮,操作前,返回reject不会执行确定功能 */\n onClickConfirmIconPre?: (value?: TAny, preValue?: TAny) => Promise<void>;\n onConfirmCallback?: (value?: TAny, preValue?: TAny) => void;\n /** 组件操作Icon配置 */\n iconConfig?: {\n editIcon?: (options: { onClick: () => void }) => ReactElement;\n confirmIcon?: (options: { onClick: () => void }) => ReactElement;\n cancelIcon?: (options: { onClick: () => void }) => ReactElement;\n };\n}\n\n/**\n * 可编辑字段组件\n * @param props\n * @returns\n * ```\n * 字段渲染有两种状态\n * 1. 只读:如果value类型为复杂格式,必须要通过【viewRender】来进行处理操作,转成简单数据类型\n * 2. 编辑:参数value的格式要求必须满足编辑组件入参value要求\n * 3. 可自定义编辑Icon、确定Icon、取消Icon\n * 4. 可拦截编辑操作、确定操作\n * ```\n */\nexport const EditableField = (props: EditableFieldProps) => {\n const {\n value,\n onChange,\n viewRender,\n placeholderValue = '-',\n editRender,\n isEditFull,\n onClickEditIconPre,\n onClickConfirmIconPre,\n iconConfig,\n onEditCallback,\n onConfirmCallback,\n showEditable,\n } = props;\n const [isEdit, setIsEdit] = useState(showEditable);\n const ctx = useContext(EditableFieldContext);\n const originalValue = useRef<TAny>(value);\n const showEditableIcon = props.showEditableIcon === undefined ? true : props.showEditableIcon;\n\n const showEditableIconNew = (function () {\n if (ctx.isCtx) {\n return props.showEditableIcon === undefined ? ctx.showEditableIcon : showEditableIcon;\n }\n return showEditableIcon;\n })();\n\n const readonly = useMemo(() => {\n if (ctx.isCtx) {\n return props.readonly === undefined ? ctx.readonly : props.readonly;\n }\n return props.readonly;\n }, [ctx.isCtx, ctx.readonly, props.readonly]);\n\n useEffect(() => {\n if (ctx.isCtx) {\n setIsEdit(props.showEditable === undefined ? ctx.showEditable : props.showEditable);\n } else {\n setIsEdit(props.showEditable);\n }\n }, [ctx.showEditable, ctx.isCtx, props.showEditable]);\n\n const theme = fbaHooks.useThemeToken();\n\n const onClickEditIcon = async () => {\n if (onClickEditIconPre) {\n await onClickEditIconPre(value);\n }\n originalValue.current = value;\n setIsEdit(true);\n onEditCallback?.(value);\n };\n\n const editIcon = iconConfig?.editIcon ? (\n iconConfig.editIcon({ onClick: onClickEditIcon })\n ) : (\n <IconWrapper size=\"small\" icon={<EditOutlined />} onClick={onClickEditIcon} />\n );\n\n const onCancel = () => {\n if (value !== originalValue.current) {\n onChange?.(originalValue.current);\n }\n setIsEdit(false);\n };\n\n const onEditChange = (value) => {\n let target = value;\n /** 为了处理 Input、TextArea等onChange取值 */\n if (typeof value === 'object' && value !== null && !isArray(value) && value.target) {\n const _value = value.target?.value;\n if (isString(_value) || isNumber(_value) || isUndefinedOrNull(_value)) {\n target = value.target?.value;\n }\n }\n onChange?.(target);\n };\n\n const onOk = async () => {\n if (onClickConfirmIconPre) {\n await onClickConfirmIconPre(value, originalValue.current);\n }\n setIsEdit(false);\n onConfirmCallback?.(value, originalValue.current);\n };\n\n const confirmIcon = iconConfig?.confirmIcon ? (\n iconConfig.confirmIcon({ onClick: onOk })\n ) : (\n <IconWrapper size=\"small\" icon={<CheckOutlined style={{ color: theme.colorPrimary }} />} onClick={onOk} />\n );\n\n const cancelIcon = iconConfig?.cancelIcon ? (\n iconConfig.cancelIcon({ onClick: onCancel })\n ) : (\n <IconWrapper\n size=\"small\"\n icon={<CloseOutlined style={{ color: theme.colorPrimary }} />}\n onClick={onCancel}\n />\n );\n\n const editRenderElement =\n typeof editRender === 'function' ? editRender({ value: value, onChange: onEditChange }) : editRender;\n\n const viewValue = (viewRender ? viewRender(props.value) : props.value) || placeholderValue;\n\n if (readonly) {\n return <Fragment>{viewValue}</Fragment>;\n }\n\n if (!isEdit) {\n if (!showEditableIconNew) {\n return viewValue;\n }\n return (\n <Space size={8}>\n <span>{viewValue}</span>\n {editIcon}\n </Space>\n );\n }\n\n if (!showEditableIconNew) {\n return <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />;\n }\n\n return (\n <Space\n direction=\"horizontal\"\n size={12}\n style={props.style}\n className={classNames('editable-field', { 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","showEditable","_useState","useState","isEdit","setIsEdit","ctx","useContext","EditableFieldContext","originalValue","useRef","showEditableIcon","undefined","showEditableIconNew","isCtx","readonly","useMemo","useEffect","theme","fbaHooks","useThemeToken","onClickEditIcon","Promise","$return","$error","resolve","then","$await_3","$If_1","call","this","$boundEx","bind","current","editIcon","onClick","_jsx","IconWrapper","size","icon","_EditOutlined","onCancel","onEditChange","target","_isArray","_value$target","_value","_isString","_isNumber","isUndefinedOrNull","_value$target2","onOk","$await_4","$If_2","confirmIcon","_CheckOutlined","style","color","colorPrimary","cancelIcon","_CloseOutlined","editRenderElement","viewValue","Fragment","children","_jsxs","Space","type","_extends","direction","className","_classNames"],"mappings":"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"}
@@ -23,5 +23,5 @@ import './../input-wrapper/index.css';
23
23
  import './../input-text-area-wrapper/index.css';
24
24
  import './index.css';
25
25
  /*! @flatjs/forge MIT @flatbiz/antd */
26
- import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as p,message as f,Table as v}from"antd";import{useMemo as g,useState as b,useEffect as h,Fragment as C,useRef as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TextSymbolWrapper as I}from"../text-symbol-wrapper/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as V}from"react/jsx-runtime";import{DatePickerWrapper as _}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as O}from"../date-range-picker-wrapper/index.js";import{InputWrapper as A}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as K}from"../switch-wrapper/index.js";import{isBoolean as W}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as D}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as q}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"../index-83bede1b.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"@dimjs/utils/cjs/uuid";import"../fba-utils/index.js";import"@dimjs/model";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../index-636a568e.js";import"../request-status/index.js";import"../text-overflow/index.js";import"@ant-design/icons/es/icons/SyncOutlined";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var M=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=g((function(){return o.options||[]}),[o.options]);var u=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o.onChange==null||o.onChange(e)}));if(t){return L(d.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(M,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(_,r({allowClear:true},l.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o==null||o.onChange==null||o.onChange(e)}));var m=g((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return L(O,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(A,r({allowClear:true},t.editableComptProps))}))};var $=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=g((function(){return o.options||[]}),[o.options]);var m=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e.target.value);o.onChange==null||o.onChange(e)}));if(t){return L(u.Group,r({},o,{value:n.value,onChange:m}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(X,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=b([]),u=m[0],c=m[1];var p=b([]),f=p[0],v=p[1];h((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=u.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,u]);var g=F.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=F.useCallbackRef((function(e,r){n.onChange==null||n.onChange(e);d.onChange==null||d.onChange(e,r)}));if(l){return L(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:g}))}return T(C,{children:[L("div",{style:{display:"none"},children:L(S,r({},d,{onSelectorListAllChange:g}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,u):f.map((function(e,n){return L(s,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o==null||o.onChange==null||o.onChange(e)}));var m=g((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(K,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(s,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=g((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=D(n.value)||B(n.value)||W(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=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(o.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(E,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(q,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(q,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=G(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L($,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return L(o.List,{name:r.name,children:function e(a,o){var p=o.add,f=o.remove;return T(V,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=l.find((function(e){return G(e.editable,r.tableRowIndex)}));var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:o,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(c,{children:[l.map((function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?L(ce,{deleteOperateRender:s,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(p,{type:"link",danger:true,icon:L(z,{}),onClick:n.remove,children:"删除"})})};var pe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return T(C,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map((function(e,r){return L(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)}))]})}}return L(te,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var ve=function a(d){var m=o.useFormInstance();var u=x([]);var s=g((function(){var e=d.columns.find((function(e){return e["dataIndex"]===d.uidFieldKey}));return!!e}),[d.columns,d.uidFieldKey]);var c=g((function(){if(!d.columns)return[];return d.columns.map((function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,u=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,fe);var v=w(o)||typeof o==="string";var g;if(u&&v){if(typeof u==="string"){g=L(y,{tipType:"popover",popoverProps:{content:u},children:o})}else{g=L(y,r({},u,{children:o}))}}else{g=o}return r({title:c?L(I,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,o,u){if(o["_isChildrenItem"]){if(l){return l(i,o,u)}return i}var c=[].concat(t(d.name),[o.name]);var p=e.dataIndex?[].concat(c,[e.dataIndex]):c;var f=a==null?void 0:a({name:p,tableRowIndex:o.name,operation:o.operation,tableRowName:c,index:u,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}});if(f){return f}var v=typeof n==="function"?n({name:p,tableRowIndex:o.name,tableRowName:c,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}}):n;var g=t(e.hiddenField);if(!s&&u===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return L(pe,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:p,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})}))}),[d.columns,d.tableProps,d.name,d.completeName,d.uidFieldKey,s,m]);var p=o.useWatch(d.completeName?d.completeName:d.name,m);h((function(){var e=t(d.name);if(/^\d+$/.test(""+(e==null?void 0:e[0]))&&d.completeName===undefined){void f.error("当前Editable处在FormList内部,必须赋值completeName参数")}}),[d.completeName,d.name]);return L("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"},d.className),style:d.style,children:L(o.List,{name:d.name,rules:d.rules,children:function n(i,a,s){var f=s.errors;u.current=i;return T("div",{style:{borderRadius:"6px",border:f!=null&&f.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,L(v,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r;var i=d.completeName||[];var a=t(d.name);var o=i.length?i:a;var u;if(n["_isChildrenItem"]){u=m.getFieldValue([].concat(o,[n["_parentIndex"],"children",n["_index"]]))}else{u=m.getFieldValue([].concat(o,[n["_index"]]))}var s=(r=u)==null?void 0:r[d.uidFieldKey];if(l(s)){console.warn("EditableTable 通过入参uidFieldKey:"+d.uidFieldKey+",未获取到表格行唯一值数据")}return s},dataSource:i.map((function(e,n){var i;var t=p==null||(i=p[e.name])==null?void 0:i.children;if(t){t.forEach((function(e,r){e["_isChildrenItem"]=true;e["_parentIndex"]=n;e["_index"]=r}))}return r({},e,{_index:n,operation:a,children:t})})),columns:c})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):L(j,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"}),L(o.ErrorList,{errors:f.length?[L("div",{style:{color:"#ff4d4f",padding:"5px"},children:f},"0")]:undefined})]})}})})};export{ve as EditableTable};
26
+ import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as p,message as f,Table as v}from"antd";import{useMemo as g,useState as b,useEffect as h,Fragment as C,useRef as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TextSymbolWrapper as I}from"../text-symbol-wrapper/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as V}from"react/jsx-runtime";import{DatePickerWrapper as _}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as O}from"../date-range-picker-wrapper/index.js";import{InputWrapper as A}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as K}from"../switch-wrapper/index.js";import{isBoolean as W}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as D}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as q}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"../index-853b36e6.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-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"../fba-utils/index.js";import"@dimjs/model";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-ea73b2fb.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../index-636a568e.js";import"../request-status/index.js";import"../text-overflow/index.js";import"@ant-design/icons/es/icons/SyncOutlined";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var M=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=g(function(){return o.options||[]},[o.options]);var u=F.useCallbackRef(function(e){n.onChange==null||n.onChange(e);o.onChange==null||o.onChange(e)});if(t){return L(d.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(M,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(_,r({allowClear:true},l.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef(function(e){n.onChange==null||n.onChange(e);o==null||o.onChange==null||o.onChange(e)});var m=g(function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")},[t,n.value]);if(t){return L(O,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(A,r({allowClear:true},t.editableComptProps))}))};var $=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=g(function(){return o.options||[]},[o.options]);var m=F.useCallbackRef(function(e){n.onChange==null||n.onChange(e.target.value);o.onChange==null||o.onChange(e)});if(t){return L(u.Group,r({},o,{value:n.value,onChange:m}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(X,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=b([]),u=m[0],c=m[1];var p=b([]),f=p[0],v=p[1];h(function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map(function(e){return{label:e,value:e}}))}var r=[];e.forEach(function(e){var n=u.find(function(n){return n.value===e});r.push(n?n:{label:String(e),value:e})});v(r)}},[l,d.fieldNames,n.value,u]);var g=F.useCallbackRef(function(e){c(a(e||[],d.fieldNames))});var x=F.useCallbackRef(function(e,r){n.onChange==null||n.onChange(e);d.onChange==null||d.onChange(e,r)});if(l){return L(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:g}))}return T(C,{children:[L("div",{style:{display:"none"},children:L(S,r({},d,{onSelectorListAllChange:g}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,u):f.map(function(e,n){return L(s,{color:"geekblue",children:e.label},n)})})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef(function(e){n.onChange==null||n.onChange(e);o==null||o.onChange==null||o.onChange(e)});var m=g(function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}},[o.checkedChildren,o.unCheckedChildren]);if(t){return L(K,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(s,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=g(function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=D(n.value)||B(n.value)||W(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=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(o.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(E,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(q,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(q,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=G(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L($,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return L(o.List,{name:r.name,children:function e(a,o){var p=o.add,f=o.remove;return T(V,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map(function(e,a){var t=l.find(function(e){return G(e.editable,r.tableRowIndex)});var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:o,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(c,{children:[l.map(function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)}),t?L(ce,{deleteOperateRender:s,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)}),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(p,{type:"link",danger:true,icon:L(z,{}),onClick:n.remove,children:"删除"})})};var pe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return T(C,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map(function(e,r){return L(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)})]})}}return L(te,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var ve=function a(d){var m=o.useFormInstance();var u=x([]);var s=g(function(){var e=d.columns.find(function(e){return e["dataIndex"]===d.uidFieldKey});return!!e},[d.columns,d.uidFieldKey]);var c=g(function(){if(!d.columns)return[];return d.columns.map(function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,u=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,fe);var v=w(o)||typeof o==="string";var g;if(u&&v){if(typeof u==="string"){g=L(y,{tipType:"popover",popoverProps:{content:u},children:o})}else{g=L(y,r({},u,{children:o}))}}else{g=o}return r({title:c?L(I,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,o,u){if(o["_isChildrenItem"]){if(l){return l(i,o,u)}return i}var c=[].concat(t(d.name),[o.name]);var p=e.dataIndex?[].concat(c,[e.dataIndex]):c;var f=a==null?void 0:a({name:p,tableRowIndex:o.name,operation:o.operation,tableRowName:c,index:u,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}});if(f){return f}var v=typeof n==="function"?n({name:p,tableRowIndex:o.name,tableRowName:c,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}}):n;var g=t(e.hiddenField);if(!s&&u===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return L(pe,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:p,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})})},[d.columns,d.tableProps,d.name,d.completeName,d.uidFieldKey,s,m]);var p=o.useWatch(d.completeName?d.completeName:d.name,m);h(function(){var e=t(d.name);if(/^\d+$/.test(""+(e==null?void 0:e[0]))&&d.completeName===undefined){void f.error("当前Editable处在FormList内部,必须赋值completeName参数")}},[d.completeName,d.name]);return L("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"},d.className),style:d.style,children:L(o.List,{name:d.name,rules:d.rules,children:function n(i,a,s){var f=s.errors;u.current=i;return T("div",{style:{borderRadius:"6px",border:f!=null&&f.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,L(v,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r;var i=d.completeName||[];var a=t(d.name);var o=i.length?i:a;var u;if(n["_isChildrenItem"]){u=m.getFieldValue([].concat(o,[n["_parentIndex"],"children",n["_index"]]))}else{u=m.getFieldValue([].concat(o,[n["_index"]]))}var s=(r=u)==null?void 0:r[d.uidFieldKey];if(l(s)){console.warn("EditableTable 通过入参uidFieldKey:"+d.uidFieldKey+",未获取到表格行唯一值数据")}return s},dataSource:i.map(function(e,n){var i;var t=p==null||(i=p[e.name])==null?void 0:i.children;if(t){t.forEach(function(e,r){e["_isChildrenItem"]=true;e["_parentIndex"]=n;e["_index"]=r})}return r({},e,{_index:n,operation:a,children:t})}),columns:c})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):L(j,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"}),L(o.ErrorList,{errors:f.length?[L("div",{style:{color:"#ff4d4f",padding:"5px"},children:f},"0")]:undefined})]})}})})};export{ve as EditableTable};
27
27
  //# sourceMappingURL=index.js.map