@flatbiz/antd 4.4.2 → 4.4.4
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/ace-editor-groovy/index.css +0 -0
- package/esm/ace-editor-groovy/index.js +7 -0
- package/esm/ace-editor-groovy/index.js.map +1 -0
- package/esm/ace-editor-java/index.css +0 -0
- package/esm/ace-editor-java/index.js +7 -0
- package/esm/ace-editor-java/index.js.map +1 -0
- package/esm/ace-editor-json/index.css +0 -0
- package/esm/ace-editor-json/index.js +12 -0
- package/esm/ace-editor-json/index.js.map +1 -0
- package/esm/ace-editor-mysql/index.css +0 -0
- package/esm/ace-editor-mysql/index.js +12 -0
- package/esm/ace-editor-mysql/index.js.map +1 -0
- package/esm/ace-editor-xml/index.css +0 -0
- package/esm/ace-editor-xml/index.js +12 -0
- package/esm/ace-editor-xml/index.js.map +1 -0
- package/esm/card-layout/index.css +1 -1
- package/esm/color-picker-wrapper/index.js +1 -1
- package/esm/color-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/drag-editable-table/index.js +1 -1
- package/esm/drag-form-list/index.js +1 -1
- package/esm/drag-table/index.js +1 -1
- package/esm/drag-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-table/index.css +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/ext-language_tools-0c27f877.js +3 -0
- package/esm/ext-language_tools-0c27f877.js.map +1 -0
- package/esm/fba-app/index.js +1 -1
- package/esm/fba-app/index.js.map +1 -1
- package/esm/fba-hooks/index.js +1 -1
- package/esm/form-item-text/index.js +1 -1
- package/esm/icon-wrapper/index.css +1 -1
- package/esm/icon-wrapper/index.js +1 -1
- package/esm/icon-wrapper/index.js.map +1 -1
- package/esm/index.js +14 -8
- package/esm/input-search-wrapper/index.js +1 -1
- package/esm/json-editor/index.js +1 -1
- package/esm/json-editor/index.js.map +1 -1
- package/esm/mentions-wrapper/index.css +0 -0
- package/esm/mentions-wrapper/index.js +5 -0
- package/esm/mentions-wrapper/index.js.map +1 -0
- package/esm/mode-json-062fdb24.js +3 -0
- package/esm/mode-json-062fdb24.js.map +1 -0
- package/esm/rich-text-viewer/index.js +1 -1
- package/esm/rich-text-viewer/index.js.map +1 -1
- package/esm/search-form/index.js +1 -1
- package/esm/search-menu/index.css +1 -1
- package/esm/search-menu/index.js +1 -1
- package/esm/search-menu/index.js.map +1 -1
- package/esm/selector-wrapper/index.js +1 -1
- package/esm/selector-wrapper-search/index.js +1 -1
- package/esm/selector-wrapper-simple/index.js +1 -1
- package/esm/switch-confirm-wrapper/index.js +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/table-scrollbar/index.js +1 -1
- package/esm/tag-wrapper/index.js +1 -1
- package/esm/text-symbol-wrapper/index.css +1 -1
- package/esm/text-symbol-wrapper/index.js +1 -1
- package/esm/text-symbol-wrapper/index.js.map +1 -1
- package/esm/upload-wrapper/index.js +1 -1
- package/index.d.ts +213 -4
- package/package.json +8 -3
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../icon-wrapper/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import e from"@ant-design/icons/es/icons/CloseCircleOutlined";import{_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{ColorPicker as o}from"antd";import{useState as
|
|
5
|
+
import e from"@ant-design/icons/es/icons/CloseCircleOutlined";import{_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{ColorPicker as o}from"antd";import{useState as i,useEffect as r}from"react";import{IconWrapper as l}from"../icon-wrapper/index.js";import{jsxs as c,jsx as t}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";var a=function a(s){var m=i(),d=m[0],u=m[1];r((function(){u(s.value)}),[s.value]);return c("div",{className:"color-picker-wrapper",children:[t(o,n({},s,{onChange:function e(n){u(n.toHexString());s.onChange==null?void 0:s.onChange(n.toHexString())},children:!d?t("div",{className:"color-placeholder",children:"请选择颜色"}):undefined})),d?t(l,{icon:t(e,{}),onClick:function e(){s.onChange==null?void 0:s.onChange(undefined)},size:"small",style:{marginLeft:10,color:"#cfcece"},hideHoverBgColor:true}):null]})};export{a as ColorPickerWrapper};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/color-picker-wrapper/color-picker.tsx"],"sourcesContent":["import { CloseCircleOutlined } from '@ant-design/icons';\nimport { ColorPicker, type ColorPickerProps } from 'antd';\nimport { useEffect, useState } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\nimport './style.less';\n\nexport type ColorPickerWrapperProps = Omit<ColorPickerProps, 'value' | 'onChange'> & {\n /** 格式:#1677ff */\n value?: string;\n /** 转换成 hex 格式颜色字符串,返回格式如:#1677ff */\n onChange?: (hex?: string) => void;\n viewMinWidth?: number;\n};\n\nexport const ColorPickerWrapper = (props: ColorPickerWrapperProps) => {\n const [color, setColor] = useState<string>();\n\n useEffect(() => {\n setColor(props.value);\n }, [props.value]);\n\n return (\n <div className=\"color-picker-wrapper\">\n <ColorPicker\n {...props}\n onChange={(color) => {\n setColor(color.toHexString());\n props.onChange?.(color.toHexString());\n }}\n >\n {!color ? <div className=\"color-placeholder\">请选择颜色</div> : undefined}\n </ColorPicker>\n\n {color ? (\n <IconWrapper\n icon={<CloseCircleOutlined />}\n onClick={() => {\n props.onChange?.(undefined);\n }}\n size=\"small\"\n style={{ marginLeft: 10, color: '#cfcece' }}\n hideHoverBgColor\n />\n ) : null}\n </div>\n );\n};\n"],"names":["ColorPickerWrapper","props","_useState","useState","color","setColor","useEffect","value","_jsxs","className","children","_jsx","ColorPicker","_extends","onChange","toHexString","undefined","IconWrapper","icon","_CloseCircleOutlined","onClick","size","style","marginLeft","hideHoverBgColor"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/color-picker-wrapper/color-picker.tsx"],"sourcesContent":["import { CloseCircleOutlined } from '@ant-design/icons';\nimport { ColorPicker, type ColorPickerProps } from 'antd';\nimport { useEffect, useState } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\nimport './style.less';\n\nexport type ColorPickerWrapperProps = Omit<ColorPickerProps, 'value' | 'onChange'> & {\n /** 格式:#1677ff */\n value?: string;\n /** 转换成 hex 格式颜色字符串,返回格式如:#1677ff */\n onChange?: (hex?: string) => void;\n viewMinWidth?: number;\n};\n\nexport const ColorPickerWrapper = (props: ColorPickerWrapperProps) => {\n const [color, setColor] = useState<string>();\n\n useEffect(() => {\n setColor(props.value);\n }, [props.value]);\n\n return (\n <div className=\"color-picker-wrapper\">\n <ColorPicker\n {...props}\n onChange={(color) => {\n setColor(color.toHexString());\n props.onChange?.(color.toHexString());\n }}\n >\n {!color ? <div className=\"color-placeholder\">请选择颜色</div> : undefined}\n </ColorPicker>\n\n {color ? (\n <IconWrapper\n icon={<CloseCircleOutlined />}\n onClick={() => {\n props.onChange?.(undefined);\n }}\n size=\"small\"\n style={{ marginLeft: 10, color: '#cfcece' }}\n hideHoverBgColor\n />\n ) : null}\n </div>\n );\n};\n"],"names":["ColorPickerWrapper","props","_useState","useState","color","setColor","useEffect","value","_jsxs","className","children","_jsx","ColorPicker","_extends","onChange","toHexString","undefined","IconWrapper","icon","_CloseCircleOutlined","onClick","size","style","marginLeft","hideHoverBgColor"],"mappings":";qYAcaA,EAAqB,SAArBA,EAAsBC,GACjC,IAAAC,EAA0BC,IAAnBC,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEtBI,GAAU,WACRD,EAASJ,EAAMM,MACjB,GAAG,CAACN,EAAMM,QAEV,OACEC,EAAA,MAAA,CAAKC,UAAU,uBAAsBC,UACnCC,EAACC,EAAWC,KACNZ,EAAK,CACTa,SAAU,SAAAA,EAACV,GACTC,EAASD,EAAMW,eACfd,EAAMa,UAANb,UAAAA,EAAAA,EAAMa,SAAWV,EAAMW,cACvB,EAAAL,UAEAN,EAAQO,EAAA,MAAA,CAAKF,UAAU,oBAAmBC,SAAC,UAAcM,aAG5DZ,EACCO,EAACM,EAAW,CACVC,KAAMP,EAAAQ,MACNC,QAAS,SAAAA,IACPnB,EAAMa,UAANb,UAAAA,EAAAA,EAAMa,SAAWE,UACjB,EACFK,KAAK,QACLC,MAAO,CAAEC,WAAY,GAAInB,MAAO,WAChCoB,iBAAgB,OAEhB,OAGV"}
|
|
@@ -5,5 +5,5 @@ import './../form-item-wrapper/index.css';
|
|
|
5
5
|
import './../types/index.css';
|
|
6
6
|
import './index.css';
|
|
7
7
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
8
|
-
import{a as e,_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{Form as t,Input as o}from"antd";import{useMemo as i,useRef as l,forwardRef as u,useImperativeHandle as m}from"react";import{DateRangePickerWrapper as s}from"../date-range-picker-wrapper/index.js";import{fbaHooks as c}from"../fba-hooks/index.js";import{FormItemWrapper as v}from"../form-item-wrapper/index.js";import{jsxs as d,Fragment as f,jsx as p}from"react/jsx-runtime";import"@flatbiz/utils";import"dayjs";import"../time-53b3f55f.js";import"../use-responsive-point-21b8c601.js";var h=["startName","endName","formListName","dateRangePickerWrapperProps"];var g=function o(u){var m=u.startName,g=u.endName,_=u.formListName,j=u.dateRangePickerWrapperProps,P=e(u,h);var k=t.useFormInstance();var N=i((function(){if(a(m)&&a(g)){return m.slice(0,m.length-1).concat("__#invalid_date_"+m[m.length-1]+"_"+g[g.length-1])}return"__#invalid_date_"+m+"_"+g}),[m,g]);var
|
|
8
|
+
import{a as e,_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{Form as t,Input as o}from"antd";import{useMemo as i,useRef as l,forwardRef as u,useImperativeHandle as m}from"react";import{DateRangePickerWrapper as s}from"../date-range-picker-wrapper/index.js";import{fbaHooks as c}from"../fba-hooks/index.js";import{FormItemWrapper as v}from"../form-item-wrapper/index.js";import{jsxs as d,Fragment as f,jsx as p}from"react/jsx-runtime";import"@flatbiz/utils";import"dayjs";import"../time-53b3f55f.js";import"../use-responsive-point-21b8c601.js";var h=["startName","endName","formListName","dateRangePickerWrapperProps"];var g=function o(u){var m=u.startName,g=u.endName,_=u.formListName,j=u.dateRangePickerWrapperProps,P=e(u,h);var k=t.useFormInstance();var N=i((function(){if(a(m)&&a(g)){return m.slice(0,m.length-1).concat("__#invalid_date_"+m[m.length-1]+"_"+g[g.length-1])}return"__#invalid_date_"+m+"_"+g}),[m,g]);var b=i((function(){return _?[].concat(_,m):m}),[m,_]);var x=i((function(){return _?[].concat(_,g):g}),[g,_]);var F=t.useWatch(b,k);var W=t.useWatch(x,k);var w=c.usePrevious(F);var I=c.usePrevious(W);c.useEffectCustom((function(){var e=_?[].concat(_,N):N;if(F&&W){k.setFields([{name:e,value:[F,W]}])}if(w&&I&&!F&&!W){k.setFields([{name:e,value:undefined}])}}),[F,W]);var R=l(null);var y=l(null);var L=r.useCallbackRef((function(e){var n,r;k.setFields([{name:b,value:e==null?void 0:e[0]},{name:x,value:e==null?void 0:e[1]}]);(n=R.current)==null||n.onChange==null?void 0:n.onChange(e==null?void 0:e[0]);(r=y.current)==null||r.onChange==null?void 0:r.onChange(e==null?void 0:e[1]);j==null||j.onChange==null?void 0:j.onChange(e)}));return d(f,{children:[p(t.Item,{name:m,hidden:true,children:p(C,{ref:R})}),p(t.Item,{name:g,hidden:true,children:p(C,{ref:y})}),p(v,n({},P,{name:N,children:p(s,n({},j,{onChange:L}))}))]})};var C=u((function(e,n){m(n,(function(){return{onChange:function n(r){e.onChange==null?void 0:e.onChange(r)}}}));return p(o,{value:e.value})}));export{g as DateRangePickerWrapperFormItem};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -24,5 +24,5 @@ import './../input-text-area-wrapper/index.css';
|
|
|
24
24
|
import './../icon-wrapper/index.css';
|
|
25
25
|
import './index.css';
|
|
26
26
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
27
|
-
import{a as i,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as r,useSensor as t,PointerSensor as o,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as l}from"@dnd-kit/sortable";import{Form as p}from"antd";import{useMemo as c,createElement as u,Children as j,cloneElement as g,forwardRef as v,useRef as f,useImperativeHandle as x}from"react";import{EditableTable as y}from"../editable-table/index.js";import{createCtx as b}from"@wove/react/cjs/create-ctx";import I from"@ant-design/icons/es/icons/DragOutlined";import{CSS as w}from"@dnd-kit/utilities";import{isUndefinedOrNull as h,noop as k}from"@flatbiz/utils";import{IconWrapper as F}from"../icon-wrapper/index.js";import{jsx as D}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"
|
|
27
|
+
import{a as i,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as r,useSensor as t,PointerSensor as o,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as l}from"@dnd-kit/sortable";import{Form as p}from"antd";import{useMemo as c,createElement as u,Children as j,cloneElement as g,forwardRef as v,useRef as f,useImperativeHandle as x}from"react";import{EditableTable as y}from"../editable-table/index.js";import{createCtx as b}from"@wove/react/cjs/create-ctx";import I from"@ant-design/icons/es/icons/DragOutlined";import{CSS as w}from"@dnd-kit/utilities";import{isUndefinedOrNull as h,noop as k}from"@flatbiz/utils";import{IconWrapper as F}from"../icon-wrapper/index.js";import{jsx as D}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"../table-title-tooltip/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../tips-wrapper/index.js";import"../table-cell-render/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-select/index.js";import"../date-picker-wrapper/index.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper/index.js";import"../input-wrapper/index.js";import"../selector-wrapper/index.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"../switch-wrapper/index.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper/index.js";import"../upload-wrapper/index.js";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";var K=b(),_=K[0],C=K[1];var O=["dragIcon"];var P=function r(t){var o=t.dragIcon,n=i(t,O);var s=n["data-row-key"];var d=c((function(){var i;return!h(s)?(i=t.getTableItemDataByFormListItemKey(s))==null?void 0:i[t.uidFieldKey]:undefined}),[t,s]);var m=a({id:d}),l=m.setActivatorNodeRef,p=m.listeners,v=m.setNodeRef,f=m.transform,x=m.transition,y=m.isDragging;if(h(d)){return D("tr",e({},n))}var b=e({},n.style,{transform:w.Transform.toString(f&&e({},f,{scaleY:1})),transition:x,cursor:"move"},y?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var K=o||D(I,{});return u("tr",e({},n,{ref:v,style:b,key:d}),j.map(t.children,(function(i){if(i.key==="__sort"){return g(i,{children:D("span",e({ref:l,style:{touchAction:"none",cursor:"move"}},p,{children:D(F,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:K,onClick:k})}))})}return i})))};var B=function i(r){var t=_();return D(P,e({},r,{dragIcon:t.dragIcon,uidFieldKey:t.uidFieldKey,getTableItemDataByFormListItemKey:t.getTableItemDataByFormListItemKey}))};var L=["dragIcon","uidFieldKey","onDragChange","disabledDrag"];var T=v((function(a,c){var u,j,g;var v=a.dragIcon,b=a.uidFieldKey,I=a.onDragChange,w=a.disabledDrag,h=i(a,L);var k=p.useFormInstance();var F=p.useWatch(a.name,k);var K=f(null);x(c,(function(){return K.current}));var _=r(t(o,{activationConstraint:{delay:0,tolerance:0}}));var O=function i(e){var r=e.active,t=e.over;if(r.id!==(t==null?void 0:t.id)){var o=F.findIndex((function(i){return i[b]===r.id}));var n=F.findIndex((function(i){return i[b]===(t==null?void 0:t.id)}));var s=l(F,o,n);k.setFields([{name:a.name,value:s}]);I==null?void 0:I(s,{activeId:r.id,activeIndex:o,overIndex:n})}};var P=w?h.columns:[{dataIndex:"__sort",width:50,key:"__sort"}].concat(h.columns||[]);return D(C,{value:{dragIcon:v,uidFieldKey:b,getTableItemDataByFormListItemKey:(u=K.current)==null?void 0:u.getTableItemDataByFormListItemKey},children:D(n,{sensors:_,modifiers:[s],onDragEnd:O,children:D(d,{items:(F==null?void 0:F.map((function(i){return i[b]})))||[],strategy:m,children:D(y,e({ref:K},h,{columns:P,tableProps:e({},h.tableProps,{components:e({},(j=h.tableProps)==null?void 0:j.components,{body:e({},(g=h.tableProps)==null||(g=g.components)==null?void 0:g.body,{row:w?undefined:B})})})}))})})})}));export{T as DragEditableTable};
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -6,5 +6,5 @@ import './../types/index.css';
|
|
|
6
6
|
import './../fba-utils/index.css';
|
|
7
7
|
import './index.css';
|
|
8
8
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
9
|
-
import{_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as i}from"@wove/react/cjs/hooks";import{DndContext as t,closestCenter as a,DragOverlay as n}from"@dnd-kit/core";import{useSortable as o,SortableContext as d,verticalListSortingStrategy as l,arrayMove as m}from"@dnd-kit/sortable";import{toArray as s,getUuid as u}from"@flatbiz/utils";import{Form as c,Empty as p}from"antd";import{Fragment as f,useState as g,useRef as v,useMemo as h}from"react";import{B as y}from"../index-1f45bfd5.js";import{ButtonWrapper as j}from"../button-wrapper/index.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as N}from"@dnd-kit/utilities";import{jsx as I,jsxs as
|
|
9
|
+
import{_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as i}from"@wove/react/cjs/hooks";import{DndContext as t,closestCenter as a,DragOverlay as n}from"@dnd-kit/core";import{useSortable as o,SortableContext as d,verticalListSortingStrategy as l,arrayMove as m}from"@dnd-kit/sortable";import{toArray as s,getUuid as u}from"@flatbiz/utils";import{Form as c,Empty as p}from"antd";import{Fragment as f,useState as g,useRef as v,useMemo as h}from"react";import{B as y}from"../index-1f45bfd5.js";import{ButtonWrapper as j}from"../button-wrapper/index.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as N}from"@dnd-kit/utilities";import{jsx as I,jsxs as b}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";function C(t){var a=c.useFormInstance();var n=t.isOverlay?false:t.getItemDragDisabled==null?void 0:t.getItemDragDisabled(t.uid,t.index);var d=o({id:t.uid,disabled:n}),l=d.listeners,m=d.setNodeRef,s=d.transform,u=d.transition;var p=i.useCallbackRef((function(){var r=t.dragIcon?t.dragIcon:I(D,{});return t.dragDisabled?I(f,{}):I("span",e({className:"drag-form-list-item-trigger"},l,{children:I("span",{children:r})}))}));var g=e({transform:N.Transform.toString(s),transition:u},t.style);var v=r("drag-form-list-item",{"drag-form-list-item-grap":t.isGray,"drag-form-list-item-disabled":n},t.className);return b("div",{style:e({},g),ref:m,className:v,children:[I(c.Item,{style:{margin:0},children:p()}),I("div",{className:"drag-form-list-item-content",children:t.children({formListFieldData:t.formListFieldData,operation:t.formListOperate,formStageCompleteName:t.formStageCompleteName,index:t.index,getInsideFormItemName:function e(r){return[t.formListFieldData.name,r]},getInsideFormItemData:function e(){return a.getFieldValue(t.formStageCompleteName)||{}},prevCompleteName:t.prevCompleteName,uidKey:t.uidFieldName})})]})}var F=function e(r){if(r.wrapper)return r.wrapper({children:r.children});return r.children};var x=function o(D){var N=[].concat(D.prevCompleteName,s(D.name));var x=g(),k=x[0],w=x[1];var L=c.useFormInstance();var R=v([]);var S=D.uidFieldName||"uid";var O=c.useWatch(N,L);var A=i.useCallbackRef((function(e){return e==null?void 0:e[S]}));function E(e){var r=e.active;w(r.id)}var _=i.useCallbackRef((function(){return L.getFieldValue(N)||[]}));function B(e){var r=e.active,i=e.over;var t=_();if(r.id!==i.id){var a=t.findIndex((function(e){return A(e)===r.id}));var n=t.findIndex((function(e){return A(e)===i.id}));var o=m(t,a,n);L.setFields([{name:D.name,value:o}]);D.onDropChange==null?void 0:D.onDropChange(o)}w(undefined)}var P=h((function(){if(!k)return undefined;var e=_();var r=e.findIndex((function(e){return A(e)===k}));return R.current.find((function(e){return e.name===r}))}),[k,_,A]);return b(y,{className:r("drag-form-list",D.className),style:D.style,children:[!D.hiddenEmptyRender&&!(O!=null&&O.length)?I(p,{image:p.PRESENTED_IMAGE_SIMPLE,style:{margin:"15px 0"}}):null,I(t,{collisionDetection:a,onDragStart:E,onDragEnd:B,children:I(c.List,{name:D.name,rules:D.rules,children:function r(i,t){R.current=i;return I(F,{wrapper:D.formListChildrenWrapper,children:b(f,{children:[I(d,{items:_().map((function(e){return A(e)})),strategy:l,children:b(f,{children:[i.map((function(e,r){var i=A(_()[r]);if(!i)return null;return I(C,{formListOperate:t,formListFieldData:e,uid:i,dragIcon:D.dragIcon,getItemDragDisabled:D.getItemDragDisabled,dragDisabled:D.dragDisabled,isGray:!!i&&i===k,index:r,formStageCompleteName:[].concat(N,[e.name]),prevCompleteName:N,uidFieldName:S,style:D.itemStyle,children:D.children},i+"-"+e.key)})),D.onCustomAddRowButton?D.onCustomAddRowButton(t):I(j,{hidden:D.hiddenAddRowButton,type:"dashed",block:true,onClick:function r(){var i;return t.add(e((i={},i[S]=u(),i),D.getAddRowDefaultValues==null?void 0:D.getAddRowDefaultValues()))},children:"添加"})]})}),I(n,{dropAnimation:{duration:0},children:k&&P?I(C,{isOverlay:true,uid:k,className:"drag-form-list-overlay",formListFieldData:P,dragIcon:D.dragIcon,formListOperate:null,index:0,formStageCompleteName:[].concat(N,[P.name]),prevCompleteName:N,uidFieldName:S,children:D.children},k):null})]})})}})})]})};export{x as DragFormList};
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/esm/drag-table/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../icon-wrapper/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{_ as r,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as o,useSensor as e,PointerSensor as t,DndContext as
|
|
5
|
+
import{_ as r,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as o,useSensor as e,PointerSensor as t,DndContext as i}from"@dnd-kit/core";import{restrictToVerticalAxis as a}from"@dnd-kit/modifiers";import{useSortable as d,SortableContext as s,verticalListSortingStrategy as c,arrayMove as l}from"@dnd-kit/sortable";import{Table as u}from"antd";import{Children as f,cloneElement as m,isValidElement as v,useState as p,useEffect as g,useMemo as x}from"react";import{createCtx as y}from"@wove/react/cjs/create-ctx";import{CSS as I}from"@dnd-kit/utilities";import{jsx as b}from"react/jsx-runtime";import h from"@ant-design/icons/es/icons/DragOutlined";import{noop as k}from"@flatbiz/utils";import{IconWrapper as j}from"../icon-wrapper/index.js";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";var w=y(),D=w[0],S=w[1];var C=function n(o){var e=d({id:o["data-row-key"]}),t=e.listeners,i=e.setNodeRef,a=e.transform,s=e.transition,c=e.isDragging;var l=r({},o.style,{transform:I.Transform.toString(a&&r({},a,{scaleY:1})),transition:s,cursor:"move"},c?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)"}:{});return b("tr",r({},o,{ref:i,style:l},t))};var z=["dragIcon"];var A=function o(e){var t=e.dragIcon,i=n(e,z);var a=i["data-row-key"];var s=d({id:a}),c=s.setActivatorNodeRef,l=s.listeners,u=s.setNodeRef,p=s.transform,g=s.transition,x=s.isDragging;if(!a){return b("tr",r({},i))}var y=r({},i.style,{transform:I.Transform.toString(p&&r({},p,{scaleY:1})),transition:g,cursor:t===false?"move":undefined},x?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var w=v(t)?t:b(h,{});return b("tr",r({},i,{ref:u,style:y,children:f.map(e.children,(function(n){if(n.key==="sort"){return m(n,{children:b("span",r({ref:c,style:{touchAction:"none",cursor:"move"}},l,{children:b(j,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:w,onClick:k})}))})}return n}))}))};var K=function n(o){var e=D();return e.dragIcon===false?b(C,r({},o,{dragIcon:e.dragIcon})):b(A,r({},o,{dragIcon:e.dragIcon}))};var N=["dragIcon","uidFieldKey","columns","dataSource","onDragChange","disabledDrag"];var R=function d(f){var m;var v=f.dragIcon,y=f.uidFieldKey,I=f.columns,h=f.dataSource,k=f.onDragChange,j=f.disabledDrag,w=n(f,N);var D=p([]),C=D[0],z=D[1];g((function(){z(h||[])}),[h]);var A=function r(n){var o=n.active,e=n.over;if(o.id!==(e==null?void 0:e.id)){var t=C.findIndex((function(r){return r[y]===o.id}));var i=C.findIndex((function(r){return r[y]===(e==null?void 0:e.id)}));var a=l(C,t,i);z([].concat(a));k==null?void 0:k(a,{activeId:o.id,activeIndex:t,overIndex:i})}};var R=x((function(){if(v===false)return I;return[{key:"sort",dataIndex:"sort",align:"center",width:50}].concat(I||[])}),[I,v]);var F=o(e(t,{activationConstraint:{delay:v===false?150:0,tolerance:0}}));return b(S,{value:{dragIcon:v},children:b(i,{sensors:F,modifiers:[a],onDragEnd:A,children:b(s,{items:C.map((function(r){return r[y]})),strategy:c,children:b(u,r({pagination:false,rowKey:y,bordered:true,components:r({},w.components,{body:r({},(m=w.components)==null?void 0:m.body,{row:j?undefined:K})})},w,{dataSource:C,columns:R}))})})})};export{R as DragTable};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/context.ts","@flatbiz/antd/src/drag-table/table-tr.tsx","@flatbiz/antd/src/drag-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-table/row.tsx","@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: false | ReactElement;\n}>();\n","import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nexport const TableTr = (props) => {\n const { listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...props.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n }\n : {}),\n };\n\n return <tr {...props} ref={setNodeRef} style={style} {...listeners} />;\n};\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, isValidElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\ntype TableTrHandleProps = RowProps & {\n dragIcon?: false | ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'];\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (!rowId) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = isValidElement(dragIcon) ? dragIcon : <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === 'sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span ref={setActivatorNodeRef} style={{ touchAction: 'none', cursor: 'move' }} {...listeners}>\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTr } from './table-tr';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return ctx.dragIcon === false ? (\n <TableTr {...props} dragIcon={ctx.dragIcon} />\n ) : (\n <TableTrHandle {...props} dragIcon={ctx.dragIcon} />\n );\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Table, type TableProps } from 'antd';\nimport { useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\ntype DragTableProps = Omit<TableProps<TPlainObject>, 'dataSource'> & {\n /**\n * ```\n * 1. 可自定义拖拽图标\n * 2. dragIcon = false,可设置表格行拖拽\n * ```\n */\n dragIcon?: false | ReactElement;\n /** 表格数据唯一值字段Key,未填或者无法唯一,都不能拖拽能力 */\n uidFieldKey: string;\n dataSource?: TPlainObject[];\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽表格\n * ```\n * 1. 必须设置唯一值字段 uidFieldKey\n * 2. 如果拖拽显示异常,请检查 uidFieldKey 是否正确\n * 3. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragTable = (props: DragTableProps) => {\n const { dragIcon, uidFieldKey, columns, dataSource, onDragChange, disabledDrag, ...otherProps } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n useEffect(() => {\n setDataList(dataSource || []);\n }, [dataSource]);\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n setDataList([...dataListNew]);\n onDragChange?.(dataListNew, {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columnsList = useMemo(() => {\n if (dragIcon === false) return columns;\n return [\n {\n key: 'sort',\n dataIndex: 'sort',\n align: 'center',\n width: 50,\n } as TAny,\n ].concat(columns || []);\n }, [columns, dragIcon]);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: dragIcon === false ? 150 : 0,\n tolerance: 0,\n },\n }),\n );\n\n return (\n <CtxProvider value={{ dragIcon }}>\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext items={dataList.map((i) => i[uidFieldKey])} strategy={verticalListSortingStrategy}>\n <Table\n pagination={false}\n rowKey={uidFieldKey}\n bordered\n components={{\n ...otherProps.components,\n body: {\n ...otherProps.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n }}\n {...otherProps}\n dataSource={dataList}\n columns={columnsList}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTr","props","_useSortable","useSortable","id","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","_jsx","ref","TableTrHandle","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","setActivatorNodeRef","undefined","backgroundColor","iconElement","isValidElement","_DragOutlined","children","Children","map","child","key","cloneElement","touchAction","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","Row","ctx","DragTable","_otherProps$component","uidFieldKey","columns","dataSource","onDragChange","disabledDrag","otherProps","_useState","useState","dataList","setDataList","useEffect","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","concat","activeId","columnsList","useMemo","dataIndex","align","width","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","value","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","Table","pagination","rowKey","bordered","components","body","row"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/context.ts","@flatbiz/antd/src/drag-table/table-tr.tsx","@flatbiz/antd/src/drag-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-table/row.tsx","@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: false | ReactElement;\n}>();\n","import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nexport const TableTr = (props) => {\n const { listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...props.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n }\n : {}),\n };\n\n return <tr {...props} ref={setNodeRef} style={style} {...listeners} />;\n};\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, isValidElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\ntype TableTrHandleProps = RowProps & {\n dragIcon?: false | ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'];\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (!rowId) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = isValidElement(dragIcon) ? dragIcon : <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === 'sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span ref={setActivatorNodeRef} style={{ touchAction: 'none', cursor: 'move' }} {...listeners}>\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTr } from './table-tr';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return ctx.dragIcon === false ? (\n <TableTr {...props} dragIcon={ctx.dragIcon} />\n ) : (\n <TableTrHandle {...props} dragIcon={ctx.dragIcon} />\n );\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Table, type TableProps } from 'antd';\nimport { useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\ntype DragTableProps = Omit<TableProps<TPlainObject>, 'dataSource'> & {\n /**\n * ```\n * 1. 可自定义拖拽图标\n * 2. dragIcon = false,可设置表格行拖拽\n * ```\n */\n dragIcon?: false | ReactElement;\n /** 表格数据唯一值字段Key,未填或者无法唯一,都不能拖拽能力 */\n uidFieldKey: string;\n dataSource?: TPlainObject[];\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽表格\n * ```\n * 1. 必须设置唯一值字段 uidFieldKey\n * 2. 如果拖拽显示异常,请检查 uidFieldKey 是否正确\n * 3. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragTable = (props: DragTableProps) => {\n const { dragIcon, uidFieldKey, columns, dataSource, onDragChange, disabledDrag, ...otherProps } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n useEffect(() => {\n setDataList(dataSource || []);\n }, [dataSource]);\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n setDataList([...dataListNew]);\n onDragChange?.(dataListNew, {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columnsList = useMemo(() => {\n if (dragIcon === false) return columns;\n return [\n {\n key: 'sort',\n dataIndex: 'sort',\n align: 'center',\n width: 50,\n } as TAny,\n ].concat(columns || []);\n }, [columns, dragIcon]);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: dragIcon === false ? 150 : 0,\n tolerance: 0,\n },\n }),\n );\n\n return (\n <CtxProvider value={{ dragIcon }}>\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext items={dataList.map((i) => i[uidFieldKey])} strategy={verticalListSortingStrategy}>\n <Table\n pagination={false}\n rowKey={uidFieldKey}\n bordered\n components={{\n ...otherProps.components,\n body: {\n ...otherProps.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n }}\n {...otherProps}\n dataSource={dataList}\n columns={columnsList}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTr","props","_useSortable","useSortable","id","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","_jsx","ref","TableTrHandle","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","setActivatorNodeRef","undefined","backgroundColor","iconElement","isValidElement","_DragOutlined","children","Children","map","child","key","cloneElement","touchAction","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","Row","ctx","DragTable","_otherProps$component","uidFieldKey","columns","dataSource","onDragChange","disabledDrag","otherProps","_useState","useState","dataList","setDataList","useEffect","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","concat","activeId","columnsList","useMemo","dataIndex","align","width","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","value","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","Table","pagination","rowKey","bordered","components","body","row"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../icon-wrapper/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import{classNames as n}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/CloseOutlined";import e from"@ant-design/icons/es/icons/CheckOutlined";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.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{IconWrapper as
|
|
6
|
+
import{classNames as n}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/CloseOutlined";import e from"@ant-design/icons/es/icons/CheckOutlined";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.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{IconWrapper as b}from"../icon-wrapper/index.js";import{jsx as C,jsxs as j}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-undefined";var g=function g(k){var y=k.value,I=k.onChange,w=k.viewRender,E=k.placeholderValue,P=E===void 0?"-":E,x=k.editRender,z=k.isEditFull,O=k.onClickEditIconPre,R=k.onClickConfirmIconPre,N=k.iconConfig,T=k.onEditCallback,_=k.onConfirmCallback;var B=u(false),F=B[0],H=B[1];var V=f(p);var q=d(y);var A=function(){if(V.isCtx){return k.showEditableIcon===undefined?V.showEditableIcon:k.showEditableIcon}return k.showEditableIcon===undefined?true:k.showEditableIcon}();var D=function(){if(V.isCtx){return k.editable===undefined?V.editable:k.editable}return k.editable||false}();var G=h.useThemeToken();m((function(){H(D)}),[D]);var J=function n(){return new Promise((function(n,r){if(O){return Promise.resolve(O(y)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){q.current=y;H(true);T==null?void 0:T(y);return n()}return e.call(this)}))};var K=N!=null&&N.editIcon?N.editIcon({onClick:J}):C(b,{size:"small",icon:C(a,{}),onClick:J});if(!F){var L=(w?w(k.value):k.value)||P;if(l(L)||t(L)||c(L)||v(L)){if(!A){return L}return j(s,{size:8,children:[C("span",{children:L}),K]})}console.warn("对象作为React子对象无效",L)}var M=function n(){if(y!==q.current){I==null?void 0:I(q.current)}H(false)};var Q=function n(r){var e=r;if(typeof r==="object"&&r!==null&&!o(r)&&r.target){var i;var a=(i=r.target)==null?void 0:i.value;if(l(a)||t(a)||c(a)){var s;e=(s=r.target)==null?void 0:s.value}}I==null?void 0:I(e)};var S=function n(){return new Promise((function(n,r){if(R){return Promise.resolve(R(y,q.current)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){H(false);_==null?void 0:_(y,q.current);return n()}return e.call(this)}))};var U=typeof x==="function"?x({value:y,onChange:Q}):x;if(!A){return C(U.type,i({value:y,onChange:Q},U.props))}var W=N!=null&&N.confirmIcon?N.confirmIcon({onClick:S}):C(b,{size:"small",icon:C(e,{style:{color:G.colorPrimary}}),onClick:S});var X=N!=null&&N.cancelIcon?N.cancelIcon({onClick:M}):C(b,{size:"small",icon:C(r,{style:{color:G.colorPrimary}}),onClick:M});return j(s,{direction:"horizontal",size:12,style:k.style,className:n("editable-field",{"editable-field-full":z},k.className),children:[C(U.type,i({value:y,onChange:Q},U.props)),W,X]})};export{g as EditableField};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport {\n CSSProperties,\n isValidElement,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} 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 style?: CSSProperties;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 是否可编辑 */\n 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={props.style}\n className={classNames('editable-field', { 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","_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","className","_classNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport {\n CSSProperties,\n isValidElement,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} 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 style?: CSSProperties;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 是否可编辑 */\n 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={props.style}\n className={classNames('editable-field', { 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","_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","className","_classNames"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{E as e}from"../context-25d0b686.js";import{jsx as r}from"react/jsx-runtime";import"react";var t=function t(i){var
|
|
4
|
+
import{E as e}from"../context-25d0b686.js";import{jsx as r}from"react/jsx-runtime";import"react";var t=function t(i){var a=i.editable===undefined?true:i.editable;var o=i.showEditableIcon===undefined?false:i.showEditableIcon;return r(e.Provider,{value:{editable:a,isCtx:true,showEditableIcon:o},children:i.children})};export{t as EditableFieldProvider};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.editable-table{padding-bottom:15px}.editable-table .ant-form-item{margin:0!important}.editable-table .editable-text-view.ant-typography{margin-bottom:0}.editable-input-number-form-item .ant-input-number{width:100%}
|
|
1
|
+
.editable-table{padding-bottom:15px}.editable-table .ant-form-item{margin:0!important}.editable-table .editable-text-view.ant-typography{margin-bottom:0}.editable-table:not(.et-empty-show-large) .ant-table-placeholder .ant-empty{align-items:center;display:flex;justify-content:center;margin:0}.editable-table:not(.et-empty-show-large) .ant-table-placeholder .ant-empty-image{height:25px;margin:0;width:50px}.editable-input-number-form-item .ant-input-number{width:100%}
|
|
@@ -22,5 +22,5 @@ import './../input-wrapper/index.css';
|
|
|
22
22
|
import './../input-text-area-wrapper/index.css';
|
|
23
23
|
import './index.css';
|
|
24
24
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
25
|
-
import e from"@ant-design/icons/es/icons/PlusOutlined";import{_ as n,a as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{arrayField2LabelValue as i,toArray as a}from"@flatbiz/utils";import{Form as t,Checkbox as l,InputNumber as o,Radio as d,Tag as m,Space as u,Button as s,Input as c,Table as f}from"antd";import{useMemo as p,useState as v,useEffect as g,Fragment as b,forwardRef as h,useRef as C,useImperativeHandle as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TableTitleTooltip as I}from"../table-title-tooltip/index.js";import{TipsWrapper as R}from"../tips-wrapper/index.js";import{isArray as y}from"@dimjs/lang/cjs/is-array";import{extend as N}from"@dimjs/utils/cjs/extend";import{classNames as k}from"@dimjs/utils/cjs/class-names";import{hooks as P}from"@wove/react/cjs/hooks";import{tableCellRender as F}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as O}from"react/jsx-runtime";import{DatePickerWrapper as A}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as V}from"../date-range-picker-wrapper/index.js";import{InputWrapper as W}from"../input-wrapper/index.js";import{SelectorWrapper as B}from"../selector-wrapper/index.js";import{SwitchWrapper as S}from"../switch-wrapper/index.js";import{isBoolean as _}from"@dimjs/lang/cjs/is-boolean";import{isNumber as D}from"@dimjs/lang/cjs/is-number";import{isString as z}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as G}from"../input-text-area-wrapper/index.js";import{UploadWrapper as E}from"../upload-wrapper/index.js";import M from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-select/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var q=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var K=function e(r){var i=r.fieldConfig,a=i.editableConfig,t=i.editable,o=i.render;var d=a.editableComptProps;var m=p((function(){return d.options||[]}),[d.options]);var u=P.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);d.onChange==null?void 0:d.onChange(e)}));if(t){return L(l.Group,n({},d,{value:r.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:o?o(r.value,m):F.selectorCell(m)(r.value)})};var Y=function e(r){var i=r.fieldConfig.formItemProps;return L(t.Item,n({},i,{name:r.name,className:k("editable-checkbox-group-form-item",i==null?void 0:i.className),children:L(K,n({},r))}))};var H=function e(r){var i=r.fieldConfig,a=i.formItemProps,l=i.editableConfig;return L(t.Item,n({},a,{name:r.name,className:k("editable-date-picker-wraper-form-item",a==null?void 0:a.className),children:L(A,n({allowClear:true},l.editableComptProps))}))};var J=function e(r){var i=r.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=P.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=p((function(){var e=y(r.value)?r.value:[];if(t)return undefined;return e.join("~")}),[t,r.value]);if(t){return L(V,n({allowClear:true},o,{value:r.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(r.value):m})};var Q=function e(r){var i=r.fieldConfig.formItemProps;return L(t.Item,n({},i,{name:r.name,className:k("editable-date-range-picker-wraper-form-item",i==null?void 0:i.className),children:L(J,n({},r))}))};var U=function e(r){var i=r.fieldConfig,a=i.formItemProps,l=i.editableConfig;return L(t.Item,n({},a,{name:r.name,children:L(W,n({allowClear:true},l.editableComptProps))}))};var X=function e(r){var i=r.fieldConfig,a=i.formItemProps,l=i.editableConfig;return L(t.Item,n({},a,{name:r.name,className:k("editable-input-number-form-item",a==null?void 0:a.className),children:L(o,n({},l.editableComptProps))}))};var Z=function e(r){var i=r.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=p((function(){return o.options||[]}),[o.options]);var u=P.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(d.Group,n({},o,{value:r.value,onChange:u}))}return L("span",{className:"editable-radio-group-view",children:l?l(r.value,m):F.selectorCell(m)(r.value)})};var $=function e(r){var i=r.fieldConfig.formItemProps;return L(t.Item,n({},i,{name:r.name,className:k("editable-radio-group-form-item",i==null?void 0:i.className),children:L(Z,n({},r))}))};var ee=function e(r){var a=r.fieldConfig,t=a.editableConfig,l=a.editable,o=a.render;var d=t.editableComptProps;var u=v([]),s=u[0],c=u[1];var f=v([]),p=f[0],h=f[1];g((function(){if(!l){var e=y(r.value)?r.value:r.value===undefined?[]:[r.value];if(s.length===0){h(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=s.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));h(n)}}),[l,d.fieldNames,r.value,s]);var C=P.useCallbackRef((function(e){c(i(e||[],d.fieldNames))}));var x=P.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);d.onChange==null?void 0:d.onChange(e,n)}));if(l){return L(B,n({},d,{value:r.value,onChange:x,onSelectorListAllChange:C}))}return T(b,{children:[L("div",{style:{display:"none"},children:L(B,n({},d,{onSelectorListAllChange:C}))}),L("span",{className:"editable-selector-view",children:o?o(r.value,s):p.map((function(e,n){return L(m,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(r){var i=r.fieldConfig.formItemProps;return L(t.Item,n({},i,{name:r.name,className:k("editable-selector-wrapper-form-item",i==null?void 0:i.className),children:L(ee,n({},r))}))};var re=function e(r){var i=r.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=P.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var u=p((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(S,n({},o,{value:r.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(r.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==r.value?L(m,{color:"geekblue",style:{marginRight:0},children:u.checkedText}):L(m,{style:{marginRight:0},children:u.unCheckedText})})};var ie=function e(r){var i=r.fieldConfig.formItemProps;return L(t.Item,n({},i,{name:r.name,className:k("editable-switch-wrapper-form-item",i==null?void 0:i.className),children:L(re,n({},r))}))};var ae=function e(n){var r,i;var a=p((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=z(n.value)||D(n.value)||_(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(t.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(r){var i=r.fieldConfig,a=i.formItemProps,l=i.editableConfig;return L(t.Item,n({},a,{name:r.name,children:L(G,n({},l.editableComptProps))}))};var oe=["children"];var de=function e(i){var a=i.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=r(d,oe);if(o){return L(E,n({listType:"text"},u,{value:i.value,onChange:i.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(i.value):L(E,n({listType:"text"},u,{value:i.value,disabled:true}))})};var me=function e(r){var i=r.fieldConfig.formItemProps;return L(t.Item,n({},i,{name:r.name,className:k("editable-upload-wrapper-form-item",i==null?void 0:i.className),children:L(de,n({},r))}))};var ue=function e(r){var i=r.fieldConfig,a=i.editableConfig,t=i.editable;var l=q(t,r.tableRowIndex);var o=N({},r.fieldConfig,{editable:l});var d={name:r.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,n({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L(X,n({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,n({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,n({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,n({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,n({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,n({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L($,n({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,n({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,n({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:r.name,editable:l,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return L(te,n({},d))};var se=function e(n){var r=t.useFormInstance();var i=n.formListConfig,a=i.onFormListBeforeRender,l=i.editableConfigList,o=i.onFormListAfterRender,d=i.onFormListItemBeforeRender,m=i.onFormListItemAfterRender,s=i.deleteOperateRender;return L(t.List,{name:n.name,children:function e(i,t){var c=t.add,f=t.remove;return T(O,{children:[a?a({tableRowIndex:n.tableRowIndex,add:c,get value(){return r.getFieldValue(n.completeName)}}):null,i.map((function(e,i){var a=l.find((function(e){return q(e.editable,n.tableRowIndex)}));var t=k("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!a});return T("div",{className:t,children:[d==null?void 0:d({add:c,remove:function e(){f(i)},formListItemIndex:i,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),T(u,{children:[l.map((function(r,i){return L(ue,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},i)})),a?L(ce,{deleteOperateRender:s,remove:function e(){f(i)},index:i}):undefined]}),m==null?void 0:m({add:c,formListItemIndex:i,tableRowIndex:n.tableRowIndex,remove:function e(){f(i)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},i)})),o?o({tableRowIndex:n.tableRowIndex,add:c,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var ce=function e(n){return L(t.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(s,{type:"link",danger:true,icon:L(M,{}),onClick:n.remove,children:"删除"})})};var fe=function e(n){if(n.fieldConfig){if(y(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return T(b,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?L(t.Item,{hidden:true,name:n.hiddenField.dataIndex,children:L(c,{})}):null]})}}return L(te,{name:n.name})};var pe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","tooltip","title","tipsWrapperProps"];var ve=h((function(i,l){var o;var d=t.useFormInstance();var m=C([]);var u=p((function(){if(!i.columns)return[];return i.columns.map((function(e){var t=e.fieldConfig,l=e.renderMiddleware,o=e.tableChildrenColumnRender,m=e.tooltip,u=e.title,s=e.tipsWrapperProps,c=r(e,pe);var f=w(u)||typeof u==="string";var p;if(s&&f){if(typeof s==="string"){p=L(R,{tipType:"popover",popoverProps:{content:s},children:u})}else{p=L(R,n({},s,{children:u}))}}else if(m){p=L(I,{title:u,tooltip:m})}else{p=u}return n({title:p,onCell:function e(){var n;return{valign:((n=i.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},c,{render:function n(r,m,u){if(m["_isChildrenItem"]){if(o){return o(r,m,u)}return r}var s=[].concat(a(i.name),[m.name]);var c=e.dataIndex?[].concat(s,[e.dataIndex]):s;var f=l==null?void 0:l({name:c,tableRowIndex:m.name,operation:m.operation,tableRowName:s,index:u});if(f){return f}var p=typeof t==="function"?t({name:c,tableRowIndex:m.name,tableRowName:s,getTableRowData:function e(){return d.getFieldValue(s)}}):t;return L(fe,{name:e.dataIndex?[m.name,e.dataIndex]:[m.name],completeName:c,fieldConfig:p,tableRowIndex:m.name,hiddenField:e.hiddenField})}})}))}),[i.columns,i.name,(o=i.tableProps)==null?void 0:o.cellVerticalAlign]);var s=t.useWatch(i.name,d);x(l,(function(){return{getTableItemDataByFormListItemKey:function e(n){var r=m.current.find((function(e){return e.key===n}));if(r){return d.getFieldValue([].concat(a(i.name),[r.name]))}return undefined}}}));return L("div",{className:"editable-table",children:L(t.List,{name:i.name,rules:i.rules,children:function r(a,t){m.current=a;return T(b,{children:[i.onTableBeforeRender?i.onTableBeforeRender(t,a.length):null,L(f,n({scroll:{x:"max-content"},pagination:false,rowKey:"key",size:"small"},i.tableProps,{dataSource:a.map((function(e){var r;var i=s==null||(r=s[e.name])==null?void 0:r.children;if(i){i.forEach((function(e){e["_isChildrenItem"]=true}))}return n({},e,{operation:t,children:i})})),columns:u})),i.onTableAfterRender?i.onTableAfterRender(t,a.length):L(j,{type:"dashed",hidden:i.hiddenFooterBtn,onClick:function e(){return t.add(i.getAddRowDefaultValues==null?void 0:i.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"})]})}})})}));export{ve as EditableTable};
|
|
25
|
+
import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{arrayField2LabelValue as a,toArray as t}from"@flatbiz/utils";import{Form as l,Checkbox as o,InputNumber as d,Radio as m,Tag as u,Space as s,Button as c,Input as f,Table as p}from"antd";import{useMemo as v,useState as g,useEffect as b,Fragment as h,forwardRef as C,useRef as w,useImperativeHandle as x,isValidElement as j}from"react";import{ButtonWrapper as I}from"../button-wrapper/index.js";import{TableTitleTooltip as R}from"../table-title-tooltip/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as P}from"@wove/react/cjs/hooks";import{tableCellRender as F}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as O}from"react/jsx-runtime";import{DatePickerWrapper as A}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as V}from"../date-range-picker-wrapper/index.js";import{InputWrapper as S}from"../input-wrapper/index.js";import{SelectorWrapper as W}from"../selector-wrapper/index.js";import{SwitchWrapper as B}from"../switch-wrapper/index.js";import{isBoolean as _}from"@dimjs/lang/cjs/is-boolean";import{isNumber as D}from"@dimjs/lang/cjs/is-number";import{isString as z}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as G}from"../input-text-area-wrapper/index.js";import{UploadWrapper as E}from"../upload-wrapper/index.js";import M from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-select/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var q=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var K=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var d=a.editableComptProps;var m=v((function(){return d.options||[]}),[d.options]);var u=P.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e)}));if(t){return L(o.Group,r({},d,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):F.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(l.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(K,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,o=a.editableConfig;return L(l.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(A,r({allowClear:true},o.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=P.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=v((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return L(V,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(l.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(l.Item,r({},a,{name:n.name,children:L(S,r({allowClear:true},t.editableComptProps))}))};var X=function e(i){var a=i.fieldConfig,t=a.formItemProps,o=a.editableConfig;return L(l.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(d,r({},o.editableComptProps))}))};var Z=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=v((function(){return o.options||[]}),[o.options]);var u=P.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e.target.value);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(m.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):F.selectorCell(d)(n.value)})};var $=function e(i){var a=i.fieldConfig.formItemProps;return L(l.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(Z,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=g([]),s=m[0],c=m[1];var f=g([]),p=f[0],v=f[1];b((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(s.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=s.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,s]);var C=P.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var w=P.useCallbackRef((function(e,r){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e,r)}));if(l){return L(W,r({},d,{value:n.value,onChange:w,onSelectorListAllChange:C}))}return T(h,{children:[L("div",{style:{display:"none"},children:L(W,r({},d,{onSelectorListAllChange:C}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,s):p.map((function(e,n){return L(u,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(l.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=P.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=v((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(B,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(u,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(u,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(l.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=v((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=z(n.value)||D(n.value)||_(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(l.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(l.Item,r({},a,{name:n.name,children:L(G,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(E,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(E,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(l.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=q(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L(X,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L($,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=l.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,o=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,c=a.deleteOperateRender;return L(l.List,{name:r.name,children:function e(a,l){var f=l.add,p=l.remove;return T(O,{children:[t?t({tableRowIndex:r.tableRowIndex,add:f,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=o.find((function(e){return q(e.editable,r.tableRowIndex)}));var l=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:l,children:[m==null?void 0:m({add:f,remove:function e(){p(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(s,{children:[o.map((function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?L(ce,{deleteOperateRender:c,remove:function e(){p(a)},index:a}):undefined]}),u==null?void 0:u({add:f,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){p(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:f,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(l.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(c,{type:"link",danger:true,icon:L(M,{}),onClick:n.remove,children:"删除"})})};var fe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return T(h,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?L(l.Item,{hidden:true,name:n.hiddenField.dataIndex,children:L(f,{})}):null]})}}return L(te,{name:n.name})};var pe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","tooltip","title","tipsWrapperProps"];var ve=C((function(a,o){var d;var m=l.useFormInstance();var u=w([]);var s=v((function(){if(!a.columns)return[];return a.columns.map((function(e){var n=e.fieldConfig,l=e.renderMiddleware,o=e.tableChildrenColumnRender,d=e.tooltip,u=e.title,s=e.tipsWrapperProps,c=i(e,pe);var f=j(u)||typeof u==="string";var p;if(s&&f){if(typeof s==="string"){p=L(y,{tipType:"popover",popoverProps:{content:s},children:u})}else{p=L(y,r({},s,{children:u}))}}else if(d){p=L(R,{title:u,tooltip:d})}else{p=u}return r({title:p,onCell:function e(){var n;return{valign:((n=a.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},c,{render:function r(i,d,u){if(d["_isChildrenItem"]){if(o){return o(i,d,u)}return i}var s=[].concat(t(a.name),[d.name]);var c=e.dataIndex?[].concat(s,[e.dataIndex]):s;var f=l==null?void 0:l({name:c,tableRowIndex:d.name,operation:d.operation,tableRowName:s,index:u});if(f){return f}var p=typeof n==="function"?n({name:c,tableRowIndex:d.name,tableRowName:s,getTableRowData:function e(){return m.getFieldValue(s)}}):n;return L(fe,{name:e.dataIndex?[d.name,e.dataIndex]:[d.name],completeName:c,fieldConfig:p,tableRowIndex:d.name,hiddenField:e.hiddenField})}})}))}),[a.columns,a.name,(d=a.tableProps)==null?void 0:d.cellVerticalAlign]);var c=l.useWatch(a.name,m);x(o,(function(){return{getTableItemDataByFormListItemKey:function e(n){var r=u.current.find((function(e){return e.key===n}));if(r){return m.getFieldValue([].concat(t(a.name),[r.name]))}return undefined}}}));return L("div",{className:n("editable-table",{"et-empty-show-large":a.emptyShowSize==="large"}),children:L(l.List,{name:a.name,rules:a.rules,children:function n(i,t){u.current=i;return T(h,{children:[a.onTableBeforeRender?a.onTableBeforeRender(t,i.length):null,L(p,r({scroll:{x:"max-content"},pagination:false,rowKey:"key",size:"small"},a.tableProps,{dataSource:i.map((function(e){var n;var i=c==null||(n=c[e.name])==null?void 0:n.children;if(i){i.forEach((function(e){e["_isChildrenItem"]=true}))}return r({},e,{operation:t,children:i})})),columns:s})),a.onTableAfterRender?a.onTableAfterRender(t,i.length):L(I,{type:"dashed",hidden:a.hiddenFooterBtn,onClick:function e(){return t.add(a.getAddRowDefaultValues==null?void 0:a.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"})]})}})})}));export{ve as EditableTable};
|
|
26
26
|
//# sourceMappingURL=index.js.map
|