@flatbiz/antd 4.2.76 → 4.2.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/drag-collapse-form-list/index.css +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/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-field/index.css +1 -1
- package/esm/editable-field/index.js +1 -1
- package/esm/editable-field/index.js.map +1 -1
- package/esm/form-grid/index.js.map +1 -1
- package/esm/label-value-layout/index.js +1 -1
- package/esm/label-value-layout/index.js.map +1 -1
- package/esm/pre-defined-class-name/index.css +1 -1
- package/esm/simple-layout/index.js +1 -1
- package/esm/simple-layout/index.js.map +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper/index.js.map +1 -1
- package/index.d.ts +31 -13
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
.drag-collapse-formlist-wrapper{border:1px solid #d9d9d9;border-radius:8px;overflow:hidden}.drag-collapse-formlist-wrapper .drag-collapse{background-color:#fafafa}.drag-collapse-formlist-wrapper .drag-collapse>.ant-collapse-item{border-radius:0}.drag-collapse-formlist-wrapper .drag-collapse .ant-collapse-header{align-items:center;border-radius:0}.drag-collapse-formlist-wrapper .drag-collapse .ant-collapse-content{border-radius:0}.drag-collapse-formlist-wrapper .drag-collapse .ant-collapse-header-text{align-items:center;display:flex}.drag-collapse-formlist-wrapper .drag-collapse .dc-drag-header-content{flex:1}.drag-collapse-formlist-wrapper .drag-collapse:not(.overlay-sortable-item){border:none;border-radius:0}.drag-collapse-formlist-wrapper .dc-drag-trigger{align-items:center;border-radius:6px;cursor:move;display:inline-flex;font-size:16px;height:30px;justify-content:center;margin-right:5px;width:30px}.drag-collapse-formlist-wrapper .dc-drag-trigger:hover{background-color:rgba(0,0,0,.1)}.drag-collapse-formlist-wrapper .drag-collapse-grap *{opacity:.7!important}.drag-collapse-formlist-wrapper .overlay-sortable-item{border:none;border-radius:6px;box-shadow:0 0 12px 4px rgba(34,33,81,.1)}.drag-collapse-formlist-wrapper .overlay-sortable-item .ant-collapse-item{border-bottom:none}.drag-collapse-formlist-wrapper .overlay-sortable-item .dc-drag-trigger{background-color:transparent}.drag-collapse-formlist-wrapper .drag-collapse-last .ant-collapse-item{border-bottom:none}.drag-collapse-formlist-wrapper .drag-collapse-drag-disabled .dc-drag-trigger{cursor:no-drop;opacity:.6}
|
|
1
|
+
.drag-collapse-formlist-wrapper.dcfw-isEmpty{border:none}.drag-collapse-formlist-wrapper{border:1px solid #d9d9d9;border-radius:8px;overflow:hidden}.drag-collapse-formlist-wrapper .drag-collapse{background-color:#fafafa}.drag-collapse-formlist-wrapper .drag-collapse>.ant-collapse-item{border-radius:0}.drag-collapse-formlist-wrapper .drag-collapse .ant-collapse-header{align-items:center;border-radius:0}.drag-collapse-formlist-wrapper .drag-collapse .ant-collapse-content{border-radius:0}.drag-collapse-formlist-wrapper .drag-collapse .ant-collapse-header-text{align-items:center;display:flex}.drag-collapse-formlist-wrapper .drag-collapse .dc-drag-header-content{flex:1}.drag-collapse-formlist-wrapper .drag-collapse:not(.overlay-sortable-item){border:none;border-radius:0}.drag-collapse-formlist-wrapper .dc-drag-trigger{align-items:center;border-radius:6px;cursor:move;display:inline-flex;font-size:16px;height:30px;justify-content:center;margin-right:5px;width:30px}.drag-collapse-formlist-wrapper .dc-drag-trigger:hover{background-color:rgba(0,0,0,.1)}.drag-collapse-formlist-wrapper .drag-collapse-grap *{opacity:.7!important}.drag-collapse-formlist-wrapper .overlay-sortable-item{border:none;border-radius:6px;box-shadow:0 0 12px 4px rgba(34,33,81,.1)}.drag-collapse-formlist-wrapper .overlay-sortable-item .ant-collapse-item{border-bottom:none}.drag-collapse-formlist-wrapper .overlay-sortable-item .dc-drag-trigger{background-color:transparent}.drag-collapse-formlist-wrapper .drag-collapse-last .ant-collapse-item{border-bottom:none}.drag-collapse-formlist-wrapper .drag-collapse-drag-disabled .dc-drag-trigger{cursor:no-drop;opacity:.6}
|
|
@@ -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
|
|
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 s,verticalListSortingStrategy as d,arrayMove as l}from"@dnd-kit/sortable";import{toArray as c}from"@flatbiz/utils";import{Collapse as m,Form as f}from"antd";import{Fragment as u,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-fc015ef2.js";import b from"@ant-design/icons/es/icons/DragOutlined";import{CSS as y}from"@dnd-kit/utilities";import{jsx as D,jsxs as x}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";function N(a){var n;var i=a.isOverlay?false:a.getItemDragDisabled==null?void 0:a.getItemDragDisabled(a.uid,a.index);var r=o({id:a.uid,disabled:i}),t=r.listeners,s=r.setNodeRef,d=r.transform,l=r.transition;var c=function e(){var n=a.dragIcon?a.dragIcon:D(b,{});var i=a.header({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName});return a.dragDisabled?i:x(u,{children:[D("span",I({className:"dc-drag-trigger"},t,{children:n})),D("span",{className:"dc-drag-header-content",style:a.headerStyle,children:i})]})};var f=I({transform:y.Transform.toString(d),transition:l},a.style);var p=e("drag-collapse",{"drag-collapse-grap":a.isGray,"drag-collapse-last":a.isLast,"drag-collapse-drag-disabled":i},a.className);return D(m,{activeKey:a.isActive?a.uid:undefined,accordion:true,className:p,collapsible:a.collapsible,expandIcon:a.expandIcon,expandIconPosition:a.expandIconPosition,size:a.size,onChange:(n=a.onChange)==null?void 0:n.bind(null,a.uid),style:I({},f),ref:s,children:D(m.Panel,{header:c(),children:a.content({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName})},a.uid)})}var C=function o(m){var I=p(),b=I[0],y=I[1];var C=p([]),L=C[0],j=C[1];var F=f.useFormInstance();var S=g([]);var k=f.useWatch(m.formListName,F);var P=n.useCallbackRef((function(e){return e==null?void 0:e[m.uidFieldName||"uid"]}));h.useEffectCustom((function(){var e=c(m.defaultActiveKey);if(!m.activeKey&&e.length>0){j(e)}else{j(c(m.activeKey))}}),[]);n.useUpdateEffect((function(){j(c(m.activeKey))}),[m.activeKey]);var z=function e(n){var i=[];if(m.accordion){if(L[0]&&L[0]===n){i=[]}else{i=[n]}}else{var r=L.includes(n);if(r){a.arrayRemove(L,n);i=[].concat(L)}else{i=L.concat(n)}}j(i);if(m.accordion){m.onChange==null?void 0:m.onChange(i.length?i[0]:undefined)}else{m.onChange==null?void 0:m.onChange(i.length?i:undefined)}};function O(e){var a=e.active;y(a.id)}var K=n.useCallbackRef((function(){return F.getFieldValue(m.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);F.setFields([{name:m.formListName,value:o}]);m.onDropChange==null?void 0:m.onDropChange(o)}y(undefined)}var E=v((function(){if(!b)return undefined;var e=K();var a=e.findIndex((function(e){return P(e)===b}));return S.current.find((function(e){return e.name===a}))}),[b,K,P]);var R=e("drag-collapse-formlist-wrapper",{"dcfw-isEmpty":c(k).length===0},m.className);return D("div",{className:R,style:m.style,children:D(i,{collisionDetection:r,onDragStart:O,onDragEnd:A,children:D(f.List,{name:m.formListName,children:function e(a,n){S.current=a;return x(u,{children:[D(s,{items:K().map((function(e){return P(e)})),strategy:d,children:D(u,{children:a.map((function(e,a){var i=P(K()[a]);return D(N,{formListOperate:n,formListFieldData:e,uid:i,isActive:L.includes(i),collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,getItemDragDisabled:m.getItemDragDisabled,dragDisabled:m.dragDisabled,onChange:z,isGray:i===b,isLast:a===K().length-1,header:m.header,content:m.content,index:a,formStageCompleteName:[].concat(c(m.formListName),[e.name])},i+"-"+e.key)}))})}),D(t,{dropAnimation:{duration:0},children:b&&E?D(N,{isOverlay:true,uid:b,className:"overlay-sortable-item",formListFieldData:E,isActive:L.includes(b),collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,onChange:z,header:m.header,content:m.content,formListOperate:null,index:0,formStageCompleteName:[].concat(c(m.formListName),[E.name])},b):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, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: string | number | (string | number)[];\n};\nexport function SortableItem(props: SortableItemProps) {\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n >\n <Collapse.Panel header={header()} key={props.uid}>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n })}\n </Collapse.Panel>\n </Collapse>\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过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 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 return (\n <div className={classNames('drag-collapse-formlist-wrapper', props.className)} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.formListName}>\n {(fields, operate) => {\n formListOperationRef.current = fields;\n return (\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => 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","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","Panel","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","form","Form","useFormInstance","formListOperationRef","useRef","getUidValue","_hooks","useCallbackRef","item","uidFieldName","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","useUpdateEffect","key","openKeysNew","has","includes","_array","arrayRemove","concat","handleDragStart","event","active","getItems","getFieldValue","formListName","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","name","value","onDropChange","dragOverlayItem","useMemo","targetIndex","current","find","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","fields","operate","SortableContext","map","temp","strategy","verticalListSortingStrategy","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
|
1
|
+
{"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, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: string | number | (string | number)[];\n};\nexport function SortableItem(props: SortableItemProps) {\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n >\n <Collapse.Panel header={header()} key={props.uid}>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n })}\n </Collapse.Panel>\n </Collapse>\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过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","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","Panel","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","form","Form","useFormInstance","formListOperationRef","useRef","formListValue","useWatch","formListName","getUidValue","_hooks","useCallbackRef","item","uidFieldName","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","useUpdateEffect","key","openKeysNew","has","includes","_array","arrayRemove","concat","handleDragStart","event","active","getItems","getFieldValue","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","name","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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"}
|
package/esm/easy-table/index.js
CHANGED
|
@@ -10,5 +10,5 @@ import './../table-scrollbar/index.css';
|
|
|
10
10
|
import './../table-title-tooltip/index.css';
|
|
11
11
|
import './index.css';
|
|
12
12
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
13
|
-
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{hooks as n}from"@wove/react/cjs/hooks";import{_ as a,a as o}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as d}from"antd";import{forwardRef as c,useState as f,useRef as p,useImperativeHandle as m,useMemo as g,Children as v}from"react";import{P as y,S as h}from"../index-e98b9352.js";import{createCtx as C}from"@wove/react/cjs/create-ctx";import{Model as S}from"@dimjs/model-react";import{jsx as b,jsxs as j}from"react/jsx-runtime";import F from"@ant-design/icons/es/icons/DownOutlined";import q from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as z}from"react-is";import{ButtonWrapper as N}from"../button-wrapper/index.js";import{FormGrid as R}from"../form-grid/index.js";import{SimpleLayout as x}from"../simple-layout/index.js";import{isUndefinedOrNull as w,getUuid as P,isMacEnv as k}from"@flatbiz/utils";import{fbaHooks as T}from"../fba-hooks/index.js";import{TableScrollbar as K}from"../table-scrollbar/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/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"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var L=C(),E=L[0],D=L[1];var O={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=a({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=a({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var A=function e(t){if(!B[t]){B[t]=S(I)}return B[t]};var W=c((function(e,o){var d;var c=f([]),v=c[0],h=c[1];var C=f(0),S=C[0],F=C[1];var q=f(false),z=q[0],N=q[1];var R=A(e.modelKey).useStore(),x=R[0],w=R[1];var P=e.pageSize||((d=e.initialPaginationParams)==null?void 0:d.pageSize)||10;var k=e.initRequest===undefined?true:e.initRequest;var T=f(false),K=T[0],V=T[1];var L=p();var E=a({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var O=s.useForm(e.form),I=O[0];var B=n.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,d,c,f,p,m,g,v;var y=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{N(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return y()}catch(e){return n(e)}};try{N(true);return Promise.resolve(w.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,d=s.requestParamsAdapter,c=s.onRequest,f=s.requestResultAdapter;p=d?d(o):o;return Promise.resolve(c(p)).then((function(t){try{m=t||{};L.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=f?f(m):m;v=g[E.list];h(r(v)?v:[]);F(g[E.total]);N(false);return y()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var W=n.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(w.resetFilterCondition()).then((function(r){try{I.resetFields();if(e){void w.updateFilterCondition(e);I.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var _=function e(t,i){if(K){var r;return r={},r[E.pageNo]=t,r[E.pageSize]=i||P,r}else{return{}}};var H=n.useCallbackRef((function(t){return new Promise((function(i,r){var n;n=a({},_(1,x.queryCondition[E.pageSize]),e.initialValues,t);return Promise.resolve(w.resetFilterCondition(n)).then((function(e){try{I.resetFields();if(t){I.setFieldsValue(t)}void B(n);return i()}catch(e){return r(e)}}),r)}))}));var Q=n.useCallbackRef((function(){return a({},x.queryCondition,I.getFieldsValue())}));var U=function e(){return{onRequest:B,clearQueryCondition:W,getRequestParams:Q,onResetRequest:H,form:I,getDataSource:function e(){return L.current},onFilterDataSource:function e(t){h(t)},onClearDataSource:function e(){F(0);h([])}}};m(o,(function(){return U()}));var Y=function e(t){V(t)};var G=function t(){var i=I.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},i,_(1,x.queryCondition[E.pageSize])))}else{void B(a({},i,_(1,x.queryCondition[E.pageSize])))}};var $=i(e.isFull)?true:e.isFull;var J=t("fba-easy-table",{"fba-easy-table-full":$,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var M=g((function(){return a({showSizeChanger:true,current:x.queryCondition[E.pageNo]||1,pageSize:x.queryCondition[E.pageSize]||P,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[E.pageNo,E.pageSize,P,e.pagination,x.queryCondition,S]);var X=n.useCallbackRef((function(t,i){var r,n;void B((r={},r[E.pageSize]=i,r[E.pageNo]=t,r));(n=e.pagination)==null||n.onChange==null?void 0:n.onChange(t,i)}));var Z=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ee=typeof e.children==="function"?e.children(L.current):e.children;return b(D,{value:{getEasyTableRef:U,modelKey:e.modelKey,onRequest:B,tableList:v,tableTotal:S,loading:z,fieldNames:E,pageSize:P,initRequest:k,initialValues:e.initialValues||{},onSetPaginationStatus:Y,paginationStatus:K,onFormFinish:G,form:I,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?j("div",{className:Z,style:e.style,children:[b("div",{className:J,children:ee}),S>0&&b("div",{className:"fba-easy-table-pagination",children:b(y,a({size:"small"},M,{onChange:X}))})]}):b("div",{className:J,style:e.style,children:ee})})}));var _=function e(r){var o=r.queryButtonProps,l=r.resetButtonProps,u=r.filterOperate,d=r.formClassName,c=r.defaultResetButtonTriggerRequest,p=r.filterWrapperStyle,m=r.filterWrapperClassName;var y=E(),h=y.modelKey,C=y.foldKeys,S=y.fieldNames,w=y.onRequest,P=y.pageSize,k=y.paginationStatus,T=y.initialValues,K=y.form,V=y.onFormFinish;var L=typeof r.children==="function"?r.children(K):r.children;var D=g((function(){if(z(L)){return v.toArray(L.props.children)}else{return v.toArray(L)}}),[L]);var O=f(false),I=O[0],B=O[1];var W=A(h).useStore(),_=W[0],H=W[1];var Q=n.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(H.resetFilterCondition()).then((function(n){try{K.resetFields();if(i(c)||c){if(k){w(a((r={},r[S.pageNo]=1,r[S.pageSize]=P,r),T))}else{w(T)}}return e()}catch(e){return t(e)}}),t)}))}));var U=g((function(){var e=a({rightList:[!(o!=null&&o.hidden)?b(N,a({type:"primary",htmlType:"submit"},o,{children:(o==null?void 0:o.text)||"查询"}),"1"):null,!(l!=null&&l.hidden)?b(N,a({onClick:Q},l,{children:(l==null?void 0:l.text)||"重置"}),"2"):null],leftList:[]},u==null?void 0:u(K));if(C.length>0){var t=b(N,{type:"link",style:{padding:"0"},onClick:function e(){B(!I)},children:I?j("span",{children:["收起",b(q,{style:{marginLeft:3,fontSize:12}})]}):j("span",{children:["展开",b(F,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");var i=e.rightList,r=e.leftList;if(i.length>0||r.length===0){i.push(t)}else if((r==null?void 0:r.length)>0){r.push(t)}}return D.map((function(e,t){if(!I&&C.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return b(R.Col,{children:e},t)})).filter(Boolean).concat(b(R.OperateCol,a({},e),999))}),[D,u,C,K,Q,I,o,l]);return b(x,{className:t("easy-table-filter",m),style:p,children:b(s,{form:K,autoComplete:"off",onFinish:V,initialValues:a({},T,_.queryCondition),className:d,children:r.isPure?L:b(R.Row,{gutter:[15,0],gridSize:r.formGridSize,children:U})})})};var H=function e(){var t=E();var i=p(t.getEasyTableRef());return i.current};var Q=function e(){var t=E(),i=t.getEasyTableRef;var r=p(i());return r};var U=["children","rowKey","pagination"],Y=["tooltip","title"];var G=function e(i){var r=i.children,n=i.rowKey,l=i.pagination,s=o(i,U);var u=E(),c=u.modelKey,f=u.fieldNames,p=u.onRequest,m=u.tableList,v=u.initRequest,y=u.pageSize,C=u.tableTotal,S=u.loading,F=u.initialValues,q=u.paginationFixed,z=u.onSetPaginationStatus;var N=A(c).useStore(),R=N[0],L=N[1];var D=g((function(){if(q||l===false)return false;return a({showSizeChanger:true,current:R.queryCondition[f.pageNo]||1,pageSize:R.queryCondition[f.pageSize]||y,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:h})}),[f.pageNo,f.pageSize,y,l,q,i.pagination,R.queryCondition,C]);var O=function e(t,r,n,a){if(a.action==="paginate"&&D){var o;p((o={},o[f.pageSize]=t.pageSize,o[f.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var I=g((function(){if(m.length===0){return[]}if(typeof n==="string"&&w(m[0][n])){return m.map((function(e){e[n]=P();return e}))}return m}),[m,n]);T.useEffectCustom((function(){var e=q||D!==false;z(e);if(v!==false||!R.isInit){if(e){var t;void p(a((t={},t[f.pageNo]=1,t[f.pageSize]=y,t),F,R.queryCondition))}else{void p(F)}}else{void L.updateFilterCondition(F)}void L.updateInitStatus()}),[]);var B=g((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.title,r=o(e,Y);if(typeof i==="string"&&!!t){return a({},r,{title:b(V,{title:i,tooltip:t})})}return e}))}),[i.columns]);return j(x,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[r,k()?b(d,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:D,rowKey:n,onChange:O,loading:S,dataSource:I})):b(K,{children:b(d,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:D,rowKey:n,onChange:O,loading:S,dataSource:I}))})]})};var $=e.attachPropertiesToComponent(W,{Filter:_,Table:G,useEasyTablRef:Q,useEasyTable:H});export{$ as EasyTable};
|
|
13
|
+
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 n}from"@dimjs/lang/cjs/is-array";import{_ as r,a}from"../_rollupPluginBabelHelpers-fc015ef2.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{forwardRef as d,useState as f,useMemo as p,useRef as m,useImperativeHandle as g,Children as v}from"react";import{P as y,S as h}from"../index-e98b9352.js";import{createCtx as C}from"@wove/react/cjs/create-ctx";import{Model as S}from"@dimjs/model-react";import{jsx as b,jsxs as j}from"react/jsx-runtime";import F from"@ant-design/icons/es/icons/DownOutlined";import q from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as z}from"react-is";import{ButtonWrapper as N}from"../button-wrapper/index.js";import{FormGrid as R}from"../form-grid/index.js";import{SimpleLayout as x}from"../simple-layout/index.js";import{isUndefinedOrNull as w,getUuid as P,isMacEnv as k}from"@flatbiz/utils";import{fbaHooks as T}from"../fba-hooks/index.js";import{TableScrollbar as D}from"../table-scrollbar/index.js";import{TableTitleTooltip as K}from"../table-title-tooltip/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"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var V=C(),L=V[0],E=V[1];var I={queryCondition:{},isInit:true};var O={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=r({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=r({},I.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:I};var B={};var A=function e(t){if(!B[t]){B[t]=S(O)}return B[t]};var W=d((function(e,a){var c;var d=f([]),v=d[0],h=d[1];var C=f(0),S=C[0],F=C[1];var q=f(false),z=q[0],N=q[1];var R=o.useId(undefined,"easy-table-key");var x=p((function(){return e.cacheSwitch?location.pathname:R}),[R,e.cacheSwitch]);var w=A(x).useStore(),P=w[0],k=w[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),V=K[0],L=K[1];var I=m();var O=r({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var B=s.useForm(e.form),W=B[0];var _=o.useCallbackRef((function(t){return new Promise((function(i,r){var a,o,s,c,d,f,p,m,g,v;var y=function(){try{return i()}catch(e){return r(e)}};var C=function(t){try{N(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return y()}catch(e){return r(e)}};try{N(true);return Promise.resolve(k.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,c=s.requestParamsAdapter,d=s.onRequest,f=s.requestResultAdapter;p=c?c(o):o;return Promise.resolve(d(p)).then((function(t){try{m=t||{};I.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=f?f(m):m;v=g[O.list];h(n(v)?v:[]);F(g[O.total]);N(false);return y()}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(n){try{W.resetFields();if(e){void k.updateFilterCondition(e);W.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var U=function e(t,i){if(V){var n;return n={},n[O.pageNo]=t,n[O.pageSize]=i||T,n}else{return{}}};var Q=o.useCallbackRef((function(t){return new Promise((function(i,n){var a;a=r({},U(1,P.queryCondition[O.pageSize]),e.initialValues,t);return Promise.resolve(k.resetFilterCondition(a)).then((function(e){try{W.resetFields();if(t){W.setFieldsValue(t)}void _(a);return i()}catch(e){return n(e)}}),n)}))}));var Y=o.useCallbackRef((function(){return r({},P.queryCondition,W.getFieldsValue())}));var G=function t(){return{onRequest:_,clearQueryCondition:H,getRequestParams:Y,onResetRequest:Q,form:W,getDataSource:function e(){return I.current},onFilterDataSource:function e(t){h(t)},onClearDataSource:function e(){F(0);h([])},onUpdateDataSource:function t(i){h(i);I.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};g(a,(function(){return G()}));var $=function e(t){L(t)};var J=function t(){var i=W.getFieldsValue();if(e.onFormFinish){e.onFormFinish(r({},i,U(1,P.queryCondition[O.pageSize])))}else{void _(r({},i,U(1,P.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=p((function(){return r({showSizeChanger:true,current:P.queryCondition[O.pageNo]||1,pageSize:P.queryCondition[O.pageSize]||T,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[O.pageNo,O.pageSize,T,e.pagination,P.queryCondition,S]);var ee=o.useCallbackRef((function(t,i){var n,r;void _((n={},n[O.pageSize]=i,n[O.pageNo]=t,n));(r=e.pagination)==null||r.onChange==null?void 0:r.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(I.current):e.children;return b(E,{value:{getEasyTableRef:G,modelKey:x,onRequest:_,tableList:v,tableTotal:S,loading:z,fieldNames:O,pageSize:T,initRequest:D,initialValues:e.initialValues||{},onSetPaginationStatus:$,paginationStatus:V,onFormFinish:J,form:W,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?j("div",{className:te,style:e.style,children:[b("div",{className:X,children:ie}),S>0&&b("div",{className:"fba-easy-table-pagination",children:b(y,r({size:"small"},Z,{onChange:ee}))})]}):b("div",{className:X,style:e.style,children:ie})})}));var _=function e(n){var a=n.queryButtonProps,l=n.resetButtonProps,u=n.filterOperate,c=n.formClassName,d=n.defaultResetButtonTriggerRequest,m=n.filterWrapperStyle,g=n.filterWrapperClassName;var y=L(),h=y.modelKey,C=y.foldKeys,S=y.fieldNames,w=y.onRequest,P=y.pageSize,k=y.paginationStatus,T=y.initialValues,D=y.form,K=y.onFormFinish;var V=typeof n.children==="function"?n.children(D):n.children;var E=p((function(){if(z(V)){return v.toArray(V.props.children)}else{return v.toArray(V)}}),[V]);var I=f(false),O=I[0],B=I[1];var W=A(h).useStore(),_=W[0],H=W[1];var U=o.useCallbackRef((function(){return new Promise((function(e,t){var n;return Promise.resolve(H.resetFilterCondition()).then((function(a){try{D.resetFields();if(i(d)||d){if(k){w(r((n={},n[S.pageNo]=1,n[S.pageSize]=P,n),T))}else{w(T)}}return e()}catch(e){return t(e)}}),t)}))}));var Q=p((function(){var e=r({rightList:[!(a!=null&&a.hidden)?b(N,r({type:"primary",htmlType:"submit"},a,{children:(a==null?void 0:a.text)||"查询"}),"1"):null,!(l!=null&&l.hidden)?b(N,r({onClick:U},l,{children:(l==null?void 0:l.text)||"重置"}),"2"):null],leftList:[]},u==null?void 0:u(D));if(C.length>0){var t=b(N,{type:"link",style:{padding:"0"},onClick:function e(){B(!O)},children:O?j("span",{children:["收起",b(q,{style:{marginLeft:3,fontSize:12}})]}):j("span",{children:["展开",b(F,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");var i=e.rightList,n=e.leftList;if(i.length>0||n.length===0){i.push(t)}else if((n==null?void 0:n.length)>0){n.push(t)}}return E.map((function(e,t){if(!O&&C.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return b(R.Col,{children:e},t)})).filter(Boolean).concat(b(R.OperateCol,r({},e),999))}),[E,u,C,D,U,O,a,l]);return b(x,{className:t("easy-table-filter",g),style:m,children:b(s,{form:D,autoComplete:"off",onFinish:K,initialValues:r({},T,_.queryCondition),className:c,children:n.isPure?V:b(R.Row,{gutter:[15,0],gridSize:n.formGridSize,children:Q})})})};var H=function e(){var t=L();var i=m(t.getEasyTableRef());return i.current};var U=function e(){var t=L(),i=t.getEasyTableRef;var n=m(i());return n};var Q=["children","rowKey","pagination"],Y=["tooltip","title"];var G=function e(i){var n=i.children,o=i.rowKey,l=i.pagination,s=a(i,Q);var u=L(),d=u.modelKey,f=u.fieldNames,m=u.onRequest,g=u.tableList,v=u.initRequest,y=u.pageSize,C=u.tableTotal,S=u.loading,F=u.initialValues,q=u.paginationFixed,z=u.onSetPaginationStatus;var N=A(d).useStore(),R=N[0],V=N[1];var E=p((function(){if(q||l===false)return false;return r({showSizeChanger:true,current:R.queryCondition[f.pageNo]||1,pageSize:R.queryCondition[f.pageSize]||y,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:h})}),[f.pageNo,f.pageSize,y,l,q,i.pagination,R.queryCondition,C]);var I=function e(t,n,r,a){if(a.action==="paginate"&&E){var o;m((o={},o[f.pageSize]=t.pageSize,o[f.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,n,r,a)}};var O=p((function(){if(g.length===0){return[]}if(typeof o==="string"&&w(g[0][o])){return g.map((function(e){e[o]=P();return e}))}return g}),[g,o]);T.useEffectCustom((function(){var e=q||E!==false;z(e);if(v!==false||!R.isInit){if(e){var t;void m(r((t={},t[f.pageNo]=1,t[f.pageSize]=y,t),F,R.queryCondition))}else{void m(F)}}else{void V.updateFilterCondition(F)}void V.updateInitStatus()}),[]);var B=p((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.title,n=a(e,Y);if(typeof i==="string"&&!!t){return r({},n,{title:b(K,{title:i,tooltip:t})})}return e}))}),[i.columns]);return j(x,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[n,k()?b(c,r({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:E,rowKey:o,onChange:I,loading:S,dataSource:O})):b(D,{children:b(c,r({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:E,rowKey:o,onChange:I,loading:S,dataSource:O}))})]})};var $=e.attachPropertiesToComponent(W,{Filter:_,Table:G,useEasyTablRef:U,useEasyTable:H});export{$ as EasyTable};
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /** EasyTable唯一值,可用于缓存查询条件 */\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableCtxProvider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n leftList: [],\n ...filterOperate?.(form),\n };\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n const { rightList, leftList } = formOperateColProps;\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(<FormGrid.OperateCol key={999} {...formOperateColProps} />);\n }, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, title, ...otherProps } = item;\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip title={title} tooltip={tooltip} />,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 4. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 5. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 6. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 7. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 8. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getEasyTableRef","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","value","tableList","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","_useEasyTableCtx","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","leftList","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","filter","Boolean","concat","OperateCol","SimpleLayout","autoComplete","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","ctx","resp","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","title","_excluded2","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":";m6DAKO,IAAAA,EAAgDC,IAAzCC,EAAeF,EAAA,GAAEG,EAAoBH,EAAA,GCUnD,IAAMI,EAA2B,CAC/BC,eAAgB,CAAE,EAClBC,OAAQ,MAGV,IAAMC,EAA4D,CAChEC,QAAS,CACPC,sBAAuB,SAAAA,EAACC,GACtB,OAAO,SAACC,GACNA,EAAMN,eAAcO,EAAA,CAAA,EACfD,EAAMN,eACNK,GAGR,EACDG,qBAAsB,SAAAA,EAACH,GACrB,OAAO,SAACC,GACNA,EAAMN,eAAcO,EAAA,CAAA,EACfR,EAAaC,eACbK,GAGR,EACDI,iBAAkB,SAAAA,IAChB,OAAO,SAACH,GACNA,EAAML,OAAS,MAEnB,GAEFK,MAAOP,GAGT,IAAMW,EAAuF,CAAA,EAQtF,IAAMC,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAKF,EAAgBE,GAAM,CACzBF,EAAgBE,GAAOC,EAAMX,EAC/B,CACA,OAAOQ,EAAgBE,EACzB,ECsCO,IAAME,EAAYC,GAA4C,SAACC,EAAOC,GAAQ,IAAAC,EACnF,IAAAC,EAAoCC,EAAyB,IAAtDC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChC,IAAAI,EAA0BH,EAAiB,GAApCI,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GACtB,IAAAG,EAA8BN,EAAkB,OAAzCO,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAAG,EAAyBlB,EAAeK,EAAMc,UAAUC,WAAjDzB,EAAKuB,EAAA,GAAE1B,EAAO0B,EAAA,GACrB,IAAMG,EAAWhB,EAAMgB,YAAQd,EAAIF,EAAMiB,0BAANf,UAAAA,EAAAA,EAA+Bc,WAAY,GAC9E,IAAME,EAAclB,EAAMkB,cAAgBC,UAAY,KAAOnB,EAAMkB,YACnE,IAAAE,EAAgDhB,EAAS,OAAlDiB,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAC5C,IAAMG,EAAsBC,IAE5B,IAAMC,EAAUlC,EAAA,CACdmC,KAAM,OACNlB,MAAO,QACPmB,OAAQ,SACRX,SAAU,YACPhB,EAAMyB,YAGX,IAAAG,EAAeC,EAAKC,QAAQ9B,EAAM+B,MAA3BA,EAAIH,EAAA,GAEX,IAAMI,EAAiBC,EAAMC,gBAAe,SAAO7C,GAAP,OAAA,IAAA8C,SAAA,SAAAC,EAAAC,GAAA,IAGlCC,EACAtD,EAA0DuD,EAAAC,EAAAC,EAAAC,EAE1DC,EACAC,EAGAC,EACAC,EAjIZ,IAAIC,aAAJ,IAAI,OAAAX,GAAK,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,GAAlC,IAAIC,EAAA,SAqISC,GArIb,IAsIMtC,EAAW,OACX,GAAIZ,EAAMmD,qBAAsB,CAC9BnD,EAAMmD,qBAAqBD,EAC7B,KAAO,MACAE,EAAQF,MAAMA,EAAME,QAC3B,CA3IN,OAAOL,GAAE,CAAC,MAAAC,GAAW,OAAOX,EAAAW,EAAM,GAuH9B,IACEpC,EAAW,MACM,OAAAuB,QAAAkB,QAAMlE,EAAQC,sBAAsBC,IAApCiE,eAA2CC,GAzHlE,IAyHYjB,EAAWiB,EACXvE,EAAiBwE,EAAWlB,EAAStD,gBAAkB,CAAE,GAC/DuD,EAAkEvC,EAAMyD,cAAhEjB,EAAoBD,EAApBC,qBAAsBC,EAASF,EAATE,UAAWC,EAAoBH,EAApBG,qBACnCC,EAAYH,EAAuBA,EAAqBxD,GAAkBA,EAC9D,OAAAmD,QAAAkB,QAAMZ,EAAUE,IAAhBW,MAA0B,SAAAI,GA7HlD,IA6HYd,EAAYc,GAA+B,GACjDnC,EAAoBoC,QAAUf,EAC9B5C,EAAM4D,oBAAN5D,UAAAA,EAAAA,EAAM4D,mBAAqBhB,GACrBC,EAAcH,EAAuBA,EAAqBE,GAAYA,EACtEE,EAAWD,EAAYpB,EAAWC,MACxCpB,EAAcuD,EAAQf,GAAYA,EAAW,IAC7CrC,EAASoC,EAAYpB,EAAWjB,QAChCI,EAAW,OApIjB,OAAOmC,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAA1B,CAAC,MAAAD,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAqI9B,CAAC,MAAOC,GAAOD,EAAPC,EAOT,CAAC,OAGH,IAAMY,EAAsB7B,EAAMC,gBAAe,SAAO6B,GAAP,OAAA,IAAA5B,SAAA,SAAAC,EAAAC,GAC/C,OAAAF,QAAAkB,QAAMlE,EAAQK,wBAAd8D,MAAoC,SAAAU,GAhJxC,IAiJIjC,EAAKkC,cACL,GAAIF,EAAQ,MACL5E,EAAQC,sBAAsB2E,GACnChC,EAAKmC,eAAeH,EACtB,CAAC,OAAA3B,GArJI,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EAgJK,OAQtC,IAAM8B,EAAoB,SAApBA,EAAqBxC,EAAgByC,GACzC,GAAI/C,EAAkB,CAAA,IAAAgD,EACpB,OAAAA,KAAAA,EACG5C,EAAWE,QAASA,EAAM0C,EAC1B5C,EAAWT,UAAWoD,GAAapD,EAAQqD,CAEhD,KAAO,CACL,MAAO,EACT,GAGF,IAAMC,EAAiBrC,EAAMC,gBAAe,SAAO6B,GAAP,OAAA,IAAA5B,SAAA,SAAAC,EAAAC,GAAA,IACpChD,EAAAA,EAAME,EACP4E,CAAAA,EAAAA,EAAkB,EAAG7E,EAAMN,eAAeyC,EAAWT,WACrDhB,EAAMuE,cACNR,GAEL,OAAA5B,QAAAkB,QAAMlE,EAAQK,qBAAqBH,IAAnCiE,eAA0CkB,GAzK9C,IA0KIzC,EAAKkC,cACL,GAAIF,EAAQ,CACVhC,EAAKmC,eAAeH,EACtB,MACK/B,EAAe3C,GAAQ,OAAA+C,GA9KvB,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EAyKW,OAQ5C,IAAMoC,EAAmBxC,EAAMC,gBAAe,WAC5C,OAAA3C,EACKD,CAAAA,EAAAA,EAAMN,eACN+C,EAAK2C,iBAEZ,IAEA,IAAMC,EAAkB,SAAlBA,IACJ,MAAO,CACLlC,UAAWT,EACX8B,oBAAAA,EACAW,iBAAAA,EACAH,eAAAA,EACAvC,KAAAA,EACA6C,cAAe,SAAAA,IACb,OAAOrD,EAAoBoC,OAC5B,EACDkB,mBAAoB,SAAAA,EAACC,GACnBxE,EAAcwE,EACf,EACDC,kBAAmB,SAAAA,IACjBtE,EAAS,GACTH,EAAc,GAChB,IAIJ0E,EAAoB/E,GAAK,WACvB,OAAO0E,GACT,IAEA,IAAMM,EAAwB,SAAxBA,EAAyBC,GAC7B5D,EAAoB4D,IAGtB,IAAMC,EAAe,SAAfA,IACJ,IAAMpB,EAAShC,EAAK2C,iBACpB,GAAI1E,EAAMmF,aAAc,CACtBnF,EAAMmF,aAAY5F,KAAMwE,EAAWI,EAAkB,EAAG7E,EAAMN,eAAeyC,EAAWT,YAC1F,KAAO,MACAgB,EAAczC,EAAA,GACdwE,EACAI,EAAkB,EAAG7E,EAAMN,eAAeyC,EAAWT,YAE5D,GAEF,IAAMoE,EAASC,EAAYrF,EAAMoF,QAAU,KAAOpF,EAAMoF,OACxD,IAAME,EAAYC,EAChB,iBACA,CACE,sBAAuBH,EACvB,8BAA+BpF,EAAMwF,YACrC,kCAAmCxF,EAAMyF,iBAE3CzF,EAAMsF,WAGR,IAAMI,EAAiBC,GAAQ,WAC7B,OAAApG,EAAA,CACEqG,gBAAiB,KACjBjC,QAASrE,EAAMN,eAAeyC,EAAWE,SAAW,EACpDX,SAAU1B,EAAMN,eAAeyC,EAAWT,WAAaA,EACvDR,MAAOA,EACPqF,UAAW,SAAAA,EAACrF,GAAK,MAAA,KAAUA,EAAK,MAAA,GAC7BR,EAAM8F,WAEZ,GAAE,CAACrE,EAAWE,OAAQF,EAAWT,SAAUA,EAAUhB,EAAM8F,WAAYxG,EAAMN,eAAgBwB,IAE9F,IAAMuF,EAAW9D,EAAMC,gBAAe,SAAC8D,EAAchF,GAAqB,IAAAiF,EAAAC,OACnElE,GAAciE,EAAA,CAAA,EAAAA,EAAIxE,EAAWT,UAAWA,EAAQiF,EAAGxE,EAAWE,QAASqE,EAAIC,KAChFC,EAAAlG,EAAM8F,mBAANI,EAAkBH,UAAQ,UAAA,EAA1BG,EAAkBH,SAAWC,EAAMhF,EACrC,IAEA,IAAMmF,EAAmBZ,EACvB,yBACA,CACE,gCAAiCvF,EAAMoG,UAEzCpG,EAAMsF,WAGR,IAAMe,UACGrG,EAAMqG,WAAa,WAAarG,EAAMqG,SAAS9E,EAAoBoC,SAAW3D,EAAMqG,SAE7F,OACEC,EAACxH,EAAoB,CACnByH,MAAO,CACL5B,gBAAAA,EACA7D,SAAUd,EAAMc,SAChB2B,UAAWT,EACXwE,UAAWnG,EACXoG,WAAYjG,EACZG,QAAAA,EACAc,WAAAA,EACAT,SAAAA,EACAE,YAAAA,EACAqD,cAAevE,EAAMuE,eAAiB,CAAE,EACxCU,sBAAAA,EACA5D,iBAAAA,EACA8D,aAAAA,EACApD,KAAAA,EACA0D,gBAAiBzF,EAAMyF,iBAAmB,MAC1CiB,SAAU1G,EAAM0G,UAAY,IAC5BL,SAEDrG,EAAMyF,gBACLkB,EAAA,MAAA,CAAKrB,UAAWa,EAAkBS,MAAO5G,EAAM4G,MAAMP,UACnDC,EAAA,MAAA,CAAKhB,UAAWA,EAAUe,SAAEA,KAC3B7F,EAAQ,GACP8F,EAAA,MAAA,CAAKhB,UAAU,4BAA2Be,SACxCC,EAACO,EAAiBtH,EAAA,CAACuH,KAAK,SAAYpB,EAAc,CAAEK,SAAUA,UAKpEO,EAAA,MAAA,CAAKhB,UAAWA,EAAWsB,MAAO5G,EAAM4G,MAAMP,SAC3CA,MAKX,ICnOO,IAAMU,EAAkB,SAAlBA,EAAmB/G,GAC9B,IACEgH,EAOEhH,EAPFgH,iBACAC,EAMEjH,EANFiH,iBACAC,EAKElH,EALFkH,cACAC,EAIEnH,EAJFmH,cACAC,EAGEpH,EAHFoH,iCACAC,EAEErH,EAFFqH,mBACAC,EACEtH,EADFsH,uBAEF,IAAAC,EAUI1I,IATFiC,EAAQyG,EAARzG,SACA4F,EAAQa,EAARb,SACAjF,EAAU8F,EAAV9F,WACAgB,EAAS8E,EAAT9E,UACAzB,EAAQuG,EAARvG,SACAK,EAAgBkG,EAAhBlG,iBACAkD,EAAagD,EAAbhD,cACAxC,EAAIwF,EAAJxF,KACAoD,EAAYoC,EAAZpC,aAEF,IAAMkB,SAAkBrG,EAAMqG,WAAa,WAAarG,EAAMqG,SAAStE,GAAQ/B,EAAMqG,SACrF,IAAMmB,EAAY7B,GAAQ,WACxB,GAAI8B,EAAWpB,GAAW,CACxB,OAAOqB,EAASC,QAAStB,EAA0BrG,MAAMqG,SAC3D,KAAO,CACL,OAAOqB,EAASC,QAAQtB,EAC1B,CACF,GAAG,CAACA,IAEJ,IAAAlG,EAAgCC,EAAS,OAAlCwH,EAAQzH,EAAA,GAAE0H,EAAW1H,EAAA,GAE5B,IAAAU,EAAyBlB,EAAemB,GAAUC,WAA3CzB,EAAKuB,EAAA,GAAE1B,EAAO0B,EAAA,GAErB,IAAMiH,EAAU7F,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAAA0F,EACnC,OAAA5F,QAAAkB,QAAMlE,EAAQK,wBAAd8D,MAAoC,SAAA0E,GA1GxC,IA2GIjG,EAAKkC,cACL,GAAIoB,EAAY+B,IAAqCA,EAAkC,CACrF,GAAI/F,EAAkB,CACpBoB,EAASlD,GAAAwI,EAAA,CAAA,EAAAA,EACNtG,EAAWE,QAAS,EAACoG,EACrBtG,EAAWT,UAAWA,EAAQ+G,GAC5BxD,GAEP,KAAO,CACL9B,EAAU8B,EACZ,CACF,CAAC,OAAAnC,GAtHI,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EA0GK,OAetC,IAAM4F,EAAkBtC,GAAQ,WAC9B,IAAMuC,EAAmB3I,EAAA,CACvB4I,UAAW,GACRnB,GAAAA,MAAAA,EAAkBoB,QACjB9B,EAAC+B,EAAa9I,EAAA,CAAS+I,KAAK,UAAUC,SAAS,UAAavB,EAAgB,CAAAX,UACzEW,eAAAA,EAAkBwB,OAAQ,OADV,KAGjB,OACHvB,GAAgB,MAAhBA,EAAkBmB,QACjB9B,EAAC+B,EAAa9I,EAAA,CAASkJ,QAASX,GAAab,EAAgB,CAAAZ,UAC1DY,eAAAA,EAAkBuB,OAAQ,OADV,KAGjB,MAENE,SAAU,IACPxB,GAAAA,UAAAA,EAAAA,EAAgBnF,IAGrB,GAAI2E,EAASiC,OAAS,EAAG,CACvB,IAAMC,EACJtC,EAAC+B,EAAa,CACZC,KAAK,OAEL1B,MAAO,CAAEiC,QAAS,KAClBJ,QAAS,SAAAA,IACPZ,GAAaD,EACb,EAAAvB,SAEDuB,EACCjB,EAAA,OAAA,CAAAN,SAAM,CAAA,KAEJC,EAAAwC,EAAA,CAAYlC,MAAO,CAAEmC,WAAY,EAAGC,SAAU,SAGhDrC,EAAA,OAAA,CAAAN,SAAM,CAAA,KAEJC,EAAA2C,EAAA,CAAcrC,MAAO,CAAEmC,WAAY,EAAGC,SAAU,UAdhD,gBAmBR,IAAQb,EAAwBD,EAAxBC,UAAWO,EAAaR,EAAbQ,SACnB,GAAIP,EAAUQ,OAAS,GAAKD,EAASC,SAAW,EAAG,CACjDR,EAAUe,KAAKN,QACV,IAAIF,GAAQ,UAAA,EAARA,EAAUC,QAAS,EAAG,CAC/BD,EAASQ,KAAKN,EAChB,CACF,CAEA,OAAOpB,EACJ2B,KAAI,SAACC,EAAMC,GACV,IAAKzB,GAAYlB,EAAS4C,MAAK,SAACC,GAAO,MAAK,KAAKA,IAAcH,EAAKxJ,OAAM,OAAO,KACjF,GAAIwJ,EAAKpJ,MAAM,UAAW,OAAO,KACjC,GAAIoJ,EAAKd,KAAK,iBAAmB,UAAW,OAAOc,EACnD,OAAO9C,EAACkD,EAASC,IAAG,CAAApD,SAAc+C,GAARC,EAC3B,IACAK,OAAOC,SACPC,OAAOtD,EAACkD,EAASK,WAAUtK,KAAe2I,GAAT,KACtC,GAAG,CAACV,EAAWN,EAAeR,EAAU3E,EAAM+F,EAASF,EAAUZ,EAAkBC,IAEnF,OACEX,EAACwD,EAAY,CACXxE,UAAWC,EAAW,oBAAqB+B,GAC3CV,MAAOS,EAAmBhB,SAE1BC,EAACzE,EAAI,CACHE,KAAMA,EACNgI,aAAa,MACbC,SAAU7E,EACVZ,cAAahF,EACRgF,CAAAA,EAAAA,EACAjF,EAAMN,gBAEXsG,UAAW6B,EAAcd,SAExBrG,EAAMiK,OACL5D,EAEAC,EAACkD,EAASU,IAAG,CAACC,OAAQ,CAAC,GAAI,GAAIC,SAAUpK,EAAMqK,aAAahE,SACzD4B,OAMb,ECtMO,IAAMqC,EAAe,SAAfA,IACX,IAAMC,EAAM1L,IACZ,IAAM2L,EAAOhJ,EAAO+I,EAAI5F,mBACxB,OAAO6F,EAAK7G,OACd,EAOO,IAAM8G,EAAiB,SAAjBA,IACX,IAAAlD,EAA4B1I,IAApB8F,EAAe4C,EAAf5C,gBACR,IAAM1E,EAAMuB,EAAwBmD,KACpC,OAAO1E,CACT,iECgCO,IAAMyK,EAAiB,SAAjBA,EAA0C1K,GACrD,IAAQqG,EAAgDrG,EAAhDqG,SAAUsE,EAAsC3K,EAAtC2K,OAAQ7E,EAA8B9F,EAA9B8F,WAAe8E,EAAUC,EAAK7K,EAAK8K,GAE7D,IAAAvD,EAYI1I,IAXFiC,EAAQyG,EAARzG,SACAW,EAAU8F,EAAV9F,WACAgB,EAAS8E,EAAT9E,UACA+D,EAASe,EAATf,UACAtF,EAAWqG,EAAXrG,YACAF,EAAQuG,EAARvG,SACAyF,EAAUc,EAAVd,WACA9F,EAAO4G,EAAP5G,QACA4D,EAAagD,EAAbhD,cACAkB,EAAe8B,EAAf9B,gBACAR,EAAqBsC,EAArBtC,sBAEF,IAAApE,EAAyBlB,EAAemB,GAAUC,WAA3CzB,EAAKuB,EAAA,GAAE1B,EAAO0B,EAAA,GAErB,IAAMkK,EAAsBpF,GAAQ,WAClC,GAAIF,GAAmBK,IAAe,MAAO,OAAO,MACpD,OAAAvG,EAAA,CACEqG,gBAAiB,KACjBjC,QAASrE,EAAMN,eAAeyC,EAAWE,SAAW,EACpDX,SAAU1B,EAAMN,eAAeyC,EAAWT,WAAaA,EACvDR,MAAOiG,EACPZ,UAAW,SAAAA,EAACrF,GAAK,MAAA,KAAUA,EAAK,MAAA,GAC7BR,EAAM8F,WAAU,CACnBkF,qBAAsBC,GAEzB,GAAE,CACDxJ,EAAWE,OACXF,EAAWT,SACXA,EACA8E,EACAL,EACAzF,EAAM8F,WACNxG,EAAMN,eACNyH,IAGF,IAAMyE,EAA6C,SAA7CA,EAA8CpF,EAAYqF,EAASC,EAAQC,GAC/E,GAAIA,EAAMC,SAAW,YAAcP,EAAqB,CAAA,IAAAQ,EACtD9I,GAAS8I,EAAA,CAAA,EAAAA,EAAI9J,EAAWT,UAAW8E,EAAW9E,SAAQuK,EAAG9J,EAAWE,QAASmE,EAAWnC,QAAO4H,GACjG,KAAO,CACLvL,EAAM+F,UAAN/F,UAAAA,EAAAA,EAAM+F,SAAWD,EAAYqF,EAASC,EAAQC,EAChD,GAGF,IAAMhL,EAAasF,GAAQ,WACzB,GAAIa,EAAUmC,SAAW,EAAG,CAC1B,MAAO,EACT,CACA,UAAWgC,IAAW,UAAYa,EAAkBhF,EAAU,GAAGmE,IAAU,CACzE,OAAOnE,EAAU2C,KAAI,SAACC,GACpBA,EAAKuB,GAAUc,IACf,OAAOrC,CACT,GACF,CACA,OAAO5C,CACT,GAAG,CAACA,EAAWmE,IAEfe,EAASC,iBAAgB,WACvB,IAAMC,EAAgBnG,GAAmBsF,IAAwB,MACjE9F,EAAsB2G,GACtB,GAAI1K,IAAgB,QAAU5B,EAAML,OAAQ,CAC1C,GAAI2M,EAAe,CAAA,IAAA7D,OACZtF,EAASlD,GAAAwI,EAAA,CAAA,EAAAA,EACXtG,EAAWE,QAAS,EAACoG,EACrBtG,EAAWT,UAAWA,EAAQ+G,GAC5BxD,EACAjF,EAAMN,gBAEb,KAAO,MACAyD,EAAU8B,EACjB,CACF,KAAO,MACApF,EAAQC,sBAAsBmF,EACrC,MACKpF,EAAQM,kBACd,GAAE,IAEH,IAAMoM,EAAUlG,GAAQ,WACtB,OAAO3F,EAAM6L,QAAQ1C,KAAI,SAACC,GACxB,IAAQ0C,EAAkC1C,EAAlC0C,QAASC,EAAyB3C,EAAzB2C,MAAUnB,EAAUC,EAAKzB,EAAI4C,GAC9C,UAAWD,IAAU,YAAcD,EAAS,CAC1C,OAAAvM,KACKqL,EAAU,CACbmB,MAAOzF,EAAC2F,EAAiB,CAACF,MAAOA,EAAOD,QAASA,KAErD,CACA,OAAO1C,CACT,GACF,GAAG,CAACpJ,EAAM6L,UAEV,OACElF,EAACmD,EAAY,CACXxE,UAAWC,EAAW,mBAAoBvF,EAAMkM,uBAChDtF,MAAO5G,EAAMmM,kBAAkB9F,SAAA,CAE9BA,EACA+F,IACC9F,EAAC+F,EAAK9M,EAAA,CACJuH,KAAK,QACLwF,OAAQ,CAAEC,EAAG,eACbC,SAAQ,MACJ5B,EAAU,CACdiB,QAASA,EACT/F,WAAYiF,EACZJ,OAAQA,EACR5E,SAAUmF,EACVvK,QAASA,EACTN,WAAYA,KAGdiG,EAACmG,EAAc,CAAApG,SACbC,EAAC+F,EAAK9M,EAAA,CACJuH,KAAK,QACLwF,OAAQ,CAAEC,EAAG,eACbC,SAAQ,MACJ5B,EAAU,CACdiB,QAASA,EACT/F,WAAYiF,EACZJ,OAAQA,EACR5E,SAAUmF,EACVvK,QAASA,EACTN,WAAYA,SAMxB,ECrKO,IAAMP,EAAY4M,EAASC,4BAA4BC,EAAgB,CA+B5EC,OAAQ9F,EASRsF,MAAO3B,EAKPD,eAAgBA,EAGhBH,aAAcA"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableCtxProvider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n leftList: [],\n ...filterOperate?.(form),\n };\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n const { rightList, leftList } = formOperateColProps;\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(<FormGrid.OperateCol key={999} {...formOperateColProps} />);\n }, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, title, ...otherProps } = item;\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip title={title} tooltip={tooltip} />,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getEasyTableRef","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","value","tableList","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","_useEasyTableCtx","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","leftList","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","filter","Boolean","concat","OperateCol","SimpleLayout","autoComplete","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","ctx","resp","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","title","_excluded2","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.editable-field-full>.ant-space-item:first-child{flex:1}
|
|
1
|
+
.editable-field{display:flex;padding-right:6}.editable-field-full>.ant-space-item:first-child{flex:1}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../icon-wrapper/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import{classNames as n}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/CloseOutlined";import e from"@ant-design/icons/es/icons/CheckOutlined";import{_ as i}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{isNumber as t}from"@dimjs/lang/cjs/is-number";import{isString as l}from"@dimjs/lang/cjs/is-string";import a from"@ant-design/icons/es/icons/EditOutlined";import{isUndefinedOrNull as c}from"@flatbiz/utils";import{Space as s}from"antd";import{useState as u,useContext as f,useRef as d,useEffect as m,isValidElement as v}from"react";import{E as p}from"../context-25d0b686.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{IconWrapper as C}from"../icon-wrapper/index.js";import{jsx as b,jsxs as g}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var j=function j(k){var y=k.value,I=k.onChange,w=k.viewRender,E=k.placeholderValue,P=E===void 0?"-":E,x=k.editRender,z=k.isEditFull,
|
|
6
|
+
import{classNames as n}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/CloseOutlined";import e from"@ant-design/icons/es/icons/CheckOutlined";import{_ as i}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{isNumber as t}from"@dimjs/lang/cjs/is-number";import{isString as l}from"@dimjs/lang/cjs/is-string";import a from"@ant-design/icons/es/icons/EditOutlined";import{isUndefinedOrNull as c}from"@flatbiz/utils";import{Space as s}from"antd";import{useState as u,useContext as f,useRef as d,useEffect as m,isValidElement as v}from"react";import{E as p}from"../context-25d0b686.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{IconWrapper as C}from"../icon-wrapper/index.js";import{jsx as b,jsxs as g}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var j=function j(k){var y=k.value,I=k.onChange,w=k.viewRender,E=k.placeholderValue,P=E===void 0?"-":E,x=k.editRender,z=k.isEditFull,O=k.onClickEditIconPre,R=k.onClickConfirmIconPre,N=k.iconConfig,T=k.onEditCallback,_=k.onConfirmCallback;var B=u(false),F=B[0],H=B[1];var V=f(p);var q=d(y);var A=function(){if(V.isCtx){return k.showEditableIcon===undefined?V.showEditableIcon:k.showEditableIcon}return k.showEditableIcon===undefined?true:k.showEditableIcon}();var D=function(){if(V.isCtx){return k.editable===undefined?V.editable:k.editable}return k.editable||false}();var G=h.useThemeToken();m((function(){H(D)}),[D]);var J=function n(){return new Promise((function(n,r){if(O){return Promise.resolve(O(y)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){q.current=y;H(true);T==null?void 0:T(y);return n()}return e.call(this)}))};var K=N!=null&&N.editIcon?N.editIcon({onClick:J}):b(C,{size:"small",icon:b(a,{}),onClick:J});if(!F){var L=(w?w(k.value):k.value)||P;if(l(L)||t(L)||c(L)||v(L)){if(!A){return L}return g(s,{size:8,children:[b("span",{children:L}),K]})}console.warn("对象作为React子对象无效",L)}var M=function n(){if(y!==q.current){I==null?void 0:I(q.current)}H(false)};var Q=function n(r){var e=r;if(typeof r==="object"&&r!==null&&!o(r)&&r.target){var i;var a=(i=r.target)==null?void 0:i.value;if(l(a)||t(a)||c(a)){var s;e=(s=r.target)==null?void 0:s.value}}I==null?void 0:I(e)};var S=function n(){return new Promise((function(n,r){if(R){return Promise.resolve(R(y,q.current)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){H(false);_==null?void 0:_(y,q.current);return n()}return e.call(this)}))};var U=typeof x==="function"?x({value:y,onChange:Q}):x;if(!A){return b(U.type,i({value:y,onChange:Q},U.props))}var W=N!=null&&N.confirmIcon?N.confirmIcon({onClick:S}):b(C,{size:"small",icon:b(e,{style:{color:G.colorPrimary}}),onClick:S});var X=N!=null&&N.cancelIcon?N.cancelIcon({onClick:M}):b(C,{size:"small",icon:b(r,{style:{color:G.colorPrimary}}),onClick:M});return g(s,{direction:"horizontal",size:12,style:k.style,className:n("editable-field",{"editable-field-full":z},k.className),children:[b(U.type,i({value:y,onChange:Q},U.props)),W,X]})};export{j as EditableField};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport { isValidElement, ReactElement, ReactNode, useContext, useEffect, useRef, useState } from 'react';\nimport { EditableFieldContext } from '../editable-field-provider/context';\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\n\nimport './style.less';\n\nexport interface EditableFieldProps {\n className?: string;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 是否可编辑 */\n editable?: boolean;\n /** 是否显示编辑、确认、取消操作icon,默认值:true */\n showEditableIcon?: boolean;\n /** 点击编辑按钮,操作前,返回reject不会开启编辑效果 */\n onClickEditIconPre?: (value?: TAny) => Promise<void>;\n onEditCallback?: (value?: TAny) => void;\n /** 点击确定按钮,操作前,返回reject不会执行确定功能 */\n onClickConfirmIconPre?: (value?: TAny, preValue?: TAny) => Promise<void>;\n onConfirmCallback?: (value?: TAny, preValue?: TAny) => void;\n /** 组件操作Icon配置 */\n iconConfig?: {\n editIcon?: (options: { onClick: () => void }) => ReactElement;\n confirmIcon?: (options: { onClick: () => void }) => ReactElement;\n cancelIcon?: (options: { onClick: () => void }) => ReactElement;\n };\n}\n\n/**\n * 可编辑字段组件\n * @param props\n * @returns\n * ```\n * 字段渲染有两种状态\n * 1. 只读:如果value类型为复杂格式,必须要通过【viewRender】来进行处理操作,转成简单数据类型\n * 2. 编辑:参数value的格式要求必须满足编辑组件入参value要求\n * 3. 可自定义编辑Icon、确定Icon、取消Icon\n * 4. 可拦截编辑操作、确定操作\n * ```\n */\nexport const EditableField = (props: EditableFieldProps) => {\n const {\n value,\n onChange,\n viewRender,\n placeholderValue = '-',\n editRender,\n isEditFull,\n onClickEditIconPre,\n onClickConfirmIconPre,\n iconConfig,\n onEditCallback,\n onConfirmCallback,\n } = props;\n const [isEdit, setIsEdit] = useState<boolean>(false);\n const ctx = useContext(EditableFieldContext);\n const originalValue = useRef<TAny>(value);\n\n const showEditableIcon = (function () {\n if (ctx.isCtx) {\n return props.showEditableIcon === undefined ? ctx.showEditableIcon : props.showEditableIcon;\n }\n return props.showEditableIcon === undefined ? true : props.showEditableIcon;\n })();\n\n const editable = (function () {\n if (ctx.isCtx) {\n return props.editable === undefined ? ctx.editable : props.editable;\n }\n return props.editable || false;\n })();\n\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n setIsEdit(editable);\n }, [editable]);\n\n const onClickEditIcon = async () => {\n if (onClickEditIconPre) {\n await onClickEditIconPre(value);\n }\n originalValue.current = value;\n setIsEdit(true);\n onEditCallback?.(value);\n };\n\n const editIcon = iconConfig?.editIcon ? (\n iconConfig.editIcon({ onClick: onClickEditIcon })\n ) : (\n <IconWrapper size=\"small\" icon={<EditOutlined />} onClick={onClickEditIcon} />\n );\n\n if (!isEdit) {\n const viewValue = (viewRender ? viewRender(props.value) : props.value) || placeholderValue;\n if (\n isString(viewValue) ||\n isNumber(viewValue) ||\n isUndefinedOrNull(viewValue) ||\n isValidElement(viewValue)\n ) {\n if (!showEditableIcon) {\n return viewValue;\n }\n return (\n <Space size={8}>\n <span>{viewValue}</span>\n {editIcon}\n </Space>\n );\n }\n console.warn('对象作为React子对象无效', viewValue);\n }\n\n const onCancel = () => {\n if (value !== originalValue.current) {\n onChange?.(originalValue.current);\n }\n setIsEdit(false);\n };\n\n const onEditChange = (value) => {\n let target = value;\n /** 为了处理 Input、TextArea等onChange取值 */\n if (typeof value === 'object' && value !== null && !isArray(value) && value.target) {\n const _value = value.target?.value;\n if (isString(_value) || isNumber(_value) || isUndefinedOrNull(_value)) {\n target = value.target?.value;\n }\n }\n onChange?.(target);\n };\n\n const onOk = async () => {\n if (onClickConfirmIconPre) {\n await onClickConfirmIconPre(value, originalValue.current);\n }\n setIsEdit(false);\n onConfirmCallback?.(value, originalValue.current);\n };\n\n const editRenderElement =\n typeof editRender === 'function' ? editRender({ value: value, onChange: onEditChange }) : editRender;\n\n if (!showEditableIcon) {\n return <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />;\n }\n\n const confirmIcon = iconConfig?.confirmIcon ? (\n iconConfig.confirmIcon({ onClick: onOk })\n ) : (\n <IconWrapper size=\"small\" icon={<CheckOutlined style={{ color: theme.colorPrimary }} />} onClick={onOk} />\n );\n\n const cancelIcon = iconConfig?.cancelIcon ? (\n iconConfig.cancelIcon({ onClick: onCancel })\n ) : (\n <IconWrapper\n size=\"small\"\n icon={<CloseOutlined style={{ color: theme.colorPrimary }} />}\n onClick={onCancel}\n />\n );\n\n return (\n <Space\n direction=\"horizontal\"\n size={12}\n style={{ display: 'flex', paddingRight: 6 }}\n className={classNames({ 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","_useState","useState","isEdit","setIsEdit","ctx","useContext","EditableFieldContext","originalValue","useRef","showEditableIcon","isCtx","undefined","editable","theme","fbaHooks","useThemeToken","useEffect","onClickEditIcon","Promise","$return","$error","resolve","then","$await_3","$If_1","call","this","$boundEx","bind","current","editIcon","onClick","_jsx","IconWrapper","size","icon","_EditOutlined","viewValue","_isString","_isNumber","isUndefinedOrNull","isValidElement","_jsxs","Space","children","console","warn","onCancel","onEditChange","target","_isArray","_value$target","_value","_value$target2","onOk","$await_4","$If_2","editRenderElement","type","_extends","confirmIcon","_CheckOutlined","style","color","colorPrimary","cancelIcon","_CloseOutlined","direction","display","paddingRight","className","_classNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport {\n CSSProperties,\n isValidElement,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { EditableFieldContext } from '../editable-field-provider/context';\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\n\nimport './style.less';\n\nexport interface EditableFieldProps {\n className?: string;\n style?: CSSProperties;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 是否可编辑 */\n editable?: boolean;\n /** 是否显示编辑、确认、取消操作icon,默认值:true */\n showEditableIcon?: boolean;\n /** 点击编辑按钮,操作前,返回reject不会开启编辑效果 */\n onClickEditIconPre?: (value?: TAny) => Promise<void>;\n onEditCallback?: (value?: TAny) => void;\n /** 点击确定按钮,操作前,返回reject不会执行确定功能 */\n onClickConfirmIconPre?: (value?: TAny, preValue?: TAny) => Promise<void>;\n onConfirmCallback?: (value?: TAny, preValue?: TAny) => void;\n /** 组件操作Icon配置 */\n iconConfig?: {\n editIcon?: (options: { onClick: () => void }) => ReactElement;\n confirmIcon?: (options: { onClick: () => void }) => ReactElement;\n cancelIcon?: (options: { onClick: () => void }) => ReactElement;\n };\n}\n\n/**\n * 可编辑字段组件\n * @param props\n * @returns\n * ```\n * 字段渲染有两种状态\n * 1. 只读:如果value类型为复杂格式,必须要通过【viewRender】来进行处理操作,转成简单数据类型\n * 2. 编辑:参数value的格式要求必须满足编辑组件入参value要求\n * 3. 可自定义编辑Icon、确定Icon、取消Icon\n * 4. 可拦截编辑操作、确定操作\n * ```\n */\nexport const EditableField = (props: EditableFieldProps) => {\n const {\n value,\n onChange,\n viewRender,\n placeholderValue = '-',\n editRender,\n isEditFull,\n onClickEditIconPre,\n onClickConfirmIconPre,\n iconConfig,\n onEditCallback,\n onConfirmCallback,\n } = props;\n const [isEdit, setIsEdit] = useState<boolean>(false);\n const ctx = useContext(EditableFieldContext);\n const originalValue = useRef<TAny>(value);\n\n const showEditableIcon = (function () {\n if (ctx.isCtx) {\n return props.showEditableIcon === undefined ? ctx.showEditableIcon : props.showEditableIcon;\n }\n return props.showEditableIcon === undefined ? true : props.showEditableIcon;\n })();\n\n const editable = (function () {\n if (ctx.isCtx) {\n return props.editable === undefined ? ctx.editable : props.editable;\n }\n return props.editable || false;\n })();\n\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n setIsEdit(editable);\n }, [editable]);\n\n const onClickEditIcon = async () => {\n if (onClickEditIconPre) {\n await onClickEditIconPre(value);\n }\n originalValue.current = value;\n setIsEdit(true);\n onEditCallback?.(value);\n };\n\n const editIcon = iconConfig?.editIcon ? (\n iconConfig.editIcon({ onClick: onClickEditIcon })\n ) : (\n <IconWrapper size=\"small\" icon={<EditOutlined />} onClick={onClickEditIcon} />\n );\n\n if (!isEdit) {\n const viewValue = (viewRender ? viewRender(props.value) : props.value) || placeholderValue;\n if (\n isString(viewValue) ||\n isNumber(viewValue) ||\n isUndefinedOrNull(viewValue) ||\n isValidElement(viewValue)\n ) {\n if (!showEditableIcon) {\n return viewValue;\n }\n return (\n <Space size={8}>\n <span>{viewValue}</span>\n {editIcon}\n </Space>\n );\n }\n console.warn('对象作为React子对象无效', viewValue);\n }\n\n const onCancel = () => {\n if (value !== originalValue.current) {\n onChange?.(originalValue.current);\n }\n setIsEdit(false);\n };\n\n const onEditChange = (value) => {\n let target = value;\n /** 为了处理 Input、TextArea等onChange取值 */\n if (typeof value === 'object' && value !== null && !isArray(value) && value.target) {\n const _value = value.target?.value;\n if (isString(_value) || isNumber(_value) || isUndefinedOrNull(_value)) {\n target = value.target?.value;\n }\n }\n onChange?.(target);\n };\n\n const onOk = async () => {\n if (onClickConfirmIconPre) {\n await onClickConfirmIconPre(value, originalValue.current);\n }\n setIsEdit(false);\n onConfirmCallback?.(value, originalValue.current);\n };\n\n const editRenderElement =\n typeof editRender === 'function' ? editRender({ value: value, onChange: onEditChange }) : editRender;\n\n if (!showEditableIcon) {\n return <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />;\n }\n\n const confirmIcon = iconConfig?.confirmIcon ? (\n iconConfig.confirmIcon({ onClick: onOk })\n ) : (\n <IconWrapper size=\"small\" icon={<CheckOutlined style={{ color: theme.colorPrimary }} />} onClick={onOk} />\n );\n\n const cancelIcon = iconConfig?.cancelIcon ? (\n iconConfig.cancelIcon({ onClick: onCancel })\n ) : (\n <IconWrapper\n size=\"small\"\n icon={<CloseOutlined style={{ color: theme.colorPrimary }} />}\n onClick={onCancel}\n />\n );\n\n return (\n <Space\n direction=\"horizontal\"\n size={12}\n style={props.style}\n className={classNames('editable-field', { 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","_useState","useState","isEdit","setIsEdit","ctx","useContext","EditableFieldContext","originalValue","useRef","showEditableIcon","isCtx","undefined","editable","theme","fbaHooks","useThemeToken","useEffect","onClickEditIcon","Promise","$return","$error","resolve","then","$await_3","$If_1","call","this","$boundEx","bind","current","editIcon","onClick","_jsx","IconWrapper","size","icon","_EditOutlined","viewValue","_isString","_isNumber","isUndefinedOrNull","isValidElement","_jsxs","Space","children","console","warn","onCancel","onEditChange","target","_isArray","_value$target","_value","_value$target2","onOk","$await_4","$If_2","editRenderElement","type","_extends","confirmIcon","_CheckOutlined","style","color","colorPrimary","cancelIcon","_CloseOutlined","direction","className","_classNames"],"mappings":"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"}
|