@flatbiz/antd 4.5.19 → 4.5.21
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/drag-editable-table-pro/index.js +11 -1
- package/esm/drag-editable-table-pro/index.js.map +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/editable-table-pro/index.js +10 -1
- package/esm/editable-table-pro/index.js.map +1 -1
- package/esm/fba-utils/index.js +1 -1
- package/esm/fba-utils/index.js.map +1 -1
- package/esm/index.js +2 -2
- package/esm/text-overflow/index.js +1 -1
- package/esm/text-overflow/index.js.map +1 -1
- package/index.d.ts +51 -8
- package/package.json +1 -1
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './../editable-table-pro/index.css';
|
|
3
|
+
import './../button-wrapper/index.css';
|
|
4
|
+
import './../config-provider-wrapper/index.css';
|
|
5
|
+
import './../fba-hooks/index.css';
|
|
6
|
+
import './../types/index.css';
|
|
7
|
+
import './../fba-utils/index.css';
|
|
8
|
+
import './../form-item-wrapper/index.css';
|
|
9
|
+
import './../pre-defined-class-name/index.css';
|
|
10
|
+
import './../text-symbol-wrapper/index.css';
|
|
11
|
+
import './../tips-wrapper/index.css';
|
|
12
|
+
import './../icon-wrapper/index.css';
|
|
3
13
|
import './index.css';
|
|
4
14
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{a as r,_ as
|
|
15
|
+
import{a as r,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as e,useSensor as o,PointerSensor as t,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as a}from"@dnd-kit/modifiers";import{useSortable as s,SortableContext as d,verticalListSortingStrategy as m,arrayMove as l}from"@dnd-kit/sortable";import{Form as p}from"antd";import{EditableTablePro as c}from"../editable-table-pro/index.js";import{createCtx as u}from"@wove/react/cjs/create-ctx";import f from"@ant-design/icons/es/icons/DragOutlined";import{CSS as v}from"@dnd-kit/utilities";import{isUndefinedOrNull as g,noop as j}from"@flatbiz/utils";import{createElement as y,Children as x,cloneElement as b}from"react";import{IconWrapper as h}from"../icon-wrapper/index.js";import{jsx as I}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"../button-wrapper/index.js";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"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"../form-item-wrapper/index.js";import"../pre-defined-class-name/index.js";import"../text-symbol-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-undefined";var k=u(),w=k[0],C=k[1];var _=["dragIcon"];var D=function e(o){var t=o.dragIcon,n=r(o,_);var a=n["data-row-key"];var d=s({id:a}),m=d.setActivatorNodeRef,l=d.listeners,p=d.setNodeRef,c=d.transform,u=d.transition,k=d.isDragging;if(g(a)){return I("tr",i({},n))}var w=i({},n.style,{transform:v.Transform.toString(c&&i({},c,{scaleY:1})),transition:u,cursor:"move"},k?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var C=t||I(f,{});return y("tr",i({},n,{ref:p,style:w,key:a}),x.map(o.children,(function(r){if(r.key==="__sort"){return b(r,{children:I("span",i({ref:m,style:{touchAction:"none",cursor:"move",display:"flex",alignItems:"center",justifyContent:"center"}},l,{children:I(h,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:C,onClick:j,size:"small"})}))})}return r})))};var F=function r(e){var o=w();return I(D,i({},e,{dragIcon:o.dragIcon}))};var N=["dragIcon","uidFieldKey","onDragChange","disabledDrag","formListCompleteName","formListName"];var P=function s(u){var f,v;var g=u.dragIcon,j=u.uidFieldKey,y=u.onDragChange,x=u.disabledDrag,b=u.formListCompleteName,h=u.formListName,k=r(u,N);var w=b||h;var _=p.useFormInstance();var D=p.useWatch(w,_);var P=e(o(t,{activationConstraint:{delay:0,tolerance:0}}));var L=function r(i){var e=i.active,o=i.over;if(e.id!==(o==null?void 0:o.id)){var t=D.findIndex((function(r){return r[j]===e.id}));var n=D.findIndex((function(r){return r[j]===(o==null?void 0:o.id)}));var a=l(D,t,n);_.setFields([{name:w,value:a}]);y==null?void 0:y(a,{activeId:e.id,overId:o==null?void 0:o.id,activeIndex:t,overIndex:n})}};var z=x?k.columns:[{dataIndex:"__sort",width:40,key:"__sort",align:"center"}].concat(k.columns||[]);return I(C,{value:{dragIcon:g,uidFieldKey:j},children:I(n,{sensors:P,modifiers:[a],onDragEnd:L,children:I(d,{items:(D==null?void 0:D.map((function(r){return r[j]})))||[],strategy:m,children:I(c,i({},k,{formListName:h,uidFieldKey:j,columns:z,tableProps:i({},k.tableProps,{components:i({},(f=k.tableProps)==null?void 0:f.components,{body:i({},(v=k.tableProps)==null||(v=v.components)==null?void 0:v.body,{row:x?undefined:F})})})}))})})})};export{P as DragEditableTablePro};
|
|
6
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-table-pro/context.ts","@flatbiz/antd/src/drag-editable-table-pro/table-tr-handle.tsx","@flatbiz/antd/src/drag-editable-table-pro/row.tsx","@flatbiz/antd/src/drag-editable-table-pro/drag.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: ReactElement;\n uidFieldKey: string;\n}>();\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { IconWrapper } from '@flatbiz/antd';\nimport { isUndefinedOrNull, noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, type ReactElement } from 'react';\n\ntype TableTrHandleProps = RowProps & {\n dragIcon?: ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'] as number;\n\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (isUndefinedOrNull(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: 'move',\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 = dragIcon || <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style} key={rowId}>\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\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n {...listeners}\n >\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 size=\"small\"\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return <TableTrHandle {...props} dragIcon={ctx.dragIcon} />;\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 TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableTablePro, EditableTableProProps } from '../editable-table-pro';\nimport { EditableTableProColumnItem } from '../editable-table-pro/type';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\nexport type DragEditableTableProProps = EditableTableProProps & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\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 overId?: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽编辑表格\n * ```\n * 1. 表格数据必须有唯一值字段,通过参数 uidFieldKey 告诉组件\n * 2. Table 参数 components.body.row 被组件内部使用\n * 3. 不存在多级的情况下,可使用DragEditableTablePro组件实现拖拽排序\n * 4. 存在多级的情况下,通过上移、下移操作按钮,调用 column.render.operation.move 方法实现同一级内移动\n * ```\n */\nexport const DragEditableTablePro = (props: DragEditableTableProProps) => {\n const {\n dragIcon,\n uidFieldKey,\n onDragChange,\n disabledDrag,\n formListCompleteName,\n formListName,\n ...otherProps\n } = props;\n\n const formListCompleteNameFt = formListCompleteName || formListName;\n\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(formListCompleteNameFt, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\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 form.setFields([\n {\n name: formListCompleteNameFt,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n overId: over?.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columns: EditableTableProColumnItem[] = disabledDrag\n ? otherProps.columns\n : [\n {\n dataIndex: '__sort',\n width: 40,\n key: '__sort',\n align: 'center',\n } as EditableTableProColumnItem,\n ].concat(otherProps.columns || []);\n\n return (\n <CtxProvider\n value={{\n dragIcon,\n uidFieldKey,\n }}\n >\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableTablePro\n {...otherProps}\n formListName={formListName}\n uidFieldKey={uidFieldKey}\n columns={columns}\n tableProps={{\n ...otherProps.tableProps,\n components: {\n ...otherProps.tableProps?.components,\n body: {\n ...otherProps.tableProps?.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n },\n }}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTrHandle","props","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","isUndefinedOrNull","_jsx","_extends","style","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_DragOutlined","_createElement","ref","key","Children","map","children","child","cloneElement","touchAction","display","alignItems","justifyContent","IconWrapper","padding","margin","color","icon","onClick","noop","size","Row","ctx","DragEditableTablePro","_otherProps$tableProp","_otherProps$tableProp2","uidFieldKey","onDragChange","disabledDrag","formListCompleteName","formListName","otherProps","formListCompleteNameFt","form","Form","useFormInstance","dataList","useWatch","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","name","value","activeId","overId","columns","dataIndex","width","align","concat","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","EditableTablePro","tableProps","components","body","row","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-table-pro/context.ts","@flatbiz/antd/src/drag-editable-table-pro/table-tr-handle.tsx","@flatbiz/antd/src/drag-editable-table-pro/row.tsx","@flatbiz/antd/src/drag-editable-table-pro/drag.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: ReactElement;\n uidFieldKey: string;\n}>();\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isUndefinedOrNull, noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype TableTrHandleProps = RowProps & {\n dragIcon?: ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'] as number;\n\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (isUndefinedOrNull(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: 'move',\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 = dragIcon || <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style} key={rowId}>\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\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n {...listeners}\n >\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 size=\"small\"\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return <TableTrHandle {...props} dragIcon={ctx.dragIcon} />;\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 TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableTablePro, EditableTableProProps } from '../editable-table-pro';\nimport { EditableTableProColumnItem } from '../editable-table-pro/type';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\nexport type DragEditableTableProProps = EditableTableProProps & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\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 overId?: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽编辑表格\n * ```\n * 1. 表格数据必须有唯一值字段,通过参数 uidFieldKey 告诉组件\n * 2. Table 参数 components.body.row 被组件内部使用\n * 3. 不存在多级的情况下,可使用DragEditableTablePro组件实现拖拽排序\n * 4. 存在多级的情况下,通过上移、下移操作按钮,调用 column.render.operation.move 方法实现同一级内移动\n * ```\n */\nexport const DragEditableTablePro = (props: DragEditableTableProProps) => {\n const {\n dragIcon,\n uidFieldKey,\n onDragChange,\n disabledDrag,\n formListCompleteName,\n formListName,\n ...otherProps\n } = props;\n\n const formListCompleteNameFt = formListCompleteName || formListName;\n\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(formListCompleteNameFt, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\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 form.setFields([\n {\n name: formListCompleteNameFt,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n overId: over?.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columns: EditableTableProColumnItem[] = disabledDrag\n ? otherProps.columns\n : [\n {\n dataIndex: '__sort',\n width: 40,\n key: '__sort',\n align: 'center',\n } as EditableTableProColumnItem,\n ].concat(otherProps.columns || []);\n\n return (\n <CtxProvider\n value={{\n dragIcon,\n uidFieldKey,\n }}\n >\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableTablePro\n {...otherProps}\n formListName={formListName}\n uidFieldKey={uidFieldKey}\n columns={columns}\n tableProps={{\n ...otherProps.tableProps,\n components: {\n ...otherProps.tableProps?.components,\n body: {\n ...otherProps.tableProps?.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n },\n }}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTrHandle","props","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","isUndefinedOrNull","_jsx","_extends","style","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_DragOutlined","_createElement","ref","key","Children","map","children","child","cloneElement","touchAction","display","alignItems","justifyContent","IconWrapper","padding","margin","color","icon","onClick","noop","size","Row","ctx","DragEditableTablePro","_otherProps$tableProp","_otherProps$tableProp2","uidFieldKey","onDragChange","disabledDrag","formListCompleteName","formListName","otherProps","formListCompleteNameFt","form","Form","useFormInstance","dataList","useWatch","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","name","value","activeId","overId","columns","dataIndex","width","align","concat","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","EditableTablePro","tableProps","components","body","row","undefined"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table/utils.ts","@flatbiz/antd/src/editable-table/form-item/checkbox-group.tsx","@flatbiz/antd/src/editable-table/form-item/date-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/date-range-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/input.tsx","@flatbiz/antd/src/editable-table/form-item/input-number.tsx","@flatbiz/antd/src/editable-table/form-item/radio-group.tsx","@flatbiz/antd/src/editable-table/form-item/selector-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/switch-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/text.tsx","@flatbiz/antd/src/editable-table/form-item/textarea.tsx","@flatbiz/antd/src/editable-table/form-item/upload-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/index.tsx","@flatbiz/antd/src/editable-table/form-list-item/form-list.tsx","@flatbiz/antd/src/editable-table/form-list-item/index.tsx","@flatbiz/antd/src/editable-table/editable-table.tsx"],"sourcesContent":["import { FieldSingleConfig } from './type';\n\nexport const getEditable = (editable: FieldSingleConfig['editable'], tableRowIndex: number) => {\n return typeof editable === 'boolean' ? editable : editable?.({ tableRowIndex });\n};\n","import { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form } from 'antd';\nimport { useMemo } from 'react';\nimport { tableCellRender } from '../../table-cell-render';\nimport { EditableCheckboxGroupConfig, EditableFormItemProps } from '../type';\n\ntype CheckboxGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst CheckboxGroupFormItemContent = (props: CheckboxGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableCheckboxGroupConfig).editableComptProps;\n const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem[],\n [editableComptProps.options],\n );\n const onChange = hooks.useCallbackRef((value) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value);\n });\n\n if (editable) {\n return <Checkbox.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n\n return (\n <span className=\"editable-checkbox-group-view\">\n {render ? render(props.value, options) : tableCellRender.selectorCell(options)(props.value)}\n </span>\n );\n};\n\nexport const CheckboxGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-checkbox-group-form-item', formItemProps?.className)}\n >\n <CheckboxGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { DatePickerWrapper } from '../../date-picker-wrapper';\nimport { EditableDatePickerWrapperConfig, EditableFormItemProps } from '../type';\n\nexport const DatePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-picker-wraper-form-item', formItemProps?.className)}\n >\n <DatePickerWrapper\n allowClear\n {...(editableConfig as EditableDatePickerWrapperConfig).editableComptProps}\n />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { DateRangePickerWrapper } from '../../date-range-picker-wrapper';\nimport { EditableDateRangePickerWrapperConfig, EditableFormItemProps } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableDateRangePickerWrapperConfig).editableComptProps;\n\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewLabel = useMemo(() => {\n const value = isArray(props.value) ? props.value : ([] as any[]);\n if (editable) return undefined;\n return value.join('~');\n }, [editable, props.value]);\n\n if (editable) {\n return (\n <DateRangePickerWrapper allowClear {...editableComptProps} value={props.value} onChange={onChange} />\n );\n }\n return <span className=\"editable-date-range-picker-view\">{render ? render(props.value) : viewLabel}</span>;\n};\n\nexport const DateRangePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-range-picker-wraper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputWrapper } from '../../input-wrapper';\nimport { EditableFormItemProps, EditableInputConfig } from '../type';\n\nexport const InputFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputWrapper allowClear {...(editableConfig as EditableInputConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form, InputNumber } from 'antd';\nimport { EditableFormItemProps, EditableInputNumberConfig } from '../type';\n\nexport const InputNumberFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-input-number-form-item', formItemProps?.className)}\n >\n <InputNumber {...(editableConfig as EditableInputNumberConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio } from 'antd';\nimport { useMemo } from 'react';\nimport { tableCellRender } from '../../table-cell-render';\nimport { EditableFormItemProps, EditableRadioGroupConfig } from '../type';\n\ntype RadioGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number;\n onChange?: (value: string | number) => void;\n};\n\nconst RadioGroupFormItemContent = (props: RadioGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableRadioGroupConfig).editableComptProps;\n const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem<string | number>[],\n [editableComptProps.options],\n );\n\n const onChange = hooks.useCallbackRef((e) => {\n props.onChange?.(e.target.value as string | number);\n editableComptProps.onChange?.(e);\n });\n\n if (editable) {\n return <Radio.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-radio-group-view\">\n {render ? render(props.value, options) : tableCellRender.selectorCell(options)(props.value)}\n </span>\n );\n};\n\nexport const RadioGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-radio-group-form-item', formItemProps?.className)}\n >\n <RadioGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { arrayField2LabelValue, LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { Fragment, useEffect, useState } from 'react';\nimport { SelectorWrapper } from '../../selector-wrapper';\nimport { EditableFormItemProps, EditableSelectWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSelectWrapperConfig).editableComptProps;\n const [selectorList, setSelectorList] = useState<LabelValueItem[]>([]);\n const [viewLabelList, setviewLabelList] = useState<LabelValueItem[]>([]);\n\n useEffect(() => {\n if (!editable) {\n const value = isArray(props.value) ? props.value : props.value === undefined ? [] : [props.value];\n if (selectorList.length === 0) {\n setviewLabelList(value.map((item) => ({ label: item as string, value: item })));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = selectorList.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: String(item), value: item });\n });\n setviewLabelList(returnList);\n }\n }, [editable, editableComptProps.fieldNames, props.value, selectorList]);\n\n const onSelectorListAllChange = hooks.useCallbackRef((dataList: TPlainObject[]) => {\n setSelectorList(arrayField2LabelValue(dataList || [], editableComptProps.fieldNames));\n });\n\n const onChange = hooks.useCallbackRef((value, selectList) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value, selectList);\n });\n\n if (editable) {\n return (\n <SelectorWrapper\n {...editableComptProps}\n value={props.value}\n onChange={onChange}\n onSelectorListAllChange={onSelectorListAllChange}\n />\n );\n }\n return (\n <Fragment>\n <div style={{ display: 'none' }}>\n <SelectorWrapper {...editableComptProps} onSelectorListAllChange={onSelectorListAllChange} />\n </div>\n <span className=\"editable-selector-view\">\n {render\n ? render(props.value, selectorList)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={'geekblue'}>\n {tag.label}\n </Tag>\n ))}\n </span>\n </Fragment>\n );\n};\n\nexport const SelectorWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-selector-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { SwitchWrapper } from '../../switch-wrapper';\nimport { EditableFormItemProps, EditableSwitchWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | boolean;\n onChange?: (value?: string | number | boolean) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSwitchWrapperConfig).editableComptProps;\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewData = useMemo(() => {\n const defaultCheckedText = editableComptProps.checkedChildren || '是';\n const defaultUnCheckedText = editableComptProps.unCheckedChildren || '否';\n\n return {\n checkedText: defaultCheckedText,\n unCheckedText: defaultUnCheckedText,\n };\n }, [editableComptProps.checkedChildren, editableComptProps.unCheckedChildren]);\n\n if (editable) {\n return <SwitchWrapper {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n if (render) {\n return <span className=\"editable-switch-wrapper-view\">{render(props.value)}</span>;\n }\n return (\n <span className=\"editable-switch-wrapper-view\">\n {editableComptProps.checkedValue == props.value ? (\n <Tag color=\"geekblue\" style={{ marginRight: 0 }}>\n {viewData.checkedText}\n </Tag>\n ) : (\n <Tag style={{ marginRight: 0 }}>{viewData.unCheckedText}</Tag>\n )}\n </span>\n );\n};\n\nexport const SwitchWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-switch-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, FieldSingleConfig } from '../type';\n\nconst FormItemTextContent = (props: {\n value?: string | number;\n name: EditableFormItemProps['name'];\n fieldConfig?: FieldSingleConfig;\n}) => {\n const value = useMemo(() => {\n if (props.fieldConfig?.render) return undefined;\n const isBaseData =\n isString(props.value) || isNumber(props.value) || isBoolean(props.value) || !props.value;\n if (!isBaseData) {\n console.warn(`Form.List name:【${props.name}】数据【${JSON.stringify(props.value)}】不能渲染在页面中`);\n }\n return isBaseData ? props.value : undefined;\n }, [props.fieldConfig?.render, props.name, props.value]);\n const viewText = props.fieldConfig?.render?.(props.value) || value;\n return <span>{viewText}</span>;\n};\n\nexport const TextFormItem = (props: { name: Array<number | string>; fieldConfig?: FieldSingleConfig }) => {\n return (\n <Form.Item noStyle name={props.name}>\n <FormItemTextContent name={props.name} fieldConfig={props.fieldConfig} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputTextAreaWrapper } from '../../input-text-area-wrapper';\nimport { EditableFormItemProps, EditableTextareaConfig } from '../type';\n\nexport const TextAreaFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputTextAreaWrapper {...(editableConfig as EditableTextareaConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { UploadWrapper } from '../../upload-wrapper';\nimport { EditableFileUploadConfig, EditableFormItemProps } from '../type';\n\nconst UploadWrapperFormItemContent = (\n props: EditableFormItemProps & { value?: TAny; onChange?: (value?: TAny) => void },\n) => {\n const { editableConfig, render, editable } = props.fieldConfig;\n const { children, ...otherProps } = (editableConfig as EditableFileUploadConfig).editableComptProps;\n if (editable) {\n return (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} onChange={props.onChange}>\n {children}\n </UploadWrapper>\n );\n }\n return (\n <div className=\"upload-wrapper-selector-view\">\n {render ? (\n render(props.value)\n ) : (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} disabled={true} />\n )}\n </div>\n );\n};\n\nexport const UploadWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-upload-wrapper-form-item', formItemProps?.className)}\n >\n <UploadWrapperFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { extend } from '@dimjs/utils';\nimport { FieldSingleConfig } from '../type';\nimport { getEditable } from '../utils';\nimport { CheckboxGroupFormItem } from './checkbox-group';\nimport { DatePickerWrapperFormItem } from './date-picker-wrapper';\nimport { DateRangePickerWrapperFormItem } from './date-range-picker-wrapper';\nimport { InputFormItem } from './input';\nimport { InputNumberFormItem } from './input-number';\nimport { RadioGroupFormItem } from './radio-group';\nimport { SelectorWrapperFormItem } from './selector-wrapper';\nimport { SwitchWrapperFormItem } from './switch-wrapper';\nimport { TextFormItem } from './text';\nimport { TextAreaFormItem } from './textarea';\nimport { UploadWrapperFormItem } from './upload-wrapper';\n\nexport type FormItemAdapterProps = {\n name: Array<number | string>;\n completeName: Array<number | string>;\n fieldConfig: FieldSingleConfig;\n tableRowIndex: number;\n};\n\nexport const FormItemAdapter = (props: FormItemAdapterProps) => {\n const { editableConfig, editable } = props.fieldConfig;\n const newEditable = getEditable(editable, props.tableRowIndex);\n const fieldConfig = extend({}, props.fieldConfig, { editable: newEditable });\n\n const commomProps = {\n name: props.name,\n fieldConfig,\n };\n\n if (editableConfig?.type === 'input' && newEditable) {\n return <InputFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'inputNumber' && newEditable) {\n return <InputNumberFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'textArea' && newEditable) {\n return <TextAreaFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'datePickerWrapper' && newEditable) {\n return <DatePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'dateRangePickerWrapper') {\n return <DateRangePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'selectorWrapper') {\n return <SelectorWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'checkboxGroup') {\n return <CheckboxGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'radioGroup') {\n return <RadioGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'uploadWrapper') {\n return <UploadWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'switchWrapper') {\n return <SwitchWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'custom') {\n return editableConfig.editableComptProps({\n name: props.name,\n editable: newEditable,\n completeName: props.completeName,\n tableRowIndex: props.tableRowIndex,\n });\n }\n\n return <TextFormItem {...commomProps} />;\n};\n","import { DeleteOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Button, Form, Space } from 'antd';\nimport { FormItemAdapter } from '../form-item';\nimport { FormListConfig } from '../type';\nimport { getEditable } from '../utils';\n\nexport type FormListProps = {\n name: Array<number | string>;\n formListConfig: FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n};\n\nexport const FormList = (props: FormListProps) => {\n const from = Form.useFormInstance();\n const {\n onFormListBeforeRender,\n editableConfigList,\n onFormListAfterRender,\n onFormListItemBeforeRender,\n onFormListItemAfterRender,\n deleteOperateRender,\n } = props.formListConfig;\n return (\n <Form.List name={props.name}>\n {(fields, { add, remove }) => (\n <>\n {onFormListBeforeRender\n ? onFormListBeforeRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n {fields.map((fieldChild, index) => {\n const hasEditable = editableConfigList.find((item) =>\n getEditable(item.editable, props.tableRowIndex),\n );\n const className = classNames(\n 'editable-inner-formlist-item',\n `editable-inner-formlist-item-${props.name[1]}`,\n { 'editable-inner-formlist-item_preview': !hasEditable },\n );\n return (\n <div key={index} className={className}>\n {onFormListItemBeforeRender?.({\n add,\n remove: () => {\n remove(index);\n },\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n <Space>\n {editableConfigList.map((fieldItem, index) => {\n return (\n <FormItemAdapter\n name={[fieldChild.name, fieldItem.fieldName]}\n fieldConfig={fieldItem}\n key={index}\n tableRowIndex={props.tableRowIndex}\n completeName={[...props.completeName, fieldChild.name]}\n />\n );\n })}\n {hasEditable ? (\n <DeleteFormListItem\n deleteOperateRender={deleteOperateRender}\n remove={() => {\n remove(index);\n }}\n index={index}\n />\n ) : undefined}\n </Space>\n {onFormListItemAfterRender?.({\n add,\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n remove: () => {\n remove(index);\n },\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n </div>\n );\n })}\n {onFormListAfterRender\n ? onFormListAfterRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n </>\n )}\n </Form.List>\n );\n};\n\nconst DeleteFormListItem = (props: {\n deleteOperateRender: FormListConfig['deleteOperateRender'];\n remove: () => void;\n index: number;\n}) => {\n return (\n <Form.Item>\n {props.deleteOperateRender ? (\n props.deleteOperateRender({ remove: props.remove, formListItemIndex: props.index })\n ) : (\n <Button type=\"link\" danger icon={<DeleteOutlined />} onClick={props.remove}>\n 删除\n </Button>\n )}\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { FormItemHidden } from '../../form-item-hidden';\nimport { FormItemAdapter } from '../form-item';\nimport { TextFormItem } from '../form-item/text';\nimport { FieldSingleConfig, FormListConfig } from '../type';\nimport { FormList } from './form-list';\n\nexport type FormListItemProps = {\n name: Array<number | string>;\n fieldConfig?: FieldSingleConfig | FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n hiddenFieldList?: { dataIndex: string }[];\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n if (isArray(props.fieldConfig['editableConfigList'])) {\n const formListConfig = props.fieldConfig as FormListConfig;\n return (\n <FormList\n name={props.name}\n completeName={props.completeName}\n formListConfig={formListConfig}\n tableRowIndex={props.tableRowIndex}\n />\n );\n } else {\n return (\n <Fragment>\n <FormItemAdapter\n name={props.name}\n fieldConfig={props.fieldConfig as FieldSingleConfig}\n tableRowIndex={props.tableRowIndex}\n completeName={props.completeName}\n />\n {props.hiddenFieldList?.map((item, index) => {\n return <FormItemHidden key={index} name={[props.tableRowIndex, ...toArray(item.dataIndex)]} />;\n })}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Form, FormListOperation, message, Table, TableProps } from 'antd';\nimport { FormListFieldData, FormListProps } from 'antd/es/form';\nimport { ColumnsType } from 'antd/es/table';\nimport { CSSProperties, isValidElement, ReactElement, useEffect, useMemo, useRef } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper, TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\nimport { FormListItem } from './form-list-item';\nimport './style.less';\nimport { EditableTableName, EditableTableRecordType, FieldSingleConfig, FormListConfig } from './type';\n\ntype fieldConfigFunctionParams = {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n getTableRowData: () => TPlainObject;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型、ReactElement有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n // tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?:\n | {\n dataIndex: string;\n }\n | {\n dataIndex: string;\n }[];\n /**\n * 渲染中间件,如果renderMiddleware返回值为ReactElement格式,则会终止后续逻辑,fieldConfig配置将失效\n * ```\n * 1. tableRowIndex: 当前row的索引值\n * 2. name: 当前table单元格的form.item的name值\n * 3. operation Form.List的操作函数\n * 4. 对 table children column渲染无效\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n index: number;\n getTableRowData: () => TPlainObject;\n }) => ReactElement | null;\n /** table datasource children column 自定义渲染 */\n tableChildrenColumnRender?: (value: TAny, record: TPlainObject, index: number) => ReactElement | null;\n /** 为表格header中的字段添加必填标识,无验证拦截功能 */\n required?: boolean;\n};\n\nexport type EditableTableProps = {\n /** FormList name属性 */\n name: EditableTableName;\n\n /**\n * 当前Edittable处在formList内部时(必填),完整formItem的name\n * ```\n * 例如 处在formList内部\n * 1. name=[0,dataList]\n * 2. completeName=[xxxList, 0, dataList]\n * ```\n */\n completeName?: Array<string | number>;\n /**\n * 表格行数据,唯一值字段Key\n * ```\n * 1. 如果数据中没有可前端添加key\n * 2. 有问题可咨询 xg15472\n * ```\n */\n uidFieldKey: string;\n /**\n * ```\n * antd table属性\n * 1. 新增cellVerticalAlign,单元格竖直方向对齐方式,设置table column onCell属性后失效\n * ```\n */\n tableProps?: Omit<TableProps<EditableTableRecordType>, 'dataSource' | 'columns' | 'rowKey'> & {\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n columns: EditableTableColumn[];\n onTableBeforeRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /**\n * 设置后,将覆盖底部`新增`按钮\n */\n onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n\n /** 新增行默认值,自定义onTableAfterRender后失效 */\n getAddRowDefaultValues?: () => TPlainObject;\n\n /** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */\n hiddenFooterBtn?: boolean;\n /**\n * Form.List rules\n * ```\n rules={[\n {\n validator: async (_, names) => {\n if (!names || names.length < 2) {\n return Promise.reject(new Error('At least 2 passengers'));\n }\n },\n },\n ]}\n * ```\n */\n rules?: FormListProps['rules'];\n /** 空效果显示尺寸,默认值:small */\n emptyShowSize?: 'small' | 'large';\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * 可编辑表格(通过FormList实现)\n * @deprecated 已过期,请使用 DragEditableTable 组件\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * ```\n * 1. 表格数据必须要有唯一值字段,通过属性uidFieldKey设置\n * 2. 通过 tableProps 设置Table属性,table size默认:small\n * 3. Table children column 不可编辑\n * 4. 当存在折叠children数据时,组件会在children中内置_isChildrenItem字段\n * 5. 可通过tableChildrenColumnRender自定义渲染 table children column 显示\n * 6. 4.5.0版本移除 ref.getTableItemDataByFormListItemKey 功能,可选择表格参考(https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable2)\n * ```\n */\nexport const EditableTable = (props: EditableTableProps) => {\n const form = Form.useFormInstance();\n\n const formListFieldsRef = useRef<FormListFieldData[]>([]);\n\n const columnsIncludeUidKey = useMemo(() => {\n const hasUid = props.columns.find((item) => item['dataIndex'] === props.uidFieldKey);\n return !!hasUid;\n }, [props.columns, props.uidFieldKey]);\n\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const {\n fieldConfig,\n renderMiddleware,\n tableChildrenColumnRender,\n // tooltip,\n title,\n tipsWrapperProps,\n required,\n align,\n ...otherColumnItem\n } = columnItem;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string;\n if (tipsWrapperProps && support) {\n if (typeof tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>;\n }\n }\n // else if (tooltip) {\n // titleRender = <TableTitleTooltip title={title as string} tooltip={tooltip} />;\n // }\n else {\n titleRender = title as string;\n }\n return {\n title: required ? (\n <TextSymbolWrapper\n style={{ marginLeft: align === 'center' ? undefined : 10 }}\n text={titleRender}\n position=\"before\"\n symbolType=\"required\"\n />\n ) : (\n titleRender\n ),\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (value, record, index) => {\n if (record['_isChildrenItem']) {\n if (tableChildrenColumnRender) {\n return tableChildrenColumnRender(value, record, index);\n }\n return value;\n }\n const tableRowName = [...toArray<string | number>(props.name as TAny), record.name];\n const completeName = columnItem.dataIndex ? [...tableRowName, columnItem.dataIndex] : tableRowName;\n const customRender = renderMiddleware?.({\n name: completeName,\n tableRowIndex: record.name,\n operation: record.operation,\n tableRowName,\n index,\n getTableRowData: () => {\n if (props.completeName) {\n return form.getFieldValue([...props.completeName, record.name]);\n }\n return form.getFieldValue(tableRowName);\n },\n });\n if (customRender) {\n return customRender;\n }\n\n const fieldConfigActual =\n typeof fieldConfig === 'function'\n ? fieldConfig({\n name: completeName,\n tableRowIndex: record.name,\n tableRowName,\n getTableRowData: () => {\n if (props.completeName) {\n return form.getFieldValue([...props.completeName, record.name]);\n }\n return form.getFieldValue(tableRowName);\n },\n })\n : fieldConfig;\n let hiddenFieldList = toArray<{ dataIndex: string }>(columnItem.hiddenField);\n if (!columnsIncludeUidKey && index === 0) {\n hiddenFieldList = hiddenFieldList.concat([{ dataIndex: props.uidFieldKey }]);\n }\n return (\n <FormListItem\n name={columnItem.dataIndex ? [record.name, columnItem.dataIndex] : [record.name]}\n completeName={completeName}\n fieldConfig={fieldConfigActual}\n tableRowIndex={record.name}\n hiddenFieldList={hiddenFieldList}\n />\n );\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [\n props.columns,\n props.tableProps,\n props.name,\n props.completeName,\n props.uidFieldKey,\n columnsIncludeUidKey,\n form,\n ]);\n\n const formListDataSource = Form.useWatch(props.completeName ? props.completeName : props.name, form);\n\n useEffect(() => {\n const names = toArray<string>(props.name);\n if (/^\\d+$/.test(`${names?.[0]}`) && props.completeName === undefined) {\n void message.error('当前Editable处在FormList内部,必须赋值completeName参数');\n }\n }, [props.completeName, props.name]);\n\n return (\n <div\n className={classNames(\n 'editable-table',\n { 'et-empty-show-large': props.emptyShowSize === 'large' },\n props.className,\n )}\n style={props.style}\n >\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation, { errors }) => {\n formListFieldsRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n size=\"small\"\n {...props.tableProps}\n rowKey={(record) => {\n const completeName = props.completeName || [];\n const names = toArray(props.name);\n\n const prevName = completeName.length ? completeName : names;\n let target;\n if (record['_isChildrenItem']) {\n target = form.getFieldValue([\n ...prevName,\n record['_parentIndex'],\n 'children',\n record['_index'],\n ]);\n } else {\n target = form.getFieldValue([...prevName, record['_index']]);\n }\n const key = target?.[props.uidFieldKey];\n if (isUndefinedOrNull(key)) {\n console.warn(\n `EditableTable 通过入参uidFieldKey:${props.uidFieldKey},未获取到表格行唯一值数据`,\n );\n }\n return key;\n }}\n dataSource={fields.map((item, index) => {\n const children = formListDataSource?.[item.name]?.children as TPlainObject[] | undefined;\n if (children) {\n children.forEach((item, itemIndex) => {\n item['_isChildrenItem'] = true;\n item['_parentIndex'] = index;\n item['_index'] = itemIndex;\n });\n }\n return {\n ...item,\n _index: index,\n operation: formListOperation,\n children,\n };\n })}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <ButtonWrapper\n type=\"dashed\"\n hidden={props.hiddenFooterBtn}\n onClick={() => formListOperation.add(props.getAddRowDefaultValues?.())}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </ButtonWrapper>\n )}\n <Form.ErrorList\n errors={\n errors.length\n ? [\n <div\n style={{\n color: '#ff4d4f',\n padding: '5px',\n }}\n key=\"0\"\n >\n {errors}\n </div>,\n ]\n : undefined\n }\n />\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","options","useMemo","onChange","_hooks","useCallbackRef","value","_jsx","Checkbox","Group","_extends","className","children","tableCellRender","selectorCell","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","_isArray","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","e","target","Radio","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","viewLabelList","setviewLabelList","useEffect","length","map","item","label","returnList","forEach","find","temp","push","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","tag","index","Tag","color","SelectorWrapperFormItem","viewData","defaultCheckedText","checkedChildren","defaultUnCheckedText","unCheckedChildren","checkedText","unCheckedText","SwitchWrapper","checkedValue","marginRight","SwitchWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","TextFormItem","noStyle","TextAreaFormItem","InputTextAreaWrapper","UploadWrapperFormItemContent","_editableComptProps","otherProps","_objectWithoutPropertiesLoose","_excluded","UploadWrapper","listType","disabled","UploadWrapperFormItem","FormItemAdapter","newEditable","_extend","commomProps","type","completeName","FormList","from","useFormInstance","_props$formListConfig","formListConfig","onFormListBeforeRender","editableConfigList","onFormListAfterRender","onFormListItemBeforeRender","onFormListItemAfterRender","deleteOperateRender","List","fields","_ref","add","remove","_Fragment","getFieldValue","fieldChild","hasEditable","formListItemIndex","concat","Space","fieldItem","fieldName","DeleteFormListItem","Button","danger","icon","_DeleteOutlined","onClick","FormListItem","_props$hiddenFieldLis","hiddenFieldList","FormItemHidden","toArray","dataIndex","EditableTable","form","formListFieldsRef","useRef","columnsIncludeUidKey","hasUid","columns","uidFieldKey","columnItem","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align","otherColumnItem","support","isValidElement","titleRender","TipsWrapper","tipType","popoverProps","content","TextSymbolWrapper","marginLeft","text","position","symbolType","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","record","tableRowName","customRender","operation","getTableRowData","fieldConfigActual","hiddenField","formListDataSource","useWatch","names","test","message","error","emptyShowSize","rules","formListOperation","errors","current","borderRadius","border","onTableBeforeRender","Table","scroll","x","pagination","size","rowKey","_target","prevName","key","isUndefinedOrNull","dataSource","_formListDataSource$i","itemIndex","_index","onTableAfterRender","ButtonWrapper","hidden","hiddenFooterBtn","getAddRowDefaultValues","block","_PlusOutlined","marginTop","ErrorList","padding"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table/utils.ts","@flatbiz/antd/src/editable-table/form-item/checkbox-group.tsx","@flatbiz/antd/src/editable-table/form-item/date-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/date-range-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/input.tsx","@flatbiz/antd/src/editable-table/form-item/input-number.tsx","@flatbiz/antd/src/editable-table/form-item/radio-group.tsx","@flatbiz/antd/src/editable-table/form-item/selector-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/switch-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/text.tsx","@flatbiz/antd/src/editable-table/form-item/textarea.tsx","@flatbiz/antd/src/editable-table/form-item/upload-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/index.tsx","@flatbiz/antd/src/editable-table/form-list-item/form-list.tsx","@flatbiz/antd/src/editable-table/form-list-item/index.tsx","@flatbiz/antd/src/editable-table/editable-table.tsx"],"sourcesContent":["import { FieldSingleConfig } from './type';\n\nexport const getEditable = (editable: FieldSingleConfig['editable'], tableRowIndex: number) => {\n return typeof editable === 'boolean' ? editable : editable?.({ tableRowIndex });\n};\n","import { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form } from 'antd';\nimport { useMemo } from 'react';\nimport { tableCellRender } from '../../table-cell-render';\nimport { EditableCheckboxGroupConfig, EditableFormItemProps } from '../type';\n\ntype CheckboxGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst CheckboxGroupFormItemContent = (props: CheckboxGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableCheckboxGroupConfig).editableComptProps;\n const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem[],\n [editableComptProps.options],\n );\n const onChange = hooks.useCallbackRef((value) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value);\n });\n\n if (editable) {\n return <Checkbox.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n\n return (\n <span className=\"editable-checkbox-group-view\">\n {render ? render(props.value, options) : tableCellRender.selectorCell(options)(props.value)}\n </span>\n );\n};\n\nexport const CheckboxGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-checkbox-group-form-item', formItemProps?.className)}\n >\n <CheckboxGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { DatePickerWrapper } from '../../date-picker-wrapper';\nimport { EditableDatePickerWrapperConfig, EditableFormItemProps } from '../type';\n\nexport const DatePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-picker-wraper-form-item', formItemProps?.className)}\n >\n <DatePickerWrapper\n allowClear\n {...(editableConfig as EditableDatePickerWrapperConfig).editableComptProps}\n />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { DateRangePickerWrapper } from '../../date-range-picker-wrapper';\nimport { EditableDateRangePickerWrapperConfig, EditableFormItemProps } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableDateRangePickerWrapperConfig).editableComptProps;\n\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewLabel = useMemo(() => {\n const value = isArray(props.value) ? props.value : ([] as any[]);\n if (editable) return undefined;\n return value.join('~');\n }, [editable, props.value]);\n\n if (editable) {\n return (\n <DateRangePickerWrapper allowClear {...editableComptProps} value={props.value} onChange={onChange} />\n );\n }\n return <span className=\"editable-date-range-picker-view\">{render ? render(props.value) : viewLabel}</span>;\n};\n\nexport const DateRangePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-range-picker-wraper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputWrapper } from '../../input-wrapper';\nimport { EditableFormItemProps, EditableInputConfig } from '../type';\n\nexport const InputFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputWrapper allowClear {...(editableConfig as EditableInputConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form, InputNumber } from 'antd';\nimport { EditableFormItemProps, EditableInputNumberConfig } from '../type';\n\nexport const InputNumberFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-input-number-form-item', formItemProps?.className)}\n >\n <InputNumber {...(editableConfig as EditableInputNumberConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio } from 'antd';\nimport { useMemo } from 'react';\nimport { tableCellRender } from '../../table-cell-render';\nimport { EditableFormItemProps, EditableRadioGroupConfig } from '../type';\n\ntype RadioGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number;\n onChange?: (value: string | number) => void;\n};\n\nconst RadioGroupFormItemContent = (props: RadioGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableRadioGroupConfig).editableComptProps;\n const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem<string | number>[],\n [editableComptProps.options],\n );\n\n const onChange = hooks.useCallbackRef((e) => {\n props.onChange?.(e.target.value as string | number);\n editableComptProps.onChange?.(e);\n });\n\n if (editable) {\n return <Radio.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-radio-group-view\">\n {render ? render(props.value, options) : tableCellRender.selectorCell(options)(props.value)}\n </span>\n );\n};\n\nexport const RadioGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-radio-group-form-item', formItemProps?.className)}\n >\n <RadioGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { arrayField2LabelValue, LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { Fragment, useEffect, useState } from 'react';\nimport { SelectorWrapper } from '../../selector-wrapper';\nimport { EditableFormItemProps, EditableSelectWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSelectWrapperConfig).editableComptProps;\n const [selectorList, setSelectorList] = useState<LabelValueItem[]>([]);\n const [viewLabelList, setviewLabelList] = useState<LabelValueItem[]>([]);\n\n useEffect(() => {\n if (!editable) {\n const value = isArray(props.value) ? props.value : props.value === undefined ? [] : [props.value];\n if (selectorList.length === 0) {\n setviewLabelList(value.map((item) => ({ label: item as string, value: item })));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = selectorList.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: String(item), value: item });\n });\n setviewLabelList(returnList);\n }\n }, [editable, editableComptProps.fieldNames, props.value, selectorList]);\n\n const onSelectorListAllChange = hooks.useCallbackRef((dataList: TPlainObject[]) => {\n setSelectorList(arrayField2LabelValue(dataList || [], editableComptProps.fieldNames));\n });\n\n const onChange = hooks.useCallbackRef((value, selectList) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value, selectList);\n });\n\n if (editable) {\n return (\n <SelectorWrapper\n {...editableComptProps}\n value={props.value}\n onChange={onChange}\n onSelectorListAllChange={onSelectorListAllChange}\n />\n );\n }\n return (\n <Fragment>\n <div style={{ display: 'none' }}>\n <SelectorWrapper {...editableComptProps} onSelectorListAllChange={onSelectorListAllChange} />\n </div>\n <span className=\"editable-selector-view\">\n {render\n ? render(props.value, selectorList)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={'geekblue'}>\n {tag.label}\n </Tag>\n ))}\n </span>\n </Fragment>\n );\n};\n\nexport const SelectorWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-selector-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { SwitchWrapper } from '../../switch-wrapper';\nimport { EditableFormItemProps, EditableSwitchWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | boolean;\n onChange?: (value?: string | number | boolean) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSwitchWrapperConfig).editableComptProps;\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewData = useMemo(() => {\n const defaultCheckedText = editableComptProps.checkedChildren || '是';\n const defaultUnCheckedText = editableComptProps.unCheckedChildren || '否';\n\n return {\n checkedText: defaultCheckedText,\n unCheckedText: defaultUnCheckedText,\n };\n }, [editableComptProps.checkedChildren, editableComptProps.unCheckedChildren]);\n\n if (editable) {\n return <SwitchWrapper {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n if (render) {\n return <span className=\"editable-switch-wrapper-view\">{render(props.value)}</span>;\n }\n return (\n <span className=\"editable-switch-wrapper-view\">\n {editableComptProps.checkedValue == props.value ? (\n <Tag color=\"geekblue\" style={{ marginRight: 0 }}>\n {viewData.checkedText}\n </Tag>\n ) : (\n <Tag style={{ marginRight: 0 }}>{viewData.unCheckedText}</Tag>\n )}\n </span>\n );\n};\n\nexport const SwitchWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-switch-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, FieldSingleConfig } from '../type';\n\nconst FormItemTextContent = (props: {\n value?: string | number;\n name: EditableFormItemProps['name'];\n fieldConfig?: FieldSingleConfig;\n}) => {\n const value = useMemo(() => {\n if (props.fieldConfig?.render) return undefined;\n const isBaseData =\n isString(props.value) || isNumber(props.value) || isBoolean(props.value) || !props.value;\n if (!isBaseData) {\n console.warn(`Form.List name:【${props.name}】数据【${JSON.stringify(props.value)}】不能渲染在页面中`);\n }\n return isBaseData ? props.value : undefined;\n }, [props.fieldConfig?.render, props.name, props.value]);\n const viewText = props.fieldConfig?.render?.(props.value) || value;\n return <span>{viewText}</span>;\n};\n\nexport const TextFormItem = (props: { name: Array<number | string>; fieldConfig?: FieldSingleConfig }) => {\n return (\n <Form.Item noStyle name={props.name}>\n <FormItemTextContent name={props.name} fieldConfig={props.fieldConfig} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputTextAreaWrapper } from '../../input-text-area-wrapper';\nimport { EditableFormItemProps, EditableTextareaConfig } from '../type';\n\nexport const TextAreaFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputTextAreaWrapper {...(editableConfig as EditableTextareaConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { UploadWrapper } from '../../upload-wrapper';\nimport { EditableFileUploadConfig, EditableFormItemProps } from '../type';\n\nconst UploadWrapperFormItemContent = (\n props: EditableFormItemProps & { value?: TAny; onChange?: (value?: TAny) => void },\n) => {\n const { editableConfig, render, editable } = props.fieldConfig;\n const { children, ...otherProps } = (editableConfig as EditableFileUploadConfig).editableComptProps;\n if (editable) {\n return (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} onChange={props.onChange}>\n {children}\n </UploadWrapper>\n );\n }\n return (\n <div className=\"upload-wrapper-selector-view\">\n {render ? (\n render(props.value)\n ) : (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} disabled={true} />\n )}\n </div>\n );\n};\n\nexport const UploadWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-upload-wrapper-form-item', formItemProps?.className)}\n >\n <UploadWrapperFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { extend } from '@dimjs/utils';\nimport { FieldSingleConfig } from '../type';\nimport { getEditable } from '../utils';\nimport { CheckboxGroupFormItem } from './checkbox-group';\nimport { DatePickerWrapperFormItem } from './date-picker-wrapper';\nimport { DateRangePickerWrapperFormItem } from './date-range-picker-wrapper';\nimport { InputFormItem } from './input';\nimport { InputNumberFormItem } from './input-number';\nimport { RadioGroupFormItem } from './radio-group';\nimport { SelectorWrapperFormItem } from './selector-wrapper';\nimport { SwitchWrapperFormItem } from './switch-wrapper';\nimport { TextFormItem } from './text';\nimport { TextAreaFormItem } from './textarea';\nimport { UploadWrapperFormItem } from './upload-wrapper';\n\nexport type FormItemAdapterProps = {\n name: Array<number | string>;\n completeName: Array<number | string>;\n fieldConfig: FieldSingleConfig;\n tableRowIndex: number;\n};\n\nexport const FormItemAdapter = (props: FormItemAdapterProps) => {\n const { editableConfig, editable } = props.fieldConfig;\n const newEditable = getEditable(editable, props.tableRowIndex);\n const fieldConfig = extend({}, props.fieldConfig, { editable: newEditable });\n\n const commomProps = {\n name: props.name,\n fieldConfig,\n };\n\n if (editableConfig?.type === 'input' && newEditable) {\n return <InputFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'inputNumber' && newEditable) {\n return <InputNumberFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'textArea' && newEditable) {\n return <TextAreaFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'datePickerWrapper' && newEditable) {\n return <DatePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'dateRangePickerWrapper') {\n return <DateRangePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'selectorWrapper') {\n return <SelectorWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'checkboxGroup') {\n return <CheckboxGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'radioGroup') {\n return <RadioGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'uploadWrapper') {\n return <UploadWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'switchWrapper') {\n return <SwitchWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'custom') {\n return editableConfig.editableComptProps({\n name: props.name,\n editable: newEditable,\n completeName: props.completeName,\n tableRowIndex: props.tableRowIndex,\n });\n }\n\n return <TextFormItem {...commomProps} />;\n};\n","import { DeleteOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Button, Form, Space } from 'antd';\nimport { FormItemAdapter } from '../form-item';\nimport { FormListConfig } from '../type';\nimport { getEditable } from '../utils';\n\nexport type FormListProps = {\n name: Array<number | string>;\n formListConfig: FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n};\n\nexport const FormList = (props: FormListProps) => {\n const from = Form.useFormInstance();\n const {\n onFormListBeforeRender,\n editableConfigList,\n onFormListAfterRender,\n onFormListItemBeforeRender,\n onFormListItemAfterRender,\n deleteOperateRender,\n } = props.formListConfig;\n return (\n <Form.List name={props.name}>\n {(fields, { add, remove }) => (\n <>\n {onFormListBeforeRender\n ? onFormListBeforeRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n {fields.map((fieldChild, index) => {\n const hasEditable = editableConfigList.find((item) =>\n getEditable(item.editable, props.tableRowIndex),\n );\n const className = classNames(\n 'editable-inner-formlist-item',\n `editable-inner-formlist-item-${props.name[1]}`,\n { 'editable-inner-formlist-item_preview': !hasEditable },\n );\n return (\n <div key={index} className={className}>\n {onFormListItemBeforeRender?.({\n add,\n remove: () => {\n remove(index);\n },\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n <Space>\n {editableConfigList.map((fieldItem, index) => {\n return (\n <FormItemAdapter\n name={[fieldChild.name, fieldItem.fieldName]}\n fieldConfig={fieldItem}\n key={index}\n tableRowIndex={props.tableRowIndex}\n completeName={[...props.completeName, fieldChild.name]}\n />\n );\n })}\n {hasEditable ? (\n <DeleteFormListItem\n deleteOperateRender={deleteOperateRender}\n remove={() => {\n remove(index);\n }}\n index={index}\n />\n ) : undefined}\n </Space>\n {onFormListItemAfterRender?.({\n add,\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n remove: () => {\n remove(index);\n },\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n </div>\n );\n })}\n {onFormListAfterRender\n ? onFormListAfterRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n </>\n )}\n </Form.List>\n );\n};\n\nconst DeleteFormListItem = (props: {\n deleteOperateRender: FormListConfig['deleteOperateRender'];\n remove: () => void;\n index: number;\n}) => {\n return (\n <Form.Item>\n {props.deleteOperateRender ? (\n props.deleteOperateRender({ remove: props.remove, formListItemIndex: props.index })\n ) : (\n <Button type=\"link\" danger icon={<DeleteOutlined />} onClick={props.remove}>\n 删除\n </Button>\n )}\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { FormItemHidden } from '../../form-item-hidden';\nimport { FormItemAdapter } from '../form-item';\nimport { TextFormItem } from '../form-item/text';\nimport { FieldSingleConfig, FormListConfig } from '../type';\nimport { FormList } from './form-list';\n\nexport type FormListItemProps = {\n name: Array<number | string>;\n fieldConfig?: FieldSingleConfig | FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n hiddenFieldList?: { dataIndex: string }[];\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n if (isArray(props.fieldConfig['editableConfigList'])) {\n const formListConfig = props.fieldConfig as FormListConfig;\n return (\n <FormList\n name={props.name}\n completeName={props.completeName}\n formListConfig={formListConfig}\n tableRowIndex={props.tableRowIndex}\n />\n );\n } else {\n return (\n <Fragment>\n <FormItemAdapter\n name={props.name}\n fieldConfig={props.fieldConfig as FieldSingleConfig}\n tableRowIndex={props.tableRowIndex}\n completeName={props.completeName}\n />\n {props.hiddenFieldList?.map((item, index) => {\n return <FormItemHidden key={index} name={[props.tableRowIndex, ...toArray(item.dataIndex)]} />;\n })}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Form, FormListOperation, message, Table, TableProps } from 'antd';\nimport { FormListFieldData, FormListProps } from 'antd/es/form';\nimport { ColumnsType } from 'antd/es/table';\nimport { CSSProperties, isValidElement, ReactElement, useEffect, useMemo, useRef } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper, TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\nimport { FormListItem } from './form-list-item';\nimport './style.less';\nimport { EditableTableName, EditableTableRecordType, FieldSingleConfig, FormListConfig } from './type';\n\ntype fieldConfigFunctionParams = {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n getTableRowData: () => TPlainObject;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型、ReactElement有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n // tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?:\n | {\n dataIndex: string;\n }\n | {\n dataIndex: string;\n }[];\n /**\n * 渲染中间件,如果renderMiddleware返回值为ReactElement格式,则会终止后续逻辑,fieldConfig配置将失效\n * ```\n * 1. tableRowIndex: 当前row的索引值\n * 2. name: 当前table单元格的form.item的name值\n * 3. operation Form.List的操作函数\n * 4. 对 table children column渲染无效\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n index: number;\n getTableRowData: () => TPlainObject;\n }) => ReactElement | null;\n /** table datasource children column 自定义渲染 */\n tableChildrenColumnRender?: (value: TAny, record: TPlainObject, index: number) => ReactElement | null;\n /** 为表格header中的字段添加必填标识,无验证拦截功能 */\n required?: boolean;\n};\n\nexport type EditableTableProps = {\n /** FormList name属性 */\n name: EditableTableName;\n\n /**\n * 当前Edittable处在formList内部时(必填),完整formItem的name\n * ```\n * 例如 处在formList内部\n * 1. name=[0,dataList]\n * 2. completeName=[xxxList, 0, dataList]\n * ```\n */\n completeName?: Array<string | number>;\n /**\n * 表格行数据,唯一值字段Key\n * ```\n * 1. 如果数据中没有可前端添加key\n * 2. 有问题可咨询 xg15472\n * ```\n */\n uidFieldKey: string;\n /**\n * ```\n * antd table属性\n * 1. 新增cellVerticalAlign,单元格竖直方向对齐方式,设置table column onCell属性后失效\n * ```\n */\n tableProps?: Omit<TableProps<EditableTableRecordType>, 'dataSource' | 'columns' | 'rowKey'> & {\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n columns: EditableTableColumn[];\n onTableBeforeRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /**\n * 设置后,将覆盖底部`新增`按钮\n */\n onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n\n /** 新增行默认值,自定义onTableAfterRender后失效 */\n getAddRowDefaultValues?: () => TPlainObject;\n\n /** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */\n hiddenFooterBtn?: boolean;\n /**\n * Form.List rules\n * ```\n rules={[\n {\n validator: async (_, names) => {\n if (!names || names.length < 2) {\n return Promise.reject(new Error('At least 2 passengers'));\n }\n },\n },\n ]}\n * ```\n */\n rules?: FormListProps['rules'];\n /** 空效果显示尺寸,默认值:small */\n emptyShowSize?: 'small' | 'large';\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * 可编辑表格(通过FormList实现)\n * @deprecated 已过期,请使用 EditableTablePro 组件\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * ```\n * 1. 表格数据必须要有唯一值字段,通过属性uidFieldKey设置\n * 2. 通过 tableProps 设置Table属性,table size默认:small\n * 3. Table children column 不可编辑\n * 4. 当存在折叠children数据时,组件会在children中内置_isChildrenItem字段\n * 5. 可通过tableChildrenColumnRender自定义渲染 table children column 显示\n * 6. 4.5.0版本移除 ref.getTableItemDataByFormListItemKey 功能,可选择表格参考(https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable2)\n * ```\n */\nexport const EditableTable = (props: EditableTableProps) => {\n const form = Form.useFormInstance();\n\n const formListFieldsRef = useRef<FormListFieldData[]>([]);\n\n const columnsIncludeUidKey = useMemo(() => {\n const hasUid = props.columns.find((item) => item['dataIndex'] === props.uidFieldKey);\n return !!hasUid;\n }, [props.columns, props.uidFieldKey]);\n\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const {\n fieldConfig,\n renderMiddleware,\n tableChildrenColumnRender,\n // tooltip,\n title,\n tipsWrapperProps,\n required,\n align,\n ...otherColumnItem\n } = columnItem;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string;\n if (tipsWrapperProps && support) {\n if (typeof tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>;\n }\n }\n // else if (tooltip) {\n // titleRender = <TableTitleTooltip title={title as string} tooltip={tooltip} />;\n // }\n else {\n titleRender = title as string;\n }\n return {\n title: required ? (\n <TextSymbolWrapper\n style={{ marginLeft: align === 'center' ? undefined : 10 }}\n text={titleRender}\n position=\"before\"\n symbolType=\"required\"\n />\n ) : (\n titleRender\n ),\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (value, record, index) => {\n if (record['_isChildrenItem']) {\n if (tableChildrenColumnRender) {\n return tableChildrenColumnRender(value, record, index);\n }\n return value;\n }\n const tableRowName = [...toArray<string | number>(props.name as TAny), record.name];\n const completeName = columnItem.dataIndex ? [...tableRowName, columnItem.dataIndex] : tableRowName;\n const customRender = renderMiddleware?.({\n name: completeName,\n tableRowIndex: record.name,\n operation: record.operation,\n tableRowName,\n index,\n getTableRowData: () => {\n if (props.completeName) {\n return form.getFieldValue([...props.completeName, record.name]);\n }\n return form.getFieldValue(tableRowName);\n },\n });\n if (customRender) {\n return customRender;\n }\n\n const fieldConfigActual =\n typeof fieldConfig === 'function'\n ? fieldConfig({\n name: completeName,\n tableRowIndex: record.name,\n tableRowName,\n getTableRowData: () => {\n if (props.completeName) {\n return form.getFieldValue([...props.completeName, record.name]);\n }\n return form.getFieldValue(tableRowName);\n },\n })\n : fieldConfig;\n let hiddenFieldList = toArray<{ dataIndex: string }>(columnItem.hiddenField);\n if (!columnsIncludeUidKey && index === 0) {\n hiddenFieldList = hiddenFieldList.concat([{ dataIndex: props.uidFieldKey }]);\n }\n return (\n <FormListItem\n name={columnItem.dataIndex ? [record.name, columnItem.dataIndex] : [record.name]}\n completeName={completeName}\n fieldConfig={fieldConfigActual}\n tableRowIndex={record.name}\n hiddenFieldList={hiddenFieldList}\n />\n );\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [\n props.columns,\n props.tableProps,\n props.name,\n props.completeName,\n props.uidFieldKey,\n columnsIncludeUidKey,\n form,\n ]);\n\n const formListDataSource = Form.useWatch(props.completeName ? props.completeName : props.name, form);\n\n useEffect(() => {\n const names = toArray<string>(props.name);\n if (/^\\d+$/.test(`${names?.[0]}`) && props.completeName === undefined) {\n void message.error('当前Editable处在FormList内部,必须赋值completeName参数');\n }\n }, [props.completeName, props.name]);\n\n return (\n <div\n className={classNames(\n 'editable-table',\n { 'et-empty-show-large': props.emptyShowSize === 'large' },\n props.className,\n )}\n style={props.style}\n >\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation, { errors }) => {\n formListFieldsRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n size=\"small\"\n {...props.tableProps}\n rowKey={(record) => {\n const completeName = props.completeName || [];\n const names = toArray(props.name);\n\n const prevName = completeName.length ? completeName : names;\n let target;\n if (record['_isChildrenItem']) {\n target = form.getFieldValue([\n ...prevName,\n record['_parentIndex'],\n 'children',\n record['_index'],\n ]);\n } else {\n target = form.getFieldValue([...prevName, record['_index']]);\n }\n const key = target?.[props.uidFieldKey];\n if (isUndefinedOrNull(key)) {\n console.warn(\n `EditableTable 通过入参uidFieldKey:${props.uidFieldKey},未获取到表格行唯一值数据`,\n );\n }\n return key;\n }}\n dataSource={fields.map((item, index) => {\n const children = formListDataSource?.[item.name]?.children as TPlainObject[] | undefined;\n if (children) {\n children.forEach((item, itemIndex) => {\n item['_isChildrenItem'] = true;\n item['_parentIndex'] = index;\n item['_index'] = itemIndex;\n });\n }\n return {\n ...item,\n _index: index,\n operation: formListOperation,\n children,\n };\n })}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <ButtonWrapper\n type=\"dashed\"\n hidden={props.hiddenFooterBtn}\n onClick={() => formListOperation.add(props.getAddRowDefaultValues?.())}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </ButtonWrapper>\n )}\n <Form.ErrorList\n errors={\n errors.length\n ? [\n <div\n style={{\n color: '#ff4d4f',\n padding: '5px',\n }}\n key=\"0\"\n >\n {errors}\n </div>,\n ]\n : undefined\n }\n />\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","options","useMemo","onChange","_hooks","useCallbackRef","value","_jsx","Checkbox","Group","_extends","className","children","tableCellRender","selectorCell","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","_isArray","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","e","target","Radio","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","viewLabelList","setviewLabelList","useEffect","length","map","item","label","returnList","forEach","find","temp","push","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","tag","index","Tag","color","SelectorWrapperFormItem","viewData","defaultCheckedText","checkedChildren","defaultUnCheckedText","unCheckedChildren","checkedText","unCheckedText","SwitchWrapper","checkedValue","marginRight","SwitchWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","TextFormItem","noStyle","TextAreaFormItem","InputTextAreaWrapper","UploadWrapperFormItemContent","_editableComptProps","otherProps","_objectWithoutPropertiesLoose","_excluded","UploadWrapper","listType","disabled","UploadWrapperFormItem","FormItemAdapter","newEditable","_extend","commomProps","type","completeName","FormList","from","useFormInstance","_props$formListConfig","formListConfig","onFormListBeforeRender","editableConfigList","onFormListAfterRender","onFormListItemBeforeRender","onFormListItemAfterRender","deleteOperateRender","List","fields","_ref","add","remove","_Fragment","getFieldValue","fieldChild","hasEditable","formListItemIndex","concat","Space","fieldItem","fieldName","DeleteFormListItem","Button","danger","icon","_DeleteOutlined","onClick","FormListItem","_props$hiddenFieldLis","hiddenFieldList","FormItemHidden","toArray","dataIndex","EditableTable","form","formListFieldsRef","useRef","columnsIncludeUidKey","hasUid","columns","uidFieldKey","columnItem","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align","otherColumnItem","support","isValidElement","titleRender","TipsWrapper","tipType","popoverProps","content","TextSymbolWrapper","marginLeft","text","position","symbolType","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","record","tableRowName","customRender","operation","getTableRowData","fieldConfigActual","hiddenField","formListDataSource","useWatch","names","test","message","error","emptyShowSize","rules","formListOperation","errors","current","borderRadius","border","onTableBeforeRender","Table","scroll","x","pagination","size","rowKey","_target","prevName","key","isUndefinedOrNull","dataSource","_formListDataSource$i","itemIndex","_index","onTableAfterRender","ButtonWrapper","hidden","hiddenFooterBtn","getAddRowDefaultValues","block","_PlusOutlined","marginTop","ErrorList","padding"],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
+
import './../button-wrapper/index.css';
|
|
3
|
+
import './../config-provider-wrapper/index.css';
|
|
4
|
+
import './../fba-hooks/index.css';
|
|
5
|
+
import './../types/index.css';
|
|
6
|
+
import './../fba-utils/index.css';
|
|
7
|
+
import './../form-item-wrapper/index.css';
|
|
8
|
+
import './../pre-defined-class-name/index.css';
|
|
9
|
+
import './../text-symbol-wrapper/index.css';
|
|
10
|
+
import './../tips-wrapper/index.css';
|
|
2
11
|
import './index.css';
|
|
3
12
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as
|
|
13
|
+
import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as a}from"@wove/react/cjs/hooks";import{isArray as t}from"@dimjs/lang/cjs/is-array";import{cloneState as i}from"@dimjs/model";import{toArray as l,arrayReorder as o,isUndefinedOrNull as s}from"@flatbiz/utils";import{Form as d,Table as u,message as p}from"antd";import{useState as m,useRef as c,useMemo as f,isValidElement as v}from"react";import{ButtonWrapper as g}from"../button-wrapper/index.js";import{fbaUtils as b}from"../fba-utils/index.js";import{FormItemWrapper as h}from"../form-item-wrapper/index.js";import{TextSymbolWrapper as y}from"../text-symbol-wrapper/index.js";import{TipsWrapper as j}from"../tips-wrapper/index.js";import{jsx as x,jsxs as C}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"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../pre-defined-class-name/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var w=function w(R){var F;var P=d.useFormInstance();var k=m([]),A=k[0],V=k[1];var N=l(R.formListName);var T=c({});var I=c({});var U=c();var L=R.uidFieldKey;var B=R.childrenColumnName||"children";var W=R.formListCompleteName||N;var z=d.useWatch(W,P);var D=f((function(){if(!z)return[];function e(r,n,a){r.forEach((function(r,t){if(!r[L]){console.error(r,"数据中未查询到唯一值")}else{I.current[r[L]]={level:n,parentUid:a,index:t};T.current[r[L]]=r;e(r[B]||[],n+1,r[L])}}))}I.current={};T.current={};e(t(z)?z:[],1);return z}),[B,z,L]);var E=a.useCallbackRef((function(e){var r=e[L];var n=I.current[r];var a=[];while(n){a.push(n.index);if(n.level===1){break}n=n.parentUid?I.current[n.parentUid]:undefined}var t=[];a.reverse().forEach((function(e,r){t.push(e);if(r<a.length-1){t.push(B)}}));return t}));var O=a.useCallbackRef((function(e,r,n){var a=T.current[e];if(a){if(a.level===1){var t;(t=U.current)==null?void 0:t.add(r,n);return}a[B]=a[B]||[];if(n==undefined){a[B].push(r)}else{a[B].splice(n,0,r)}var i=new Set(A);i.add(a[L]);V([].concat(Array.from(i)));b.setFormFieldsAndTriggerValuesChange(P,[{name:W,value:[].concat(z)}])}}));var _=a.useCallbackRef((function(e,r){var n=I.current[e];if(n.level===1){var a;(a=U.current)==null?void 0:a.remove(r);return}var t=n.parentUid;if(!t){z.splice(r,1)}else{var l=T.current[t];l[B].splice(r,1);if(l[B].length===0){delete l[B]}}b.setFormFieldsAndTriggerValuesChange(P,[{name:W,value:i(z)}])}));var K=a.useCallbackRef((function(e,r,n){if(r===n||n<0)return;var a=I.current[e];var t=a.parentUid;if(!t){var i=o(z,r,n);b.setFormFieldsAndTriggerValuesChange(P,[{name:W,value:i}])}else{var l=T.current[t];l[B]=o(l[B],r,n);b.setFormFieldsAndTriggerValuesChange(P,[{name:W,value:[].concat(z)}])}}));var S=a.useCallbackRef((function(e,r){b.setFormFieldsAndTriggerValuesChange(P,r.map((function(r){return{name:[].concat(W,e,l(r.name)),value:r.value}})))}));var q=a.useCallbackRef((function(e,r){S(e,[{name:B,value:r}])}));var Y=f((function(){return R.columns.map((function(e){var r=e.title;var a=v(r)||typeof r==="string";var t=r;if(e.tipsWrapperProps&&a){if(typeof e.tipsWrapperProps==="string"){t=x(j,{tipType:"popover",popoverProps:{content:e.tipsWrapperProps},children:r})}else{t=x(j,n({},e.tipsWrapperProps,{children:r}))}}return n({onCell:function e(){var r;return{valign:((r=R.tableProps)==null?void 0:r.cellVerticalAlign)||"middle"}}},e,{title:e.required?x(y,{style:{marginLeft:e.align==="center"?undefined:10},text:t,position:"before",symbolType:"required"}):t,render:function r(a,t,i){if(s(e.render)){return a}var o=t[L];var d=l(e["dataIndex"]);var u=E(t);var p=I.current[o];var m=typeof(e==null?void 0:e.editable)==="function"?e==null?void 0:e.editable(t,i):e==null?void 0:e.editable;var c={editable:m,add:O.bind(null,o),remove:_.bind(null,o),move:K.bind(null,o),level:p.level,parentItem:p.parentUid?I.current[p.parentUid]:null,tableRowFormItemName:u,tableRowFormItemCompleteName:[].concat(W,u),setCurrentRowTargetField:S.bind(null,u),setCurrentRowChildrenValue:q.bind(null,u)};if(m===true){var f=typeof e.formItemProps==="function"?e.formItemProps(a,t,i,c):e.formItemProps;return x(h,n({},f,{name:[].concat(u,d),style:n({marginBottom:0},f==null?void 0:f.style),children:e.render==null?void 0:e.render(a,t,i,c)}))}return e.render==null?void 0:e.render(a,t,i,c)}})}))}),[O,S,_,W,E,K,R.columns,(F=R.tableProps)==null?void 0:F.cellVerticalAlign,q,L]);return x("div",{className:r("editable-table-pro",R.className),style:R.style,children:x(d.List,{name:N,rules:R.rules,children:function r(a,t,i){var l;var o=i.errors;U.current=t;return C("div",{style:{borderRadius:"6px",border:o!=null&&o.length?"1px solid #ff4d4f":"1px solid transparent"},children:[R.tableBeforeAreaRender==null?void 0:R.tableBeforeAreaRender(t,a.length),x(u,n({scroll:{x:"max-content"},pagination:false,size:"small"},R.tableProps,{expandable:n({expandedRowKeys:A,onExpandedRowsChange:function e(r){V(r)}},(l=R.tableProps)==null?void 0:l.expandable,{childrenColumnName:B}),columns:Y,dataSource:D,rowKey:L})),x(g,{block:true,hidden:R.hiddenFooterBtn,type:"dashed",icon:x(e,{}),style:{marginTop:15},onClick:function e(){var r=R.addRowDefaultValues==null?void 0:R.addRowDefaultValues();if(!(r!=null&&r[L])){void p.error("新增行默认值必须包含唯一值字段【"+L+"】,通过 addRowDefaultValues 设置");return}t.add(r)},children:"新增"}),R.tableAfterAreaRender==null?void 0:R.tableAfterAreaRender(t,a.length),o.length?x(d.ErrorList,{errors:[x("div",{style:{color:"#ff4d4f",padding:"5px"},children:o},"0")]}):null]})}})})};export{w as EditableTablePro};
|
|
5
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table-pro/editable-table-pro.tsx"],"sourcesContent":["import { PlusOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { ButtonWrapper, TextSymbolWrapper, TipsWrapper } from '@flatbiz/antd';\nimport { arrayReorder, isUndefinedOrNull, TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message, Table, type FormListOperation, type TableProps } from 'antd';\nimport { FormListProps } from 'antd/es/form';\nimport { ColumnsType } from 'antd/es/table';\nimport { isValidElement, ReactElement, useMemo, useRef, useState } from 'react';\nimport './style.less';\nimport { EditableTableProColumnItem, EditableTableProDataIndex, EditableTableProOperation } from './type';\n\ntype dataSourceRelativeItem = {\n level: number;\n parentUid?: string | number;\n index: number;\n};\n\nexport type EditableTableProProps = {\n columns: EditableTableProColumnItem[];\n /**\n * 当前Edittable处在formList内部时(必填),完整formItem的name\n * ```\n * 例如 处在formList内部\n * 1. formListName=[0,dataList]\n * 2. formListCompleteName=[xxxList, 0, dataList]\n * ```\n */\n formListCompleteName?: Array<string | number>;\n /** Form.List name */\n formListName: Array<string | number> | string;\n /** 唯一值字段Key */\n uidFieldKey: string;\n /** 指定树形结构的列名,默认值:children */\n childrenColumnName?: string;\n /** 表格组件配置 */\n tableProps?: Omit<TableProps<TPlainObject>, 'dataSource' | 'columns' | 'rowKey'> & {\n // 如果重写了columns.onCell,则此配置失效\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n /**\n * Form.List rules\n * ```\n rules={[\n {\n validator: async (_, names) => {\n if (!names || names.length < 2) {\n return Promise.reject(new Error('At least 2 passengers'));\n }\n },\n },\n ]}\n * ```\n */\n rules?: FormListProps['rules'];\n className?: string;\n style?: React.CSSProperties;\n\n /**`默认新增按钮`新增行默认值,hiddenFooterBtn != true 有效 */\n addRowDefaultValues?: () => TPlainObject;\n /** 隐藏底部`新增`按钮 */\n hiddenFooterBtn?: boolean;\n /** 表格顶部区域渲染 */\n tableBeforeAreaRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /** 表格底部区域渲染 */\n tableAfterAreaRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n};\n\n/**\n * 使用FormList实现可编辑表格\n * ```\n * 1. 必须在外部包裹Form组件\n * 2. 表格数据源数组中必须存在唯一值字段,通过uidFieldKey配置\n * 3. 可嵌套编辑,数据嵌套的节点名称可通过 childrenColumnName设置,默认:children\n * 4. 行内需要联动逻辑可使用 column.render.operation.changeCurrentRowTargetField 方法\n * 5. 在多级编辑中,可通过 column.render.operation.level 判断当前行数据层级\n * 6. 不存在多级的情况下,可使用DragEditableTablePro组件实现拖拽排序\n * 7. 存在多级的情况下,可通过 column.render.operation.move 方法实现同一级内移动\n *\n * demo\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable2\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable4\n * ```\n */\nexport const EditableTablePro = (props: EditableTableProProps) => {\n const form = Form.useFormInstance();\n const [expandedRowKeys, setExpandedRowKeys] = useState<string[]>([]);\n const formListName = toArray<string | number>(props.formListName);\n const dataSourceUidMap = useRef<Record<string, TPlainObject>>({});\n const dataSourceUidMapFt = useRef<Record<string | number, dataSourceRelativeItem>>({});\n const formListOperationRef = useRef<FormListOperation>();\n const uidFieldKey = props.uidFieldKey;\n const childrenColumnName = props.childrenColumnName || 'children';\n\n const formListCompleteName = props.formListCompleteName || formListName;\n\n const dataSource = Form.useWatch(formListCompleteName, form);\n\n const dataSourceFt = useMemo(() => {\n if (!dataSource) return [];\n function deep(itemList: TPlainObject[], level: number, parentUid?: string | number) {\n itemList.forEach((item, itemIndex) => {\n if (!item[uidFieldKey]) {\n console.error(item, '数据中未查询到唯一值');\n } else {\n dataSourceUidMapFt.current[item[uidFieldKey]] = {\n level,\n parentUid,\n index: itemIndex,\n };\n dataSourceUidMap.current[item[uidFieldKey]] = item;\n deep(item[childrenColumnName] || [], level + 1, item[uidFieldKey]);\n }\n });\n }\n dataSourceUidMapFt.current = {};\n dataSourceUidMap.current = {};\n deep(isArray(dataSource) ? dataSource : [], 1);\n return dataSource;\n }, [childrenColumnName, dataSource, uidFieldKey]);\n\n const getFormItemName = hooks.useCallbackRef((record: TPlainObject) => {\n const uid = record[uidFieldKey];\n let target: dataSourceRelativeItem | undefined = dataSourceUidMapFt.current[uid];\n\n const indexes: number[] = [];\n while (target) {\n indexes.push(target.index);\n if (target.level === 1) {\n break;\n }\n target = target.parentUid ? dataSourceUidMapFt.current[target.parentUid] : undefined;\n }\n const arr: Array<string | number> = [];\n indexes.reverse().forEach((item, index) => {\n arr.push(item);\n if (index < indexes.length - 1) {\n arr.push(childrenColumnName);\n }\n });\n return arr;\n });\n\n const addItem = hooks.useCallbackRef((uid: string, defaultValue: TPlainObject, insertIndex?: number) => {\n const target = dataSourceUidMap.current[uid];\n\n if (target) {\n if (target.level === 1) {\n /** 通过 formListOperation.add 可以使得 Form.List的 rules 生效 */\n formListOperationRef.current?.add(defaultValue, insertIndex);\n return;\n }\n target[childrenColumnName] = target[childrenColumnName] || [];\n if (insertIndex == undefined) {\n target[childrenColumnName].push(defaultValue);\n } else {\n target[childrenColumnName].splice(insertIndex, 0, defaultValue);\n }\n const expandedRowKeysSet = new Set(expandedRowKeys);\n expandedRowKeysSet.add(target[uidFieldKey]);\n setExpandedRowKeys([...Array.from(expandedRowKeysSet)]);\n form.setFields([\n {\n name: formListCompleteName,\n value: [...dataSource],\n },\n ]);\n }\n });\n\n const deleteItem = hooks.useCallbackRef((uid: string | number, index: number) => {\n const target = dataSourceUidMapFt.current[uid];\n if (target.level === 1) {\n /** 通过 formListOperation.remove 可以使得 Form.List的 rules 生效 */\n formListOperationRef.current?.remove(index);\n return;\n }\n const parentUid = target.parentUid;\n if (!parentUid) {\n dataSource.splice(index, 1);\n } else {\n const parentTarget = dataSourceUidMap.current[parentUid];\n parentTarget[childrenColumnName].splice(index, 1);\n if (parentTarget[childrenColumnName].length === 0) {\n delete parentTarget[childrenColumnName];\n }\n }\n form.setFields([\n {\n name: formListCompleteName,\n value: cloneState(dataSource),\n },\n ]);\n });\n\n const moveItem = hooks.useCallbackRef((uid: string | number, fromIndex: number, toIndex: number) => {\n if (fromIndex === toIndex || toIndex < 0) return;\n const target = dataSourceUidMapFt.current[uid];\n const parentUid = target.parentUid;\n if (!parentUid) {\n const result = arrayReorder(dataSource, fromIndex, toIndex);\n form.setFields([\n {\n name: formListCompleteName,\n value: result,\n },\n ]);\n } else {\n const parentTarget = dataSourceUidMap.current[parentUid];\n parentTarget[childrenColumnName] = arrayReorder(parentTarget[childrenColumnName], fromIndex, toIndex);\n form.setFields([\n {\n name: formListCompleteName,\n value: [...dataSource],\n },\n ]);\n }\n });\n\n const changeCurrentRowTargetField = hooks.useCallbackRef(\n (\n formItemPrevName: Array<string | number>,\n dataIndexConfigs: {\n name: EditableTableProDataIndex;\n value?: TAny;\n }[],\n ) => {\n form.setFields(\n dataIndexConfigs.map((item) => {\n return {\n name: [...formListCompleteName, ...formItemPrevName, ...toArray<string | number>(item.name)],\n value: item.value,\n };\n }),\n );\n },\n );\n\n const columns = useMemo(() => {\n return props.columns.map((column) => {\n const title = column.title;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string | undefined = title;\n if (column.tipsWrapperProps && support) {\n if (typeof column.tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: column.tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = <TipsWrapper {...column.tipsWrapperProps}>{title}</TipsWrapper>;\n }\n }\n return {\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...column,\n title: column.required ? (\n <TextSymbolWrapper\n style={{ marginLeft: column.align === 'center' ? undefined : 10 }}\n text={titleRender}\n position=\"before\"\n symbolType=\"required\"\n />\n ) : (\n titleRender\n ),\n render: (value, record, index) => {\n if (isUndefinedOrNull(column.render)) {\n return value;\n }\n const uid = record[uidFieldKey];\n const dataIndex = toArray<string>(column['dataIndex']);\n const formItemPrevName = getFormItemName(record);\n const dataSourceTarget = dataSourceUidMapFt.current[uid];\n\n const editable =\n typeof column?.editable === 'function' ? column?.editable(record, index) : column?.editable;\n const renderOperationProps: EditableTableProOperation = {\n add: addItem.bind(null, uid),\n remove: deleteItem.bind(null, uid),\n move: moveItem.bind(null, uid),\n editable,\n changeCurrentRowTargetField: changeCurrentRowTargetField.bind(null, formItemPrevName),\n level: dataSourceTarget.level,\n parentItem: dataSourceTarget.parentUid\n ? dataSourceUidMapFt.current[dataSourceTarget.parentUid]\n : null,\n tableRowFormItemName: formItemPrevName,\n tableRowFormItemCompleteName: [...formListCompleteName, ...formItemPrevName],\n };\n if (editable === true) {\n return (\n <Form.Item\n {...column.formItemProps}\n name={[...formItemPrevName, ...dataIndex]}\n style={{ marginBottom: 0, ...column.formItemProps?.style }}\n >\n {column.render?.(value, record, index, renderOperationProps) as React.ReactNode}\n </Form.Item>\n );\n }\n return column.render?.(value, record, index, renderOperationProps);\n },\n };\n }) as ColumnsType<TPlainObject>;\n }, [\n addItem,\n changeCurrentRowTargetField,\n deleteItem,\n formListCompleteName,\n getFormItemName,\n moveItem,\n props.columns,\n props.tableProps?.cellVerticalAlign,\n uidFieldKey,\n ]);\n\n return (\n <div className={classNames('editable-table-pro', props.className)} style={props.style}>\n <Form.List name={formListName} rules={props.rules}>\n {(fields, formListOperation, { errors }) => {\n formListOperationRef.current = formListOperation;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.tableBeforeAreaRender?.(formListOperation, fields.length)}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n size=\"small\"\n {...props.tableProps}\n expandable={{\n expandedRowKeys: expandedRowKeys,\n onExpandedRowsChange: (expandedRowKeys) => {\n setExpandedRowKeys(expandedRowKeys as string[]);\n },\n ...props.tableProps?.expandable,\n childrenColumnName: childrenColumnName,\n }}\n columns={columns}\n dataSource={dataSourceFt}\n rowKey={uidFieldKey}\n />\n <ButtonWrapper\n block\n hidden={props.hiddenFooterBtn}\n type=\"dashed\"\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n onClick={() => {\n const defaultValues = props.addRowDefaultValues?.();\n if (!defaultValues?.[uidFieldKey]) {\n void message.error(\n `新增行默认值必须包含唯一值字段【${uidFieldKey}】,通过 addRowDefaultValues 设置`,\n );\n return;\n }\n formListOperation.add(defaultValues);\n }}\n >\n 新增\n </ButtonWrapper>\n {props.tableAfterAreaRender?.(formListOperation, fields.length)}\n {errors.length ? (\n <Form.ErrorList\n errors={[\n <div style={{ color: '#ff4d4f', padding: '5px' }} key=\"0\">\n {errors}\n </div>,\n ]}\n />\n ) : null}\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["EditableTablePro","props","_props$tableProps2","form","Form","useFormInstance","_useState","useState","expandedRowKeys","setExpandedRowKeys","formListName","toArray","dataSourceUidMap","useRef","dataSourceUidMapFt","formListOperationRef","uidFieldKey","childrenColumnName","formListCompleteName","dataSource","useWatch","dataSourceFt","useMemo","deep","itemList","level","parentUid","forEach","item","itemIndex","console","error","current","index","_isArray","getFormItemName","_hooks","useCallbackRef","record","uid","target","indexes","push","undefined","arr","reverse","length","addItem","defaultValue","insertIndex","_formListOperationRef","add","splice","expandedRowKeysSet","Set","concat","Array","from","setFields","name","value","deleteItem","_formListOperationRef2","remove","parentTarget","cloneState","moveItem","fromIndex","toIndex","result","arrayReorder","changeCurrentRowTargetField","formItemPrevName","dataIndexConfigs","map","columns","column","title","support","isValidElement","titleRender","tipsWrapperProps","_jsx","TipsWrapper","tipType","popoverProps","content","children","_extends","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","required","TextSymbolWrapper","style","marginLeft","align","text","position","symbolType","render","isUndefinedOrNull","dataIndex","dataSourceTarget","editable","renderOperationProps","bind","move","parentItem","tableRowFormItemName","tableRowFormItemCompleteName","_column$formItemProps","Item","formItemProps","marginBottom","className","_classNames","List","rules","fields","formListOperation","_ref","_props$tableProps3","errors","_jsxs","borderRadius","border","tableBeforeAreaRender","Table","scroll","x","pagination","size","expandable","onExpandedRowsChange","rowKey","ButtonWrapper","block","hidden","hiddenFooterBtn","type","icon","_PlusOutlined","marginTop","onClick","defaultValues","addRowDefaultValues","message","tableAfterAreaRender","ErrorList","color","padding"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table-pro/editable-table-pro.tsx"],"sourcesContent":["import { PlusOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { arrayReorder, isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message, Table, type FormListOperation, type TableProps } from 'antd';\nimport type { FormListProps } from 'antd/es/form';\nimport type { ColumnsType } from 'antd/es/table';\nimport type { ReactElement } from 'react';\nimport { isValidElement, useMemo, useRef, useState } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { fbaUtils } from '../fba-utils';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper } from '../tips-wrapper';\nimport './style.less';\nimport type {\n EditableTableProColumnItem,\n EditableTableProDataIndex,\n EditableTableProOperation,\n} from './type';\n\ntype dataSourceRelativeItem = {\n level: number;\n parentUid?: string | number;\n index: number;\n};\n\nexport type EditableTableProProps = {\n columns: EditableTableProColumnItem[];\n /**\n * 当前Edittable处在formList内部时(必填),完整formItem的name\n * ```\n * 例如 处在formList内部\n * 1. formListName=[0,dataList]\n * 2. formListCompleteName=[xxxList, 0, dataList]\n * ```\n */\n formListCompleteName?: Array<string | number>;\n /** Form.List name */\n formListName: Array<string | number> | string;\n /** 唯一值字段Key */\n uidFieldKey: string;\n /** 指定树形结构的列名,默认值:children */\n childrenColumnName?: string;\n /** 表格组件配置 */\n tableProps?: Omit<TableProps<TPlainObject>, 'dataSource' | 'columns' | 'rowKey'> & {\n // 如果重写了columns.onCell,则此配置失效\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n /**\n * Form.List rules\n * ```\n rules={[\n {\n validator: async (_, names) => {\n if (!names || names.length < 2) {\n return Promise.reject(new Error('At least 2 passengers'));\n }\n },\n },\n ]}\n * ```\n */\n rules?: FormListProps['rules'];\n className?: string;\n style?: React.CSSProperties;\n\n /**`默认新增按钮`新增行默认值,hiddenFooterBtn != true 有效 */\n addRowDefaultValues?: () => TPlainObject;\n /** 隐藏底部`新增`按钮 */\n hiddenFooterBtn?: boolean;\n /** 表格顶部区域渲染 */\n tableBeforeAreaRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /** 表格底部区域渲染 */\n tableAfterAreaRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n};\n\n/**\n * 使用FormList实现可编辑表格\n * ```\n * 1. 必须在外部包裹Form组件\n * 2. 表格数据源数组中必须存在唯一值字段,通过uidFieldKey配置\n * 3. 可嵌套编辑,数据嵌套的节点名称可通过 childrenColumnName设置,默认:children\n * 4. 行内需要联动逻辑可使用 column.render.operation.setCurrentRowTargetField 方法\n * 5. 在多级编辑中,可通过 column.render.operation.level 判断当前行数据层级\n * 6. 不存在多级的情况下,可使用DragEditableTablePro组件实现拖拽排序\n * 7. 存在多级的情况下,可通过 column.render.operation.move 方法实现同一级内移动\n *\n * demo\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable2\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable4\n * ```\n */\nexport const EditableTablePro = (props: EditableTableProProps) => {\n const form = Form.useFormInstance();\n const [expandedRowKeys, setExpandedRowKeys] = useState<string[]>([]);\n const formListName = toArray<string | number>(props.formListName);\n const dataSourceUidMap = useRef<Record<string, TPlainObject>>({});\n const dataSourceUidMapFt = useRef<Record<string | number, dataSourceRelativeItem>>({});\n const formListOperationRef = useRef<FormListOperation>();\n const uidFieldKey = props.uidFieldKey;\n const childrenColumnName = props.childrenColumnName || 'children';\n\n const formListCompleteName = props.formListCompleteName || formListName;\n\n const dataSource = Form.useWatch(formListCompleteName, form);\n\n const dataSourceFt = useMemo(() => {\n if (!dataSource) return [];\n function deep(itemList: TPlainObject[], level: number, parentUid?: string | number) {\n itemList.forEach((item, itemIndex) => {\n if (!item[uidFieldKey]) {\n console.error(item, '数据中未查询到唯一值');\n } else {\n dataSourceUidMapFt.current[item[uidFieldKey]] = {\n level,\n parentUid,\n index: itemIndex,\n };\n dataSourceUidMap.current[item[uidFieldKey]] = item;\n deep(item[childrenColumnName] || [], level + 1, item[uidFieldKey]);\n }\n });\n }\n dataSourceUidMapFt.current = {};\n dataSourceUidMap.current = {};\n deep(isArray(dataSource) ? dataSource : [], 1);\n return dataSource;\n }, [childrenColumnName, dataSource, uidFieldKey]);\n\n const getFormItemName = hooks.useCallbackRef((record: TPlainObject) => {\n const uid = record[uidFieldKey];\n let target: dataSourceRelativeItem | undefined = dataSourceUidMapFt.current[uid];\n\n const indexes: number[] = [];\n while (target) {\n indexes.push(target.index);\n if (target.level === 1) {\n break;\n }\n target = target.parentUid ? dataSourceUidMapFt.current[target.parentUid] : undefined;\n }\n const arr: Array<string | number> = [];\n indexes.reverse().forEach((item, index) => {\n arr.push(item);\n if (index < indexes.length - 1) {\n arr.push(childrenColumnName);\n }\n });\n return arr;\n });\n\n const addItem = hooks.useCallbackRef((uid: string, defaultValue: TPlainObject, insertIndex?: number) => {\n const target = dataSourceUidMap.current[uid];\n\n if (target) {\n if (target.level === 1) {\n /** 通过 formListOperation.add 可以使得 Form.List的 rules 生效 */\n formListOperationRef.current?.add(defaultValue, insertIndex);\n return;\n }\n target[childrenColumnName] = target[childrenColumnName] || [];\n if (insertIndex == undefined) {\n target[childrenColumnName].push(defaultValue);\n } else {\n target[childrenColumnName].splice(insertIndex, 0, defaultValue);\n }\n const expandedRowKeysSet = new Set(expandedRowKeys);\n expandedRowKeysSet.add(target[uidFieldKey]);\n setExpandedRowKeys([...Array.from(expandedRowKeysSet)]);\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: [...dataSource],\n },\n ]);\n }\n });\n\n const deleteItem = hooks.useCallbackRef((uid: string | number, index: number) => {\n const target = dataSourceUidMapFt.current[uid];\n if (target.level === 1) {\n /** 通过 formListOperation.remove 可以使得 Form.List的 rules 生效 */\n formListOperationRef.current?.remove(index);\n return;\n }\n const parentUid = target.parentUid;\n if (!parentUid) {\n dataSource.splice(index, 1);\n } else {\n const parentTarget = dataSourceUidMap.current[parentUid];\n parentTarget[childrenColumnName].splice(index, 1);\n if (parentTarget[childrenColumnName].length === 0) {\n delete parentTarget[childrenColumnName];\n }\n }\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: cloneState(dataSource),\n },\n ]);\n });\n\n const moveItem = hooks.useCallbackRef((uid: string | number, fromIndex: number, toIndex: number) => {\n if (fromIndex === toIndex || toIndex < 0) return;\n const target = dataSourceUidMapFt.current[uid];\n const parentUid = target.parentUid;\n if (!parentUid) {\n const result = arrayReorder(dataSource, fromIndex, toIndex);\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: result,\n },\n ]);\n } else {\n const parentTarget = dataSourceUidMap.current[parentUid];\n parentTarget[childrenColumnName] = arrayReorder(parentTarget[childrenColumnName], fromIndex, toIndex);\n\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: [...dataSource],\n },\n ]);\n }\n });\n\n const setCurrentRowTargetField = hooks.useCallbackRef(\n (\n formItemPrevName: Array<string | number>,\n dataIndexConfigs: {\n name: EditableTableProDataIndex;\n value?: TAny;\n }[],\n ) => {\n fbaUtils.setFormFieldsAndTriggerValuesChange(\n form,\n dataIndexConfigs.map((item) => {\n return {\n name: [...formListCompleteName, ...formItemPrevName, ...toArray<string | number>(item.name)],\n value: item.value,\n };\n }),\n );\n },\n );\n\n const setCurrentRowChildrenValue = hooks.useCallbackRef(\n (formItemPrevName: Array<string | number>, value?: TPlainObject[]) => {\n setCurrentRowTargetField(formItemPrevName, [{ name: childrenColumnName, value }]);\n },\n );\n\n const columns = useMemo(() => {\n return props.columns.map((column) => {\n const title = column.title;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string | undefined = title;\n if (column.tipsWrapperProps && support) {\n if (typeof column.tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: column.tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = <TipsWrapper {...column.tipsWrapperProps}>{title}</TipsWrapper>;\n }\n }\n return {\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...column,\n title: column.required ? (\n <TextSymbolWrapper\n style={{ marginLeft: column.align === 'center' ? undefined : 10 }}\n text={titleRender}\n position=\"before\"\n symbolType=\"required\"\n />\n ) : (\n titleRender\n ),\n render: (value, record, index) => {\n if (isUndefinedOrNull(column.render)) {\n return value;\n }\n const uid = record[uidFieldKey];\n const dataIndex = toArray<string>(column['dataIndex']);\n const formItemPrevName = getFormItemName(record);\n const dataSourceTarget = dataSourceUidMapFt.current[uid];\n\n const editable =\n typeof column?.editable === 'function' ? column?.editable(record, index) : column?.editable;\n const renderOperationProps: EditableTableProOperation = {\n editable,\n add: addItem.bind(null, uid),\n remove: deleteItem.bind(null, uid),\n move: moveItem.bind(null, uid),\n level: dataSourceTarget.level,\n parentItem: dataSourceTarget.parentUid\n ? dataSourceUidMapFt.current[dataSourceTarget.parentUid]\n : null,\n tableRowFormItemName: formItemPrevName,\n tableRowFormItemCompleteName: [...formListCompleteName, ...formItemPrevName],\n setCurrentRowTargetField: setCurrentRowTargetField.bind(null, formItemPrevName),\n setCurrentRowChildrenValue: setCurrentRowChildrenValue.bind(null, formItemPrevName),\n };\n if (editable === true) {\n const formItemProps =\n typeof column.formItemProps === 'function'\n ? column.formItemProps(value, record, index, renderOperationProps)\n : column.formItemProps;\n\n return (\n <FormItemWrapper\n {...formItemProps}\n name={[...formItemPrevName, ...dataIndex]}\n style={{ marginBottom: 0, ...formItemProps?.style }}\n >\n {column.render?.(value, record, index, renderOperationProps) as React.ReactNode}\n </FormItemWrapper>\n );\n }\n return column.render?.(value, record, index, renderOperationProps);\n },\n };\n }) as ColumnsType<TPlainObject>;\n }, [\n addItem,\n setCurrentRowTargetField,\n deleteItem,\n formListCompleteName,\n getFormItemName,\n moveItem,\n props.columns,\n props.tableProps?.cellVerticalAlign,\n setCurrentRowChildrenValue,\n uidFieldKey,\n ]);\n\n return (\n <div className={classNames('editable-table-pro', props.className)} style={props.style}>\n <Form.List name={formListName} rules={props.rules}>\n {(fields, formListOperation, { errors }) => {\n formListOperationRef.current = formListOperation;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.tableBeforeAreaRender?.(formListOperation, fields.length)}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n size=\"small\"\n {...props.tableProps}\n expandable={{\n expandedRowKeys: expandedRowKeys,\n onExpandedRowsChange: (expandedRowKeys) => {\n setExpandedRowKeys(expandedRowKeys as string[]);\n },\n ...props.tableProps?.expandable,\n childrenColumnName: childrenColumnName,\n }}\n columns={columns}\n dataSource={dataSourceFt}\n rowKey={uidFieldKey}\n />\n <ButtonWrapper\n block\n hidden={props.hiddenFooterBtn}\n type=\"dashed\"\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n onClick={() => {\n const defaultValues = props.addRowDefaultValues?.();\n if (!defaultValues?.[uidFieldKey]) {\n void message.error(\n `新增行默认值必须包含唯一值字段【${uidFieldKey}】,通过 addRowDefaultValues 设置`,\n );\n return;\n }\n formListOperation.add(defaultValues);\n }}\n >\n 新增\n </ButtonWrapper>\n {props.tableAfterAreaRender?.(formListOperation, fields.length)}\n {errors.length ? (\n <Form.ErrorList\n errors={[\n <div style={{ color: '#ff4d4f', padding: '5px' }} key=\"0\">\n {errors}\n </div>,\n ]}\n />\n ) : null}\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["EditableTablePro","props","_props$tableProps2","form","Form","useFormInstance","_useState","useState","expandedRowKeys","setExpandedRowKeys","formListName","toArray","dataSourceUidMap","useRef","dataSourceUidMapFt","formListOperationRef","uidFieldKey","childrenColumnName","formListCompleteName","dataSource","useWatch","dataSourceFt","useMemo","deep","itemList","level","parentUid","forEach","item","itemIndex","console","error","current","index","_isArray","getFormItemName","_hooks","useCallbackRef","record","uid","target","indexes","push","undefined","arr","reverse","length","addItem","defaultValue","insertIndex","_formListOperationRef","add","splice","expandedRowKeysSet","Set","concat","Array","from","fbaUtils","setFormFieldsAndTriggerValuesChange","name","value","deleteItem","_formListOperationRef2","remove","parentTarget","cloneState","moveItem","fromIndex","toIndex","result","arrayReorder","setCurrentRowTargetField","formItemPrevName","dataIndexConfigs","map","setCurrentRowChildrenValue","columns","column","title","support","isValidElement","titleRender","tipsWrapperProps","_jsx","TipsWrapper","tipType","popoverProps","content","children","_extends","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","required","TextSymbolWrapper","style","marginLeft","align","text","position","symbolType","render","isUndefinedOrNull","dataIndex","dataSourceTarget","editable","renderOperationProps","bind","move","parentItem","tableRowFormItemName","tableRowFormItemCompleteName","formItemProps","FormItemWrapper","marginBottom","className","_classNames","List","rules","fields","formListOperation","_ref","_props$tableProps3","errors","_jsxs","borderRadius","border","tableBeforeAreaRender","Table","scroll","x","pagination","size","expandable","onExpandedRowsChange","rowKey","ButtonWrapper","block","hidden","hiddenFooterBtn","type","icon","_PlusOutlined","marginTop","onClick","defaultValues","addRowDefaultValues","message","tableAfterAreaRender","ErrorList","color","padding"],"mappings":"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"}
|
package/esm/fba-utils/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{isArray as r}from"@dimjs/lang/cjs/is-array";import{getGlobalData as
|
|
4
|
+
import{isArray as r}from"@dimjs/lang/cjs/is-array";import{getGlobalData as e,getUuid as a}from"@flatbiz/utils";var n=function a(){var n=e(),t=n.elemAclLimits;var i=r(t)?t:[];return i};var t=function r(e){if(!e)return true;var a=n();if(a.includes(e)){return true}return false};function i(r,e){var a=r;for(var n in e){if(e.hasOwnProperty(n)){a[n]=e[n]}}return a}var o=function r(){return a()};var u=function r(e,a){var n=e.getInternalHooks("RC_FORM_INTERNAL_HOOKS").dispatch;a.forEach((function(r){n({type:"updateValue",namePath:r.name,value:r.value})}))};var s=function r(e,a){var n=a.map((function(r){return{name:r.name,value:r.value}}));e.setFields(n);u(e,n)};var l={hasPermission:t,getPermissionList:n,attachPropertiesToComponent:i,getModelKey:o,triggerFormValuesChange:u,setFormFieldsAndTriggerValuesChange:s};export{l as fbaUtils};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-utils/fba-utils.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { getGlobalData, getUuid } from '@flatbiz/utils';\n\nconst getPermissionList = () => {\n const { elemAclLimits } = getGlobalData<{ elemAclLimits: string[] }>();\n const permissionList: string[] = isArray(elemAclLimits) ? elemAclLimits : [];\n return permissionList;\n};\n\nconst hasPermission = (name?: string) => {\n if (!name) return true;\n const permissionList = getPermissionList();\n if (permissionList.includes(name)) {\n return true;\n }\n return false;\n};\n\nfunction attachPropertiesToComponent<C, P extends Record<string, unknown>>(\n component: C,\n properties: P,\n): C & P {\n const ret = component as Record<string, unknown>;\n for (const key in properties) {\n if (properties.hasOwnProperty(key)) {\n ret[key] = properties[key];\n }\n }\n return ret as C & P;\n}\n\nconst getModelKey = () => {\n return getUuid();\n};\n\nexport const fbaUtils = {\n hasPermission,\n getPermissionList,\n attachPropertiesToComponent,\n getModelKey,\n};\n"],"names":["getPermissionList","_getGlobalData","getGlobalData","elemAclLimits","permissionList","_isArray","hasPermission","name","includes","attachPropertiesToComponent","component","properties","ret","key","hasOwnProperty","getModelKey","getUuid","fbaUtils"],"mappings":";+
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-utils/fba-utils.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { getGlobalData, getUuid, TAny } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\n\nconst getPermissionList = () => {\n const { elemAclLimits } = getGlobalData<{ elemAclLimits: string[] }>();\n const permissionList: string[] = isArray(elemAclLimits) ? elemAclLimits : [];\n return permissionList;\n};\n\nconst hasPermission = (name?: string) => {\n if (!name) return true;\n const permissionList = getPermissionList();\n if (permissionList.includes(name)) {\n return true;\n }\n return false;\n};\n\nfunction attachPropertiesToComponent<C, P extends Record<string, unknown>>(\n component: C,\n properties: P,\n): C & P {\n const ret = component as Record<string, unknown>;\n for (const key in properties) {\n if (properties.hasOwnProperty(key)) {\n ret[key] = properties[key];\n }\n }\n return ret as C & P;\n}\n\nconst getModelKey = () => {\n return getUuid();\n};\n\nconst triggerFormValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const formDispatch = (form as TAny).getInternalHooks('RC_FORM_INTERNAL_HOOKS').dispatch;\n changeList.forEach((item) => {\n formDispatch({\n type: 'updateValue',\n namePath: item.name,\n value: item.value,\n });\n });\n};\n\nconst setFormFieldsAndTriggerValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const paramList = changeList.map((item) => {\n return {\n name: item.name,\n value: item.value,\n };\n });\n\n form.setFields(paramList);\n\n triggerFormValuesChange(form, paramList);\n};\n\nexport const fbaUtils = {\n hasPermission,\n getPermissionList,\n attachPropertiesToComponent,\n getModelKey,\n /**\n * 手动触发Antd Form 的 onValuesChange\n * ```\n * 1. 正常在通过 form.setFieldsValue 不会触发onValuesChange\n * 2. 需要触发可调用此方法\n * ```\n */\n triggerFormValuesChange,\n /**\n * 操作Antd Form\n * ```\n * 1. 通过 form.setFields 修改属性值\n * 2. 触发 Form 的 onValuesChange\n * ```\n */\n setFormFieldsAndTriggerValuesChange: setFormFieldsAndTriggerValuesChange,\n};\n"],"names":["getPermissionList","_getGlobalData","getGlobalData","elemAclLimits","permissionList","_isArray","hasPermission","name","includes","attachPropertiesToComponent","component","properties","ret","key","hasOwnProperty","getModelKey","getUuid","triggerFormValuesChange","form","changeList","formDispatch","getInternalHooks","dispatch","forEach","item","type","namePath","value","setFormFieldsAndTriggerValuesChange","paramList","map","setFields","fbaUtils"],"mappings":";+GAIA,IAAMA,EAAoB,SAApBA,IACJ,IAAAC,EAA0BC,IAAlBC,EAAaF,EAAbE,cACR,IAAMC,EAA2BC,EAAQF,GAAiBA,EAAgB,GAC1E,OAAOC,CACT,EAEA,IAAME,EAAgB,SAAhBA,EAAiBC,GACrB,IAAKA,EAAM,OAAO,KAClB,IAAMH,EAAiBJ,IACvB,GAAII,EAAeI,SAASD,GAAO,CACjC,OAAO,IACT,CACA,OAAO,KACT,EAEA,SAASE,EACPC,EACAC,GAEA,IAAMC,EAAMF,EACZ,IAAK,IAAMG,KAAOF,EAAY,CAC5B,GAAIA,EAAWG,eAAeD,GAAM,CAClCD,EAAIC,GAAOF,EAAWE,EACxB,CACF,CACA,OAAOD,CACT,CAEA,IAAMG,EAAc,SAAdA,IACJ,OAAOC,GACT,EAEA,IAAMC,EAA0B,SAA1BA,EACJC,EACAC,GAEA,IAAMC,EAAgBF,EAAcG,iBAAiB,0BAA0BC,SAC/EH,EAAWI,SAAQ,SAACC,GAClBJ,EAAa,CACXK,KAAM,cACNC,SAAUF,EAAKjB,KACfoB,MAAOH,EAAKG,OAEhB,GACF,EAEA,IAAMC,EAAsC,SAAtCA,EACJV,EACAC,GAEA,IAAMU,EAAYV,EAAWW,KAAI,SAACN,GAChC,MAAO,CACLjB,KAAMiB,EAAKjB,KACXoB,MAAOH,EAAKG,MAEhB,IAEAT,EAAKa,UAAUF,GAEfZ,EAAwBC,EAAMW,EAChC,EAEO,IAAMG,EAAW,CACtB1B,cAAAA,EACAN,kBAAAA,EACAS,4BAAAA,EACAM,YAAAA,EAQAE,wBAAAA,EAQAW,oCAAqCA"}
|
package/esm/index.js
CHANGED
|
@@ -62,6 +62,7 @@ import './input-wrapper/index.css';
|
|
|
62
62
|
import './input-text-area-wrapper/index.css';
|
|
63
63
|
import './drag-editable-table-pro/index.css';
|
|
64
64
|
import './editable-table-pro/index.css';
|
|
65
|
+
import './tips-wrapper/index.css';
|
|
65
66
|
import './drag-form-list/index.css';
|
|
66
67
|
import './form-item-group/index.css';
|
|
67
68
|
import './drag-table/index.css';
|
|
@@ -71,7 +72,6 @@ import './easy-form/index.css';
|
|
|
71
72
|
import './form-wrapper/index.css';
|
|
72
73
|
import './easy-table/index.css';
|
|
73
74
|
import './pagination-wrapper/index.css';
|
|
74
|
-
import './tips-wrapper/index.css';
|
|
75
75
|
import './form-grid/index.css';
|
|
76
76
|
import './table-scrollbar/index.css';
|
|
77
77
|
import './svg-http-view/index.css';
|
|
@@ -129,5 +129,5 @@ import './tree-wrapper/index.css';
|
|
|
129
129
|
import './x-mind-preview/index.css';
|
|
130
130
|
import './index.css';
|
|
131
131
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
132
|
-
export{AceEditorGroovy}from"./ace-editor-groovy/index.js";export{AceEditorJava}from"./ace-editor-java/index.js";export{AceEditorJson}from"./ace-editor-json/index.js";export{AceEditorMysql}from"./ace-editor-mysql/index.js";export{AceEditorXml}from"./ace-editor-xml/index.js";export{AlertWrapper}from"./alert-wrapper/index.js";export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{BlockLayout}from"./block-layout/index.js";export{Bootstrap}from"./bootstrap/index.js";export{BoxGrid,useBoxBreakpoint}from"./box-grid/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CardLayout}from"./card-layout/index.js";export{CardWrapper}from"./card-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{C as ConfigProviderWrapper}from"./index-7f4ad045.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{DeleteNode}from"./delete-node/index.js";export{dialogAlert}from"./dialog-alert/index.js";export{dialogConfirm}from"./dialog-confirm/index.js";export{dialogDrawer}from"./dialog-drawer/index.js";export{DialogDrawerContent}from"./dialog-drawer-content/index.js";export{dialogLoading}from"./dialog-loading/index.js";export{dialogModal}from"./dialog-modal/index.js";export{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragEditableTable}from"./drag-editable-table/index.js";export{DragEditableTablePro}from"./drag-editable-table-pro/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DragTable}from"./drag-table/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyForm}from"./easy-form/index.js";export{EasyTable}from"./easy-table/index.js";export{EditableField}from"./editable-field/index.js";export{EditableFieldProvider}from"./editable-field-provider/index.js";export{EditableTable}from"./editable-table/index.js";export{EditableTablePro}from"./editable-table-pro/index.js";export{EditorWrapper}from"./editor-wrapper/index.js";export{ErrorBoundaryWrapper}from"./error-boundary-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{FileExport}from"./file-export/index.js";export{FileImport}from"./file-import/index.js";export{FileSelect}from"./file-select/index.js";export{FlexLayout}from"./flex-layout/index.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{FormItemHidden}from"./form-item-hidden/index.js";export{FormItemText}from"./form-item-text/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{FormWrapper}from"./form-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{JsonEditor}from"./json-editor/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LabelValueRender}from"./label-value-render/index.js";export{LocalLoading}from"./local-loading/index.js";export{MentionEditor}from"./mention-editor/index.js";export{MentionsWrapper}from"./mentions-wrapper/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{PaginationWrapper}from"./pagination-wrapper/index.js";export{Pdf}from"./pdf/index.js";export{PdfPreview}from"./pdf-preview/index.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchForm}from"./search-form/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{SplitWrapper}from"./split-wrapper/index.js";export{styles}from"./styles/index.js";export{SvgHttpView}from"./svg-http-view/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/index.js";export{TagListRender}from"./tag-list-render/index.js";export{TagListSelect}from"./tag-list-select/index.js";export{TagWrapper}from"./tag-wrapper/index.js";export{TextCssEllipsis}from"./text-css-ellipsis/index.js";export{TextOverflow}from"./text-overflow/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TextSymbolWrapper}from"./text-symbol-wrapper/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";export{XMindPreview}from"./x-mind-preview/index.js";import"./_rollupPluginBabelHelpers-a0769acd.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-object";import"@flatbiz/utils";import"react";import"react-ace";import"ace-builds/src-noconflict/ext-language_tools";import"ace-builds/src-noconflict/mode-groovy";import"ace-builds/src-noconflict/snippets/groovy";import"react/jsx-runtime";import"ace-builds/src-noconflict/mode-java";import"ace-builds/src-noconflict/snippets/java";import"ace-builds/src-noconflict/mode-json";import"ace-builds/src-noconflict/snippets/json";import"sql-formatter";import"ace-builds/src-noconflict/mode-mysql";import"ace-builds/src-noconflict/snippets/mysql";import"antd";import"xml-formatter";import"ace-builds/src-noconflict/mode-xml";import"ace-builds/src-noconflict/snippets/xml";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";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"./time-53b3f55f.js";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/DeleteOutlined";import"react-dom/client";import"./context-1f2093c6.js";import"./dom-4d04aa64.js";import"@dimjs/lang/cjs/is-null";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@dnd-kit/modifiers";import"@flatbiz/antd";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@ant-design/icons/es/icons/EditOutlined";import"./context-62955871.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/QuestionCircleFilled";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-split";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";import"simple-mind-map";
|
|
132
|
+
export{AceEditorGroovy}from"./ace-editor-groovy/index.js";export{AceEditorJava}from"./ace-editor-java/index.js";export{AceEditorJson}from"./ace-editor-json/index.js";export{AceEditorMysql}from"./ace-editor-mysql/index.js";export{AceEditorXml}from"./ace-editor-xml/index.js";export{AlertWrapper}from"./alert-wrapper/index.js";export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{BlockLayout}from"./block-layout/index.js";export{Bootstrap}from"./bootstrap/index.js";export{BoxGrid,useBoxBreakpoint}from"./box-grid/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CardLayout}from"./card-layout/index.js";export{CardWrapper}from"./card-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{C as ConfigProviderWrapper}from"./index-7f4ad045.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{DeleteNode}from"./delete-node/index.js";export{dialogAlert}from"./dialog-alert/index.js";export{dialogConfirm}from"./dialog-confirm/index.js";export{dialogDrawer}from"./dialog-drawer/index.js";export{DialogDrawerContent}from"./dialog-drawer-content/index.js";export{dialogLoading}from"./dialog-loading/index.js";export{dialogModal}from"./dialog-modal/index.js";export{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragEditableTable}from"./drag-editable-table/index.js";export{DragEditableTablePro}from"./drag-editable-table-pro/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DragTable}from"./drag-table/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyForm}from"./easy-form/index.js";export{EasyTable}from"./easy-table/index.js";export{EditableField}from"./editable-field/index.js";export{EditableFieldProvider}from"./editable-field-provider/index.js";export{EditableTable}from"./editable-table/index.js";export{EditableTablePro}from"./editable-table-pro/index.js";export{EditorWrapper}from"./editor-wrapper/index.js";export{ErrorBoundaryWrapper}from"./error-boundary-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{FileExport}from"./file-export/index.js";export{FileImport}from"./file-import/index.js";export{FileSelect}from"./file-select/index.js";export{FlexLayout}from"./flex-layout/index.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{FormItemHidden}from"./form-item-hidden/index.js";export{FormItemText}from"./form-item-text/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{FormWrapper}from"./form-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{JsonEditor}from"./json-editor/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LabelValueRender}from"./label-value-render/index.js";export{LocalLoading}from"./local-loading/index.js";export{MentionEditor}from"./mention-editor/index.js";export{MentionsWrapper}from"./mentions-wrapper/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{PaginationWrapper}from"./pagination-wrapper/index.js";export{Pdf}from"./pdf/index.js";export{PdfPreview}from"./pdf-preview/index.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchForm}from"./search-form/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{SplitWrapper}from"./split-wrapper/index.js";export{styles}from"./styles/index.js";export{SvgHttpView}from"./svg-http-view/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/index.js";export{TagListRender}from"./tag-list-render/index.js";export{TagListSelect}from"./tag-list-select/index.js";export{TagWrapper}from"./tag-wrapper/index.js";export{TextCssEllipsis}from"./text-css-ellipsis/index.js";export{TextOverflow}from"./text-overflow/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TextSymbolWrapper}from"./text-symbol-wrapper/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";export{XMindPreview}from"./x-mind-preview/index.js";import"./_rollupPluginBabelHelpers-a0769acd.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-object";import"@flatbiz/utils";import"react";import"react-ace";import"ace-builds/src-noconflict/ext-language_tools";import"ace-builds/src-noconflict/mode-groovy";import"ace-builds/src-noconflict/snippets/groovy";import"react/jsx-runtime";import"ace-builds/src-noconflict/mode-java";import"ace-builds/src-noconflict/snippets/java";import"ace-builds/src-noconflict/mode-json";import"ace-builds/src-noconflict/snippets/json";import"sql-formatter";import"ace-builds/src-noconflict/mode-mysql";import"ace-builds/src-noconflict/snippets/mysql";import"antd";import"xml-formatter";import"ace-builds/src-noconflict/mode-xml";import"ace-builds/src-noconflict/snippets/xml";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";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"./time-53b3f55f.js";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/DeleteOutlined";import"react-dom/client";import"./context-1f2093c6.js";import"./dom-4d04aa64.js";import"@dimjs/lang/cjs/is-null";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@dnd-kit/modifiers";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@ant-design/icons/es/icons/EditOutlined";import"./context-62955871.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/QuestionCircleFilled";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-split";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";import"simple-mind-map";
|
|
133
133
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isString as e}from"@dimjs/lang/cjs/is-string";import{useRef as n,useMemo as r,memo as i}from"react";import{classNames as a}from"@dimjs/utils/cjs/class-names";import{useSize as l}from"ahooks";import{Tooltip as o}from"antd";import{fbaHooks as s}from"../fba-hooks/index.js";import{jsxs as d,jsx as c}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";var h=function t(e){var r=n(null);var i=l(r);var h=(i==null?void 0:i.width)||0;var u=n(null);var m=l(u);var v=s.useMemoCustom((function(){if(!(m!=null&&m.width)||!h)return false;return m.width>h}),[m==null?void 0:m.width,h]);return d("div",{className:a("text-overflow",{"tow-trigger":e.onClick}),ref:r,children:[c("span",{className:"tow-hidden",children:c("span",{className:"tow-inner-text",ref:u,children:e.text})}),c(o,{title:v?e.text:undefined,children:c("span",{className:"tow-content",children:c("span",{className:"tow-show-text",onClick:e.onClick,children:e.text})})})]})};var u=function t(e){var r=n(null);var i=l(r);var s=e.maxLength;var h=(i==null?void 0:i.width)||0;var u=e.text;var m=n(null);var v=l(m);var
|
|
5
|
+
import{_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isString as e}from"@dimjs/lang/cjs/is-string";import{useRef as n,useMemo as r,memo as i}from"react";import{classNames as a}from"@dimjs/utils/cjs/class-names";import{useSize as l}from"ahooks";import{Tooltip as o}from"antd";import{fbaHooks as s}from"../fba-hooks/index.js";import{jsxs as d,jsx as c}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";var h=function t(e){var r=n(null);var i=l(r);var h=(i==null?void 0:i.width)||0;var u=n(null);var m=l(u);var v=s.useMemoCustom((function(){if(!(m!=null&&m.width)||!h)return false;return m.width>h}),[m==null?void 0:m.width,h]);return d("div",{className:a("text-overflow",{"tow-trigger":e.onClick}),ref:r,children:[c("span",{className:"tow-hidden",children:c("span",{className:"tow-inner-text",ref:u,children:e.text})}),c(o,{title:v&&!e.hideTip?e.text:undefined,children:c("span",{className:"tow-content",children:c("span",{className:"tow-show-text",onClick:e.onClick,children:e.text})})})]})};var u=function t(e){var r=n(null);var i=l(r);var s=e.maxLength;var h=(i==null?void 0:i.width)||0;var u=e.text;var m=n(null);var v=l(m);var f=u.length>s;var w=(v==null?void 0:v.width)||0;var x=f&&w<h;var p=h<w+1||f;var g=u.substring(0,e.maxLength);return d("div",{className:a("text-overflow",{"tow-trigger":e.onClick}),ref:r,children:[c("span",{className:"tow-hidden",children:c("span",{className:"tow-inner-text",ref:m,children:g})}),c(o,{title:p&&!e.hideTip?u:undefined,children:x?c("span",{className:"tow-cut-content",children:d("span",{className:"tow-show-text",onClick:e.onClick,children:[g,"..."]})}):c("span",{className:"tow-content",children:c("span",{className:"tow-show-text",onClick:e.onClick,children:u})})})]})};var m=function t(e){var i=n(null);var s=l(i);var h=e.maxWidth||0;var u=n(null);var m=l(u);var v=r((function(){if(!(m!=null&&m.width)||!(s!=null&&s.width))return undefined;if(s.width<h){if(m.width>s.width){return{isTextOverflow:true}}}if(m.width<h)return undefined;if(m.width>h){return{isTextOverflow:true,width:h}}return undefined}),[m==null?void 0:m.width,h]);var f=v==null?void 0:v.isTextOverflow;return d("div",{className:a("text-overflow",{"tow-trigger":e.onClick}),ref:i,children:[c("span",{className:"tow-hidden",children:c("span",{className:"tow-inner-text",ref:u,children:e.text})}),c(o,{title:f&&!e.hideTip?e.text:undefined,children:c("span",{className:"tow-content",style:{width:v==null?void 0:v.width},children:c("span",{className:"tow-show-text",onClick:e.onClick,children:e.text})})})]})};var v=function n(r){if(r.maxLength&&e(r.text)){return c(u,t({},r))}if(r.maxWidth){return c(m,t({},r))}return c(h,t({},r))};var f=i(v,(function(t,e){if(t.text!==e.text||t.maxLength!==e.maxLength||t.maxWidth!==t.maxWidth){return false}return true}));export{f as TextOverflow};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/text-overflow/overflow-auto.tsx","@flatbiz/antd/src/text-overflow/overflow-length.tsx","@flatbiz/antd/src/text-overflow/overflow-width.tsx","@flatbiz/antd/src/text-overflow/text-overflow.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowAuto = (props: TextOverflowProps) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const size = useSize(rootRef);\n const parentNodeWidth = size?.width || 0;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n\n // 文本宽度\n const showTips = fbaHooks.useMemoCustom(() => {\n if (!hideTextSize?.width || !parentNodeWidth) return false;\n return hideTextSize.width > parentNodeWidth;\n }, [hideTextSize?.width, parentNodeWidth]);\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {props.text}\n </span>\n </span>\n <Tooltip title={showTips ? props.text : undefined}>\n <span className=\"tow-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {props.text}\n </span>\n </span>\n </Tooltip>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useRef } from 'react';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowLength = (props: Omit<TextOverflowProps, 'maxWidth'>) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const size = useSize(rootRef);\n const maxLength = props.maxLength as number;\n const parentNodeWidth = size?.width || 0;\n const text = props.text as string;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n const needCut = text.length > maxLength;\n\n const cutedTextWidth = hideTextSize?.width || 0;\n\n const showCustomEllipsis = needCut && cutedTextWidth < parentNodeWidth;\n\n const showTips = parentNodeWidth < cutedTextWidth + 1 || needCut;\n\n const cutValue = text.substring(0, props.maxLength);\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {cutValue}\n </span>\n </span>\n\n <Tooltip title={showTips ? text : undefined}>\n {showCustomEllipsis ? (\n <span className=\"tow-cut-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {cutValue}...\n </span>\n </span>\n ) : (\n <span className=\"tow-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {text}\n </span>\n </span>\n )}\n </Tooltip>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowWidth = (props: Omit<TextOverflowProps, 'maxLength'>) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const rootSize = useSize(rootRef);\n const maxWidth = props.maxWidth || 0;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n\n const handleResult = useMemo(() => {\n if (!hideTextSize?.width || !rootSize?.width) return undefined;\n if (rootSize.width < maxWidth) {\n if (hideTextSize.width > rootSize.width) {\n return { showTips: true };\n }\n }\n if (hideTextSize.width < maxWidth) return undefined;\n if (hideTextSize.width > maxWidth) {\n return { showTips: true, width: maxWidth };\n }\n return undefined;\n }, [hideTextSize?.width, maxWidth]);\n\n const showTips = handleResult?.showTips;\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {props.text}\n </span>\n </span>\n\n <Tooltip title={showTips ? props.text : undefined}>\n <span className=\"tow-content\" style={{ width: handleResult?.width }}>\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {props.text}\n </span>\n </span>\n </Tooltip>\n </div>\n );\n};\n","import { isString } from '@dimjs/lang';\nimport { memo } from 'react';\nimport { OverflowAuto } from './overflow-auto';\nimport { OverflowLength } from './overflow-length';\nimport { OverflowWidth } from './overflow-width';\nimport './style.less';\nimport { TextOverflowProps } from './types';\n\nconst InnerTextOverflow = (props: TextOverflowProps) => {\n if (props.maxLength && isString(props.text)) {\n return <OverflowLength {...props} />;\n }\n if (props.maxWidth) {\n return <OverflowWidth {...props} />;\n }\n return <OverflowAuto {...props} />;\n};\n\n/**\n * 内容溢出截取,并在尾部添加...,被截取的添加Tooltip显示完整数据\n * ```\n * 控制文本显示三种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 maxWidth 控制超长\n * 3. 与父节点宽度比较,控制超长\n * 4. 优先级 maxLength > maxWidth\n *\n * 注意:\n * 1. 当前节点父节点需要添加 overflow-x: hidden;\n * 2. 如果父节点设置flex-shrink会有影响,可复写flex-shrink: initial;\n * 3. 与 Table columns render结合使用,需要配置ellipsis=true\n * 例如:<Table columns={[{\n ...\n render: (value) => {\n return <TextOverflow text={value} />;\n },\n ellipsis: true,\n }]} />\n 4. 与 Table columns render结合使用,如果Table配置了 scroll={{ x: 'max-content' }}后,不能与TextOverflow maxWidth结合使用\n * ```\n */\nexport const TextOverflow = memo(InnerTextOverflow, (pre, next) => {\n if (pre.text !== next.text || pre.maxLength !== next.maxLength || pre.maxWidth !== pre.maxWidth) {\n return false;\n }\n return true;\n});\n"],"names":["OverflowAuto","props","rootRef","useRef","size","useSize","parentNodeWidth","width","hideTextRef","hideTextSize","showTips","fbaHooks","useMemoCustom","_jsxs","className","_classNames","onClick","ref","children","_jsx","text","Tooltip","title","undefined","OverflowLength","maxLength","needCut","length","cutedTextWidth","showCustomEllipsis","cutValue","substring","OverflowWidth","rootSize","maxWidth","handleResult","useMemo","style","InnerTextOverflow","_isString","_extends","TextOverflow","memo","pre","next"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/text-overflow/overflow-auto.tsx","@flatbiz/antd/src/text-overflow/overflow-length.tsx","@flatbiz/antd/src/text-overflow/overflow-width.tsx","@flatbiz/antd/src/text-overflow/text-overflow.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowAuto = (props: TextOverflowProps) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const size = useSize(rootRef);\n const parentNodeWidth = size?.width || 0;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n\n // 文本宽度是否溢出\n const isTextOverflow = fbaHooks.useMemoCustom(() => {\n if (!hideTextSize?.width || !parentNodeWidth) return false;\n return hideTextSize.width > parentNodeWidth;\n }, [hideTextSize?.width, parentNodeWidth]);\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {props.text}\n </span>\n </span>\n <Tooltip title={isTextOverflow && !props.hideTip ? props.text : undefined}>\n <span className=\"tow-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {props.text}\n </span>\n </span>\n </Tooltip>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useRef } from 'react';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowLength = (props: Omit<TextOverflowProps, 'maxWidth'>) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const size = useSize(rootRef);\n const maxLength = props.maxLength as number;\n const parentNodeWidth = size?.width || 0;\n const text = props.text as string;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n const needCut = text.length > maxLength;\n\n const cutedTextWidth = hideTextSize?.width || 0;\n\n const showCustomEllipsis = needCut && cutedTextWidth < parentNodeWidth;\n\n const isTextOverflow = parentNodeWidth < cutedTextWidth + 1 || needCut;\n\n const cutValue = text.substring(0, props.maxLength);\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {cutValue}\n </span>\n </span>\n\n <Tooltip title={isTextOverflow && !props.hideTip ? text : undefined}>\n {showCustomEllipsis ? (\n <span className=\"tow-cut-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {cutValue}...\n </span>\n </span>\n ) : (\n <span className=\"tow-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {text}\n </span>\n </span>\n )}\n </Tooltip>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowWidth = (props: Omit<TextOverflowProps, 'maxLength'>) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const rootSize = useSize(rootRef);\n const maxWidth = props.maxWidth || 0;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n\n const handleResult = useMemo(() => {\n if (!hideTextSize?.width || !rootSize?.width) return undefined;\n if (rootSize.width < maxWidth) {\n if (hideTextSize.width > rootSize.width) {\n return { isTextOverflow: true };\n }\n }\n if (hideTextSize.width < maxWidth) return undefined;\n if (hideTextSize.width > maxWidth) {\n return { isTextOverflow: true, width: maxWidth };\n }\n return undefined;\n }, [hideTextSize?.width, maxWidth]);\n\n const isTextOverflow = handleResult?.isTextOverflow;\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {props.text}\n </span>\n </span>\n\n <Tooltip title={isTextOverflow && !props.hideTip ? props.text : undefined}>\n <span className=\"tow-content\" style={{ width: handleResult?.width }}>\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {props.text}\n </span>\n </span>\n </Tooltip>\n </div>\n );\n};\n","import { isString } from '@dimjs/lang';\nimport { memo } from 'react';\nimport { OverflowAuto } from './overflow-auto';\nimport { OverflowLength } from './overflow-length';\nimport { OverflowWidth } from './overflow-width';\nimport './style.less';\nimport { TextOverflowProps } from './types';\n\nconst InnerTextOverflow = (props: TextOverflowProps) => {\n if (props.maxLength && isString(props.text)) {\n return <OverflowLength {...props} />;\n }\n if (props.maxWidth) {\n return <OverflowWidth {...props} />;\n }\n return <OverflowAuto {...props} />;\n};\n\n/**\n * 内容溢出截取,并在尾部添加...,被截取的添加Tooltip显示完整数据\n * ```\n * 控制文本显示三种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 maxWidth 控制超长\n * 3. 与父节点宽度比较,控制超长\n * 4. 优先级 maxLength > maxWidth\n *\n * 注意:\n * 1. 当前节点父节点需要添加 overflow-x: hidden;\n * 2. 如果父节点设置flex-shrink会有影响,可复写flex-shrink: initial;\n * 3. 与 Table columns render结合使用,需要配置ellipsis=true\n * 例如:<Table columns={[{\n ...\n render: (value) => {\n return <TextOverflow text={value} />;\n },\n ellipsis: true,\n }]} />\n 4. 与 Table columns render结合使用,如果Table配置了 scroll={{ x: 'max-content' }}后,不能与TextOverflow maxWidth结合使用\n * ```\n */\nexport const TextOverflow = memo(InnerTextOverflow, (pre, next) => {\n if (pre.text !== next.text || pre.maxLength !== next.maxLength || pre.maxWidth !== pre.maxWidth) {\n return false;\n }\n return true;\n});\n"],"names":["OverflowAuto","props","rootRef","useRef","size","useSize","parentNodeWidth","width","hideTextRef","hideTextSize","isTextOverflow","fbaHooks","useMemoCustom","_jsxs","className","_classNames","onClick","ref","children","_jsx","text","Tooltip","title","hideTip","undefined","OverflowLength","maxLength","needCut","length","cutedTextWidth","showCustomEllipsis","cutValue","substring","OverflowWidth","rootSize","maxWidth","handleResult","useMemo","style","InnerTextOverflow","_isString","_extends","TextOverflow","memo","pre","next"],"mappings":";ugBAQO,IAAMA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAUC,EAAuB,MACvC,IAAMC,EAAOC,EAAQH,GACrB,IAAMI,GAAkBF,eAAAA,EAAMG,QAAS,EACvC,IAAMC,EAAcL,EAAwB,MAE5C,IAAMM,EAAeJ,EAAQG,GAG7B,IAAME,EAAiBC,EAASC,eAAc,WAC5C,KAAKH,GAAY,MAAZA,EAAcF,SAAUD,EAAiB,OAAO,MACrD,OAAOG,EAAaF,MAAQD,IAC3B,CAACG,GAAAA,UAAAA,EAAAA,EAAcF,MAAOD,IAEzB,OACEO,EAAA,MAAA,CACEC,UAAWC,EAAW,gBAAiB,CACrC,cAAed,EAAMe,UAEvBC,IAAKf,EAAQgB,UAEbC,EAAA,OAAA,CAAML,UAAU,aAAYI,SAC1BC,EAAA,OAAA,CAAML,UAAU,iBAAiBG,IAAKT,EAAYU,SAC/CjB,EAAMmB,SAGXD,EAACE,EAAO,CAACC,MAAOZ,IAAmBT,EAAMsB,QAAUtB,EAAMmB,KAAOI,UAAUN,SACxEC,EAAA,OAAA,CAAML,UAAU,cAAaI,SAC3BC,EAAA,OAAA,CAAML,UAAU,gBAAgBE,QAASf,EAAMe,QAAQE,SACpDjB,EAAMmB,aAMnB,ECrCO,IAAMK,EAAiB,SAAjBA,EAAkBxB,GAC7B,IAAMC,EAAUC,EAAuB,MACvC,IAAMC,EAAOC,EAAQH,GACrB,IAAMwB,EAAYzB,EAAMyB,UACxB,IAAMpB,GAAkBF,eAAAA,EAAMG,QAAS,EACvC,IAAMa,EAAOnB,EAAMmB,KACnB,IAAMZ,EAAcL,EAAwB,MAE5C,IAAMM,EAAeJ,EAAQG,GAC7B,IAAMmB,EAAUP,EAAKQ,OAASF,EAE9B,IAAMG,GAAiBpB,eAAAA,EAAcF,QAAS,EAE9C,IAAMuB,EAAqBH,GAAWE,EAAiBvB,EAEvD,IAAMI,EAAiBJ,EAAkBuB,EAAiB,GAAKF,EAE/D,IAAMI,EAAWX,EAAKY,UAAU,EAAG/B,EAAMyB,WAEzC,OACEb,EAAA,MAAA,CACEC,UAAWC,EAAW,gBAAiB,CACrC,cAAed,EAAMe,UAEvBC,IAAKf,EAAQgB,UAEbC,EAAA,OAAA,CAAML,UAAU,aAAYI,SAC1BC,EAAA,OAAA,CAAML,UAAU,iBAAiBG,IAAKT,EAAYU,SAC/Ca,MAILZ,EAACE,EAAO,CAACC,MAAOZ,IAAmBT,EAAMsB,QAAUH,EAAOI,UAAUN,SACjEY,EACCX,EAAA,OAAA,CAAML,UAAU,kBAAiBI,SAC/BL,EAAA,OAAA,CAAMC,UAAU,gBAAgBE,QAASf,EAAMe,QAAQE,SAAA,CACpDa,EAAS,WAIdZ,EAAA,OAAA,CAAML,UAAU,cAAaI,SAC3BC,EAAA,OAAA,CAAML,UAAU,gBAAgBE,QAASf,EAAMe,QAAQE,SACpDE,UAOf,ECjDO,IAAMa,EAAgB,SAAhBA,EAAiBhC,GAC5B,IAAMC,EAAUC,EAAuB,MACvC,IAAM+B,EAAW7B,EAAQH,GACzB,IAAMiC,EAAWlC,EAAMkC,UAAY,EACnC,IAAM3B,EAAcL,EAAwB,MAE5C,IAAMM,EAAeJ,EAAQG,GAE7B,IAAM4B,EAAeC,GAAQ,WAC3B,KAAK5B,GAAAA,MAAAA,EAAcF,UAAU2B,SAAAA,EAAU3B,OAAO,OAAOiB,UACrD,GAAIU,EAAS3B,MAAQ4B,EAAU,CAC7B,GAAI1B,EAAaF,MAAQ2B,EAAS3B,MAAO,CACvC,MAAO,CAAEG,eAAgB,KAC3B,CACF,CACA,GAAID,EAAaF,MAAQ4B,EAAU,OAAOX,UAC1C,GAAIf,EAAaF,MAAQ4B,EAAU,CACjC,MAAO,CAAEzB,eAAgB,KAAMH,MAAO4B,EACxC,CACA,OAAOX,YACN,CAACf,GAAAA,UAAAA,EAAAA,EAAcF,MAAO4B,IAEzB,IAAMzB,EAAiB0B,GAAAA,UAAAA,EAAAA,EAAc1B,eAErC,OACEG,EAAA,MAAA,CACEC,UAAWC,EAAW,gBAAiB,CACrC,cAAed,EAAMe,UAEvBC,IAAKf,EAAQgB,UAEbC,EAAA,OAAA,CAAML,UAAU,aAAYI,SAC1BC,EAAA,OAAA,CAAML,UAAU,iBAAiBG,IAAKT,EAAYU,SAC/CjB,EAAMmB,SAIXD,EAACE,EAAO,CAACC,MAAOZ,IAAmBT,EAAMsB,QAAUtB,EAAMmB,KAAOI,UAAUN,SACxEC,EAAA,OAAA,CAAML,UAAU,cAAcwB,MAAO,CAAE/B,MAAO6B,GAAAA,UAAAA,EAAAA,EAAc7B,OAAQW,SAClEC,EAAA,OAAA,CAAML,UAAU,gBAAgBE,QAASf,EAAMe,QAAQE,SACpDjB,EAAMmB,aAMnB,EC5CA,IAAMmB,EAAoB,SAApBA,EAAqBtC,GACzB,GAAIA,EAAMyB,WAAac,EAASvC,EAAMmB,MAAO,CAC3C,OAAOD,EAACM,EAAcgB,EAAKxC,CAAAA,EAAAA,GAC7B,CACA,GAAIA,EAAMkC,SAAU,CAClB,OAAOhB,EAACc,EAAaQ,EAAKxC,CAAAA,EAAAA,GAC5B,CACA,OAAOkB,EAACnB,EAAYyC,EAAKxC,CAAAA,EAAAA,GAC3B,EAyBO,IAAMyC,EAAeC,EAAKJ,GAAmB,SAACK,EAAKC,GACxD,GAAID,EAAIxB,OAASyB,EAAKzB,MAAQwB,EAAIlB,YAAcmB,EAAKnB,WAAakB,EAAIT,WAAaS,EAAIT,SAAU,CAC/F,OAAO,KACT,CACA,OAAO,IACT"}
|
package/index.d.ts
CHANGED
|
@@ -1804,7 +1804,7 @@ export type EditableTableProps = {
|
|
|
1804
1804
|
};
|
|
1805
1805
|
/**
|
|
1806
1806
|
* 可编辑表格(通过FormList实现)
|
|
1807
|
-
* @deprecated 已过期,请使用
|
|
1807
|
+
* @deprecated 已过期,请使用 EditableTablePro 组件
|
|
1808
1808
|
* demo:https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1
|
|
1809
1809
|
* ```
|
|
1810
1810
|
* 1. 表格数据必须要有唯一值字段,通过属性uidFieldKey设置
|
|
@@ -1855,21 +1855,23 @@ export type DragEditableTableProps = EditableTableProps & {
|
|
|
1855
1855
|
* ```
|
|
1856
1856
|
*/
|
|
1857
1857
|
export declare const DragEditableTable: (props: DragEditableTableProps) => import("react/jsx-runtime").JSX.Element;
|
|
1858
|
-
export type EditableTableProDataIndex = string |
|
|
1858
|
+
export type EditableTableProDataIndex = string | readonly (string | number)[];
|
|
1859
1859
|
export interface EditableTableProOperation {
|
|
1860
1860
|
add: (defaultValue: TPlainObject, insertIndex?: number) => void;
|
|
1861
1861
|
remove: (index: number) => void;
|
|
1862
1862
|
/** 同一级内移动 */
|
|
1863
1863
|
move: (fromIndex: number, toIndex: number) => void;
|
|
1864
1864
|
/** 是否可编辑 */
|
|
1865
|
-
editable
|
|
1865
|
+
editable?: boolean;
|
|
1866
1866
|
/** 当前行数据层级 */
|
|
1867
1867
|
level: number;
|
|
1868
|
-
/**
|
|
1869
|
-
|
|
1868
|
+
/** 设置当前行指定字段值 */
|
|
1869
|
+
setCurrentRowTargetField: (dataIndexConfigs: {
|
|
1870
1870
|
name: EditableTableProDataIndex;
|
|
1871
1871
|
value?: TAny;
|
|
1872
1872
|
}[]) => void;
|
|
1873
|
+
/** 设置当前行 children 数据 */
|
|
1874
|
+
setCurrentRowChildrenValue: (value?: TPlainObject[]) => void;
|
|
1873
1875
|
/** 当前行父级数据 */
|
|
1874
1876
|
parentItem: TPlainObject | null;
|
|
1875
1877
|
/** 当前行表单 name */
|
|
@@ -1880,9 +1882,23 @@ export interface EditableTableProOperation {
|
|
|
1880
1882
|
export type EditableTableProColumnItem = Omit<ColumnsType[0], "render" | "title" | "dataIndex"> & {
|
|
1881
1883
|
title?: ReactElement | string;
|
|
1882
1884
|
dataIndex?: EditableTableProDataIndex;
|
|
1883
|
-
|
|
1885
|
+
/** Form.Item props */
|
|
1886
|
+
formItemProps?: Omit<FormItemWrapperProps, "children" | "name"> | ((value: TAny, record: TPlainObject, index: number, operation: EditableTableProOperation) => Omit<FormItemWrapperProps, "children" | "name">);
|
|
1887
|
+
/**
|
|
1888
|
+
* 通过 operation.editable 来判断渲染结构
|
|
1889
|
+
* ```
|
|
1890
|
+
* 例如
|
|
1891
|
+
* render: (_value, _record, _index, operation) => {
|
|
1892
|
+
* if (operation.editable) {
|
|
1893
|
+
* return <Input placeholder="请输入" />;
|
|
1894
|
+
* }
|
|
1895
|
+
* return <Tag>{value}</Tag>;
|
|
1896
|
+
* }
|
|
1897
|
+
* ```
|
|
1898
|
+
*/
|
|
1884
1899
|
render?: (value: TAny, record: TPlainObject, index: number, operation: EditableTableProOperation) => ReactElement;
|
|
1885
|
-
|
|
1900
|
+
/** 是否可编辑 */
|
|
1901
|
+
editable?: boolean | ((record: TPlainObject, index: number) => boolean);
|
|
1886
1902
|
/**
|
|
1887
1903
|
* 会在 title 之后展示一个 icon
|
|
1888
1904
|
* ```
|
|
@@ -1948,7 +1964,7 @@ export type EditableTableProProps = {
|
|
|
1948
1964
|
* 1. 必须在外部包裹Form组件
|
|
1949
1965
|
* 2. 表格数据源数组中必须存在唯一值字段,通过uidFieldKey配置
|
|
1950
1966
|
* 3. 可嵌套编辑,数据嵌套的节点名称可通过 childrenColumnName设置,默认:children
|
|
1951
|
-
* 4. 行内需要联动逻辑可使用 column.render.operation.
|
|
1967
|
+
* 4. 行内需要联动逻辑可使用 column.render.operation.setCurrentRowTargetField 方法
|
|
1952
1968
|
* 5. 在多级编辑中,可通过 column.render.operation.level 判断当前行数据层级
|
|
1953
1969
|
* 6. 不存在多级的情况下,可使用DragEditableTablePro组件实现拖拽排序
|
|
1954
1970
|
* 7. 存在多级的情况下,可通过 column.render.operation.move 方法实现同一级内移动
|
|
@@ -3072,6 +3088,28 @@ export declare const fbaUtils: {
|
|
|
3072
3088
|
getPermissionList: () => string[];
|
|
3073
3089
|
attachPropertiesToComponent: typeof attachPropertiesToComponent;
|
|
3074
3090
|
getModelKey: () => string;
|
|
3091
|
+
/**
|
|
3092
|
+
* 手动触发Antd Form 的 onValuesChange
|
|
3093
|
+
* ```
|
|
3094
|
+
* 1. 正常在通过 form.setFieldsValue 不会触发onValuesChange
|
|
3095
|
+
* 2. 需要触发可调用此方法
|
|
3096
|
+
* ```
|
|
3097
|
+
*/
|
|
3098
|
+
triggerFormValuesChange: (form: FormInstance, changeList: {
|
|
3099
|
+
name: string | number | Array<string | number>;
|
|
3100
|
+
value: TAny;
|
|
3101
|
+
}[]) => void;
|
|
3102
|
+
/**
|
|
3103
|
+
* 操作Antd Form
|
|
3104
|
+
* ```
|
|
3105
|
+
* 1. 通过 form.setFields 修改属性值
|
|
3106
|
+
* 2. 触发 Form 的 onValuesChange
|
|
3107
|
+
* ```
|
|
3108
|
+
*/
|
|
3109
|
+
setFormFieldsAndTriggerValuesChange: (form: FormInstance, changeList: {
|
|
3110
|
+
name: string | number | Array<string | number>;
|
|
3111
|
+
value: TAny;
|
|
3112
|
+
}[]) => void;
|
|
3075
3113
|
};
|
|
3076
3114
|
export type FileExportProps = {
|
|
3077
3115
|
/** 触发节点 */
|
|
@@ -5107,6 +5145,11 @@ export type TextOverflowProps = {
|
|
|
5107
5145
|
maxWidth?: number;
|
|
5108
5146
|
/** 最大显示字数 */
|
|
5109
5147
|
maxLength?: number;
|
|
5148
|
+
/**
|
|
5149
|
+
* 关闭tooltip功能
|
|
5150
|
+
* 文字超出后,鼠标移入,不展示全部文字
|
|
5151
|
+
*/
|
|
5152
|
+
hideTip?: boolean;
|
|
5110
5153
|
onClick?: (e: any) => void;
|
|
5111
5154
|
};
|
|
5112
5155
|
/**
|