@flatbiz/antd 4.5.60 → 4.5.61

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.
@@ -7,5 +7,5 @@ import './../fba-utils/index.css';
7
7
  import './../flex-layout/index.css';
8
8
  import './index.css';
9
9
  /*! @flatjs/forge MIT @flatbiz/antd */
10
- import{isString as e}from"@dimjs/lang/cjs/is-string";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{_ as o,a as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isPromise as i}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{dom as l}from"@flatbiz/utils";import{useSize as a}from"ahooks";import{Form as d,Modal as s}from"antd";import{useState as u,useMemo as m}from"react";import{createRoot as c}from"react-dom/client";import{ButtonWrapper as f}from"../button-wrapper/index.js";import{C as p}from"../index-853b36e6.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{FlexLayout as v}from"../flex-layout/index.js";import{createCtx as g}from"@wove/react/cjs/create-ctx";import{jsx as j,jsxs as y}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";var w=g(),k=w[0],x=w[1];var C=["title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var b=function e(c){var g,w;var k=c.title,b=c.titleExtra,_=c.divElement,P=c.elementId,E=c.onOk,H=c.onCancel,B=c.okButtonProps,I=c.cancelButtonProps,z=c.content,F=c.configProviderProps,O=c.className,R=c.okHidden,N=c.cancelHidden,T=c.footer,D=c.cancelText,M=c.okText,S=c.size,Y=c.bodyHeight,q=r(c,C);var A=u(true),L=A[0],U=A[1];var G=d.useForm(),J=G[0];var K=a(document.querySelector("html"));var Q=h.useResponsivePoint()||"";var V=u({}),W=V[0],X=V[1];var Z=n.useCallbackRef(function(){try{delete window[P]}catch(e){}U(false)});h.useEffectCustom(function(){window[P]=Z},[Z]);var $=n.useCallbackRef(function(e){if(H){var t=H(J,e);if(t&&i(t)){return t.then(Z)}}return Z()});var ee=n.useCallbackRef(function(e){if(E){var t=E(J,e);if(t&&i(t)){return t.then(Z)}}return Z()});var te=n.useCallbackRef(function(){l.removeBodyChild("#"+P);c.afterClose==null||c.afterClose()});var oe=h.useMemoCustom(function(){if(T){return typeof T==="function"?T(J,W):T}if(N&&R||T===null){return null}return[j(f,o({},I,{onClick:$,hidden:N,children:D||"取消"}),"0"),j(f,o({type:"primary"},B,{onClick:ee,hidden:R,children:M||"提交"}),"1")].filter(Boolean)},[W]);var re=m(function(){if(!(K!=null&&K.height)||!Q)return undefined;var e=["xs","sm"].includes(Q);if(e){return{width:"90%"}}if(S=="large"){return{height:(K==null?void 0:K.height)*.7,width:e?"90%":K.width*.6}}if(S=="small"){var t=K.width*.3;return{height:(K==null?void 0:K.height)*.4,width:e?"90%":t<470?470:t}}if(S=="middle"){return{height:(K==null?void 0:K.height)*.4,width:e?"90%":K.width*.5}}return undefined},[K==null?void 0:K.height,K==null?void 0:K.width,Q,S]);var ie=t("v-dialog-modal",{"v-dialog-modal-title-extra":!!b},O);var ne=function e(t){X(t)};var le=((g=q.styles)==null||(g=g.body)==null?void 0:g.height)||Y;var ae=m(function(){return typeof z==="function"?z(J,{onClose:Z}):z},[]);return j(x,{value:{rerenderFooter:ne},children:j(p,o({},F,{children:j(s,o({title:b?y(v,{direction:"horizontal",fullIndex:0,children:[j("span",{children:k}),b]}):k,maskClosable:true,centered:true,onCancel:Z,destroyOnClose:true,width:re==null?void 0:re.width},q,{footer:oe,styles:o({},q.styles,{body:o({height:le||(re==null?void 0:re.height),maxHeight:"calc(100vh - 200px)"},(w=q.styles)==null?void 0:w.body)}),className:ie,open:L,afterClose:te,getContainer:_,children:ae}))}))})};var _={open:function e(t){var r=l.bodyAppendDivElement(),i=r.divElement,n=r.elementId;window["__dialog_modal_elementId"]=n;var a=c(i);a.render(j(b,o({},t,{divElement:i,elementId:n})));return{close:function e(){var t,o;(t=(o=window)[n])==null||t.call(o)}}},close:function t(){try{var o,r;var i=window["__dialog_modal_elementId"];if(e(i))(o=(r=window)[i])==null||o.call(r)}catch(e){}},useDialogModal:function e(){var t=k();return{rerenderFooter:function e(o){t.rerenderFooter(o)}}}};export{_ as dialogModal};
10
+ import{isString as e}from"@dimjs/lang/cjs/is-string";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{_ as o,a as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isPromise as i}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{dom as l}from"@flatbiz/utils";import{useSize as a}from"ahooks";import{Form as d,Modal as s}from"antd";import{useState as u,useMemo as m}from"react";import{createRoot as c}from"react-dom/client";import{ButtonWrapper as f}from"../button-wrapper/index.js";import{C as p}from"../index-853b36e6.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{FlexLayout as v}from"../flex-layout/index.js";import{createCtx as g}from"@wove/react/cjs/create-ctx";import{jsx as j,jsxs as y}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";var w=g(),k=w[0],x=w[1];var C=["title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var b=function e(c){var g,w;var k=c.title,b=c.titleExtra,_=c.divElement,P=c.elementId,E=c.onOk,H=c.onCancel,B=c.okButtonProps,I=c.cancelButtonProps,z=c.content,F=c.configProviderProps,O=c.className,R=c.okHidden,N=c.cancelHidden,T=c.footer,D=c.cancelText,M=c.okText,S=c.size,Y=c.bodyHeight,q=r(c,C);var A=u(true),L=A[0],U=A[1];var G=d.useForm(),J=G[0];var K=a(document.querySelector("html"));var Q=h.useResponsivePoint()||"";var V=u({}),W=V[0],X=V[1];var Z=n.useCallbackRef(function(){try{delete window[P]}catch(e){}U(false)});h.useEffectCustom(function(){window[P]=Z},[Z]);var $=n.useCallbackRef(function(e){if(H){var t=H(J,e);if(t&&i(t)){return t.then(Z)}}return Z()});var ee=n.useCallbackRef(function(e){if(E){var t=E(J,e);if(t&&i(t)){return t.then(Z)}}return Z()});var te=n.useCallbackRef(function(){l.removeBodyChild("#"+P);c.afterClose==null||c.afterClose()});var oe=h.useMemoCustom(function(){if(T){return typeof T==="function"?T(J,W):T}if(N&&R||T===null){return null}return[j(f,o({},I,{onClick:$,hidden:N,children:D||"取消"}),"0"),j(f,o({type:"primary"},B,{onClick:ee,hidden:R,children:M||"提交"}),"1")].filter(Boolean)},[W]);var re=m(function(){if(!(K!=null&&K.height)||!Q)return undefined;var e=["xs","sm"].includes(Q);if(e){return{width:"90%"}}if(S=="large"){return{height:(K==null?void 0:K.height)*.7,width:e?"90%":K.width*.6}}if(S=="small"){var t=K.width*.3;return{height:(K==null?void 0:K.height)*.4,width:e?"90%":t<470?470:t}}if(S=="middle"){return{height:(K==null?void 0:K.height)*.5,width:e?"90%":K.width*.5}}return undefined},[K==null?void 0:K.height,K==null?void 0:K.width,Q,S]);var ie=t("v-dialog-modal",{"v-dialog-modal-title-extra":!!b},O);var ne=function e(t){X(t)};var le=((g=q.styles)==null||(g=g.body)==null?void 0:g.height)||Y;var ae=m(function(){return typeof z==="function"?z(J,{onClose:Z}):z},[]);return j(x,{value:{rerenderFooter:ne},children:j(p,o({},F,{children:j(s,o({title:b?y(v,{direction:"horizontal",fullIndex:0,children:[j("span",{children:k}),b]}):k,maskClosable:true,centered:true,onCancel:Z,destroyOnClose:true,width:re==null?void 0:re.width},q,{footer:oe,styles:o({},q.styles,{body:o({height:le||(re==null?void 0:re.height),maxHeight:"calc(100vh - 200px)"},(w=q.styles)==null?void 0:w.body)}),className:ie,open:L,afterClose:te,getContainer:_,children:ae}))}))})};var _={open:function e(t){var r=l.bodyAppendDivElement(),i=r.divElement,n=r.elementId;window["__dialog_modal_elementId"]=n;var a=c(i);a.render(j(b,o({},t,{divElement:i,elementId:n})));return{close:function e(){var t,o;(t=(o=window)[n])==null||t.call(o)}}},close:function t(){try{var o,r;var i=window["__dialog_modal_elementId"];if(e(i))(o=(r=window)[i])==null||o.call(r)}catch(e){}},useDialogModal:function e(){var t=k();return{rerenderFooter:function e(o){t.rerenderFooter(o)}}}};export{_ as dialogModal};
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-modal/context.ts","@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useDialogModalCtx, DialogModalCtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { DialogModalCtxProvider, useDialogModalCtx } from './context';\nimport './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:无\n * ```\n * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效\n * 2. 不传、传null值可取消内置尺寸\n * ```\n */\n size?: 'small' | 'middle' | 'large' | null;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n /**\n * content只在第一次弹起时,执行一次\n */\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * @deprecated 已失效,可通过size属性设置\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n titleExtra?: ReactElement;\n /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogModalProps) => {\n const {\n title,\n titleExtra,\n divElement,\n elementId,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n configProviderProps,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onAfterClose = hooks.useCallbackRef(() => {\n dom.removeBodyChild(`#${elementId}`);\n props.afterClose?.();\n });\n\n const footerNew = fbaHooks.useMemoCustom(() => {\n if (footer) {\n return typeof footer === 'function' ? footer(form, footerExtraData) : footer;\n }\n if ((cancelHidden && okHidden) || footer === null) {\n return null;\n }\n return [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || '取消'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ].filter(Boolean);\n }, [footerExtraData]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n\n if (isXsSm) {\n return { width: '90%' };\n }\n\n if (size == 'large') {\n return {\n height: htmlSize?.height * 0.7,\n width: isXsSm ? '90%' : htmlSize.width * 0.6,\n };\n }\n if (size == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : width < 470 ? 470 : width,\n };\n }\n\n if (size == 'middle') {\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : htmlSize.width * 0.5,\n };\n }\n return undefined;\n }, [htmlSize?.height, htmlSize?.width, screenType, size]);\n\n const classNameNew = classNames(\n 'v-dialog-modal',\n { 'v-dialog-modal-title-extra': !!titleExtra },\n className,\n );\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n // content 只会在第一次渲染\n const contentFt = useMemo(() => {\n return typeof content === 'function' ? content(form, { onClose }) : content;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <DialogModalCtxProvider value={{ rerenderFooter }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Modal\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n >\n {contentFt}\n </Modal>\n </ConfigProviderWrapper>\n </DialogModalCtxProvider>\n );\n};\n\n/**\n * 居中弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogModal.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogModal } = FbaApp.useDialogModal();\n * appDialogModal.open({})\n * 4. size属性可使用预设的弹窗尺寸(默认值middle),如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const dialogModal = {\n open: (props: DialogModalProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_modal_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_modal_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useDialogModal: () => {\n const ctx = useDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n};\n"],"names":["_createCtx","_createCtx2","useDialogModalCtx","DialogModalCtxProvider","ModalRender","props","_otherProps$styles","_otherProps$styles2","title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","_useState2","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","footerNew","useMemoCustom","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","filter","Boolean","customSize","useMemo","height","undefined","isXsSm","includes","width","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","styles","body","contentFt","value","ConfigProviderWrapper","Modal","_jsxs","FlexLayout","direction","fullIndex","maskClosable","centered","destroyOnClose","maxHeight","getContainer","dialogModal","_dom$bodyAppendDivEle","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString","useDialogModal","ctx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-modal/context.ts","@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useDialogModalCtx, DialogModalCtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { DialogModalCtxProvider, useDialogModalCtx } from './context';\nimport './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:无\n * ```\n * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效\n * 2. 不传、传null值可取消内置尺寸\n * ```\n */\n size?: 'small' | 'middle' | 'large' | null;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n /**\n * content只在第一次弹起时,执行一次\n */\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * @deprecated 已失效,可通过size属性设置\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n titleExtra?: ReactElement;\n /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogModalProps) => {\n const {\n title,\n titleExtra,\n divElement,\n elementId,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n configProviderProps,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onAfterClose = hooks.useCallbackRef(() => {\n dom.removeBodyChild(`#${elementId}`);\n props.afterClose?.();\n });\n\n const footerNew = fbaHooks.useMemoCustom(() => {\n if (footer) {\n return typeof footer === 'function' ? footer(form, footerExtraData) : footer;\n }\n if ((cancelHidden && okHidden) || footer === null) {\n return null;\n }\n return [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || '取消'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ].filter(Boolean);\n }, [footerExtraData]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n\n if (isXsSm) {\n return { width: '90%' };\n }\n\n if (size == 'large') {\n return {\n height: htmlSize?.height * 0.7,\n width: isXsSm ? '90%' : htmlSize.width * 0.6,\n };\n }\n if (size == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : width < 470 ? 470 : width,\n };\n }\n\n if (size == 'middle') {\n return {\n height: htmlSize?.height * 0.5,\n width: isXsSm ? '90%' : htmlSize.width * 0.5,\n };\n }\n return undefined;\n }, [htmlSize?.height, htmlSize?.width, screenType, size]);\n\n const classNameNew = classNames(\n 'v-dialog-modal',\n { 'v-dialog-modal-title-extra': !!titleExtra },\n className,\n );\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n // content 只会在第一次渲染\n const contentFt = useMemo(() => {\n return typeof content === 'function' ? content(form, { onClose }) : content;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <DialogModalCtxProvider value={{ rerenderFooter }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Modal\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n >\n {contentFt}\n </Modal>\n </ConfigProviderWrapper>\n </DialogModalCtxProvider>\n );\n};\n\n/**\n * 居中弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogModal.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogModal } = FbaApp.useDialogModal();\n * appDialogModal.open({})\n * 4. size属性可使用预设的弹窗尺寸(默认值middle),如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const dialogModal = {\n open: (props: DialogModalProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_modal_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_modal_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useDialogModal: () => {\n const ctx = useDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n};\n"],"names":["_createCtx","_createCtx2","useDialogModalCtx","DialogModalCtxProvider","ModalRender","props","_otherProps$styles","_otherProps$styles2","title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","_useState2","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","footerNew","useMemoCustom","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","filter","Boolean","customSize","useMemo","height","undefined","isXsSm","includes","width","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","styles","body","contentFt","value","ConfigProviderWrapper","Modal","_jsxs","FlexLayout","direction","fullIndex","maskClosable","centered","destroyOnClose","maxHeight","getContainer","dialogModal","_dom$bodyAppendDivEle","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString","useDialogModal","ctx"],"mappings":"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"}
@@ -15,5 +15,5 @@ import './../table-title-tooltip/index.css';
15
15
  import './../tips-wrapper/index.css';
16
16
  import './index.css';
17
17
  /*! @flatjs/forge MIT @flatbiz/antd */
18
- import{fbaUtils as e}from"../fba-utils/index.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{isObject as t}from"@dimjs/lang/cjs/is-object";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{sessionStorageCache as a,localStorageCache as o,noop as l,trim as u,getUuid as s,isUndefinedOrNull as c,isMacEnv as d}from"@flatbiz/utils";import{classNames as f}from"@dimjs/utils/cjs/class-names";import{isUndefined as m}from"@dimjs/lang/cjs/is-undefined";import{get as p}from"@dimjs/utils/cjs/get";import{hooks as v}from"@wove/react/cjs/hooks";import{isString as g}from"@dimjs/lang/cjs/is-string";import{Checkbox as h,Popover as y,Form as C,message as F,Drawer as b,Table as S,Space as x}from"antd";import{createContext as R,useState as w,Fragment as j,forwardRef as K,useMemo as z,useRef as _,useImperativeHandle as I,cloneElement as P,useContext as N,Children as T,useEffect as q}from"react";import{fbaHooks as L}from"../fba-hooks/index.js";import{PaginationWrapper as k}from"../pagination-wrapper/index.js";import{jsx as E,jsxs as V}from"react/jsx-runtime";import D from"@ant-design/icons/es/icons/DownOutlined";import O from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as A}from"react-is";import{BlockLayout as B}from"../block-layout/index.js";import{ButtonWrapper as M}from"../button-wrapper/index.js";import{EasyForm as W}from"../easy-form/index.js";import{FormGrid as Q}from"../form-grid/index.js";import{FlexLayout as U}from"../flex-layout/index.js";import{TableScrollbar as G}from"../table-scrollbar/index.js";import{IconWrapper as H}from"../icon-wrapper/index.js";import{SvgHttpView as Y}from"../svg-http-view/index.js";import{TableTitleTooltip as $}from"../table-title-tooltip/index.js";import{TipsWrapper as J}from"../tips-wrapper/index.js";import"@dimjs/model";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-853b36e6.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../box-grid/index.js";import"@dimjs/lang/cjs/is-number";import"ahooks";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var X={set:function e(n,t){var i=X.get(n);var o=r({},i,t);a.set("easy_tab_filter_"+n,o);return o},get:function e(n){var r=a.get("easy_tab_filter_"+n);return t(r)?r:{}},remove:function e(n){a.remove("easy_tab_filter_"+n)}};var Z={set:function e(n,t){a.set("easy_tab_firstQuery_"+n,{value:t})},get:function e(n){var t;var r=(t=a.get("easy_tab_firstQuery_"+n))==null?void 0:t.value;return r===false?false:true},remove:function e(n){a.remove("easy_tab_firstQuery_"+n)}};var ee={set:function e(n,t){o.set("easy_tab_columnFold_"+n,{value:t})},get:function e(t){var r;var i=(r=o.get("easy_tab_columnFold_"+t))==null?void 0:r.value;return n(i)?i:[]},remove:function e(n){o.remove("easy_tab_columnFold_"+n)}};var ne=R({onRequest:l,tableList:[],getEasyTableRef:function e(){}});var te=function e(n){var t=w(n.initSelectedRowKeys||[]),r=t[0],i=t[1];var a=function e(t){i(t);n.onChange(t);if(n.cacheKey){ee.set(n.cacheKey,t)}};var o=E(j,{children:E(h.Group,{defaultValue:r,onChange:a,value:r,style:{display:"flex",flexDirection:"column"},children:n.dataList.map(function(e){var n=e["_isFoldTitle"]||e.title;return E(h,{value:e.dataIndex,style:{padding:"0 0 5px 0"},children:n},e.dataIndex)})})});var l=function e(t){if(t.target.checked){a(n.dataList.map(function(e){return e.dataIndex}))}else{a([])}};return E(y,{content:o,title:E(h,{checked:r.length===n.dataList.length,onChange:l,children:"全选(字段列表)"}),placement:"bottomRight",overlayClassName:"fold-operate-popiver",children:n.children})};var re=function e(n,t){var r=n.getFieldsValue()||{};if(!(t!=null&&t.length)){return r}var i={};t.forEach(function(e){i[e]=r[e]});return i};var ie=function e(n,t){if(t===void 0){t={}}if(!n||typeof n!=="object"||Array.isArray(n)){return n}var r=t,i=r.removeEmptyValue,a=i===void 0?true:i;var o={};for(var l in n){if(!Object.prototype.hasOwnProperty.call(n,l)){continue}var s=n[l];if(typeof s==="string"){s=u(s,true)}if(l.includes("__#invalid_")){continue}if(a&&(s===""||s===null||s===undefined)){continue}if(s!==null&&typeof s==="object"&&!Array.isArray(s)){o[l]=ie(s,t)}else{o[l]=s}}return o};var ae=K(function(e,t){var i;var a=L.useResponsivePoint()||"";var o=w(),l=o[0],u=o[1];var c=w(0),d=c[0],h=c[1];var y=w(false),b=y[0],S=y[1];var x=e.columnFoldConfig;var R=e.asyncColumnRequest;var j=e.removeRequestParamsEmptyValue===undefined?true:e.removeRequestParamsEmptyValue;var K=w(false),N=K[0],T=K[1];var q=z(function(){if(e.cacheKey){try{var n=window.frameElement;var t=(n==null?void 0:n.id)||"";return e.cacheKey+"_"+t}catch(n){return e.cacheKey}}if(e.cacheSwitch===true){return location.pathname}if(typeof e.cacheSwitch==="string"){return e.cacheSwitch}return Date.now()+"-"+s()},[e.cacheSwitch,e.cacheKey]);var D=X.get(q);var O=w(function(){if(q){var e=ee.get(q);var t=n(e)?e.filter(function(e){return g(e)}):[];return t.length>0?t:(x==null?void 0:x.initSelectedKeys)||[]}else{return(x==null?void 0:x.initSelectedKeys)||[]}}),A=O[0],B=O[1];var M=e.pageSize||((i=e.initialPaginationParams)==null?void 0:i.pageSize)||10;var W=e.initRequest===undefined?true:e.initRequest;var Q=_(false);var U=_();var G=_([]);var H=w(),Y=H[0],$=H[1];var J=_([]);var ae=r({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var oe=C.useFormInstance();var le=C.useForm(e.form||oe),ue=le[0];var se=v.useCallbackRef(function(t){return new Promise(function(r,i){var a,o,l,s,c,d,f,m,v,g,y;var C=function(){try{return r()}catch(e){return i(e)}};var b=function(n){try{S(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(n)}else{void F.error(n.message)}return C()}catch(e){return i(e)}};try{if(e.breforeRequest){var x=function(){try{return w.call(this)}catch(e){return b(e)}}.bind(this);var R=function(e){try{return r()}catch(e){return b(e)}};try{return Promise.resolve(e.breforeRequest(ue)).then(function(e){try{return x()}catch(e){return R(e)}},R)}catch(K){R(K)}}function w(){Z.set(q,false);a=X.set(q,t);S(true);o=e.serviceConfig,l=o.requestParamsAdapter,s=o.onRequest,c=o.requestResultAdapter,d=o.dynamicColumsAdapter;f=ie(a,{removeEmptyValue:j});f=l?l(f,a):f;return Promise.resolve(s(f)).then(function(t){try{m=t||{};U.current=m;e.onDataSourceChange==null||e.onDataSourceChange(m);v=m;if(c){v=c(m)}if(d){g=d(m,G.current);$(g)}y=p(v,ae.list);u(n(y)?y:[]);h(p(v,ae.total));S(false);return C()}catch(e){return b(e)}},b)}return w.call(this)}catch(z){b(z)}})});L.useEffectCustom(function(){var n=_e();var t=Z.get(q);ue.setFieldsValue(r({},e.initialValues,D));if(W||!t){if(n){var i;void se(r((i={},i[ae.pageNo]=1,i[ae.pageSize]=M,i),e.initialValues,D))}else{void se(e.initialValues)}}else{X.set(q,e.initialValues||{})}},[]);var ce=v.useCallbackRef(function(e){X.remove(q);ue.resetFields();if(e){X.set(q,e);ue.setFieldsValue(e)}});var de=v.useCallbackRef(function(e){X.set(q,e);ue.setFieldsValue(e)});var fe=function e(n,t){if(_e()){var r;return r={},r[ae.pageNo]=n,r[ae.pageSize]=t||M,r}else{var i;return i={},i[ae.pageNo]=undefined,i[ae.pageSize]=undefined,i}};var me=v.useCallbackRef(function(n){var t=r({},fe(1,D[ae.pageSize]),e.initialValues,n);X.remove(q);ue.resetFields();if(n){ue.setFieldsValue(n)}void se(t)});var pe=v.useCallbackRef(function(){var n;var t=X.get(q);if(!((n=e.filterFormItemKeys)!=null&&n.length)){return t}var i=r({},fe(1,t[ae.pageSize]));e.filterFormItemKeys.forEach(function(e){i[e]=t[e]});return ie(i,{removeEmptyValue:j})});var ve=v.useCallbackRef(function(){T(true)});var ge=v.useCallbackRef(function(){T(false)});var he=v.useCallbackRef(function(){var n;var t=ue.getFieldsValue()||{};var i=r({},fe(1,D[ae.pageSize]));if((n=e.filterFormItemKeys)!=null&&n.length){e.filterFormItemKeys.forEach(function(e){i[e]=t[e]})}else{i=r({},t,i)}return ie(i,{removeEmptyValue:j})});var ye=function n(){return{onRequest:se,clearQueryCondition:ce,updateQueryCondition:de,getRequestParams:pe,getFilterRealTimeParams:he,onResetRequest:me,form:ue,dataSource:U.current,getDataSource:function e(){return U.current},onFilterDataSource:function e(n){u(n)},getTableDataList:function e(){return l||[]},onClearDataSource:function e(){h(0);u([])},onUpdateDataSource:function n(t){var r;u(t);U.current=(r={},r[ae.list]=t,r);e.onDataSourceChange==null||e.onDataSourceChange(U.current)},columnFoldTriggerRender:function n(t,r){var i;if(((i=e.columnFoldConfig)==null?void 0:i.triggerType)==="drawer"){return P(t,{onClick:ve})}var a=r.filter(function(e){return!e.hidden&&e.isFold&&e.dataIndex});return E(te,{dataList:a,onChange:Ke,cacheKey:q,initSelectedRowKeys:A,children:t})},onChangeTableColumns:function e(n){$(n)},getTableColumns:function e(){return J.current},loading:b,setEnabledInitRequest:function e(){Z.set(q,false)}}};I(t,function(){return ye()});var Ce=function e(n){Q.current=n};var Fe=function e(n){G.current=n};var be=function e(n){J.current=n};var Se=function n(){if(b){console.log("loading...");return}var t=re(ue,e.filterFormItemKeys);if(e.onFormFinish){e.onFormFinish(r({},t,fe(1,D[ae.pageSize])))}else{void se(r({},t,fe(1,D[ae.pageSize])))}};var xe=m(e.isFull)?true:e.isFull;var Re=a==="xs"?false:e.filterFixed;var we=f("fba-easy-table",{"fba-easy-table-full":xe,"fba-easy-table-filter-fixed":Re,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var je=L.useMemoCustom(function(){return r({showSizeChanger:true,current:D[ae.pageNo]||1,pageSize:D[ae.pageSize]||M,total:d,showTotal:function e(n){return"共 "+n+" 条记录"}},e.pagination)},[ae.pageNo,D,ae.pageSize,q,M,e.pagination,d]);var Ke=function e(n){B(n);x==null||x.onChange==null||x.onChange(n)};var ze=v.useCallbackRef(function(n,t){var r,i;var a=(r={},r[ae.pageSize]=t,r[ae.pageNo]=n,r);X.set(q,a);void se(a);(i=e.pagination)==null||i.onChange==null||i.onChange(n,t)});var _e=function n(){return e.paginationFixed||Q.current};v.useUpdateEffect(function(){if(e.paginationFixed){var n;void se((n={},n[ae.pageSize]=D[ae.pageSize]||M,n[ae.pageNo]=1,n))}else{var t;void se((t={},t[ae.pageSize]=undefined,t[ae.pageNo]=undefined,t))}},[e.paginationFixed]);var Ie=f("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var Pe=r({overflowY:e.filterFixed||e.paginationFixed?"hidden":"auto"},e.style);var Ne=typeof e.children==="function"?e.children(U.current):e.children;return E(ne.Provider,{value:{onSetBaseColumns:Fe,onSetColumns:be,getEasyTableRef:ye,cacheKey:q,onRequest:se,tableDataSource:l,tableTotal:d,loading:b,fieldNames:ae,pageSize:M,onSetPaginationStatus:Ce,getPaginationStatus:_e,onFormFinish:Se,form:ue,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[],columns:Y,initialValues:e.initialValues,filterFormItemKeys:e.filterFormItemKeys,dynamicColumnsConfig:{showFoldKeyList:A,onChangeShowFoldKeyList:Ke,columnFoldConfig:x,onOpenColumnFoldModal:ve,onCloseColumnFoldModal:ge,columnFoldOpen:N,asyncColumnRequest:R}},children:e.paginationFixed?V("div",{className:Ie,style:Pe,children:[E("div",{className:we,children:Ne}),d>0&&E("div",{className:"fba-easy-table-pagination",children:E(k,r({size:"small"},je,{onChange:ze}))})]}):E("div",{className:Ie,style:e.style,children:E("div",{className:we,children:Ne})})})});var oe=function e(n){var t;var i=L.useResponsivePoint()||"md";var a=N(ne);var o=C.useFormInstance();var l=n.queryButtonProps,u=n.resetButtonProps,s=n.filterOperate,c=n.formClassName,d=c===void 0?"":c,p=n.defaultResetButtonTriggerRequest,g=n.filterWrapperStyle,h=n.filterWrapperClassName,y=n.rightOperateAreaAppendType,F=n.easyFormProps;var b=a.cacheKey,S=a.foldKeys,x=a.fieldNames,R=a.onRequest,j=a.pageSize,K=a.getPaginationStatus,_=a.initialValues,I=a.form,P=a.onFormFinish;var q=typeof n.children==="function"?n.children(I):n.children;var k=y||"cover";var U=z(function(){if(A(q)){return T.toArray(q.props.children)}else{return T.toArray(q)}},[q]);var G=w(false),H=G[0],Y=G[1];var $=z(function(){var e;if((e=a.filterFormItemKeys)!=null&&e.length||o){return false}return true},[(t=a.filterFormItemKeys)==null?void 0:t.length,o]);var J=v.useCallbackRef(function(){return new Promise(function(e,n){var t;if(a.loading){console.log("loading...");return e()}X.remove(b);I.resetFields();I.setFieldsValue(_);if(m(p)||p){return Promise.resolve(I.validateFields(a.filterFormItemKeys)).then(function(e){try{if(K()){R(r((t={},t[x.pageNo]=1,t[x.pageSize]=j,t),_))}else{R(_)}return i.call(this)}catch(e){return n(e)}}.bind(this),n)}function i(){return e()}return i.call(this)})});var Z=z(function(){var e=[!(l!=null&&l.hidden)?E(M,r({type:"primary",htmlType:$?"submit":undefined,loadingPosition:"center",loading:a.loading,onClick:function e(){return new Promise(function(e,n){var t;if(o||(t=a.filterFormItemKeys)!=null&&t.length){return Promise.resolve(I.validateFields(a.filterFormItemKeys).then(function(){P==null||P()})).then(function(e){try{return r.call(this)}catch(e){return n(e)}}.bind(this),n)}function r(){return e()}return r.call(this)})}},l,{style:r({},l==null?void 0:l.style,{cursor:a.loading?"not-allowed":undefined}),children:(l==null?void 0:l.text)||"查询"}),"1"):null,!(u!=null&&u.hidden)?E(M,r({onClick:J},u,{style:r({},u==null?void 0:u.style,{cursor:a.loading?"not-allowed":undefined}),children:(u==null?void 0:u.text)||"重置"}),"2"):null].filter(Boolean);var n=s==null?void 0:s(I);var t=n==null?void 0:n.rightList;var i=(n==null?void 0:n.leftList)||[];var c=e;if(t){if(k==="afterAppend"){c=[].concat(e,t)}else if(k==="beforeAppend"){c=[].concat(t,e)}else{c=t}}if(S.length>0){var d=E(M,{type:"link",style:{padding:"0"},onClick:function e(){Y(!H)},children:H?V("span",{children:["收起",E(O,{style:{marginLeft:3,fontSize:12}})]}):V("span",{children:["展开",E(D,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(c.length>0||i.length===0){c.push(d)}else if((i==null?void 0:i.length)>0){i.push(d)}}return U.map(function(e,n){if(!H&&S.find(function(n){return".$"+n===e.key}))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return E(Q.Col,{children:e},n)}).filter(Boolean).concat(E(Q.OperateCol,r({},n,{leftList:i,rightList:c}),999))},[l,$,a.loading,a.filterFormItemKeys,u,J,s,I,S,U,o,P,k,H]);var ee=i==="xs"?"left":(F==null?void 0:F.labelAlign)||"right";return E(B,{className:f("easy-table-filter",h),style:g,children:E(W,r({form:I,autoComplete:"off",onFinish:$?P:undefined,className:d,style:n.formStyle,isPure:true,labelWidth:"80",formItemGap:"15"},F,{labelAlign:ee,children:n.isPure?q:E(Q.Row,{gutter:[15,0],gridSize:n.formGridSize,children:Z})}))})};var le=function e(){var n=N(ne);return n.getEasyTableRef()};var ue=function e(){var n=N(ne);return{current:n.getEasyTableRef()}};var se=function e(n){var t=w(n.initSelectedRowKeys||[]),r=t[0],i=t[1];var a={type:"checkbox",selectedRowKeys:r,onChange:function e(t){i(t);n.onChange(t);if(n.cacheKey){ee.set(n.cacheKey,t)}}};var o=[{title:"字段名称",dataIndex:"title",render:function e(n,t){return t["_isFoldTitle"]||n}},{title:"字段Key",dataIndex:"dataIndex"}];return E(j,{children:E(b,{title:"选择字段",open:n.open,onClose:n.onClose,width:"35%",styles:{body:{padding:15}},children:E(S,{bordered:true,size:"small",columns:o,rowSelection:a,rowKey:"dataIndex",pagination:false,scroll:{x:"max-content"},dataSource:n.dataList})})})};var ce=["tooltip","tipsWrapperProps","title"];var de=function e(n){return z(function(){var e=n.columns.map(function(e){var n=e.tooltip,t=e.tipsWrapperProps,a=e.title,o=i(e,ce);if(typeof a==="string"&&t){if(typeof t==="string"){return r({},o,{title:E(J,{tipType:"popover",popoverProps:{content:t},children:a})})}return r({},o,{title:E(J,r({},t,{children:a}))})}if(typeof a==="string"&&!!n){return r({},o,{title:E($,{tooltip:n,title:a})})}return e}).filter(Boolean);return[].concat(e)},[n.columns])};var fe=function e(n){var t=n.columns;return L.useMemoCustom(function(){var e;if((e=n.columnFoldConfig)!=null&&e.hidden)return t;var r=t[t.length-1];if(n.foldColumnList.length>0&&t.length>0){var i=t.find(function(e){return e["_isFoldColumn"]});if(i&&r.dataIndex!==i.dataIndex){i.title=i["_isFoldTitle"];i["_isFoldColumn"]=false}if(!r["_isFoldColumn"]){var a,o,l,u,s,c;r["_isFoldTitle"]=r["_isFoldTitle"]||r.title;r["_isFoldColumn"]=true;var d=(a=n.columnFoldConfig)==null?void 0:a.triggerType;r.title=V(U,{direction:"horizontal",fullIndex:0,style:{alignItems:"center"},children:[E("span",{children:r.title}),E("div",{style:{padding:"0 5px 0 20px",display:"flex"},children:d==="drawer"?E(H,{onClick:n.onOpenColumnFoldModal,text:(o=n.columnFoldConfig)==null?void 0:o.text,size:"small",icon:((l=n.columnFoldConfig)==null?void 0:l.icon)||E(Y,{svgPath:"ionic/list-circle",color:"#868686"}),hoverTips:((u=n.columnFoldConfig)==null?void 0:u.hoverTipText)||"字段列表",style:{padding:0,margin:0}}):E(te,{dataList:n.foldColumnList,onChange:n.onChangeFoldColumnList,cacheKey:n.cacheKey,initSelectedRowKeys:n.showFoldKeyList,children:E(H,{text:(s=n.columnFoldConfig)==null?void 0:s.text,style:{padding:0,margin:0},size:"small",icon:((c=n.columnFoldConfig)==null?void 0:c.icon)||E(Y,{svgPath:"ionic/list-circle",color:"#868686"})})})})]})}}return t},[n.columns,n.columnFoldConfig])};var me=function e(n){return z(function(){var e=n.columns.map(function(e){var t=e.hidden,r=e.isFold;if(t)return null;if(r&&!n.showFoldKeyList.includes(e.dataIndex))return null;return e}).filter(Boolean);return[].concat(e)},[n.columns,n.showFoldKeyList])};var pe=function e(n){return z(function(){if(!Object.keys(n.asyncColumnRequestResult))return n.columns;return n.columns.map(function(e){var t=e.dataIndex;var r=n.asyncColumnRequestResult[t];if(t&&r){if(r.loading){e.render=function(e){return E(M,{loading:true,type:"text",loadingPosition:"center",removeGap:true,children:e})}}else if(e.asyncRender){e.render=function(n,t,i){return e.asyncRender==null?void 0:e.asyncRender(n,t,i,r.respData)}}}return e})},[n.columns,n.asyncColumnRequestResult])};var ve=["children","rowKey","pagination","isSync","title","actions"];var ge=function e(n){var t;if(!n.title&&!((t=n.actions)!=null&&t.length)){return null}return V(U,{fullIndex:0,direction:"horizontal",style:{marginBottom:10,alignItems:"center"},children:[n.title?E("div",{style:{fontWeight:400,fontSize:16},children:n.title}):null,E(x,{size:10,children:n.actions})]})};var he=function e(n){var t=N(ne);var a=n.children,o=n.rowKey,l=n.pagination,u=n.isSync,m=n.title,p=n.actions,g=i(n,ve);var h=L.useResponsivePoint()||"";var y=_({});var C=w({}),F=C[0],b=C[1];var x=t.dynamicColumnsConfig,R=x.columnFoldConfig,K=x.onCloseColumnFoldModal,I=x.columnFoldOpen,P=x.onOpenColumnFoldModal,T=x.asyncColumnRequest,k=x.showFoldKeyList,D=x.onChangeShowFoldKeyList;var O=t.cacheKey,A=t.fieldNames,M=t.onRequest,W=t.tableDataSource,Q=t.pageSize,U=t.tableTotal,H=t.loading,Y=t.paginationFixed,$=t.onSetPaginationStatus;var J=X.get(O);L.useEffectCustom(function(){t.onSetBaseColumns(n.columns||[])},[]);q(function(){if(T!=null&&T.length){var e=function e(){var t;var i=T[n];y.current=r({},y.current,(t={},t[i.dataIndex]={loading:true},t));b(y.current);i.onRequest().then(function(e){var n;y.current=r({},y.current,(n={},n[i.dataIndex]={loading:false,respData:e},n));b(y.current)}).catch(function(e){var n;console.error(e==null?void 0:e.message);y.current=r({},y.current,(n={},n[i.dataIndex]={loading:false},n));b(y.current)})};for(var n=0;n<T.length;n++){e()}}},[T]);var Z=L.useMemoCustom(function(){if(t.columns){t.onSetColumns(t.columns);return t.columns}else{t.onSetColumns(n.columns);return n.columns}},[t.columns,n.columns]);var ee=de({columns:[].concat(Z)});var te=Z.filter(function(e){return!e.hidden&&e.isFold&&e.dataIndex});ee=fe({cacheKey:O,columns:ee,foldColumnList:te,showFoldKeyList:k,columnFoldConfig:R,onOpenColumnFoldModal:P,onChangeFoldColumnList:D});ee=me({columns:ee,showFoldKeyList:k});ee=pe({columns:ee,asyncColumnRequestResult:F});L.useEffectCustom(function(){$(l!==false)},[l]);v.useUpdateEffect(function(){if(!Y){if(l!==false){var e;M((e={},e[A.pageSize]=J[A.pageSize]||Q,e[A.pageNo]=1,e))}else{var n;M((n={},n[A.pageSize]=undefined,n[A.pageNo]=undefined,n))}}},[l]);var re=z(function(){if(Y||l===false)return false;return r({showSizeChanger:true,current:J[A.pageNo]||1,pageSize:J[A.pageSize]||Q,total:U,showTotal:function e(n){return"共 "+n+" 条记录"}},n.pagination)},[J,A.pageNo,A.pageSize,Q,l,Y,n.pagination,U]);var ie=function e(t,r,i,a){if(a.action==="paginate"&&re){var o;M((o={},o[A.pageSize]=t.pageSize,o[A.pageNo]=t.current,o))}else{n.onChange==null||n.onChange(t,r,i,a)}};var ae=z(function(){if(!W)return undefined;if(W.length===0){return[]}if(typeof o==="string"&&c(W[0][o])){return W.map(function(e){e[o]=s();return e})}return W},[W,o]);ee=z(function(){return ee.map(function(e){if(!!e.fixed&&h==="xs"){e.fixed=undefined}if(!!e.defaultValue&&!e.render){e.render=function(n){return c(n)||n==""?e.defaultValue:n}}return e})},[ee,h]);var oe=function e(){if(u&&!ae){return V(j,{children:[E(ge,{title:m,actions:p}),a,E(S,{size:"small",scroll:{x:"max-content"},bordered:true,rowKey:o,columns:ee,loading:H},"1")]})}if(d()){return V(j,{children:[E(ge,{title:m,actions:p}),a,E(S,r({size:"small",scroll:{x:"max-content"},bordered:true},g,{columns:ee,pagination:re,rowKey:o,onChange:ie,loading:H,dataSource:ae}),"2")]})}return V(j,{children:[E(ge,{title:m,actions:p}),a,E(G,{children:E(S,r({size:"small",scroll:{x:"max-content"},bordered:true},g,{columns:ee,pagination:re,rowKey:o,onChange:ie,loading:H,dataSource:ae}),"3")})]})};return V(B,{className:f("easy-table-table",{"ett-empty-show-small":n.emptyShowSize==="small"},n.tableWrapperClassName),style:n.tableWrapperStyle,children:[oe(),E(se,{dataList:te,onClose:K,open:I,onChange:D,cacheKey:O,initSelectedRowKeys:k})]})};var ye=e.attachPropertiesToComponent(ae,{Filter:oe,Table:he,useEasyTablRef:ue,useEasyTable:le,setEnabledInitRequest:function e(n){Z.set(n,false)}});export{ye as EasyTable};
18
+ import{fbaUtils as e}from"../fba-utils/index.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{isObject as t}from"@dimjs/lang/cjs/is-object";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{sessionStorageCache as a,localStorageCache as o,noop as l,trim as u,getUuid as s,isUndefinedOrNull as c,isMacEnv as d}from"@flatbiz/utils";import{classNames as f}from"@dimjs/utils/cjs/class-names";import{isUndefined as m}from"@dimjs/lang/cjs/is-undefined";import{get as p}from"@dimjs/utils/cjs/get";import{hooks as v}from"@wove/react/cjs/hooks";import{isString as g}from"@dimjs/lang/cjs/is-string";import{Checkbox as h,Popover as y,Form as C,message as F,Drawer as b,Table as S,Space as x}from"antd";import{createContext as R,useState as w,Fragment as j,forwardRef as K,useMemo as z,useRef as _,useImperativeHandle as I,cloneElement as P,useContext as N,Children as T,useEffect as q}from"react";import{fbaHooks as L}from"../fba-hooks/index.js";import{PaginationWrapper as k}from"../pagination-wrapper/index.js";import{jsx as E,jsxs as V}from"react/jsx-runtime";import D from"@ant-design/icons/es/icons/DownOutlined";import O from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as A}from"react-is";import{BlockLayout as B}from"../block-layout/index.js";import{ButtonWrapper as M}from"../button-wrapper/index.js";import{EasyForm as W}from"../easy-form/index.js";import{FormGrid as Q}from"../form-grid/index.js";import{FlexLayout as U}from"../flex-layout/index.js";import{TableScrollbar as G}from"../table-scrollbar/index.js";import{IconWrapper as H}from"../icon-wrapper/index.js";import{SvgHttpView as Y}from"../svg-http-view/index.js";import{TableTitleTooltip as $}from"../table-title-tooltip/index.js";import{TipsWrapper as J}from"../tips-wrapper/index.js";import"@dimjs/model";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-853b36e6.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../box-grid/index.js";import"@dimjs/lang/cjs/is-number";import"ahooks";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var X={set:function e(n,t){var i=X.get(n);var o=r({},i,t);a.set("easy_tab_filter_"+n,o);return o},get:function e(n){var r=a.get("easy_tab_filter_"+n);return t(r)?r:{}},remove:function e(n){a.remove("easy_tab_filter_"+n)}};var Z={set:function e(n,t){a.set("easy_tab_firstQuery_"+n,{value:t})},get:function e(n){var t;var r=(t=a.get("easy_tab_firstQuery_"+n))==null?void 0:t.value;return r===false?false:true},remove:function e(n){a.remove("easy_tab_firstQuery_"+n)}};var ee={set:function e(n,t){o.set("easy_tab_columnFold_"+n,{value:t})},get:function e(t){var r;var i=(r=o.get("easy_tab_columnFold_"+t))==null?void 0:r.value;return n(i)?i:[]},remove:function e(n){o.remove("easy_tab_columnFold_"+n)}};var ne=R({onRequest:l,tableList:[],getEasyTableRef:function e(){}});var te=function e(n){var t=w(n.initSelectedRowKeys||[]),r=t[0],i=t[1];var a=function e(t){i(t);n.onChange(t);if(n.cacheKey){ee.set(n.cacheKey,t)}};var o=E(j,{children:E(h.Group,{defaultValue:r,onChange:a,value:r,style:{display:"flex",flexDirection:"column"},children:n.dataList.map(function(e){var n=e["_isFoldTitle"]||e.title;return E(h,{value:e.dataIndex,style:{padding:"0 0 5px 0"},children:n},e.dataIndex)})})});var l=function e(t){if(t.target.checked){a(n.dataList.map(function(e){return e.dataIndex}))}else{a([])}};return E(y,{content:o,title:E(h,{checked:r.length===n.dataList.length,onChange:l,children:"全选(字段列表)"}),placement:"bottomRight",overlayClassName:"fold-operate-popiver",children:n.children})};var re=function e(n,t){var r=n.getFieldsValue()||{};if(!(t!=null&&t.length)){return r}var i={};t.forEach(function(e){i[e]=r[e]});return i};var ie=function e(n,t){if(t===void 0){t={}}if(!n||typeof n!=="object"||Array.isArray(n)){return n}var r=t,i=r.removeEmptyValue,a=i===void 0?true:i;var o={};for(var l in n){if(!Object.prototype.hasOwnProperty.call(n,l)){continue}var s=n[l];if(typeof s==="string"){s=u(s,true)}if(l.includes("__#invalid_")){continue}if(a&&(s===""||s===null||s===undefined)){continue}if(s!==null&&typeof s==="object"&&!Array.isArray(s)){o[l]=ie(s,t)}else{o[l]=s}}return o};var ae=K(function(e,t){var i;var a=L.useResponsivePoint()||"";var o=w(),l=o[0],u=o[1];var c=w(0),d=c[0],h=c[1];var y=w(false),b=y[0],S=y[1];var x=e.columnFoldConfig;var R=e.asyncColumnRequest;var j=e.removeRequestParamsEmptyValue===undefined?true:e.removeRequestParamsEmptyValue;var K=w(false),N=K[0],T=K[1];var q=z(function(){if(e.cacheKey){try{var n=window.frameElement;var t=(n==null?void 0:n.id)||"";return e.cacheKey+"_"+t}catch(n){return e.cacheKey}}if(e.cacheSwitch===true){return location.pathname}if(typeof e.cacheSwitch==="string"){return e.cacheSwitch}return Date.now()+"-"+s()},[e.cacheSwitch,e.cacheKey]);var D=X.get(q);var O=w(function(){if(q){var e=ee.get(q);var t=n(e)?e.filter(function(e){return g(e)}):[];return t.length>0?t:(x==null?void 0:x.initSelectedKeys)||[]}else{return(x==null?void 0:x.initSelectedKeys)||[]}}),A=O[0],B=O[1];var M=e.pageSize||((i=e.initialPaginationParams)==null?void 0:i.pageSize)||10;var W=e.initRequest===undefined?true:e.initRequest;var Q=_(false);var U=_();var G=_([]);var H=w(),Y=H[0],$=H[1];var J=_([]);var ae=r({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var oe=C.useFormInstance();var le=C.useForm(e.form||oe),ue=le[0];var se=v.useCallbackRef(function(t){return new Promise(function(r,i){var a,o,l,s,c,d,f,m,v,g,y;var C=function(){try{return r()}catch(e){return i(e)}};var b=function(n){try{S(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(n)}else{void F.error(n.message)}return C()}catch(e){return i(e)}};try{if(e.breforeRequest){var x=function(){try{return w.call(this)}catch(e){return b(e)}}.bind(this);var R=function(e){try{return r()}catch(e){return b(e)}};try{return Promise.resolve(e.breforeRequest(ue)).then(function(e){try{return x()}catch(e){return R(e)}},R)}catch(K){R(K)}}function w(){Z.set(q,false);a=X.set(q,t);S(true);o=e.serviceConfig,l=o.requestParamsAdapter,s=o.onRequest,c=o.requestResultAdapter,d=o.dynamicColumsAdapter;f=ie(a,{removeEmptyValue:j});f=l?l(f,a):f;return Promise.resolve(s(f)).then(function(t){try{m=t||{};U.current=m;e.onDataSourceChange==null||e.onDataSourceChange(m);v=m;if(c){v=c(m)}if(d){g=d(m,G.current);$(g)}y=p(v,ae.list);u(n(y)?y:[]);h(p(v,ae.total));S(false);return C()}catch(e){return b(e)}},b)}return w.call(this)}catch(z){b(z)}})});L.useEffectCustom(function(){var n=_e();var t=Z.get(q);ue.setFieldsValue(r({},e.initialValues,D));if(W||!t){if(n){var i;void se(r((i={},i[ae.pageNo]=1,i[ae.pageSize]=M,i),e.initialValues,D))}else{void se(e.initialValues)}}else{X.set(q,e.initialValues||{})}},[]);var ce=v.useCallbackRef(function(e){X.remove(q);ue.resetFields();if(e){X.set(q,e);ue.setFieldsValue(e)}});var de=v.useCallbackRef(function(e){X.set(q,e);ue.setFieldsValue(e)});var fe=function e(n,t){if(_e()){var r;return r={},r[ae.pageNo]=n,r[ae.pageSize]=t||M,r}else{var i;return i={},i[ae.pageNo]=undefined,i[ae.pageSize]=undefined,i}};var me=v.useCallbackRef(function(n){var t=r({},fe(1,D[ae.pageSize]),e.initialValues,n);X.remove(q);ue.resetFields();if(n){ue.setFieldsValue(n)}void se(t)});var pe=v.useCallbackRef(function(){var n;var t=X.get(q);var i=r({},t,ue.getFieldsValue());var a=r({},fe(1,i[ae.pageSize]));if((n=e.filterFormItemKeys)!=null&&n.length){e.filterFormItemKeys.forEach(function(e){a[e]=i[e]})}else{a=r({},i,a)}return ie(a,{removeEmptyValue:j})});var ve=v.useCallbackRef(function(){T(true)});var ge=v.useCallbackRef(function(){T(false)});var he=v.useCallbackRef(function(){var n;var t=X.get(q);var i=r({},fe(1,t[ae.pageSize]));if((n=e.filterFormItemKeys)!=null&&n.length){e.filterFormItemKeys.forEach(function(e){i[e]=t[e]})}else{i=r({},t,i)}return ie(i,{removeEmptyValue:j})});var ye=function n(){return{onRequest:se,clearQueryCondition:ce,updateQueryCondition:de,getRequestParams:pe,getSubmitParams:he,onResetRequest:me,form:ue,dataSource:U.current,getDataSource:function e(){return U.current},onFilterDataSource:function e(n){u(n)},getTableDataList:function e(){return l||[]},onClearDataSource:function e(){h(0);u([])},onUpdateDataSource:function n(t){var r;u(t);U.current=(r={},r[ae.list]=t,r);e.onDataSourceChange==null||e.onDataSourceChange(U.current)},columnFoldTriggerRender:function n(t,r){var i;if(((i=e.columnFoldConfig)==null?void 0:i.triggerType)==="drawer"){return P(t,{onClick:ve})}var a=r.filter(function(e){return!e.hidden&&e.isFold&&e.dataIndex});return E(te,{dataList:a,onChange:Ke,cacheKey:q,initSelectedRowKeys:A,children:t})},onChangeTableColumns:function e(n){$(n)},getTableColumns:function e(){return J.current},loading:b,setEnabledInitRequest:function e(){Z.set(q,false)}}};I(t,function(){return ye()});var Ce=function e(n){Q.current=n};var Fe=function e(n){G.current=n};var be=function e(n){J.current=n};var Se=function n(){if(b){console.log("loading...");return}var t=re(ue,e.filterFormItemKeys);if(e.onFormFinish){e.onFormFinish(r({},t,fe(1,D[ae.pageSize])))}else{void se(r({},t,fe(1,D[ae.pageSize])))}};var xe=m(e.isFull)?true:e.isFull;var Re=a==="xs"?false:e.filterFixed;var we=f("fba-easy-table",{"fba-easy-table-full":xe,"fba-easy-table-filter-fixed":Re,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var je=L.useMemoCustom(function(){return r({showSizeChanger:true,current:D[ae.pageNo]||1,pageSize:D[ae.pageSize]||M,total:d,showTotal:function e(n){return"共 "+n+" 条记录"}},e.pagination)},[ae.pageNo,D,ae.pageSize,q,M,e.pagination,d]);var Ke=function e(n){B(n);x==null||x.onChange==null||x.onChange(n)};var ze=v.useCallbackRef(function(n,t){var r,i;var a=(r={},r[ae.pageSize]=t,r[ae.pageNo]=n,r);X.set(q,a);void se(a);(i=e.pagination)==null||i.onChange==null||i.onChange(n,t)});var _e=function n(){return e.paginationFixed||Q.current};v.useUpdateEffect(function(){if(e.paginationFixed){var n;void se((n={},n[ae.pageSize]=D[ae.pageSize]||M,n[ae.pageNo]=1,n))}else{var t;void se((t={},t[ae.pageSize]=undefined,t[ae.pageNo]=undefined,t))}},[e.paginationFixed]);var Ie=f("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var Pe=r({overflowY:e.filterFixed||e.paginationFixed?"hidden":"auto"},e.style);var Ne=typeof e.children==="function"?e.children(U.current):e.children;return E(ne.Provider,{value:{onSetBaseColumns:Fe,onSetColumns:be,getEasyTableRef:ye,cacheKey:q,onRequest:se,tableDataSource:l,tableTotal:d,loading:b,fieldNames:ae,pageSize:M,onSetPaginationStatus:Ce,getPaginationStatus:_e,onFormFinish:Se,form:ue,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[],columns:Y,initialValues:e.initialValues,filterFormItemKeys:e.filterFormItemKeys,dynamicColumnsConfig:{showFoldKeyList:A,onChangeShowFoldKeyList:Ke,columnFoldConfig:x,onOpenColumnFoldModal:ve,onCloseColumnFoldModal:ge,columnFoldOpen:N,asyncColumnRequest:R}},children:e.paginationFixed?V("div",{className:Ie,style:Pe,children:[E("div",{className:we,children:Ne}),d>0&&E("div",{className:"fba-easy-table-pagination",children:E(k,r({size:"small"},je,{onChange:ze}))})]}):E("div",{className:Ie,style:e.style,children:E("div",{className:we,children:Ne})})})});var oe=function e(n){var t;var i=L.useResponsivePoint()||"md";var a=N(ne);var o=C.useFormInstance();var l=n.queryButtonProps,u=n.resetButtonProps,s=n.filterOperate,c=n.formClassName,d=c===void 0?"":c,p=n.defaultResetButtonTriggerRequest,g=n.filterWrapperStyle,h=n.filterWrapperClassName,y=n.rightOperateAreaAppendType,F=n.easyFormProps;var b=a.cacheKey,S=a.foldKeys,x=a.fieldNames,R=a.onRequest,j=a.pageSize,K=a.getPaginationStatus,_=a.initialValues,I=a.form,P=a.onFormFinish;var q=typeof n.children==="function"?n.children(I):n.children;var k=y||"cover";var U=z(function(){if(A(q)){return T.toArray(q.props.children)}else{return T.toArray(q)}},[q]);var G=w(false),H=G[0],Y=G[1];var $=z(function(){var e;if((e=a.filterFormItemKeys)!=null&&e.length||o){return false}return true},[(t=a.filterFormItemKeys)==null?void 0:t.length,o]);var J=v.useCallbackRef(function(){return new Promise(function(e,n){var t;if(a.loading){console.log("loading...");return e()}X.remove(b);I.resetFields();I.setFieldsValue(_);if(m(p)||p){return Promise.resolve(I.validateFields(a.filterFormItemKeys)).then(function(e){try{if(K()){R(r((t={},t[x.pageNo]=1,t[x.pageSize]=j,t),_))}else{R(_)}return i.call(this)}catch(e){return n(e)}}.bind(this),n)}function i(){return e()}return i.call(this)})});var Z=z(function(){var e=[!(l!=null&&l.hidden)?E(M,r({type:"primary",htmlType:$?"submit":undefined,loadingPosition:"center",loading:a.loading,onClick:function e(){return new Promise(function(e,n){var t;if(o||(t=a.filterFormItemKeys)!=null&&t.length){return Promise.resolve(I.validateFields(a.filterFormItemKeys).then(function(){P==null||P()})).then(function(e){try{return r.call(this)}catch(e){return n(e)}}.bind(this),n)}function r(){return e()}return r.call(this)})}},l,{style:r({},l==null?void 0:l.style,{cursor:a.loading?"not-allowed":undefined}),children:(l==null?void 0:l.text)||"查询"}),"1"):null,!(u!=null&&u.hidden)?E(M,r({onClick:J},u,{style:r({},u==null?void 0:u.style,{cursor:a.loading?"not-allowed":undefined}),children:(u==null?void 0:u.text)||"重置"}),"2"):null].filter(Boolean);var n=s==null?void 0:s(I);var t=n==null?void 0:n.rightList;var i=(n==null?void 0:n.leftList)||[];var c=e;if(t){if(k==="afterAppend"){c=[].concat(e,t)}else if(k==="beforeAppend"){c=[].concat(t,e)}else{c=t}}if(S.length>0){var d=E(M,{type:"link",style:{padding:"0"},onClick:function e(){Y(!H)},children:H?V("span",{children:["收起",E(O,{style:{marginLeft:3,fontSize:12}})]}):V("span",{children:["展开",E(D,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(c.length>0||i.length===0){c.push(d)}else if((i==null?void 0:i.length)>0){i.push(d)}}return U.map(function(e,n){if(!H&&S.find(function(n){return".$"+n===e.key}))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return E(Q.Col,{children:e},n)}).filter(Boolean).concat(E(Q.OperateCol,r({},n,{leftList:i,rightList:c}),999))},[l,$,a.loading,a.filterFormItemKeys,u,J,s,I,S,U,o,P,k,H]);var ee=i==="xs"?"left":(F==null?void 0:F.labelAlign)||"right";return E(B,{className:f("easy-table-filter",h),style:g,children:E(W,r({form:I,autoComplete:"off",onFinish:$?P:undefined,className:d,style:n.formStyle,isPure:true,labelWidth:"80",formItemGap:"15"},F,{labelAlign:ee,children:n.isPure?q:E(Q.Row,{gutter:[15,0],gridSize:n.formGridSize,children:Z})}))})};var le=function e(){var n=N(ne);return n.getEasyTableRef()};var ue=function e(){var n=N(ne);return{current:n.getEasyTableRef()}};var se=function e(n){var t=w(n.initSelectedRowKeys||[]),r=t[0],i=t[1];var a={type:"checkbox",selectedRowKeys:r,onChange:function e(t){i(t);n.onChange(t);if(n.cacheKey){ee.set(n.cacheKey,t)}}};var o=[{title:"字段名称",dataIndex:"title",render:function e(n,t){return t["_isFoldTitle"]||n}},{title:"字段Key",dataIndex:"dataIndex"}];return E(j,{children:E(b,{title:"选择字段",open:n.open,onClose:n.onClose,width:"35%",styles:{body:{padding:15}},children:E(S,{bordered:true,size:"small",columns:o,rowSelection:a,rowKey:"dataIndex",pagination:false,scroll:{x:"max-content"},dataSource:n.dataList})})})};var ce=["tooltip","tipsWrapperProps","title"];var de=function e(n){return z(function(){var e=n.columns.map(function(e){var n=e.tooltip,t=e.tipsWrapperProps,a=e.title,o=i(e,ce);if(typeof a==="string"&&t){if(typeof t==="string"){return r({},o,{title:E(J,{tipType:"popover",popoverProps:{content:t},children:a})})}return r({},o,{title:E(J,r({},t,{children:a}))})}if(typeof a==="string"&&!!n){return r({},o,{title:E($,{tooltip:n,title:a})})}return e}).filter(Boolean);return[].concat(e)},[n.columns])};var fe=function e(n){var t=n.columns;return L.useMemoCustom(function(){var e;if((e=n.columnFoldConfig)!=null&&e.hidden)return t;var r=t[t.length-1];if(n.foldColumnList.length>0&&t.length>0){var i=t.find(function(e){return e["_isFoldColumn"]});if(i&&r.dataIndex!==i.dataIndex){i.title=i["_isFoldTitle"];i["_isFoldColumn"]=false}if(!r["_isFoldColumn"]){var a,o,l,u,s,c;r["_isFoldTitle"]=r["_isFoldTitle"]||r.title;r["_isFoldColumn"]=true;var d=(a=n.columnFoldConfig)==null?void 0:a.triggerType;r.title=V(U,{direction:"horizontal",fullIndex:0,style:{alignItems:"center"},children:[E("span",{children:r.title}),E("div",{style:{padding:"0 5px 0 20px",display:"flex"},children:d==="drawer"?E(H,{onClick:n.onOpenColumnFoldModal,text:(o=n.columnFoldConfig)==null?void 0:o.text,size:"small",icon:((l=n.columnFoldConfig)==null?void 0:l.icon)||E(Y,{svgPath:"ionic/list-circle",color:"#868686"}),hoverTips:((u=n.columnFoldConfig)==null?void 0:u.hoverTipText)||"字段列表",style:{padding:0,margin:0}}):E(te,{dataList:n.foldColumnList,onChange:n.onChangeFoldColumnList,cacheKey:n.cacheKey,initSelectedRowKeys:n.showFoldKeyList,children:E(H,{text:(s=n.columnFoldConfig)==null?void 0:s.text,style:{padding:0,margin:0},size:"small",icon:((c=n.columnFoldConfig)==null?void 0:c.icon)||E(Y,{svgPath:"ionic/list-circle",color:"#868686"})})})})]})}}return t},[n.columns,n.columnFoldConfig])};var me=function e(n){return z(function(){var e=n.columns.map(function(e){var t=e.hidden,r=e.isFold;if(t)return null;if(r&&!n.showFoldKeyList.includes(e.dataIndex))return null;return e}).filter(Boolean);return[].concat(e)},[n.columns,n.showFoldKeyList])};var pe=function e(n){return z(function(){if(!Object.keys(n.asyncColumnRequestResult))return n.columns;return n.columns.map(function(e){var t=e.dataIndex;var r=n.asyncColumnRequestResult[t];if(t&&r){if(r.loading){e.render=function(e){return E(M,{loading:true,type:"text",loadingPosition:"center",removeGap:true,children:e})}}else if(e.asyncRender){e.render=function(n,t,i){return e.asyncRender==null?void 0:e.asyncRender(n,t,i,r.respData)}}}return e})},[n.columns,n.asyncColumnRequestResult])};var ve=["children","rowKey","pagination","isSync","title","actions"];var ge=function e(n){var t;if(!n.title&&!((t=n.actions)!=null&&t.length)){return null}return V(U,{fullIndex:0,direction:"horizontal",style:{marginBottom:10,alignItems:"center"},children:[n.title?E("div",{style:{fontWeight:400,fontSize:16},children:n.title}):null,E(x,{size:10,children:n.actions})]})};var he=function e(n){var t=N(ne);var a=n.children,o=n.rowKey,l=n.pagination,u=n.isSync,m=n.title,p=n.actions,g=i(n,ve);var h=L.useResponsivePoint()||"";var y=_({});var C=w({}),F=C[0],b=C[1];var x=t.dynamicColumnsConfig,R=x.columnFoldConfig,K=x.onCloseColumnFoldModal,I=x.columnFoldOpen,P=x.onOpenColumnFoldModal,T=x.asyncColumnRequest,k=x.showFoldKeyList,D=x.onChangeShowFoldKeyList;var O=t.cacheKey,A=t.fieldNames,M=t.onRequest,W=t.tableDataSource,Q=t.pageSize,U=t.tableTotal,H=t.loading,Y=t.paginationFixed,$=t.onSetPaginationStatus;var J=X.get(O);L.useEffectCustom(function(){t.onSetBaseColumns(n.columns||[])},[]);q(function(){if(T!=null&&T.length){var e=function e(){var t;var i=T[n];y.current=r({},y.current,(t={},t[i.dataIndex]={loading:true},t));b(y.current);i.onRequest().then(function(e){var n;y.current=r({},y.current,(n={},n[i.dataIndex]={loading:false,respData:e},n));b(y.current)}).catch(function(e){var n;console.error(e==null?void 0:e.message);y.current=r({},y.current,(n={},n[i.dataIndex]={loading:false},n));b(y.current)})};for(var n=0;n<T.length;n++){e()}}},[T]);var Z=L.useMemoCustom(function(){if(t.columns){t.onSetColumns(t.columns);return t.columns}else{t.onSetColumns(n.columns);return n.columns}},[t.columns,n.columns]);var ee=de({columns:[].concat(Z)});var te=Z.filter(function(e){return!e.hidden&&e.isFold&&e.dataIndex});ee=fe({cacheKey:O,columns:ee,foldColumnList:te,showFoldKeyList:k,columnFoldConfig:R,onOpenColumnFoldModal:P,onChangeFoldColumnList:D});ee=me({columns:ee,showFoldKeyList:k});ee=pe({columns:ee,asyncColumnRequestResult:F});L.useEffectCustom(function(){$(l!==false)},[l]);v.useUpdateEffect(function(){if(!Y){if(l!==false){var e;M((e={},e[A.pageSize]=J[A.pageSize]||Q,e[A.pageNo]=1,e))}else{var n;M((n={},n[A.pageSize]=undefined,n[A.pageNo]=undefined,n))}}},[l]);var re=z(function(){if(Y||l===false)return false;return r({showSizeChanger:true,current:J[A.pageNo]||1,pageSize:J[A.pageSize]||Q,total:U,showTotal:function e(n){return"共 "+n+" 条记录"}},n.pagination)},[J,A.pageNo,A.pageSize,Q,l,Y,n.pagination,U]);var ie=function e(t,r,i,a){if(a.action==="paginate"&&re){var o;M((o={},o[A.pageSize]=t.pageSize,o[A.pageNo]=t.current,o))}else{n.onChange==null||n.onChange(t,r,i,a)}};var ae=z(function(){if(!W)return undefined;if(W.length===0){return[]}if(typeof o==="string"&&c(W[0][o])){return W.map(function(e){e[o]=s();return e})}return W},[W,o]);ee=z(function(){return ee.map(function(e){if(!!e.fixed&&h==="xs"){e.fixed=undefined}if(!!e.defaultValue&&!e.render){e.render=function(n){return c(n)||n==""?e.defaultValue:n}}return e})},[ee,h]);var oe=function e(){if(u&&!ae){return V(j,{children:[E(ge,{title:m,actions:p}),a,E(S,{size:"small",scroll:{x:"max-content"},bordered:true,rowKey:o,columns:ee,loading:H},"1")]})}if(d()){return V(j,{children:[E(ge,{title:m,actions:p}),a,E(S,r({size:"small",scroll:{x:"max-content"},bordered:true},g,{columns:ee,pagination:re,rowKey:o,onChange:ie,loading:H,dataSource:ae}),"2")]})}return V(j,{children:[E(ge,{title:m,actions:p}),a,E(G,{children:E(S,r({size:"small",scroll:{x:"max-content"},bordered:true},g,{columns:ee,pagination:re,rowKey:o,onChange:ie,loading:H,dataSource:ae}),"3")})]})};return V(B,{className:f("easy-table-table",{"ett-empty-show-small":n.emptyShowSize==="small"},n.tableWrapperClassName),style:n.tableWrapperStyle,children:[oe(),E(se,{dataList:te,onClose:K,open:I,onChange:D,cacheKey:O,initSelectedRowKeys:k})]})};var ye=e.attachPropertiesToComponent(ae,{Filter:oe,Table:he,useEasyTablRef:ue,useEasyTable:le,setEnabledInitRequest:function e(n){Z.set(n,false)}});export{ye as EasyTable};
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/cache.ts","@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@flatbiz/antd/src/easy-table/utils.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/fold-operate.tsx","@flatbiz/antd/src/easy-table/hooks/columns.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { isArray, isObject } from '@dimjs/lang';\nimport { localStorageCache, sessionStorageCache, TPlainObject } from '@flatbiz/utils';\n\nexport const filterCache = {\n set: (cacheKey: string, filterCondition: TPlainObject) => {\n const value = filterCache.get(cacheKey);\n const mergeParams = {\n ...value,\n ...filterCondition,\n };\n sessionStorageCache.set(`easy_tab_filter_${cacheKey}`, mergeParams);\n return mergeParams as TPlainObject;\n },\n get: (cacheKey: string) => {\n const value = sessionStorageCache.get(`easy_tab_filter_${cacheKey}`) as TPlainObject;\n return isObject(value) ? value : {};\n },\n remove: (cacheKey: string) => {\n sessionStorageCache.remove(`easy_tab_filter_${cacheKey}`);\n },\n};\n\nexport const firstQueryCache = {\n set: (cacheKey: string, flag: boolean) => {\n sessionStorageCache.set(`easy_tab_firstQuery_${cacheKey}`, { value: flag });\n },\n get: (cacheKey: string) => {\n const value = sessionStorageCache.get(`easy_tab_firstQuery_${cacheKey}`)?.value;\n return value === false ? false : true;\n },\n remove: (cacheKey: string) => {\n sessionStorageCache.remove(`easy_tab_firstQuery_${cacheKey}`);\n },\n};\n\nexport const columnFoldCache = {\n set: (cacheKey: string, value: string[]) => {\n localStorageCache.set(`easy_tab_columnFold_${cacheKey}`, { value });\n },\n get: (cacheKey: string) => {\n const value = localStorageCache.get(`easy_tab_columnFold_${cacheKey}`)?.value;\n return isArray(value) ? (value as string[]) : [];\n },\n remove: (cacheKey: string) => {\n localStorageCache.remove(`easy_tab_columnFold_${cacheKey}`);\n },\n};\n","import { noop, type TPlainObject } from '@flatbiz/utils';\nimport { type FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\n\nexport type EditableFieldContextContextApi = {\n cacheKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableDataSource?: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initialValues?: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n getPaginationStatus: () => boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n onSetColumns: (columns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n columns?: TEasyTableTableColumn<TPlainObject>[];\n dynamicColumnsConfig: {\n showFoldKeyList: string[];\n onChangeShowFoldKeyList: (keys: string[]) => void;\n columnFoldOpen: boolean;\n columnFoldConfig?: EasyTableProps['columnFoldConfig'];\n onOpenColumnFoldModal: () => void;\n onCloseColumnFoldModal: () => void;\n asyncColumnRequest?: EasyTableProps['asyncColumnRequest'];\n };\n filterFormItemKeys?: string[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { Checkbox, Popover } from 'antd';\nimport { Fragment, useState, type CSSProperties, type ReactElement } from 'react';\nimport { columnFoldCache } from './cache';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex: string; title: string }[];\n onChange: (keys: string[]) => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n children?: ReactElement;\n};\n\nexport const FoldOperateDropdown = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n\n const onChange = (keys) => {\n setSelectedRowKeys(keys);\n props.onChange(keys);\n if (props.cacheKey) {\n columnFoldCache.set(props.cacheKey, keys);\n }\n };\n const content = (\n <Fragment>\n <Checkbox.Group\n defaultValue={selectedRowKeys}\n onChange={onChange}\n value={selectedRowKeys}\n style={{ display: 'flex', flexDirection: 'column' }}\n >\n {props.dataList.map((item) => {\n const label = item['_isFoldTitle'] || item.title;\n return (\n <Checkbox value={item.dataIndex} key={item.dataIndex} style={{ padding: '0 0 5px 0' }}>\n {label}\n </Checkbox>\n );\n })}\n </Checkbox.Group>\n </Fragment>\n );\n\n const onChangeAll = (e) => {\n if (e.target.checked) {\n onChange(props.dataList.map((item) => item.dataIndex));\n } else {\n onChange([]);\n }\n };\n\n return (\n <Popover\n content={content}\n title={\n <Checkbox checked={selectedRowKeys.length === props.dataList.length} onChange={onChangeAll}>\n 全选(字段列表)\n </Checkbox>\n }\n placement=\"bottomRight\"\n overlayClassName=\"fold-operate-popiver\"\n >\n {props.children}\n </Popover>\n );\n};\n","import { trim, type TPlainObject } from '@flatbiz/utils';\nimport type { FormInstance } from 'antd';\n\nexport const getFormFieldsValue = (form: FormInstance, filterFormItemKeys?: string[]) => {\n const formValues = (form.getFieldsValue() || {}) as TPlainObject;\n if (!filterFormItemKeys?.length) {\n return formValues;\n }\n const values: TPlainObject = {};\n\n filterFormItemKeys.forEach((item) => {\n values[item] = formValues[item];\n });\n return values;\n};\n\n/**\n * 请求参数内部转换处理\n * ```\n * 1. 对象中值为空字符串、null、undefined 的key值,直接删除\n * 2. 对象中以`__#invalid_xxxx`开头的key值,直接删除\n * 3. 注意params可能会有嵌套,只考虑object嵌套\n * 4. 如果value为string类型,则清除左右空格\n * ```\n */\nexport const requestParamsInternalAdapter = (\n params: TPlainObject,\n options: {\n /** 移除值为空字符串字段 */\n removeEmptyValue?: boolean;\n } = {},\n): TPlainObject => {\n if (!params || typeof params !== 'object' || Array.isArray(params)) {\n return params;\n }\n\n const { removeEmptyValue = true } = options;\n const result: TPlainObject = {};\n\n for (const key in params) {\n /** 如果key不是对象的自有属性,则跳过 */\n if (!Object.prototype.hasOwnProperty.call(params, key)) {\n continue;\n }\n\n let value = params[key];\n if (typeof value === 'string') {\n value = trim(value, true);\n }\n // 删除以 `__#invalid_` 开头的key\n if (key.includes('__#invalid_')) {\n continue;\n }\n if (removeEmptyValue && (value === '' || value === null || value === undefined)) {\n continue;\n }\n\n // 处理嵌套对象\n if (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n result[key] = requestParamsInternalAdapter(value as TPlainObject, options);\n } else {\n result[key] = value;\n }\n }\n\n return result;\n};\n","import { isArray, isString, isUndefined } from '@dimjs/lang';\nimport { classNames, get } from '@dimjs/utils';\nimport { getUuid, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport {\n cloneElement,\n forwardRef,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { PaginationWrapper } from '../pagination-wrapper/pagination';\nimport { columnFoldCache, filterCache, firstQueryCache } from './cache';\nimport { EasyTableContext } from './context.js';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport './style.less';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\nimport { getFormFieldsValue, requestParamsInternalAdapter } from './utils';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n const removeRequestParamsEmptyValue =\n props.removeRequestParamsEmptyValue === undefined ? true : props.removeRequestParamsEmptyValue;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n\n const cacheKey = useMemo(() => {\n if (props.cacheKey) {\n try {\n const iframe = window.frameElement;\n const iframeId = iframe?.id || '';\n return `${props.cacheKey}_${iframeId}`;\n } catch (_error) {\n return props.cacheKey;\n }\n }\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return `${Date.now()}-${getUuid()}`;\n }, [props.cacheSwitch, props.cacheKey]);\n\n const cacheParams = filterCache.get(cacheKey);\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (cacheKey) {\n const columnFoldCacheValue = columnFoldCache.get(cacheKey);\n const cacheKeyList = isArray(columnFoldCacheValue)\n ? columnFoldCacheValue.filter((item) => isString(item))\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const paginationStatusRef = useRef(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const columnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n const outerForm = Form.useFormInstance();\n const [form] = Form.useForm(props.form || outerForm);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n if (props.breforeRequest) {\n try {\n await props.breforeRequest(form);\n } catch (_error) {\n return;\n }\n }\n firstQueryCache.set(cacheKey, false);\n const paramsAll = filterCache.set(cacheKey, params);\n setLoading(true);\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n\n let paramsNew = requestParamsInternalAdapter(paramsAll, {\n removeEmptyValue: removeRequestParamsEmptyValue,\n });\n\n paramsNew = requestParamsAdapter ? requestParamsAdapter(paramsNew, paramsAll) : paramsNew;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n if (dynamicColumsAdapter) {\n const dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);\n /** 不要添加默认值 */\n setDynamicColumns(dynamicColumns);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error: any) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = getPaginationStatus();\n const firstQueryFlag = firstQueryCache.get(cacheKey);\n form.setFieldsValue({\n ...props.initialValues,\n ...cacheParams,\n });\n if (initRequest || !firstQueryFlag) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...cacheParams,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n filterCache.set(cacheKey, props.initialValues || {});\n }\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef((values?: TPlainObject) => {\n filterCache.remove(cacheKey);\n form.resetFields();\n if (values) {\n filterCache.set(cacheKey, values);\n form.setFieldsValue(values);\n }\n });\n\n const updateQueryCondition = hooks.useCallbackRef((values: TPlainObject) => {\n filterCache.set(cacheKey, values);\n form.setFieldsValue(values);\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (getPaginationStatus()) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {\n [fieldNames.pageNo]: undefined,\n [fieldNames.pageSize]: undefined,\n };\n }\n };\n\n const onResetRequest = hooks.useCallbackRef((values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n filterCache.remove(cacheKey);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n const cacheParams = filterCache.get(cacheKey);\n if (!props.filterFormItemKeys?.length) {\n return cacheParams;\n }\n const params: TPlainObject = {\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n };\n props.filterFormItemKeys.forEach((item) => {\n params[item] = cacheParams[item];\n });\n return requestParamsInternalAdapter(params, {\n removeEmptyValue: removeRequestParamsEmptyValue,\n });\n });\n\n const onOpenColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(true);\n });\n\n const onCloseColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(false);\n });\n\n const getFilterRealTimeParams = hooks.useCallbackRef(() => {\n const formValues = form.getFieldsValue() || {};\n let params: TPlainObject = {\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n };\n if (props.filterFormItemKeys?.length) {\n props.filterFormItemKeys.forEach((item) => {\n params[item] = formValues[item];\n });\n } else {\n params = { ...formValues, ...params };\n }\n\n return requestParamsInternalAdapter(params, {\n removeEmptyValue: removeRequestParamsEmptyValue,\n });\n });\n\n const getEasyTableRef = (): EasyTableRefApi => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n updateQueryCondition,\n getRequestParams,\n getFilterRealTimeParams,\n onResetRequest,\n form,\n dataSource: respOriginalDataRef.current,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n getTableDataList: () => {\n return dataSource || [];\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = { [fieldNames.list]: dataList };\n props.onDataSourceChange?.(respOriginalDataRef.current);\n },\n columnFoldTriggerRender: (children, columns: TEasyTableTableColumn<TPlainObject>[]) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n\n const foldColumnList = columns.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as { dataIndex: string; title: string }[]}\n onChange={onChangeFoldColumnList}\n cacheKey={cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n {children}\n </FoldOperateDropdown>\n );\n },\n onChangeTableColumns: (columns) => {\n setDynamicColumns(columns);\n },\n getTableColumns: () => {\n return columnsRef.current;\n },\n loading,\n setEnabledInitRequest: () => {\n firstQueryCache.set(cacheKey, false);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n paginationStatusRef.current = status;\n };\n\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onSetColumns = (columns) => {\n columnsRef.current = columns;\n };\n const onFormFinish = () => {\n if (loading) {\n console.log('loading...');\n return;\n }\n const values = getFormFieldsValue(form, props.filterFormItemKeys);\n if (props.onFormFinish) {\n props.onFormFinish({\n ...values,\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n\n const filterFixedFt = screenType === 'xs' ? false : props.filterFixed;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': filterFixedFt,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = fbaHooks.useMemoCustom(() => {\n return {\n showSizeChanger: true,\n current: cacheParams[fieldNames.pageNo] || 1,\n pageSize: cacheParams[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, cacheParams, fieldNames.pageSize, cacheKey, pageSize, props.pagination, total]);\n\n const onChangeFoldColumnList = (keyList: string[]) => {\n setShowFoldKeyList(keyList);\n columnFoldConfig?.onChange?.(keyList);\n };\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n const params = {\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n };\n filterCache.set(cacheKey, params);\n void onInnerRequest(params);\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const getPaginationStatus = () => {\n return props.paginationFixed || paginationStatusRef.current;\n };\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (props.paginationFixed) {\n void onInnerRequest({\n [fieldNames.pageSize]: cacheParams[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n void onInnerRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }, [props.paginationFixed]);\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 wrapperStyle: CSSProperties = {\n overflowY: props.filterFixed || props.paginationFixed ? 'hidden' : 'auto',\n ...props.style,\n };\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n onSetColumns,\n getEasyTableRef,\n cacheKey,\n onRequest: onInnerRequest,\n tableDataSource: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n onSetPaginationStatus,\n getPaginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n columns: dynamicColumns,\n initialValues: props.initialValues,\n filterFormItemKeys: props.filterFormItemKeys,\n dynamicColumnsConfig: {\n showFoldKeyList,\n onChangeShowFoldKeyList: onChangeFoldColumnList,\n columnFoldConfig,\n onOpenColumnFoldModal,\n onCloseColumnFoldModal,\n columnFoldOpen,\n asyncColumnRequest,\n },\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={wrapperStyle}>\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={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, type FormInstance } from 'antd';\nimport { Children, useContext, useMemo, useState, type CSSProperties, type ReactElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout/layout.jsx';\nimport type { ButtonWrapperProps } from '../button-wrapper/button-wrapper.jsx';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport type { EasyFormProps } from '../easy-form/form.jsx';\nimport { EasyForm } from '../easy-form/form.jsx';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport type { FormOperateColProps } from '../form-grid/form-operate-col.jsx';\nimport type { FormRowProps } from '../form-grid/form-row.jsx';\nimport { FormGrid } from '../form-grid/index.js';\nimport { filterCache } from './cache.js';\nimport { EasyTableContext } from './context.js';\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<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, '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 * @deprecated已过期,使用 easyFormProps.className 配置\n */\n formClassName?: string;\n /**\n * @deprecated已过期,使用 easyFormProps.style 配置\n */\n formStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n easyFormProps?: Omit<\n EasyFormProps,\n 'isPure' | 'column' | 'forceColumn' | 'width' | 'gridGutter' | 'children'\n >;\n};\n\n/**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormGrid.Col span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormGrid.Col>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true\n * 8. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const screenType = fbaHooks.useResponsivePoint() || 'md';\n const ctx = useContext(EasyTableContext);\n const inheritForm = Form.useFormInstance();\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName = '',\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n easyFormProps,\n } = props;\n const {\n cacheKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\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 /** 是否支持回车事件 */\n const supportEnterEvent = useMemo(() => {\n if (ctx.filterFormItemKeys?.length || inheritForm) {\n return false;\n }\n return true;\n }, [ctx.filterFormItemKeys?.length, inheritForm]);\n\n const onReset = hooks.useCallbackRef(async () => {\n if (ctx.loading) {\n console.log('loading...');\n return;\n }\n filterCache.remove(cacheKey);\n form.resetFields();\n form.setFieldsValue(initialValues);\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n await form.validateFields(ctx.filterFormItemKeys);\n if (getPaginationStatus()) {\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 defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n htmlType={supportEnterEvent ? 'submit' : undefined}\n loadingPosition=\"center\"\n loading={ctx.loading}\n onClick={async () => {\n // 当前EasyTable嵌套在Form内部时,EasyForm 的 onFinish={onFormFinish}配置将失效\n if (inheritForm || ctx.filterFormItemKeys?.length) {\n await form.validateFields(ctx.filterFormItemKeys).then(() => {\n onFormFinish?.();\n });\n }\n }}\n {...queryButtonProps}\n style={{\n ...queryButtonProps?.style,\n cursor: ctx.loading ? 'not-allowed' : undefined,\n }}\n >\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"2\"\n onClick={onReset}\n {...resetButtonProps}\n style={{\n ...resetButtonProps?.style,\n cursor: ctx.loading ? 'not-allowed' : undefined,\n }}\n >\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\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\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(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n queryButtonProps,\n supportEnterEvent,\n ctx.loading,\n ctx.filterFormItemKeys,\n resetButtonProps,\n onReset,\n filterOperate,\n form,\n foldKeys,\n childrens,\n inheritForm,\n onFormFinish,\n rightOperateAreaAppendTypeFt,\n openFold,\n ]);\n\n const labelAlign = screenType === 'xs' ? 'left' : easyFormProps?.labelAlign || 'right';\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <EasyForm\n form={form}\n autoComplete=\"off\"\n onFinish={supportEnterEvent ? onFormFinish : undefined}\n // initialValues={initialValues}\n className={formClassName}\n style={props.formStyle}\n isPure={true}\n labelWidth=\"80\"\n formItemGap=\"15\"\n {...easyFormProps}\n labelAlign={labelAlign}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </EasyForm>\n </BlockLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n * @deprecated 已过时 @4.5.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Drawer, Table } from 'antd';\nimport { type ColumnsType } from 'antd/es/table';\nimport { type TableRowSelection } from 'antd/es/table/interface';\nimport { Fragment, useState, type CSSProperties } from 'react';\nimport { columnFoldCache } from './cache';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex?: string; title: string }[];\n onChange: (keys: string[]) => void;\n open?: boolean;\n onClose?: () => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n};\n\nexport const FoldOperate = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n const rowSelection = {\n type: 'checkbox',\n selectedRowKeys: selectedRowKeys,\n onChange: (selectedRowKeys: string[]) => {\n setSelectedRowKeys(selectedRowKeys);\n props.onChange(selectedRowKeys);\n if (props.cacheKey) {\n columnFoldCache.set(props.cacheKey, selectedRowKeys);\n }\n },\n } as TableRowSelection<TAny>;\n\n const columns: ColumnsType<TPlainObject> = [\n {\n title: '字段名称',\n dataIndex: 'title',\n render: (value, recrd) => {\n return recrd['_isFoldTitle'] || value;\n },\n },\n { title: '字段Key', dataIndex: 'dataIndex' },\n ];\n\n return (\n <Fragment>\n <Drawer\n title=\"选择字段\"\n open={props.open}\n onClose={props.onClose}\n width={'35%'}\n styles={{\n body: {\n padding: 15,\n },\n }}\n >\n <Table\n bordered\n size=\"small\"\n columns={columns}\n rowSelection={rowSelection}\n rowKey=\"dataIndex\"\n pagination={false}\n scroll={{ x: 'max-content' }}\n dataSource={props.dataList}\n />\n </Drawer>\n </Fragment>\n );\n};\n","import { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { useMemo } from 'react';\nimport { ButtonWrapper } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { IconWrapper } from '../../icon-wrapper';\nimport { SvgHttpView } from '../../svg-http-view';\nimport { TableTitleTooltip } from '../../table-title-tooltip';\nimport { TipsWrapper } from '../../tips-wrapper';\nimport { FoldOperateDropdown } from '../fold-operate-dropdown';\nimport { type EasyTableProps } from '../type';\n\nexport const useColumnsAppendTips = (props: { columns: TPlainObject[] }) => {\n return useMemo(() => {\n const tempList = props.columns\n .map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n })\n .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [props.columns]);\n};\n\nexport const useColumnsAppendInnerColumn = (props: {\n columns: TPlainObject[];\n cacheKey: string;\n showFoldKeyList: string[];\n columnFoldConfig?: EasyTableProps['columnFoldConfig'];\n onOpenColumnFoldModal: () => void;\n onChangeFoldColumnList: (keyList: string[]) => void;\n foldColumnList: TPlainObject[];\n}) => {\n const columnsNew = props.columns;\n return fbaHooks.useMemoCustom(() => {\n if (props.columnFoldConfig?.hidden) return columnsNew;\n const finalItem = columnsNew[columnsNew.length - 1];\n if (props.foldColumnList.length > 0 && columnsNew.length > 0) {\n const foldColumnTarget = columnsNew.find((item) => item['_isFoldColumn']);\n\n if (foldColumnTarget && finalItem.dataIndex !== foldColumnTarget.dataIndex) {\n foldColumnTarget.title = foldColumnTarget['_isFoldTitle'];\n foldColumnTarget['_isFoldColumn'] = false;\n }\n if (!finalItem['_isFoldColumn']) {\n finalItem['_isFoldTitle'] = finalItem['_isFoldTitle'] || finalItem.title;\n finalItem['_isFoldColumn'] = true;\n\n const triggerType = props.columnFoldConfig?.triggerType;\n\n finalItem.title = (\n <FlexLayout direction=\"horizontal\" fullIndex={0} style={{ alignItems: 'center' }}>\n <span>{finalItem.title}</span>\n <div style={{ padding: '0 5px 0 20px', display: 'flex' }}>\n {triggerType === 'drawer' ? (\n <IconWrapper\n onClick={props.onOpenColumnFoldModal}\n text={props.columnFoldConfig?.text}\n size=\"small\"\n icon={\n props.columnFoldConfig?.icon || (\n <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n )\n }\n hoverTips={props.columnFoldConfig?.hoverTipText || '字段列表'}\n style={{ padding: 0, margin: 0 }}\n />\n ) : (\n <FoldOperateDropdown\n dataList={props.foldColumnList as TAny[]}\n onChange={props.onChangeFoldColumnList}\n cacheKey={props.cacheKey}\n initSelectedRowKeys={props.showFoldKeyList}\n >\n <IconWrapper\n text={props.columnFoldConfig?.text}\n style={{ padding: 0, margin: 0 }}\n size=\"small\"\n icon={\n props.columnFoldConfig?.icon || (\n <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n )\n }\n />\n </FoldOperateDropdown>\n )}\n </div>\n </FlexLayout>\n );\n }\n }\n return columnsNew;\n }, [props.columns, props.columnFoldConfig]);\n};\n\nexport const useColumnsToHidden = (props: { columns: TPlainObject[]; showFoldKeyList: string[] }) => {\n return useMemo(() => {\n const tempList = props.columns\n .map((item) => {\n const { hidden, isFold } = item;\n if (hidden) return null;\n if (isFold && !props.showFoldKeyList.includes(item.dataIndex as string)) return null;\n return item;\n })\n .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [props.columns, props.showFoldKeyList]);\n};\n\nexport const useColumnByAsyncColumnRequest = (props: {\n columns: TPlainObject[];\n asyncColumnRequestResult: TPlainObject;\n}) => {\n return useMemo(() => {\n if (!Object.keys(props.asyncColumnRequestResult)) return props.columns;\n return props.columns.map((item: TAny) => {\n const dataIndex = item.dataIndex as string;\n const result = props.asyncColumnRequestResult[dataIndex];\n if (dataIndex && result) {\n if (result.loading) {\n item.render = (value) => {\n return (\n <ButtonWrapper loading type=\"text\" loadingPosition=\"center\" removeGap>\n {value}\n </ButtonWrapper>\n );\n };\n } else if (item.asyncRender) {\n item.render = (value, record, index) => {\n return item.asyncRender?.(value, record, index, result.respData);\n };\n }\n }\n return item;\n });\n }, [props.columns, props.asyncColumnRequestResult]);\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Space, Table, type TableProps } from 'antd';\nimport {\n Fragment,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { BlockLayout } from '../block-layout/layout.jsx';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { FlexLayout } from '../flex-layout/flex-layout.jsx';\nimport { TableScrollbar } from '../table-scrollbar/table-scrollbar.jsx';\nimport { filterCache } from './cache.js';\nimport { EasyTableContext } from './context.js';\nimport { FoldOperate } from './fold-operate.jsx';\nimport {\n useColumnByAsyncColumnRequest,\n useColumnsAppendInnerColumn,\n useColumnsAppendTips,\n useColumnsToHidden,\n} from './hooks/columns.jsx';\nimport { type TEasyTableTableColumn } from './type.js';\n\nconst TitleRender = (props: {\n /** 标题 */\n title?: ReactNode;\n /** 动作 */\n actions?: ReactElement[];\n}) => {\n if (!props.title && !props.actions?.length) {\n return null;\n }\n return (\n <FlexLayout fullIndex={0} direction=\"horizontal\" style={{ marginBottom: 10, alignItems: 'center' }}>\n {props.title ? <div style={{ fontWeight: 400, fontSize: 16 }}>{props.title}</div> : null}\n <Space size={10}>{props.actions}</Space>\n </FlexLayout>\n );\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns' | 'title'\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 /**\n * ```\n * 1. 当配置了 EasyTable.serviceConfig.dynamicColumsAdapter 后,columns配置只在初始化有效,再次修改无效\n * 2. 可通过 EasyTableRef.onChangeTableColumns 实现 columns 的指定修改\n * ```\n */\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @version 4.4.6\n * ```\n * 1. true:获取数据后再初始化渲染表格(可用于实现表格中defaultXxxx相关功能的使用)\n * ```\n */\n isSync?: boolean;\n /**\n * 空效果显示尺寸,默认值:small\n * @version 4.4.6\n */\n emptyShowSize?: 'small' | 'large';\n /** 标题 */\n title?: ReactNode;\n /** 与标题对齐的动作 */\n actions?: ReactElement[];\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 ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, isSync, title, actions, ...otherProps } = props;\n const screenType = fbaHooks.useResponsivePoint() || '';\n const asyncColumnRequestResultRef = useRef<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n const [asyncColumnRequestResult, setAsyncColumnRequestResult] = useState<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n\n const {\n columnFoldConfig,\n onCloseColumnFoldModal,\n columnFoldOpen,\n onOpenColumnFoldModal,\n asyncColumnRequest,\n showFoldKeyList,\n onChangeShowFoldKeyList,\n } = ctx.dynamicColumnsConfig;\n\n const {\n cacheKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n\n const cacheParams = filterCache.get(cacheKey);\n\n fbaHooks.useEffectCustom(() => {\n /** 获取初始化 columns 数据 */\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, []);\n\n useEffect(() => {\n if (asyncColumnRequest?.length) {\n for (let index = 0; index < asyncColumnRequest.length; index++) {\n const element = asyncColumnRequest[index];\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: true },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n element\n .onRequest()\n .then((respData) => {\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false, respData },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n })\n .catch((error) => {\n console.error(error?.message);\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n });\n }\n }\n }, [asyncColumnRequest]);\n\n const columnsOriginal = fbaHooks.useMemoCustom(() => {\n if (ctx.columns) {\n ctx.onSetColumns(ctx.columns);\n return ctx.columns as TEasyTableTableColumn<T>[];\n } else {\n ctx.onSetColumns(props.columns as TEasyTableTableColumn<TPlainObject>[]);\n return props.columns;\n }\n }, [ctx.columns, props.columns]);\n\n let columnsNew = useColumnsAppendTips({\n columns: [...columnsOriginal],\n });\n\n const foldColumnList = columnsOriginal.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n columnsNew = useColumnsAppendInnerColumn({\n cacheKey,\n columns: columnsNew,\n foldColumnList,\n showFoldKeyList,\n columnFoldConfig,\n onOpenColumnFoldModal,\n onChangeFoldColumnList: onChangeShowFoldKeyList,\n });\n\n columnsNew = useColumnsToHidden({\n columns: columnsNew,\n showFoldKeyList,\n });\n\n columnsNew = useColumnByAsyncColumnRequest({\n columns: columnsNew,\n asyncColumnRequestResult,\n });\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(pagination !== false);\n }, [pagination]);\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (!paginationFixed) {\n if (pagination !== false) {\n onRequest({\n [fieldNames.pageSize]: cacheParams[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n onRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }\n }, [pagination]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: cacheParams[fieldNames.pageNo] || 1,\n pageSize: cacheParams[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n // selectComponentClass: SmallSelect,\n };\n }, [\n cacheParams,\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\n [fieldNames.pageSize]: pagination.pageSize,\n [fieldNames.pageNo]: pagination.current,\n });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (!tableDataSource) return undefined;\n if (tableDataSource.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableDataSource[0][rowKey])) {\n return tableDataSource.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableDataSource;\n }, [tableDataSource, rowKey]);\n\n columnsNew = useMemo(() => {\n return columnsNew.map((item) => {\n if (!!item.fixed && screenType === 'xs') {\n item.fixed = undefined;\n }\n if (!!item.defaultValue && !item.render) {\n item.render = (value) => {\n return isUndefinedOrNull(value) || value == '' ? item.defaultValue : value;\n };\n }\n return item;\n });\n }, [columnsNew, screenType]);\n\n const tableRender = () => {\n if (isSync && !dataSource) {\n return (\n <Fragment>\n <TitleRender title={title} actions={actions} />\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n rowKey={rowKey as TAny}\n columns={columnsNew}\n loading={loading}\n />\n </Fragment>\n );\n }\n if (isMacEnv()) {\n return (\n <Fragment>\n <TitleRender title={title} actions={actions} />\n {children}\n <Table\n key=\"2\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columnsNew}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </Fragment>\n );\n }\n return (\n <Fragment>\n <TitleRender title={title} actions={actions} />\n {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columnsNew}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n </Fragment>\n );\n };\n\n return (\n <BlockLayout\n className={classNames(\n 'easy-table-table',\n { 'ett-empty-show-small': props.emptyShowSize === 'small' },\n props.tableWrapperClassName,\n )}\n style={props.tableWrapperStyle}\n >\n {tableRender()}\n\n <FoldOperate\n dataList={foldColumnList as TAny[]}\n onClose={onCloseColumnFoldModal}\n open={columnFoldOpen}\n onChange={onChangeShowFoldKeyList}\n cacheKey={cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n />\n </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { firstQueryCache } from './cache';\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 * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n *\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true;如果存在多个EasyTable缓存情况可设置cacheSwitch为自定义字符串\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 * 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)\n * 12. 通过asyncColumnRequest、asyncRender配合使用可实现表格列数据接口渲染(demo:https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table)\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormGrid.Col span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormGrid.Col>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\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 * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n * 8. 通过easyFormProps属性可整体控制子节点FormItem布局\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 * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n /** 设置启用初始化请求 */\n setEnabledInitRequest: (cacheKey: string) => {\n firstQueryCache.set(cacheKey, false);\n },\n});\n"],"names":["filterCache","set","cacheKey","filterCondition","value","get","mergeParams","_extends","sessionStorageCache","_isObject","remove","firstQueryCache","flag","_sessionStorageCache$","columnFoldCache","localStorageCache","_localStorageCache$ge","_isArray","EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperateDropdown","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","onChange","keys","content","_jsx","Fragment","children","Checkbox","Group","defaultValue","style","display","flexDirection","dataList","map","item","label","title","dataIndex","padding","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","getFormFieldsValue","form","filterFormItemKeys","formValues","getFieldsValue","values","forEach","requestParamsInternalAdapter","params","options","Array","isArray","_options","_options$removeEmptyV","removeEmptyValue","result","key","Object","prototype","hasOwnProperty","call","trim","includes","undefined","EasyTable","forwardRef","ref","_props$initialPaginat","screenType","fbaHooks","useResponsivePoint","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","columnFoldConfig","asyncColumnRequest","removeRequestParamsEmptyValue","_useState4","columnFoldOpen","setColumnFoldOpen","useMemo","iframe","window","frameElement","iframeId","id","_error","cacheSwitch","location","pathname","Date","now","getUuid","cacheParams","_useState5","columnFoldCacheValue","cacheKeyList","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","pageSize","initialPaginationParams","initRequest","paginationStatusRef","useRef","respOriginalDataRef","baseColumnsRef","_useState6","dynamicColumns","setDynamicColumns","columnsRef","fieldNames","list","pageNo","outerForm","Form","useFormInstance","_Form$useForm","useForm","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","paramsAll","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","respData","respDataNew","_dynamicColumns","respList","$Try_2_Post","$boundEx","$Try_2_Catch","error","onRequestErrorHandle","message","breforeRequest","$Try_3_Post","$If_4","this","bind","$Try_3_Catch","resolve","then","$await_5","serviceConfig","$await_6","current","onDataSourceChange","_get","useEffectCustom","hasPagination","getPaginationStatus","firstQueryFlag","setFieldsValue","initialValues","_extends2","clearQueryCondition","resetFields","updateQueryCondition","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","getRequestParams","_props$filterFormItem","onOpenColumnFoldModal","onCloseColumnFoldModal","getFilterRealTimeParams","_props$filterFormItem2","getDataSource","onFilterDataSource","filterDataSource","getTableDataList","onClearDataSource","onUpdateDataSource","_respOriginalDataRef$","columnFoldTriggerRender","columns","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","hidden","isFold","onChangeFoldColumnList","onChangeTableColumns","getTableColumns","setEnabledInitRequest","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onSetColumns","onFormFinish","console","log","isFull","_isUndefined","filterFixedFt","filterFixed","className","_classNames","paginationFixed","paginationData","useMemoCustom","showSizeChanger","showTotal","pagination","keyList","page","_params","_props$pagination","useUpdateEffect","_onInnerRequest","_onInnerRequest2","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","dynamicColumnsConfig","onChangeShowFoldKeyList","_jsxs","PaginationWrapper","size","EasyTableFilter","_ctx$filterFormItemKe2","ctx","useContext","inheritForm","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","supportEnterEvent","_ctx$filterFormItemKe","onReset","validateFields","$await_3","$If_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","loadingPosition","_ctx$filterFormItemKe3","$await_4","$If_2","cursor","text","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","index","find","keyItem","FormGrid","Col","OperateCol","labelAlign","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","FoldOperate","rowSelection","render","recrd","Drawer","open","onClose","width","styles","body","Table","bordered","rowKey","scroll","x","useColumnsAppendTips","tempList","tooltip","tipsWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","TipsWrapper","tipType","popoverProps","TableTitleTooltip","useColumnsAppendInnerColumn","columnsNew","finalItem","foldColumnTarget","_props$columnFoldConf2","_props$columnFoldConf3","_props$columnFoldConf4","_props$columnFoldConf5","_props$columnFoldConf6","_props$columnFoldConf7","FlexLayout","direction","fullIndex","alignItems","IconWrapper","icon","SvgHttpView","svgPath","color","hoverTips","hoverTipText","margin","useColumnsToHidden","useColumnByAsyncColumnRequest","asyncColumnRequestResult","removeGap","asyncRender","record","TitleRender","_props$actions","actions","marginBottom","fontWeight","Space","EasyTableTable","isSync","asyncColumnRequestResultRef","setAsyncColumnRequestResult","_ctx$dynamicColumnsCo","useEffect","_loop","element","_extends3","catch","_extends4","columnsOriginal","_onRequest","_onRequest2","tablePaginationData","onChangePage","filters","sorter","extra","action","_onRequest3","isUndefinedOrNull","fixed","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/cache.ts","@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@flatbiz/antd/src/easy-table/utils.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/fold-operate.tsx","@flatbiz/antd/src/easy-table/hooks/columns.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { isArray, isObject } from '@dimjs/lang';\nimport { localStorageCache, sessionStorageCache, TPlainObject } from '@flatbiz/utils';\n\nexport const filterCache = {\n set: (cacheKey: string, filterCondition: TPlainObject) => {\n const value = filterCache.get(cacheKey);\n const mergeParams = {\n ...value,\n ...filterCondition,\n };\n sessionStorageCache.set(`easy_tab_filter_${cacheKey}`, mergeParams);\n return mergeParams as TPlainObject;\n },\n get: (cacheKey: string) => {\n const value = sessionStorageCache.get(`easy_tab_filter_${cacheKey}`) as TPlainObject;\n return isObject(value) ? value : {};\n },\n remove: (cacheKey: string) => {\n sessionStorageCache.remove(`easy_tab_filter_${cacheKey}`);\n },\n};\n\nexport const firstQueryCache = {\n set: (cacheKey: string, flag: boolean) => {\n sessionStorageCache.set(`easy_tab_firstQuery_${cacheKey}`, { value: flag });\n },\n get: (cacheKey: string) => {\n const value = sessionStorageCache.get(`easy_tab_firstQuery_${cacheKey}`)?.value;\n return value === false ? false : true;\n },\n remove: (cacheKey: string) => {\n sessionStorageCache.remove(`easy_tab_firstQuery_${cacheKey}`);\n },\n};\n\nexport const columnFoldCache = {\n set: (cacheKey: string, value: string[]) => {\n localStorageCache.set(`easy_tab_columnFold_${cacheKey}`, { value });\n },\n get: (cacheKey: string) => {\n const value = localStorageCache.get(`easy_tab_columnFold_${cacheKey}`)?.value;\n return isArray(value) ? (value as string[]) : [];\n },\n remove: (cacheKey: string) => {\n localStorageCache.remove(`easy_tab_columnFold_${cacheKey}`);\n },\n};\n","import { noop, type TPlainObject } from '@flatbiz/utils';\nimport { type FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\n\nexport type EditableFieldContextContextApi = {\n cacheKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableDataSource?: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initialValues?: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n getPaginationStatus: () => boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n onSetColumns: (columns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n columns?: TEasyTableTableColumn<TPlainObject>[];\n dynamicColumnsConfig: {\n showFoldKeyList: string[];\n onChangeShowFoldKeyList: (keys: string[]) => void;\n columnFoldOpen: boolean;\n columnFoldConfig?: EasyTableProps['columnFoldConfig'];\n onOpenColumnFoldModal: () => void;\n onCloseColumnFoldModal: () => void;\n asyncColumnRequest?: EasyTableProps['asyncColumnRequest'];\n };\n filterFormItemKeys?: string[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { Checkbox, Popover } from 'antd';\nimport { Fragment, useState, type CSSProperties, type ReactElement } from 'react';\nimport { columnFoldCache } from './cache';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex: string; title: string }[];\n onChange: (keys: string[]) => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n children?: ReactElement;\n};\n\nexport const FoldOperateDropdown = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n\n const onChange = (keys) => {\n setSelectedRowKeys(keys);\n props.onChange(keys);\n if (props.cacheKey) {\n columnFoldCache.set(props.cacheKey, keys);\n }\n };\n const content = (\n <Fragment>\n <Checkbox.Group\n defaultValue={selectedRowKeys}\n onChange={onChange}\n value={selectedRowKeys}\n style={{ display: 'flex', flexDirection: 'column' }}\n >\n {props.dataList.map((item) => {\n const label = item['_isFoldTitle'] || item.title;\n return (\n <Checkbox value={item.dataIndex} key={item.dataIndex} style={{ padding: '0 0 5px 0' }}>\n {label}\n </Checkbox>\n );\n })}\n </Checkbox.Group>\n </Fragment>\n );\n\n const onChangeAll = (e) => {\n if (e.target.checked) {\n onChange(props.dataList.map((item) => item.dataIndex));\n } else {\n onChange([]);\n }\n };\n\n return (\n <Popover\n content={content}\n title={\n <Checkbox checked={selectedRowKeys.length === props.dataList.length} onChange={onChangeAll}>\n 全选(字段列表)\n </Checkbox>\n }\n placement=\"bottomRight\"\n overlayClassName=\"fold-operate-popiver\"\n >\n {props.children}\n </Popover>\n );\n};\n","import { trim, type TPlainObject } from '@flatbiz/utils';\nimport type { FormInstance } from 'antd';\n\nexport const getFormFieldsValue = (form: FormInstance, filterFormItemKeys?: string[]) => {\n const formValues = (form.getFieldsValue() || {}) as TPlainObject;\n if (!filterFormItemKeys?.length) {\n return formValues;\n }\n const values: TPlainObject = {};\n\n filterFormItemKeys.forEach((item) => {\n values[item] = formValues[item];\n });\n return values;\n};\n\n/**\n * 请求参数内部转换处理\n * ```\n * 1. 对象中值为空字符串、null、undefined 的key值,直接删除\n * 2. 对象中以`__#invalid_xxxx`开头的key值,直接删除\n * 3. 注意params可能会有嵌套,只考虑object嵌套\n * 4. 如果value为string类型,则清除左右空格\n * ```\n */\nexport const requestParamsInternalAdapter = (\n params: TPlainObject,\n options: {\n /** 移除值为空字符串字段 */\n removeEmptyValue?: boolean;\n } = {},\n): TPlainObject => {\n if (!params || typeof params !== 'object' || Array.isArray(params)) {\n return params;\n }\n\n const { removeEmptyValue = true } = options;\n const result: TPlainObject = {};\n\n for (const key in params) {\n /** 如果key不是对象的自有属性,则跳过 */\n if (!Object.prototype.hasOwnProperty.call(params, key)) {\n continue;\n }\n\n let value = params[key];\n if (typeof value === 'string') {\n value = trim(value, true);\n }\n // 删除以 `__#invalid_` 开头的key\n if (key.includes('__#invalid_')) {\n continue;\n }\n if (removeEmptyValue && (value === '' || value === null || value === undefined)) {\n continue;\n }\n\n // 处理嵌套对象\n if (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n result[key] = requestParamsInternalAdapter(value as TPlainObject, options);\n } else {\n result[key] = value;\n }\n }\n\n return result;\n};\n","import { isArray, isString, isUndefined } from '@dimjs/lang';\nimport { classNames, get } from '@dimjs/utils';\nimport { getUuid, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport {\n cloneElement,\n forwardRef,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { PaginationWrapper } from '../pagination-wrapper/pagination';\nimport { columnFoldCache, filterCache, firstQueryCache } from './cache';\nimport { EasyTableContext } from './context.js';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport './style.less';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\nimport { getFormFieldsValue, requestParamsInternalAdapter } from './utils';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n const removeRequestParamsEmptyValue =\n props.removeRequestParamsEmptyValue === undefined ? true : props.removeRequestParamsEmptyValue;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n\n const cacheKey = useMemo(() => {\n if (props.cacheKey) {\n try {\n const iframe = window.frameElement;\n const iframeId = iframe?.id || '';\n return `${props.cacheKey}_${iframeId}`;\n } catch (_error) {\n return props.cacheKey;\n }\n }\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return `${Date.now()}-${getUuid()}`;\n }, [props.cacheSwitch, props.cacheKey]);\n\n const cacheParams = filterCache.get(cacheKey);\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (cacheKey) {\n const columnFoldCacheValue = columnFoldCache.get(cacheKey);\n const cacheKeyList = isArray(columnFoldCacheValue)\n ? columnFoldCacheValue.filter((item) => isString(item))\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const paginationStatusRef = useRef(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const columnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n const outerForm = Form.useFormInstance();\n const [form] = Form.useForm(props.form || outerForm);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n if (props.breforeRequest) {\n try {\n await props.breforeRequest(form);\n } catch (_error) {\n return;\n }\n }\n firstQueryCache.set(cacheKey, false);\n const paramsAll = filterCache.set(cacheKey, params);\n setLoading(true);\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n\n let paramsNew = requestParamsInternalAdapter(paramsAll, {\n removeEmptyValue: removeRequestParamsEmptyValue,\n });\n\n paramsNew = requestParamsAdapter ? requestParamsAdapter(paramsNew, paramsAll) : paramsNew;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n if (dynamicColumsAdapter) {\n const dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);\n /** 不要添加默认值 */\n setDynamicColumns(dynamicColumns);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error: any) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = getPaginationStatus();\n const firstQueryFlag = firstQueryCache.get(cacheKey);\n form.setFieldsValue({\n ...props.initialValues,\n ...cacheParams,\n });\n if (initRequest || !firstQueryFlag) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...cacheParams,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n filterCache.set(cacheKey, props.initialValues || {});\n }\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef((values?: TPlainObject) => {\n filterCache.remove(cacheKey);\n form.resetFields();\n if (values) {\n filterCache.set(cacheKey, values);\n form.setFieldsValue(values);\n }\n });\n\n const updateQueryCondition = hooks.useCallbackRef((values: TPlainObject) => {\n filterCache.set(cacheKey, values);\n form.setFieldsValue(values);\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (getPaginationStatus()) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {\n [fieldNames.pageNo]: undefined,\n [fieldNames.pageSize]: undefined,\n };\n }\n };\n\n const onResetRequest = hooks.useCallbackRef((values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n filterCache.remove(cacheKey);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n const cacheParams = filterCache.get(cacheKey);\n const parameAll = {\n ...cacheParams,\n ...form.getFieldsValue(),\n };\n let params: TPlainObject = {\n ...getPaginationData(1, parameAll[fieldNames.pageSize]),\n };\n if (props.filterFormItemKeys?.length) {\n props.filterFormItemKeys.forEach((item) => {\n params[item] = parameAll[item];\n });\n } else {\n params = { ...parameAll, ...params };\n }\n\n return requestParamsInternalAdapter(params, {\n removeEmptyValue: removeRequestParamsEmptyValue,\n });\n });\n\n const onOpenColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(true);\n });\n\n const onCloseColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(false);\n });\n\n const getSubmitParams = hooks.useCallbackRef(() => {\n const cacheParams = filterCache.get(cacheKey);\n let params: TPlainObject = {\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n };\n if (props.filterFormItemKeys?.length) {\n props.filterFormItemKeys.forEach((item) => {\n params[item] = cacheParams[item];\n });\n } else {\n params = { ...cacheParams, ...params };\n }\n\n return requestParamsInternalAdapter(params, {\n removeEmptyValue: removeRequestParamsEmptyValue,\n });\n });\n\n const getEasyTableRef = (): EasyTableRefApi => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n updateQueryCondition,\n getRequestParams,\n getSubmitParams,\n onResetRequest,\n form,\n dataSource: respOriginalDataRef.current,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n getTableDataList: () => {\n return dataSource || [];\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = { [fieldNames.list]: dataList };\n props.onDataSourceChange?.(respOriginalDataRef.current);\n },\n columnFoldTriggerRender: (children, columns: TEasyTableTableColumn<TPlainObject>[]) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n\n const foldColumnList = columns.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as { dataIndex: string; title: string }[]}\n onChange={onChangeFoldColumnList}\n cacheKey={cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n {children}\n </FoldOperateDropdown>\n );\n },\n onChangeTableColumns: (columns) => {\n setDynamicColumns(columns);\n },\n getTableColumns: () => {\n return columnsRef.current;\n },\n loading,\n setEnabledInitRequest: () => {\n firstQueryCache.set(cacheKey, false);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n paginationStatusRef.current = status;\n };\n\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onSetColumns = (columns) => {\n columnsRef.current = columns;\n };\n const onFormFinish = () => {\n if (loading) {\n console.log('loading...');\n return;\n }\n const values = getFormFieldsValue(form, props.filterFormItemKeys);\n if (props.onFormFinish) {\n props.onFormFinish({\n ...values,\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n\n const filterFixedFt = screenType === 'xs' ? false : props.filterFixed;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': filterFixedFt,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = fbaHooks.useMemoCustom(() => {\n return {\n showSizeChanger: true,\n current: cacheParams[fieldNames.pageNo] || 1,\n pageSize: cacheParams[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, cacheParams, fieldNames.pageSize, cacheKey, pageSize, props.pagination, total]);\n\n const onChangeFoldColumnList = (keyList: string[]) => {\n setShowFoldKeyList(keyList);\n columnFoldConfig?.onChange?.(keyList);\n };\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n const params = {\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n };\n filterCache.set(cacheKey, params);\n void onInnerRequest(params);\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const getPaginationStatus = () => {\n return props.paginationFixed || paginationStatusRef.current;\n };\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (props.paginationFixed) {\n void onInnerRequest({\n [fieldNames.pageSize]: cacheParams[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n void onInnerRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }, [props.paginationFixed]);\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 wrapperStyle: CSSProperties = {\n overflowY: props.filterFixed || props.paginationFixed ? 'hidden' : 'auto',\n ...props.style,\n };\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n onSetColumns,\n getEasyTableRef,\n cacheKey,\n onRequest: onInnerRequest,\n tableDataSource: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n onSetPaginationStatus,\n getPaginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n columns: dynamicColumns,\n initialValues: props.initialValues,\n filterFormItemKeys: props.filterFormItemKeys,\n dynamicColumnsConfig: {\n showFoldKeyList,\n onChangeShowFoldKeyList: onChangeFoldColumnList,\n columnFoldConfig,\n onOpenColumnFoldModal,\n onCloseColumnFoldModal,\n columnFoldOpen,\n asyncColumnRequest,\n },\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={wrapperStyle}>\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={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, type FormInstance } from 'antd';\nimport { Children, useContext, useMemo, useState, type CSSProperties, type ReactElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout/layout.jsx';\nimport type { ButtonWrapperProps } from '../button-wrapper/button-wrapper.jsx';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport type { EasyFormProps } from '../easy-form/form.jsx';\nimport { EasyForm } from '../easy-form/form.jsx';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport type { FormOperateColProps } from '../form-grid/form-operate-col.jsx';\nimport type { FormRowProps } from '../form-grid/form-row.jsx';\nimport { FormGrid } from '../form-grid/index.js';\nimport { filterCache } from './cache.js';\nimport { EasyTableContext } from './context.js';\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<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, '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 * @deprecated已过期,使用 easyFormProps.className 配置\n */\n formClassName?: string;\n /**\n * @deprecated已过期,使用 easyFormProps.style 配置\n */\n formStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n easyFormProps?: Omit<\n EasyFormProps,\n 'isPure' | 'column' | 'forceColumn' | 'width' | 'gridGutter' | 'children'\n >;\n};\n\n/**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormGrid.Col span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormGrid.Col>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true\n * 8. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const screenType = fbaHooks.useResponsivePoint() || 'md';\n const ctx = useContext(EasyTableContext);\n const inheritForm = Form.useFormInstance();\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName = '',\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n easyFormProps,\n } = props;\n const {\n cacheKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\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 /** 是否支持回车事件 */\n const supportEnterEvent = useMemo(() => {\n if (ctx.filterFormItemKeys?.length || inheritForm) {\n return false;\n }\n return true;\n }, [ctx.filterFormItemKeys?.length, inheritForm]);\n\n const onReset = hooks.useCallbackRef(async () => {\n if (ctx.loading) {\n console.log('loading...');\n return;\n }\n filterCache.remove(cacheKey);\n form.resetFields();\n form.setFieldsValue(initialValues);\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n await form.validateFields(ctx.filterFormItemKeys);\n if (getPaginationStatus()) {\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 defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n htmlType={supportEnterEvent ? 'submit' : undefined}\n loadingPosition=\"center\"\n loading={ctx.loading}\n onClick={async () => {\n // 当前EasyTable嵌套在Form内部时,EasyForm 的 onFinish={onFormFinish}配置将失效\n if (inheritForm || ctx.filterFormItemKeys?.length) {\n await form.validateFields(ctx.filterFormItemKeys).then(() => {\n onFormFinish?.();\n });\n }\n }}\n {...queryButtonProps}\n style={{\n ...queryButtonProps?.style,\n cursor: ctx.loading ? 'not-allowed' : undefined,\n }}\n >\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"2\"\n onClick={onReset}\n {...resetButtonProps}\n style={{\n ...resetButtonProps?.style,\n cursor: ctx.loading ? 'not-allowed' : undefined,\n }}\n >\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\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\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(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n queryButtonProps,\n supportEnterEvent,\n ctx.loading,\n ctx.filterFormItemKeys,\n resetButtonProps,\n onReset,\n filterOperate,\n form,\n foldKeys,\n childrens,\n inheritForm,\n onFormFinish,\n rightOperateAreaAppendTypeFt,\n openFold,\n ]);\n\n const labelAlign = screenType === 'xs' ? 'left' : easyFormProps?.labelAlign || 'right';\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <EasyForm\n form={form}\n autoComplete=\"off\"\n onFinish={supportEnterEvent ? onFormFinish : undefined}\n // initialValues={initialValues}\n className={formClassName}\n style={props.formStyle}\n isPure={true}\n labelWidth=\"80\"\n formItemGap=\"15\"\n {...easyFormProps}\n labelAlign={labelAlign}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </EasyForm>\n </BlockLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n * @deprecated 已过时 @4.5.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Drawer, Table } from 'antd';\nimport { type ColumnsType } from 'antd/es/table';\nimport { type TableRowSelection } from 'antd/es/table/interface';\nimport { Fragment, useState, type CSSProperties } from 'react';\nimport { columnFoldCache } from './cache';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex?: string; title: string }[];\n onChange: (keys: string[]) => void;\n open?: boolean;\n onClose?: () => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n};\n\nexport const FoldOperate = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n const rowSelection = {\n type: 'checkbox',\n selectedRowKeys: selectedRowKeys,\n onChange: (selectedRowKeys: string[]) => {\n setSelectedRowKeys(selectedRowKeys);\n props.onChange(selectedRowKeys);\n if (props.cacheKey) {\n columnFoldCache.set(props.cacheKey, selectedRowKeys);\n }\n },\n } as TableRowSelection<TAny>;\n\n const columns: ColumnsType<TPlainObject> = [\n {\n title: '字段名称',\n dataIndex: 'title',\n render: (value, recrd) => {\n return recrd['_isFoldTitle'] || value;\n },\n },\n { title: '字段Key', dataIndex: 'dataIndex' },\n ];\n\n return (\n <Fragment>\n <Drawer\n title=\"选择字段\"\n open={props.open}\n onClose={props.onClose}\n width={'35%'}\n styles={{\n body: {\n padding: 15,\n },\n }}\n >\n <Table\n bordered\n size=\"small\"\n columns={columns}\n rowSelection={rowSelection}\n rowKey=\"dataIndex\"\n pagination={false}\n scroll={{ x: 'max-content' }}\n dataSource={props.dataList}\n />\n </Drawer>\n </Fragment>\n );\n};\n","import { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { useMemo } from 'react';\nimport { ButtonWrapper } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { IconWrapper } from '../../icon-wrapper';\nimport { SvgHttpView } from '../../svg-http-view';\nimport { TableTitleTooltip } from '../../table-title-tooltip';\nimport { TipsWrapper } from '../../tips-wrapper';\nimport { FoldOperateDropdown } from '../fold-operate-dropdown';\nimport { type EasyTableProps } from '../type';\n\nexport const useColumnsAppendTips = (props: { columns: TPlainObject[] }) => {\n return useMemo(() => {\n const tempList = props.columns\n .map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n })\n .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [props.columns]);\n};\n\nexport const useColumnsAppendInnerColumn = (props: {\n columns: TPlainObject[];\n cacheKey: string;\n showFoldKeyList: string[];\n columnFoldConfig?: EasyTableProps['columnFoldConfig'];\n onOpenColumnFoldModal: () => void;\n onChangeFoldColumnList: (keyList: string[]) => void;\n foldColumnList: TPlainObject[];\n}) => {\n const columnsNew = props.columns;\n return fbaHooks.useMemoCustom(() => {\n if (props.columnFoldConfig?.hidden) return columnsNew;\n const finalItem = columnsNew[columnsNew.length - 1];\n if (props.foldColumnList.length > 0 && columnsNew.length > 0) {\n const foldColumnTarget = columnsNew.find((item) => item['_isFoldColumn']);\n\n if (foldColumnTarget && finalItem.dataIndex !== foldColumnTarget.dataIndex) {\n foldColumnTarget.title = foldColumnTarget['_isFoldTitle'];\n foldColumnTarget['_isFoldColumn'] = false;\n }\n if (!finalItem['_isFoldColumn']) {\n finalItem['_isFoldTitle'] = finalItem['_isFoldTitle'] || finalItem.title;\n finalItem['_isFoldColumn'] = true;\n\n const triggerType = props.columnFoldConfig?.triggerType;\n\n finalItem.title = (\n <FlexLayout direction=\"horizontal\" fullIndex={0} style={{ alignItems: 'center' }}>\n <span>{finalItem.title}</span>\n <div style={{ padding: '0 5px 0 20px', display: 'flex' }}>\n {triggerType === 'drawer' ? (\n <IconWrapper\n onClick={props.onOpenColumnFoldModal}\n text={props.columnFoldConfig?.text}\n size=\"small\"\n icon={\n props.columnFoldConfig?.icon || (\n <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n )\n }\n hoverTips={props.columnFoldConfig?.hoverTipText || '字段列表'}\n style={{ padding: 0, margin: 0 }}\n />\n ) : (\n <FoldOperateDropdown\n dataList={props.foldColumnList as TAny[]}\n onChange={props.onChangeFoldColumnList}\n cacheKey={props.cacheKey}\n initSelectedRowKeys={props.showFoldKeyList}\n >\n <IconWrapper\n text={props.columnFoldConfig?.text}\n style={{ padding: 0, margin: 0 }}\n size=\"small\"\n icon={\n props.columnFoldConfig?.icon || (\n <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n )\n }\n />\n </FoldOperateDropdown>\n )}\n </div>\n </FlexLayout>\n );\n }\n }\n return columnsNew;\n }, [props.columns, props.columnFoldConfig]);\n};\n\nexport const useColumnsToHidden = (props: { columns: TPlainObject[]; showFoldKeyList: string[] }) => {\n return useMemo(() => {\n const tempList = props.columns\n .map((item) => {\n const { hidden, isFold } = item;\n if (hidden) return null;\n if (isFold && !props.showFoldKeyList.includes(item.dataIndex as string)) return null;\n return item;\n })\n .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [props.columns, props.showFoldKeyList]);\n};\n\nexport const useColumnByAsyncColumnRequest = (props: {\n columns: TPlainObject[];\n asyncColumnRequestResult: TPlainObject;\n}) => {\n return useMemo(() => {\n if (!Object.keys(props.asyncColumnRequestResult)) return props.columns;\n return props.columns.map((item: TAny) => {\n const dataIndex = item.dataIndex as string;\n const result = props.asyncColumnRequestResult[dataIndex];\n if (dataIndex && result) {\n if (result.loading) {\n item.render = (value) => {\n return (\n <ButtonWrapper loading type=\"text\" loadingPosition=\"center\" removeGap>\n {value}\n </ButtonWrapper>\n );\n };\n } else if (item.asyncRender) {\n item.render = (value, record, index) => {\n return item.asyncRender?.(value, record, index, result.respData);\n };\n }\n }\n return item;\n });\n }, [props.columns, props.asyncColumnRequestResult]);\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Space, Table, type TableProps } from 'antd';\nimport {\n Fragment,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { BlockLayout } from '../block-layout/layout.jsx';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { FlexLayout } from '../flex-layout/flex-layout.jsx';\nimport { TableScrollbar } from '../table-scrollbar/table-scrollbar.jsx';\nimport { filterCache } from './cache.js';\nimport { EasyTableContext } from './context.js';\nimport { FoldOperate } from './fold-operate.jsx';\nimport {\n useColumnByAsyncColumnRequest,\n useColumnsAppendInnerColumn,\n useColumnsAppendTips,\n useColumnsToHidden,\n} from './hooks/columns.jsx';\nimport { type TEasyTableTableColumn } from './type.js';\n\nconst TitleRender = (props: {\n /** 标题 */\n title?: ReactNode;\n /** 动作 */\n actions?: ReactElement[];\n}) => {\n if (!props.title && !props.actions?.length) {\n return null;\n }\n return (\n <FlexLayout fullIndex={0} direction=\"horizontal\" style={{ marginBottom: 10, alignItems: 'center' }}>\n {props.title ? <div style={{ fontWeight: 400, fontSize: 16 }}>{props.title}</div> : null}\n <Space size={10}>{props.actions}</Space>\n </FlexLayout>\n );\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns' | 'title'\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 /**\n * ```\n * 1. 当配置了 EasyTable.serviceConfig.dynamicColumsAdapter 后,columns配置只在初始化有效,再次修改无效\n * 2. 可通过 EasyTableRef.onChangeTableColumns 实现 columns 的指定修改\n * ```\n */\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @version 4.4.6\n * ```\n * 1. true:获取数据后再初始化渲染表格(可用于实现表格中defaultXxxx相关功能的使用)\n * ```\n */\n isSync?: boolean;\n /**\n * 空效果显示尺寸,默认值:small\n * @version 4.4.6\n */\n emptyShowSize?: 'small' | 'large';\n /** 标题 */\n title?: ReactNode;\n /** 与标题对齐的动作 */\n actions?: ReactElement[];\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 ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, isSync, title, actions, ...otherProps } = props;\n const screenType = fbaHooks.useResponsivePoint() || '';\n const asyncColumnRequestResultRef = useRef<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n const [asyncColumnRequestResult, setAsyncColumnRequestResult] = useState<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n\n const {\n columnFoldConfig,\n onCloseColumnFoldModal,\n columnFoldOpen,\n onOpenColumnFoldModal,\n asyncColumnRequest,\n showFoldKeyList,\n onChangeShowFoldKeyList,\n } = ctx.dynamicColumnsConfig;\n\n const {\n cacheKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n\n const cacheParams = filterCache.get(cacheKey);\n\n fbaHooks.useEffectCustom(() => {\n /** 获取初始化 columns 数据 */\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, []);\n\n useEffect(() => {\n if (asyncColumnRequest?.length) {\n for (let index = 0; index < asyncColumnRequest.length; index++) {\n const element = asyncColumnRequest[index];\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: true },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n element\n .onRequest()\n .then((respData) => {\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false, respData },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n })\n .catch((error) => {\n console.error(error?.message);\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n });\n }\n }\n }, [asyncColumnRequest]);\n\n const columnsOriginal = fbaHooks.useMemoCustom(() => {\n if (ctx.columns) {\n ctx.onSetColumns(ctx.columns);\n return ctx.columns as TEasyTableTableColumn<T>[];\n } else {\n ctx.onSetColumns(props.columns as TEasyTableTableColumn<TPlainObject>[]);\n return props.columns;\n }\n }, [ctx.columns, props.columns]);\n\n let columnsNew = useColumnsAppendTips({\n columns: [...columnsOriginal],\n });\n\n const foldColumnList = columnsOriginal.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n columnsNew = useColumnsAppendInnerColumn({\n cacheKey,\n columns: columnsNew,\n foldColumnList,\n showFoldKeyList,\n columnFoldConfig,\n onOpenColumnFoldModal,\n onChangeFoldColumnList: onChangeShowFoldKeyList,\n });\n\n columnsNew = useColumnsToHidden({\n columns: columnsNew,\n showFoldKeyList,\n });\n\n columnsNew = useColumnByAsyncColumnRequest({\n columns: columnsNew,\n asyncColumnRequestResult,\n });\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(pagination !== false);\n }, [pagination]);\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (!paginationFixed) {\n if (pagination !== false) {\n onRequest({\n [fieldNames.pageSize]: cacheParams[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n onRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }\n }, [pagination]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: cacheParams[fieldNames.pageNo] || 1,\n pageSize: cacheParams[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n // selectComponentClass: SmallSelect,\n };\n }, [\n cacheParams,\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\n [fieldNames.pageSize]: pagination.pageSize,\n [fieldNames.pageNo]: pagination.current,\n });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (!tableDataSource) return undefined;\n if (tableDataSource.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableDataSource[0][rowKey])) {\n return tableDataSource.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableDataSource;\n }, [tableDataSource, rowKey]);\n\n columnsNew = useMemo(() => {\n return columnsNew.map((item) => {\n if (!!item.fixed && screenType === 'xs') {\n item.fixed = undefined;\n }\n if (!!item.defaultValue && !item.render) {\n item.render = (value) => {\n return isUndefinedOrNull(value) || value == '' ? item.defaultValue : value;\n };\n }\n return item;\n });\n }, [columnsNew, screenType]);\n\n const tableRender = () => {\n if (isSync && !dataSource) {\n return (\n <Fragment>\n <TitleRender title={title} actions={actions} />\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n rowKey={rowKey as TAny}\n columns={columnsNew}\n loading={loading}\n />\n </Fragment>\n );\n }\n if (isMacEnv()) {\n return (\n <Fragment>\n <TitleRender title={title} actions={actions} />\n {children}\n <Table\n key=\"2\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columnsNew}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </Fragment>\n );\n }\n return (\n <Fragment>\n <TitleRender title={title} actions={actions} />\n {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columnsNew}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n </Fragment>\n );\n };\n\n return (\n <BlockLayout\n className={classNames(\n 'easy-table-table',\n { 'ett-empty-show-small': props.emptyShowSize === 'small' },\n props.tableWrapperClassName,\n )}\n style={props.tableWrapperStyle}\n >\n {tableRender()}\n\n <FoldOperate\n dataList={foldColumnList as TAny[]}\n onClose={onCloseColumnFoldModal}\n open={columnFoldOpen}\n onChange={onChangeShowFoldKeyList}\n cacheKey={cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n />\n </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { firstQueryCache } from './cache';\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 * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n *\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true;如果存在多个EasyTable缓存情况可设置cacheSwitch为自定义字符串\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 * 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)\n * 12. 通过asyncColumnRequest、asyncRender配合使用可实现表格列数据接口渲染(demo:https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table)\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormGrid.Col span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormGrid.Col>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\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 * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n * 8. 通过easyFormProps属性可整体控制子节点FormItem布局\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 * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n /** 设置启用初始化请求 */\n setEnabledInitRequest: (cacheKey: string) => {\n firstQueryCache.set(cacheKey, false);\n },\n});\n"],"names":["filterCache","set","cacheKey","filterCondition","value","get","mergeParams","_extends","sessionStorageCache","_isObject","remove","firstQueryCache","flag","_sessionStorageCache$","columnFoldCache","localStorageCache","_localStorageCache$ge","_isArray","EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperateDropdown","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","onChange","keys","content","_jsx","Fragment","children","Checkbox","Group","defaultValue","style","display","flexDirection","dataList","map","item","label","title","dataIndex","padding","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","getFormFieldsValue","form","filterFormItemKeys","formValues","getFieldsValue","values","forEach","requestParamsInternalAdapter","params","options","Array","isArray","_options","_options$removeEmptyV","removeEmptyValue","result","key","Object","prototype","hasOwnProperty","call","trim","includes","undefined","EasyTable","forwardRef","ref","_props$initialPaginat","screenType","fbaHooks","useResponsivePoint","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","columnFoldConfig","asyncColumnRequest","removeRequestParamsEmptyValue","_useState4","columnFoldOpen","setColumnFoldOpen","useMemo","iframe","window","frameElement","iframeId","id","_error","cacheSwitch","location","pathname","Date","now","getUuid","cacheParams","_useState5","columnFoldCacheValue","cacheKeyList","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","pageSize","initialPaginationParams","initRequest","paginationStatusRef","useRef","respOriginalDataRef","baseColumnsRef","_useState6","dynamicColumns","setDynamicColumns","columnsRef","fieldNames","list","pageNo","outerForm","Form","useFormInstance","_Form$useForm","useForm","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","paramsAll","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","respData","respDataNew","_dynamicColumns","respList","$Try_2_Post","$boundEx","$Try_2_Catch","error","onRequestErrorHandle","message","breforeRequest","$Try_3_Post","$If_4","this","bind","$Try_3_Catch","resolve","then","$await_5","serviceConfig","$await_6","current","onDataSourceChange","_get","useEffectCustom","hasPagination","getPaginationStatus","firstQueryFlag","setFieldsValue","initialValues","_extends2","clearQueryCondition","resetFields","updateQueryCondition","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","getRequestParams","_props$filterFormItem","parameAll","onOpenColumnFoldModal","onCloseColumnFoldModal","getSubmitParams","_props$filterFormItem2","getDataSource","onFilterDataSource","filterDataSource","getTableDataList","onClearDataSource","onUpdateDataSource","_respOriginalDataRef$","columnFoldTriggerRender","columns","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","hidden","isFold","onChangeFoldColumnList","onChangeTableColumns","getTableColumns","setEnabledInitRequest","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onSetColumns","onFormFinish","console","log","isFull","_isUndefined","filterFixedFt","filterFixed","className","_classNames","paginationFixed","paginationData","useMemoCustom","showSizeChanger","showTotal","pagination","keyList","page","_params","_props$pagination","useUpdateEffect","_onInnerRequest","_onInnerRequest2","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","dynamicColumnsConfig","onChangeShowFoldKeyList","_jsxs","PaginationWrapper","size","EasyTableFilter","_ctx$filterFormItemKe2","ctx","useContext","inheritForm","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","supportEnterEvent","_ctx$filterFormItemKe","onReset","validateFields","$await_3","$If_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","loadingPosition","_ctx$filterFormItemKe3","$await_4","$If_2","cursor","text","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","index","find","keyItem","FormGrid","Col","OperateCol","labelAlign","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","FoldOperate","rowSelection","render","recrd","Drawer","open","onClose","width","styles","body","Table","bordered","rowKey","scroll","x","useColumnsAppendTips","tempList","tooltip","tipsWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","TipsWrapper","tipType","popoverProps","TableTitleTooltip","useColumnsAppendInnerColumn","columnsNew","finalItem","foldColumnTarget","_props$columnFoldConf2","_props$columnFoldConf3","_props$columnFoldConf4","_props$columnFoldConf5","_props$columnFoldConf6","_props$columnFoldConf7","FlexLayout","direction","fullIndex","alignItems","IconWrapper","icon","SvgHttpView","svgPath","color","hoverTips","hoverTipText","margin","useColumnsToHidden","useColumnByAsyncColumnRequest","asyncColumnRequestResult","removeGap","asyncRender","record","TitleRender","_props$actions","actions","marginBottom","fontWeight","Space","EasyTableTable","isSync","asyncColumnRequestResultRef","setAsyncColumnRequestResult","_ctx$dynamicColumnsCo","useEffect","_loop","element","_extends3","catch","_extends4","columnsOriginal","_onRequest","_onRequest2","tablePaginationData","onChangePage","filters","sorter","extra","action","_onRequest3","isUndefinedOrNull","fixed","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
@@ -8,5 +8,5 @@ import './../flex-layout/index.css';
8
8
  import './../block-layout/index.css';
9
9
  import './index.css';
10
10
  /*! @flatjs/forge MIT @flatbiz/antd */
11
- import{fbaUtils as e}from"../fba-utils/index.js";import{hooks as o}from"@wove/react/cjs/hooks";import{a as n,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{getUuid as l}from"@flatbiz/utils";import{createContext as a,useState as t,useMemo as i,useContext as u,createElement as s}from"react";import{classNames as d}from"@dimjs/utils/cjs/class-names";import{isPromise as c}from"@dimjs/lang/cjs/is-promise";import{useSize as f}from"ahooks";import{Form as p,Modal as v,Space as m,Drawer as g,theme as C}from"antd";import{ButtonWrapper as h}from"../button-wrapper/index.js";import{fbaHooks as k}from"../fba-hooks/index.js";import{FlexLayout as y}from"../flex-layout/index.js";import{g as x}from"../index-853b36e6.js";import{createCtx as b}from"@wove/react/cjs/create-ctx";import{jsx as w,jsxs as D}from"react/jsx-runtime";import{BlockLayout as j}from"../block-layout/index.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"@ant-design/icons/es/icons/LoadingOutlined";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";var O=a({});var R=b(),M=R[0],P=R[1];var T=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var F=function e(l){var a,u;var s=l.titleExtra,m=l.title,g=l.onOk,C=l.onCancel,b=l.okButtonProps,j=l.cancelButtonProps,O=l.content,R=l.className,M=l.okHidden,F=l.cancelHidden,N=l.footer,H=l.cancelText,A=l.okText,B=l.size,L=l.bodyHeight,z=n(l,T);var E=p.useForm(),W=E[0];var _=f(document.querySelector("html"));var S=x();var Y=k.useResponsivePoint()||"";var q=t({}),I=q[0],U=q[1];var G=o.useCallbackRef(function(){l.onClose==null||l.onClose()});var J=o.useCallbackRef(function(e){if(C){var o=C(W,e);if(o&&c(o)){return o.then(G)}}G();return Promise.resolve()});var K=o.useCallbackRef(function(e){if(g){var o=g(W,e);if(o&&c(o)){return o.then(G)}}G();return Promise.resolve()});var Q=k.useMemoCustom(function(){var e;if(N){return typeof N==="function"?N(W,I):N}if(F&&M||N===null){return null}return[w(h,r({},j,{onClick:J,hidden:F,children:H||((e=S.FbaDialogModal)==null?void 0:e.cancelText)}),"0"),w(h,r({type:"primary"},b,{onClick:K,hidden:M,children:A||"提交"}),"1")].filter(Boolean)},[I,l.open]);var V=i(function(){if(!(_!=null&&_.height)||!Y)return undefined;var e=["xs","sm"].includes(Y);if(e){return{width:"90%"}}if(B=="large"){return{height:(_==null?void 0:_.height)*.7,width:e?"90%":_.width*.6}}if(B=="small"){var o=_.width*.3;return{height:(_==null?void 0:_.height)*.4,width:e?"90%":o<470?470:o}}if(B=="middle"){return{height:(_==null?void 0:_.height)*.4,width:e?"90%":_.width*.5}}return undefined},[_==null?void 0:_.height,_==null?void 0:_.width,Y,B]);var X=d("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!s},{"fba-dialog-modal-footer-empty":!Q},R);var Z=function e(o){U(o)};var $=((a=z.styles)==null||(a=a.body)==null?void 0:a.height)||L;var ee=i(function(){return typeof O==="function"?O(W,{onClose:G}):O},[l.open]);return w(P,{value:{rerenderFooter:Z},children:w(v,r({maskClosable:true,title:s?D(y,{direction:"horizontal",fullIndex:0,children:[w("span",{children:m}),s]}):m,centered:true,onCancel:G,destroyOnClose:true,width:V==null?void 0:V.width},z,{footer:Q,styles:r({},z.styles,{body:r({height:$||(V==null?void 0:V.height),maxHeight:"calc(100vh - 200px)"},(u=z.styles)==null?void 0:u.body)}),className:X,open:l.open,children:ee}))})};var N=function e(o){var n=d("fba-dialog-confirm",o.className);return w(F,r({okText:"确定",size:null,width:350,cancelText:"取消",maskClosable:true},o,{className:n}))};var H=function e(o){return w(N,r({okText:"确定",cancelHidden:true,maskClosable:false},o,{onOk:function e(n,r){return o.onClick==null?void 0:o.onClick(r)}}))};var A=b(),B=A[0],L=A[1];var z=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var E=function e(l){var a=l.onOk,u=l.onCancel,s=l.content,f=l.okText,v=l.cancelText,C=l.okButtonExtraProps,y=l.cancelButtonExtraProps,x=l.operatePosition,b=x===void 0?"footer":x,j=l.operateRender,O=l.width,R=l.okHidden,M=l.cancelHidden,P=l.extra,T=n(l,z);var F=p.useForm(),N=F[0];var H=k.useResponsivePoint()||"";var A=t({}),B=A[0],E=A[1];var W=o.useCallbackRef(function(e){l.onClose==null||l.onClose(e)});var _=o.useCallbackRef(function(e){if(u){var o=u(N,e);if(o&&c(o)){return o.then(W)}}W(e);return Promise.resolve()});var S=o.useCallbackRef(function(e){if(a){var o=a(N,e);if(o&&c(o)){return o.then(W)}}W(e);return Promise.resolve()});var Y=k.useMemoCustom(function(){if(j){return j(N,B)}var e=R||(C==null?void 0:C.hidden);var o=R||(C==null?void 0:C.hidden);var n=D(m,{children:[o?null:w(h,r({},y,{onClick:_,children:v||"取消"})),e?null:w(h,r({type:"primary"},C,{onClick:S,children:f||"提交"}))]});if(!R||!M){return n}return null},[B,l.open]);var q=i(function(){if(!H)return undefined;if(["xs","sm"].includes(H)){return{width:"90%",maxWidth:"90%"}}if(O){return{width:O,maxWidth:"calc(100% - 200px)"}}return{width:"40%",maxWidth:"calc(100% - 200px)"}},[H,O]);var I=typeof P==="function"?P(N):P;var U=function e(o){E(o)};var G=i(function(){return typeof s==="function"?s(N,{onClose:W}):s},[l.open]);return w(L,{value:{rerenderFooter:U},children:w(g,r({maskClosable:true,destroyOnClose:true,contentWrapperStyle:{maxWidth:q==null?void 0:q.maxWidth},footer:b==="footer"?Y:null},T,{width:q==null?void 0:q.width,styles:r({},T.styles),className:d("app-dialog-drawer",T.className),extra:b==="header"?Y:I,open:l.open,onClose:W,children:G}))})};var W=function e(o){var n=o.className,r=o.message,l=o.mask;var a=C.useToken(),t=a.token;var i=t.colorPrimary;return w(v,{maskClosable:false,centered:true,destroyOnClose:true,className:d("fba-dialog-loading",n),open:o.open,footer:null,closable:false,style:{"--fba-loading-color":i},mask:l,children:w(j,{className:d("fba-dialog-loading-content"),children:D("div",{className:"loader-wrapper",children:[w("div",{className:"loader-inner"}),w("div",{className:"loader-text",children:r||"处理中"})]})})})};var _=function e(){var o=u(O);var n=function e(){o.dialogDrawerClose==null||o.dialogDrawerClose()};return{appDialogDrawer:{open:function e(l){o.dialogDrawerOpen==null||o.dialogDrawerOpen(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogDrawer:function e(){var o=B();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var S=function e(){var o=u(O);var n=function e(){o.dialogDrawerClose2==null||o.dialogDrawerClose2()};return{appDialogDrawer2:{open:function e(l){o.dialogDrawerOpen2==null||o.dialogDrawerOpen2(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogDrawer:function e(){var o=B();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var Y=function e(){var o=u(O);var n=function e(){o.dialogModalClose==null||o.dialogModalClose()};return{appDialogModal:{open:function e(l){o.dialogModalOpen==null||o.dialogModalOpen(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogModal:function e(){var o=M();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var q=function e(){var o=u(O);var n=function e(){o.dialogModalClose2==null||o.dialogModalClose2()};return{appDialogModal2:{open:function e(l){o.dialogModalOpen2==null||o.dialogModalOpen2(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogModal:function e(){var o=M();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var I=function e(){var o=u(O);var n=function e(){o.dialogAlertClose==null||o.dialogAlertClose()};return{appDialogAlert:{open:function e(l){o.dialogAlertOpen==null||o.dialogAlertOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var U=function e(){var o=u(O);var n=function e(){o.dialogConfirmClose==null||o.dialogConfirmClose()};return{appDialogConfirm:{open:function e(l){o.dialogConfirmOpen==null||o.dialogConfirmOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var G=function e(){var o=u(O);var n=function e(){o.dialogLoadingClose==null||o.dialogLoadingClose()};return{appDialogLoading:{open:function e(l){o.dialogLoadingOpen==null||o.dialogLoadingOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var J=function e(n){var a=t({}),i=a[0],u=a[1];var d=t(l()),c=d[0],f=d[1];var p=t({}),v=p[0],m=p[1];var g=t(l()),C=g[0],h=g[1];var k=t({}),y=k[0],x=k[1];var b=t(l()),w=b[0],j=b[1];var R=t({}),M=R[0],P=R[1];var T=t(l()),A=T[0],B=T[1];var L=t({}),z=L[0],_=L[1];var S=t({}),Y=S[0],q=S[1];var I=t(),U=I[0],G=I[1];var J=t(l()),K=J[0],Q=J[1];var V=t(l()),X=V[0],Z=V[1];var $=t(l()),ee=$[0],oe=$[1];var ne=o.useCallbackRef(function(e){u(e)});var re=o.useCallbackRef(function(e){u(r({},i,{open:false}));i.onClose==null||i.onClose(e);setTimeout(function(){f(l())},200)});var le=o.useCallbackRef(function(e){m(e)});var ae=o.useCallbackRef(function(e){m(r({},v,{open:false}));v.onClose==null||v.onClose(e);setTimeout(function(){h(l())},200)});var te=o.useCallbackRef(function(e){x(e)});var ie=o.useCallbackRef(function(){x(r({},y,{open:false}));y.onClose==null||y.onClose();setTimeout(function(){j(l())},200)});var ue=o.useCallbackRef(function(e){P(e)});var se=o.useCallbackRef(function(){P(r({},M,{open:false}));M.onClose==null||M.onClose();setTimeout(function(){B(l())},200)});var de=o.useCallbackRef(function(e){_(e)});var ce=o.useCallbackRef(function(){_(r({},z,{open:false}));z.onClose==null||z.onClose();setTimeout(function(){Q(l())},200)});var fe=o.useCallbackRef(function(e){q(e)});var pe=o.useCallbackRef(function(){q(r({},Y,{open:false}));Y.onClose==null||Y.onClose();setTimeout(function(){Z(l())},200)});var ve=o.useCallbackRef(function(e){G(e)});var me=o.useCallbackRef(function(){G(r({},U,{open:false}));setTimeout(function(){oe(l())},200)});return D(O.Provider,{value:{dialogDrawerOpen:ne,dialogDrawerClose:re,dialogDrawerOpen2:le,dialogDrawerClose2:ae,dialogModalOpen:te,dialogModalClose:ie,dialogModalOpen2:ue,dialogModalClose2:se,dialogAlertOpen:de,dialogAlertClose:ce,dialogConfirmOpen:fe,dialogConfirmClose:pe,dialogLoadingOpen:ve,dialogLoadingClose:me},children:[s(E,r({},i,{onClose:re,key:c})),s(E,r({},v,{onClose:ae,key:C})),s(F,r({},y,{onClose:ie,key:w})),s(F,r({},M,{onClose:se,key:A})),s(H,r({},z,{onClose:ce,key:K})),s(N,r({},Y,{onClose:pe,key:X})),s(W,r({},U,{key:ee})),n.children]})};var K=e.attachPropertiesToComponent(J,{useDialogDrawer:_,useDialogDrawer2:S,useDialogModal:Y,useDialogModal2:q,useDialogConfirm:U,useDialogAlert:I,useDialogLoading:G});export{K as FbaApp};
11
+ import{fbaUtils as e}from"../fba-utils/index.js";import{hooks as o}from"@wove/react/cjs/hooks";import{a as n,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{getUuid as l}from"@flatbiz/utils";import{createContext as a,useState as t,useMemo as i,useContext as u,createElement as s}from"react";import{classNames as d}from"@dimjs/utils/cjs/class-names";import{isPromise as c}from"@dimjs/lang/cjs/is-promise";import{useSize as f}from"ahooks";import{Form as p,Modal as v,Space as m,Drawer as g,theme as C}from"antd";import{ButtonWrapper as h}from"../button-wrapper/index.js";import{fbaHooks as k}from"../fba-hooks/index.js";import{FlexLayout as y}from"../flex-layout/index.js";import{g as x}from"../index-853b36e6.js";import{createCtx as b}from"@wove/react/cjs/create-ctx";import{jsx as w,jsxs as D}from"react/jsx-runtime";import{BlockLayout as j}from"../block-layout/index.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"@ant-design/icons/es/icons/LoadingOutlined";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";var O=a({});var R=b(),M=R[0],P=R[1];var T=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var F=function e(l){var a,u;var s=l.titleExtra,m=l.title,g=l.onOk,C=l.onCancel,b=l.okButtonProps,j=l.cancelButtonProps,O=l.content,R=l.className,M=l.okHidden,F=l.cancelHidden,N=l.footer,H=l.cancelText,A=l.okText,B=l.size,L=l.bodyHeight,z=n(l,T);var E=p.useForm(),W=E[0];var _=f(document.querySelector("html"));var S=x();var Y=k.useResponsivePoint()||"";var q=t({}),I=q[0],U=q[1];var G=o.useCallbackRef(function(){l.onClose==null||l.onClose()});var J=o.useCallbackRef(function(e){if(C){var o=C(W,e);if(o&&c(o)){return o.then(G)}}G();return Promise.resolve()});var K=o.useCallbackRef(function(e){if(g){var o=g(W,e);if(o&&c(o)){return o.then(G)}}G();return Promise.resolve()});var Q=k.useMemoCustom(function(){var e;if(N){return typeof N==="function"?N(W,I):N}if(F&&M||N===null){return null}return[w(h,r({},j,{onClick:J,hidden:F,children:H||((e=S.FbaDialogModal)==null?void 0:e.cancelText)}),"0"),w(h,r({type:"primary"},b,{onClick:K,hidden:M,children:A||"提交"}),"1")].filter(Boolean)},[I,l.open]);var V=i(function(){if(!(_!=null&&_.height)||!Y)return undefined;var e=["xs","sm"].includes(Y);if(e){return{width:"90%"}}if(B=="large"){return{height:(_==null?void 0:_.height)*.7,width:e?"90%":_.width*.6}}if(B=="small"){var o=_.width*.3;return{height:(_==null?void 0:_.height)*.4,width:e?"90%":o<470?470:o}}if(B=="middle"){return{height:(_==null?void 0:_.height)*.5,width:e?"90%":_.width*.5}}return undefined},[_==null?void 0:_.height,_==null?void 0:_.width,Y,B]);var X=d("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!s},{"fba-dialog-modal-footer-empty":!Q},R);var Z=function e(o){U(o)};var $=((a=z.styles)==null||(a=a.body)==null?void 0:a.height)||L;var ee=i(function(){return typeof O==="function"?O(W,{onClose:G}):O},[l.open]);return w(P,{value:{rerenderFooter:Z},children:w(v,r({maskClosable:true,title:s?D(y,{direction:"horizontal",fullIndex:0,children:[w("span",{children:m}),s]}):m,centered:true,onCancel:G,destroyOnClose:true,width:V==null?void 0:V.width},z,{footer:Q,styles:r({},z.styles,{body:r({height:$||(V==null?void 0:V.height),maxHeight:"calc(100vh - 200px)"},(u=z.styles)==null?void 0:u.body)}),className:X,open:l.open,children:ee}))})};var N=function e(o){var n=d("fba-dialog-confirm",o.className);return w(F,r({okText:"确定",size:null,width:350,cancelText:"取消",maskClosable:true},o,{className:n}))};var H=function e(o){return w(N,r({okText:"确定",cancelHidden:true,maskClosable:false},o,{onOk:function e(n,r){return o.onClick==null?void 0:o.onClick(r)}}))};var A=b(),B=A[0],L=A[1];var z=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var E=function e(l){var a=l.onOk,u=l.onCancel,s=l.content,f=l.okText,v=l.cancelText,C=l.okButtonExtraProps,y=l.cancelButtonExtraProps,x=l.operatePosition,b=x===void 0?"footer":x,j=l.operateRender,O=l.width,R=l.okHidden,M=l.cancelHidden,P=l.extra,T=n(l,z);var F=p.useForm(),N=F[0];var H=k.useResponsivePoint()||"";var A=t({}),B=A[0],E=A[1];var W=o.useCallbackRef(function(e){l.onClose==null||l.onClose(e)});var _=o.useCallbackRef(function(e){if(u){var o=u(N,e);if(o&&c(o)){return o.then(W)}}W(e);return Promise.resolve()});var S=o.useCallbackRef(function(e){if(a){var o=a(N,e);if(o&&c(o)){return o.then(W)}}W(e);return Promise.resolve()});var Y=k.useMemoCustom(function(){if(j){return j(N,B)}var e=R||(C==null?void 0:C.hidden);var o=R||(C==null?void 0:C.hidden);var n=D(m,{children:[o?null:w(h,r({},y,{onClick:_,children:v||"取消"})),e?null:w(h,r({type:"primary"},C,{onClick:S,children:f||"提交"}))]});if(!R||!M){return n}return null},[B,l.open]);var q=i(function(){if(!H)return undefined;if(["xs","sm"].includes(H)){return{width:"90%",maxWidth:"90%"}}if(O){return{width:O,maxWidth:"calc(100% - 200px)"}}return{width:"40%",maxWidth:"calc(100% - 200px)"}},[H,O]);var I=typeof P==="function"?P(N):P;var U=function e(o){E(o)};var G=i(function(){return typeof s==="function"?s(N,{onClose:W}):s},[l.open]);return w(L,{value:{rerenderFooter:U},children:w(g,r({maskClosable:true,destroyOnClose:true,contentWrapperStyle:{maxWidth:q==null?void 0:q.maxWidth},footer:b==="footer"?Y:null},T,{width:q==null?void 0:q.width,styles:r({},T.styles),className:d("app-dialog-drawer",T.className),extra:b==="header"?Y:I,open:l.open,onClose:W,children:G}))})};var W=function e(o){var n=o.className,r=o.message,l=o.mask;var a=C.useToken(),t=a.token;var i=t.colorPrimary;return w(v,{maskClosable:false,centered:true,destroyOnClose:true,className:d("fba-dialog-loading",n),open:o.open,footer:null,closable:false,style:{"--fba-loading-color":i},mask:l,children:w(j,{className:d("fba-dialog-loading-content"),children:D("div",{className:"loader-wrapper",children:[w("div",{className:"loader-inner"}),w("div",{className:"loader-text",children:r||"处理中"})]})})})};var _=function e(){var o=u(O);var n=function e(){o.dialogDrawerClose==null||o.dialogDrawerClose()};return{appDialogDrawer:{open:function e(l){o.dialogDrawerOpen==null||o.dialogDrawerOpen(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogDrawer:function e(){var o=B();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var S=function e(){var o=u(O);var n=function e(){o.dialogDrawerClose2==null||o.dialogDrawerClose2()};return{appDialogDrawer2:{open:function e(l){o.dialogDrawerOpen2==null||o.dialogDrawerOpen2(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogDrawer:function e(){var o=B();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var Y=function e(){var o=u(O);var n=function e(){o.dialogModalClose==null||o.dialogModalClose()};return{appDialogModal:{open:function e(l){o.dialogModalOpen==null||o.dialogModalOpen(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogModal:function e(){var o=M();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var q=function e(){var o=u(O);var n=function e(){o.dialogModalClose2==null||o.dialogModalClose2()};return{appDialogModal2:{open:function e(l){o.dialogModalOpen2==null||o.dialogModalOpen2(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogModal:function e(){var o=M();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var I=function e(){var o=u(O);var n=function e(){o.dialogAlertClose==null||o.dialogAlertClose()};return{appDialogAlert:{open:function e(l){o.dialogAlertOpen==null||o.dialogAlertOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var U=function e(){var o=u(O);var n=function e(){o.dialogConfirmClose==null||o.dialogConfirmClose()};return{appDialogConfirm:{open:function e(l){o.dialogConfirmOpen==null||o.dialogConfirmOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var G=function e(){var o=u(O);var n=function e(){o.dialogLoadingClose==null||o.dialogLoadingClose()};return{appDialogLoading:{open:function e(l){o.dialogLoadingOpen==null||o.dialogLoadingOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var J=function e(n){var a=t({}),i=a[0],u=a[1];var d=t(l()),c=d[0],f=d[1];var p=t({}),v=p[0],m=p[1];var g=t(l()),C=g[0],h=g[1];var k=t({}),y=k[0],x=k[1];var b=t(l()),w=b[0],j=b[1];var R=t({}),M=R[0],P=R[1];var T=t(l()),A=T[0],B=T[1];var L=t({}),z=L[0],_=L[1];var S=t({}),Y=S[0],q=S[1];var I=t(),U=I[0],G=I[1];var J=t(l()),K=J[0],Q=J[1];var V=t(l()),X=V[0],Z=V[1];var $=t(l()),ee=$[0],oe=$[1];var ne=o.useCallbackRef(function(e){u(e)});var re=o.useCallbackRef(function(e){u(r({},i,{open:false}));i.onClose==null||i.onClose(e);setTimeout(function(){f(l())},200)});var le=o.useCallbackRef(function(e){m(e)});var ae=o.useCallbackRef(function(e){m(r({},v,{open:false}));v.onClose==null||v.onClose(e);setTimeout(function(){h(l())},200)});var te=o.useCallbackRef(function(e){x(e)});var ie=o.useCallbackRef(function(){x(r({},y,{open:false}));y.onClose==null||y.onClose();setTimeout(function(){j(l())},200)});var ue=o.useCallbackRef(function(e){P(e)});var se=o.useCallbackRef(function(){P(r({},M,{open:false}));M.onClose==null||M.onClose();setTimeout(function(){B(l())},200)});var de=o.useCallbackRef(function(e){_(e)});var ce=o.useCallbackRef(function(){_(r({},z,{open:false}));z.onClose==null||z.onClose();setTimeout(function(){Q(l())},200)});var fe=o.useCallbackRef(function(e){q(e)});var pe=o.useCallbackRef(function(){q(r({},Y,{open:false}));Y.onClose==null||Y.onClose();setTimeout(function(){Z(l())},200)});var ve=o.useCallbackRef(function(e){G(e)});var me=o.useCallbackRef(function(){G(r({},U,{open:false}));setTimeout(function(){oe(l())},200)});return D(O.Provider,{value:{dialogDrawerOpen:ne,dialogDrawerClose:re,dialogDrawerOpen2:le,dialogDrawerClose2:ae,dialogModalOpen:te,dialogModalClose:ie,dialogModalOpen2:ue,dialogModalClose2:se,dialogAlertOpen:de,dialogAlertClose:ce,dialogConfirmOpen:fe,dialogConfirmClose:pe,dialogLoadingOpen:ve,dialogLoadingClose:me},children:[s(E,r({},i,{onClose:re,key:c})),s(E,r({},v,{onClose:ae,key:C})),s(F,r({},y,{onClose:ie,key:w})),s(F,r({},M,{onClose:se,key:A})),s(H,r({},z,{onClose:ce,key:K})),s(N,r({},Y,{onClose:pe,key:X})),s(W,r({},U,{key:ee})),n.children]})};var K=e.attachPropertiesToComponent(J,{useDialogDrawer:_,useDialogDrawer2:S,useDialogModal:Y,useDialogModal2:q,useDialogConfirm:U,useDialogAlert:I,useDialogLoading:G});export{K as FbaApp};
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/index.tsx","@flatbiz/antd/src/fba-app/dialog-confirm/index.tsx","@flatbiz/antd/src/fba-app/dialog-alert/index.tsx","@flatbiz/antd/src/fba-app/dialog-drawer/context.ts","@flatbiz/antd/src/fba-app/dialog-drawer/index.tsx","@flatbiz/antd/src/fba-app/dialog-loading/index.tsx","@flatbiz/antd/src/fba-app/fba-app.tsx","@flatbiz/antd/src/fba-app/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModalProps } from './dialog-modal';\n\nexport type FbaAppContextApi = {\n dialogDrawerOpen?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose?: (e?) => void;\n\n dialogDrawerOpen2?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose2?: (e?) => void;\n\n dialogModalOpen?: (data: FbaAppModalProps) => void;\n dialogModalClose?: () => void;\n\n dialogModalOpen2?: (data: FbaAppModalProps) => void;\n dialogModalClose2?: () => void;\n\n dialogAlertOpen?: (data: FbaAppAlertProps) => void;\n dialogAlertClose?: () => void;\n\n dialogConfirmOpen?: (data: FbaAppConfirmProps) => void;\n dialogConfirmClose?: () => void;\n\n dialogLoadingOpen?: (data?: FbaAppLoadingProps & { open?: boolean }) => void;\n dialogLoadingClose?: () => void;\n};\n\nexport const FbaAppContext = createContext<FbaAppContextApi>({});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useFbaAppDialogModalCtx, CtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { getFbaLocaleMessage } from '../../_utils/i18n';\nimport { CtxProvider } from './context';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度\n * ```\n * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效\n * 2. 不传、传null值可取消内置尺寸\n * ```\n */\n size?: 'small' | 'middle' | 'large' | null;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onClose?: () => void;\n /**\n * content只在第一次弹起时,执行一次\n */\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * @deprecated 已失效,可通过size属性设置\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n\n titleExtra?: ReactElement;\n /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nexport const FbaAppModal = (props: FbaAppModalProps) => {\n const {\n titleExtra,\n title,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const localMessage = getFbaLocaleMessage();\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n props.onClose?.();\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const footerNew = fbaHooks.useMemoCustom(() => {\n if (footer) {\n return typeof footer === 'function' ? footer(form, footerExtraData) : footer;\n }\n if ((cancelHidden && okHidden) || footer === null) {\n return null;\n }\n return [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || localMessage.FbaDialogModal?.cancelText}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ].filter(Boolean);\n }, [footerExtraData, props.open]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n if (isXsSm) {\n return { width: '90%' };\n }\n if (size == 'large') {\n return {\n height: htmlSize?.height * 0.7,\n width: isXsSm ? '90%' : htmlSize.width * 0.6,\n };\n }\n if (size == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : width < 470 ? 470 : width,\n };\n }\n\n if (size == 'middle') {\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : htmlSize.width * 0.5,\n };\n }\n\n return undefined;\n }, [htmlSize?.height, htmlSize?.width, screenType, size]);\n\n const classNameNew = classNames(\n 'fba-dialog-modal',\n { 'fba-dialog-modal-title-extra': !!titleExtra },\n { 'fba-dialog-modal-footer-empty': !footerNew },\n className,\n );\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n\n // content 只会在第一次渲染\n const contentFt = useMemo(() => {\n return typeof content === 'function' ? content(form, { onClose }) : content;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.open]);\n\n return (\n <CtxProvider value={{ rerenderFooter }}>\n <Modal\n maskClosable={true}\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={props.open}\n >\n {contentFt}\n </Modal>\n </CtxProvider>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { FbaAppModal, FbaAppModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type FbaAppConfirmProps = FbaAppModalProps;\n\nexport const FbaAppConfirm = (props: FbaAppConfirmProps) => {\n const className = classNames('fba-dialog-confirm', props.className);\n return (\n <FbaAppModal\n okText=\"确定\"\n size={null}\n width={350}\n cancelText=\"取消\"\n maskClosable={true}\n {...props}\n className={className}\n />\n );\n};\n","import { FbaAppConfirm } from '../dialog-confirm';\nimport { FbaAppModalProps } from '../dialog-modal';\n\n// export type DialogAlertProps = Omit<\n// DialogModalProps,\n// 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n// > & {\n// onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n// };\n\n// export const dialogAlert = {\n// open: (props: DialogAlertProps) => {\n// return dialogConfirm.open({\n// okText: '确定',\n// cancelHidden: true,\n// maskClosable: false,\n// ...props,\n// onOk: props.onClick,\n// } as DialogModalProps);\n// },\n// };\n\nexport type FbaAppAlertProps = Omit<\n FbaAppModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const FbaAppAlert = (props: FbaAppAlertProps) => {\n return (\n <FbaAppConfirm\n okText=\"确定\"\n cancelHidden={true}\n maskClosable={false}\n {...props}\n onOk={(_form, e) => {\n return props.onClick?.(e);\n }}\n />\n );\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useFbaAppDialogDrawerCtx, CtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode, useMemo, useState } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { CtxProvider } from './context';\nimport './style.less';\n\nexport type FbaAppDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n /**\n * content只在第一次弹起时,执行一次\n */\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: DrawerProps['onClose'] }) => ReactElement);\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n okHidden?: boolean;\n cancelHidden?: boolean;\n\n /** 设置操作区域位置 */\n operatePosition?: 'header' | 'footer';\n /** 右上角自定义内容,如果operatePosition=header,此设置无效 */\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n /**\n * ```\n * 1. 自定义弹框操作区域,通过 operatePosition 配置可以自定义位置\n * 2. extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n operateRender?: (form: FormInstance, extraData?: TPlainObject) => ReactElement;\n};\n\nexport const FbaAppDrawer = (props: FbaAppDrawerProps) => {\n const {\n onOk,\n onCancel,\n content,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width,\n okHidden,\n cancelHidden,\n extra,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef((e) => {\n props.onClose?.(e);\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const newOperateRender = fbaHooks.useMemoCustom(() => {\n if (operateRender) {\n return operateRender(form, footerExtraData);\n }\n\n const okHiddenNew = okHidden || okButtonExtraProps?.hidden;\n const cancelHiddenNew = okHidden || okButtonExtraProps?.hidden;\n\n const operateGroup = (\n <Space>\n {cancelHiddenNew ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHiddenNew ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n }, [footerExtraData, props.open]);\n\n const customSize = useMemo(() => {\n if (!screenType) return undefined;\n if (['xs', 'sm'].includes(screenType)) {\n return {\n width: '90%',\n maxWidth: '90%',\n };\n }\n if (width) {\n return { width: width, maxWidth: 'calc(100% - 200px)' };\n }\n return { width: '40%', maxWidth: 'calc(100% - 200px)' };\n }, [screenType, width]);\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n // content 只会在第一次渲染\n const contentFt = useMemo(() => {\n return typeof content === 'function' ? content(form, { onClose }) : content;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.open]);\n\n return (\n <CtxProvider value={{ rerenderFooter }}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n // 5.13.0 新增 styles.wrapper,并废弃 contentWrapperStyle drawerStyle maskStyle 属性\n contentWrapperStyle={{ maxWidth: customSize?.maxWidth }}\n footer={operatePosition === 'footer' ? newOperateRender : null}\n {...otherProps}\n width={customSize?.width}\n styles={{\n ...otherProps.styles,\n // wrapper: {\n // maxWidth: customSize?.maxWidth,\n // ...otherProps.styles?.wrapper,\n // },\n }}\n className={classNames('app-dialog-drawer', otherProps.className)}\n extra={operatePosition === 'header' ? newOperateRender : extraRender}\n open={props.open}\n onClose={onClose}\n >\n {contentFt}\n </Drawer>\n </CtxProvider>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties } from 'react';\nimport { BlockLayout } from '../../block-layout';\nimport './style.less';\n\nexport type FbaAppLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nexport const FbaAppLoading = (props: FbaAppLoadingProps & { open?: boolean }) => {\n const { className, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('fba-dialog-loading', className)}\n open={props.open}\n footer={null}\n closable={false}\n style={{ '--fba-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <BlockLayout className={classNames('fba-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </BlockLayout>\n </Modal>\n );\n};\n","import { getUuid, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ReactNode, useContext, useState } from 'react';\nimport { FbaAppContext, FbaAppContextApi } from './context';\nimport { FbaAppAlert, FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirm, FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawer, FbaAppDrawerProps } from './dialog-drawer';\nimport { useFbaAppDialogDrawerCtx } from './dialog-drawer/context';\nimport { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\nimport { useFbaAppDialogModalCtx } from './dialog-modal/context';\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n */\nexport const useDialogDrawer = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose?.();\n };\n\n return {\n appDialogDrawer: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useAppDialogDrawer: () => {\n const ctx = useFbaAppDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n */\nexport const useDialogDrawer2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose2?.();\n };\n\n return {\n appDialogDrawer2: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useAppDialogDrawer: () => {\n const ctx = useFbaAppDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogModal2\n * ```\n * 1. 配置size属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const useDialogModal = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose?.();\n };\n\n return {\n appDialogModal: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n */\n useAppDialogModal: () => {\n const ctx = useFbaAppDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * ```\n * 1. 配置size属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const useDialogModal2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose2?.();\n };\n\n return {\n appDialogModal2: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n */\n useAppDialogModal: () => {\n const ctx = useFbaAppDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogAlert = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogAlertClose?.();\n };\n\n return {\n appDialogAlert: {\n open: (data: FbaAppAlertProps) => {\n ctx.dialogAlertOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogConfirm = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogConfirmClose?.();\n };\n\n return {\n appDialogConfirm: {\n open: (data: FbaAppConfirmProps) => {\n ctx.dialogConfirmOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogLoading = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogLoadingClose?.();\n };\n\n return {\n appDialogLoading: {\n open: (data?: FbaAppLoadingProps) => {\n ctx.dialogLoadingOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const FbaApp = (props: { children: ReactNode }) => {\n const [drawerProps, setDrawerProps] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey, setDrawerKey] = useState(getUuid());\n\n const [drawerProps2, setDrawerProps2] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey2, setDrawerKey2] = useState(getUuid());\n\n const [modalProps, setModalProps] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey, setModalKey] = useState(getUuid());\n\n const [modalProps2, setModalProps2] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey2, setModalKey2] = useState(getUuid());\n\n const [alertProps, setAlertProps] = useState<FbaAppAlertProps>({} as FbaAppAlertProps);\n const [confirmProps, setConfirmProps] = useState<FbaAppConfirmProps>({} as FbaAppConfirmProps);\n const [loadingProps, setLoadingProps] = useState<FbaAppLoadingProps>();\n\n const [alertKey, setAlertKey] = useState(getUuid());\n const [confirmKey, setConfirmKey] = useState(getUuid());\n const [loadingKey, setLoadingKey] = useState(getUuid());\n\n const dialogDrawerOpen: FbaAppContextApi['dialogDrawerOpen'] = hooks.useCallbackRef((data) => {\n setDrawerProps(data);\n });\n const dialogDrawerClose = hooks.useCallbackRef((e) => {\n setDrawerProps({ ...drawerProps, open: false } as FbaAppDrawerProps);\n drawerProps.onClose?.(e);\n setTimeout(() => {\n setDrawerKey(getUuid());\n }, 200);\n });\n\n const dialogDrawerOpen2: FbaAppContextApi['dialogDrawerOpen2'] = hooks.useCallbackRef((data) => {\n setDrawerProps2(data);\n });\n\n const dialogDrawerClose2 = hooks.useCallbackRef((e) => {\n setDrawerProps2({ ...drawerProps2, open: false } as FbaAppDrawerProps);\n drawerProps2.onClose?.(e);\n setTimeout(() => {\n setDrawerKey2(getUuid());\n }, 200);\n });\n\n const dialogModalOpen: FbaAppContextApi['dialogModalOpen'] = hooks.useCallbackRef((data) => {\n setModalProps(data);\n });\n\n const dialogModalClose = hooks.useCallbackRef(() => {\n setModalProps({ ...modalProps, open: false } as FbaAppModalProps);\n modalProps.onClose?.();\n setTimeout(() => {\n setModalKey(getUuid());\n }, 200);\n });\n\n const dialogModalOpen2: FbaAppContextApi['dialogModalOpen2'] = hooks.useCallbackRef((data) => {\n setModalProps2(data);\n });\n\n const dialogModalClose2 = hooks.useCallbackRef(() => {\n setModalProps2({ ...modalProps2, open: false } as FbaAppModalProps);\n modalProps2.onClose?.();\n setTimeout(() => {\n setModalKey2(getUuid());\n }, 200);\n });\n\n const dialogAlertOpen: FbaAppContextApi['dialogAlertOpen'] = hooks.useCallbackRef((data) => {\n setAlertProps(data);\n });\n\n const dialogAlertClose = hooks.useCallbackRef(() => {\n setAlertProps({ ...alertProps, open: false } as FbaAppAlertProps);\n alertProps.onClose?.();\n setTimeout(() => {\n setAlertKey(getUuid());\n }, 200);\n });\n\n const dialogConfirmOpen: FbaAppContextApi['dialogConfirmOpen'] = hooks.useCallbackRef((data) => {\n setConfirmProps(data);\n });\n\n const dialogConfirmClose = hooks.useCallbackRef(() => {\n setConfirmProps({ ...confirmProps, open: false } as FbaAppConfirmProps);\n confirmProps.onClose?.();\n setTimeout(() => {\n setConfirmKey(getUuid());\n }, 200);\n });\n\n const dialogLoadingOpen: FbaAppContextApi['dialogLoadingOpen'] = hooks.useCallbackRef((data) => {\n setLoadingProps(data);\n });\n\n const dialogLoadingClose = hooks.useCallbackRef(() => {\n setLoadingProps({ ...loadingProps, open: false } as FbaAppLoadingProps);\n setTimeout(() => {\n setLoadingKey(getUuid());\n }, 200);\n });\n\n return (\n <FbaAppContext.Provider\n value={{\n dialogDrawerOpen,\n dialogDrawerClose,\n dialogDrawerOpen2,\n dialogDrawerClose2,\n dialogModalOpen,\n dialogModalClose,\n dialogModalOpen2,\n dialogModalClose2,\n dialogAlertOpen,\n dialogAlertClose,\n dialogConfirmOpen,\n dialogConfirmClose,\n dialogLoadingOpen,\n dialogLoadingClose,\n }}\n >\n <FbaAppDrawer {...drawerProps} onClose={dialogDrawerClose} key={drawerKey}></FbaAppDrawer>\n <FbaAppDrawer {...drawerProps2} onClose={dialogDrawerClose2} key={drawerKey2}></FbaAppDrawer>\n <FbaAppModal {...modalProps} onClose={dialogModalClose} key={modalKey}></FbaAppModal>\n <FbaAppModal {...modalProps2} onClose={dialogModalClose2} key={modalKey2}></FbaAppModal>\n <FbaAppAlert {...alertProps} onClose={dialogAlertClose} key={alertKey}></FbaAppAlert>\n <FbaAppConfirm {...confirmProps} onClose={dialogConfirmClose} key={confirmKey}></FbaAppConfirm>\n <FbaAppLoading {...loadingProps} key={loadingKey}></FbaAppLoading>\n {props.children}\n </FbaAppContext.Provider>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport {\n FbaApp as FbaAppInner,\n useDialogAlert,\n useDialogConfirm,\n useDialogDrawer,\n useDialogDrawer2,\n useDialogLoading,\n useDialogModal,\n useDialogModal2,\n} from './fba-app';\n\nexport const FbaApp = fbaUtils.attachPropertiesToComponent(FbaAppInner, {\n /** 不支持多次弹框,第二个弹框可使用useDialogDrawer2 */\n useDialogDrawer,\n useDialogDrawer2,\n /** 不支持多次弹框,第二个弹框可使用useDialogModal2 */\n useDialogModal,\n useDialogModal2,\n /** 不支持多次弹框 */\n useDialogConfirm,\n /** 不支持多次弹框 */\n useDialogAlert,\n /** 不支持多次弹框 */\n useDialogLoading,\n});\n"],"names":["FbaAppContext","createContext","_createCtx","_createCtx2","useFbaAppDialogModalCtx","CtxProvider","FbaAppModal","props","_otherProps$styles","_otherProps$styles2","titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","localMessage","getFbaLocaleMessage","screenType","fbaHooks","useResponsivePoint","_useState","useState","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","footerNew","useMemoCustom","_localMessage$FbaDial","_jsx","ButtonWrapper","_extends","onClick","hidden","children","FbaDialogModal","type","filter","Boolean","open","customSize","useMemo","height","undefined","isXsSm","includes","width","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","styles","body","contentFt","value","Modal","maskClosable","_jsxs","FlexLayout","direction","fullIndex","centered","destroyOnClose","maxHeight","FbaAppConfirm","FbaAppAlert","_form","useFbaAppDialogDrawerCtx","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","extra","newOperateRender","okHiddenNew","cancelHiddenNew","operateGroup","Space","maxWidth","extraRender","Drawer","contentWrapperStyle","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","BlockLayout","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","dialogDrawerOpen","close","useAppDialogDrawer","useDialogDrawer2","dialogDrawerClose2","appDialogDrawer2","dialogDrawerOpen2","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useAppDialogModal","useDialogModal2","dialogModalClose2","appDialogModal2","dialogModalOpen2","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","drawerProps","setDrawerProps","_useState2","getUuid","drawerKey","setDrawerKey","_useState3","drawerProps2","setDrawerProps2","_useState4","drawerKey2","setDrawerKey2","_useState5","modalProps","setModalProps","_useState6","modalKey","setModalKey","_useState7","modalProps2","setModalProps2","_useState8","modalKey2","setModalKey2","_useState9","alertProps","setAlertProps","_useState0","confirmProps","setConfirmProps","_useState1","loadingProps","setLoadingProps","_useState10","alertKey","setAlertKey","_useState11","confirmKey","setConfirmKey","_useState12","loadingKey","setLoadingKey","setTimeout","Provider","_createElement","key","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/index.tsx","@flatbiz/antd/src/fba-app/dialog-confirm/index.tsx","@flatbiz/antd/src/fba-app/dialog-alert/index.tsx","@flatbiz/antd/src/fba-app/dialog-drawer/context.ts","@flatbiz/antd/src/fba-app/dialog-drawer/index.tsx","@flatbiz/antd/src/fba-app/dialog-loading/index.tsx","@flatbiz/antd/src/fba-app/fba-app.tsx","@flatbiz/antd/src/fba-app/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModalProps } from './dialog-modal';\n\nexport type FbaAppContextApi = {\n dialogDrawerOpen?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose?: (e?) => void;\n\n dialogDrawerOpen2?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose2?: (e?) => void;\n\n dialogModalOpen?: (data: FbaAppModalProps) => void;\n dialogModalClose?: () => void;\n\n dialogModalOpen2?: (data: FbaAppModalProps) => void;\n dialogModalClose2?: () => void;\n\n dialogAlertOpen?: (data: FbaAppAlertProps) => void;\n dialogAlertClose?: () => void;\n\n dialogConfirmOpen?: (data: FbaAppConfirmProps) => void;\n dialogConfirmClose?: () => void;\n\n dialogLoadingOpen?: (data?: FbaAppLoadingProps & { open?: boolean }) => void;\n dialogLoadingClose?: () => void;\n};\n\nexport const FbaAppContext = createContext<FbaAppContextApi>({});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useFbaAppDialogModalCtx, CtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { getFbaLocaleMessage } from '../../_utils/i18n';\nimport { CtxProvider } from './context';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度\n * ```\n * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效\n * 2. 不传、传null值可取消内置尺寸\n * ```\n */\n size?: 'small' | 'middle' | 'large' | null;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onClose?: () => void;\n /**\n * content只在第一次弹起时,执行一次\n */\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * @deprecated 已失效,可通过size属性设置\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n\n titleExtra?: ReactElement;\n /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nexport const FbaAppModal = (props: FbaAppModalProps) => {\n const {\n titleExtra,\n title,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const localMessage = getFbaLocaleMessage();\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n props.onClose?.();\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const footerNew = fbaHooks.useMemoCustom(() => {\n if (footer) {\n return typeof footer === 'function' ? footer(form, footerExtraData) : footer;\n }\n if ((cancelHidden && okHidden) || footer === null) {\n return null;\n }\n return [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || localMessage.FbaDialogModal?.cancelText}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ].filter(Boolean);\n }, [footerExtraData, props.open]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n if (isXsSm) {\n return { width: '90%' };\n }\n if (size == 'large') {\n return {\n height: htmlSize?.height * 0.7,\n width: isXsSm ? '90%' : htmlSize.width * 0.6,\n };\n }\n if (size == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : width < 470 ? 470 : width,\n };\n }\n\n if (size == 'middle') {\n return {\n height: htmlSize?.height * 0.5,\n width: isXsSm ? '90%' : htmlSize.width * 0.5,\n };\n }\n\n return undefined;\n }, [htmlSize?.height, htmlSize?.width, screenType, size]);\n\n const classNameNew = classNames(\n 'fba-dialog-modal',\n { 'fba-dialog-modal-title-extra': !!titleExtra },\n { 'fba-dialog-modal-footer-empty': !footerNew },\n className,\n );\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n\n // content 只会在第一次渲染\n const contentFt = useMemo(() => {\n return typeof content === 'function' ? content(form, { onClose }) : content;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.open]);\n\n return (\n <CtxProvider value={{ rerenderFooter }}>\n <Modal\n maskClosable={true}\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={props.open}\n >\n {contentFt}\n </Modal>\n </CtxProvider>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { FbaAppModal, FbaAppModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type FbaAppConfirmProps = FbaAppModalProps;\n\nexport const FbaAppConfirm = (props: FbaAppConfirmProps) => {\n const className = classNames('fba-dialog-confirm', props.className);\n return (\n <FbaAppModal\n okText=\"确定\"\n size={null}\n width={350}\n cancelText=\"取消\"\n maskClosable={true}\n {...props}\n className={className}\n />\n );\n};\n","import { FbaAppConfirm } from '../dialog-confirm';\nimport { FbaAppModalProps } from '../dialog-modal';\n\n// export type DialogAlertProps = Omit<\n// DialogModalProps,\n// 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n// > & {\n// onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n// };\n\n// export const dialogAlert = {\n// open: (props: DialogAlertProps) => {\n// return dialogConfirm.open({\n// okText: '确定',\n// cancelHidden: true,\n// maskClosable: false,\n// ...props,\n// onOk: props.onClick,\n// } as DialogModalProps);\n// },\n// };\n\nexport type FbaAppAlertProps = Omit<\n FbaAppModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const FbaAppAlert = (props: FbaAppAlertProps) => {\n return (\n <FbaAppConfirm\n okText=\"确定\"\n cancelHidden={true}\n maskClosable={false}\n {...props}\n onOk={(_form, e) => {\n return props.onClick?.(e);\n }}\n />\n );\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useFbaAppDialogDrawerCtx, CtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode, useMemo, useState } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { CtxProvider } from './context';\nimport './style.less';\n\nexport type FbaAppDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n /**\n * content只在第一次弹起时,执行一次\n */\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: DrawerProps['onClose'] }) => ReactElement);\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n okHidden?: boolean;\n cancelHidden?: boolean;\n\n /** 设置操作区域位置 */\n operatePosition?: 'header' | 'footer';\n /** 右上角自定义内容,如果operatePosition=header,此设置无效 */\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n /**\n * ```\n * 1. 自定义弹框操作区域,通过 operatePosition 配置可以自定义位置\n * 2. extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n operateRender?: (form: FormInstance, extraData?: TPlainObject) => ReactElement;\n};\n\nexport const FbaAppDrawer = (props: FbaAppDrawerProps) => {\n const {\n onOk,\n onCancel,\n content,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width,\n okHidden,\n cancelHidden,\n extra,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef((e) => {\n props.onClose?.(e);\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const newOperateRender = fbaHooks.useMemoCustom(() => {\n if (operateRender) {\n return operateRender(form, footerExtraData);\n }\n\n const okHiddenNew = okHidden || okButtonExtraProps?.hidden;\n const cancelHiddenNew = okHidden || okButtonExtraProps?.hidden;\n\n const operateGroup = (\n <Space>\n {cancelHiddenNew ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHiddenNew ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n }, [footerExtraData, props.open]);\n\n const customSize = useMemo(() => {\n if (!screenType) return undefined;\n if (['xs', 'sm'].includes(screenType)) {\n return {\n width: '90%',\n maxWidth: '90%',\n };\n }\n if (width) {\n return { width: width, maxWidth: 'calc(100% - 200px)' };\n }\n return { width: '40%', maxWidth: 'calc(100% - 200px)' };\n }, [screenType, width]);\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n // content 只会在第一次渲染\n const contentFt = useMemo(() => {\n return typeof content === 'function' ? content(form, { onClose }) : content;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.open]);\n\n return (\n <CtxProvider value={{ rerenderFooter }}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n // 5.13.0 新增 styles.wrapper,并废弃 contentWrapperStyle drawerStyle maskStyle 属性\n contentWrapperStyle={{ maxWidth: customSize?.maxWidth }}\n footer={operatePosition === 'footer' ? newOperateRender : null}\n {...otherProps}\n width={customSize?.width}\n styles={{\n ...otherProps.styles,\n // wrapper: {\n // maxWidth: customSize?.maxWidth,\n // ...otherProps.styles?.wrapper,\n // },\n }}\n className={classNames('app-dialog-drawer', otherProps.className)}\n extra={operatePosition === 'header' ? newOperateRender : extraRender}\n open={props.open}\n onClose={onClose}\n >\n {contentFt}\n </Drawer>\n </CtxProvider>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties } from 'react';\nimport { BlockLayout } from '../../block-layout';\nimport './style.less';\n\nexport type FbaAppLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nexport const FbaAppLoading = (props: FbaAppLoadingProps & { open?: boolean }) => {\n const { className, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('fba-dialog-loading', className)}\n open={props.open}\n footer={null}\n closable={false}\n style={{ '--fba-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <BlockLayout className={classNames('fba-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </BlockLayout>\n </Modal>\n );\n};\n","import { getUuid, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ReactNode, useContext, useState } from 'react';\nimport { FbaAppContext, FbaAppContextApi } from './context';\nimport { FbaAppAlert, FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirm, FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawer, FbaAppDrawerProps } from './dialog-drawer';\nimport { useFbaAppDialogDrawerCtx } from './dialog-drawer/context';\nimport { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\nimport { useFbaAppDialogModalCtx } from './dialog-modal/context';\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n */\nexport const useDialogDrawer = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose?.();\n };\n\n return {\n appDialogDrawer: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useAppDialogDrawer: () => {\n const ctx = useFbaAppDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n */\nexport const useDialogDrawer2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose2?.();\n };\n\n return {\n appDialogDrawer2: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useAppDialogDrawer: () => {\n const ctx = useFbaAppDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogModal2\n * ```\n * 1. 配置size属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const useDialogModal = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose?.();\n };\n\n return {\n appDialogModal: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n */\n useAppDialogModal: () => {\n const ctx = useFbaAppDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * ```\n * 1. 配置size属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const useDialogModal2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose2?.();\n };\n\n return {\n appDialogModal2: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n */\n useAppDialogModal: () => {\n const ctx = useFbaAppDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogAlert = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogAlertClose?.();\n };\n\n return {\n appDialogAlert: {\n open: (data: FbaAppAlertProps) => {\n ctx.dialogAlertOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogConfirm = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogConfirmClose?.();\n };\n\n return {\n appDialogConfirm: {\n open: (data: FbaAppConfirmProps) => {\n ctx.dialogConfirmOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogLoading = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogLoadingClose?.();\n };\n\n return {\n appDialogLoading: {\n open: (data?: FbaAppLoadingProps) => {\n ctx.dialogLoadingOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const FbaApp = (props: { children: ReactNode }) => {\n const [drawerProps, setDrawerProps] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey, setDrawerKey] = useState(getUuid());\n\n const [drawerProps2, setDrawerProps2] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey2, setDrawerKey2] = useState(getUuid());\n\n const [modalProps, setModalProps] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey, setModalKey] = useState(getUuid());\n\n const [modalProps2, setModalProps2] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey2, setModalKey2] = useState(getUuid());\n\n const [alertProps, setAlertProps] = useState<FbaAppAlertProps>({} as FbaAppAlertProps);\n const [confirmProps, setConfirmProps] = useState<FbaAppConfirmProps>({} as FbaAppConfirmProps);\n const [loadingProps, setLoadingProps] = useState<FbaAppLoadingProps>();\n\n const [alertKey, setAlertKey] = useState(getUuid());\n const [confirmKey, setConfirmKey] = useState(getUuid());\n const [loadingKey, setLoadingKey] = useState(getUuid());\n\n const dialogDrawerOpen: FbaAppContextApi['dialogDrawerOpen'] = hooks.useCallbackRef((data) => {\n setDrawerProps(data);\n });\n const dialogDrawerClose = hooks.useCallbackRef((e) => {\n setDrawerProps({ ...drawerProps, open: false } as FbaAppDrawerProps);\n drawerProps.onClose?.(e);\n setTimeout(() => {\n setDrawerKey(getUuid());\n }, 200);\n });\n\n const dialogDrawerOpen2: FbaAppContextApi['dialogDrawerOpen2'] = hooks.useCallbackRef((data) => {\n setDrawerProps2(data);\n });\n\n const dialogDrawerClose2 = hooks.useCallbackRef((e) => {\n setDrawerProps2({ ...drawerProps2, open: false } as FbaAppDrawerProps);\n drawerProps2.onClose?.(e);\n setTimeout(() => {\n setDrawerKey2(getUuid());\n }, 200);\n });\n\n const dialogModalOpen: FbaAppContextApi['dialogModalOpen'] = hooks.useCallbackRef((data) => {\n setModalProps(data);\n });\n\n const dialogModalClose = hooks.useCallbackRef(() => {\n setModalProps({ ...modalProps, open: false } as FbaAppModalProps);\n modalProps.onClose?.();\n setTimeout(() => {\n setModalKey(getUuid());\n }, 200);\n });\n\n const dialogModalOpen2: FbaAppContextApi['dialogModalOpen2'] = hooks.useCallbackRef((data) => {\n setModalProps2(data);\n });\n\n const dialogModalClose2 = hooks.useCallbackRef(() => {\n setModalProps2({ ...modalProps2, open: false } as FbaAppModalProps);\n modalProps2.onClose?.();\n setTimeout(() => {\n setModalKey2(getUuid());\n }, 200);\n });\n\n const dialogAlertOpen: FbaAppContextApi['dialogAlertOpen'] = hooks.useCallbackRef((data) => {\n setAlertProps(data);\n });\n\n const dialogAlertClose = hooks.useCallbackRef(() => {\n setAlertProps({ ...alertProps, open: false } as FbaAppAlertProps);\n alertProps.onClose?.();\n setTimeout(() => {\n setAlertKey(getUuid());\n }, 200);\n });\n\n const dialogConfirmOpen: FbaAppContextApi['dialogConfirmOpen'] = hooks.useCallbackRef((data) => {\n setConfirmProps(data);\n });\n\n const dialogConfirmClose = hooks.useCallbackRef(() => {\n setConfirmProps({ ...confirmProps, open: false } as FbaAppConfirmProps);\n confirmProps.onClose?.();\n setTimeout(() => {\n setConfirmKey(getUuid());\n }, 200);\n });\n\n const dialogLoadingOpen: FbaAppContextApi['dialogLoadingOpen'] = hooks.useCallbackRef((data) => {\n setLoadingProps(data);\n });\n\n const dialogLoadingClose = hooks.useCallbackRef(() => {\n setLoadingProps({ ...loadingProps, open: false } as FbaAppLoadingProps);\n setTimeout(() => {\n setLoadingKey(getUuid());\n }, 200);\n });\n\n return (\n <FbaAppContext.Provider\n value={{\n dialogDrawerOpen,\n dialogDrawerClose,\n dialogDrawerOpen2,\n dialogDrawerClose2,\n dialogModalOpen,\n dialogModalClose,\n dialogModalOpen2,\n dialogModalClose2,\n dialogAlertOpen,\n dialogAlertClose,\n dialogConfirmOpen,\n dialogConfirmClose,\n dialogLoadingOpen,\n dialogLoadingClose,\n }}\n >\n <FbaAppDrawer {...drawerProps} onClose={dialogDrawerClose} key={drawerKey}></FbaAppDrawer>\n <FbaAppDrawer {...drawerProps2} onClose={dialogDrawerClose2} key={drawerKey2}></FbaAppDrawer>\n <FbaAppModal {...modalProps} onClose={dialogModalClose} key={modalKey}></FbaAppModal>\n <FbaAppModal {...modalProps2} onClose={dialogModalClose2} key={modalKey2}></FbaAppModal>\n <FbaAppAlert {...alertProps} onClose={dialogAlertClose} key={alertKey}></FbaAppAlert>\n <FbaAppConfirm {...confirmProps} onClose={dialogConfirmClose} key={confirmKey}></FbaAppConfirm>\n <FbaAppLoading {...loadingProps} key={loadingKey}></FbaAppLoading>\n {props.children}\n </FbaAppContext.Provider>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport {\n FbaApp as FbaAppInner,\n useDialogAlert,\n useDialogConfirm,\n useDialogDrawer,\n useDialogDrawer2,\n useDialogLoading,\n useDialogModal,\n useDialogModal2,\n} from './fba-app';\n\nexport const FbaApp = fbaUtils.attachPropertiesToComponent(FbaAppInner, {\n /** 不支持多次弹框,第二个弹框可使用useDialogDrawer2 */\n useDialogDrawer,\n useDialogDrawer2,\n /** 不支持多次弹框,第二个弹框可使用useDialogModal2 */\n useDialogModal,\n useDialogModal2,\n /** 不支持多次弹框 */\n useDialogConfirm,\n /** 不支持多次弹框 */\n useDialogAlert,\n /** 不支持多次弹框 */\n useDialogLoading,\n});\n"],"names":["FbaAppContext","createContext","_createCtx","_createCtx2","useFbaAppDialogModalCtx","CtxProvider","FbaAppModal","props","_otherProps$styles","_otherProps$styles2","titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","localMessage","getFbaLocaleMessage","screenType","fbaHooks","useResponsivePoint","_useState","useState","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","footerNew","useMemoCustom","_localMessage$FbaDial","_jsx","ButtonWrapper","_extends","onClick","hidden","children","FbaDialogModal","type","filter","Boolean","open","customSize","useMemo","height","undefined","isXsSm","includes","width","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","styles","body","contentFt","value","Modal","maskClosable","_jsxs","FlexLayout","direction","fullIndex","centered","destroyOnClose","maxHeight","FbaAppConfirm","FbaAppAlert","_form","useFbaAppDialogDrawerCtx","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","extra","newOperateRender","okHiddenNew","cancelHiddenNew","operateGroup","Space","maxWidth","extraRender","Drawer","contentWrapperStyle","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","BlockLayout","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","dialogDrawerOpen","close","useAppDialogDrawer","useDialogDrawer2","dialogDrawerClose2","appDialogDrawer2","dialogDrawerOpen2","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useAppDialogModal","useDialogModal2","dialogModalClose2","appDialogModal2","dialogModalOpen2","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","drawerProps","setDrawerProps","_useState2","getUuid","drawerKey","setDrawerKey","_useState3","drawerProps2","setDrawerProps2","_useState4","drawerKey2","setDrawerKey2","_useState5","modalProps","setModalProps","_useState6","modalKey","setModalKey","_useState7","modalProps2","setModalProps2","_useState8","modalKey2","setModalKey2","_useState9","alertProps","setAlertProps","_useState0","confirmProps","setConfirmProps","_useState1","loadingProps","setLoadingProps","_useState10","alertKey","setAlertKey","_useState11","confirmKey","setConfirmKey","_useState12","loadingKey","setLoadingKey","setTimeout","Provider","_createElement","key","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -3244,13 +3244,13 @@ export type EasyTableRefApi = {
3244
3244
  /** 外部发起请求服务 */
3245
3245
  onRequest: (params?: TPlainObject) => void;
3246
3246
  /**
3247
- * 已经点击查询后的请求参数,不包含实时输入后未点击查询的参数
3247
+ * 实时输入的请求参数
3248
3248
  */
3249
3249
  getRequestParams: () => TPlainObject;
3250
3250
  /**
3251
- * 实时输入的请求参数
3251
+ * 获取提交查询的请求参数
3252
3252
  */
3253
- getFilterRealTimeParams: () => TPlainObject;
3253
+ getSubmitParams: () => TPlainObject;
3254
3254
  /**
3255
3255
  * 清除Form查询条件
3256
3256
  * ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.5.60",
3
+ "version": "4.5.61",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",