@flatbiz/antd 4.2.94 → 4.2.95
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/button-operate/index.js +1 -1
- package/esm/button-operate/index.js.map +1 -1
- package/esm/button-wrapper/index.js +1 -1
- package/esm/button-wrapper/index.js.map +1 -1
- package/esm/color-picker-wrapper/index.js +2 -1
- package/esm/color-picker-wrapper/index.js.map +1 -1
- package/esm/config-provider-wrapper/index.js +1 -1
- package/esm/config-provider-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js +2 -1
- package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/dialog-alert/index.js +1 -1
- package/esm/dialog-alert/index.js.map +1 -1
- package/esm/dialog-confirm/index.js +1 -1
- package/esm/dialog-confirm/index.js.map +1 -1
- package/esm/dialog-drawer/index.js +1 -1
- package/esm/dialog-drawer/index.js.map +1 -1
- package/esm/dialog-drawer-content/index.js +1 -1
- package/esm/dialog-drawer-content/index.js.map +1 -1
- package/esm/dialog-modal/index.js +1 -1
- package/esm/dialog-modal/index.js.map +1 -1
- package/esm/drag-collapse-form-list/index.js +1 -1
- package/esm/drag-collapse-form-list/index.js.map +1 -1
- package/esm/drag-form-list/index.js +6 -1
- package/esm/drag-form-list/index.js.map +1 -1
- package/esm/drag-table/index.js +2 -1
- package/esm/drag-table/index.js.map +1 -1
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/dropdown-menu-wrapper/index.js.map +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/error-boundary-wrapper/index.js +2 -1
- package/esm/error-boundary-wrapper/index.js.map +1 -1
- package/esm/fba-app/index.js +5 -2
- package/esm/fba-app/index.js.map +1 -1
- package/esm/form-item-hidden/index.js.map +1 -1
- package/esm/form-item-text/index.css +1 -1
- package/esm/form-item-text/index.js +5 -1
- package/esm/form-item-text/index.js.map +1 -1
- package/esm/form-list-wrapper/index.js +6 -1
- package/esm/form-list-wrapper/index.js.map +1 -1
- package/esm/index-34027e61.js +3 -0
- package/esm/index-34027e61.js.map +1 -0
- package/esm/index.js +5 -4
- package/esm/search-menu/index.css +1 -0
- package/esm/search-menu/index.js +1 -1
- package/esm/search-menu/index.js.map +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/table-cell-render/index.js.map +1 -1
- package/esm/text-css-ellipsis/index.js +2 -1
- package/esm/text-css-ellipsis/index.js.map +1 -1
- package/esm/text-overflow-render/index.js +1 -1
- package/esm/text-overflow-render/index.js.map +1 -1
- package/esm/text-symbol-wrapper/index.css +1 -0
- package/esm/text-symbol-wrapper/index.js +5 -0
- package/esm/text-symbol-wrapper/index.js.map +1 -0
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper/index.js.map +1 -1
- package/index.d.ts +129 -39
- package/package.json +1 -1
- package/esm/index-ac189a77.js +0 -3
- package/esm/index-ac189a77.js.map +0 -1
|
@@ -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{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as a}from"@dimjs/utils/cjs/array";import{hooks as n}from"@wove/react/cjs/hooks";import{DndContext as i,closestCenter as r,DragOverlay as t}from"@dnd-kit/core";import{useSortable as o,SortableContext as d,verticalListSortingStrategy as s,arrayMove as l}from"@dnd-kit/sortable";import{toArray as c}from"@flatbiz/utils";import{Form as m,Collapse as u}from"antd";import{Fragment as f,useState as p,useRef as g,useMemo as v}from"react";import{fbaHooks as h}from"../fba-hooks/index.js";import{_ as I}from"../_rollupPluginBabelHelpers-a0769acd.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as x}from"@dnd-kit/utilities";import{jsx as N,jsxs as b}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";function y(a){var n;var i=m.useFormInstance();var r=a.isOverlay?false:a.getItemDragDisabled==null?void 0:a.getItemDragDisabled(a.uid,a.index);var t=o({id:a.uid,disabled:r}),d=t.listeners,s=t.setNodeRef,l=t.transform,c=t.transition;var p=function e(){var n=a.dragIcon?a.dragIcon:N(D,{});var r=a.header({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name,n]},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index});return a.dragDisabled?r:b(f,{children:[N("span",I({className:"dc-drag-trigger"},d,{children:n})),N("span",{className:"dc-drag-header-content",style:a.headerStyle,children:r})]})};var g=I({transform:x.Transform.toString(l),transition:c},a.style);var v=e("drag-collapse",{"drag-collapse-grap":a.isGray,"drag-collapse-last":a.isLast,"drag-collapse-drag-disabled":r},a.className);return N(u,{activeKey:a.isActive?a.uid:undefined,accordion:true,className:v,collapsible:a.collapsible,expandIcon:a.expandIcon,expandIconPosition:a.expandIconPosition,size:a.size,onChange:(n=a.onChange)==null?void 0:n.bind(null,a.uid),style:I({},g),ref:s,children:N(u.Panel,{header:p(),children:a.content({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name,n]},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index})},a.uid)})}var C=function o(u){var I=p(),D=I[0],x=I[1];var C=p([]),L=C[0],F=C[1];var j=m.useFormInstance();var S=g([]);var k=m.useWatch(u.formListName,j);var P=n.useCallbackRef((function(e){return e==null?void 0:e[u.uidFieldName||"uid"]}));h.useEffectCustom((function(){var e=c(u.defaultActiveKey);if(!u.activeKey&&e.length>0){F(e)}else{F(c(u.activeKey))}}),[]);n.useUpdateEffect((function(){F(c(u.activeKey))}),[u.activeKey]);var z=function e(n){var i=[];if(u.accordion){if(L[0]&&L[0]===n){i=[]}else{i=[n]}}else{var r=L.includes(n);if(r){a.arrayRemove(L,n);i=[].concat(L)}else{i=L.concat(n)}}F(i);if(u.accordion){u.onChange==null?void 0:u.onChange(i.length?i[0]:undefined)}else{u.onChange==null?void 0:u.onChange(i.length?i:undefined)}};function O(e){var a=e.active;x(a.id)}var K=n.useCallbackRef((function(){return j.getFieldValue(u.formListName)||[]}));function A(e){var a=e.active,n=e.over;var i=K();if(a.id!==n.id){var r=i.findIndex((function(e){return P(e)===a.id}));var t=i.findIndex((function(e){return P(e)===n.id}));var o=l(i,r,t);j.setFields([{name:u.formListName,value:o}]);u.onDropChange==null?void 0:u.onDropChange(o)}x(undefined)}var E=v((function(){if(!D)return undefined;var e=K();var a=e.findIndex((function(e){return P(e)===D}));return S.current.find((function(e){return e.name===a}))}),[D,K,P]);var R=e("drag-collapse-formlist-wrapper",{"dcfw-isEmpty":c(k).length===0},u.className);return N("div",{className:R,style:u.style,children:N(i,{collisionDetection:r,onDragStart:O,onDragEnd:A,children:N(m.List,{name:u.formListName,children:function e(a,n){S.current=a;return b(f,{children:[N(d,{items:K().map((function(e){return P(e)})),strategy:s,children:N(f,{children:a.map((function(e,a){var i=P(K()[a]);return N(y,{formListOperate:n,formListFieldData:e,uid:i,isActive:L.includes(i),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,getItemDragDisabled:u.getItemDragDisabled,dragDisabled:u.dragDisabled,onChange:z,isGray:i===D,isLast:a===K().length-1,header:u.header,content:u.content,index:a,formStageCompleteName:[].concat(c(u.formListName),[e.name])},i+"-"+e.key)}))})}),N(t,{dropAnimation:{duration:0},children:D&&E?N(y,{isOverlay:true,uid:D,className:"overlay-sortable-item",formListFieldData:E,isActive:L.includes(D),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,onChange:z,header:u.header,content:u.content,formListOperate:null,index:0,formStageCompleteName:[].concat(c(u.formListName),[E.name])},D):null})]})}})})})};export{C as DragCollapseFormList};
|
|
5
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as a}from"@dimjs/utils/cjs/array";import{hooks as n}from"@wove/react/cjs/hooks";import{DndContext as i,closestCenter as r,DragOverlay as t}from"@dnd-kit/core";import{useSortable as o,SortableContext as d,verticalListSortingStrategy as s,arrayMove as l}from"@dnd-kit/sortable";import{toArray as c}from"@flatbiz/utils";import{Form as m,Collapse as u}from"antd";import{Fragment as f,useState as p,useRef as g,useMemo as v}from"react";import{fbaHooks as h}from"../fba-hooks/index.js";import{_ as I}from"../_rollupPluginBabelHelpers-a0769acd.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as x}from"@dnd-kit/utilities";import{jsx as N,jsxs as b}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";function y(a){var n;var i=m.useFormInstance();var r=a.isOverlay?false:a.getItemDragDisabled==null?void 0:a.getItemDragDisabled(a.uid,a.index);var t=o({id:a.uid,disabled:r}),d=t.listeners,s=t.setNodeRef,l=t.transform,c=t.transition;var p=function e(){var n=a.dragIcon?a.dragIcon:N(D,{});var r=a.header({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name,n]},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index});return a.dragDisabled?r:b(f,{children:[N("span",I({className:"dc-drag-trigger"},d,{children:n})),N("span",{className:"dc-drag-header-content",style:a.headerStyle,children:r})]})};var g=I({transform:x.Transform.toString(l),transition:c},a.style);var v=e("drag-collapse",{"drag-collapse-grap":a.isGray,"drag-collapse-last":a.isLast,"drag-collapse-drag-disabled":r},a.className);return N(u,{activeKey:a.isActive?a.uid:undefined,accordion:true,className:v,collapsible:a.collapsible,expandIcon:a.expandIcon,expandIconPosition:a.expandIconPosition,size:a.size,onChange:(n=a.onChange)==null?void 0:n.bind(null,a.uid),style:I({},g),ref:s,children:N(u.Panel,{header:p(),children:a.content({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name,n]},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index})},a.uid)})}var C=function o(u){var I=p(),D=I[0],x=I[1];var C=p([]),L=C[0],F=C[1];var j=m.useFormInstance();var S=g([]);var k=m.useWatch(u.formListName,j);var P=n.useCallbackRef((function(e){return e==null?void 0:e[u.uidFieldName||"uid"]}));h.useEffectCustom((function(){var e=c(u.defaultActiveKey);if(!u.activeKey&&e.length>0){F(e)}else{F(c(u.activeKey))}}),[]);n.useUpdateEffect((function(){F(c(u.activeKey))}),[u.activeKey]);var z=function e(n){var i=[];if(u.accordion){if(L[0]&&L[0]===n){i=[]}else{i=[n]}}else{var r=L.includes(n);if(r){a.arrayRemove(L,n);i=[].concat(L)}else{i=L.concat(n)}}F(i);if(u.accordion){u.onChange==null?void 0:u.onChange(i.length?i[0]:undefined)}else{u.onChange==null?void 0:u.onChange(i.length?i:undefined)}};function O(e){var a=e.active;x(a.id)}var K=n.useCallbackRef((function(){return j.getFieldValue(u.formListName)||[]}));function A(e){var a=e.active,n=e.over;var i=K();if(a.id!==n.id){var r=i.findIndex((function(e){return P(e)===a.id}));var t=i.findIndex((function(e){return P(e)===n.id}));var o=l(i,r,t);j.setFields([{name:u.formListName,value:o}]);u.onDropChange==null?void 0:u.onDropChange(o)}x(undefined)}var E=v((function(){if(!D)return undefined;var e=K();var a=e.findIndex((function(e){return P(e)===D}));return S.current.find((function(e){return e.name===a}))}),[D,K,P]);var R=e("drag-collapse-formlist-wrapper",{"dcfw-isEmpty":c(k).length===0},u.className);return N("div",{className:R,style:u.style,children:N(i,{collisionDetection:r,onDragStart:O,onDragEnd:A,children:N(m.List,{name:u.formListName,rules:u.rules,children:function e(a,n){S.current=a;return b(f,{children:[N(d,{items:K().map((function(e){return P(e)})),strategy:s,children:N(f,{children:a.map((function(e,a){var i=P(K()[a]);return N(y,{formListOperate:n,formListFieldData:e,uid:i,isActive:L.includes(i),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,getItemDragDisabled:u.getItemDragDisabled,dragDisabled:u.dragDisabled,onChange:z,isGray:i===D,isLast:a===K().length-1,header:u.header,content:u.content,index:a,formStageCompleteName:[].concat(c(u.formListName),[e.name])},i+"-"+e.key)}))})}),N(t,{dropAnimation:{duration:0},children:D&&E?N(y,{isOverlay:true,uid:D,className:"overlay-sortable-item",formListFieldData:E,isActive:L.includes(D),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,onChange:z,header:u.header,content:u.content,formListOperate:null,index:0,formStageCompleteName:[].concat(c(u.formListName),[E.name])},D):null})]})}})})})};export{C as DragCollapseFormList};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-collapse-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-collapse-form-list/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Collapse, Form, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: Array<string | number>;\n};\nexport function SortableItem(props: SortableItemProps) {\n const form = Form.useFormInstance();\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n >\n <Collapse.Panel header={header()} key={props.uid}>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n })}\n </Collapse.Panel>\n </Collapse>\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置名称\n * ```\n */\nexport const DragCollapseFormList = (props: DragCollapseFormListProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<(number | string)[]>([]);\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const formListValue = Form.useWatch(props.formListName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[props.uidFieldName || 'uid'] as string | number;\n });\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = (key: number | string) => {\n let openKeysNew: (number | string)[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n };\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n return (form.getFieldValue(props.formListName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.formListName,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n const cName = classNames(\n 'drag-collapse-formlist-wrapper',\n { 'dcfw-isEmpty': toArray(formListValue).length === 0 },\n props.className,\n );\n return (\n <div className={cName} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.formListName}>\n {(fields, operate) => {\n formListOperationRef.current = fields;\n return (\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n return (\n <SortableItem\n formListOperate={operate}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n isActive={openKeys.includes(uid)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n onChange={onChange}\n isGray={uid === dragActiveId}\n isLast={index === getItems().length - 1}\n header={props.header}\n content={props.content}\n index={index}\n formStageCompleteName={[...toArray<string | number>(props.formListName), item.name]}\n />\n );\n })}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"overlay-sortable-item\"\n formListFieldData={dragOverlayItem}\n isActive={openKeys.includes(dragActiveId)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n onChange={onChange}\n header={props.header}\n content={props.content}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[\n ...toArray<string | number>(props.formListName),\n dragOverlayItem.name,\n ]}\n />\n ) : null}\n </DragOverlay>\n </Fragment>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","form","Form","useFormInstance","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","getInsideFormItemName","key","name","getInsideFormItemData","getFieldValue","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","Panel","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","formListOperationRef","useRef","formListValue","useWatch","formListName","getUidValue","_hooks","useCallbackRef","item","uidFieldName","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","useUpdateEffect","openKeysNew","has","includes","_array","arrayRemove","concat","handleDragStart","event","active","getItems","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","value","onDropChange","dragOverlayItem","useMemo","targetIndex","current","find","cName","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","fields","operate","SortableContext","map","temp","strategy","verticalListSortingStrategy","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-collapse-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-collapse-form-list/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Collapse, Form, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: Array<string | number>;\n};\nexport function SortableItem(props: SortableItemProps) {\n const form = Form.useFormInstance();\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n >\n <Collapse.Panel header={header()} key={props.uid}>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n })}\n </Collapse.Panel>\n </Collapse>\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置名称\n * ```\n */\nexport const DragCollapseFormList = (props: DragCollapseFormListProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<(number | string)[]>([]);\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const formListValue = Form.useWatch(props.formListName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[props.uidFieldName || 'uid'] as string | number;\n });\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = (key: number | string) => {\n let openKeysNew: (number | string)[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n };\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n return (form.getFieldValue(props.formListName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.formListName,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n const cName = classNames(\n 'drag-collapse-formlist-wrapper',\n { 'dcfw-isEmpty': toArray(formListValue).length === 0 },\n props.className,\n );\n return (\n <div className={cName} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.formListName} rules={props.rules}>\n {(fields, operate) => {\n formListOperationRef.current = fields;\n return (\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n return (\n <SortableItem\n formListOperate={operate}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n isActive={openKeys.includes(uid)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n onChange={onChange}\n isGray={uid === dragActiveId}\n isLast={index === getItems().length - 1}\n header={props.header}\n content={props.content}\n index={index}\n formStageCompleteName={[...toArray<string | number>(props.formListName), item.name]}\n />\n );\n })}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"overlay-sortable-item\"\n formListFieldData={dragOverlayItem}\n isActive={openKeys.includes(dragActiveId)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n onChange={onChange}\n header={props.header}\n content={props.content}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[\n ...toArray<string | number>(props.formListName),\n dragOverlayItem.name,\n ]}\n />\n ) : null}\n </DragOverlay>\n </Fragment>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","form","Form","useFormInstance","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","getInsideFormItemName","key","name","getInsideFormItemData","getFieldValue","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","Panel","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","formListOperationRef","useRef","formListValue","useWatch","formListName","getUidValue","_hooks","useCallbackRef","item","uidFieldName","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","useUpdateEffect","openKeysNew","has","includes","_array","arrayRemove","concat","handleDragStart","event","active","getItems","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","value","onDropChange","dragOverlayItem","useMemo","targetIndex","current","find","cName","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","rules","fields","operate","SortableContext","map","temp","strategy","verticalListSortingStrategy","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
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';
|
|
2
7
|
import './index.css';
|
|
3
8
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as
|
|
9
|
+
import{_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as i}from"@wove/react/cjs/hooks";import{DndContext as t,closestCenter as a,DragOverlay as n}from"@dnd-kit/core";import{useSortable as o,SortableContext as d,verticalListSortingStrategy as l,arrayMove as m}from"@dnd-kit/sortable";import{toArray as s,getUuid as u}from"@flatbiz/utils";import{Form as c,Empty as p}from"antd";import{Fragment as f,useState as g,useRef as v,useMemo as h}from"react";import{ButtonWrapper as y}from"../button-wrapper/index.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as j}from"@dnd-kit/utilities";import{jsx as N,jsxs as I}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-34027e61.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";function C(t){var a=c.useFormInstance();var n=t.isOverlay?false:t.getItemDragDisabled==null?void 0:t.getItemDragDisabled(t.uid,t.index);var d=o({id:t.uid,disabled:n}),l=d.listeners,m=d.setNodeRef,s=d.transform,u=d.transition;var p=i.useCallbackRef((function(){var r=t.dragIcon?t.dragIcon:N(D,{});return t.dragDisabled?N(f,{}):N("span",e({className:"drag-form-list-item-trigger"},l,{children:N("span",{children:r})}))}));var g=e({transform:j.Transform.toString(s),transition:u},t.style);var v=r("drag-form-list-item",{"drag-form-list-item-grap":t.isGray,"drag-form-list-item-disabled":n},t.className);return I("div",{style:e({},g),ref:m,className:v,children:[N(c.Item,{style:{margin:0},children:p()}),N("div",{className:"drag-form-list-item-content",children:t.children({formListFieldData:t.formListFieldData,operation:t.formListOperate,formStageCompleteName:t.formStageCompleteName,index:t.index,getInsideFormItemName:function e(r){return[t.formListFieldData.name,r]},getInsideFormItemData:function e(){return a.getFieldValue(t.formStageCompleteName)||{}},prevCompleteName:t.prevCompleteName,uidKey:t.uidFieldName})})]})}var b=function e(r){if(r.wrapper)return r.wrapper({children:r.children});return r.children};var F=function o(D){var j=[].concat(D.prevCompleteName,s(D.name));var F=g(),x=F[0],k=F[1];var w=c.useFormInstance();var L=v([]);var R=D.uidFieldName||"uid";var S=c.useWatch(j,w);var O=i.useCallbackRef((function(e){return e==null?void 0:e[R]}));function A(e){var r=e.active;k(r.id)}var E=i.useCallbackRef((function(){return w.getFieldValue(j)||[]}));function _(e){var r=e.active,i=e.over;var t=E();if(r.id!==i.id){var a=t.findIndex((function(e){return O(e)===r.id}));var n=t.findIndex((function(e){return O(e)===i.id}));var o=m(t,a,n);w.setFields([{name:D.name,value:o}]);D.onDropChange==null?void 0:D.onDropChange(o)}k(undefined)}var B=h((function(){if(!x)return undefined;var e=E();var r=e.findIndex((function(e){return O(e)===x}));return L.current.find((function(e){return e.name===r}))}),[x,E,O]);return I("div",{className:r("drag-form-list",D.className),style:D.style,children:[!D.hiddenEmptyRender&&!(S!=null&&S.length)?N(p,{image:p.PRESENTED_IMAGE_SIMPLE,style:{margin:"15px 0"}}):null,N(t,{collisionDetection:a,onDragStart:A,onDragEnd:_,children:N(c.List,{name:D.name,rules:D.rules,children:function r(i,t){L.current=i;return N(b,{wrapper:D.formListChildrenWrapper,children:I(f,{children:[N(d,{items:E().map((function(e){return O(e)})),strategy:l,children:I(f,{children:[i.map((function(e,r){var i=O(E()[r]);if(!i)return null;return N(C,{formListOperate:t,formListFieldData:e,uid:i,dragIcon:D.dragIcon,getItemDragDisabled:D.getItemDragDisabled,dragDisabled:D.dragDisabled,isGray:!!i&&i===x,index:r,formStageCompleteName:[].concat(j,[e.name]),prevCompleteName:j,uidFieldName:R,style:D.itemStyle,children:D.children},i+"-"+e.key)})),D.onCustomAddRowButton?D.onCustomAddRowButton(t):N(y,{hidden:D.hiddenAddRowButton,type:"dashed",block:true,onClick:function r(){var i;return t.add(e((i={},i[R]=u(),i),D.getAddRowDefaultValues==null?void 0:D.getAddRowDefaultValues()))},children:"添加"})]})}),N(n,{dropAnimation:{duration:0},children:x&&B?N(C,{isOverlay:true,uid:x,className:"drag-form-list-overlay",formListFieldData:B,dragIcon:D.dragIcon,formListOperate:null,index:0,formStageCompleteName:[].concat(j,[B.name]),prevCompleteName:j,uidFieldName:R,children:D.children},x):null})]})})}})})]})};export{F as DragFormList};
|
|
5
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-form-list/drag-form-list.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { hooks } from '@wove/react';\nimport { Form, type FormListFieldData, type FormListOperation } from 'antd';\nimport { Fragment, type CSSProperties, type ReactElement } from 'react';\nimport { type DragFormListContentProps, type DragFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n dragIcon?: DragFormListProps['dragIcon'];\n getItemDragDisabled?: DragFormListProps['getItemDragDisabled'];\n dragDisabled?: DragFormListProps['dragDisabled'];\n isGray?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: (string | number)[];\n children: (data: DragFormListContentProps) => ReactElement;\n prevCompleteName: (string | number)[];\n uidFieldName: string;\n};\nexport function SortableItem(props: SortableItemProps) {\n const form = Form.useFormInstance();\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const dragIconRender = hooks.useCallbackRef(() => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n return props.dragDisabled ? (\n <Fragment />\n ) : (\n <span className=\"drag-form-list-item-trigger\" {...listeners}>\n <span>{dragIcon}</span>\n </span>\n );\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-form-list-item',\n {\n 'drag-form-list-item-grap': props.isGray,\n 'drag-form-list-item-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <div style={{ ...style }} ref={setNodeRef} className={cname}>\n <Form.Item style={{ margin: 0 }}>{dragIconRender()}</Form.Item>\n <div className=\"drag-form-list-item-content\">\n {props.children({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n formStageCompleteName: props.formStageCompleteName,\n index: props.index,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n prevCompleteName: props.prevCompleteName,\n uidKey: props.uidFieldName,\n })}\n </div>\n </div>\n );\n}\n","import { classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { ButtonWrapper } from '@flatbiz/antd';\nimport { getUuid, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState, type ReactElement } from 'react';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { type DragFormListProps } from './types';\n\ntype FormListChildrenWrapperProps = {\n wrapper?: DragFormListProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\n/**\n * 可拖拽FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * ```\n */\nexport const DragFormList = (props: DragFormListProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const uidFieldName = props.uidFieldName || 'uid';\n // 使用 useWatch 可确保FormList在变更后及时刷新\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[uidFieldName] as string | number;\n });\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n /** 只能通过getFieldValue取值 */\n return (form.getFieldValue(stageCompleteName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.name,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n return (\n <div className={classNames('drag-form-list', props.className)} style={props.style}>\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.name}>\n {(fields, operation) => {\n formListOperationRef.current = fields;\n return (\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n if (!uid) return null;\n return (\n <SortableItem\n formListOperate={operation}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n isGray={!!uid && uid === dragActiveId}\n index={index}\n formStageCompleteName={[...stageCompleteName, item.name]}\n prevCompleteName={stageCompleteName}\n uidFieldName={uidFieldName}\n >\n {props.children}\n </SortableItem>\n );\n })}\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({ [uidFieldName]: getUuid(), ...props.getAddRowDefaultValues?.() })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"drag-form-list-overlay\"\n formListFieldData={dragOverlayItem}\n dragIcon={props.dragIcon}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[...stageCompleteName, dragOverlayItem.name]}\n prevCompleteName={stageCompleteName}\n uidFieldName={uidFieldName}\n >\n {props.children}\n </SortableItem>\n ) : null}\n </DragOverlay>\n </Fragment>\n </FormListChildrenWrapper>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","form","Form","useFormInstance","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","dragIconRender","_hooks","useCallbackRef","dragIcon","_jsx","_DragOutlined","dragDisabled","Fragment","_extends","className","children","style","CSS","Transform","toString","cname","_classNames","isGray","_jsxs","ref","Item","margin","formListFieldData","operation","formListOperate","formStageCompleteName","getInsideFormItemName","key","name","getInsideFormItemData","getFieldValue","prevCompleteName","uidKey","uidFieldName","FormListChildrenWrapper","wrapper","DragFormList","stageCompleteName","concat","toArray","_useState","useState","dragActiveId","setDragActiveId","formListOperationRef","useRef","formListValue","useWatch","getUidValue","item","handleDragStart","event","active","getItems","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","value","onDropChange","undefined","dragOverlayItem","useMemo","targetIndex","current","find","hiddenEmptyRender","length","Empty","image","PRESENTED_IMAGE_SIMPLE","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","fields","formListChildrenWrapper","SortableContext","map","temp","strategy","verticalListSortingStrategy","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","getUuid","getAddRowDefaultValues","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-form-list/drag-form-list.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { hooks } from '@wove/react';\nimport { Form, type FormListFieldData, type FormListOperation } from 'antd';\nimport { Fragment, type CSSProperties, type ReactElement } from 'react';\nimport { type DragFormListContentProps, type DragFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n dragIcon?: DragFormListProps['dragIcon'];\n getItemDragDisabled?: DragFormListProps['getItemDragDisabled'];\n dragDisabled?: DragFormListProps['dragDisabled'];\n isGray?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: (string | number)[];\n children: (data: DragFormListContentProps) => ReactElement;\n prevCompleteName: (string | number)[];\n uidFieldName: string;\n};\nexport function SortableItem(props: SortableItemProps) {\n const form = Form.useFormInstance();\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const dragIconRender = hooks.useCallbackRef(() => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n return props.dragDisabled ? (\n <Fragment />\n ) : (\n <span className=\"drag-form-list-item-trigger\" {...listeners}>\n <span>{dragIcon}</span>\n </span>\n );\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-form-list-item',\n {\n 'drag-form-list-item-grap': props.isGray,\n 'drag-form-list-item-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <div style={{ ...style }} ref={setNodeRef} className={cname}>\n <Form.Item style={{ margin: 0 }}>{dragIconRender()}</Form.Item>\n <div className=\"drag-form-list-item-content\">\n {props.children({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n formStageCompleteName: props.formStageCompleteName,\n index: props.index,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n prevCompleteName: props.prevCompleteName,\n uidKey: props.uidFieldName,\n })}\n </div>\n </div>\n );\n}\n","import { classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { getUuid, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState, type ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { type DragFormListProps } from './types';\n\ntype FormListChildrenWrapperProps = {\n wrapper?: DragFormListProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\n/**\n * 可拖拽FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * ```\n */\nexport const DragFormList = (props: DragFormListProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const uidFieldName = props.uidFieldName || 'uid';\n // 使用 useWatch 可确保FormList在变更后及时刷新\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[uidFieldName] as string | number;\n });\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n /** 只能通过getFieldValue取值 */\n return (form.getFieldValue(stageCompleteName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.name,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n return (\n <div className={classNames('drag-form-list', props.className)} style={props.style}>\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.name} rules={props.rules}>\n {(fields, operation) => {\n formListOperationRef.current = fields;\n return (\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n if (!uid) return null;\n return (\n <SortableItem\n formListOperate={operation}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n isGray={!!uid && uid === dragActiveId}\n index={index}\n formStageCompleteName={[...stageCompleteName, item.name]}\n prevCompleteName={stageCompleteName}\n uidFieldName={uidFieldName}\n style={props.itemStyle}\n >\n {props.children}\n </SortableItem>\n );\n })}\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({ [uidFieldName]: getUuid(), ...props.getAddRowDefaultValues?.() })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"drag-form-list-overlay\"\n formListFieldData={dragOverlayItem}\n dragIcon={props.dragIcon}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[...stageCompleteName, dragOverlayItem.name]}\n prevCompleteName={stageCompleteName}\n uidFieldName={uidFieldName}\n >\n {props.children}\n </SortableItem>\n ) : null}\n </DragOverlay>\n </Fragment>\n </FormListChildrenWrapper>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","form","Form","useFormInstance","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","dragIconRender","_hooks","useCallbackRef","dragIcon","_jsx","_DragOutlined","dragDisabled","Fragment","_extends","className","children","style","CSS","Transform","toString","cname","_classNames","isGray","_jsxs","ref","Item","margin","formListFieldData","operation","formListOperate","formStageCompleteName","getInsideFormItemName","key","name","getInsideFormItemData","getFieldValue","prevCompleteName","uidKey","uidFieldName","FormListChildrenWrapper","wrapper","DragFormList","stageCompleteName","concat","toArray","_useState","useState","dragActiveId","setDragActiveId","formListOperationRef","useRef","formListValue","useWatch","getUidValue","item","handleDragStart","event","active","getItems","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","value","onDropChange","undefined","dragOverlayItem","useMemo","targetIndex","current","find","hiddenEmptyRender","length","Empty","image","PRESENTED_IMAGE_SIMPLE","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","rules","fields","formListChildrenWrapper","SortableContext","map","temp","strategy","verticalListSortingStrategy","itemStyle","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","getUuid","getAddRowDefaultValues","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
package/esm/drag-table/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
+
import './../icon-wrapper/index.css';
|
|
2
3
|
import './index.css';
|
|
3
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import r from"@ant-design/icons/es/icons/DragOutlined";import{a as n,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as o,useSensor as t,PointerSensor as i,DndContext as a}from"@dnd-kit/core";import{restrictToVerticalAxis as
|
|
5
|
+
import r from"@ant-design/icons/es/icons/DragOutlined";import{a as n,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as o,useSensor as t,PointerSensor as i,DndContext as a}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{SortableContext as d,verticalListSortingStrategy as c,arrayMove as l,useSortable as f}from"@dnd-kit/sortable";import{CSS as u}from"@dnd-kit/utilities";import{noop as m}from"@flatbiz/utils";import{Table as v}from"antd";import p,{useState as g,useEffect as x,useMemo as y,isValidElement as h}from"react";import{IconWrapper as I}from"../icon-wrapper/index.js";import{jsx as b}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";var k=["dragIcon","uidFieldKey","columns","dataSource","onDragChange"],w=["children"];var S=function S(C){var D=C.dragIcon,j=C.uidFieldKey,z=C.columns,A=C.dataSource,K=C.onDragChange,N=n(C,k);var R=g([]),E=R[0],F=R[1];x((function(){F(A||[])}),[A]);var T=function r(n){var e=n.active,o=n.over;if(e.id!==(o==null?void 0:o.id)){var t=E.findIndex((function(r){return r[j]===e.id}));var i=E.findIndex((function(r){return r[j]===(o==null?void 0:o.id)}));var a=l(E,t,i);F([].concat(a));K==null?void 0:K(a,{activeId:e.id,activeIndex:t,overIndex:i})}};var Y=function r(n){var o=f({id:n["data-row-key"]}),t=o.listeners,i=o.setNodeRef,a=o.transform,s=o.transition,d=o.isDragging;var c=e({},n.style,{transform:u.Transform.toString(a&&e({},a,{scaleY:1})),transition:s,cursor:D===false?"move":undefined},d?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)"}:{});return b("tr",e({},n,{ref:i,style:c},t))};var _=function o(t){var i=t.children,a=n(t,w);var s=f({id:a["data-row-key"]}),d=s.setActivatorNodeRef,c=s.listeners,l=s.setNodeRef,v=s.transform,g=s.transition,x=s.isDragging;var y=e({},a.style,{transform:u.Transform.toString(v&&e({},v,{scaleY:1})),transition:g,cursor:D===false?"move":undefined},x?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"#fff"}:{});var k=h(D)?D:b(r,{});return b("tr",e({},a,{ref:l,style:y,children:p.Children.map(i,(function(r){if(r.key==="sort"){return p.cloneElement(r,{children:b("span",e({ref:d,style:{touchAction:"none",cursor:"move"}},c,{children:b(I,{style:{display:"inline-flex",touchAction:"none",cursor:"move"},icon:k,onClick:m})}))})}return r}))}))};var B=y((function(){if(D===false)return z;return[{key:"sort",dataIndex:"sort",align:"center",width:50}].concat(z||[])}),[z,D]);var H=o(t(i,{activationConstraint:{delay:D===false?150:0,tolerance:0}}));return b(a,{sensors:H,modifiers:[s],onDragEnd:T,children:b(d,{items:E.map((function(r){return r[j]})),strategy:c,children:b(v,e({pagination:false,rowKey:j,bordered:true},N,{dataSource:E,columns:B,components:{body:{row:C.dragIcon===false?Y:_}}}))})})};export{S as DragTable};
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Table, type RowProps, type TableProps } from 'antd';\nimport React, { isValidElement, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype DragTableProps = Omit<TableProps<TPlainObject>, 'dataSource'> & {\n dragIcon?: boolean | ReactElement;\n /** 表格数据唯一值字段Key */\n uidFieldKey: string;\n dataSource?: TPlainObject[];\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: { activeId: string | number; activeIndex: number; overIndex: number },\n ) => void;\n};\n\n/**\n * 可拖拽表格\n * ```\n * 1. 必须设置唯一值字段 uidFieldKey\n * 2. 如果拖拽显示异常,请检查 uidFieldKey 是否正确\n * ```\n */\nexport const DragTable = (props: DragTableProps) => {\n const { dragIcon, uidFieldKey, columns, dataSource, onDragChange, ...otherProps } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n useEffect(() => {\n setDataList(dataSource || []);\n }, [dataSource]);\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n setDataList([...dataListNew]);\n onDragChange?.(dataListNew, { activeId: active.id, activeIndex, overIndex });\n }\n };\n\n const TableBodyRow = (innerProps) => {\n const { listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: innerProps['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? { position: 'relative', zIndex: 9999, boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)' }\n : {}),\n };\n\n return <tr {...innerProps} ref={setNodeRef} style={style} {...listeners} />;\n };\n\n const TableBodyRowByIcon = ({ children, ...innerProps }: RowProps) => {\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: innerProps['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: '#fff',\n }\n : {}),\n };\n const iconElement = isValidElement(dragIcon) ? dragIcon : <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style}>\n {React.Children.map(children, (child) => {\n if ((child as React.ReactElement).key === 'sort') {\n return React.cloneElement(child as React.ReactElement, {\n children: (\n <span\n ref={setActivatorNodeRef}\n style={{ touchAction: 'none', cursor: 'move' }}\n {...listeners}\n >\n <IconWrapper\n style={{ display: 'inline-flex', touchAction: 'none', cursor: 'move' }}\n icon={iconElement}\n onClick={noop}\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n };\n\n const columnsList = useMemo(() => {\n if (dragIcon === false) return columns;\n return [\n {\n key: 'sort',\n dataIndex: 'sort',\n align: 'center',\n width: 50,\n } as TAny,\n ].concat(columns || []);\n }, [columns, dragIcon]);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: dragIcon === false ? 150 : 0,\n tolerance: 0,\n },\n }),\n );\n\n return (\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext items={dataList.map((i) => i[uidFieldKey])} strategy={verticalListSortingStrategy}>\n <Table\n pagination={false}\n rowKey={uidFieldKey}\n bordered\n {...otherProps}\n dataSource={dataList}\n columns={columnsList}\n components={{\n body: {\n row: props.dragIcon === false ? TableBodyRow : TableBodyRowByIcon,\n },\n }}\n />\n </SortableContext>\n </DndContext>\n );\n};\n"],"names":["DragTable","props","dragIcon","uidFieldKey","columns","dataSource","onDragChange","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","dataList","setDataList","useEffect","onDragEnd","_ref","active","over","id","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","concat","activeId","TableBodyRow","innerProps","_useSortable","useSortable","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","undefined","position","zIndex","boxShadow","_jsx","ref","TableBodyRowByIcon","_ref2","children","_excluded2","_useSortable2","setActivatorNodeRef","backgroundColor","iconElement","isValidElement","_DragOutlined","React","Children","map","child","key","cloneElement","touchAction","IconWrapper","display","icon","onClick","noop","columnsList","useMemo","dataIndex","align","width","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","Table","pagination","rowKey","bordered","components","body","row"],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ import './../dialog-modal/index.css';
|
|
|
9
9
|
import './../flex-layout/index.css';
|
|
10
10
|
import './index.css';
|
|
11
11
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
12
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import i from"@ant-design/icons/es/icons/ExclamationCircleFilled";import{a as r,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as n}from"@wove/react/cjs/hooks";import{Dropdown as t}from"antd";import{Fragment as a,useMemo as s,createElement as l}from"react";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{dialogConfirm as d}from"../dialog-confirm/index.js";import{fbaUtils as p}from"../fba-utils/index.js";import{FlexLayout as c}from"../flex-layout/index.js";import{jsxs as u,jsx as f}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../
|
|
12
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import i from"@ant-design/icons/es/icons/ExclamationCircleFilled";import{a as r,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as n}from"@wove/react/cjs/hooks";import{Dropdown as t}from"antd";import{Fragment as a,useMemo as s,createElement as l}from"react";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{dialogConfirm as d}from"../dialog-confirm/index.js";import{fbaUtils as p}from"../fba-utils/index.js";import{FlexLayout as c}from"../flex-layout/index.js";import{jsxs as u,jsx as f}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../index-34027e61.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-string";import"ahooks";import"react-dom/client";function g(e){var i=true;var r=false;while(i){if(e.tagName==="HTML"||e.tagName==="BODY"){i=false;r=false}else{var o=window.getComputedStyle(e),n=o.position;if(n==="sticky"){r=true;i=false}else{if(!e||!e.parentNode){i=false}else{e=e.parentNode}}}}return r}var j=["menuList"],y=["text","permission","needConfirm","confirmMessage","hidden","type","confirmModalProps"];var v=function v(h){var x=h.menuList,k=r(h,j);var C=n.useId(undefined,"DropdownMenuWrapper");var w=n.useCallbackRef((function(e,r){if(e.needConfirm){var n;d.open(o({title:u(c,{direction:"horizontal",fullIndex:1,gap:8,children:[f(i,{style:{color:"#faad14"}}),f("span",{children:e.title})]}),content:f(a,{children:e.confirmMessage}),onOk:(n=e.onClick)==null?void 0:n.bind(null,r),okButtonProps:{loadingPosition:"center"}},e.confirmModalProps));return Promise.resolve()}r.stopPropagation();return e.onClick==null?void 0:e.onClick(r)}));var P=document.querySelector("."+C);var b=s((function(){if(h.isFixed||P&&g(P)){return undefined}return P}),[h.isFixed,P]);var M=s((function(){var i=[];x.filter(Boolean).forEach((function(n,t){if(!n)return;var a=n.text,s=n.permission,d=n.needConfirm,c=n.confirmMessage,u=n.hidden,f=n.type,g=n.confirmModalProps,j=r(n,y);if(u)return;if(s&&!p.hasPermission(s))return;var v=f||"link";var h=j.color?false:d;i.push({key:t,label:l(m,o({loadingPosition:"center",size:"small",danger:h},j,{style:o({padding:0},j.style),className:e("dmw-item-button",j.className),type:v,key:t,onClick:w.bind(null,o({},n,{needConfirm:d,confirmMessage:c,confirmModalProps:g}))}),a)})}));return i}),[x,w]);return f("div",{className:e("dropdown-menu-wrapper",C),style:{position:"relative"},children:f(t,o({trigger:(k==null?void 0:k.trigger)||["hover"],getPopupContainer:b?function(){return P}:undefined,arrow:{pointAtCenter:true}},k,{overlayStyle:o({zIndex:9},k.overlayStyle),menu:{items:M},children:h.children}))})};export{v as DropdownMenuWrapper};
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n stopPropagation?: boolean;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n /** dropdown 设置弹框根节点在body下 */\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n * ```\n * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下\n * ```\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.title}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const buttonType = type || 'link';\n const danger = otherProps.color ? false : needConfirm;\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={danger}\n {...otherProps}\n style={{ padding: 0, ...otherProps.style }}\n className={classNames('dmw-item-button', otherProps.className)}\n type={buttonType}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={classNames('dropdown-menu-wrapper', clsName)} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","stopPropagation","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","text","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","buttonType","danger","push","key","label","_createElement","ButtonWrapper","size","padding","className","_classNames","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n stopPropagation?: boolean;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n /** dropdown 设置弹框根节点在body下 */\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n * ```\n * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下\n * ```\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.title}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const buttonType = type || 'link';\n const danger = otherProps.color ? false : needConfirm;\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={danger}\n {...otherProps}\n style={{ padding: 0, ...otherProps.style }}\n className={classNames('dmw-item-button', otherProps.className)}\n type={buttonType}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={classNames('dropdown-menu-wrapper', clsName)} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","stopPropagation","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","text","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","buttonType","danger","push","key","label","_createElement","ButtonWrapper","size","padding","className","_classNames","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items"],"mappings":";uzCAAO,SAASA,EAAiBC,GAC/B,IAAIC,EAAY,KAChB,IAAIC,EAAS,MACb,MAAOD,EAAW,CAChB,GAAID,EAAKG,UAAY,QAAUH,EAAKG,UAAY,OAAQ,CACtDF,EAAY,MACZC,EAAS,KACX,KAAO,CACL,IAAAE,EAAqBC,OAAOC,iBAAiBN,GAArCO,EAAQH,EAARG,SACR,GAAIA,IAAa,SAAU,CACzBL,EAAS,KACTD,EAAY,KACd,KAAO,CACL,IAAKD,IAASA,EAAKQ,WAAY,CAC7BP,EAAY,KACd,KAAO,CACLD,EAAOA,EAAKQ,UACd,CACF,CACF,CACF,CACA,OAAON,CACT,mHCmBaO,EAAsB,SAAtBA,EAAuBC,GAClC,IAAQC,EAAoCD,EAApCC,SAAaC,EAAkBC,EAAKH,EAAKI,GACjD,IAAMC,EAAUC,EAAMC,MAAMC,UAAW,uBAEvC,IAAMC,EAAUH,EAAMI,gBAAe,SAACC,EAAwBC,GAC5D,GAAID,EAAKE,YAAa,CAAA,IAAAC,EACpBC,EAAcC,KAAIC,EAAA,CAChBC,MACEC,EAACC,EAAU,CAACC,UAAU,aAAaC,UAAW,EAAGC,IAAK,EAAEC,SAAA,CACtDC,EAAAC,EAAA,CAAyBC,MAAO,CAAEC,MAAO,aACzCH,EAAA,OAAA,CAAAD,SAAOb,EAAKO,WAGhBW,QAASJ,EAACK,EAAQ,CAAAN,SAAEb,EAAKoB,iBACzBC,MAAIlB,EAAEH,EAAKF,UAAO,UAAA,EAAZK,EAAcmB,KAAK,KAAMrB,GAC/BsB,cAAe,CACbC,gBAAiB,WAEhBxB,EAAKyB,oBAEV,OAAOC,QAAQC,SACjB,CACA1B,EAAM2B,kBACN,OAAO5B,EAAKF,SAAO,UAAA,EAAZE,EAAKF,QAAUG,EACxB,IAEA,IAAM4B,EAASC,SAASC,cAAa,IAAKrC,GAC1C,IAAMsC,EAAYC,GAAQ,WACxB,GAAI5C,EAAM6C,SAAYL,GAAUnD,EAAiBmD,GAAU,CACzD,OAAOhC,SACT,CACA,OAAOgC,CACR,GAAE,CAACxC,EAAM6C,QAASL,IAEnB,IAAMM,EAAYF,GAAQ,WACxB,IAAMG,EAA2B,GACjC9C,EAAS+C,OAAOC,SAASC,SAAQ,SAACvC,EAAMwC,GACtC,IAAKxC,EAAM,OACX,IACEyC,EAQEzC,EARFyC,KACAC,EAOE1C,EAPF0C,WACAxC,EAMEF,EANFE,YACAkB,EAKEpB,EALFoB,eACAuB,EAIE3C,EAJF2C,OACAC,EAGE5C,EAHF4C,KACAnB,EAEEzB,EAFFyB,kBACGoB,EAAUrD,EACXQ,EAAI8C,GACR,GAAIH,EAAQ,OACZ,GAAID,IAAeK,EAASC,cAAcN,GAAa,OACvD,IAAMO,EAAaL,GAAQ,OAC3B,IAAMM,EAASL,EAAW5B,MAAQ,MAAQf,EAC1CkC,EAAae,KAAK,CAChBC,IAAKZ,EACLa,MACEC,EAACC,EAAajD,EAAA,CACZkB,gBAAgB,SAChBgC,KAAK,QACLN,OAAQA,GACJL,EAAU,CACd7B,MAAKV,EAAA,CAAImD,QAAS,GAAMZ,EAAW7B,OACnC0C,UAAWC,EAAW,kBAAmBd,EAAWa,WACpDd,KAAMK,EACNG,IAAKZ,EACL1C,QAASA,EAAQwB,KAAK,KAAIhB,EAAA,CAAA,EACrBN,EAAI,CACPE,YAAAA,EACAkB,eAAAA,EACAK,kBAAAA,OAGDgB,IAIT,IACA,OAAOL,CACT,GAAG,CAAC9C,EAAUQ,IAEd,OACEgB,EAAA,MAAA,CAAK4C,UAAWC,EAAW,wBAAyBjE,GAAUsB,MAAO,CAAE9B,SAAU,YAAa2B,SAC5FC,EAAC8C,EAAQtD,EAAA,CACPuD,SAAStE,GAAAA,UAAAA,EAAAA,EAAoBsE,UAAW,CAAC,SACzCC,kBAAmB9B,EAAY,WAAA,OAAMH,CAAM,EAAkBhC,UAC7DkE,MAAO,CAAEC,cAAe,OACpBzE,EAAkB,CACtB0E,aAAY3D,EAAA,CAAI4D,OAAQ,GAAM3E,EAAmB0E,cACjDE,KAAM,CAAEC,MAAOjC,GAAYtB,SAE1BxB,EAAMwB,aAIf"}
|
package/esm/easy-table/index.js
CHANGED
|
@@ -12,5 +12,5 @@ import './../table-title-tooltip/index.css';
|
|
|
12
12
|
import './../tips-wrapper/index.css';
|
|
13
13
|
import './index.css';
|
|
14
14
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
15
|
-
import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{_ as n,a}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as o}from"@wove/react/cjs/hooks";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as p}from"antd";import{createContext as c,forwardRef as d,useState as f,useMemo as m,useRef as g,useImperativeHandle as v,useContext as y,Children as h}from"react";import{P as C,S}from"../index-6677fbfc.js";import{noop as b,isUndefinedOrNull as j,getUuid as F,isMacEnv as q}from"@flatbiz/utils";import{Model as z}from"@dimjs/model-react";import{jsx as R,jsxs as N}from"react/jsx-runtime";import x from"@ant-design/icons/es/icons/DownOutlined";import P from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as w}from"react-is";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FormGrid as T}from"../form-grid/index.js";import{SimpleLayout as D}from"../simple-layout/index.js";import{fbaHooks as K}from"../fba-hooks/index.js";import{TableScrollbar as L}from"../table-scrollbar/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as E}from"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../index-ac189a77.js";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var A=c({onRequest:b,tableList:[],getEasyTableRef:function e(){}});var O={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var W=function e(t){if(!B[t]){B[t]=z(I)}return B[t]};var _=d((function(e,a){var p;var c=f([]),d=c[0],y=c[1];var h=f(0),S=h[0],b=h[1];var j=f(false),F=j[0],q=j[1];var z=o.useId(undefined,"easy-table-key");var x=m((function(){return e.cacheSwitch?location.pathname:z}),[z,e.cacheSwitch]);var P=W(x).useStore(),w=P[0],k=P[1];var T=e.pageSize||((p=e.initialPaginationParams)==null?void 0:p.pageSize)||10;var D=e.initRequest===undefined?true:e.initRequest;var K=f(false),L=K[0],V=K[1];var E=g();var O=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var I=s.useForm(e.form),B=I[0];var _=o.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,p,c,d,f,m,g,v;var h=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{q(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return h()}catch(e){return n(e)}};try{q(true);return Promise.resolve(k.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,p=s.requestParamsAdapter,c=s.onRequest,d=s.requestResultAdapter;f=p?p(o):o;return Promise.resolve(c(f)).then((function(t){try{m=t||{};E.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=d?d(m):m;v=g[O.list];y(r(v)?v:[]);b(g[O.total]);q(false);return h()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var H=o.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(k.resetFilterCondition()).then((function(r){try{B.resetFields();if(e){void k.updateFilterCondition(e);B.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var U=function e(t,i){if(L){var r;return r={},r[O.pageNo]=t,r[O.pageSize]=i||T,r}else{return{}}};var Q=o.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},U(1,w.queryCondition[O.pageSize]),e.initialValues,t);return Promise.resolve(k.resetFilterCondition(a)).then((function(e){try{B.resetFields();if(t){B.setFieldsValue(t)}void _(a);return i()}catch(e){return r(e)}}),r)}))}));var Y=o.useCallbackRef((function(){return n({},w.queryCondition,B.getFieldsValue())}));var G=function t(){return{onRequest:_,clearQueryCondition:H,getRequestParams:Y,onResetRequest:Q,form:B,getDataSource:function e(){return E.current},onFilterDataSource:function e(t){y(t)},onClearDataSource:function e(){b(0);y([])},onUpdateDataSource:function t(i){y(i);E.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};v(a,(function(){return G()}));var $=function e(t){V(t)};var J=function t(){var i=B.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,U(1,w.queryCondition[O.pageSize])))}else{void _(n({},i,U(1,w.queryCondition[O.pageSize])))}};var M=i(e.isFull)?true:e.isFull;var X=t("fba-easy-table",{"fba-easy-table-full":M,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var Z=m((function(){return n({showSizeChanger:true,current:w.queryCondition[O.pageNo]||1,pageSize:w.queryCondition[O.pageSize]||T,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[O.pageNo,O.pageSize,T,e.pagination,w.queryCondition,S]);var ee=o.useCallbackRef((function(t,i){var r,n;void _((r={},r[O.pageSize]=i,r[O.pageNo]=t,r));(n=e.pagination)==null||n.onChange==null?void 0:n.onChange(t,i)}));var te=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ie=typeof e.children==="function"?e.children(E.current):e.children;return R(A.Provider,{value:{getEasyTableRef:G,modelKey:x,onRequest:_,tableList:d,tableTotal:S,loading:F,fieldNames:O,pageSize:T,initRequest:D,initialValues:e.initialValues||{},onSetPaginationStatus:$,paginationStatus:L,onFormFinish:J,form:B,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?N("div",{className:te,style:e.style,children:[R("div",{className:X,children:ie}),S>0&&R("div",{className:"fba-easy-table-pagination",children:R(C,n({size:"small"},Z,{onChange:ee}))})]}):R("div",{className:X,style:e.style,children:ie})})}));var H=function e(r){var a=y(A);var l=r.queryButtonProps,u=r.resetButtonProps,p=r.filterOperate,c=r.formClassName,d=r.defaultResetButtonTriggerRequest,g=r.filterWrapperStyle,v=r.filterWrapperClassName,C=r.rightOperateAreaAppendType;var S=a.modelKey,b=a.foldKeys,j=a.fieldNames,F=a.onRequest,q=a.pageSize,z=a.paginationStatus,K=a.initialValues,L=a.form,V=a.onFormFinish;var E=typeof r.children==="function"?r.children(L):r.children;var O=C||"cover";var I=m((function(){if(w(E)){return h.toArray(E.props.children)}else{return h.toArray(E)}}),[E]);var B=f(false),_=B[0],H=B[1];var U=W(S).useStore(),Q=U[0],Y=U[1];var G=o.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(Y.resetFilterCondition()).then((function(a){try{L.resetFields();if(i(d)||d){if(z){F(n((r={},r[j.pageNo]=1,r[j.pageSize]=q,r),K))}else{F(K)}}return e()}catch(e){return t(e)}}),t)}))}));var $=m((function(){var e=[R(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"),R(k,n({onClick:G},u,{children:(u==null?void 0:u.text)||"重置"}),"2")].filter(Boolean);var t=p==null?void 0:p(L);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(O==="afterAppend"){a=[].concat(e,i)}else if(O==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(b.length>0){var o=R(k,{type:"link",style:{padding:"0"},onClick:function e(){H(!_)},children:_?N("span",{children:["收起",R(P,{style:{marginLeft:3,fontSize:12}})]}):N("span",{children:["展开",R(x,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return I.map((function(e,t){if(!_&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return R(T.Col,{children:e},t)})).filter(Boolean).concat(R(T.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[I,p,b,L,G,_,l,u,O]);return R(D,{className:t("easy-table-filter",v),style:g,children:R(s,{form:L,autoComplete:"off",onFinish:V,initialValues:n({},K,Q.queryCondition),className:c,style:r.formStyle,children:r.isPure?E:R(T.Row,{gutter:[15,0],gridSize:r.formGridSize,children:$})})})};var U=function e(){var t=y(A);return t.getEasyTableRef()};var Q=function e(){var t=y(A);return{current:t.getEasyTableRef()}};var Y=["children","rowKey","pagination"],G=["tooltip","tipsWrapperProps","title"];var $=function e(i){var r=y(A);var o=i.children,l=i.rowKey,s=i.pagination,u=a(i,Y);var c=r.modelKey,d=r.fieldNames,f=r.onRequest,g=r.tableList,v=r.initRequest,h=r.pageSize,C=r.tableTotal,b=r.loading,z=r.initialValues,x=r.paginationFixed,P=r.onSetPaginationStatus;var w=W(c).useStore(),k=w[0],T=w[1];var O=m((function(){if(x||s===false)return false;return n({showSizeChanger:true,current:k.queryCondition[d.pageNo]||1,pageSize:k.queryCondition[d.pageSize]||h,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:S})}),[d.pageNo,d.pageSize,h,s,x,i.pagination,k.queryCondition,C]);var I=function e(t,r,n,a){if(a.action==="paginate"&&O){var o;f((o={},o[d.pageSize]=t.pageSize,o[d.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var B=m((function(){if(g.length===0){return[]}if(typeof l==="string"&&j(g[0][l])){return g.map((function(e){e[l]=F();return e}))}return g}),[g,l]);K.useEffectCustom((function(){var e=x||O!==false;P(e);if(v!==false||!k.isInit){if(e){var t;void f(n((t={},t[d.pageNo]=1,t[d.pageSize]=h,t),z,k.queryCondition))}else{void f(z)}}else{void T.updateFilterCondition(z)}void T.updateInitStatus()}),[]);var _=m((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.tipsWrapperProps,r=e.title,o=a(e,G);if(typeof r==="string"&&i){if(typeof i==="string"){return n({},o,{title:R(E,{tipType:"popover",popoverProps:{content:i},children:r})})}return n({},o,{title:R(E,n({},i,{children:r}))})}if(typeof r==="string"&&!!t){return n({},o,{title:R(V,{tooltip:t,title:r})})}return e}))}),[i.columns]);return N(D,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[o,q()?R(p,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B})):R(L,{children:R(p,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B}))})]})};var J=e.attachPropertiesToComponent(_,{Filter:H,Table:$,useEasyTablRef:Q,useEasyTable:U});export{J as EasyTable};
|
|
15
|
+
import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{_ as n,a}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as o}from"@wove/react/cjs/hooks";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as c}from"antd";import{createContext as p,forwardRef as d,useState as f,useMemo as m,useRef as g,useImperativeHandle as v,useContext as y,Children as h}from"react";import{P as C,S}from"../index-6677fbfc.js";import{noop as b,isUndefinedOrNull as j,getUuid as F,isMacEnv as q}from"@flatbiz/utils";import{Model as z}from"@dimjs/model-react";import{jsx as R,jsxs as N}from"react/jsx-runtime";import x from"@ant-design/icons/es/icons/DownOutlined";import P from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as w}from"react-is";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FormGrid as T}from"../form-grid/index.js";import{SimpleLayout as D}from"../simple-layout/index.js";import{fbaHooks as K}from"../fba-hooks/index.js";import{TableScrollbar as L}from"../table-scrollbar/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as E}from"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-34027e61.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var A=p({onRequest:b,tableList:[],getEasyTableRef:function e(){}});var O={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var W=function e(t){if(!B[t]){B[t]=z(I)}return B[t]};var _=d((function(e,a){var c;var p=f([]),d=p[0],y=p[1];var h=f(0),S=h[0],b=h[1];var j=f(false),F=j[0],q=j[1];var z=o.useId(undefined,"easy-table-key");var x=m((function(){return e.cacheSwitch?location.pathname:z}),[z,e.cacheSwitch]);var P=W(x).useStore(),w=P[0],k=P[1];var T=e.pageSize||((c=e.initialPaginationParams)==null?void 0:c.pageSize)||10;var D=e.initRequest===undefined?true:e.initRequest;var K=f(false),L=K[0],V=K[1];var E=g();var O=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var I=s.useForm(e.form),B=I[0];var _=o.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,c,p,d,f,m,g,v;var h=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{q(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return h()}catch(e){return n(e)}};try{q(true);return Promise.resolve(k.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,c=s.requestParamsAdapter,p=s.onRequest,d=s.requestResultAdapter;f=c?c(o):o;return Promise.resolve(p(f)).then((function(t){try{m=t||{};E.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=d?d(m):m;v=g[O.list];y(r(v)?v:[]);b(g[O.total]);q(false);return h()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var H=o.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(k.resetFilterCondition()).then((function(r){try{B.resetFields();if(e){void k.updateFilterCondition(e);B.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var U=function e(t,i){if(L){var r;return r={},r[O.pageNo]=t,r[O.pageSize]=i||T,r}else{return{}}};var Q=o.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},U(1,w.queryCondition[O.pageSize]),e.initialValues,t);return Promise.resolve(k.resetFilterCondition(a)).then((function(e){try{B.resetFields();if(t){B.setFieldsValue(t)}void _(a);return i()}catch(e){return r(e)}}),r)}))}));var Y=o.useCallbackRef((function(){return n({},w.queryCondition,B.getFieldsValue())}));var G=function t(){return{onRequest:_,clearQueryCondition:H,getRequestParams:Y,onResetRequest:Q,form:B,getDataSource:function e(){return E.current},onFilterDataSource:function e(t){y(t)},onClearDataSource:function e(){b(0);y([])},onUpdateDataSource:function t(i){y(i);E.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};v(a,(function(){return G()}));var $=function e(t){V(t)};var J=function t(){var i=B.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,U(1,w.queryCondition[O.pageSize])))}else{void _(n({},i,U(1,w.queryCondition[O.pageSize])))}};var M=i(e.isFull)?true:e.isFull;var X=t("fba-easy-table",{"fba-easy-table-full":M,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var Z=m((function(){return n({showSizeChanger:true,current:w.queryCondition[O.pageNo]||1,pageSize:w.queryCondition[O.pageSize]||T,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[O.pageNo,O.pageSize,T,e.pagination,w.queryCondition,S]);var ee=o.useCallbackRef((function(t,i){var r,n;void _((r={},r[O.pageSize]=i,r[O.pageNo]=t,r));(n=e.pagination)==null||n.onChange==null?void 0:n.onChange(t,i)}));var te=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ie=typeof e.children==="function"?e.children(E.current):e.children;return R(A.Provider,{value:{getEasyTableRef:G,modelKey:x,onRequest:_,tableList:d,tableTotal:S,loading:F,fieldNames:O,pageSize:T,initRequest:D,initialValues:e.initialValues||{},onSetPaginationStatus:$,paginationStatus:L,onFormFinish:J,form:B,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?N("div",{className:te,style:e.style,children:[R("div",{className:X,children:ie}),S>0&&R("div",{className:"fba-easy-table-pagination",children:R(C,n({size:"small"},Z,{onChange:ee}))})]}):R("div",{className:X,style:e.style,children:ie})})}));var H=function e(r){var a=y(A);var l=r.queryButtonProps,u=r.resetButtonProps,c=r.filterOperate,p=r.formClassName,d=r.defaultResetButtonTriggerRequest,g=r.filterWrapperStyle,v=r.filterWrapperClassName,C=r.rightOperateAreaAppendType;var S=a.modelKey,b=a.foldKeys,j=a.fieldNames,F=a.onRequest,q=a.pageSize,z=a.paginationStatus,K=a.initialValues,L=a.form,V=a.onFormFinish;var E=typeof r.children==="function"?r.children(L):r.children;var O=C||"cover";var I=m((function(){if(w(E)){return h.toArray(E.props.children)}else{return h.toArray(E)}}),[E]);var B=f(false),_=B[0],H=B[1];var U=W(S).useStore(),Q=U[0],Y=U[1];var G=o.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(Y.resetFilterCondition()).then((function(a){try{L.resetFields();if(i(d)||d){if(z){F(n((r={},r[j.pageNo]=1,r[j.pageSize]=q,r),K))}else{F(K)}}return e()}catch(e){return t(e)}}),t)}))}));var $=m((function(){var e=[R(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"),R(k,n({onClick:G},u,{children:(u==null?void 0:u.text)||"重置"}),"2")].filter(Boolean);var t=c==null?void 0:c(L);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(O==="afterAppend"){a=[].concat(e,i)}else if(O==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(b.length>0){var o=R(k,{type:"link",style:{padding:"0"},onClick:function e(){H(!_)},children:_?N("span",{children:["收起",R(P,{style:{marginLeft:3,fontSize:12}})]}):N("span",{children:["展开",R(x,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return I.map((function(e,t){if(!_&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return R(T.Col,{children:e},t)})).filter(Boolean).concat(R(T.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[I,c,b,L,G,_,l,u,O]);return R(D,{className:t("easy-table-filter",v),style:g,children:R(s,{form:L,autoComplete:"off",onFinish:V,initialValues:n({},K,Q.queryCondition),className:p,style:r.formStyle,children:r.isPure?E:R(T.Row,{gutter:[15,0],gridSize:r.formGridSize,children:$})})})};var U=function e(){var t=y(A);return t.getEasyTableRef()};var Q=function e(){var t=y(A);return{current:t.getEasyTableRef()}};var Y=["children","rowKey","pagination"],G=["tooltip","tipsWrapperProps","title"];var $=function e(i){var r=y(A);var o=i.children,l=i.rowKey,s=i.pagination,u=a(i,Y);var p=r.modelKey,d=r.fieldNames,f=r.onRequest,g=r.tableList,v=r.initRequest,h=r.pageSize,C=r.tableTotal,b=r.loading,z=r.initialValues,x=r.paginationFixed,P=r.onSetPaginationStatus;var w=W(p).useStore(),k=w[0],T=w[1];var O=m((function(){if(x||s===false)return false;return n({showSizeChanger:true,current:k.queryCondition[d.pageNo]||1,pageSize:k.queryCondition[d.pageSize]||h,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:S})}),[d.pageNo,d.pageSize,h,s,x,i.pagination,k.queryCondition,C]);var I=function e(t,r,n,a){if(a.action==="paginate"&&O){var o;f((o={},o[d.pageSize]=t.pageSize,o[d.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var B=m((function(){if(g.length===0){return[]}if(typeof l==="string"&&j(g[0][l])){return g.map((function(e){e[l]=F();return e}))}return g}),[g,l]);K.useEffectCustom((function(){var e=x||O!==false;P(e);if(v!==false||!k.isInit){if(e){var t;void f(n((t={},t[d.pageNo]=1,t[d.pageSize]=h,t),z,k.queryCondition))}else{void f(z)}}else{void T.updateFilterCondition(z)}void T.updateInitStatus()}),[]);var _=m((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.tipsWrapperProps,r=e.title,o=a(e,G);if(typeof r==="string"&&i){if(typeof i==="string"){return n({},o,{title:R(E,{tipType:"popover",popoverProps:{content:i},children:r})})}return n({},o,{title:R(E,n({},i,{children:r}))})}if(typeof r==="string"&&!!t){return n({},o,{title:R(V,{tooltip:t,title:r})})}return e}))}),[i.columns]);return N(D,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[o,q()?R(c,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B})):R(L,{children:R(c,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B}))})]})};var J=e.attachPropertiesToComponent(_,{Filter:H,Table:$,useEasyTablRef:Q,useEasyTable:U});export{J as EasyTable};
|
|
16
16
|
//# sourceMappingURL=index.js.map
|