@flatbiz/antd 4.2.69 → 4.2.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/anchor-steps/index.js +1 -1
- package/esm/anchor-steps/index.js.map +1 -1
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate/index.js.map +1 -1
- package/esm/button-wrapper/index.js +1 -1
- package/esm/button-wrapper/index.js.map +1 -1
- package/esm/cascader-wrapper/index.js +1 -1
- package/esm/cascader-wrapper/index.js.map +1 -1
- package/esm/check-list/index.js +1 -1
- package/esm/check-list/index.js.map +1 -1
- package/esm/checkbox-wrapper/index.js +1 -1
- package/esm/checkbox-wrapper/index.js.map +1 -1
- package/esm/config-provider-wrapper/index.js +1 -1
- package/esm/config-provider-wrapper/index.js.map +1 -1
- package/esm/context-1f2093c6.js.map +1 -1
- package/esm/css-node-hover/index.js +1 -1
- package/esm/css-node-hover/index.js.map +1 -1
- package/esm/data-render/index.js +1 -1
- package/esm/data-render/index.js.map +1 -1
- package/esm/date-picker-wrapper/index.js +1 -1
- package/esm/date-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper/index.js +1 -1
- package/esm/date-range-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/dialog-alert/index.js +1 -1
- package/esm/dialog-alert/index.js.map +1 -1
- package/esm/dialog-confirm/index.js +1 -1
- package/esm/dialog-confirm/index.js.map +1 -1
- package/esm/dialog-drawer/index.js +1 -1
- package/esm/dialog-drawer/index.js.map +1 -1
- package/esm/dialog-drawer-content/index.js +1 -1
- package/esm/dialog-drawer-content/index.js.map +1 -1
- package/esm/dialog-loading/index.js +1 -1
- package/esm/dialog-loading/index.js.map +1 -1
- package/esm/dialog-modal/index.js +1 -1
- package/esm/dialog-modal/index.js.map +1 -1
- package/esm/dom-4d04aa64.js.map +1 -1
- package/esm/drag-collapse/index.js +1 -1
- package/esm/drag-collapse/index.js.map +1 -1
- package/esm/drag-collapse-form-list/index.js +1 -1
- package/esm/drag-collapse-form-list/index.js.map +1 -1
- package/esm/drawer-wrapper/index.js +1 -1
- package/esm/drawer-wrapper/index.js.map +1 -1
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/dropdown-menu-wrapper/index.js.map +1 -1
- package/esm/dynamic-node/index.js +1 -1
- package/esm/dynamic-node/index.js.map +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-field/index.js +1 -1
- package/esm/editable-field/index.js.map +1 -1
- package/esm/editable-field-provider/index.js +1 -1
- package/esm/editable-field-provider/index.js.map +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/editor-wrapper/index.js +1 -1
- package/esm/editor-wrapper/index.js.map +1 -1
- package/esm/fba-hooks/index.js +1 -1
- package/esm/fba-utils/index.js +1 -1
- package/esm/fba-utils/index.js.map +1 -1
- package/esm/file-import/index.js +1 -1
- package/esm/file-import/index.js.map +1 -1
- package/esm/flex-layout/index.js +1 -1
- package/esm/flex-layout/index.js.map +1 -1
- package/esm/form-grid/index.js +1 -1
- package/esm/form-item-group/index.js +1 -1
- package/esm/form-item-group/index.js.map +1 -1
- package/esm/form-item-hidden/index.js +1 -1
- package/esm/form-item-hidden/index.js.map +1 -1
- package/esm/form-item-wrapper/index.js +1 -1
- package/esm/form-item-wrapper/index.js.map +1 -1
- package/esm/gap/index.js +1 -1
- package/esm/gap/index.js.map +1 -1
- package/esm/icon-wrapper/index.js +1 -1
- package/esm/icon-wrapper/index.js.map +1 -1
- package/esm/index.js +3 -1
- package/esm/input-search-wrapper/index.js +1 -1
- package/esm/input-search-wrapper/index.js.map +1 -1
- package/esm/input-text-area-wrapper/index.js +1 -1
- package/esm/input-text-area-wrapper/index.js.map +1 -1
- package/esm/input-wrapper/index.js +1 -1
- package/esm/input-wrapper/index.js.map +1 -1
- package/esm/label-value-layout/index.js +1 -1
- package/esm/label-value-layout/index.js.map +1 -1
- package/esm/local-loading/index.js +1 -1
- package/esm/local-loading/index.js.map +1 -1
- package/esm/modal-action/index.js +1 -1
- package/esm/modal-action/index.js.map +1 -1
- package/esm/modal-wrapper/index.js +1 -1
- package/esm/modal-wrapper/index.js.map +1 -1
- package/esm/page-fixed-footer/index.js +1 -1
- package/esm/page-fixed-footer/index.js.map +1 -1
- package/esm/page404/index.js +1 -1
- package/esm/page404/index.js.map +1 -1
- package/esm/pagination-wrapper/index.js +1 -1
- package/esm/permission/index.js +1 -1
- package/esm/permission/index.js.map +1 -1
- package/esm/radio-group-wrapper/index.js +1 -1
- package/esm/radio-group-wrapper/index.js.map +1 -1
- package/esm/relation-tree/index.js +1 -1
- package/esm/relation-tree/index.js.map +1 -1
- package/esm/request-status/index.js +1 -1
- package/esm/request-status/index.js.map +1 -1
- package/esm/rich-text-editor/index.js +1 -1
- package/esm/rich-text-editor/index.js.map +1 -1
- package/esm/rich-text-viewer/index.js +1 -1
- package/esm/rich-text-viewer/index.js.map +1 -1
- package/esm/roll-location-center/index.js +1 -1
- package/esm/roll-location-center/index.js.map +1 -1
- package/esm/roll-location-in-view/index.js +1 -1
- package/esm/roll-location-in-view/index.js.map +1 -1
- package/esm/rule-describe/index.js +1 -1
- package/esm/rule-describe/index.js.map +1 -1
- package/esm/selector-wrapper/index.js +1 -1
- package/esm/selector-wrapper/index.js.map +1 -1
- package/esm/selector-wrapper-search/index.js +1 -1
- package/esm/selector-wrapper-search/index.js.map +1 -1
- package/esm/selector-wrapper-simple/index.js +1 -1
- package/esm/selector-wrapper-simple/index.js.map +1 -1
- package/esm/simple-layout/index.js +1 -1
- package/esm/simple-layout/index.js.map +1 -1
- package/esm/sms-count-down/index.js +1 -1
- package/esm/sms-count-down/index.js.map +1 -1
- package/esm/switch-confirm-wrapper/index.js +1 -1
- package/esm/switch-confirm-wrapper/index.js.map +1 -1
- package/esm/switch-wrapper/index.js +1 -1
- package/esm/switch-wrapper/index.js.map +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/table-cell-render/index.js.map +1 -1
- package/esm/table-scrollbar/index.js +1 -1
- package/esm/table-scrollbar/index.js.map +1 -1
- package/esm/table-title-tooltip/index.js +1 -1
- package/esm/table-title-tooltip/index.js.map +1 -1
- package/esm/tabs-wrapper/index.js +1 -1
- package/esm/tabs-wrapper/index.js.map +1 -1
- package/esm/tag-group/index.js +1 -1
- package/esm/tag-group/index.js.map +1 -1
- package/esm/tag-list-select/index.js +1 -1
- package/esm/tag-list-select/index.js.map +1 -1
- package/esm/tag-wrapper/index.js +1 -1
- package/esm/tag-wrapper/index.js.map +1 -1
- package/esm/text-css-ellipsis/index.js +1 -1
- package/esm/text-css-ellipsis/index.js.map +1 -1
- package/esm/text-overflow-render/index.js +1 -1
- package/esm/text-overflow-render/index.js.map +1 -1
- package/esm/time-picker-wrapper/index.js +1 -1
- package/esm/time-picker-wrapper/index.js.map +1 -1
- package/esm/time-range-picker-wrapper/index.js +1 -1
- package/esm/time-range-picker-wrapper/index.js.map +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/tree-selector-wrapper/index.js +1 -1
- package/esm/tree-selector-wrapper/index.js.map +1 -1
- package/esm/tree-wrapper/index.js +2 -2
- package/esm/tree-wrapper/index.js.map +1 -1
- package/esm/upload-wrapper/index.js +1 -1
- package/esm/upload-wrapper/index.js.map +1 -1
- package/index.d.ts +178 -1
- package/package.json +3 -3
- package/esm/_rollupPluginBabelHelpers-1f4d8910.js +0 -3
- package/esm/_rollupPluginBabelHelpers-1f4d8910.js.map +0 -1
- package/esm/anchor-steps-601a335f.js +0 -3
- package/esm/anchor-steps-601a335f.js.map +0 -1
- package/esm/button-operate-d00df6c9.js +0 -3
- package/esm/button-operate-d00df6c9.js.map +0 -1
- package/esm/button-wrapper-125fce50.js +0 -3
- package/esm/button-wrapper-125fce50.js.map +0 -1
- package/esm/cascader-wrapper-2f6a926f.js +0 -3
- package/esm/cascader-wrapper-2f6a926f.js.map +0 -1
- package/esm/cell-render-4934a7de.js +0 -3
- package/esm/cell-render-4934a7de.js.map +0 -1
- package/esm/center-a4dfda6f.js +0 -3
- package/esm/center-a4dfda6f.js.map +0 -1
- package/esm/checkbox-wrapper-018a5c59.js +0 -3
- package/esm/checkbox-wrapper-018a5c59.js.map +0 -1
- package/esm/config-provider-wrapper-dfe8f592.js +0 -3
- package/esm/config-provider-wrapper-dfe8f592.js.map +0 -1
- package/esm/content-c0e49ffb.js +0 -3
- package/esm/content-c0e49ffb.js.map +0 -1
- package/esm/css-node-hover-ed7b9860.js +0 -3
- package/esm/css-node-hover-ed7b9860.js.map +0 -1
- package/esm/data-render-07c0ab6b.js +0 -3
- package/esm/data-render-07c0ab6b.js.map +0 -1
- package/esm/date-picker-wrapper-ba650858.js +0 -3
- package/esm/date-picker-wrapper-ba650858.js.map +0 -1
- package/esm/date-range-picker-wrapper-fb15c592.js +0 -3
- package/esm/date-range-picker-wrapper-fb15c592.js.map +0 -1
- package/esm/date-range-picker-wrapper-form-item-688cf465.js +0 -3
- package/esm/date-range-picker-wrapper-form-item-688cf465.js.map +0 -1
- package/esm/dialog-alert-89d37729.js +0 -3
- package/esm/dialog-alert-89d37729.js.map +0 -1
- package/esm/dialog-confirm-74fc9337.js +0 -3
- package/esm/dialog-confirm-74fc9337.js.map +0 -1
- package/esm/dialog-drawer-550ce42c.js +0 -3
- package/esm/dialog-drawer-550ce42c.js.map +0 -1
- package/esm/dialog-loading-53cf2c60.js +0 -3
- package/esm/dialog-loading-53cf2c60.js.map +0 -1
- package/esm/dialog-modal-4a0c72c5.js +0 -3
- package/esm/dialog-modal-4a0c72c5.js.map +0 -1
- package/esm/drag-collapse-24ccfe8c.js +0 -3
- package/esm/drag-collapse-24ccfe8c.js.map +0 -1
- package/esm/drag-collapse-433fb1e0.js +0 -3
- package/esm/drag-collapse-433fb1e0.js.map +0 -1
- package/esm/drawer-wrapper-9af2f178.js +0 -3
- package/esm/drawer-wrapper-9af2f178.js.map +0 -1
- package/esm/dropdown-menu-wrapper-3a565fd8.js +0 -3
- package/esm/dropdown-menu-wrapper-3a565fd8.js.map +0 -1
- package/esm/dynamic-node-c7864af4.js +0 -3
- package/esm/dynamic-node-c7864af4.js.map +0 -1
- package/esm/editable-field-bcac193d.js +0 -3
- package/esm/editable-field-bcac193d.js.map +0 -1
- package/esm/editable-field-provider-3223073a.js +0 -3
- package/esm/editable-field-provider-3223073a.js.map +0 -1
- package/esm/editable-table-64554cac.js +0 -3
- package/esm/editable-table-64554cac.js.map +0 -1
- package/esm/editor-wrapper-ff6e75b7.js +0 -3
- package/esm/editor-wrapper-ff6e75b7.js.map +0 -1
- package/esm/fba-utils-f9e11d02.js +0 -3
- package/esm/fba-utils-f9e11d02.js.map +0 -1
- package/esm/file-import-890a1df9.js +0 -3
- package/esm/file-import-890a1df9.js.map +0 -1
- package/esm/flex-layout-8d2b668b.js +0 -3
- package/esm/flex-layout-8d2b668b.js.map +0 -1
- package/esm/form-item-hidden-45541774.js +0 -3
- package/esm/form-item-hidden-45541774.js.map +0 -1
- package/esm/form-item-wrapper-208febed.js +0 -3
- package/esm/form-item-wrapper-208febed.js.map +0 -1
- package/esm/gap-284e1f59.js +0 -3
- package/esm/gap-284e1f59.js.map +0 -1
- package/esm/icon-wrapper-ed5fcacc.js +0 -3
- package/esm/icon-wrapper-ed5fcacc.js.map +0 -1
- package/esm/in-view-448ba714.js +0 -3
- package/esm/in-view-448ba714.js.map +0 -1
- package/esm/input-search-wrapper-10d4a9b9.js +0 -3
- package/esm/input-search-wrapper-10d4a9b9.js.map +0 -1
- package/esm/input-text-area-wrapper-1f22992b.js +0 -3
- package/esm/input-text-area-wrapper-1f22992b.js.map +0 -1
- package/esm/input-wrapper-338ae416.js +0 -3
- package/esm/input-wrapper-338ae416.js.map +0 -1
- package/esm/label-value-layout-beb35b0d.js +0 -3
- package/esm/label-value-layout-beb35b0d.js.map +0 -1
- package/esm/modal-action-5c5ca8a7.js +0 -3
- package/esm/modal-action-5c5ca8a7.js.map +0 -1
- package/esm/modal-wrapper-ff8df98b.js +0 -3
- package/esm/modal-wrapper-ff8df98b.js.map +0 -1
- package/esm/page-fixed-footer-9ec2b46c.js +0 -3
- package/esm/page-fixed-footer-9ec2b46c.js.map +0 -1
- package/esm/page404-f087129a.js +0 -3
- package/esm/page404-f087129a.js.map +0 -1
- package/esm/pagination-0e66a3b5.js +0 -3
- package/esm/pagination-0e66a3b5.js.map +0 -1
- package/esm/permission-17ed4d0b.js +0 -3
- package/esm/permission-17ed4d0b.js.map +0 -1
- package/esm/radio-group-wrapper-b34746d1.js +0 -3
- package/esm/radio-group-wrapper-b34746d1.js.map +0 -1
- package/esm/relation-tree-7bec12bd.js +0 -3
- package/esm/relation-tree-7bec12bd.js.map +0 -1
- package/esm/request-status-03fc60e2.js +0 -3
- package/esm/request-status-03fc60e2.js.map +0 -1
- package/esm/rich-text-editor-213daa34.js +0 -3
- package/esm/rich-text-editor-213daa34.js.map +0 -1
- package/esm/rich-text-viewer-4a859351.js +0 -3
- package/esm/rich-text-viewer-4a859351.js.map +0 -1
- package/esm/rule-describe-b4a8e831.js +0 -3
- package/esm/rule-describe-b4a8e831.js.map +0 -1
- package/esm/selector-wrapper-efc44920.js +0 -3
- package/esm/selector-wrapper-efc44920.js.map +0 -1
- package/esm/selector-wrapper-search-54866dd6.js +0 -3
- package/esm/selector-wrapper-search-54866dd6.js.map +0 -1
- package/esm/selector-wrapper-simple-7b34f7bd.js +0 -3
- package/esm/selector-wrapper-simple-7b34f7bd.js.map +0 -1
- package/esm/simple-layout-0dce0d39.js +0 -3
- package/esm/simple-layout-0dce0d39.js.map +0 -1
- package/esm/sms-count-down-c2609386.js +0 -3
- package/esm/sms-count-down-c2609386.js.map +0 -1
- package/esm/switch-confirm-wrapper-984d57c4.js +0 -3
- package/esm/switch-confirm-wrapper-984d57c4.js.map +0 -1
- package/esm/switch-wrapper-f20b9a58.js +0 -3
- package/esm/switch-wrapper-f20b9a58.js.map +0 -1
- package/esm/table-scrollbar-66c1682c.js +0 -3
- package/esm/table-scrollbar-66c1682c.js.map +0 -1
- package/esm/tabs-wrapper-0a2da713.js +0 -3
- package/esm/tabs-wrapper-0a2da713.js.map +0 -1
- package/esm/tag-group-4fbcaa14.js +0 -3
- package/esm/tag-group-4fbcaa14.js.map +0 -1
- package/esm/tag-list-select-066f682f.js +0 -3
- package/esm/tag-list-select-066f682f.js.map +0 -1
- package/esm/tag-wrapper-6d8b505e.js +0 -3
- package/esm/tag-wrapper-6d8b505e.js.map +0 -1
- package/esm/text-css-ellipsis-9135d4c5.js +0 -3
- package/esm/text-css-ellipsis-9135d4c5.js.map +0 -1
- package/esm/text-overflow-render-7a6541f5.js +0 -3
- package/esm/text-overflow-render-7a6541f5.js.map +0 -1
- package/esm/time-picker-wrapper-f1d26d96.js +0 -3
- package/esm/time-picker-wrapper-f1d26d96.js.map +0 -1
- package/esm/time-range-picker-wrapper-be9850b5.js +0 -3
- package/esm/time-range-picker-wrapper-be9850b5.js.map +0 -1
- package/esm/time-range-picker-wrapper-form-item-9df6c0f4.js +0 -3
- package/esm/time-range-picker-wrapper-form-item-9df6c0f4.js.map +0 -1
- package/esm/title-render-4f255df0.js +0 -3
- package/esm/title-render-4f255df0.js.map +0 -1
- package/esm/tree-selector-wrapper-1e520ad1.js +0 -3
- package/esm/tree-selector-wrapper-1e520ad1.js.map +0 -1
- package/esm/upload-wrapper-bd9ef592.js +0 -3
- package/esm/upload-wrapper-bd9ef592.js.map +0 -1
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{_ as e,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{Form as o,Input as t}from"antd";import{useMemo as i,useRef as l,forwardRef as u,useImperativeHandle as s}from"react";import{D as v}from"./date-range-picker-wrapper-fb15c592.js";import{fbaHooks as m}from"./fba-hooks/index.js";import{jsxs as c,Fragment as d,jsx as f}from"react/jsx-runtime";var h=["startName","endName","formListName","dateRangePickerWrapperProps"];var p=function t(u){var s=u.startName,p=u.endName,C=u.formListName,_=u.dateRangePickerWrapperProps,j=e(u,h);var P=o.useFormInstance();var k=i((function(){if(a(s)&&a(p)){return s.slice(0,s.length-1).concat("__#invalid_date_"+s[s.length-1]+"_"+p[p.length-1])}return"__#invalid_date_"+s+"_"+p}),[s,p]);var N=i((function(){return C?[].concat(C,s):s}),[s,C]);var F=i((function(){return C?[].concat(C,p):p}),[p,C]);var I=o.useWatch(N,P);var W=o.useWatch(F,P);var b=m.usePrevious(I);var x=m.usePrevious(W);m.useEffectCustom((function(){var e=C?[].concat(C,k):k;if(I&&W){P.setFields([{name:e,value:[I,W]}])}if(b&&x&&!I&&!W){P.setFields([{name:e,value:undefined}])}}),[I,W]);var R=l(null);var w=l(null);var D=r.useCallbackRef((function(e){var n,r;P.setFields([{name:N,value:e==null?void 0:e[0]},{name:F,value:e==null?void 0:e[1]}]);(n=R.current)==null?void 0:n.onChange==null?void 0:n.onChange(e==null?void 0:e[0]);(r=w.current)==null?void 0:r.onChange==null?void 0:r.onChange(e==null?void 0:e[1]);_==null?void 0:_.onChange==null?void 0:_.onChange(e)}));return c(d,{children:[f(o.Item,{name:s,hidden:true,children:f(g,{ref:R})}),f(o.Item,{name:p,hidden:true,children:f(g,{ref:w})}),f(o.Item,n({},j,{name:k,children:f(v,n({},_,{onChange:D}))}))]})};var g=u((function(e,n){s(n,(function(){return{onChange:function n(r){e.onChange==null?void 0:e.onChange(r)}}}));return f(t,{value:e.value})}));export{p as D};
|
|
3
|
-
//# sourceMappingURL=date-range-picker-wrapper-form-item-688cf465.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker-wrapper-form-item-688cf465.js","sources":["@flatbiz/antd/src/date-range-picker-wrapper-form-item/date-range-picker-wrapper-form-item.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormItemProps, Input } from 'antd';\nimport { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';\nimport { DateRangePickerWrapper, DateRangePickerWrapperProps } from '../date-range-picker-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemNamePath } from '../types';\n\nexport type DateRangePickerWrapperFormItemProps = Omit<FormItemProps, 'name'> & {\n /**\n * 开始的时间name\n */\n startName: FormItemNamePath;\n /**\n * 结束的时间name\n */\n endName: FormItemNamePath;\n /**\n * 如果 DateRangePickerWrapperFormItem 在Form.List场景下 必传\n */\n formListName?: FormItemNamePath;\n dateRangePickerWrapperProps?: DateRangePickerWrapperProps;\n};\n/**\n * 包含了Form.Item组件的时间区间选择组件\n * ```\n * 1. 时间区间组件可以定义成两个字段操作,不用再通过数组处理\n * 2. 会在form中产生一个 `__#invalid_date_xxxx_xxxx` 的无效字段,可以直接忽略\n * ```\n */\nexport const DateRangePickerWrapperFormItem = (props: DateRangePickerWrapperFormItemProps) => {\n const { startName, endName, formListName, dateRangePickerWrapperProps, ...otherProps } = props;\n const form = Form.useFormInstance();\n const bodyName = useMemo(() => {\n if (isArray(startName) && isArray(endName)) {\n return startName\n .slice(0, startName.length - 1)\n .concat(`__#invalid_date_${startName[startName.length - 1]}_${endName[endName.length - 1]}`);\n }\n return `__#invalid_date_${startName}_${endName}`;\n }, [startName, endName]);\n\n const startNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, startName) : startName;\n }, [startName, formListName]);\n\n const endNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, endName) : endName;\n }, [endName, formListName]);\n\n const startVal = Form.useWatch(startNameMerge, form);\n const endVal = Form.useWatch(endNameMerge, form);\n // const bodyVal = Form.useWatch(bodyName, form);\n\n const preValue1 = fbaHooks.usePrevious(startVal);\n const preValue2 = fbaHooks.usePrevious(endVal);\n\n fbaHooks.useEffectCustom(() => {\n const name = formListName ? ([] as (string | number)[]).concat(formListName, bodyName) : bodyName;\n if (startVal && endVal) {\n form.setFields([{ name, value: [startVal, endVal] }]);\n }\n if (preValue1 && preValue2 && !startVal && !endVal) {\n form.setFields([{ name, value: undefined }]);\n }\n }, [startVal, endVal]);\n\n const reftest = useRef<InputContentRef>(null);\n const reftest2 = useRef<InputContentRef>(null);\n\n const onChange = hooks.useCallbackRef((data) => {\n form.setFields([\n { name: startNameMerge, value: data?.[0] },\n { name: endNameMerge, value: data?.[1] },\n ]);\n // 为了解决 外部Form onValuesChange获取到操作值\n reftest.current?.onChange?.(data?.[0]);\n reftest2.current?.onChange?.(data?.[1]);\n dateRangePickerWrapperProps?.onChange?.(data);\n });\n\n return (\n <>\n <Form.Item name={startName} hidden>\n <InputContent ref={reftest} />\n </Form.Item>\n <Form.Item name={endName} hidden>\n <InputContent ref={reftest2} />\n </Form.Item>\n <Form.Item {...otherProps} name={bodyName}>\n <DateRangePickerWrapper {...dateRangePickerWrapperProps} onChange={onChange} />\n </Form.Item>\n </>\n );\n};\n\ntype InputContentProps = {\n onChange?: (data: TAny) => void;\n value?: string;\n};\n\ntype InputContentRef = {\n onChange?: (data: TAny) => void;\n};\n\nconst InputContent = forwardRef<InputContentRef, InputContentProps>((props, ref) => {\n useImperativeHandle(ref, () => {\n return {\n onChange: (startVal) => {\n props.onChange?.(startVal);\n },\n };\n });\n\n return <Input value={props.value} />;\n});\n"],"names":["DateRangePickerWrapperFormItem","props","startName","endName","formListName","dateRangePickerWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","form","Form","useFormInstance","bodyName","useMemo","_isArray","slice","length","concat","startNameMerge","endNameMerge","startVal","useWatch","endVal","preValue1","fbaHooks","usePrevious","preValue2","useEffectCustom","name","setFields","value","undefined","reftest","useRef","reftest2","onChange","_hooks","useCallbackRef","data","_reftest$current","_reftest2$current","current","_jsxs","_Fragment","children","_jsx","Item","hidden","InputContent","ref","_extends","DateRangePickerWrapper","forwardRef","useImperativeHandle","Input"],"mappings":";2hBA+BaA,EAAiC,SAAjCA,EAAkCC,GAC7C,IAAQC,EAAiFD,EAAjFC,UAAWC,EAAsEF,EAAtEE,QAASC,EAA6DH,EAA7DG,aAAcC,EAA+CJ,EAA/CI,4BAAgCC,EAAUC,EAAKN,EAAKO,GAC9F,IAAMC,EAAOC,EAAKC,kBAClB,IAAMC,EAAWC,GAAQ,WACvB,GAAIC,EAAQZ,IAAcY,EAAQX,GAAU,CAC1C,OAAOD,EACJa,MAAM,EAAGb,EAAUc,OAAS,GAC5BC,OAA0Bf,mBAAAA,EAAUA,EAAUc,OAAS,GAAMb,IAAAA,EAAQA,EAAQa,OAAS,GAC3F,CACA,MAA0Bd,mBAAAA,MAAaC,CACzC,GAAG,CAACD,EAAWC,IAEf,IAAMe,EAAiBL,GAAQ,WAC7B,OAAOT,EAAgB,GAA2Ba,OAAOb,EAAcF,GAAaA,CACtF,GAAG,CAACA,EAAWE,IAEf,IAAMe,EAAeN,GAAQ,WAC3B,OAAOT,EAAgB,GAA2Ba,OAAOb,EAAcD,GAAWA,CACpF,GAAG,CAACA,EAASC,IAEb,IAAMgB,EAAWV,EAAKW,SAASH,EAAgBT,GAC/C,IAAMa,EAASZ,EAAKW,SAASF,EAAcV,GAG3C,IAAMc,EAAYC,EAASC,YAAYL,GACvC,IAAMM,EAAYF,EAASC,YAAYH,GAEvCE,EAASG,iBAAgB,WACvB,IAAMC,EAAOxB,EAAgB,GAA2Ba,OAAOb,EAAcQ,GAAYA,EACzF,GAAIQ,GAAYE,EAAQ,CACtBb,EAAKoB,UAAU,CAAC,CAAED,KAAAA,EAAME,MAAO,CAACV,EAAUE,KAC5C,CACA,GAAIC,GAAaG,IAAcN,IAAaE,EAAQ,CAClDb,EAAKoB,UAAU,CAAC,CAAED,KAAAA,EAAME,MAAOC,YACjC,CACF,GAAG,CAACX,EAAUE,IAEd,IAAMU,EAAUC,EAAwB,MACxC,IAAMC,EAAWD,EAAwB,MAEzC,IAAME,EAAWC,EAAMC,gBAAe,SAACC,GAAS,IAAAC,EAAAC,EAC9C/B,EAAKoB,UAAU,CACb,CAAED,KAAMV,EAAgBY,MAAOQ,GAAAA,UAAAA,EAAAA,EAAO,IACtC,CAAEV,KAAMT,EAAcW,MAAOQ,GAAAA,UAAAA,EAAAA,EAAO,OAGtCC,EAAAP,EAAQS,UAARF,UAAAA,EAAAA,EAAiBJ,UAAQ,UAAA,EAAzBI,EAAiBJ,SAAWG,GAAI,UAAA,EAAJA,EAAO,KACnCE,EAAAN,EAASO,UAATD,UAAAA,EAAAA,EAAkBL,UAAQ,UAAA,EAA1BK,EAAkBL,SAAWG,GAAI,UAAA,EAAJA,EAAO,IACpCjC,GAA2B,UAAA,EAA3BA,EAA6B8B,UAAQ,UAAA,EAArC9B,EAA6B8B,SAAWG,EAC1C,IAEA,OACEI,EAAAC,EAAA,CAAAC,SACEC,CAAAA,EAACnC,EAAKoC,KAAI,CAAClB,KAAM1B,EAAW6C,OAAM,KAAAH,SAChCC,EAACG,EAAY,CAACC,IAAKjB,MAErBa,EAACnC,EAAKoC,KAAI,CAAClB,KAAMzB,EAAS4C,OAAM,KAAAH,SAC9BC,EAACG,EAAY,CAACC,IAAKf,MAErBW,EAACnC,EAAKoC,KAAII,EAAA,CAAA,EAAK5C,EAAU,CAAEsB,KAAMhB,EAASgC,SACxCC,EAACM,EAAsBD,KAAK7C,EAA2B,CAAE8B,SAAUA,UAI3E,EAWA,IAAMa,EAAeI,GAA+C,SAACnD,EAAOgD,GAC1EI,EAAoBJ,GAAK,WACvB,MAAO,CACLd,SAAU,SAAAA,EAACf,GACTnB,EAAMkC,UAANlC,UAAAA,EAAAA,EAAMkC,SAAWf,EACnB,EAEJ,IAEA,OAAOyB,EAACS,EAAK,CAACxB,MAAO7B,EAAM6B,OAC7B"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{d as e}from"./dialog-confirm-74fc9337.js";var r={open:function r(a){return e.open(o({okText:"确定",cancelHidden:true,maskClosable:false},a,{onOk:a.onClick}))}};export{r as d};
|
|
3
|
-
//# sourceMappingURL=dialog-alert-89d37729.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-alert-89d37729.js","sources":["@flatbiz/antd/src/dialog-alert/dialog-alert.tsx"],"sourcesContent":["import { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type DialogAlertProps = Omit<\n DialogModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const dialogAlert = {\n open: (props: DialogAlertProps) => {\n return dialogConfirm.open({\n okText: '确定',\n cancelHidden: true,\n maskClosable: false,\n ...props,\n onOk: props.onClick,\n } as DialogModalProps);\n },\n};\n"],"names":["dialogAlert","open","props","dialogConfirm","_extends","okText","cancelHidden","maskClosable","onOk","onClick"],"mappings":";6GAWO,IAAMA,EAAc,CACzBC,KAAM,SAAAA,EAACC,GACL,OAAOC,EAAcF,KAAIG,EAAA,CACvBC,OAAQ,KACRC,aAAc,KACdC,aAAc,OACXL,EAAK,CACRM,KAAMN,EAAMO,UAEhB"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{a}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as s}from"@dimjs/utils/cjs/class-names";import{d as o}from"./dialog-modal-4a0c72c5.js";var e={open:function e(l){var r=s("v-dialog-confirm",l.className);return o.open(a({width:350,okText:"确定",cancelText:"取消",maskClosable:true},l,{className:r}))}};export{e as d};
|
|
3
|
-
//# sourceMappingURL=dialog-confirm-74fc9337.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-confirm-74fc9337.js","sources":["@flatbiz/antd/src/dialog-confirm/dialog-confirm.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { dialogModal, DialogModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport const dialogConfirm = {\n open: (props: DialogModalProps) => {\n const className = classNames('v-dialog-confirm', props.className);\n return dialogModal.open({\n width: 350,\n okText: '确定',\n cancelText: '取消',\n maskClosable: true,\n ...props,\n className,\n });\n },\n};\n"],"names":["dialogConfirm","open","props","className","_classNames","dialogModal","_extends","width","okText","cancelText","maskClosable"],"mappings":";gKAIO,IAAMA,EAAgB,CAC3BC,KAAM,SAAAA,EAACC,GACL,IAAMC,EAAYC,EAAW,mBAAoBF,EAAMC,WACvD,OAAOE,EAAYJ,KAAIK,EAAA,CACrBC,MAAO,IACPC,OAAQ,KACRC,WAAY,KACZC,aAAc,MACXR,EAAK,CACRC,UAAAA,IAEJ"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{isString as e}from"@dimjs/lang/cjs/is-string";import{a as r,_ as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isPromise as n}from"@dimjs/lang/cjs/is-promise";import{hooks as t}from"@wove/react/cjs/hooks";import{Form as i,Space as a,Drawer as l}from"antd";import{useState as d}from"react";import{createRoot as c}from"react-dom/client";import{B as s}from"./button-wrapper-125fce50.js";import{C as u}from"./config-provider-wrapper-dfe8f592.js";import{fbaHooks as f}from"./fba-hooks/index.js";import{b as m}from"./dom-4d04aa64.js";import{C as p}from"./context-1f2093c6.js";import{jsx as v,jsxs as w}from"react/jsx-runtime";var h=["divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra","bodyStyle"];var k=function e(c){var m=c.divElement,k=c.elementId,x=c.onOk,y=c.onCancel,C=c.content,b=c.configProviderProps,j=c.okText,P=c.cancelText,g=c.okButtonExtraProps,_=c.cancelButtonExtraProps,E=c.operatePosition,B=E===void 0?"footer":E,I=c.operateRender,H=c.width,R=H===void 0?600:H,S=c.okHidden,T=c.cancelHidden,O=c.extra,W=c.bodyStyle,F=o(c,h);var q=d(true),z=q[0],A=q[1];var D=d(),G=D[0],J=D[1];var K=i.useForm(),L=K[0];var M=t.useCallbackRef((function(){try{delete window[k]}catch(e){}A(false)}));f.useEffectCustom((function(){window[k]=M}),[M]);var N=t.useCallbackRef((function(e){if(y){var r=y(L,e);if(r&&n(r)){return r.then(M)}}return M()}));var Q=t.useCallbackRef((function(e){if(x){var r=x(L,e);if(r&&n(r)){return r.then(M)}}return M()}));var U=w(a,{children:[T||_!=null&&_.hidden?null:v(s,r({},_,{onClick:N,children:P||"取消"})),S||g!=null&&g.hidden?null:v(s,r({type:"primary"},g,{onClick:Q,children:j||"提交"}))]});var V=function e(){if(I){return I(L)}if(!S||!T){return U}return null};var X=typeof O==="function"?O(L):O;var Y=function e(r){J(r)};return v(p,{value:{onClose:M,updateBodyStyle:Y},children:v(u,r({},b,{children:v(l,r({maskClosable:true,destroyOnClose:true,onClose:M,width:"80%",contentWrapperStyle:{maxWidth:R},footer:B==="footer"?V():null},F,{bodyStyle:r({},G,W),extra:B==="header"?V():X,open:z,getContainer:m,children:typeof C==="function"?C(L,{onClose:M}):C}))}))})};var x={open:function e(o){var n=m(),t=n.divElement,i=n.elementId;window["__dialog_drawer_elementId"]=i;var a=c(t);a.render(v(k,r({},o,{divElement:t,elementId:i})));return{close:function e(){var r,o;(r=(o=window)[i])==null?void 0:r.call(o)}}},close:function r(){try{var o,n;var t=window["__dialog_drawer_elementId"];if(e(t))(o=(n=window)[t])==null?void 0:o.call(n)}catch(e){}}};export{x as d};
|
|
3
|
-
//# sourceMappingURL=dialog-drawer-550ce42c.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-drawer-550ce42c.js","sources":["@flatbiz/antd/src/dialog-drawer/dialog-drawer.tsx"],"sourcesContent":["import { isPromise, isString } from '@dimjs/lang';\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { CSSProperties, ReactElement, ReactNode, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps } from '../_utils/dom';\nimport { CtxProvider } from './context';\n\nexport type DialogDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogDrawerProps) => {\n const {\n divElement,\n elementId,\n onOk,\n onCancel,\n content,\n configProviderProps,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width = 600,\n okHidden,\n cancelHidden,\n extra,\n bodyStyle,\n ...otherProps\n } = props;\n const [open, setOpen] = useState(true);\n const [innerBodyStyle, setInnerBodyStyle] = useState<CSSProperties>();\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const updateBodyStyle = (bodyStyle?: CSSProperties) => {\n setInnerBodyStyle(bodyStyle);\n };\n\n return (\n <CtxProvider value={{ onClose, updateBodyStyle }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n onClose={onClose}\n width={'80%'}\n contentWrapperStyle={{ maxWidth: width }}\n footer={operatePosition === 'footer' ? operateRenderHandle() : null}\n {...otherProps}\n bodyStyle={{ ...innerBodyStyle, ...bodyStyle }}\n extra={operatePosition === 'header' ? operateRenderHandle() : extraRender}\n open={open}\n getContainer={divElement}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n </ConfigProviderWrapper>\n </CtxProvider>\n );\n};\n\n/**\n * 函数式调用弹框;初始化后,内容无法更新\n *```\n * 1. 基础使用方式\n * dialogDrawer.open({\n * title: '我是标题',\n * content: <div>我是内容</div>,\n * });\n * ```\n * ```\n * ***************************\n * 2. 结合内置form使用,可在onOK、onCancel获取form对象\n * dialogDrawer.open({\n * title: '我是标题',\n * content: (form, operate) => {\n * return (\n * <Form form={form}>\n * <Form.Item name=\"useName\">\n * <Input placeholder=\"请输入\" />\n * </Form.Item>\n * </Form>\n * );\n * },\n * onOk: (form) => {\n * console.log('content form数据', form.getFieldsValue());\n * return Promise.resolve();\n * },\n * });\n *\n * 注意:\n * 1. 设置operateRender后,需要自定义操作按钮,onOk、onCancel、okText、cancelText、okButtonExtraProps、cancelButtonExtraProps配置失效\n * ```\n */\nexport const dialogDrawer = {\n open: (props: DialogDrawerProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_drawer_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogDrawer.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_drawer_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","_props$width","width","okHidden","cancelHidden","extra","bodyStyle","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_useState2","innerBodyStyle","setInnerBodyStyle","_Form$useForm","Form","useForm","form","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","operateGroup","_jsxs","Space","children","hidden","_jsx","ButtonWrapper","_extends","onClick","type","operateRenderHandle","extraRender","updateBodyStyle","CtxProvider","value","ConfigProviderWrapper","Drawer","maskClosable","destroyOnClose","contentWrapperStyle","maxWidth","footer","getContainer","dialogDrawer","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{isString as e}from"@dimjs/lang/cjs/is-string";import{a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as a}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{theme as l,Modal as n}from"antd";import{useState as i}from"react";import{createRoot as t}from"react-dom/client";import{fbaHooks as s}from"./fba-hooks/index.js";import{b as d,r as m}from"./dom-4d04aa64.js";import{jsx as c,jsxs as f}from"react/jsx-runtime";var v=function e(o){var t=o.elementId,d=o.className,v=o.divElement,u=o.message,p=o.mask;var g=l.useToken(),w=g.token;var k=w.colorPrimary;var j=i(true),_=j[0],b=j[1];var h=r.useCallbackRef((function(){try{delete window[t]}catch(e){}b(false)}));s.useEffectCustom((function(){window[t]=h}),[h]);var C=r.useCallbackRef((function(){m("#"+t)}));return c(n,{maskClosable:false,centered:true,destroyOnClose:true,className:a("v-dialog-loading",d),open:_,afterClose:C,getContainer:v,footer:null,closable:false,style:{"--v-loading-color":k},mask:p,children:c("div",{className:a("v-dialog-loading-content"),children:f("div",{className:"loader-wrapper",children:[c("div",{className:"loader-inner"}),c("div",{className:"loader-text",children:u||"处理中"})]})})})};var u={open:function e(a){var r=d(),l=r.divElement,n=r.elementId;window["__dialog_loading_elementId"]=n;var i=t(l);i.render(c(v,o({},a,{divElement:l,elementId:n,mask:a==null?void 0:a.mask})));return{close:function e(){var o,a;(o=(a=window)[n])==null?void 0:o.call(a)}}},close:function o(){try{var a,r;var l=window["__dialog_loading_elementId"];if(e(l))(a=(r=window)[l])==null?void 0:a.call(r)}catch(e){}}};export{u as d};
|
|
3
|
-
//# sourceMappingURL=dialog-loading-53cf2c60.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-loading-53cf2c60.js","sources":["@flatbiz/antd/src/dialog-loading/dialog-loading.tsx"],"sourcesContent":["import { isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps, removeBodyChild } from '../_utils/dom';\nimport './style.less';\n\nexport type DialogLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogLoadingProps) => {\n const { elementId, className, divElement, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n const [open, setOpen] = useState(true);\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onAfterClose = hooks.useCallbackRef(() => {\n removeBodyChild(`#${elementId}`);\n });\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('v-dialog-loading', className)}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n footer={null}\n closable={false}\n style={{ '--v-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <div className={classNames('v-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </div>\n </Modal>\n );\n};\n\nexport const dialogLoading = {\n open: (props?: DialogLoadingProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_loading_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} mask={props?.mask} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_loading_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","elementId","className","divElement","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","_useState","useState","open","setOpen","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onAfterClose","removeBodyChild","_jsx","Modal","maskClosable","centered","destroyOnClose","_classNames","afterClose","getContainer","footer","closable","style","children","_jsxs","dialogLoading","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","_extends","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":";+dAgBA,IAAMA,EAAc,SAAdA,EAAeC,GACnB,IAAQC,EAAoDD,EAApDC,UAAWC,EAAyCF,EAAzCE,UAAWC,EAA8BH,EAA9BG,WAAYC,EAAkBJ,EAAlBI,QAASC,EAASL,EAATK,KACnD,IAAAC,EAAkBC,EAAMC,WAAhBC,EAAKH,EAALG,MACR,IAAMC,EAAeD,EAAMC,aAE3B,IAAAC,EAAwBC,EAAS,MAA1BC,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAEpB,IAAMI,EAAUC,EAAMC,gBAAe,WACnC,WACSC,OAAOjB,EACf,CAAC,MAAOkB,GACP,CAEFL,EAAQ,MACV,IAEAM,EAASC,iBAAgB,WACvBH,OAAOjB,GAAac,CACtB,GAAG,CAACA,IAEJ,IAAMO,EAAeN,EAAMC,gBAAe,WACxCM,EAAe,IAAKtB,EACtB,IAEA,OACEuB,EAACC,EAAK,CACJC,aAAc,MACdC,SAAU,KACVC,eAAc,KACd1B,UAAW2B,EAAW,mBAAoB3B,GAC1CW,KAAMA,EACNiB,WAAYR,EACZS,aAAc5B,EACd6B,OAAQ,KACRC,SAAU,MACVC,MAAO,CAAE,oBAAqBxB,GAC9BL,KAAMA,EAAK8B,SAEXX,EAAA,MAAA,CAAKtB,UAAW2B,EAAW,4BAA4BM,SACrDC,EAAA,MAAA,CAAKlC,UAAU,iBAAgBiC,UAC7BX,EAAA,MAAA,CAAKtB,UAAU,iBACfsB,EAAA,MAAA,CAAKtB,UAAU,cAAaiC,SAAE/B,GAAW,cAKnD,EAEO,IAAMiC,EAAgB,CAC3BxB,KAAM,SAAAA,EAACb,GACL,IAAAsC,EAAkCC,IAA1BpC,EAAUmC,EAAVnC,WAAYF,EAASqC,EAATrC,UACpBiB,OAAO,8BAAgCjB,EACvC,IAAMuC,EAAOC,EAAWtC,GACxBqC,EAAKE,OAAOlB,EAACzB,EAAW4C,EAAA,CAAA,EAAK3C,EAAK,CAAEG,WAAYA,EAAYF,UAAWA,EAAWI,KAAML,GAAAA,UAAAA,EAAAA,EAAOK,SAC/F,MAAO,CACLuC,MAAO,SAAAA,IAAM,IAAAC,EAAAC,GACXD,GAAAC,EAAA5B,QAAOjB,KAAU,UAAA,EAAjB4C,EAAAE,KAAAD,EACF,EAEH,EAODF,MAAO,SAAAA,IACL,IAAI,IAAAI,EAAAC,EACF,IAAMhD,EAAYiB,OAAO,8BACzB,GAAIgC,EAASjD,IAAY+C,GAAAC,EAAA/B,QAAOjB,KAAP+C,UAAAA,EAAAA,EAAAD,KAAAE,EAC1B,CAAC,MAAO9B,GACP,CAEJ"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{isString as e}from"@dimjs/lang/cjs/is-string";import{classNames as o}from"@dimjs/utils/cjs/class-names";import{a as r,_ as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isPromise as t}from"@dimjs/lang/cjs/is-promise";import{hooks as i}from"@wove/react/cjs/hooks";import{dom as l}from"@flatbiz/utils";import{useSize as a}from"ahooks";import{Form as c,Modal as d}from"antd";import{useState as m,useMemo as s}from"react";import{createRoot as u}from"react-dom/client";import{B as f}from"./button-wrapper-125fce50.js";import{C as v}from"./config-provider-wrapper-dfe8f592.js";import{fbaHooks as p}from"./fba-hooks/index.js";import{jsx as h}from"react/jsx-runtime";var g=["divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent"];var C=function e(u){var C=u.divElement,k=u.elementId,w=u.onOk,y=u.onCancel,b=u.okButtonProps,j=u.cancelButtonProps,P=u.content,_=u.configProviderProps,x=u.className,H=u.okHidden,B=u.cancelHidden,E=u.footer,I=u.cancelText,R=u.okText,T=u.bodyHeightPercent,N=n(u,g);var O=m(true),S=O[0],q=O[1];var z=c.useForm(),A=z[0];var D=a(document.querySelector("html"));var F=i.useCallbackRef((function(){try{delete window[k]}catch(e){}q(false)}));p.useEffectCustom((function(){window[k]=F}),[F]);var G=i.useCallbackRef((function(e){if(y){var o=y(A,e);if(o&&t(o)){return o.then(F)}}return F()}));var J=i.useCallbackRef((function(e){if(w){var o=w(A,e);if(o&&t(o)){return o.then(F)}}return F()}));var K=i.useCallbackRef((function(){l.removeBodyChild("#"+k);u.afterClose==null?void 0:u.afterClose()}));var L=[h(f,r({},j,{onClick:G,hidden:B,children:I||"取消"}),"0"),h(f,r({type:"primary"},b,{onClick:J,hidden:H,children:R||"提交"}),"1")];var M=E||L;var Q=s((function(){if(!(D!=null&&D.height)||!T){return"auto"}return(D==null?void 0:D.height)*(T/100)}),[T,D==null?void 0:D.height]);return h(v,r({},_,{children:h(d,r({maskClosable:true,centered:true,onCancel:F,destroyOnClose:true},N,{bodyStyle:r({height:Q,maxHeight:D!=null&&D.height?(D==null?void 0:D.height)*.8:"calc(100vh - 200px)"},N.bodyStyle),className:o("v-dialog-modal",x),open:S,afterClose:K,getContainer:C,footer:M,children:typeof P==="function"?P(A,{onClose:F}):P}))}))};var k={open:function e(o){var n=l.bodyAppendDivElement(),t=n.divElement,i=n.elementId;window["__dialog_modal_elementId"]=i;var a=u(t);a.render(h(C,r({},o,{divElement:t,elementId:i})));return{close:function e(){var o,r;(o=(r=window)[i])==null?void 0:o.call(r)}}},close:function o(){try{var r,n;var t=window["__dialog_modal_elementId"];if(e(t))(r=(n=window)[t])==null?void 0:r.call(n)}catch(e){}}};export{k as d};
|
|
3
|
-
//# sourceMappingURL=dialog-modal-4a0c72c5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-modal-4a0c72c5.js","sources":["@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps'\n> & {\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogModalProps) => {\n const {\n divElement,\n elementId,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n configProviderProps,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n bodyHeightPercent,\n ...otherProps\n } = props;\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n const size = useSize(document.querySelector('html'));\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onAfterClose = hooks.useCallbackRef(() => {\n dom.removeBodyChild(`#${elementId}`);\n props.afterClose?.();\n });\n\n const operateGroup = [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || '取消'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ];\n\n const footerNew = footer || operateGroup;\n\n const height = useMemo(() => {\n if (!size?.height || !bodyHeightPercent) {\n return 'auto';\n }\n return size?.height * (bodyHeightPercent / 100);\n }, [bodyHeightPercent, size?.height]);\n\n return (\n <ConfigProviderWrapper {...configProviderProps}>\n <Modal\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n {...otherProps}\n bodyStyle={{\n height,\n maxHeight: size?.height ? size?.height * 0.8 : 'calc(100vh - 200px)',\n ...otherProps.bodyStyle,\n }}\n className={classNames('v-dialog-modal', className)}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n footer={footerNew}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n </ConfigProviderWrapper>\n );\n};\n\n/**\n * 函数式调用弹框;初始化后,内容无法更新\n *```\n * 1. 基础使用方式\n * dialogModal.open({\n * title: '我是弹框',\n * content: <div>我是内容</div>,\n * });\n * ```\n * ```\n * ***************************\n * 2. 结合内置form使用,可在onOK、onCancel获取form对象\n * dialogModal.open({\n * title: '我是弹框',\n * content: (form, operate) => {\n * return (\n * <Form form={form}>\n * <Form.Item name=\"useName\">\n * <Input placeholder=\"请输入\" />\n * </Form.Item>\n * </Form>\n * );\n * },\n * onOK: (form) => {\n * console.log('content form数据', form.getFieldsValue());\n * return Promise.resolve();\n * },\n * });\n * ```\n */\nexport const dialogModal = {\n open: (props: DialogModalProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_modal_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_modal_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","size","useSize","document","querySelector","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","footerNew","height","useMemo","ConfigProviderWrapper","Modal","maskClosable","centered","destroyOnClose","bodyStyle","maxHeight","_classNames","getContainer","dialogModal","_dom$bodyAppendDivEle","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as a}from"@dimjs/utils/cjs/array";import{hooks as n}from"@wove/react/cjs/hooks";import{DndContext as i,closestCenter as r,DragOverlay as t}from"@dnd-kit/core";import{useSortable as o,SortableContext as d,verticalListSortingStrategy as s,arrayMove as l}from"@dnd-kit/sortable";import{toArray as c}from"@flatbiz/utils";import{Collapse as m,Form as u}from"antd";import{Fragment as f,useState as p,useRef as g,useMemo as v}from"react";import{fbaHooks as h}from"./fba-hooks/index.js";import{a as I}from"./_rollupPluginBabelHelpers-1f4d8910.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as b}from"@dnd-kit/utilities";import{jsx as x,jsxs as y}from"react/jsx-runtime";function N(a){var n;var i=a.isOverlay?false:a.getItemDragDisabled==null?void 0:a.getItemDragDisabled(a.uid,a.index);var r=o({id:a.uid,disabled:i}),t=r.listeners,d=r.setNodeRef,s=r.transform,l=r.transition;var c=function e(){var n=a.dragIcon?a.dragIcon:x(D,{});var i=a.header({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName});return a.dragDisabled?i:y(f,{children:[x("span",I({className:"dc-drag-trigger"},t,{children:n})),x("span",{className:"dc-drag-header-content",style:a.headerStyle,children:i})]})};var u=I({transform:b.Transform.toString(s),transition:l},a.style);var p=e("drag-collapse",{"drag-collapse-grap":a.isGray,"drag-collapse-last":a.isLast,"drag-collapse-drag-disabled":i},a.className);return x(m,{activeKey:a.isActive?a.uid:undefined,accordion:true,className:p,collapsible:a.collapsible,expandIcon:a.expandIcon,expandIconPosition:a.expandIconPosition,size:a.size,onChange:(n=a.onChange)==null?void 0:n.bind(null,a.uid),style:I({},u),ref:d,children:x(m.Panel,{header:c(),children:a.content({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName})},a.uid)})}var C=function o(m){var I=p(),D=I[0],b=I[1];var C=p([]),L=C[0],F=C[1];var S=u.useFormInstance();var j=g([]);h.useEffectCustom((function(){var e=c(m.defaultActiveKey);if(!m.activeKey&&e.length>0){F(e)}else{F(c(m.activeKey))}}),[]);n.useUpdateEffect((function(){F(c(m.activeKey))}),[m.activeKey]);var P=function e(n){var i=[];if(m.accordion){if(L[0]&&L[0]===n){i=[]}else{i=[n]}}else{var r=L.includes(n);if(r){a.arrayRemove(L,n);i=[].concat(L)}else{i=L.concat(n)}}F(i);if(m.accordion){m.onChange==null?void 0:m.onChange(i.length?i[0]:undefined)}else{m.onChange==null?void 0:m.onChange(i.length?i:undefined)}};function k(e){var a=e.active;b(a.id)}var z=n.useCallbackRef((function(){return S.getFieldValue(m.formListName)||[]}));function O(e){var a=e.active,n=e.over;var i=z();if(a.id!==n.id){var r=i.findIndex((function(e){return e.uid===a.id}));var t=i.findIndex((function(e){return e.uid===n.id}));var o=l(i,r,t);S.setFields([{name:m.formListName,value:o}]);m.onDropChange==null?void 0:m.onDropChange(o)}b(undefined)}var K=v((function(){if(!D)return undefined;var e=z();var a=e.findIndex((function(e){return e.uid===D}));return j.current.find((function(e){return e.name===a}))}),[D,z]);return x("div",{className:e("drag-collapse-formlist-wrapper",m.className),style:m.style,children:x(i,{collisionDetection:r,onDragStart:k,onDragEnd:O,children:x(u.List,{name:m.formListName,children:function e(a,n){j.current=a;return y(f,{children:[x(d,{items:z().map((function(e){return e.uid})),strategy:s,children:x(f,{children:a.map((function(e,a){var i=z()[a].uid;return x(N,{formListOperate:n,formListFieldData:e,uid:i,isActive:L.includes(i),collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,getItemDragDisabled:m.getItemDragDisabled,dragDisabled:m.dragDisabled,onChange:P,isGray:i===D,isLast:a===z().length-1,header:m.header,content:m.content,index:a,formStageCompleteName:[].concat(c(m.formListName),[e.name])},i+"-"+e.key)}))})}),x(t,{dropAnimation:{duration:0},children:D&&K?x(N,{isOverlay:true,uid:D,className:"overlay-sortable-item",formListFieldData:K,isActive:L.includes(D),collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,onChange:P,header:m.header,content:m.content,formListOperate:null,index:0,formStageCompleteName:[].concat(c(m.formListName),[K.name])},D):null})]})}})})})};export{C as D};
|
|
3
|
-
//# sourceMappingURL=drag-collapse-24ccfe8c.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drag-collapse-24ccfe8c.js","sources":["@flatbiz/antd/src/drag-collapse-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-collapse-form-list/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Collapse, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: string | number | (string | number)[];\n};\nexport function SortableItem(props: SortableItemProps) {\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n >\n <Collapse.Panel header={header()} key={props.uid}>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n })}\n </Collapse.Panel>\n </Collapse>\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有 uid 唯一值字段\n * ```\n */\nexport const DragCollapseFormList = (props: DragCollapseFormListProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<(number | string)[]>([]);\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = (key: number | string) => {\n let openKeysNew: (number | string)[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n };\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n return (form.getFieldValue(props.formListName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => item.uid === active.id);\n const newIndex = items.findIndex((item) => item.uid === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.formListName,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => item.uid === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems]);\n\n return (\n <div className={classNames('drag-collapse-formlist-wrapper', props.className)} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.formListName}>\n {(fields, operate) => {\n formListOperationRef.current = fields;\n return (\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => temp.uid)}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getItems()[index].uid;\n return (\n <SortableItem\n formListOperate={operate}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n isActive={openKeys.includes(uid)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n onChange={onChange}\n isGray={uid === dragActiveId}\n isLast={index === getItems().length - 1}\n header={props.header}\n content={props.content}\n index={index}\n formStageCompleteName={[...toArray<string | number>(props.formListName), item.name]}\n />\n );\n })}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"overlay-sortable-item\"\n formListFieldData={dragOverlayItem}\n isActive={openKeys.includes(dragActiveId)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n onChange={onChange}\n header={props.header}\n content={props.content}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[\n ...toArray<string | number>(props.formListName),\n dragOverlayItem.name,\n ]}\n />\n ) : null}\n </DragOverlay>\n </Fragment>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","Panel","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","form","Form","useFormInstance","formListOperationRef","useRef","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","_hooks","useUpdateEffect","key","openKeysNew","has","includes","_array","arrayRemove","concat","handleDragStart","event","active","getItems","useCallbackRef","getFieldValue","formListName","handleDragEnd","over","items","oldIndex","findIndex","item","newIndex","newList","arrayMove","setFields","name","value","onDropChange","dragOverlayItem","useMemo","targetIndex","current","find","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","fields","operate","SortableContext","map","temp","strategy","verticalListSortingStrategy","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as n}from"@dimjs/utils/cjs/array";import{hooks as i}from"@wove/react/cjs/hooks";import{DndContext as a,closestCenter as o,DragOverlay as r}from"@dnd-kit/core";import{useSortable as t,SortableContext as s,verticalListSortingStrategy as c,arrayMove as l}from"@dnd-kit/sortable";import{toArray as d}from"@flatbiz/utils";import{Fragment as m,useState as f}from"react";import{fbaHooks as p}from"./fba-hooks/index.js";import{a as u}from"./_rollupPluginBabelHelpers-1f4d8910.js";import g from"@ant-design/icons/es/icons/DragOutlined";import{CSS as v}from"@dnd-kit/utilities";import{Collapse as h}from"antd";import{jsx as y,jsxs as I}from"react/jsx-runtime";function k(n){var i;var a=t({id:n.item.key}),o=a.listeners,r=a.setNodeRef,s=a.transform,c=a.transition;var l=function e(i){var a=n.dragIcon?n.dragIcon:y(g,{});return n.hideDragIcon?i.content:I(m,{children:[y("span",u({className:"dc-drag-trigger"},o,{children:a})),y("span",{className:"dc-drag-header-content",children:i.content})]})};var d=u({transform:v.Transform.toString(s),transition:c},n.style);var f=n.openKeys.includes(n.item.key);var p=e("drag-collapse",{"drag-collapse-grap":n.isGray,"drag-collapse-last":n.isLast},n.className);return y(h,{activeKey:f?n.item.key:undefined,accordion:true,className:p,collapsible:n.collapsible,expandIcon:n.expandIcon,expandIconPosition:n.expandIconPosition,size:n.size,onChange:(i=n.onChange)==null?void 0:i.bind(null,n.item.key),style:u({},d),ref:r,children:y(h.Panel,{header:l(n.item),children:n.item.content},n.item.key)})}var x=function t(m){var u=f(),g=u[0],v=u[1];var h=f([]),x=h[0],b=h[1];p.useEffectCustom((function(){var e=d(m.defaultActiveKey);if(!m.activeKey&&e.length>0){b(e)}else{b(d(m.activeKey))}}),[]);i.useUpdateEffect((function(){b(d(m.activeKey))}),[m.activeKey]);var C=i.useCallbackRef((function(e){var i=[];if(m.accordion){if(x[0]&&x[0]===e){i=[]}else{i=[e]}}else{var a=x.includes(e);if(a){n.arrayRemove(x,e);i=[].concat(x)}else{i=x.concat(e)}}b(i);if(m.accordion){m.onChange==null?void 0:m.onChange(i.length?i[0]:undefined)}else{m.onChange==null?void 0:m.onChange(i.length?i:undefined)}}));function D(e){var n=e.active;v(n.id)}function K(e){var n=e.active,i=e.over;if(n.id!==i.id){var a=m.items.findIndex((function(e){return e.key===n.id}));var o=m.items.findIndex((function(e){return e.key===i.id}));var r=l(m.items,a,o);m.onDropChange(r)}v(undefined)}return y("div",{className:e("drag-collapse-wrapper",m.className),style:m.style,children:I(a,{collisionDetection:o,onDragStart:D,onDragEnd:K,children:[y(s,{items:m.items.map((function(e){return e.key})),strategy:c,children:m.items.map((function(e,n){return y(k,{item:e,openKeys:x,collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,hideDragIcon:m.hideDragIcon,onChange:C,isGray:e.key===g,isLast:n===m.items.length-1},e.key)}))}),y(r,{dropAnimation:{duration:0},children:g?y(k,{className:"overlay-sortable-item",item:m.items.filter((function(e){return e.key===g}))[0],openKeys:x,collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,hideDragIcon:m.hideDragIcon,onChange:C},g):null})]})})};export{x as D};
|
|
3
|
-
//# sourceMappingURL=drag-collapse-433fb1e0.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drag-collapse-433fb1e0.js","sources":["@flatbiz/antd/src/drag-collapse/sortable-item.tsx","@flatbiz/antd/src/drag-collapse/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Collapse } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseItem, DragCollapseItemKey, DragCollapseProps } from './types';\ntype SortableItemProps = {\n openKeys: DragCollapseItemKey[];\n style?: CSSProperties;\n item: DragCollapseItem;\n collapsible?: DragCollapseProps['collapsible'];\n expandIcon?: DragCollapseProps['expandIcon'];\n expandIconPosition?: DragCollapseProps['expandIconPosition'];\n size?: DragCollapseProps['size'];\n dragIcon?: DragCollapseProps['dragIcon'];\n hideDragIcon?: DragCollapseProps['hideDragIcon'];\n onChange: (activeKey: DragCollapseItemKey) => void;\n isGray?: boolean;\n className?: string;\n isLast?: boolean;\n};\nexport function SortableItem(props: SortableItemProps) {\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.item.key,\n });\n\n const header = (item: DragCollapseItem) => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n return props.hideDragIcon ? (\n item.content\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\">{item.content}</span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const isActive = props.openKeys.includes(props.item.key);\n const cname = classNames(\n 'drag-collapse',\n { 'drag-collapse-grap': props.isGray, 'drag-collapse-last': props.isLast },\n props.className,\n );\n return (\n <Collapse\n activeKey={isActive ? props.item.key : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.item.key)}\n style={{ ...style }}\n ref={setNodeRef}\n >\n <Collapse.Panel header={header(props.item)} key={props.item.key}>\n {props.item.content}\n </Collapse.Panel>\n </Collapse>\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseItemKey, DragCollapseProps } from './types';\n\n/**\n * 可拖拽 折叠面板\n * @param props\n * @returns\n */\nexport const DragCollapse = (props: DragCollapseProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<DragCollapseItemKey[]>([]);\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = hooks.useCallbackRef((key: DragCollapseItemKey) => {\n let openKeysNew: DragCollapseItemKey[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n });\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n function handleDragEnd(event) {\n const { active, over } = event;\n if (active.id !== over.id) {\n const oldIndex = props.items.findIndex((item) => item.key === active.id);\n const newIndex = props.items.findIndex((item) => item.key === over.id);\n const newList = arrayMove(props.items, oldIndex, newIndex);\n props.onDropChange(newList);\n }\n setDragActiveId(undefined);\n }\n\n return (\n <div className={classNames('drag-collapse-wrapper', props.className)} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <SortableContext items={props.items.map((item) => item.key)} strategy={verticalListSortingStrategy}>\n {props.items.map((item, index) => (\n <SortableItem\n key={item.key}\n item={item}\n openKeys={openKeys}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n hideDragIcon={props.hideDragIcon}\n onChange={onChange}\n isGray={item.key === dragActiveId}\n isLast={index === props.items.length - 1}\n />\n ))}\n </SortableContext>\n\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId ? (\n <SortableItem\n className=\"overlay-sortable-item\"\n key={dragActiveId}\n item={props.items.filter((item) => item.key === dragActiveId)[0]}\n openKeys={openKeys}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n hideDragIcon={props.hideDragIcon}\n onChange={onChange}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","_useSortable","useSortable","id","item","key","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","hideDragIcon","content","_jsxs","Fragment","children","_extends","className","style","CSS","Transform","toString","isActive","openKeys","includes","cname","_classNames","isGray","isLast","Collapse","activeKey","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","Panel","DragCollapse","_useState","useState","dragActiveId","setDragActiveId","_useState2","setOpenKeys","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","_hooks","useUpdateEffect","useCallbackRef","openKeysNew","has","_array","arrayRemove","concat","handleDragStart","event","active","handleDragEnd","over","oldIndex","items","findIndex","newIndex","newList","arrayMove","onDropChange","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","SortableContext","map","strategy","verticalListSortingStrategy","index","DragOverlay","dropAnimation","duration","filter"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as e,_ as a}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{Space as n,Button as o,Drawer as i}from"antd";import{Fragment as t}from"react";import{fbaHooks as l}from"./fba-hooks/index.js";import s from"@ant-design/icons/es/icons/SaveOutlined";import{jsx as c,jsxs as d}from"react/jsx-runtime";var p=function r(a){return c("div",{className:"fixed-bottom-block",children:d(n,{size:"middle",children:[c(o,e({},a.cancelButtonProps,{className:"cancel-btn",onClick:a.onCancel,children:a.cancelText||"取消"})),a.hideOkBtn!=true&&c(o,e({type:"primary",icon:c(s,{})},a.okButtonProps,{className:"ok-btn",onClick:a.onOk,loading:a.loading,children:a.okText||"提交"}))]})})};var m=["pageLoading","className","width","children"];var u=function r(){return c("div",{className:"drawer-wrapper-loader",children:d("div",{className:"loader-wrapper",children:[c("div",{className:"loader-inner"}),c("div",{className:"loader-text",children:"LOADING"})]})})};var f=function r(a){return d(t,{children:[c("div",{className:"drawer-wrapper-content",children:a.children}),a.operationProps?c(h,{children:c(p,e({},a.operationProps))}):null]})};var h=function r(e){return c("div",{className:"drawer-wrapper-footer",children:e.children})};var v=function n(o){var t=o.pageLoading,s=o.className,p=o.width,f=p===void 0?600:p,h=o.children,v=a(o,m);l.useEffectCustom((function(){if(o["operationProps"]){throw new Error("DrawerWrapper组件升级,参数operationProps用法变更,请及时更新")}}),[]);return d(i,e({className:r("drawer-wrapper",s),keyboard:false,destroyOnClose:true,forceRender:false,width:"80%",contentWrapperStyle:{maxWidth:f},size:"default"},v,{footer:null,children:[t&&c(u,{}),h]}))};v.Content=f;v.Footer=h;export{v as D};
|
|
3
|
-
//# sourceMappingURL=drawer-wrapper-9af2f178.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drawer-wrapper-9af2f178.js","sources":["@flatbiz/antd/src/drawer-wrapper/drawer-operation.tsx","@flatbiz/antd/src/drawer-wrapper/drawer-wrapper.tsx"],"sourcesContent":["import { SaveOutlined } from '@ant-design/icons';\nimport { Button, ButtonProps, Space } from 'antd';\n\nexport interface DrawerOperationProps {\n loading?: boolean;\n okText?: string;\n cancelText?: string;\n onOk?: () => void;\n onCancel?: () => void;\n hideOkBtn?: boolean;\n okButtonProps?: Omit<ButtonProps, 'onClick' | 'loading' | 'className'>;\n cancelButtonProps?: Omit<ButtonProps, 'onClick' | 'loading' | 'className'>;\n}\n\nexport const DrawerOperation = (props: DrawerOperationProps) => {\n return (\n <div className=\"fixed-bottom-block\">\n <Space size=\"middle\">\n <Button {...props.cancelButtonProps} className=\"cancel-btn\" onClick={props.onCancel}>\n {props.cancelText || '取消'}\n </Button>\n {props.hideOkBtn != true && (\n <Button\n type=\"primary\"\n icon={<SaveOutlined />}\n {...props.okButtonProps}\n className=\"ok-btn\"\n onClick={props.onOk}\n loading={props.loading}\n >\n {props.okText || '提交'}\n </Button>\n )}\n </Space>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Drawer, DrawerProps } from 'antd';\nimport { FC, Fragment, ReactNode } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { DrawerOperation, DrawerOperationProps } from './drawer-operation';\nimport './style.less';\n\ntype DrawerWrapperStaticMethods = {\n Content: typeof DrawerWrapperContent;\n Footer: typeof DrawerWrapperFooter;\n};\n\nexport type DrawerWrapperProps = {\n className?: string;\n /**\n * 整个drawer页面级的spinning <Page loading />\n */\n pageLoading?: boolean;\n} & Omit<DrawerProps, 'footer'>;\n\nconst PageLoader = () => {\n return (\n <div className=\"drawer-wrapper-loader\">\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">LOADING</div>\n </div>\n </div>\n );\n};\n\nconst DrawerWrapperContent = (props: { operationProps?: DrawerOperationProps; children?: ReactNode }) => {\n return (\n <Fragment>\n <div className=\"drawer-wrapper-content\">{props.children}</div>\n {props.operationProps ? (\n <DrawerWrapperFooter>\n <DrawerOperation {...props.operationProps} />\n </DrawerWrapperFooter>\n ) : null}\n </Fragment>\n );\n};\n\nconst DrawerWrapperFooter = (props) => {\n return <div className=\"drawer-wrapper-footer\">{props.children}</div>;\n};\n\n/**\n * 弹窗机制\n * @deprecated 已过时 4.3.0版本移除;请使用 dialogDrawer.open\n * ```\n * 1. 默认 destroyOnClose = true\n * 2. 默认 forceRender = false\n * 3. 如果设置 forceRender = true,会导致弹框中的接口提前调用\n *\n * 注意\n * 1. <Drawer /> 默认关闭后状态不会自动清空, 如果希望每次打开都是新内容,请设置 destroyOnClose。\n * 2. <Drawer /> 和 Form 一起配合使用时,设置 destroyOnClose 也不会在 Drawer 关闭时销毁表单字段数据,需要设置 <Form preserve={false} />。\n *\n * ```\n */\nexport const DrawerWrapper: FC<DrawerWrapperProps> & DrawerWrapperStaticMethods = (props) => {\n const { pageLoading, className, width = 600, children, ...otherProps } = props;\n\n fbaHooks.useEffectCustom(() => {\n if (props['operationProps']) {\n throw new Error('DrawerWrapper组件升级,参数operationProps用法变更,请及时更新');\n }\n }, []);\n\n return (\n <Drawer\n className={classNames('drawer-wrapper', className)}\n keyboard={false}\n destroyOnClose={true}\n forceRender={false}\n width={'80%'}\n contentWrapperStyle={{ maxWidth: width }}\n size=\"default\"\n {...otherProps}\n footer={null}\n >\n {pageLoading && <PageLoader />}\n {children}\n </Drawer>\n );\n};\n\nDrawerWrapper.Content = DrawerWrapperContent;\nDrawerWrapper.Footer = DrawerWrapperFooter;\n"],"names":["DrawerOperation","props","_jsx","className","children","_jsxs","Space","size","Button","_extends","cancelButtonProps","onClick","onCancel","cancelText","hideOkBtn","type","icon","_SaveOutlined","okButtonProps","onOk","loading","okText","PageLoader","DrawerWrapperContent","Fragment","operationProps","DrawerWrapperFooter","DrawerWrapper","pageLoading","_props$width","width","otherProps","_objectWithoutPropertiesLoose","_excluded","fbaHooks","useEffectCustom","Error","Drawer","_classNames","keyboard","destroyOnClose","forceRender","contentWrapperStyle","maxWidth","footer","Content","Footer"],"mappings":";4WAcO,IAAMA,EAAkB,SAAlBA,EAAmBC,GAC9B,OACEC,EAAA,MAAA,CAAKC,UAAU,qBAAoBC,SACjCC,EAACC,EAAK,CAACC,KAAK,SAAQH,SAAA,CAClBF,EAACM,EAAMC,EAAA,CAAA,EAAKR,EAAMS,kBAAiB,CAAEP,UAAU,aAAaQ,QAASV,EAAMW,SAASR,SACjFH,EAAMY,YAAc,QAEtBZ,EAAMa,WAAa,MAClBZ,EAACM,EAAMC,EAAA,CACLM,KAAK,UACLC,KAAMd,EAAAe,EAAA,KACFhB,EAAMiB,cAAa,CACvBf,UAAU,SACVQ,QAASV,EAAMkB,KACfC,QAASnB,EAAMmB,QAAQhB,SAEtBH,EAAMoB,QAAU,YAM7B,uDChBA,IAAMC,EAAa,SAAbA,IACJ,OACEpB,EAAA,MAAA,CAAKC,UAAU,wBAAuBC,SACpCC,EAAA,MAAA,CAAKF,UAAU,iBAAgBC,UAC7BF,EAAA,MAAA,CAAKC,UAAU,iBACfD,EAAA,MAAA,CAAKC,UAAU,cAAaC,SAAC,gBAIrC,EAEA,IAAMmB,EAAuB,SAAvBA,EAAwBtB,GAC5B,OACEI,EAACmB,EAAQ,CAAApB,UACPF,EAAA,MAAA,CAAKC,UAAU,yBAAwBC,SAAEH,EAAMG,WAC9CH,EAAMwB,eACLvB,EAACwB,EAAmB,CAAAtB,SAClBF,EAACF,EAAeS,EAAA,CAAA,EAAKR,EAAMwB,mBAE3B,OAGV,EAEA,IAAMC,EAAsB,SAAtBA,EAAuBzB,GAC3B,OAAOC,EAAA,MAAA,CAAKC,UAAU,wBAAuBC,SAAEH,EAAMG,UACvD,MAgBauB,EAAqE,SAArEA,EAAsE1B,GACjF,IAAQ2B,EAAiE3B,EAAjE2B,YAAazB,EAAoDF,EAApDE,UAAS0B,EAA2C5B,EAAzC6B,MAAAA,EAAKD,SAAG,EAAA,IAAGA,EAAEzB,EAA4BH,EAA5BG,SAAa2B,EAAUC,EAAK/B,EAAKgC,GAE9EC,EAASC,iBAAgB,WACvB,GAAIlC,EAAM,kBAAmB,CAC3B,MAAM,IAAImC,MAAM,+CAClB,CACD,GAAE,IAEH,OACE/B,EAACgC,EAAM5B,EAAA,CACLN,UAAWmC,EAAW,iBAAkBnC,GACxCoC,SAAU,MACVC,eAAgB,KAChBC,YAAa,MACbX,MAAO,MACPY,oBAAqB,CAAEC,SAAUb,GACjCvB,KAAK,WACDwB,EAAU,CACda,OAAQ,KAAKxC,SAAA,CAEZwB,GAAe1B,EAACoB,EAAU,CAAA,GAC1BlB,KAGP,EAEAuB,EAAckB,QAAUtB,EACxBI,EAAcmB,OAASpB"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/ExclamationCircleFilled";import{_ as o,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as i}from"@wove/react/cjs/hooks";import{Dropdown as t}from"antd";import{Fragment as a,useMemo as s,createElement as l}from"react";import{B as d}from"./button-wrapper-125fce50.js";import{d as m}from"./dialog-confirm-74fc9337.js";import{f}from"./fba-utils-f9e11d02.js";import{F as u}from"./flex-layout-8d2b668b.js";import{jsxs as c,jsx as p}from"react/jsx-runtime";function v(e){var r=true;var o=false;while(r){if(e.tagName==="HTML"||e.tagName==="BODY"){r=false;o=false}else{var n=window.getComputedStyle(e),i=n.position;if(i==="sticky"){o=true;r=false}else{if(!e||!e.parentNode){r=false}else{e=e.parentNode}}}}return o}var g=["menuList"],y=["text","permission","needConfirm","confirmMessage","hidden","type","confirmModalProps"];var h=function h(C){var k=C.menuList,P=o(C,g);var x=i.useId(undefined,"DropdownMenuWrapper");var w=i.useCallbackRef((function(e,o){if(e.needConfirm){var i;m.open(n({title:c(u,{direction:"horizontal",fullIndex:1,gap:8,children:[p(r,{style:{color:"#faad14"}}),p("span",{children:e.text})]}),content:p(a,{children:e.confirmMessage}),onOk:(i=e.onClick)==null?void 0:i.bind(null,o),okButtonProps:{loadingPosition:"center"}},e.confirmModalProps));return Promise.resolve()}o.stopPropagation();return e.onClick==null?void 0:e.onClick(o)}));var M=document.querySelector("."+x);var j=s((function(){if(C.isFixed||M&&v(M)){return undefined}return M}),[C.isFixed,M]);var b=s((function(){var r=[];k.filter(Boolean).forEach((function(i,t){if(!i)return;var a=i.text,s=i.permission,m=i.needConfirm,u=i.confirmMessage,c=i.hidden,p=i.type,v=i.confirmModalProps,g=o(i,y);if(c)return;if(s&&!f.hasPermission(s))return;var h=p||"link";var C=g.color?false:m;r.push({key:t,label:l(d,n({loadingPosition:"center",size:"small",danger:C},g,{style:n({padding:0},g.style),className:e("dmw-item-button",g.className),type:h,key:t,onClick:w.bind(null,n({},i,{needConfirm:m,confirmMessage:u,confirmModalProps:v}))}),a)})}));return r}),[k,w]);return p("div",{className:e("dropdown-menu-wrapper",x),style:{position:"relative"},children:p(t,n({trigger:(P==null?void 0:P.trigger)||["hover"],getPopupContainer:j?function(){return M}:undefined,arrow:{pointAtCenter:true}},P,{overlayStyle:n({zIndex:9},P.overlayStyle),menu:{items:b},children:C.children}))})};export{h as D};
|
|
3
|
-
//# sourceMappingURL=dropdown-menu-wrapper-3a565fd8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu-wrapper-3a565fd8.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n stopPropagation?: boolean;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n /** dropdown 设置弹框根节点在body下 */\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n * ```\n * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下\n * ```\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.text}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const buttonType = type || 'link';\n const danger = otherProps.color ? false : needConfirm;\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={danger}\n {...otherProps}\n style={{ padding: 0, ...otherProps.style }}\n className={classNames('dmw-item-button', otherProps.className)}\n type={buttonType}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={classNames('dropdown-menu-wrapper', clsName)} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","text","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","stopPropagation","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","buttonType","danger","push","key","label","_createElement","ButtonWrapper","size","padding","className","_classNames","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{createRoot as n}from"react-dom/client";import{b as t}from"./dom-4d04aa64.js";import{jsx as r}from"react/jsx-runtime";var i={append:function i(o){if(o===void 0){o={}}var d=function(){var e;if(typeof o.getContainer==="string"){e=document.querySelector(o.getContainer)}else if(typeof o.getContainer==="function"){e=o.getContainer()}else{e=t().divElement}return e}();var a=e("v-dynamic-node",{"v-dynamic-node-fixed":o.fixed},o.className);var m="id_"+Date.now();var c=n(d);c.render(r("div",{className:a,id:m,children:o.content}));window["_dynamic_node_element_id"]=m;return{elementId:m}},remove:function e(n){var t=n||window["_dynamic_node_element_id"];if(t){try{var r;(r=document.querySelector("#"+t))==null?void 0:r.remove()}catch(e){}}}};export{i as d};
|
|
3
|
-
//# sourceMappingURL=dynamic-node-c7864af4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-node-c7864af4.js","sources":["@flatbiz/antd/src/dynamic-node/dynamic-node.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { CSSProperties, ReactElement } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { bodyAppendDivElement } from '../_utils/dom';\nimport './style.less';\n\nexport type TDynamicNodeProps = {\n className?: string;\n getContainer?: HTMLElement | (() => HTMLElement) | string;\n content?: ReactElement;\n fixed?: boolean;\n style?: CSSProperties;\n};\n\n/**\n * 动态添加 element 元素\n * ```\n * 1. 默认添加到 body 下\n * 2. 可通过 getContainer 参数设置添加位置\n * ```\n */\nexport const dynamicNode = {\n append: (props: TDynamicNodeProps = {}) => {\n const container = (() => {\n let tempElement;\n if (typeof props.getContainer === 'string') {\n tempElement = document.querySelector(props.getContainer) as Element;\n } else if (typeof props.getContainer === 'function') {\n tempElement = props.getContainer();\n } else {\n tempElement = bodyAppendDivElement().divElement;\n }\n return tempElement as Element;\n })();\n\n const className = classNames('v-dynamic-node', { 'v-dynamic-node-fixed': props.fixed }, props.className);\n const nodeElementId = `id_${Date.now()}`;\n const root = createRoot(container);\n root.render(\n <div className={className} id={nodeElementId}>\n {props.content}\n </div>,\n );\n window['_dynamic_node_element_id'] = nodeElementId;\n return { elementId: nodeElementId };\n },\n remove: (elementId?: string) => {\n const dynamicElementId = elementId || window['_dynamic_node_element_id'];\n if (dynamicElementId) {\n try {\n document.querySelector(`#${dynamicElementId}`)?.remove();\n } catch (error) {\n //\n }\n }\n },\n};\n"],"names":["dynamicNode","append","props","container","tempElement","getContainer","document","querySelector","bodyAppendDivElement","divElement","className","_classNames","fixed","nodeElementId","Date","now","root","createRoot","render","_jsx","id","children","content","window","elementId","remove","dynamicElementId","_document$querySelect","error"],"mappings":";sLAqBO,IAAMA,EAAc,CACzBC,OAAQ,SAAAA,EAACC,GAAkC,GAAlCA,SAAwB,EAAA,CAAxBA,EAA2B,CAAA,CAAE,CACpC,IAAMC,EAAa,WACjB,IAAIC,EACJ,UAAWF,EAAMG,eAAiB,SAAU,CAC1CD,EAAcE,SAASC,cAAcL,EAAMG,aAC5C,MAAM,UAAWH,EAAMG,eAAiB,WAAY,CACnDD,EAAcF,EAAMG,cACtB,KAAO,CACLD,EAAcI,IAAuBC,UACvC,CACA,OAAOL,CACT,CAVmB,GAYnB,IAAMM,EAAYC,EAAW,iBAAkB,CAAE,uBAAwBT,EAAMU,OAASV,EAAMQ,WAC9F,IAAMG,EAAa,MAASC,KAAKC,MACjC,IAAMC,EAAOC,EAAWd,GACxBa,EAAKE,OACHC,EAAA,MAAA,CAAKT,UAAWA,EAAWU,GAAIP,EAAcQ,SAC1CnB,EAAMoB,WAGXC,OAAO,4BAA8BV,EACrC,MAAO,CAAEW,UAAWX,EACrB,EACDY,OAAQ,SAAAA,EAACD,GACP,IAAME,EAAmBF,GAAaD,OAAO,4BAC7C,GAAIG,EAAkB,CACpB,IAAI,IAAAC,GACFA,EAAArB,SAASC,cAAa,IAAKmB,KAA3BC,UAAAA,EAAAA,EAAgDF,QACjD,CAAC,MAAOG,GACP,CAEJ,CACF"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{classNames as n}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/CloseOutlined";import i from"@ant-design/icons/es/icons/CheckOutlined";import{a as e}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{isNumber as t}from"@dimjs/lang/cjs/is-number";import{isString as l}from"@dimjs/lang/cjs/is-string";import a from"@ant-design/icons/es/icons/EditOutlined";import{isUndefinedOrNull as c}from"@flatbiz/utils";import{Space as s}from"antd";import{useState as u,useContext as f,useRef as d,useEffect as m,isValidElement as v}from"react";import{E as p}from"./context-25d0b686.js";import{fbaHooks as h}from"./fba-hooks/index.js";import{I as C}from"./icon-wrapper-ed5fcacc.js";import{jsx as b,jsxs as g}from"react/jsx-runtime";var j=function j(I){var k=I.value,y=I.onChange,E=I.viewRender,w=I.placeholderValue,P=w===void 0?"-":w,x=I.editRender,z=I.isEditFull,R=I.onClickEditIconPre,O=I.onClickConfirmIconPre,N=I.iconConfig,T=I.onEditCallback,B=I.onConfirmCallback;var F=u(false),H=F[0],V=F[1];var _=f(p);var q=d(k);var A=function(){if(_.isCtx){return I.showEditableIcon===undefined?_.showEditableIcon:I.showEditableIcon}return I.showEditableIcon===undefined?true:I.showEditableIcon}();var D=function(){if(_.isCtx){return I.editable===undefined?_.editable:I.editable}return I.editable||false}();var G=h.useThemeToken();m((function(){V(D)}),[D]);var J=function n(){return new Promise((function(n,r){if(R){return Promise.resolve(R(k)).then(function(n){try{return i.call(this)}catch(n){return r(n)}}.bind(this),r)}function i(){q.current=k;V(true);T==null?void 0:T(k);return n()}return i.call(this)}))};var K=N!=null&&N.editIcon?N.editIcon({onClick:J}):b(C,{size:"small",icon:b(a,{}),onClick:J});if(!H){var L=(E?E(I.value):I.value)||P;if(l(L)||t(L)||c(L)||v(L)){if(!A){return L}return g(s,{size:8,children:[b("span",{children:L}),K]})}console.warn("对象作为React子对象无效",L)}var M=function n(){if(k!==q.current){y==null?void 0:y(q.current)}V(false)};var Q=function n(r){var i=r;if(typeof r==="object"&&r!==null&&!o(r)&&r.target){var e;var a=(e=r.target)==null?void 0:e.value;if(l(a)||t(a)||c(a)){var s;i=(s=r.target)==null?void 0:s.value}}y==null?void 0:y(i)};var S=function n(){return new Promise((function(n,r){if(O){return Promise.resolve(O(k,q.current)).then(function(n){try{return i.call(this)}catch(n){return r(n)}}.bind(this),r)}function i(){V(false);B==null?void 0:B(k,q.current);return n()}return i.call(this)}))};var U=typeof x==="function"?x({value:k,onChange:Q}):x;if(!A){return b(U.type,e({value:k,onChange:Q},U.props))}var W=N!=null&&N.confirmIcon?N.confirmIcon({onClick:S}):b(C,{size:"small",icon:b(i,{style:{color:G.colorPrimary}}),onClick:S});var X=N!=null&&N.cancelIcon?N.cancelIcon({onClick:M}):b(C,{size:"small",icon:b(r,{style:{color:G.colorPrimary}}),onClick:M});return g(s,{direction:"horizontal",size:12,style:{display:"flex",paddingRight:6},className:n({"editable-field-full":z},I.className),children:[b(U.type,e({value:k,onChange:Q},U.props)),W,X]})};export{j as E};
|
|
3
|
-
//# sourceMappingURL=editable-field-bcac193d.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editable-field-bcac193d.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 { isValidElement, ReactElement, ReactNode, useContext, useEffect, useRef, useState } from 'react';\nimport { EditableFieldContext } from '../editable-field-provider/context';\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\n\nimport './style.less';\n\nexport interface EditableFieldProps {\n className?: string;\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 editable?: 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 } = props;\n const [isEdit, setIsEdit] = useState<boolean>(false);\n const ctx = useContext(EditableFieldContext);\n const originalValue = useRef<TAny>(value);\n\n const showEditableIcon = (function () {\n if (ctx.isCtx) {\n return props.showEditableIcon === undefined ? ctx.showEditableIcon : props.showEditableIcon;\n }\n return props.showEditableIcon === undefined ? true : props.showEditableIcon;\n })();\n\n const editable = (function () {\n if (ctx.isCtx) {\n return props.editable === undefined ? ctx.editable : props.editable;\n }\n return props.editable || false;\n })();\n\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n setIsEdit(editable);\n }, [editable]);\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 if (!isEdit) {\n const viewValue = (viewRender ? viewRender(props.value) : props.value) || placeholderValue;\n if (\n isString(viewValue) ||\n isNumber(viewValue) ||\n isUndefinedOrNull(viewValue) ||\n isValidElement(viewValue)\n ) {\n if (!showEditableIcon) {\n return viewValue;\n }\n return (\n <Space size={8}>\n <span>{viewValue}</span>\n {editIcon}\n </Space>\n );\n }\n console.warn('对象作为React子对象无效', viewValue);\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 editRenderElement =\n typeof editRender === 'function' ? editRender({ value: value, onChange: onEditChange }) : editRender;\n\n if (!showEditableIcon) {\n return <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />;\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 return (\n <Space\n direction=\"horizontal\"\n size={12}\n style={{ display: 'flex', paddingRight: 6 }}\n className={classNames({ '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","_useState","useState","isEdit","setIsEdit","ctx","useContext","EditableFieldContext","originalValue","useRef","showEditableIcon","isCtx","undefined","editable","theme","fbaHooks","useThemeToken","useEffect","onClickEditIcon","Promise","$return","$error","resolve","then","$await_3","$If_1","call","this","$boundEx","bind","current","editIcon","onClick","_jsx","IconWrapper","size","icon","_EditOutlined","viewValue","_isString","_isNumber","isUndefinedOrNull","isValidElement","_jsxs","Space","children","console","warn","onCancel","onEditChange","target","_isArray","_value$target","_value","_value$target2","onOk","$await_4","$If_2","editRenderElement","type","_extends","confirmIcon","_CheckOutlined","style","color","colorPrimary","cancelIcon","_CloseOutlined","direction","display","paddingRight","className","_classNames"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{E as e}from"./context-25d0b686.js";import{jsx as r}from"react/jsx-runtime";var t=function t(i){var a=i.editable===undefined?true:i.editable;var d=i.showEditableIcon===undefined?false:i.showEditableIcon;return r(e.Provider,{value:{editable:a,isCtx:true,showEditableIcon:d},children:i.children})};export{t as E};
|
|
3
|
-
//# sourceMappingURL=editable-field-provider-3223073a.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editable-field-provider-3223073a.js","sources":["@flatbiz/antd/src/editable-field-provider/editable-field-provider.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { EditableFieldContext } from './context';\n\nexport interface EditableFieldProviderProps {\n children: ReactElement;\n editable?: boolean;\n showEditableIcon?: boolean;\n}\n\n/**\n * EditableFieldProvider 控制内部使有的 EditableField 状态\n * @param props\n * @returns\n */\nexport const EditableFieldProvider = (props: EditableFieldProviderProps) => {\n const editable = props.editable === undefined ? true : props.editable;\n const showEditableIcon = props.showEditableIcon === undefined ? false : props.showEditableIcon;\n\n return (\n <EditableFieldContext.Provider value={{ editable, isCtx: true, showEditableIcon }}>\n {props.children}\n </EditableFieldContext.Provider>\n );\n};\n"],"names":["EditableFieldProvider","props","editable","undefined","showEditableIcon","_jsx","EditableFieldContext","Provider","value","isCtx","children"],"mappings":";sFAcaA,EAAwB,SAAxBA,EAAyBC,GACpC,IAAMC,EAAWD,EAAMC,WAAaC,UAAY,KAAOF,EAAMC,SAC7D,IAAME,EAAmBH,EAAMG,mBAAqBD,UAAY,MAAQF,EAAMG,iBAE9E,OACEC,EAACC,EAAqBC,SAAQ,CAACC,MAAO,CAAEN,SAAAA,EAAUO,MAAO,KAAML,iBAAAA,GAAmBM,SAC/ET,EAAMS,UAGb"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import e from"@ant-design/icons/es/icons/PlusOutlined";import{a as n,_ as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{arrayField2LabelValue as a,toArray as l}from"@flatbiz/utils";import{Form as i,Checkbox as t,Tag as o,InputNumber as d,Radio as u,Space as m,Button as f,Input as c,Table as s}from"antd";import{useMemo as v,useState as p,useEffect as g,Fragment as b}from"react";import{B as C}from"./button-wrapper-125fce50.js";import{T as h}from"./title-render-4f255df0.js";import{isArray as I}from"@dimjs/lang/cjs/is-array";import{extend as w}from"@dimjs/utils/cjs/extend";import{classNames as x}from"@dimjs/utils/cjs/class-names";import{hooks as R}from"@wove/react/cjs/hooks";import{jsx as N,jsxs as P,Fragment as y}from"react/jsx-runtime";import{D as j}from"./date-picker-wrapper-ba650858.js";import{D as k}from"./date-range-picker-wrapper-fb15c592.js";import{I as F}from"./input-wrapper-338ae416.js";import{fbaHooks as L}from"./fba-hooks/index.js";import{S as T}from"./selector-wrapper-efc44920.js";import{isBoolean as A}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as O}from"@dimjs/lang/cjs/is-string";import{I as S}from"./input-text-area-wrapper-1f22992b.js";import{U as V}from"./upload-wrapper-bd9ef592.js";import _ from"@ant-design/icons/es/icons/DeleteOutlined";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var W=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,d=a.render;var u=l.editableComptProps;var m=v((function(){if(i)return[];var e=I(r.value)?r.value:[];var n=u.options||[];if(!I(n)||n.length===0){return e.map((function(e){return{label:e,value:e}}))}var a=[];e.forEach((function(e){var r=n.find((function(n){return n.value===e}));a.push(r?r:{label:e,value:e})}));return a}),[i,u.options,r.value]);var f=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e)}));if(i){return N(t.Group,n({},u,{value:r.value,onChange:f}))}return N("span",{className:"editable-checkbox-group-view",children:d?d(r.value):m.map((function(e,n){return N(o,{color:"#1890ff",children:e.label},n)}))})};var D=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-checkbox-group-form-item",a==null?void 0:a.className),children:N(W,n({},r))}))};var E=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,className:x("editable-date-picker-wraper-form-item",l==null?void 0:l.className),children:N(j,n({allowClear:true},t.editableComptProps))}))};var z=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,t=a.render;var o=l.editableComptProps;var d=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null?void 0:o.onChange==null?void 0:o.onChange(e)}));var u=v((function(){var e=I(r.value)?r.value:[];if(i)return undefined;return e.join("~")}),[i,r.value]);if(i){return N(k,n({allowClear:true},o,{value:r.value,onChange:d}))}return N("span",{className:"editable-date-range-picker-view",children:t?t(r.value):u})};var M=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:N(z,n({},r))}))};var H=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,children:N(F,n({allowClear:true},t.editableComptProps))}))};var J=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,className:x("editable-input-number-form-item",l==null?void 0:l.className),children:N(d,n({},t.editableComptProps))}))};var K=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,t=a.render;var d=l.editableComptProps;var m=L.useThemeToken();var f=v((function(){if(i)return[];var e=r.value;var n=d.options||[];if(!I(n)||n.length===0){return e}var a=n.find((function(n){return n.value===e}));return(a==null?void 0:a.label)||e}),[i,d.options,r.value]);var c=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);d.onChange==null?void 0:d.onChange(e)}));if(i){return N(u.Group,n({},d,{value:r.value,onChange:c}))}return N("span",{className:"editable-radio-group-view",children:t?t(r.value):f?N(o,{color:m.colorPrimary,children:f}):null})};var Q=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-radio-group-form-item",a==null?void 0:a.className),children:N(K,n({},r))}))};var U=function e(r){var l=r.fieldConfig,i=l.editableConfig,t=l.editable,d=l.render;var u=i.editableComptProps;var m=p([]),f=m[0],c=m[1];var s=p([]),v=s[0],C=s[1];var h=L.useThemeToken();g((function(){if(!t){var e=I(r.value)?r.value:r.value===undefined?[]:[r.value];if(f.length===0){C(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=f.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));C(n)}}),[t,u.fieldNames,r.value,f]);var w=R.useCallbackRef((function(e){c(a(e||[],u.fieldNames))}));var x=R.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e,n)}));if(t){return N(T,n({},u,{value:r.value,onChange:x,onSelectorListAllChange:w}))}return P(b,{children:[N("div",{style:{display:"none"},children:N(T,n({},u,{onSelectorListAllChange:w}))}),N("span",{className:"editable-selector-view",children:d?d(r.value,f):v.map((function(e,n){return N(o,{color:h.colorPrimary,children:e.label},n)}))})]})};var Z=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:N(U,n({},r))}))};var q=function e(n){var r,a;var l=v((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=O(n.value)||B(n.value)||A(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 i=((a=n.fieldConfig)==null?void 0:a.render==null?void 0:a.render(n.value))||l;return N("span",{children:i})};var X=function e(n){return N(i.Item,{noStyle:true,name:n.name,children:N(q,{name:n.name,fieldConfig:n.fieldConfig})})};var Y=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,children:N(S,n({},t.editableComptProps))}))};var $=["children"];var ee=function e(a){var l=a.fieldConfig,i=l.editableConfig,t=l.render,o=l.editable;var d=i.editableComptProps,u=d.children,m=r(d,$);if(o){return N(V,n({listType:"text"},m,{value:a.value,onChange:a.onChange,children:u}))}return N("div",{className:"upload-wrapper-selector-view",children:t?t(a.value):N(V,n({listType:"text"},m,{value:a.value,disabled:true}))})};var ne=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:N(ee,n({},r))}))};var re=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable;var t=G(i,r.tableRowIndex);var o=w({},r.fieldConfig,{editable:t});var d={name:r.name,fieldConfig:o};if((l==null?void 0:l.type)==="input"&&t){return N(H,n({},d))}else if((l==null?void 0:l.type)==="inputNumber"&&t){return N(J,n({},d))}else if((l==null?void 0:l.type)==="textArea"&&t){return N(Y,n({},d))}else if((l==null?void 0:l.type)==="datePickerWrapper"&&t){return N(E,n({},d))}else if((l==null?void 0:l.type)==="dateRangePickerWrapper"){return N(M,n({},d))}else if((l==null?void 0:l.type)==="selectorWrapper"){return N(Z,n({},d))}else if((l==null?void 0:l.type)==="checkboxGroup"){return N(D,n({},d))}else if((l==null?void 0:l.type)==="radioGroup"){return N(Q,n({},d))}else if((l==null?void 0:l.type)==="uploadWrapper"){return N(ne,n({},d))}else if((l==null?void 0:l.type)==="custom"){return l.editableComptProps({name:r.name,editable:t,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return N(X,n({},d))};var ae=function e(n){var r=i.useFormInstance();var a=n.formListConfig,l=a.onFormListBeforeRender,t=a.editableConfigList,o=a.onFormListAfterRender,d=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,f=a.deleteOperateRender;return N(i.List,{name:n.name,children:function e(a,i){var c=i.add,s=i.remove;return P(y,{children:[l?l({tableRowIndex:n.tableRowIndex,add:c,get value(){return r.getFieldValue(n.completeName)}}):null,a.map((function(e,a){var l=t.find((function(e){return G(e.editable,n.tableRowIndex)}));var i=x("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!l});return P("div",{className:i,children:[d==null?void 0:d({add:c,remove:function e(){s(a)},formListItemIndex:a,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),P(m,{children:[t.map((function(r,a){return N(re,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},a)})),l?N(le,{deleteOperateRender:f,remove:function e(){s(a)},index:a}):undefined]}),u==null?void 0:u({add:c,formListItemIndex:a,tableRowIndex:n.tableRowIndex,remove:function e(){s(a)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},a)})),o?o({tableRowIndex:n.tableRowIndex,add:c,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var le=function e(n){return N(i.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):N(f,{type:"link",danger:true,icon:N(_,{}),onClick:n.remove,children:"删除"})})};var ie=function e(n){if(n.fieldConfig){if(I(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return N(ae,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return P(b,{children:[N(re,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?N(i.Item,{hidden:true,name:n.hiddenField.dataIndex,children:N(c,{})}):null]})}}return N(X,{name:n.name})};var te=["fieldConfig","renderMiddleware","tooltip","title"];var oe=function a(t){var o;var d=v((function(){if(!t.columns)return[];return t.columns.map((function(e){var a=e.fieldConfig,i=e.renderMiddleware,o=e.tooltip,d=e.title,u=r(e,te);return n({title:typeof d==="string"&&!!o?N(h,{title:d,tooltip:o}):d,onCell:function e(){var n;return{valign:((n=t.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},u,{_render:function n(r,o,d){var u=[].concat(l(t.name),[o.name]);var m=e.dataIndex?[].concat(u,[e.dataIndex]):u;var f=i==null?void 0:i({name:m,tableRowIndex:o.name,operation:o.operation,tableRowName:u,index:d});if(f){return f}var c=typeof a==="function"?a({name:m,tableRowIndex:o.name,tableRowName:u}):a;return N(ie,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:m,fieldConfig:c,tableRowIndex:o.name,hiddenField:e.hiddenField})},get render(){return this._render},set render(e){this._render=e}})}))}),[t.columns,t.name,(o=t.tableProps)==null?void 0:o.cellVerticalAlign]);return N("div",{className:"editable-table",children:N(i.List,{name:t.name,rules:t.rules,children:function r(a,l){return P(b,{children:[t.onTableBeforeRender?t.onTableBeforeRender(l,a.length):null,N(s,n({scroll:{x:"max-content"},pagination:false,rowKey:"key"},t.tableProps,{dataSource:a.map((function(e){return n({},e,{operation:l})})),columns:d})),t.onTableAfterRender?t.onTableAfterRender(l,a.length):N(C,{type:"dashed",hidden:t.hiddenFooterBtn,onClick:function e(){return l.add()},block:true,icon:N(e,{}),style:{marginTop:15},children:"新增"})]})}})})};export{oe as E};
|
|
3
|
-
//# sourceMappingURL=editable-table-64554cac.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editable-table-64554cac.js","sources":["@flatbiz/antd/src/editable-table/utils.ts","@flatbiz/antd/src/editable-table/form-item/checkbox-group.tsx","@flatbiz/antd/src/editable-table/form-item/date-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/date-range-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/input.tsx","@flatbiz/antd/src/editable-table/form-item/input-number.tsx","@flatbiz/antd/src/editable-table/form-item/radio-group.tsx","@flatbiz/antd/src/editable-table/form-item/selector-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/text.tsx","@flatbiz/antd/src/editable-table/form-item/textarea.tsx","@flatbiz/antd/src/editable-table/form-item/upload-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/index.tsx","@flatbiz/antd/src/editable-table/form-list-item/form-list.tsx","@flatbiz/antd/src/editable-table/form-list-item/index.tsx","@flatbiz/antd/src/editable-table/editable-table.tsx"],"sourcesContent":["import { FieldSingleConfig } from './type';\n\nexport const getEditable = (editable: FieldSingleConfig['editable'], tableRowIndex: number) => {\n return typeof editable === 'boolean' ? editable : editable?.({ tableRowIndex });\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableCheckboxGroupConfig, EditableFormItemProps } from '../type';\n\ntype CheckboxGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst CheckboxGroupFormItemContent = (props: CheckboxGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableCheckboxGroupConfig).editableComptProps;\n const viewLabelList = useMemo(() => {\n if (editable) return [];\n const value = isArray(props.value) ? props.value : ([] as TAny[]);\n const options = (editableComptProps.options || []) as LabelValueItem[];\n if (!isArray(options) || options.length === 0) {\n return value.map((item) => ({ label: item, value: item }));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = options.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: item, value: item });\n });\n return returnList;\n }, [editable, editableComptProps.options, props.value]);\n\n const onChange = hooks.useCallbackRef((value) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value);\n });\n\n if (editable) {\n return <Checkbox.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-checkbox-group-view\">\n {render\n ? render(props.value)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color=\"#1890ff\">\n {tag.label}\n </Tag>\n ))}\n </span>\n );\n};\n\nexport const CheckboxGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-checkbox-group-form-item', formItemProps?.className)}\n >\n <CheckboxGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { DatePickerWrapper } from '../../date-picker-wrapper';\nimport { EditableDatePickerWrapperConfig, EditableFormItemProps } from '../type';\n\nexport const DatePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-picker-wraper-form-item', formItemProps?.className)}\n >\n <DatePickerWrapper\n allowClear\n {...(editableConfig as EditableDatePickerWrapperConfig).editableComptProps}\n />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { DateRangePickerWrapper } from '../../date-range-picker-wrapper';\nimport { EditableDateRangePickerWrapperConfig, EditableFormItemProps } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableDateRangePickerWrapperConfig).editableComptProps;\n\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewLabel = useMemo(() => {\n const value = isArray(props.value) ? props.value : ([] as any[]);\n if (editable) return undefined;\n return value.join('~');\n }, [editable, props.value]);\n\n if (editable) {\n return (\n <DateRangePickerWrapper allowClear {...editableComptProps} value={props.value} onChange={onChange} />\n );\n }\n return <span className=\"editable-date-range-picker-view\">{render ? render(props.value) : viewLabel}</span>;\n};\n\nexport const DateRangePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-range-picker-wraper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputWrapper } from '../../input-wrapper';\nimport { EditableFormItemProps, EditableInputConfig } from '../type';\n\nexport const InputFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputWrapper allowClear {...(editableConfig as EditableInputConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form, InputNumber } from 'antd';\nimport { EditableFormItemProps, EditableInputNumberConfig } from '../type';\n\nexport const InputNumberFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-input-number-form-item', formItemProps?.className)}\n >\n <InputNumber {...(editableConfig as EditableInputNumberConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport { EditableFormItemProps, EditableRadioGroupConfig } from '../type';\n\ntype RadioGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number;\n onChange?: (value: string | number) => void;\n};\n\nconst RadioGroupFormItemContent = (props: RadioGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableRadioGroupConfig).editableComptProps;\n\n const theme = fbaHooks.useThemeToken();\n\n const viewLabel = useMemo(() => {\n if (editable) return [];\n const value = props.value;\n const options = (editableComptProps.options || []) as LabelValueItem<string | number>[];\n if (!isArray(options) || options.length === 0) {\n return value;\n }\n const target = options.find((item) => item.value === value);\n return target?.label || value;\n }, [editable, editableComptProps.options, props.value]);\n\n const onChange = hooks.useCallbackRef((e) => {\n props.onChange?.(e.target.value as string | number);\n editableComptProps.onChange?.(e);\n });\n\n if (editable) {\n return <Radio.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-radio-group-view\">\n {render ? render(props.value) : viewLabel ? <Tag color={theme.colorPrimary}>{viewLabel}</Tag> : null}\n </span>\n );\n};\n\nexport const RadioGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-radio-group-form-item', formItemProps?.className)}\n >\n <RadioGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { arrayField2LabelValue, LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { Fragment, useEffect, useState } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport { SelectorWrapper } from '../../selector-wrapper';\nimport { EditableFormItemProps, EditableSelectWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSelectWrapperConfig).editableComptProps;\n const [selectorList, setSelectorList] = useState<LabelValueItem[]>([]);\n const [viewLabelList, setviewLabelList] = useState<LabelValueItem[]>([]);\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n if (!editable) {\n const value = isArray(props.value) ? props.value : props.value === undefined ? [] : [props.value];\n if (selectorList.length === 0) {\n setviewLabelList(value.map((item) => ({ label: item as string, value: item })));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = selectorList.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: String(item), value: item });\n });\n setviewLabelList(returnList);\n }\n }, [editable, editableComptProps.fieldNames, props.value, selectorList]);\n\n const onSelectorListAllChange = hooks.useCallbackRef((dataList: TPlainObject[]) => {\n setSelectorList(arrayField2LabelValue(dataList || [], editableComptProps.fieldNames));\n });\n\n const onChange = hooks.useCallbackRef((value, selectList) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value, selectList);\n });\n\n if (editable) {\n return (\n <SelectorWrapper\n {...editableComptProps}\n value={props.value}\n onChange={onChange}\n onSelectorListAllChange={onSelectorListAllChange}\n />\n );\n }\n return (\n <Fragment>\n <div style={{ display: 'none' }}>\n <SelectorWrapper {...editableComptProps} onSelectorListAllChange={onSelectorListAllChange} />\n </div>\n <span className=\"editable-selector-view\">\n {render\n ? render(props.value, selectorList)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={theme.colorPrimary}>\n {tag.label}\n </Tag>\n ))}\n </span>\n </Fragment>\n );\n};\n\nexport const SelectorWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-selector-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, FieldSingleConfig } from '../type';\n\nconst FormItemTextContent = (props: {\n value?: string | number;\n name: EditableFormItemProps['name'];\n fieldConfig?: FieldSingleConfig;\n}) => {\n const value = useMemo(() => {\n if (props.fieldConfig?.render) return undefined;\n const isBaseData =\n isString(props.value) || isNumber(props.value) || isBoolean(props.value) || !props.value;\n if (!isBaseData) {\n console.warn(`Form.List name:【${props.name}】数据【${JSON.stringify(props.value)}】不能渲染在页面中`);\n }\n return isBaseData ? props.value : undefined;\n }, [props.fieldConfig?.render, props.name, props.value]);\n const viewText = props.fieldConfig?.render?.(props.value) || value;\n return <span>{viewText}</span>;\n};\n\nexport const TextFormItem = (props: { name: Array<number | string>; fieldConfig?: FieldSingleConfig }) => {\n return (\n <Form.Item noStyle name={props.name}>\n <FormItemTextContent name={props.name} fieldConfig={props.fieldConfig} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputTextAreaWrapper } from '../../input-text-area-wrapper';\nimport { EditableFormItemProps, EditableTextareaConfig } from '../type';\n\nexport const TextAreaFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputTextAreaWrapper {...(editableConfig as EditableTextareaConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { UploadWrapper } from '../../upload-wrapper';\nimport { EditableFileUploadConfig, EditableFormItemProps } from '../type';\n\nconst UploadWrapperFormItemContent = (\n props: EditableFormItemProps & { value?: TAny; onChange?: (value?: TAny) => void },\n) => {\n const { editableConfig, render, editable } = props.fieldConfig;\n const { children, ...otherProps } = (editableConfig as EditableFileUploadConfig).editableComptProps;\n if (editable) {\n return (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} onChange={props.onChange}>\n {children}\n </UploadWrapper>\n );\n }\n return (\n <div className=\"upload-wrapper-selector-view\">\n {render ? (\n render(props.value)\n ) : (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} disabled={true} />\n )}\n </div>\n );\n};\n\nexport const UploadWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-upload-wrapper-form-item', formItemProps?.className)}\n >\n <UploadWrapperFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { extend } from '@dimjs/utils';\nimport { FieldSingleConfig } from '../type';\nimport { getEditable } from '../utils';\nimport { CheckboxGroupFormItem } from './checkbox-group';\nimport { DatePickerWrapperFormItem } from './date-picker-wrapper';\nimport { DateRangePickerWrapperFormItem } from './date-range-picker-wrapper';\nimport { InputFormItem } from './input';\nimport { InputNumberFormItem } from './input-number';\nimport { RadioGroupFormItem } from './radio-group';\nimport { SelectorWrapperFormItem } from './selector-wrapper';\nimport { TextFormItem } from './text';\nimport { TextAreaFormItem } from './textarea';\nimport { UploadWrapperFormItem } from './upload-wrapper';\n\nexport type FormItemAdapterProps = {\n name: Array<number | string>;\n completeName: Array<number | string>;\n fieldConfig: FieldSingleConfig;\n tableRowIndex: number;\n};\n\nexport const FormItemAdapter = (props: FormItemAdapterProps) => {\n const { editableConfig, editable } = props.fieldConfig;\n const newEditable = getEditable(editable, props.tableRowIndex);\n const fieldConfig = extend({}, props.fieldConfig, { editable: newEditable });\n\n const commomProps = {\n name: props.name,\n fieldConfig,\n };\n\n if (editableConfig?.type === 'input' && newEditable) {\n return <InputFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'inputNumber' && newEditable) {\n return <InputNumberFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'textArea' && newEditable) {\n return <TextAreaFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'datePickerWrapper' && newEditable) {\n return <DatePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'dateRangePickerWrapper') {\n return <DateRangePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'selectorWrapper') {\n return <SelectorWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'checkboxGroup') {\n return <CheckboxGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'radioGroup') {\n return <RadioGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'uploadWrapper') {\n return <UploadWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'custom') {\n return editableConfig.editableComptProps({\n name: props.name,\n editable: newEditable,\n completeName: props.completeName,\n tableRowIndex: props.tableRowIndex,\n });\n }\n\n return <TextFormItem {...commomProps} />;\n};\n","import { DeleteOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Button, Form, Space } from 'antd';\nimport { FormItemAdapter } from '../form-item';\nimport { FormListConfig } from '../type';\nimport { getEditable } from '../utils';\n\nexport type FormListProps = {\n name: Array<number | string>;\n formListConfig: FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n};\n\nexport const FormList = (props: FormListProps) => {\n const from = Form.useFormInstance();\n const {\n onFormListBeforeRender,\n editableConfigList,\n onFormListAfterRender,\n onFormListItemBeforeRender,\n onFormListItemAfterRender,\n deleteOperateRender,\n } = props.formListConfig;\n return (\n <Form.List name={props.name}>\n {(fields, { add, remove }) => (\n <>\n {onFormListBeforeRender\n ? onFormListBeforeRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n {fields.map((fieldChild, index) => {\n const hasEditable = editableConfigList.find((item) =>\n getEditable(item.editable, props.tableRowIndex),\n );\n const className = classNames(\n 'editable-inner-formlist-item',\n `editable-inner-formlist-item-${props.name[1]}`,\n { 'editable-inner-formlist-item_preview': !hasEditable },\n );\n return (\n <div key={index} className={className}>\n {onFormListItemBeforeRender?.({\n add,\n remove: () => {\n remove(index);\n },\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n <Space>\n {editableConfigList.map((fieldItem, index) => {\n return (\n <FormItemAdapter\n name={[fieldChild.name, fieldItem.fieldName]}\n fieldConfig={fieldItem}\n key={index}\n tableRowIndex={props.tableRowIndex}\n completeName={[...props.completeName, fieldChild.name]}\n />\n );\n })}\n {hasEditable ? (\n <DeleteFormListItem\n deleteOperateRender={deleteOperateRender}\n remove={() => {\n remove(index);\n }}\n index={index}\n />\n ) : undefined}\n </Space>\n {onFormListItemAfterRender?.({\n add,\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n remove: () => {\n remove(index);\n },\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n </div>\n );\n })}\n {onFormListAfterRender\n ? onFormListAfterRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n </>\n )}\n </Form.List>\n );\n};\n\nconst DeleteFormListItem = (props: {\n deleteOperateRender: FormListConfig['deleteOperateRender'];\n remove: () => void;\n index: number;\n}) => {\n return (\n <Form.Item>\n {props.deleteOperateRender ? (\n props.deleteOperateRender({ remove: props.remove, formListItemIndex: props.index })\n ) : (\n <Button type=\"link\" danger icon={<DeleteOutlined />} onClick={props.remove}>\n 删除\n </Button>\n )}\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { Form, Input } from 'antd';\nimport { Fragment } from 'react';\nimport { FormItemAdapter } from '../form-item';\nimport { TextFormItem } from '../form-item/text';\nimport { FieldSingleConfig, FormListConfig } from '../type';\nimport { FormList } from './form-list';\n\nexport type FormListItemProps = {\n name: Array<number | string>;\n fieldConfig?: FieldSingleConfig | FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n hiddenField?: { dataIndex: string };\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n if (isArray(props.fieldConfig['editableConfigList'])) {\n const formListConfig = props.fieldConfig as FormListConfig;\n return (\n <FormList\n name={props.name}\n completeName={props.completeName}\n formListConfig={formListConfig}\n tableRowIndex={props.tableRowIndex}\n />\n );\n } else {\n return (\n <Fragment>\n <FormItemAdapter\n name={props.name}\n fieldConfig={props.fieldConfig as FieldSingleConfig}\n tableRowIndex={props.tableRowIndex}\n completeName={props.completeName}\n />\n {props.hiddenField ? (\n <Form.Item hidden={true} name={props.hiddenField.dataIndex}>\n <Input />\n </Form.Item>\n ) : null}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { TAny, toArray } from '@flatbiz/utils';\nimport { Form, FormListOperation, Table, TableProps } from 'antd';\nimport { FormListProps } from 'antd/es/form';\nimport { ColumnsType } from 'antd/lib/table';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { FormListItem } from './form-list-item';\nimport './style.less';\nimport { EditableTableName, EditableTableRecordType, FieldSingleConfig, FormListConfig } from './type';\n\ntype fieldConfigFunctionParams = {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?: {\n dataIndex: string;\n };\n /**\n * 渲染中间件,如果renderMiddleware返回值为ReactElement格式,则会终止后续逻辑,fieldConfig配置将失效\n * ```\n * 1. tableRowIndex: 当前row的索引值\n * 2. name: 当前table单元格的form.item的name值\n * 3. operation Form.List的操作函数\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n index: number;\n }) => ReactElement | null;\n};\n\nexport type EditableTableProps = {\n name: EditableTableName;\n /**\n * ```\n * antd table属性\n * 1. 新增cellVerticalAlign,单元格竖直方向对齐方式,设置table column onCell属性后失效\n * ```\n */\n tableProps?: Omit<TableProps<EditableTableRecordType>, 'dataSource' | 'columns' | 'rowKey'> & {\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n columns: EditableTableColumn[];\n onTableBeforeRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /**\n * 设置后,将覆盖底部`新增`按钮\n */\n onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n rules?: FormListProps['rules'];\n /** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */\n hiddenFooterBtn?: boolean;\n};\n\nexport const EditableTable = (props: EditableTableProps) => {\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const { fieldConfig, renderMiddleware, tooltip, title, ...otherColumnItem } = columnItem;\n return {\n title:\n typeof title === 'string' && !!tooltip ? (\n <TableTitleTooltip title={title} tooltip={tooltip} />\n ) : (\n title\n ),\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n _render: (_value, record, index) => {\n const tableRowName = [...toArray<string | number>(props.name as TAny), record.name];\n const completeName = columnItem.dataIndex ? [...tableRowName, columnItem.dataIndex] : tableRowName;\n const customRender = renderMiddleware?.({\n name: completeName,\n tableRowIndex: record.name,\n operation: record.operation,\n tableRowName,\n index,\n });\n if (customRender) {\n return customRender;\n }\n\n const fieldConfigActual =\n typeof fieldConfig === 'function'\n ? fieldConfig({\n name: completeName,\n tableRowIndex: record.name,\n tableRowName,\n })\n : fieldConfig;\n return (\n <FormListItem\n name={columnItem.dataIndex ? [record.name, columnItem.dataIndex] : [record.name]}\n completeName={completeName}\n fieldConfig={fieldConfigActual}\n tableRowIndex={record.name}\n hiddenField={columnItem.hiddenField}\n />\n );\n },\n get render() {\n return this._render;\n },\n set render(value) {\n this._render = value;\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [props.columns, props.name, props.tableProps?.cellVerticalAlign]);\n\n return (\n <div className=\"editable-table\">\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation) => {\n return (\n <Fragment>\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n rowKey=\"key\"\n {...props.tableProps}\n dataSource={fields.map((item) => ({ ...item, operation: formListOperation }))}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <ButtonWrapper\n type=\"dashed\"\n hidden={props.hiddenFooterBtn}\n onClick={() => formListOperation.add()}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </ButtonWrapper>\n )}\n </Fragment>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","viewLabelList","useMemo","value","_isArray","options","length","map","item","label","returnList","forEach","target","find","temp","push","onChange","_hooks","useCallbackRef","_jsx","Checkbox","Group","_extends","className","children","tag","index","Tag","color","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","theme","fbaHooks","useThemeToken","e","Radio","colorPrimary","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","setviewLabelList","useEffect","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","SelectorWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","TextFormItem","noStyle","TextAreaFormItem","InputTextAreaWrapper","UploadWrapperFormItemContent","_editableComptProps","otherProps","_objectWithoutPropertiesLoose","_excluded","UploadWrapper","listType","disabled","UploadWrapperFormItem","FormItemAdapter","newEditable","_extend","commomProps","type","completeName","FormList","from","useFormInstance","_props$formListConfig","formListConfig","onFormListBeforeRender","editableConfigList","onFormListAfterRender","onFormListItemBeforeRender","onFormListItemAfterRender","deleteOperateRender","List","fields","_ref","add","remove","_Fragment","getFieldValue","fieldChild","hasEditable","formListItemIndex","concat","Space","fieldItem","fieldName","DeleteFormListItem","Button","danger","icon","_DeleteOutlined","onClick","FormListItem","hiddenField","hidden","dataIndex","Input","EditableTable","_props$tableProps2","columns","columnItem","renderMiddleware","tooltip","title","otherColumnItem","TableTitleTooltip","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","_render","_value","record","tableRowName","toArray","customRender","operation","fieldConfigActual","this","rules","formListOperation","onTableBeforeRender","Table","scroll","x","pagination","rowKey","dataSource","onTableAfterRender","ButtonWrapper","hiddenFooterBtn","block","_PlusOutlined","marginTop"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{Editor as e}from"@wove/react/cjs/editor";import{a as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as n}from"@wove/react/cjs/hooks";import{useKeyPress as o}from"ahooks";import{useRef as a}from"react";import{jsx as i}from"react/jsx-runtime";var l=function l(s){var u=a(null);var c=n.useCallbackRef((function(e,r){var t=r.getContent();var n=t?t:undefined;s.onChange==null?void 0:s.onChange(n)}));var m=n.useCallbackRef((function(e,r,t){return new Promise((function(n,o){var a;var i=function(){try{return n()}catch(e){return o(e)}};var l=function(e){try{t(e.message);return i()}catch(e){return o(e)}};try{return Promise.resolve(s.onUploadImage==null?void 0:s.onUploadImage(e.blob())).then((function(e){try{a=e;r(a);return i()}catch(e){return l(e)}}),l)}catch(e){l(e)}}))}));o((function(){return true}),(function(e){try{if(e.type==="keyup"&&e.key==="Escape"){var r;var t=(r=u.current)==null?void 0:r.editorContainer.classList.contains("tox-fullscreen");if(t){var n;(n=u.current)==null?void 0:n.editorCommands.execCommand("mceFullScreen")}}}catch(e){}}),{events:["keydown","keyup"]});var d=n.useCallbackRef((function(e){var r;try{if(e.keyCode==27){var t;var n=(t=u.current)==null?void 0:t.editorContainer.classList.contains("tox-fullscreen");if(n){var o;(o=u.current)==null?void 0:o.editorCommands.execCommand("mceFullScreen")}}}catch(e){}(r=s.editorProps)==null?void 0:r.onKeyDown==null?void 0:r.onKeyDown(e)}));return i("div",{className:t("v-editor-wrapper",s.className),children:i(e,r({value:s.value,cdnTinyMce:"https://file.40017.cn/tcsk/tinymce/tinymce.min.js",init:r({paste_data_images:!!s.onUploadImage,images_upload_handler:m,height:s.height||500,menubar:true,resize:true,language:"zh_CN",paste_retain_style_properties:"all",table_default_styles:{width:"100%"},plugins:"paste lists link image advlist charmap preview fullscreen code table help",toolbar:"undo redo fullscreen preview | bold italic underline strikethrough |"+"fontsizeselect formatselect |"+"alignleft aligncenter alignright alignjustify |"+"outdent indent | numlist bullist advlist |"+"forecolor backcolor removeformat |"+"code image link",fontsize_formats:"8px 10px 12px 14px 16px 18px 24px 36px 48px",autoresize_bottom_margin:50},s.editorInitParams,{setup:function e(r){var t;u.current=r;(t=s.editorInitParams)==null?void 0:t.setup==null?void 0:t.setup(r)}})},s.editorProps,{onKeyDown:d,onEditorChange:c}))})};export{l as E};
|
|
3
|
-
//# sourceMappingURL=editor-wrapper-ff6e75b7.js.map
|