@flatbiz/antd 4.4.40 → 4.4.42
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{isNull as i}from"@dimjs/lang/cjs/is-null";import{_ as o,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isPromise as r}from"@dimjs/lang/cjs/is-promise";import{hooks as l}from"@wove/react/cjs/hooks";import{dom as a}from"@flatbiz/utils";import{useSize as d}from"ahooks";import{Form as s,Modal as m}from"antd";import{useState as c,useMemo as u}from"react";import{createRoot as f}from"react-dom/client";import{ButtonWrapper as p}from"../button-wrapper/index.js";import{C as h}from"../index-7f4ad045.js";import{fbaHooks as v}from"../fba-hooks/index.js";import{FlexLayout as g}from"../flex-layout/index.js";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"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";var w=["title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size"];var k=function e(f){var k,x;var C=f.title,b=f.titleExtra,_=f.divElement,P=f.elementId,E=f.onOk,I=f.onCancel,z=f.okButtonProps,B=f.cancelButtonProps,H=f.content,O=f.configProviderProps,R=f.className,N=f.okHidden,T=f.cancelHidden,F=f.footer,D=f.cancelText,S=f.okText,Y=f.size,q=n(f,w);var A=c(true),L=A[0],U=A[1];var G=s.useForm(),J=G[0];var K=d(document.querySelector("html"));var M=v.useResponsivePoint()||"";var Q=Y===null?undefined:Y===undefined?"middle":Y;var V=l.useCallbackRef((function(){try{delete window[P]}catch(e){}U(false)}));v.useEffectCustom((function(){window[P]=V}),[V]);var W=l.useCallbackRef((function(e){if(I){var t=I(J,e);if(t&&r(t)){return t.then(V)}}return V()}));var X=l.useCallbackRef((function(e){if(E){var t=E(J,e);if(t&&r(t)){return t.then(V)}}return V()}));var Z=l.useCallbackRef((function(){a.removeBodyChild("#"+P);f.afterClose==null?void 0:f.afterClose()}));var
|
|
10
|
+
import{isString as e}from"@dimjs/lang/cjs/is-string";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isNull as i}from"@dimjs/lang/cjs/is-null";import{_ as o,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isPromise as r}from"@dimjs/lang/cjs/is-promise";import{hooks as l}from"@wove/react/cjs/hooks";import{dom as a}from"@flatbiz/utils";import{useSize as d}from"ahooks";import{Form as s,Modal as m}from"antd";import{useState as c,useMemo as u}from"react";import{createRoot as f}from"react-dom/client";import{ButtonWrapper as p}from"../button-wrapper/index.js";import{C as h}from"../index-7f4ad045.js";import{fbaHooks as v}from"../fba-hooks/index.js";import{FlexLayout as g}from"../flex-layout/index.js";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"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";var w=["title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size"];var k=function e(f){var k,x;var C=f.title,b=f.titleExtra,_=f.divElement,P=f.elementId,E=f.onOk,I=f.onCancel,z=f.okButtonProps,B=f.cancelButtonProps,H=f.content,O=f.configProviderProps,R=f.className,N=f.okHidden,T=f.cancelHidden,F=f.footer,D=f.cancelText,S=f.okText,Y=f.size,q=n(f,w);var A=c(true),L=A[0],U=A[1];var G=s.useForm(),J=G[0];var K=d(document.querySelector("html"));var M=v.useResponsivePoint()||"";var Q=Y===null?undefined:Y===undefined?"middle":Y;var V=l.useCallbackRef((function(){try{delete window[P]}catch(e){}U(false)}));v.useEffectCustom((function(){window[P]=V}),[V]);var W=l.useCallbackRef((function(e){if(I){var t=I(J,e);if(t&&r(t)){return t.then(V)}}return V()}));var X=l.useCallbackRef((function(e){if(E){var t=E(J,e);if(t&&r(t)){return t.then(V)}}return V()}));var Z=l.useCallbackRef((function(){a.removeBodyChild("#"+P);f.afterClose==null?void 0:f.afterClose()}));var $=!T||!N?[j(p,o({},B,{onClick:W,hidden:T,children:D||"取消"}),"0"),j(p,o({type:"primary"},z,{onClick:X,hidden:N,children:S||"提交"}),"1")]:undefined;var ee=i(F)?null:(typeof F==="function"?F(J):F)||$||[];var te=u((function(){if(!(K!=null&&K.height)||!M)return undefined;if(["xs","sm"].includes(M)){return{height:(K==null?void 0:K.height)*.7}}if(Q=="large"){return{height:(K==null?void 0:K.height)*.7,width:K.width*.6}}if(Q=="small"){var e=K.width*.3;return{height:(K==null?void 0:K.height)*.4,width:e<470?470:e}}if(Q=="middle"){return{height:(K==null?void 0:K.height)*.55,width:K.width*.5}}return undefined}),[K==null?void 0:K.height,Q,(k=q.styles)==null||(k=k.body)==null?void 0:k.height,q.width,M]);var ie=t("v-dialog-modal",{"v-dialog-modal-title-extra":!!b},{"v-dialog-modal-footer-empty":!ee},R);return j(h,o({},O,{children:j(m,o({title:b?y(g,{direction:"horizontal",fullIndex:0,children:[j("span",{children:C}),b]}):C,maskClosable:true,centered:true,onCancel:V,destroyOnClose:true,width:te==null?void 0:te.width},q,{footer:ee,styles:o({},q.styles,{body:o({height:te==null?void 0:te.height,maxHeight:"calc(100vh - 200px)"},(x=q.styles)==null?void 0:x.body)}),className:ie,open:L,afterClose:Z,getContainer:_,children:typeof H==="function"?H(J,{onClose:V}):H}))}))};var x={open:function e(t){var i=a.bodyAppendDivElement(),n=i.divElement,r=i.elementId;window["__dialog_modal_elementId"]=r;var l=f(n);l.render(j(k,o({},t,{divElement:n,elementId:r})));return{close:function e(){var t,i;(t=(i=window)[r])==null?void 0:t.call(i)}}},close:function t(){try{var i,o;var n=window["__dialog_modal_elementId"];if(e(n))(i=(o=window)[n])==null?void 0:i.call(o)}catch(e){}}};export{x as dialogModal};
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { isNull, isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine } 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 './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:middle\n * ```\n * 1. 如果自定义了width、styles.body.height属性,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 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 /** null则隐藏footer */\n footer?: null | ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\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 ...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 sizeFt = size === null ? undefined : size === undefined ? 'middle' : size;\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 operateGroup =\n cancelHidden || okHidden\n ? [\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 ]\n : undefined;\n\n const footerNew = isNull(footer)\n ? null\n : (typeof footer === 'function' ? footer(form) : footer) || operateGroup;\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n if (['xs', 'sm'].includes(screenType)) {\n return {\n height: (htmlSize?.height as number) * 0.7,\n };\n }\n if (sizeFt == 'large') {\n return {\n height: (htmlSize?.height as number) * 0.7,\n width: htmlSize.width * 0.6,\n };\n }\n if (sizeFt == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: (htmlSize?.height as number) * 0.4,\n width: width < 470 ? 470 : width,\n };\n }\n\n if (sizeFt == 'middle') {\n return {\n height: (htmlSize?.height as number) * 0.55,\n width: htmlSize.width * 0.5,\n };\n }\n\n return undefined;\n }, [htmlSize?.height, sizeFt, otherProps.styles?.body?.height, otherProps.width, screenType]);\n\n const classNameNew = classNames(\n 'v-dialog-modal',\n { 'v-dialog-modal-title-extra': !!titleExtra },\n { 'v-dialog-modal-footer-empty': !footerNew },\n className,\n );\n\n return (\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: 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 {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n </ConfigProviderWrapper>\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属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 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"],"names":["ModalRender","props","_otherProps$styles","_otherProps$styles2","title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","sizeFt","undefined","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","footerNew","_isNull","customSize","useMemo","height","includes","width","styles","body","classNameNew","_classNames","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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { isNull, isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine } 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 './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:middle\n * ```\n * 1. 如果自定义了width、styles.body.height属性,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 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 /** null则隐藏footer */\n footer?: null | ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\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 ...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 sizeFt = size === null ? undefined : size === undefined ? 'middle' : size;\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 operateGroup =\n !cancelHidden || !okHidden\n ? [\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 ]\n : undefined;\n\n const footerNew = isNull(footer)\n ? null\n : (typeof footer === 'function' ? footer(form) : footer) || operateGroup || [];\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n if (['xs', 'sm'].includes(screenType)) {\n return {\n height: (htmlSize?.height as number) * 0.7,\n };\n }\n if (sizeFt == 'large') {\n return {\n height: (htmlSize?.height as number) * 0.7,\n width: htmlSize.width * 0.6,\n };\n }\n if (sizeFt == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: (htmlSize?.height as number) * 0.4,\n width: width < 470 ? 470 : width,\n };\n }\n\n if (sizeFt == 'middle') {\n return {\n height: (htmlSize?.height as number) * 0.55,\n width: htmlSize.width * 0.5,\n };\n }\n\n return undefined;\n }, [htmlSize?.height, sizeFt, otherProps.styles?.body?.height, otherProps.width, screenType]);\n\n const classNameNew = classNames(\n 'v-dialog-modal',\n { 'v-dialog-modal-title-extra': !!titleExtra },\n { 'v-dialog-modal-footer-empty': !footerNew },\n className,\n );\n\n return (\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: 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 {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n </ConfigProviderWrapper>\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属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 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"],"names":["ModalRender","props","_otherProps$styles","_otherProps$styles2","title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","sizeFt","undefined","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","footerNew","_isNull","customSize","useMemo","height","includes","width","styles","body","classNameNew","_classNames","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"],"mappings":"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"}
|
package/esm/easy-table/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './../fba-utils/index.css';
|
|
3
|
+
import './../button-wrapper/index.css';
|
|
4
|
+
import './../config-provider-wrapper/index.css';
|
|
3
5
|
import './../fba-hooks/index.css';
|
|
6
|
+
import './../types/index.css';
|
|
4
7
|
import './../flex-layout/index.css';
|
|
5
8
|
import './../icon-wrapper/index.css';
|
|
6
9
|
import './../pagination-wrapper/index.css';
|
|
@@ -8,9 +11,6 @@ import './../svg-http-view/index.css';
|
|
|
8
11
|
import './../table-title-tooltip/index.css';
|
|
9
12
|
import './../tips-wrapper/index.css';
|
|
10
13
|
import './../block-layout/index.css';
|
|
11
|
-
import './../button-wrapper/index.css';
|
|
12
|
-
import './../config-provider-wrapper/index.css';
|
|
13
|
-
import './../types/index.css';
|
|
14
14
|
import './../easy-form/index.css';
|
|
15
15
|
import './../box-grid/index.css';
|
|
16
16
|
import './../form-wrapper/index.css';
|
|
@@ -19,5 +19,5 @@ import './../form-grid/index.css';
|
|
|
19
19
|
import './../table-scrollbar/index.css';
|
|
20
20
|
import './index.css';
|
|
21
21
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
22
|
-
import{fbaUtils as e}from"../fba-utils/index.js";import{_ as n,a as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as r}from"@dimjs/lang/cjs/is-undefined";import{get as a}from"@dimjs/utils/cjs/get";import{isString as o}from"@dimjs/lang/cjs/is-string";import{isArray as l}from"@dimjs/lang/cjs/is-array";import{hooks as s}from"@wove/react/cjs/hooks";import{cloneState as u}from"@dimjs/model";import{noop as d,localStorageCache as c,isUndefinedOrNull as f,getUuid as p,isMacEnv as m}from"@flatbiz/utils";import{Drawer as g,Table as v,Checkbox as h,Popover as y,Form as C,message as S}from"antd";import{createContext as x,useState as b,Fragment as F,forwardRef as j,useMemo as z,useRef as w,useImperativeHandle as R,cloneElement as q,useContext as N,Children as K}from"react";import{fbaHooks as P}from"../fba-hooks/index.js";import{FlexLayout as k}from"../flex-layout/index.js";import{IconWrapper as T}from"../icon-wrapper/index.js";import{P as I,S as _}from"../index-6677fbfc.js";import{SvgHttpView as L}from"../svg-http-view/index.js";import{TableTitleTooltip as D}from"../table-title-tooltip/index.js";import{TipsWrapper as E}from"../tips-wrapper/index.js";import{jsx as V,jsxs as A}from"react/jsx-runtime";import{Model as B}from"@dimjs/model-react";import O from"@ant-design/icons/es/icons/DownOutlined";import W from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as U}from"react-is";import{BlockLayout as G}from"../block-layout/index.js";import{ButtonWrapper as H}from"../button-wrapper/index.js";import{EasyForm as Y}from"../easy-form/index.js";import{u as Q}from"../use-responsive-point-21b8c601.js";import{FormGrid as $}from"../form-grid/index.js";import{TableScrollbar as J}from"../table-scrollbar/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@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";var M=x({onRequest:d,tableList:[],getEasyTableRef:function e(){}});var X=function e(n){var i=b(n.initSelectedRowKeys||[]),t=i[0],r=i[1];var a={type:"checkbox",selectedRowKeys:t,onChange:function e(i){r(i);n.onChange(i);if(n.cacheKey){c.set("easy_tab_"+n.cacheKey,{keys:i})}}};var o=[{title:"字段名称",dataIndex:"title",render:function e(n,i){return i["_isFoldTitle"]||n}},{title:"字段Key",dataIndex:"dataIndex"}];return V(F,{children:V(g,{title:"选择字段",open:n.open,onClose:n.onClose,width:"35%",styles:{body:{padding:15}},children:V(v,{bordered:true,size:"small",columns:o,rowSelection:a,rowKey:"dataIndex",pagination:false,scroll:{x:"max-content"},dataSource:n.dataList})})})};var Z=function e(n){var i=b(n.initSelectedRowKeys||[]),t=i[0],r=i[1];var a=function e(i){r(i);n.onChange(i);if(n.cacheKey){c.set("easy_tab_"+n.cacheKey,{keys:i})}};var o=V(F,{children:V(h.Group,{defaultValue:t,onChange:a,value:t,style:{display:"flex",flexDirection:"column"},children:n.dataList.map((function(e){var n=e["_isFoldTitle"]||e.title;return V(h,{value:e.dataIndex,style:{padding:"0 0 5px 0"},children:n},e.dataIndex)}))})});var l=function e(i){if(i.target.checked){a(n.dataList.map((function(e){return e.dataIndex})))}else{a([])}};return V(y,{content:o,title:V(h,{checked:t.length===n.dataList.length,onChange:l,children:"全选(字段列表)"}),placement:"bottomRight",overlayClassName:"fold-operate-popiver",children:n.children})};var ee={queryCondition:{},isInit:true};var ne={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=n({},e.queryCondition,i)}},resetFilterCondition:function e(i){return function(e){e.queryCondition=n({},ee.queryCondition,i)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:ee};var ie={};var te=function e(n){if(!ie[n]){ie[n]=B(ne)}return ie[n]};var re=["tooltip","tipsWrapperProps","title","hidden","isFold"];var ae=j((function(e,d){var f;var p=b(),m=p[0],g=p[1];var v=b(0),h=v[0],y=v[1];var x=b(false),F=x[0],j=x[1];var N=s.useId(undefined,"easy-table-key");var K=e.columnFoldConfig;var _=b(false),B=_[0],O=_[1];var W=b((function(){if(K!=null&&K.cacheKey){var e;var n=c.get("easy_tab_"+K.cacheKey);var i=l(n==null?void 0:n.keys)?n==null||(e=n.keys)==null?void 0:e.filter((function(e){return o(e)})):[];return i.length>0?i:(K==null?void 0:K.initSelectedKeys)||[]}else{return(K==null?void 0:K.initSelectedKeys)||[]}})),U=W[0],G=W[1];var H=z((function(){if(e.cacheSwitch===true){return location.pathname}if(typeof e.cacheSwitch==="string"){return e.cacheSwitch}return N}),[N,e.cacheSwitch]);var Y=te(H).useStore(),Q=Y[0],$=Y[1];var J=e.pageSize||((f=e.initialPaginationParams)==null?void 0:f.pageSize)||10;var ee=e.initRequest===undefined?true:e.initRequest;var ne=w(false);var ie=w();var ae=w([]);var oe=b(),le=oe[0],se=oe[1];var ue=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var de=C.useForm(e.form),ce=de[0];var fe=s.useCallbackRef((function(n){return new Promise((function(i,t){var r,o,s,d,c,f,p,m,v,h,C,x;var b=function(){try{return i()}catch(e){return t(e)}};var F=function(n){try{j(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(n)}else{void S.error(n.message)}return b()}catch(e){return t(e)}};try{j(true);return Promise.resolve($.updateFilterCondition(n)).then((function(n){try{r=n;o=u(r.queryCondition||{});s=e.serviceConfig,d=s.requestParamsAdapter,c=s.onRequest,f=s.requestResultAdapter,p=s.dynamicColumsAdapter;m=d?d(o):o;return Promise.resolve(c(m)).then((function(n){try{v=n||{};ie.current=v;e.onDataSourceChange==null?void 0:e.onDataSourceChange(v);h=v;if(f){h=f(v)}if(p){C=p(v,ae.current);se(C)}x=a(h,ue.list);g(l(x)?x:[]);y(a(h,ue.total));j(false);return b()}catch(e){return F(e)}}),F)}catch(e){return F(e)}}),F)}catch(e){F(e)}}))}));P.useEffectCustom((function(){var i=Pe();if(ee!==false||!Q.isInit){if(i){var t;void fe(n((t={},t[ue.pageNo]=1,t[ue.pageSize]=J,t),e.initialValues,Q.queryCondition))}else{void fe(e.initialValues)}}else{void $.updateFilterCondition(e.initialValues)}void $.updateInitStatus()}),[]);var pe=s.useCallbackRef((function(e){return new Promise((function(n,i){return Promise.resolve($.resetFilterCondition()).then((function(t){try{ce.resetFields();if(e){void $.updateFilterCondition(e);ce.setFieldsValue(e)}return n()}catch(e){return i(e)}}),i)}))}));var me=function e(n,i){if(Pe()){var t;return t={},t[ue.pageNo]=n,t[ue.pageSize]=i||J,t}else{var r;return r={},r[ue.pageNo]=undefined,r[ue.pageSize]=undefined,r}};var ge=s.useCallbackRef((function(i){return new Promise((function(t,r){var a;a=n({},me(1,Q.queryCondition[ue.pageSize]),e.initialValues,i);return Promise.resolve($.resetFilterCondition(a)).then((function(e){try{ce.resetFields();if(i){ce.setFieldsValue(i)}void fe(a);return t()}catch(e){return r(e)}}),r)}))}));var ve=s.useCallbackRef((function(){return n({},Q.queryCondition,ce.getFieldsValue())}));var he=s.useCallbackRef((function(){O(true)}));var ye=s.useCallbackRef((function(){O(false)}));var Ce=function n(){return{onRequest:fe,clearQueryCondition:pe,getRequestParams:ve,onResetRequest:ge,form:ce,getDataSource:function e(){return ie.current},onFilterDataSource:function e(n){g(n)},onClearDataSource:function e(){y(0);g([])},onUpdateDataSource:function n(i){g(i);ie.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)},columnFoldTriggerRender:function n(i){var t;if(((t=e.columnFoldConfig)==null?void 0:t.triggerType)==="drawer"){return q(i,{onClick:he})}return V(Z,{dataList:qe,onChange:Ne,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:U,children:i})},loading:F}};R(d,(function(){return Ce()}));var Se=function e(n){ne.current=n};var xe=function e(n){ae.current=n};var be=function i(){var t=ce.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},t,me(1,Q.queryCondition[ue.pageSize])))}else{void fe(n({},t,me(1,Q.queryCondition[ue.pageSize])))}};var Fe=r(e.isFull)?true:e.isFull;var je=t("fba-easy-table",{"fba-easy-table-full":Fe,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var ze=z((function(){return n({showSizeChanger:true,current:Q.queryCondition[ue.pageNo]||1,pageSize:Q.queryCondition[ue.pageSize]||J,total:h,showTotal:function e(n){return"共 "+n+" 条记录"}},e.pagination)}),[ue.pageNo,ue.pageSize,J,e.pagination,Q.queryCondition,h]);var we=le?le:ae.current;var Re=z((function(){var e=we.map((function(e){var t=e.tooltip,r=e.tipsWrapperProps,a=e.title,o=e.hidden,l=e.isFold,s=i(e,re);if(o)return null;if(l&&!U.includes(e.dataIndex))return null;if(typeof a==="string"&&r){if(typeof r==="string"){return n({},s,{title:V(E,{tipType:"popover",popoverProps:{content:r},children:a})})}return n({},s,{title:V(E,n({},r,{children:a}))})}if(typeof a==="string"&&!!t){return n({},s,{title:V(D,{tooltip:t,title:a})})}return e})).filter(Boolean);return[].concat(e)}),[we,U]);var qe=we.filter((function(e){return!e.hidden&&e.isFold&&e.dataIndex}));var Ne=function e(n){G(n);K==null||K.onChange==null?void 0:K.onChange(n)};Re=z((function(){if(K!=null&&K.hidden)return Re;var e=Re[Re.length-1];if(qe.length>0&&Re.length>0){var n=Re.find((function(e){return e["_isFoldColumn"]}));if(n&&e.dataIndex!==n.dataIndex){n.title=n["_isFoldTitle"];n["_isFoldColumn"]=false}if(!e["_isFoldColumn"]){e["_isFoldTitle"]=e["_isFoldTitle"]||e.title;e["_isFoldColumn"]=true;var i=K==null?void 0:K.triggerType;e.title=A(k,{direction:"horizontal",fullIndex:0,style:{alignItems:"center"},children:[V("span",{children:e.title}),V("div",{style:{padding:"0 5px 0 20px",display:"flex"},children:i==="drawer"?V(T,{onClick:he,text:K==null?void 0:K.text,size:"small",icon:(K==null?void 0:K.icon)||V(L,{svgPath:"ionic/list-circle",color:"#868686"}),hoverTips:(K==null?void 0:K.hoverTipText)||"字段列表",style:{padding:0,margin:0}}):V(Z,{dataList:qe,onChange:Ne,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:U,children:V(T,{text:K==null?void 0:K.text,style:{padding:0,margin:0},size:"small",icon:(K==null?void 0:K.icon)||V(L,{svgPath:"ionic/list-circle",color:"#868686"})})})})]})}}return Re}),[Re,qe,K]);var Ke=s.useCallbackRef((function(n,i){var t,r;void fe((t={},t[ue.pageSize]=i,t[ue.pageNo]=n,t));(r=e.pagination)==null||r.onChange==null?void 0:r.onChange(n,i)}));var Pe=function n(){return e.paginationFixed||ne.current};s.useUpdateEffect((function(){if(e.paginationFixed){var n;fe((n={},n[ue.pageSize]=Q.queryCondition[ue.pageSize]||J,n[ue.pageNo]=1,n))}else{var i;fe((i={},i[ue.pageSize]=undefined,i[ue.pageNo]=undefined,i))}}),[e.paginationFixed]);var ke=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var Te=n({overflowY:e.filterFixed||e.paginationFixed?"hidden":"auto"},e.style);var Ie=typeof e.children==="function"?e.children(ie.current):e.children;return A(M.Provider,{value:{onSetBaseColumns:xe,getEasyTableRef:Ce,modelKey:H,onRequest:fe,tableDataSource:m,tableTotal:h,loading:F,fieldNames:ue,pageSize:J,onSetPaginationStatus:Se,getPaginationStatus:Pe,onFormFinish:be,form:ce,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[],columns:Re,initialValues:e.initialValues},children:[e.paginationFixed?A("div",{className:ke,style:Te,children:[V("div",{className:je,children:Ie}),h>0&&V("div",{className:"fba-easy-table-pagination",children:V(I,n({size:"small"},ze,{onChange:Ke}))})]}):V("div",{className:ke,style:e.style,children:Ie}),V(X,{dataList:qe,onClose:ye,open:B,onChange:Ne,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:U})]})}));var oe=function e(i){var a=Q()||"md";var o=N(M);var l=i.queryButtonProps,u=i.resetButtonProps,d=i.filterOperate,c=i.formClassName,f=c===void 0?"":c,p=i.defaultResetButtonTriggerRequest,m=i.filterWrapperStyle,g=i.filterWrapperClassName,v=i.rightOperateAreaAppendType,h=i.easyFormProps;var y=o.modelKey,C=o.foldKeys,S=o.fieldNames,x=o.onRequest,F=o.pageSize,j=o.getPaginationStatus,w=o.initialValues,R=o.form,q=o.onFormFinish;var P=typeof i.children==="function"?i.children(R):i.children;var k=v||"cover";var T=z((function(){if(U(P)){return K.toArray(P.props.children)}else{return K.toArray(P)}}),[P]);var I=b(false),_=I[0],L=I[1];var D=te(y).useStore(),E=D[0],B=D[1];var J=s.useCallbackRef((function(){return new Promise((function(e,i){var t;return Promise.resolve(B.resetFilterCondition()).then((function(a){try{R.resetFields();if(r(p)||p){if(j()){x(n((t={},t[S.pageNo]=1,t[S.pageSize]=F,t),w))}else{x(w)}}return e()}catch(e){return i(e)}}),i)}))}));var X=z((function(){var e=[!(l!=null&&l.hidden)?V(H,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"):null,!(u!=null&&u.hidden)?V(H,n({onClick:J},u,{children:(u==null?void 0:u.text)||"重置"}),"2"):null].filter(Boolean);var i=d==null?void 0:d(R);var t=i==null?void 0:i.rightList;var r=(i==null?void 0:i.leftList)||[];var a=e;if(t){if(k==="afterAppend"){a=[].concat(e,t)}else if(k==="beforeAppend"){a=[].concat(t,e)}else{a=t}}if(C.length>0){var o=V(H,{type:"link",style:{padding:"0"},onClick:function e(){L(!_)},children:_?A("span",{children:["收起",V(W,{style:{marginLeft:3,fontSize:12}})]}):A("span",{children:["展开",V(O,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return T.map((function(e,n){if(!_&&C.find((function(n){return".$"+n===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return V($.Col,{children:e},n)})).filter(Boolean).concat(V($.OperateCol,n({},i,{leftList:r,rightList:a}),999))}),[T,d,C,R,J,_,l,u,k]);var Z=a==="xs"?"left":(h==null?void 0:h.labelAlign)||"right";return V(G,{className:t("easy-table-filter",g),style:m,children:V(Y,n({form:R,autoComplete:"off",onFinish:q,initialValues:n({},w,E.queryCondition),className:f,style:i.formStyle,isPure:true,labelWidth:"80",formItemGap:"15"},h,{labelAlign:Z,children:i.isPure?P:V($.Row,{gutter:[15,0],gridSize:i.formGridSize,children:X})}))})};var le=function e(){var n=N(M);return n.getEasyTableRef()};var se=function e(){var n=N(M);return{current:n.getEasyTableRef()}};var ue=["children","rowKey","pagination","isSync"];var de=function e(r){var a=N(M);var o=r.children,l=r.rowKey,u=r.pagination,d=r.isSync,c=i(r,ue);var g=a.modelKey,h=a.fieldNames,y=a.onRequest,C=a.tableDataSource,S=a.pageSize,x=a.tableTotal,b=a.loading,j=a.paginationFixed,w=a.onSetPaginationStatus;var R=te(g).useStore(),q=R[0];P.useEffectCustom((function(){a.onSetBaseColumns(r.columns||[])}),[r.columns]);P.useEffectCustom((function(){w(u!==false)}),[u]);s.useUpdateEffect((function(){if(!j){if(u!==false){var e;y((e={},e[h.pageSize]=q.queryCondition[h.pageSize]||S,e[h.pageNo]=1,e))}else{var n;y((n={},n[h.pageSize]=undefined,n[h.pageNo]=undefined,n))}}}),[u]);var K=z((function(){if(j||u===false)return false;return n({showSizeChanger:true,current:q.queryCondition[h.pageNo]||1,pageSize:q.queryCondition[h.pageSize]||S,total:x,showTotal:function e(n){return"共 "+n+" 条记录"}},r.pagination,{selectComponentClass:_})}),[h.pageNo,h.pageSize,S,u,j,r.pagination,q.queryCondition,x]);var k=function e(n,i,t,a){if(a.action==="paginate"&&K){var o;y((o={},o[h.pageSize]=n.pageSize,o[h.pageNo]=n.current,o))}else{r.onChange==null?void 0:r.onChange(n,i,t,a)}};var T=z((function(){if(!C)return undefined;if(C.length===0){return[]}if(typeof l==="string"&&f(C[0][l])){return C.map((function(e){e[l]=p();return e}))}return C}),[C,l]);var I=function e(){if(d&&!T){return A(F,{children:[o,V(v,{size:"small",scroll:{x:"max-content"},bordered:true,rowKey:l,columns:a.columns,loading:true},"1")]})}if(m()){return A(F,{children:[o,V(v,n({size:"small",scroll:{x:"max-content"},bordered:true},c,{columns:a.columns,pagination:K,rowKey:l,onChange:k,loading:b,dataSource:T}),"2")]})}return A(F,{children:[o,V(J,{children:V(v,n({size:"small",scroll:{x:"max-content"},bordered:true},c,{columns:a.columns,pagination:K,rowKey:l,onChange:k,loading:b,dataSource:T}),"3")})]})};return V(G,{className:t("easy-table-table",{"ett-empty-show-small":r.emptyShowSize==="small"},r.tableWrapperClassName),style:r.tableWrapperStyle,children:I()})};var ce=e.attachPropertiesToComponent(ae,{Filter:oe,Table:de,useEasyTablRef:se,useEasyTable:le});export{ce as EasyTable};
|
|
22
|
+
import{fbaUtils as e}from"../fba-utils/index.js";import{_ as n,a as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isUndefined as r}from"@dimjs/lang/cjs/is-undefined";import{get as a}from"@dimjs/utils/cjs/get";import{isString as o}from"@dimjs/lang/cjs/is-string";import{isArray as l}from"@dimjs/lang/cjs/is-array";import{hooks as s}from"@wove/react/cjs/hooks";import{cloneState as u}from"@dimjs/model";import{noop as d,localStorageCache as c,isUndefinedOrNull as f,getUuid as p,isMacEnv as m}from"@flatbiz/utils";import{Drawer as v,Table as g,Checkbox as h,Popover as y,Form as C,message as S}from"antd";import{createContext as x,useState as b,Fragment as F,forwardRef as j,useRef as z,useMemo as w,useEffect as R,useImperativeHandle as q,cloneElement as N,useContext as K,Children as P}from"react";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{fbaHooks as T}from"../fba-hooks/index.js";import{FlexLayout as I}from"../flex-layout/index.js";import{IconWrapper as _}from"../icon-wrapper/index.js";import{P as D,S as L}from"../index-6677fbfc.js";import{SvgHttpView as E}from"../svg-http-view/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as A}from"../tips-wrapper/index.js";import{jsx as B,jsxs as O}from"react/jsx-runtime";import{Model as W}from"@dimjs/model-react";import U from"@ant-design/icons/es/icons/DownOutlined";import G from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as H}from"react-is";import{BlockLayout as Y}from"../block-layout/index.js";import{EasyForm as Q}from"../easy-form/index.js";import{u as $}from"../use-responsive-point-21b8c601.js";import{FormGrid as J}from"../form-grid/index.js";import{TableScrollbar as M}from"../table-scrollbar/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/QuestionCircleOutlined";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";var X=x({onRequest:d,tableList:[],getEasyTableRef:function e(){}});var Z=function e(n){var t=b(n.initSelectedRowKeys||[]),i=t[0],r=t[1];var a={type:"checkbox",selectedRowKeys:i,onChange:function e(t){r(t);n.onChange(t);if(n.cacheKey){c.set("easy_tab_"+n.cacheKey,{keys:t})}}};var o=[{title:"字段名称",dataIndex:"title",render:function e(n,t){return t["_isFoldTitle"]||n}},{title:"字段Key",dataIndex:"dataIndex"}];return B(F,{children:B(v,{title:"选择字段",open:n.open,onClose:n.onClose,width:"35%",styles:{body:{padding:15}},children:B(g,{bordered:true,size:"small",columns:o,rowSelection:a,rowKey:"dataIndex",pagination:false,scroll:{x:"max-content"},dataSource:n.dataList})})})};var ee=function e(n){var t=b(n.initSelectedRowKeys||[]),i=t[0],r=t[1];var a=function e(t){r(t);n.onChange(t);if(n.cacheKey){c.set("easy_tab_"+n.cacheKey,{keys:t})}};var o=B(F,{children:B(h.Group,{defaultValue:i,onChange:a,value:i,style:{display:"flex",flexDirection:"column"},children:n.dataList.map((function(e){var n=e["_isFoldTitle"]||e.title;return B(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 B(y,{content:o,title:B(h,{checked:i.length===n.dataList.length,onChange:l,children:"全选(字段列表)"}),placement:"bottomRight",overlayClassName:"fold-operate-popiver",children:n.children})};var ne={queryCondition:{},isInit:true};var te={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},ne.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:ne};var ie={};var re=function e(n){if(!ie[n]){ie[n]=W(te)}return ie[n]};var ae=["tooltip","tipsWrapperProps","title","hidden","isFold"];var oe=j((function(e,d){var f;var p=b(),m=p[0],v=p[1];var g=b(0),h=g[0],y=g[1];var x=b(false),F=x[0],j=x[1];var K=s.useId(undefined,"easy-table-key");var P=e.columnFoldConfig;var L=e.asyncColumnRequest;var W=b(false),U=W[0],G=W[1];var H=z({});var Y=b({}),Q=Y[0],$=Y[1];var J=b((function(){if(P!=null&&P.cacheKey){var e;var n=c.get("easy_tab_"+P.cacheKey);var t=l(n==null?void 0:n.keys)?n==null||(e=n.keys)==null?void 0:e.filter((function(e){return o(e)})):[];return t.length>0?t:(P==null?void 0:P.initSelectedKeys)||[]}else{return(P==null?void 0:P.initSelectedKeys)||[]}})),M=J[0],ne=J[1];var te=w((function(){if(e.cacheSwitch===true){return location.pathname}if(typeof e.cacheSwitch==="string"){return e.cacheSwitch}return K}),[K,e.cacheSwitch]);var ie=re(te).useStore(),oe=ie[0],le=ie[1];var se=e.pageSize||((f=e.initialPaginationParams)==null?void 0:f.pageSize)||10;var ue=e.initRequest===undefined?true:e.initRequest;var de=z(false);var ce=z();var fe=z([]);var pe=b(),me=pe[0],ve=pe[1];var ge=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var he=C.useForm(e.form),ye=he[0];var Ce=s.useCallbackRef((function(n){return new Promise((function(t,i){var r,o,s,d,c,f,p,m,g,h,C,x;var b=function(){try{return t()}catch(e){return i(e)}};var F=function(n){try{j(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(n)}else{void S.error(n.message)}return b()}catch(e){return i(e)}};try{j(true);return Promise.resolve(le.updateFilterCondition(n)).then((function(n){try{r=n;o=u(r.queryCondition||{});s=e.serviceConfig,d=s.requestParamsAdapter,c=s.onRequest,f=s.requestResultAdapter,p=s.dynamicColumsAdapter;m=d?d(o):o;return Promise.resolve(c(m)).then((function(n){try{g=n||{};ce.current=g;e.onDataSourceChange==null?void 0:e.onDataSourceChange(g);h=g;if(f){h=f(g)}if(p){C=p(g,fe.current);ve(C)}x=a(h,ge.list);v(l(x)?x:[]);y(a(h,ge.total));j(false);return b()}catch(e){return F(e)}}),F)}catch(e){return F(e)}}),F)}catch(e){F(e)}}))}));T.useEffectCustom((function(){var t=Ee();if(ue!==false||!oe.isInit){if(t){var i;void Ce(n((i={},i[ge.pageNo]=1,i[ge.pageSize]=se,i),e.initialValues,oe.queryCondition))}else{void Ce(e.initialValues)}}else{void le.updateFilterCondition(e.initialValues)}void le.updateInitStatus()}),[]);R((function(){if(L!=null&&L.length){var e=function e(){var i;var r=L[t];H.current=n({},H.current,(i={},i[r.dataIndex]={loading:true},i));$(H.current);r.onRequest().then((function(e){var t;H.current=n({},H.current,(t={},t[r.dataIndex]={loading:false,respData:e},t));$(H.current)})).catch((function(e){var t;console.error(e==null?void 0:e.message);H.current=n({},H.current,(t={},t[r.dataIndex]={loading:false},t));$(H.current)}))};for(var t=0;t<L.length;t++){e()}}}),[]);var Se=s.useCallbackRef((function(e){return new Promise((function(n,t){return Promise.resolve(le.resetFilterCondition()).then((function(i){try{ye.resetFields();if(e){void le.updateFilterCondition(e);ye.setFieldsValue(e)}return n()}catch(e){return t(e)}}),t)}))}));var xe=function e(n,t){if(Ee()){var i;return i={},i[ge.pageNo]=n,i[ge.pageSize]=t||se,i}else{var r;return r={},r[ge.pageNo]=undefined,r[ge.pageSize]=undefined,r}};var be=s.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},xe(1,oe.queryCondition[ge.pageSize]),e.initialValues,t);return Promise.resolve(le.resetFilterCondition(a)).then((function(e){try{ye.resetFields();if(t){ye.setFieldsValue(t)}void Ce(a);return i()}catch(e){return r(e)}}),r)}))}));var Fe=s.useCallbackRef((function(){return n({},oe.queryCondition,ye.getFieldsValue())}));var je=s.useCallbackRef((function(){G(true)}));var ze=s.useCallbackRef((function(){G(false)}));var we=function n(){return{onRequest:Ce,clearQueryCondition:Se,getRequestParams:Fe,onResetRequest:be,form:ye,getDataSource:function e(){return ce.current},onFilterDataSource:function e(n){v(n)},onClearDataSource:function e(){y(0);v([])},onUpdateDataSource:function n(t){v(t);ce.current=t;e.onDataSourceChange==null?void 0:e.onDataSourceChange(t)},columnFoldTriggerRender:function n(t){var i;if(((i=e.columnFoldConfig)==null?void 0:i.triggerType)==="drawer"){return N(t,{onClick:je})}return B(ee,{dataList:_e,onChange:De,cacheKey:P==null?void 0:P.cacheKey,initSelectedRowKeys:M,children:t})},loading:F}};q(d,(function(){return we()}));var Re=function e(n){de.current=n};var qe=function e(n){fe.current=n};var Ne=function t(){var i=ye.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,xe(1,oe.queryCondition[ge.pageSize])))}else{void Ce(n({},i,xe(1,oe.queryCondition[ge.pageSize])))}};var Ke=r(e.isFull)?true:e.isFull;var Pe=i("fba-easy-table",{"fba-easy-table-full":Ke,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var ke=w((function(){return n({showSizeChanger:true,current:oe.queryCondition[ge.pageNo]||1,pageSize:oe.queryCondition[ge.pageSize]||se,total:h,showTotal:function e(n){return"共 "+n+" 条记录"}},e.pagination)}),[ge.pageNo,ge.pageSize,se,e.pagination,oe.queryCondition,h]);var Te=me?me:fe.current;var Ie=w((function(){var e=Te.map((function(e){var i=e.tooltip,r=e.tipsWrapperProps,a=e.title,o=e.hidden,l=e.isFold,s=t(e,ae);if(o)return null;if(l&&!M.includes(e.dataIndex))return null;if(typeof a==="string"&&r){if(typeof r==="string"){return n({},s,{title:B(A,{tipType:"popover",popoverProps:{content:r},children:a})})}return n({},s,{title:B(A,n({},r,{children:a}))})}if(typeof a==="string"&&!!i){return n({},s,{title:B(V,{tooltip:i,title:a})})}return e})).filter(Boolean);return[].concat(e)}),[Te,M]);var _e=Te.filter((function(e){return!e.hidden&&e.isFold&&e.dataIndex}));var De=function e(n){ne(n);P==null||P.onChange==null?void 0:P.onChange(n)};Ie=w((function(){if(P!=null&&P.hidden)return Ie;var e=Ie[Ie.length-1];if(_e.length>0&&Ie.length>0){var n=Ie.find((function(e){return e["_isFoldColumn"]}));if(n&&e.dataIndex!==n.dataIndex){n.title=n["_isFoldTitle"];n["_isFoldColumn"]=false}if(!e["_isFoldColumn"]){e["_isFoldTitle"]=e["_isFoldTitle"]||e.title;e["_isFoldColumn"]=true;var t=P==null?void 0:P.triggerType;e.title=O(I,{direction:"horizontal",fullIndex:0,style:{alignItems:"center"},children:[B("span",{children:e.title}),B("div",{style:{padding:"0 5px 0 20px",display:"flex"},children:t==="drawer"?B(_,{onClick:je,text:P==null?void 0:P.text,size:"small",icon:(P==null?void 0:P.icon)||B(E,{svgPath:"ionic/list-circle",color:"#868686"}),hoverTips:(P==null?void 0:P.hoverTipText)||"字段列表",style:{padding:0,margin:0}}):B(ee,{dataList:_e,onChange:De,cacheKey:P==null?void 0:P.cacheKey,initSelectedRowKeys:M,children:B(_,{text:P==null?void 0:P.text,style:{padding:0,margin:0},size:"small",icon:(P==null?void 0:P.icon)||B(E,{svgPath:"ionic/list-circle",color:"#868686"})})})})]})}}return Ie}),[Ie,_e,P]);Ie=w((function(){if(!Object.keys(Q))return Ie;return Ie.map((function(e){var n=e.dataIndex;var t=Q[n];if(n&&t){if(t.loading){e.render=function(e){return B(k,{loading:true,type:"text",loadingPosition:"center",removeGap:true,children:e})}}else if(e.asyncRender){e.render=function(n,i,r){return e.asyncRender==null?void 0:e.asyncRender(n,i,r,t.respData)}}}return e}))}),[Ie,Q]);var Le=s.useCallbackRef((function(n,t){var i,r;void Ce((i={},i[ge.pageSize]=t,i[ge.pageNo]=n,i));(r=e.pagination)==null||r.onChange==null?void 0:r.onChange(n,t)}));var Ee=function n(){return e.paginationFixed||de.current};s.useUpdateEffect((function(){if(e.paginationFixed){var n;Ce((n={},n[ge.pageSize]=oe.queryCondition[ge.pageSize]||se,n[ge.pageNo]=1,n))}else{var t;Ce((t={},t[ge.pageSize]=undefined,t[ge.pageNo]=undefined,t))}}),[e.paginationFixed]);var Ve=i("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var Ae=n({overflowY:e.filterFixed||e.paginationFixed?"hidden":"auto"},e.style);var Be=typeof e.children==="function"?e.children(ce.current):e.children;return O(X.Provider,{value:{onSetBaseColumns:qe,getEasyTableRef:we,modelKey:te,onRequest:Ce,tableDataSource:m,tableTotal:h,loading:F,fieldNames:ge,pageSize:se,onSetPaginationStatus:Re,getPaginationStatus:Ee,onFormFinish:Ne,form:ye,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[],columns:Ie,initialValues:e.initialValues},children:[e.paginationFixed?O("div",{className:Ve,style:Ae,children:[B("div",{className:Pe,children:Be}),h>0&&B("div",{className:"fba-easy-table-pagination",children:B(D,n({size:"small"},ke,{onChange:Le}))})]}):B("div",{className:Ve,style:e.style,children:Be}),B(Z,{dataList:_e,onClose:ze,open:U,onChange:De,cacheKey:P==null?void 0:P.cacheKey,initSelectedRowKeys:M})]})}));var le=function e(t){var a=$()||"md";var o=K(X);var l=t.queryButtonProps,u=t.resetButtonProps,d=t.filterOperate,c=t.formClassName,f=c===void 0?"":c,p=t.defaultResetButtonTriggerRequest,m=t.filterWrapperStyle,v=t.filterWrapperClassName,g=t.rightOperateAreaAppendType,h=t.easyFormProps;var y=o.modelKey,C=o.foldKeys,S=o.fieldNames,x=o.onRequest,F=o.pageSize,j=o.getPaginationStatus,z=o.initialValues,R=o.form,q=o.onFormFinish;var N=typeof t.children==="function"?t.children(R):t.children;var T=g||"cover";var I=w((function(){if(H(N)){return P.toArray(N.props.children)}else{return P.toArray(N)}}),[N]);var _=b(false),D=_[0],L=_[1];var E=re(y).useStore(),V=E[0],A=E[1];var W=s.useCallbackRef((function(){return new Promise((function(e,t){var i;return Promise.resolve(A.resetFilterCondition()).then((function(a){try{R.resetFields();if(r(p)||p){if(j()){x(n((i={},i[S.pageNo]=1,i[S.pageSize]=F,i),z))}else{x(z)}}return e()}catch(e){return t(e)}}),t)}))}));var M=w((function(){var e=[!(l!=null&&l.hidden)?B(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"):null,!(u!=null&&u.hidden)?B(k,n({onClick:W},u,{children:(u==null?void 0:u.text)||"重置"}),"2"):null].filter(Boolean);var t=d==null?void 0:d(R);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(T==="afterAppend"){a=[].concat(e,i)}else if(T==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(C.length>0){var o=B(k,{type:"link",style:{padding:"0"},onClick:function e(){L(!D)},children:D?O("span",{children:["收起",B(G,{style:{marginLeft:3,fontSize:12}})]}):O("span",{children:["展开",B(U,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return I.map((function(e,n){if(!D&&C.find((function(n){return".$"+n===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return B(J.Col,{children:e},n)})).filter(Boolean).concat(B(J.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[I,d,C,R,W,D,l,u,T]);var Z=a==="xs"?"left":(h==null?void 0:h.labelAlign)||"right";return B(Y,{className:i("easy-table-filter",v),style:m,children:B(Q,n({form:R,autoComplete:"off",onFinish:q,initialValues:n({},z,V.queryCondition),className:f,style:t.formStyle,isPure:true,labelWidth:"80",formItemGap:"15"},h,{labelAlign:Z,children:t.isPure?N:B(J.Row,{gutter:[15,0],gridSize:t.formGridSize,children:M})}))})};var se=function e(){var n=K(X);return n.getEasyTableRef()};var ue=function e(){var n=K(X);return{current:n.getEasyTableRef()}};var de=["children","rowKey","pagination","isSync"];var ce=function e(r){var a=K(X);var o=r.children,l=r.rowKey,u=r.pagination,d=r.isSync,c=t(r,de);var v=a.modelKey,h=a.fieldNames,y=a.onRequest,C=a.tableDataSource,S=a.pageSize,x=a.tableTotal,b=a.loading,j=a.paginationFixed,z=a.onSetPaginationStatus;var R=re(v).useStore(),q=R[0];T.useEffectCustom((function(){a.onSetBaseColumns(r.columns||[])}),[r.columns]);T.useEffectCustom((function(){z(u!==false)}),[u]);s.useUpdateEffect((function(){if(!j){if(u!==false){var e;y((e={},e[h.pageSize]=q.queryCondition[h.pageSize]||S,e[h.pageNo]=1,e))}else{var n;y((n={},n[h.pageSize]=undefined,n[h.pageNo]=undefined,n))}}}),[u]);var N=w((function(){if(j||u===false)return false;return n({showSizeChanger:true,current:q.queryCondition[h.pageNo]||1,pageSize:q.queryCondition[h.pageSize]||S,total:x,showTotal:function e(n){return"共 "+n+" 条记录"}},r.pagination,{selectComponentClass:L})}),[h.pageNo,h.pageSize,S,u,j,r.pagination,q.queryCondition,x]);var P=function e(n,t,i,a){if(a.action==="paginate"&&N){var o;y((o={},o[h.pageSize]=n.pageSize,o[h.pageNo]=n.current,o))}else{r.onChange==null?void 0:r.onChange(n,t,i,a)}};var k=w((function(){if(!C)return undefined;if(C.length===0){return[]}if(typeof l==="string"&&f(C[0][l])){return C.map((function(e){e[l]=p();return e}))}return C}),[C,l]);var I=function e(){if(d&&!k){return O(F,{children:[o,B(g,{size:"small",scroll:{x:"max-content"},bordered:true,rowKey:l,columns:a.columns,loading:true},"1")]})}if(m()){return O(F,{children:[o,B(g,n({size:"small",scroll:{x:"max-content"},bordered:true},c,{columns:a.columns,pagination:N,rowKey:l,onChange:P,loading:b,dataSource:k}),"2")]})}return O(F,{children:[o,B(M,{children:B(g,n({size:"small",scroll:{x:"max-content"},bordered:true},c,{columns:a.columns,pagination:N,rowKey:l,onChange:P,loading:b,dataSource:k}),"3")})]})};return B(Y,{className:i("easy-table-table",{"ett-empty-show-small":r.emptyShowSize==="small"},r.tableWrapperClassName),style:r.tableWrapperStyle,children:I()})};var fe=e.attachPropertiesToComponent(oe,{Filter:le,Table:ce,useEasyTablRef:ue,useEasyTable:se});export{fe as EasyTable};
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/fold-operate.tsx","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\nexport type EditableFieldContextContextApi = {\n modelKey: 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 columns: TEasyTableTableColumn<TPlainObject>[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { localStorageCache, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Drawer, Table } from 'antd';\nimport { ColumnsType } from 'antd/es/table';\nimport { TableRowSelection } from 'antd/es/table/interface';\nimport { CSSProperties, Fragment, useState } from 'react';\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 localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: 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 { localStorageCache } from '@flatbiz/utils';\nimport { Checkbox, Popover } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useState } from 'react';\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 localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: keys });\n }\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 { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isString, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { localStorageCache, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport {\n cloneElement,\n CSSProperties,\n forwardRef,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { IconWrapper } from '../icon-wrapper';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { SvgHttpView } from '../svg-http-view';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { FoldOperate } from './fold-operate';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableProps, EasyTableRefApi, TEasyTableTableColumn } from './type';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n const columnFoldConfig = props.columnFoldConfig;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (columnFoldConfig?.cacheKey) {\n const cacheValue = localStorageCache.get(`easy_tab_${columnFoldConfig.cacheKey}`);\n const cacheKeyList = isArray(cacheValue?.keys)\n ? (cacheValue?.keys?.filter((item) => isString(item)) as string[])\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\n const modelKey = useMemo(() => {\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const paginationStatusRef = useRef(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\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) {\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 if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...state.queryCondition,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n void actions.updateFilterCondition(props.initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (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(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const onOpenColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(true);\n });\n const onCloseColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(false);\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n columnFoldTriggerRender: (children) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n {children}\n </FoldOperateDropdown>\n );\n },\n loading,\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 onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const columnsMerge = (dynamicColumns ? dynamicColumns : baseColumnsRef.current) as TPlainObject[];\n\n let tableColumns = useMemo(() => {\n const tempList = columnsMerge\n .map((item) => {\n const { tooltip, tipsWrapperProps, title, hidden, isFold, ...otherProps } = item;\n if (hidden) return null;\n if (isFold && !showFoldKeyList.includes(item.dataIndex as string)) return null;\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 }, [columnsMerge, showFoldKeyList]);\n\n const foldColumnList = columnsMerge.filter((item: any) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n const onChangeFoldColumnList = (keyList: string[]) => {\n setShowFoldKeyList(keyList);\n columnFoldConfig?.onChange?.(keyList);\n };\n\n tableColumns = useMemo(() => {\n if (columnFoldConfig?.hidden) return tableColumns;\n const finalItem = tableColumns[tableColumns.length - 1] as TPlainObject;\n if (foldColumnList.length > 0 && tableColumns.length > 0) {\n const foldColumnTarget = tableColumns.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 = 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={onOpenColumnFoldModal}\n text={columnFoldConfig?.text}\n size=\"small\"\n icon={columnFoldConfig?.icon || <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />}\n hoverTips={columnFoldConfig?.hoverTipText || '字段列表'}\n style={{ padding: 0, margin: 0 }}\n />\n ) : (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n <IconWrapper\n text={columnFoldConfig?.text}\n style={{ padding: 0, margin: 0 }}\n size=\"small\"\n icon={\n columnFoldConfig?.icon || <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n }\n />\n </FoldOperateDropdown>\n )}\n </div>\n </FlexLayout>\n );\n }\n }\n return tableColumns;\n }, [tableColumns, foldColumnList, columnFoldConfig]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n });\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 onInnerRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n 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 getEasyTableRef,\n modelKey,\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: tableColumns,\n initialValues: props.initialValues,\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 {children}\n </div>\n )}\n <FoldOperate\n dataList={foldColumnList as TAny[]}\n onClose={onCloseColumnFoldModal}\n open={columnFoldOpen}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\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 { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { EasyForm, EasyFormProps } from '../easy-form';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<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 * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\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 = useResponsivePoint() || 'md';\n const ctx = useContext(EasyTableContext);\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 modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\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 const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (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 key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].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\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 childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\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={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\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 { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useContext, useMemo } from 'react';\nimport { BlockLayout } from '../block-layout';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport { TEasyTableTableColumn } from './type';\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @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\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, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state] = easyTableModel(modelKey).useStore();\n fbaHooks.useEffectCustom(() => {\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, [props.columns]);\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]: state.queryCondition[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: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\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 const tableRender = () => {\n if (isSync && !dataSource) {\n /** loading表格 */\n return (\n <Fragment>\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n rowKey={rowKey as any}\n columns={ctx.columns}\n loading={true}\n />\n </Fragment>\n );\n }\n if (isMacEnv()) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"2\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={ctx.columns}\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 {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={ctx.columns}\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 </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n *\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提高windows下table左右滚动体验\n * 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)\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 * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\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"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperate","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","rowSelection","type","onChange","cacheKey","localStorageCache","set","keys","columns","title","dataIndex","render","value","recrd","_jsx","Fragment","children","Drawer","open","onClose","width","styles","body","padding","Table","bordered","size","rowKey","pagination","scroll","x","dataSource","dataList","FoldOperateDropdown","content","Checkbox","Group","defaultValue","style","display","flexDirection","map","item","label","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","ref","_props$initialPaginat","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","columnFoldConfig","_useState4","columnFoldOpen","setColumnFoldOpen","_useState5","_cacheValue$keys","cacheValue","get","cacheKeyList","_isArray","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","paginationStatusRef","useRef","respOriginalDataRef","baseColumnsRef","_useState6","dynamicColumns","setDynamicColumns","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","respData","respDataNew","_dynamicColumns","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_get","fbaHooks","useEffectCustom","hasPagination","getPaginationStatus","_extends2","initialValues","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","$await_5","getRequestParams","getFieldsValue","onOpenColumnFoldModal","onCloseColumnFoldModal","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","columnFoldTriggerRender","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","onChangeFoldColumnList","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","columnsMerge","tableColumns","tempList","tooltip","tipsWrapperProps","hidden","isFold","otherProps","_objectWithoutPropertiesLoose","_excluded","includes","TipsWrapper","tipType","popoverProps","TableTitleTooltip","Boolean","concat","keyList","finalItem","foldColumnTarget","find","_jsxs","FlexLayout","direction","fullIndex","alignItems","IconWrapper","text","icon","SvgHttpView","svgPath","color","hoverTips","hoverTipText","margin","page","_onInnerRequest","_props$pagination","useUpdateEffect","_onInnerRequest2","_onInnerRequest3","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","PaginationWrapper","EasyTableFilter","screenType","useResponsivePoint","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","$await_1","formRowChildren","defaultRightList","ButtonWrapper","htmlType","customFormOperateCol","customRightList","rightList","leftList","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","index","keyItem","FormGrid","Col","OperateCol","labelAlign","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","isSync","_onRequest","_onRequest2","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest3","isUndefinedOrNull","getUuid","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/context.ts","@flatbiz/antd/src/easy-table/fold-operate.tsx","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\nexport type EditableFieldContextContextApi = {\n modelKey: 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 columns: TEasyTableTableColumn<TPlainObject>[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { localStorageCache, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Drawer, Table } from 'antd';\nimport { ColumnsType } from 'antd/es/table';\nimport { TableRowSelection } from 'antd/es/table/interface';\nimport { CSSProperties, Fragment, useState } from 'react';\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 localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: 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 { localStorageCache } from '@flatbiz/utils';\nimport { Checkbox, Popover } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useState } from 'react';\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 localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: keys });\n }\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 { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isString, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { localStorageCache, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport {\n cloneElement,\n CSSProperties,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { IconWrapper } from '../icon-wrapper';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { SvgHttpView } from '../svg-http-view';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { FoldOperate } from './fold-operate';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableProps, EasyTableRefApi, TEasyTableTableColumn } from './type';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n const asyncColumnRequestResultRef = useRef<{\n [dataIndex: string]: {\n respData?: any;\n loading?: boolean;\n };\n }>({});\n const [asyncColumnRequestResult, setAsyncColumnRequestResult] = useState<{\n [dataIndex: string]: {\n respData?: any;\n loading?: boolean;\n };\n }>({});\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (columnFoldConfig?.cacheKey) {\n const cacheValue = localStorageCache.get(`easy_tab_${columnFoldConfig.cacheKey}`);\n const cacheKeyList = isArray(cacheValue?.keys)\n ? (cacheValue?.keys?.filter((item) => isString(item)) as string[])\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\n const modelKey = useMemo(() => {\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const paginationStatusRef = useRef(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\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) {\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 if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...state.queryCondition,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n void actions.updateFilterCondition(props.initialValues);\n }\n void actions.updateInitStatus();\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: any) => {\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 }, []);\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (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(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const onOpenColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(true);\n });\n const onCloseColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(false);\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n columnFoldTriggerRender: (children) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n {children}\n </FoldOperateDropdown>\n );\n },\n loading,\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 onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const columnsMerge = (dynamicColumns ? dynamicColumns : baseColumnsRef.current) as TPlainObject[];\n\n let tableColumns = useMemo(() => {\n const tempList = columnsMerge\n .map((item) => {\n const { tooltip, tipsWrapperProps, title, hidden, isFold, ...otherProps } = item;\n if (hidden) return null;\n if (isFold && !showFoldKeyList.includes(item.dataIndex as string)) return null;\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 }, [columnsMerge, showFoldKeyList]);\n\n const foldColumnList = columnsMerge.filter((item: any) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n const onChangeFoldColumnList = (keyList: string[]) => {\n setShowFoldKeyList(keyList);\n columnFoldConfig?.onChange?.(keyList);\n };\n\n tableColumns = useMemo(() => {\n if (columnFoldConfig?.hidden) return tableColumns;\n const finalItem = tableColumns[tableColumns.length - 1] as TPlainObject;\n if (foldColumnList.length > 0 && tableColumns.length > 0) {\n const foldColumnTarget = tableColumns.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 = 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={onOpenColumnFoldModal}\n text={columnFoldConfig?.text}\n size=\"small\"\n icon={columnFoldConfig?.icon || <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />}\n hoverTips={columnFoldConfig?.hoverTipText || '字段列表'}\n style={{ padding: 0, margin: 0 }}\n />\n ) : (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n <IconWrapper\n text={columnFoldConfig?.text}\n style={{ padding: 0, margin: 0 }}\n size=\"small\"\n icon={\n columnFoldConfig?.icon || <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n }\n />\n </FoldOperateDropdown>\n )}\n </div>\n </FlexLayout>\n );\n }\n }\n return tableColumns;\n }, [tableColumns, foldColumnList, columnFoldConfig]);\n\n tableColumns = useMemo(() => {\n if (!Object.keys(asyncColumnRequestResult)) return tableColumns;\n return tableColumns.map((item: any) => {\n const dataIndex = item.dataIndex as string;\n const result = 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 }, [tableColumns, asyncColumnRequestResult]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n });\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 onInnerRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n 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 getEasyTableRef,\n modelKey,\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: tableColumns,\n initialValues: props.initialValues,\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 {children}\n </div>\n )}\n <FoldOperate\n dataList={foldColumnList as TAny[]}\n onClose={onCloseColumnFoldModal}\n open={columnFoldOpen}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\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 { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { EasyForm, EasyFormProps } from '../easy-form';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<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 * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\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 = useResponsivePoint() || 'md';\n const ctx = useContext(EasyTableContext);\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 modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\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 const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (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 key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].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\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 childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\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={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\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 { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useContext, useMemo } from 'react';\nimport { BlockLayout } from '../block-layout';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport { TEasyTableTableColumn } from './type';\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @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\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, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state] = easyTableModel(modelKey).useStore();\n\n fbaHooks.useEffectCustom(() => {\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, [props.columns]);\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]: state.queryCondition[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: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\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 const tableRender = () => {\n if (isSync && !dataSource) {\n /** loading表格 */\n return (\n <Fragment>\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n rowKey={rowKey as any}\n columns={ctx.columns}\n loading={true}\n />\n </Fragment>\n );\n }\n if (isMacEnv()) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"2\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={ctx.columns}\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 {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={ctx.columns}\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 </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 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 * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\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"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperate","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","rowSelection","type","onChange","cacheKey","localStorageCache","set","keys","columns","title","dataIndex","render","value","recrd","_jsx","Fragment","children","Drawer","open","onClose","width","styles","body","padding","Table","bordered","size","rowKey","pagination","scroll","x","dataSource","dataList","FoldOperateDropdown","content","Checkbox","Group","defaultValue","style","display","flexDirection","map","item","label","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","ref","_props$initialPaginat","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","columnFoldConfig","asyncColumnRequest","_useState4","columnFoldOpen","setColumnFoldOpen","asyncColumnRequestResultRef","useRef","_useState5","asyncColumnRequestResult","setAsyncColumnRequestResult","_useState6","_cacheValue$keys","cacheValue","get","cacheKeyList","_isArray","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","paginationStatusRef","respOriginalDataRef","baseColumnsRef","_useState7","dynamicColumns","setDynamicColumns","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","respData","respDataNew","_dynamicColumns","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_get","fbaHooks","useEffectCustom","hasPagination","getPaginationStatus","_extends2","initialValues","useEffect","_loop","_extends3","element","index","_extends4","catch","_extends5","console","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","$await_5","getRequestParams","getFieldsValue","onOpenColumnFoldModal","onCloseColumnFoldModal","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","columnFoldTriggerRender","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","onChangeFoldColumnList","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","columnsMerge","tableColumns","tempList","tooltip","tipsWrapperProps","hidden","isFold","otherProps","_objectWithoutPropertiesLoose","_excluded","includes","TipsWrapper","tipType","popoverProps","TableTitleTooltip","Boolean","concat","keyList","finalItem","foldColumnTarget","find","_jsxs","FlexLayout","direction","fullIndex","alignItems","IconWrapper","text","icon","SvgHttpView","svgPath","color","hoverTips","hoverTipText","margin","Object","result","ButtonWrapper","loadingPosition","removeGap","asyncRender","record","page","_onInnerRequest","_props$pagination","useUpdateEffect","_onInnerRequest2","_onInnerRequest3","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","PaginationWrapper","EasyTableFilter","screenType","useResponsivePoint","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","$await_1","formRowChildren","defaultRightList","htmlType","customFormOperateCol","customRightList","rightList","leftList","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","keyItem","FormGrid","Col","OperateCol","labelAlign","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","isSync","_onRequest","_onRequest2","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest3","isUndefinedOrNull","getUuid","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
package/esm/fba-app/index.js
CHANGED
|
@@ -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 l}from"../_rollupPluginBabelHelpers-a0769acd.js";import{getUuid as a}from"@flatbiz/utils";import{createContext as r,useMemo as i,useContext as t,useState as s,createElement as d}from"react";import{classNames as u}from"@dimjs/utils/cjs/class-names";import{isNull as c}from"@dimjs/lang/cjs/is-null";import{isPromise as f}from"@dimjs/lang/cjs/is-promise";import{useSize as p}from"ahooks";import{Form as v,Modal as m,Space as g,Drawer as C,theme as h}from"antd";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{fbaHooks as x}from"../fba-hooks/index.js";import{FlexLayout as y}from"../flex-layout/index.js";import{g as b}from"../index-7f4ad045.js";import{jsx as w,jsxs as D}from"react/jsx-runtime";import{BlockLayout as O}from"../block-layout/index.js";import"@dimjs/lang/cjs/is-array";import"@ant-design/icons/es/icons/LoadingOutlined";import"../use-responsive-point-21b8c601.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";var j=r({});var R=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size"];var P=function e(a){var r,t,s;var d=a.titleExtra,g=a.title,C=a.onOk,h=a.onCancel,O=a.okButtonProps,j=a.cancelButtonProps,P=a.content,T=a.className,M=a.okHidden,N=a.cancelHidden,H=a.footer,B=a.cancelText,L=a.okText,A=a.size,z=n(a,R);var E=v.useForm(),W=E[0];var F=p(document.querySelector("html"));var _=b();var S=x.useResponsivePoint()||"";var Y=A===null?undefined:A===undefined?"middle":A;var q=o.useCallbackRef((function(){a.onClose==null?void 0:a.onClose()}));var I=o.useCallbackRef((function(e){if(h){var o=h(W,e);if(o&&f(o)){return o.then(q)}}q();return Promise.resolve()}));var U=o.useCallbackRef((function(e){if(C){var o=C(W,e);if(o&&f(o)){return o.then(q)}}q();return Promise.resolve()}));var G=N||M?[w(k,l({},j,{onClick:I,hidden:N,children:B||((r=_.FbaDialogModal)==null?void 0:r.cancelText)}),"0"),w(k,l({type:"primary"},O,{onClick:U,hidden:M,children:L||"提交"}),"1")]:undefined;var J=c(H)?null:H||G;var K=i((function(){if(!(F!=null&&F.height)||!S)return undefined;if(["xs","sm"].includes(S)){return{height:(F==null?void 0:F.height)*.7}}if(Y=="large"){return{height:(F==null?void 0:F.height)*.7,width:F.width*.6}}if(Y=="small"){var e=F.width*.3;return{height:(F==null?void 0:F.height)*.4,width:e<470?470:e}}if(Y=="middle"){return{height:(F==null?void 0:F.height)*.55,width:F.width*.5}}return undefined}),[F==null?void 0:F.height,Y,(t=z.styles)==null||(t=t.body)==null?void 0:t.height,z.width,S]);var Q=u("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!d},{"fba-dialog-modal-footer-empty":!J},T);return w(m,l({maskClosable:true,title:d?D(y,{direction:"horizontal",fullIndex:0,children:[w("span",{children:g}),d]}):g,centered:true,onCancel:q,destroyOnClose:true,width:K==null?void 0:K.width},z,{footer:J,styles:l({},z.styles,{body:l({height:K==null?void 0:K.height,maxHeight:"calc(100vh - 200px)"},(s=z.styles)==null?void 0:s.body)}),className:Q,open:a.open,children:typeof P==="function"?P(W,{onClose:q}):P}))};var T=function e(o){var n=u("fba-dialog-confirm",o.className);return w(P,l({okText:"确定",size:null,width:350,cancelText:"取消",maskClosable:true},o,{className:n}))};var M=function e(o){return w(T,l({okText:"确定",cancelHidden:true,maskClosable:false},o,{onOk:function e(n,l){return o.onClick==null?void 0:o.onClick(l)}}))};var N=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var H=function e(a){var r=a.onOk,t=a.onCancel,s=a.content,d=a.okText,c=a.cancelText,p=a.okButtonExtraProps,m=a.cancelButtonExtraProps,h=a.operatePosition,y=h===void 0?"footer":h,b=a.operateRender,O=a.width,j=a.okHidden,R=a.cancelHidden,P=a.extra,T=n(a,N);var M=v.useForm(),H=M[0];var B=x.useResponsivePoint()||"";var L=o.useCallbackRef((function(e){a.onClose==null?void 0:a.onClose(e)}));var A=o.useCallbackRef((function(e){if(t){var o=t(H,e);if(o&&f(o)){return o.then(L)}}L(e);return Promise.resolve()}));var z=o.useCallbackRef((function(e){if(r){var o=r(H,e);if(o&&f(o)){return o.then(L)}}L(e);return Promise.resolve()}));var E=D(g,{children:[R||m!=null&&m.hidden?null:w(k,l({},m,{onClick:A,children:c||"取消"})),j||p!=null&&p.hidden?null:w(k,l({type:"primary"},p,{onClick:z,children:d||"提交"}))]});var W=function e(){if(b){return b(H)}if(!j||!R){return E}return null};var F=i((function(){if(!B)return undefined;if(["xs","sm"].includes(B)){return{width:"90%",maxWidth:"90%"}}if(O){return{width:O,maxWidth:"calc(100% - 200px)"}}return{width:"40%",maxWidth:"calc(100% - 200px)"}}),[B,O]);var _=typeof P==="function"?P(H):P;return w(C,l({maskClosable:true,destroyOnClose:true,contentWrapperStyle:{maxWidth:F==null?void 0:F.maxWidth},footer:y==="footer"?W():null},T,{width:F==null?void 0:F.width,styles:l({},T.styles),className:u("app-dialog-drawer",T.className),extra:y==="header"?W():_,open:a.open,onClose:L,children:typeof s==="function"?s(H,{onClose:L}):s}))};var B=function e(o){var n=o.className,l=o.message,a=o.mask;var r=h.useToken(),i=r.token;var t=i.colorPrimary;return w(m,{maskClosable:false,centered:true,destroyOnClose:true,className:u("fba-dialog-loading",n),open:o.open,footer:null,closable:false,style:{"--fba-loading-color":t},mask:a,children:w(O,{className:u("fba-dialog-loading-content"),children:D("div",{className:"loader-wrapper",children:[w("div",{className:"loader-inner"}),w("div",{className:"loader-text",children:l||"处理中"})]})})})};var L=function e(){var o=t(j);var n=function e(){o.dialogDrawerClose==null?void 0:o.dialogDrawerClose()};return{appDialogDrawer:{open:function e(a){o.dialogDrawerOpen==null?void 0:o.dialogDrawerOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var A=function e(){var o=t(j);var n=function e(){o.dialogDrawerClose2==null?void 0:o.dialogDrawerClose2()};return{appDialogDrawer2:{open:function e(a){o.dialogDrawerOpen2==null?void 0:o.dialogDrawerOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var z=function e(){var o=t(j);var n=function e(){o.dialogModalClose==null?void 0:o.dialogModalClose()};return{appDialogModal:{open:function e(a){o.dialogModalOpen==null?void 0:o.dialogModalOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var E=function e(){var o=t(j);var n=function e(){o.dialogModalClose2==null?void 0:o.dialogModalClose2()};return{appDialogModal2:{open:function e(a){o.dialogModalOpen2==null?void 0:o.dialogModalOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var W=function e(){var o=t(j);var n=function e(){o.dialogAlertClose==null?void 0:o.dialogAlertClose()};return{appDialogAlert:{open:function e(a){o.dialogAlertOpen==null?void 0:o.dialogAlertOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var F=function e(){var o=t(j);var n=function e(){o.dialogConfirmClose==null?void 0:o.dialogConfirmClose()};return{appDialogConfirm:{open:function e(a){o.dialogConfirmOpen==null?void 0:o.dialogConfirmOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var _=function e(){var o=t(j);var n=function e(){o.dialogLoadingClose==null?void 0:o.dialogLoadingClose()};return{appDialogLoading:{open:function e(a){o.dialogLoadingOpen==null?void 0:o.dialogLoadingOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var S=function e(n){var r=s({}),i=r[0],t=r[1];var u=s(a()),c=u[0],f=u[1];var p=s({}),v=p[0],m=p[1];var g=s(a()),C=g[0],h=g[1];var k=s({}),x=k[0],y=k[1];var b=s(a()),w=b[0],O=b[1];var R=s({}),N=R[0],L=R[1];var A=s(a()),z=A[0],E=A[1];var W=s({}),F=W[0],_=W[1];var S=s({}),Y=S[0],q=S[1];var I=s(),U=I[0],G=I[1];var J=s(a()),K=J[0],Q=J[1];var V=s(a()),X=V[0],Z=V[1];var $=s(a()),ee=$[0],oe=$[1];var ne=o.useCallbackRef((function(e){t(e)}));var le=o.useCallbackRef((function(e){t(l({},i,{open:false}));i.onClose==null?void 0:i.onClose(e);setTimeout((function(){f(a())}),200)}));var ae=o.useCallbackRef((function(e){m(e)}));var re=o.useCallbackRef((function(e){m(l({},v,{open:false}));v.onClose==null?void 0:v.onClose(e);setTimeout((function(){h(a())}),200)}));var ie=o.useCallbackRef((function(e){y(e)}));var te=o.useCallbackRef((function(){y(l({},x,{open:false}));x.onClose==null?void 0:x.onClose();setTimeout((function(){O(a())}),200)}));var se=o.useCallbackRef((function(e){L(e)}));var de=o.useCallbackRef((function(){L(l({},N,{open:false}));N.onClose==null?void 0:N.onClose();setTimeout((function(){E(a())}),200)}));var ue=o.useCallbackRef((function(e){_(e)}));var ce=o.useCallbackRef((function(){_(l({},F,{open:false}));F.onClose==null?void 0:F.onClose();setTimeout((function(){Q(a())}),200)}));var fe=o.useCallbackRef((function(e){q(e)}));var pe=o.useCallbackRef((function(){q(l({},Y,{open:false}));Y.onClose==null?void 0:Y.onClose();setTimeout((function(){Z(a())}),200)}));var ve=o.useCallbackRef((function(e){G(e)}));var me=o.useCallbackRef((function(){G(l({},U,{open:false}));setTimeout((function(){oe(a())}),200)}));return D(j.Provider,{value:{dialogDrawerOpen:ne,dialogDrawerClose:le,dialogDrawerOpen2:ae,dialogDrawerClose2:re,dialogModalOpen:ie,dialogModalClose:te,dialogModalOpen2:se,dialogModalClose2:de,dialogAlertOpen:ue,dialogAlertClose:ce,dialogConfirmOpen:fe,dialogConfirmClose:pe,dialogLoadingOpen:ve,dialogLoadingClose:me},children:[d(H,l({},i,{onClose:le,key:c})),d(H,l({},v,{onClose:re,key:C})),d(P,l({},x,{onClose:te,key:w})),d(P,l({},N,{onClose:de,key:z})),d(M,l({},F,{onClose:ce,key:K})),d(T,l({},Y,{onClose:pe,key:X})),d(B,l({},U,{key:ee})),n.children]})};var Y=e.attachPropertiesToComponent(S,{useDialogDrawer:L,useDialogDrawer2:A,useDialogModal:z,useDialogModal2:E,useDialogConfirm:F,useDialogAlert:W,useDialogLoading:_});export{Y 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 l}from"../_rollupPluginBabelHelpers-a0769acd.js";import{getUuid as a}from"@flatbiz/utils";import{createContext as r,useMemo as i,useContext as t,useState as s,createElement as d}from"react";import{classNames as u}from"@dimjs/utils/cjs/class-names";import{isNull as c}from"@dimjs/lang/cjs/is-null";import{isPromise as f}from"@dimjs/lang/cjs/is-promise";import{useSize as p}from"ahooks";import{Form as v,Modal as m,Space as g,Drawer as C,theme as h}from"antd";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{fbaHooks as y}from"../fba-hooks/index.js";import{FlexLayout as x}from"../flex-layout/index.js";import{g as b}from"../index-7f4ad045.js";import{jsx as w,jsxs as D}from"react/jsx-runtime";import{BlockLayout as O}from"../block-layout/index.js";import"@dimjs/lang/cjs/is-array";import"@ant-design/icons/es/icons/LoadingOutlined";import"../use-responsive-point-21b8c601.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";var j=r({});var R=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size"];var P=function e(a){var r,t,s;var d=a.titleExtra,g=a.title,C=a.onOk,h=a.onCancel,O=a.okButtonProps,j=a.cancelButtonProps,P=a.content,T=a.className,M=a.okHidden,N=a.cancelHidden,H=a.footer,B=a.cancelText,L=a.okText,A=a.size,z=n(a,R);var E=v.useForm(),W=E[0];var F=p(document.querySelector("html"));var _=b();var S=y.useResponsivePoint()||"";var Y=A===null?undefined:A===undefined?"middle":A;var q=o.useCallbackRef((function(){a.onClose==null?void 0:a.onClose()}));var I=o.useCallbackRef((function(e){if(h){var o=h(W,e);if(o&&f(o)){return o.then(q)}}q();return Promise.resolve()}));var U=o.useCallbackRef((function(e){if(C){var o=C(W,e);if(o&&f(o)){return o.then(q)}}q();return Promise.resolve()}));var G=!N||!M?[w(k,l({},j,{onClick:I,hidden:N,children:B||((r=_.FbaDialogModal)==null?void 0:r.cancelText)}),"0"),w(k,l({type:"primary"},O,{onClick:U,hidden:M,children:L||"提交"}),"1")]:undefined;var J=c(H)?null:(typeof H==="function"?H(W):H)||G||[];var K=i((function(){if(!(F!=null&&F.height)||!S)return undefined;if(["xs","sm"].includes(S)){return{height:(F==null?void 0:F.height)*.7}}if(Y=="large"){return{height:(F==null?void 0:F.height)*.7,width:F.width*.6}}if(Y=="small"){var e=F.width*.3;return{height:(F==null?void 0:F.height)*.4,width:e<470?470:e}}if(Y=="middle"){return{height:(F==null?void 0:F.height)*.55,width:F.width*.5}}return undefined}),[F==null?void 0:F.height,Y,(t=z.styles)==null||(t=t.body)==null?void 0:t.height,z.width,S]);var Q=u("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!d},{"fba-dialog-modal-footer-empty":!J},T);return w(m,l({maskClosable:true,title:d?D(x,{direction:"horizontal",fullIndex:0,children:[w("span",{children:g}),d]}):g,centered:true,onCancel:q,destroyOnClose:true,width:K==null?void 0:K.width},z,{footer:J,styles:l({},z.styles,{body:l({height:K==null?void 0:K.height,maxHeight:"calc(100vh - 200px)"},(s=z.styles)==null?void 0:s.body)}),className:Q,open:a.open,children:typeof P==="function"?P(W,{onClose:q}):P}))};var T=function e(o){var n=u("fba-dialog-confirm",o.className);return w(P,l({okText:"确定",size:null,width:350,cancelText:"取消",maskClosable:true},o,{className:n}))};var M=function e(o){return w(T,l({okText:"确定",cancelHidden:true,maskClosable:false},o,{onOk:function e(n,l){return o.onClick==null?void 0:o.onClick(l)}}))};var N=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var H=function e(a){var r=a.onOk,t=a.onCancel,s=a.content,d=a.okText,c=a.cancelText,p=a.okButtonExtraProps,m=a.cancelButtonExtraProps,h=a.operatePosition,x=h===void 0?"footer":h,b=a.operateRender,O=a.width,j=a.okHidden,R=a.cancelHidden,P=a.extra,T=n(a,N);var M=v.useForm(),H=M[0];var B=y.useResponsivePoint()||"";var L=o.useCallbackRef((function(e){a.onClose==null?void 0:a.onClose(e)}));var A=o.useCallbackRef((function(e){if(t){var o=t(H,e);if(o&&f(o)){return o.then(L)}}L(e);return Promise.resolve()}));var z=o.useCallbackRef((function(e){if(r){var o=r(H,e);if(o&&f(o)){return o.then(L)}}L(e);return Promise.resolve()}));var E=D(g,{children:[R||m!=null&&m.hidden?null:w(k,l({},m,{onClick:A,children:c||"取消"})),j||p!=null&&p.hidden?null:w(k,l({type:"primary"},p,{onClick:z,children:d||"提交"}))]});var W=function e(){if(b){return b(H)}if(!j||!R){return E}return null};var F=i((function(){if(!B)return undefined;if(["xs","sm"].includes(B)){return{width:"90%",maxWidth:"90%"}}if(O){return{width:O,maxWidth:"calc(100% - 200px)"}}return{width:"40%",maxWidth:"calc(100% - 200px)"}}),[B,O]);var _=typeof P==="function"?P(H):P;return w(C,l({maskClosable:true,destroyOnClose:true,contentWrapperStyle:{maxWidth:F==null?void 0:F.maxWidth},footer:x==="footer"?W():null},T,{width:F==null?void 0:F.width,styles:l({},T.styles),className:u("app-dialog-drawer",T.className),extra:x==="header"?W():_,open:a.open,onClose:L,children:typeof s==="function"?s(H,{onClose:L}):s}))};var B=function e(o){var n=o.className,l=o.message,a=o.mask;var r=h.useToken(),i=r.token;var t=i.colorPrimary;return w(m,{maskClosable:false,centered:true,destroyOnClose:true,className:u("fba-dialog-loading",n),open:o.open,footer:null,closable:false,style:{"--fba-loading-color":t},mask:a,children:w(O,{className:u("fba-dialog-loading-content"),children:D("div",{className:"loader-wrapper",children:[w("div",{className:"loader-inner"}),w("div",{className:"loader-text",children:l||"处理中"})]})})})};var L=function e(){var o=t(j);var n=function e(){o.dialogDrawerClose==null?void 0:o.dialogDrawerClose()};return{appDialogDrawer:{open:function e(a){o.dialogDrawerOpen==null?void 0:o.dialogDrawerOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var A=function e(){var o=t(j);var n=function e(){o.dialogDrawerClose2==null?void 0:o.dialogDrawerClose2()};return{appDialogDrawer2:{open:function e(a){o.dialogDrawerOpen2==null?void 0:o.dialogDrawerOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var z=function e(){var o=t(j);var n=function e(){o.dialogModalClose==null?void 0:o.dialogModalClose()};return{appDialogModal:{open:function e(a){o.dialogModalOpen==null?void 0:o.dialogModalOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var E=function e(){var o=t(j);var n=function e(){o.dialogModalClose2==null?void 0:o.dialogModalClose2()};return{appDialogModal2:{open:function e(a){o.dialogModalOpen2==null?void 0:o.dialogModalOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var W=function e(){var o=t(j);var n=function e(){o.dialogAlertClose==null?void 0:o.dialogAlertClose()};return{appDialogAlert:{open:function e(a){o.dialogAlertOpen==null?void 0:o.dialogAlertOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var F=function e(){var o=t(j);var n=function e(){o.dialogConfirmClose==null?void 0:o.dialogConfirmClose()};return{appDialogConfirm:{open:function e(a){o.dialogConfirmOpen==null?void 0:o.dialogConfirmOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var _=function e(){var o=t(j);var n=function e(){o.dialogLoadingClose==null?void 0:o.dialogLoadingClose()};return{appDialogLoading:{open:function e(a){o.dialogLoadingOpen==null?void 0:o.dialogLoadingOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var S=function e(n){var r=s({}),i=r[0],t=r[1];var u=s(a()),c=u[0],f=u[1];var p=s({}),v=p[0],m=p[1];var g=s(a()),C=g[0],h=g[1];var k=s({}),y=k[0],x=k[1];var b=s(a()),w=b[0],O=b[1];var R=s({}),N=R[0],L=R[1];var A=s(a()),z=A[0],E=A[1];var W=s({}),F=W[0],_=W[1];var S=s({}),Y=S[0],q=S[1];var I=s(),U=I[0],G=I[1];var J=s(a()),K=J[0],Q=J[1];var V=s(a()),X=V[0],Z=V[1];var $=s(a()),ee=$[0],oe=$[1];var ne=o.useCallbackRef((function(e){t(e)}));var le=o.useCallbackRef((function(e){t(l({},i,{open:false}));i.onClose==null?void 0:i.onClose(e);setTimeout((function(){f(a())}),200)}));var ae=o.useCallbackRef((function(e){m(e)}));var re=o.useCallbackRef((function(e){m(l({},v,{open:false}));v.onClose==null?void 0:v.onClose(e);setTimeout((function(){h(a())}),200)}));var ie=o.useCallbackRef((function(e){x(e)}));var te=o.useCallbackRef((function(){x(l({},y,{open:false}));y.onClose==null?void 0:y.onClose();setTimeout((function(){O(a())}),200)}));var se=o.useCallbackRef((function(e){L(e)}));var de=o.useCallbackRef((function(){L(l({},N,{open:false}));N.onClose==null?void 0:N.onClose();setTimeout((function(){E(a())}),200)}));var ue=o.useCallbackRef((function(e){_(e)}));var ce=o.useCallbackRef((function(){_(l({},F,{open:false}));F.onClose==null?void 0:F.onClose();setTimeout((function(){Q(a())}),200)}));var fe=o.useCallbackRef((function(e){q(e)}));var pe=o.useCallbackRef((function(){q(l({},Y,{open:false}));Y.onClose==null?void 0:Y.onClose();setTimeout((function(){Z(a())}),200)}));var ve=o.useCallbackRef((function(e){G(e)}));var me=o.useCallbackRef((function(){G(l({},U,{open:false}));setTimeout((function(){oe(a())}),200)}));return D(j.Provider,{value:{dialogDrawerOpen:ne,dialogDrawerClose:le,dialogDrawerOpen2:ae,dialogDrawerClose2:re,dialogModalOpen:ie,dialogModalClose:te,dialogModalOpen2:se,dialogModalClose2:de,dialogAlertOpen:ue,dialogAlertClose:ce,dialogConfirmOpen:fe,dialogConfirmClose:pe,dialogLoadingOpen:ve,dialogLoadingClose:me},children:[d(H,l({},i,{onClose:le,key:c})),d(H,l({},v,{onClose:re,key:C})),d(P,l({},y,{onClose:te,key:w})),d(P,l({},N,{onClose:de,key:z})),d(M,l({},F,{onClose:ce,key:K})),d(T,l({},Y,{onClose:pe,key:X})),d(B,l({},U,{key:ee})),n.children]})};var Y=e.attachPropertiesToComponent(S,{useDialogDrawer:L,useDialogDrawer2:A,useDialogModal:z,useDialogModal2:E,useDialogConfirm:F,useDialogAlert:W,useDialogLoading:_});export{Y as FbaApp};
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
package/esm/fba-app/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/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/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 { isNull, isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { getFbaLocaleMessage } from '../../_utils/i18n';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:middle\n * ```\n * 1. 如果自定义了width、styles.body.height属性,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 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 /** null则隐藏footer */\n footer?: null | ReactElement | ReactElement[];\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 ...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 const sizeFt = size === null ? undefined : size === undefined ? 'middle' : size;\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 operateGroup =\n cancelHidden || okHidden\n ? [\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 ]\n : undefined;\n\n const footerNew = isNull(footer) ? null : footer || operateGroup;\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n if (['xs', 'sm'].includes(screenType)) {\n return {\n height: (htmlSize?.height as number) * 0.7,\n };\n }\n if (sizeFt == 'large') {\n return {\n height: (htmlSize?.height as number) * 0.7,\n width: htmlSize.width * 0.6,\n };\n }\n if (sizeFt == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: (htmlSize?.height as number) * 0.4,\n width: width < 470 ? 470 : width,\n };\n }\n\n if (sizeFt == 'middle') {\n return {\n height: (htmlSize?.height as number) * 0.55,\n width: htmlSize.width * 0.5,\n };\n }\n return undefined;\n }, [htmlSize?.height, sizeFt, otherProps.styles?.body?.height, otherProps.width, screenType]);\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 return (\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: customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={props.open}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\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 { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode, useMemo } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\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 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 operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => 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\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 operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\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 return (\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' ? operateRenderHandle() : 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' ? operateRenderHandle() : extraRender}\n open={props.open}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\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 } 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 { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\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};\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};\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 };\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 };\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","FbaAppModal","props","_localMessage$FbaDial","_otherProps$styles","_otherProps$styles2","titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","localMessage","getFbaLocaleMessage","screenType","fbaHooks","useResponsivePoint","sizeFt","undefined","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","FbaDialogModal","type","footerNew","_isNull","customSize","useMemo","height","includes","width","styles","body","classNameNew","_classNames","Modal","maskClosable","_jsxs","FlexLayout","direction","fullIndex","centered","destroyOnClose","maxHeight","open","FbaAppConfirm","FbaAppAlert","_form","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","extra","Space","operateRenderHandle","maxWidth","extraRender","Drawer","contentWrapperStyle","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","BlockLayout","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","data","dialogDrawerOpen","close","useDialogDrawer2","dialogDrawerClose2","appDialogDrawer2","dialogDrawerOpen2","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useDialogModal2","dialogModalClose2","appDialogModal2","dialogModalOpen2","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","_useState","useState","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","_useState10","confirmProps","setConfirmProps","_useState11","loadingProps","setLoadingProps","_useState12","alertKey","setAlertKey","_useState13","confirmKey","setConfirmKey","_useState14","loadingKey","setLoadingKey","setTimeout","Provider","value","_createElement","key","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":";y2CA8BO,IAAMA,EAAgBC,EAAgC,6KCmBtD,IAAMC,EAAc,SAAdA,EAAeC,GAA4B,IAAAC,EAAAC,EAAAC,EACtD,IACEC,EAeEJ,EAfFI,WACAC,EAcEL,EAdFK,MACAC,EAaEN,EAbFM,KACAC,EAYEP,EAZFO,SACAC,EAWER,EAXFQ,cACAC,EAUET,EAVFS,kBACAC,EASEV,EATFU,QACAC,EAQEX,EARFW,UACAC,EAOEZ,EAPFY,SACAC,EAMEb,EANFa,aACAC,EAKEd,EALFc,OACAC,EAIEf,EAJFe,WACAC,EAGEhB,EAHFgB,OACAC,EAEEjB,EAFFiB,KACGC,EAAUC,EACXnB,EAAKoB,GACT,IAAAC,EAAeC,EAAKC,UAAbC,EAAIH,EAAA,GACX,IAAMI,EAAWC,EAAQC,SAASC,cAAc,SAChD,IAAMC,EAAeC,IACrB,IAAMC,EAAaC,EAASC,sBAAwB,GACpD,IAAMC,EAASjB,IAAS,KAAOkB,UAAYlB,IAASkB,UAAY,SAAWlB,EAE3E,IAAMmB,EAAUC,EAAMC,gBAAe,WACnCtC,EAAMoC,SAAO,UAAA,EAAbpC,EAAMoC,SACR,IAEA,IAAMG,EAAiBF,EAAMC,gBAAe,SAACE,GAC3C,GAAIjC,EAAU,CACZ,IAAMkC,EAAWlC,EAASiB,EAAMgB,GAChC,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKP,EACvB,CACF,CACAA,IACA,OAAOQ,QAAQC,SACjB,IAEA,IAAMC,EAAaT,EAAMC,gBAAe,SAACE,GACvC,GAAIlC,EAAM,CACR,IAAMmC,EAAWnC,EAAKkB,EAAMgB,GAC5B,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKP,EACvB,CACF,CACAA,IACA,OAAOQ,QAAQC,SACjB,IAEA,IAAME,EACJlC,GAAgBD,EACZ,CACEoC,EAACC,EAAaC,KAAazC,EAAiB,CAAE0C,QAASZ,EAAgBa,OAAQvC,EAAawC,SACzFtC,KAAUd,EAAI4B,EAAayB,iBAAc,UAAA,EAA3BrD,EAA6Bc,cAD3B,KAGnBiC,EAACC,EAAaC,EAAA,CAASK,KAAK,WAAc/C,EAAa,CAAE2C,QAASL,EAAYM,OAAQxC,EAASyC,SAC5FrC,GAAU,OADM,MAIrBmB,UAEN,IAAMqB,EAAYC,EAAO3C,GAAU,KAAOA,GAAUiC,EAEpD,IAAMW,EAAaC,GAAQ,WACzB,KAAKlC,GAAQ,MAARA,EAAUmC,UAAW7B,EAAY,OAAOI,UAC7C,GAAI,CAAC,KAAM,MAAM0B,SAAS9B,GAAa,CACrC,MAAO,CACL6B,QAASnC,eAAAA,EAAUmC,QAAoB,GAE3C,CACA,GAAI1B,GAAU,QAAS,CACrB,MAAO,CACL0B,QAASnC,GAAQ,UAAA,EAARA,EAAUmC,QAAoB,GACvCE,MAAOrC,EAASqC,MAAQ,GAE5B,CACA,GAAI5B,GAAU,QAAS,CACrB,IAAM4B,EAAQrC,EAASqC,MAAQ,GAC/B,MAAO,CACLF,QAASnC,GAAQ,UAAA,EAARA,EAAUmC,QAAoB,GACvCE,MAAOA,EAAQ,IAAM,IAAMA,EAE/B,CAEA,GAAI5B,GAAU,SAAU,CACtB,MAAO,CACL0B,QAASnC,GAAQ,UAAA,EAARA,EAAUmC,QAAoB,IACvCE,MAAOrC,EAASqC,MAAQ,GAE5B,CACA,OAAO3B,SACR,GAAE,CAACV,GAAQ,UAAA,EAARA,EAAUmC,OAAQ1B,GAAMhC,EAAEgB,EAAW6C,SAAM,OAAA7D,EAAjBA,EAAmB8D,OAAI,UAAA,EAAvB9D,EAAyB0D,OAAQ1C,EAAW4C,MAAO/B,IAEjF,IAAMkC,EAAeC,EACnB,mBACA,CAAE,iCAAkC9D,GACpC,CAAE,iCAAkCoD,GACpC7C,GAGF,OACEqC,EAACmB,EAAKjB,EAAA,CACJkB,aAAc,KACd/D,MACED,EACEiE,EAACC,EAAU,CAACC,UAAU,aAAaC,UAAW,EAAEnB,UAC9CL,EAAA,OAAA,CAAAK,SAAOhD,IACND,KAGHC,EAGJoE,SAAU,KACVlE,SAAU6B,EACVsC,eAAc,KACdZ,MAAOJ,GAAAA,UAAAA,EAAAA,EAAYI,OACf5C,EAAU,CACdJ,OAAQ0C,EACRO,OAAMb,EACDhC,GAAAA,EAAW6C,OAAM,CACpBC,KAAId,EAAA,CACFU,OAAQF,GAAAA,UAAAA,EAAAA,EAAYE,OACpBe,UAAW,wBAAqBxE,EAC7Be,EAAW6C,SAAX5D,UAAAA,EAAAA,EAAmB6D,QAG1BrD,UAAWsD,EACXW,KAAM5E,EAAM4E,KAAKvB,gBAET3C,IAAY,WAAaA,EAAQc,EAAM,CAAEY,QAAAA,IAAa1B,IAGpE,ECjLO,IAAMmE,EAAgB,SAAhBA,EAAiB7E,GAC5B,IAAMW,EAAYuD,EAAW,qBAAsBlE,EAAMW,WACzD,OACEqC,EAACjD,EAAWmD,EAAA,CACVlC,OAAO,KACPC,KAAM,KACN6C,MAAO,IACP/C,WAAW,KACXqD,aAAc,MACVpE,EAAK,CACTW,UAAWA,IAGjB,ECUO,IAAMmE,EAAc,SAAdA,EAAe9E,GAC1B,OACEgD,EAAC6B,EAAa3B,EAAA,CACZlC,OAAO,KACPH,aAAc,KACduD,aAAc,OACVpE,EAAK,CACTM,KAAM,SAAAA,EAACyE,EAAOvC,GACZ,OAAOxC,EAAMmD,SAAO,UAAA,EAAbnD,EAAMmD,QAAUX,EACzB,IAGN,sLCXO,IAAMwC,EAAe,SAAfA,EAAgBhF,GAC3B,IACEM,EAcEN,EAdFM,KACAC,EAaEP,EAbFO,SACAG,EAYEV,EAZFU,QACAM,EAWEhB,EAXFgB,OACAD,EAUEf,EAVFe,WACAkE,EASEjF,EATFiF,mBACAC,EAQElF,EARFkF,uBAAsBC,EAQpBnF,EAPFoF,gBAAAA,EAAeD,SAAG,EAAA,SAAQA,EAC1BE,EAMErF,EANFqF,cACAvB,EAKE9D,EALF8D,MACAlD,EAIEZ,EAJFY,SACAC,EAGEb,EAHFa,aACAyE,EAEEtF,EAFFsF,MACGpE,EAAUC,EACXnB,EAAKoB,GACT,IAAAC,EAAeC,EAAKC,UAAbC,EAAIH,EAAA,GACX,IAAMU,EAAaC,EAASC,sBAAwB,GAEpD,IAAMG,EAAUC,EAAMC,gBAAe,SAACE,GACpCxC,EAAMoC,SAANpC,UAAAA,EAAAA,EAAMoC,QAAUI,EAClB,IAEA,IAAMD,EAAiBF,EAAMC,gBAAe,SAACE,GAC3C,GAAIjC,EAAU,CACZ,IAAMkC,EAAWlC,EAASiB,EAAMgB,GAChC,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKP,EACvB,CACF,CACAA,EAAQI,GACR,OAAOI,QAAQC,SACjB,IAEA,IAAMC,EAAaT,EAAMC,gBAAe,SAACE,GACvC,GAAIlC,EAAM,CACR,IAAMmC,EAAWnC,EAAKkB,EAAMgB,GAC5B,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKP,EACvB,CACF,CACAA,EAAQI,GACR,OAAOI,QAAQC,SACjB,IAEA,IAAME,EACJsB,EAACkB,EAAK,CAAAlC,UACHxC,GAAgBqE,GAAsB,MAAtBA,EAAwB9B,OAAS,KAChDJ,EAACC,EAAaC,KAAKgC,EAAsB,CAAE/B,QAASZ,EAAec,SAChEtC,GAAc,QAGlBH,GAAYqE,SAAAA,EAAoB7B,OAAS,KACxCJ,EAACC,EAAaC,EAAA,CAACK,KAAK,WAAc0B,EAAkB,CAAE9B,QAASL,EAAWO,SACvErC,GAAU,WAMnB,IAAMwE,EAAsB,SAAtBA,IACJ,GAAIH,EAAe,CACjB,OAAOA,EAAc7D,EACvB,CACA,IAAKZ,IAAaC,EAAc,CAC9B,OAAOkC,CACT,CACA,OAAO,MAGT,IAAMW,EAAaC,GAAQ,WACzB,IAAK5B,EAAY,OAAOI,UACxB,GAAI,CAAC,KAAM,MAAM0B,SAAS9B,GAAa,CACrC,MAAO,CACL+B,MAAO,MACP2B,SAAU,MAEd,CACA,GAAI3B,EAAO,CACT,MAAO,CAAEA,MAAOA,EAAO2B,SAAU,qBACnC,CACA,MAAO,CAAE3B,MAAO,MAAO2B,SAAU,qBACnC,GAAG,CAAC1D,EAAY+B,IAEhB,IAAM4B,SAAqBJ,IAAU,WAAaA,EAAM9D,GAAQ8D,EAChE,OACEtC,EAAC2C,EAAMzC,EAAA,CACLkB,aAAc,KACdM,eAAc,KAEdkB,oBAAqB,CAAEH,SAAU/B,GAAAA,UAAAA,EAAAA,EAAY+B,UAC7C3E,OAAQsE,IAAoB,SAAWI,IAAwB,MAC3DtE,EAAU,CACd4C,MAAOJ,GAAAA,UAAAA,EAAAA,EAAYI,MACnBC,OAAMb,EAAA,GACDhC,EAAW6C,QAMhBpD,UAAWuD,EAAW,oBAAqBhD,EAAWP,WACtD2E,MAAOF,IAAoB,SAAWI,IAAwBE,EAC9Dd,KAAM5E,EAAM4E,KACZxC,QAASA,EAAQiB,gBAET3C,IAAY,WAAaA,EAAQc,EAAM,CAAEY,QAAAA,IAAa1B,IAGpE,EChIO,IAAMmF,EAAgB,SAAhBA,EAAiB7F,GAC5B,IAAQW,EAA6BX,EAA7BW,UAAWmF,EAAkB9F,EAAlB8F,QAASC,EAAS/F,EAAT+F,KAC5B,IAAAC,EAAkBC,EAAMC,WAAhBC,EAAKH,EAALG,MACR,IAAMC,EAAeD,EAAMC,aAE3B,OACEpD,EAACmB,EAAK,CACJC,aAAc,MACdK,SAAU,KACVC,eAAc,KACd/D,UAAWuD,EAAW,qBAAsBvD,GAC5CiE,KAAM5E,EAAM4E,KACZ9D,OAAQ,KACRuF,SAAU,MACVC,MAAO,CAAE,sBAAuBF,GAChCL,KAAMA,EAAK1C,SAEXL,EAACuD,EAAW,CAAC5F,UAAWuD,EAAW,8BAA8Bb,SAC/DgB,EAAA,MAAA,CAAK1D,UAAU,iBAAgB0C,UAC7BL,EAAA,MAAA,CAAKrC,UAAU,iBACfqC,EAAA,MAAA,CAAKrC,UAAU,cAAa0C,SAAEyC,GAAW,cAKnD,ECxBO,IAAMU,EAAkB,SAAlBA,IACX,IAAMC,EAAMC,EAAW7G,GAEvB,IAAMuC,EAAU,SAAVA,IACJqE,EAAIE,mBAAiB,UAAA,EAArBF,EAAIE,qBAGN,MAAO,CACLC,gBAAiB,CACfhC,KAAM,SAAAA,EAACiC,GACLJ,EAAIK,kBAAJL,UAAAA,EAAAA,EAAIK,iBAAgB5D,EAAA,CAAA,EAAQ2D,EAAI,CAAEjC,KAAM,QACxC,MAAO,CAAExC,QAAAA,EACV,EACD2E,MAAO3E,GAGb,EAKO,IAAM4E,EAAmB,SAAnBA,IACX,IAAMP,EAAMC,EAAW7G,GAEvB,IAAMuC,EAAU,SAAVA,IACJqE,EAAIQ,oBAAkB,UAAA,EAAtBR,EAAIQ,sBAGN,MAAO,CACLC,iBAAkB,CAChBtC,KAAM,SAAAA,EAACiC,GACLJ,EAAIU,mBAAJV,UAAAA,EAAAA,EAAIU,kBAAiBjE,EAAA,CAAA,EAAQ2D,EAAI,CAAEjC,KAAM,QACzC,MAAO,CAAExC,QAAAA,EACV,EACD2E,MAAO3E,GAGb,EAQO,IAAMgF,EAAiB,SAAjBA,IACX,IAAMX,EAAMC,EAAW7G,GAEvB,IAAMuC,EAAU,SAAVA,IACJqE,EAAIY,kBAAgB,UAAA,EAApBZ,EAAIY,oBAGN,MAAO,CACLC,eAAgB,CACd1C,KAAM,SAAAA,EAACiC,GACLJ,EAAIc,iBAAJd,UAAAA,EAAAA,EAAIc,gBAAerE,EAAA,CAAA,EAAQ2D,EAAI,CAAEjC,KAAM,QACvC,MAAO,CAAExC,QAAAA,EACV,EACD2E,MAAO3E,GAGb,EAQO,IAAMoF,EAAkB,SAAlBA,IACX,IAAMf,EAAMC,EAAW7G,GAEvB,IAAMuC,EAAU,SAAVA,IACJqE,EAAIgB,mBAAiB,UAAA,EAArBhB,EAAIgB,qBAGN,MAAO,CACLC,gBAAiB,CACf9C,KAAM,SAAAA,EAACiC,GACLJ,EAAIkB,kBAAJlB,UAAAA,EAAAA,EAAIkB,iBAAgBzE,EAAA,CAAA,EAAQ2D,EAAI,CAAEjC,KAAM,QACxC,MAAO,CAAExC,QAAAA,EACV,EACD2E,MAAO3E,GAGb,EAMO,IAAMwF,EAAiB,SAAjBA,IACX,IAAMnB,EAAMC,EAAW7G,GAEvB,IAAMuC,EAAU,SAAVA,IACJqE,EAAIoB,kBAAgB,UAAA,EAApBpB,EAAIoB,oBAGN,MAAO,CACLC,eAAgB,CACdlD,KAAM,SAAAA,EAACiC,GACLJ,EAAIsB,iBAAJtB,UAAAA,EAAAA,EAAIsB,gBAAe7E,EAAA,CAAA,EAAQ2D,EAAI,CAAEjC,KAAM,QACvC,MAAO,CAAExC,QAAAA,EACV,EACD2E,MAAO3E,GAGb,EAKO,IAAM4F,EAAmB,SAAnBA,IACX,IAAMvB,EAAMC,EAAW7G,GAEvB,IAAMuC,EAAU,SAAVA,IACJqE,EAAIwB,oBAAkB,UAAA,EAAtBxB,EAAIwB,sBAGN,MAAO,CACLC,iBAAkB,CAChBtD,KAAM,SAAAA,EAACiC,GACLJ,EAAI0B,mBAAJ1B,UAAAA,EAAAA,EAAI0B,kBAAiBjF,EAAA,CAAA,EAAQ2D,EAAI,CAAEjC,KAAM,QACzC,MAAO,CAAExC,QAAAA,EACV,EACD2E,MAAO3E,GAGb,EAKO,IAAMgG,EAAmB,SAAnBA,IACX,IAAM3B,EAAMC,EAAW7G,GAEvB,IAAMuC,EAAU,SAAVA,IACJqE,EAAI4B,oBAAkB,UAAA,EAAtB5B,EAAI4B,sBAGN,MAAO,CACLC,iBAAkB,CAChB1D,KAAM,SAAAA,EAACiC,GACLJ,EAAI8B,mBAAJ9B,UAAAA,EAAAA,EAAI8B,kBAAiBrF,EAAA,CAAA,EAAQ2D,EAAI,CAAEjC,KAAM,QACzC,MAAO,CAAExC,QAAAA,EACV,EACD2E,MAAO3E,GAGb,EAEO,IAAMoG,EAAS,SAATA,EAAUxI,GACrB,IAAAyI,EAAsCC,EAA4B,IAA3DC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAClC,IAAAI,EAAkCH,EAASI,KAApCC,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAE9B,IAAAI,EAAwCP,EAA4B,IAA7DQ,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpC,IAAAG,EAAoCV,EAASI,KAAtCO,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAEhC,IAAAG,EAAoCb,EAA2B,IAAxDc,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChC,IAAAG,EAAgChB,EAASI,KAAlCa,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAE5B,IAAAG,EAAsCnB,EAA2B,IAA1DoB,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAClC,IAAAG,EAAkCtB,EAASI,KAApCmB,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAE9B,IAAAG,EAAoCzB,EAA2B,IAAxD0B,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChC,IAAAG,EAAwC5B,EAA6B,IAA9D6B,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpC,IAAAG,EAAwC/B,IAAjCgC,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAEpC,IAAAG,EAAgClC,EAASI,KAAlC+B,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5B,IAAAG,EAAoCrC,EAASI,KAAtCkC,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChC,IAAAG,EAAoCxC,EAASI,KAAtCqC,GAAUD,EAAA,GAAEE,GAAaF,EAAA,GAEhC,IAAMpE,GAAyDzE,EAAMC,gBAAe,SAACuE,GACnF+B,EAAe/B,EACjB,IACA,IAAMF,GAAoBtE,EAAMC,gBAAe,SAACE,GAC9CoG,EAAc1F,EAAA,CAAA,EAAMyF,EAAW,CAAE/D,KAAM,SACvC+D,EAAYvG,SAAZuG,UAAAA,EAAAA,EAAYvG,QAAUI,GACtB6I,YAAW,WACTrC,EAAaF,IACd,GAAE,IACL,IAEA,IAAM3B,GAA2D9E,EAAMC,gBAAe,SAACuE,GACrFsC,EAAgBtC,EAClB,IAEA,IAAMI,GAAqB5E,EAAMC,gBAAe,SAACE,GAC/C2G,EAAejG,EAAA,CAAA,EAAMgG,EAAY,CAAEtE,KAAM,SACzCsE,EAAa9G,SAAb8G,UAAAA,EAAAA,EAAa9G,QAAUI,GACvB6I,YAAW,WACT/B,EAAcR,IACf,GAAE,IACL,IAEA,IAAMvB,GAAuDlF,EAAMC,gBAAe,SAACuE,GACjF4C,EAAc5C,EAChB,IAEA,IAAMQ,GAAmBhF,EAAMC,gBAAe,WAC5CmH,EAAavG,EAAA,CAAA,EAAMsG,EAAU,CAAE5E,KAAM,SACrC4E,EAAWpH,SAAO,UAAA,EAAlBoH,EAAWpH,UACXiJ,YAAW,WACTzB,EAAYd,IACb,GAAE,IACL,IAEA,IAAMnB,GAAyDtF,EAAMC,gBAAe,SAACuE,GACnFkD,EAAelD,EACjB,IAEA,IAAMY,GAAoBpF,EAAMC,gBAAe,WAC7CyH,EAAc7G,EAAA,CAAA,EAAM4G,EAAW,CAAElF,KAAM,SACvCkF,EAAY1H,SAAO,UAAA,EAAnB0H,EAAY1H,UACZiJ,YAAW,WACTnB,EAAapB,IACd,GAAE,IACL,IAEA,IAAMf,GAAuD1F,EAAMC,gBAAe,SAACuE,GACjFwD,EAAcxD,EAChB,IAEA,IAAMgB,GAAmBxF,EAAMC,gBAAe,WAC5C+H,EAAanH,EAAA,CAAA,EAAMkH,EAAU,CAAExF,KAAM,SACrCwF,EAAWhI,SAAO,UAAA,EAAlBgI,EAAWhI,UACXiJ,YAAW,WACTP,EAAYhC,IACb,GAAE,IACL,IAEA,IAAMX,GAA2D9F,EAAMC,gBAAe,SAACuE,GACrF2D,EAAgB3D,EAClB,IAEA,IAAMoB,GAAqB5F,EAAMC,gBAAe,WAC9CkI,EAAetH,EAAA,CAAA,EAAMqH,EAAY,CAAE3F,KAAM,SACzC2F,EAAanI,SAAO,UAAA,EAApBmI,EAAanI,UACbiJ,YAAW,WACTJ,EAAcnC,IACf,GAAE,IACL,IAEA,IAAMP,GAA2DlG,EAAMC,gBAAe,SAACuE,GACrF8D,EAAgB9D,EAClB,IAEA,IAAMwB,GAAqBhG,EAAMC,gBAAe,WAC9CqI,EAAezH,EAAA,CAAA,EAAMwH,EAAY,CAAE9F,KAAM,SACzCyG,YAAW,WACTD,GAActC,IACf,GAAE,IACL,IAEA,OACEzE,EAACxE,EAAcyL,SAAQ,CACrBC,MAAO,CACLzE,iBAAAA,GACAH,kBAAAA,GACAQ,kBAAAA,GACAF,mBAAAA,GACAM,gBAAAA,GACAF,iBAAAA,GACAM,iBAAAA,GACAF,kBAAAA,GACAM,gBAAAA,GACAF,iBAAAA,GACAM,kBAAAA,GACAF,mBAAAA,GACAM,kBAAAA,GACAF,mBAAAA,IACAhF,UAEFmI,EAACxG,EAAY9B,KAAKyF,EAAW,CAAEvG,QAASuE,GAAmB8E,IAAK1C,KAChEyC,EAACxG,EAAY9B,KAAKgG,EAAY,CAAE9G,QAAS6E,GAAoBwE,IAAKpC,KAClEmC,EAACzL,EAAWmD,KAAKsG,EAAU,CAAEpH,QAASiF,GAAkBoE,IAAK9B,KAC7D6B,EAACzL,EAAWmD,KAAK4G,EAAW,CAAE1H,QAASqF,GAAmBgE,IAAKxB,KAC/DuB,EAAC1G,EAAW5B,KAAKkH,EAAU,CAAEhI,QAASyF,GAAkB4D,IAAKZ,KAC7DW,EAAC3G,EAAa3B,KAAKqH,EAAY,CAAEnI,QAAS6F,GAAoBwD,IAAKT,KACnEQ,EAAC3F,EAAa3C,KAAKwH,EAAY,CAAEe,IAAKN,MACrCnL,EAAMqD,WAGb,EC5RO,IAAMmF,EAASkD,EAASC,4BAA4BC,EAAa,CAEtEpF,gBAAAA,EACAQ,iBAAAA,EAEAI,eAAAA,EACAI,gBAAAA,EAEAQ,iBAAAA,EAEAJ,eAAAA,EAEAQ,iBAAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/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/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 { isNull, isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { getFbaLocaleMessage } from '../../_utils/i18n';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:middle\n * ```\n * 1. 如果自定义了width、styles.body.height属性,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 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 /** null则隐藏footer */\n footer?: null | ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\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 ...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 const sizeFt = size === null ? undefined : size === undefined ? 'middle' : size;\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 operateGroup =\n !cancelHidden || !okHidden\n ? [\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 ]\n : undefined;\n\n const footerNew = isNull(footer)\n ? null\n : (typeof footer === 'function' ? footer(form) : footer) || operateGroup || [];\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n if (['xs', 'sm'].includes(screenType)) {\n return {\n height: (htmlSize?.height as number) * 0.7,\n };\n }\n if (sizeFt == 'large') {\n return {\n height: (htmlSize?.height as number) * 0.7,\n width: htmlSize.width * 0.6,\n };\n }\n if (sizeFt == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: (htmlSize?.height as number) * 0.4,\n width: width < 470 ? 470 : width,\n };\n }\n\n if (sizeFt == 'middle') {\n return {\n height: (htmlSize?.height as number) * 0.55,\n width: htmlSize.width * 0.5,\n };\n }\n return undefined;\n }, [htmlSize?.height, sizeFt, otherProps.styles?.body?.height, otherProps.width, screenType]);\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 return (\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: customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={props.open}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\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 { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode, useMemo } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\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 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 operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => 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\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 operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\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 return (\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' ? operateRenderHandle() : 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' ? operateRenderHandle() : extraRender}\n open={props.open}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\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 } 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 { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\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};\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};\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 };\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 };\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","FbaAppModal","props","_localMessage$FbaDial","_otherProps$styles","_otherProps$styles2","titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","localMessage","getFbaLocaleMessage","screenType","fbaHooks","useResponsivePoint","sizeFt","undefined","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","FbaDialogModal","type","footerNew","_isNull","customSize","useMemo","height","includes","width","styles","body","classNameNew","_classNames","Modal","maskClosable","_jsxs","FlexLayout","direction","fullIndex","centered","destroyOnClose","maxHeight","open","FbaAppConfirm","FbaAppAlert","_form","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","extra","Space","operateRenderHandle","maxWidth","extraRender","Drawer","contentWrapperStyle","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","BlockLayout","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","data","dialogDrawerOpen","close","useDialogDrawer2","dialogDrawerClose2","appDialogDrawer2","dialogDrawerOpen2","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useDialogModal2","dialogModalClose2","appDialogModal2","dialogModalOpen2","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","_useState","useState","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","_useState10","confirmProps","setConfirmProps","_useState11","loadingProps","setLoadingProps","_useState12","alertKey","setAlertKey","_useState13","confirmKey","setConfirmKey","_useState14","loadingKey","setLoadingKey","setTimeout","Provider","value","_createElement","key","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -2178,6 +2178,15 @@ export type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {
|
|
|
2178
2178
|
hidden?: boolean;
|
|
2179
2179
|
/** 是否折叠在更多中 */
|
|
2180
2180
|
isFold?: boolean;
|
|
2181
|
+
/**
|
|
2182
|
+
* 异步数据渲染,与asyncColumnRequest配合使用
|
|
2183
|
+
* ```
|
|
2184
|
+
* 1. 使用asyncRender后,render配置失效
|
|
2185
|
+
* 2. 使用场景为,表格列数据是通过接口查询后渲染的(通常表格数据为code,但是页面渲染要使用name)
|
|
2186
|
+
* 3. respData为异步返回数据
|
|
2187
|
+
* ```
|
|
2188
|
+
*/
|
|
2189
|
+
asyncRender?: (value: any, record: T, index: number, respData?: any) => React.ReactNode;
|
|
2181
2190
|
};
|
|
2182
2191
|
export type EasyTableServiceConfig = {
|
|
2183
2192
|
/** 接口配置 */
|
|
@@ -2324,6 +2333,16 @@ export type EasyTableProps = {
|
|
|
2324
2333
|
/** 触发交互弹出类型 */
|
|
2325
2334
|
triggerType?: "drawer" | "dropdown";
|
|
2326
2335
|
};
|
|
2336
|
+
/**
|
|
2337
|
+
* 配置表格列中需要异步请求数据
|
|
2338
|
+
* ```
|
|
2339
|
+
* 1. 与table column asyncRender配合使用
|
|
2340
|
+
* ```
|
|
2341
|
+
*/
|
|
2342
|
+
asyncColumnRequest?: {
|
|
2343
|
+
dataIndex: string;
|
|
2344
|
+
onRequest: () => Promise<any>;
|
|
2345
|
+
}[];
|
|
2327
2346
|
};
|
|
2328
2347
|
export type EasyTableRefApi = {
|
|
2329
2348
|
/** 外部发起请求服务 */
|
|
@@ -2450,7 +2469,7 @@ export type EasyTableTableProps<T> = Omit<TableProps<TAny>, "dataSource" | "load
|
|
|
2450
2469
|
* Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table
|
|
2451
2470
|
*
|
|
2452
2471
|
* 1. 废弃modelKey参数
|
|
2453
|
-
* 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true
|
|
2472
|
+
* 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true;如果存在多个EasyTable缓存情况可设置cacheSwitch为自定义字符串
|
|
2454
2473
|
* 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作
|
|
2455
2474
|
* 4. 可通过属性 initRequest 设置初始化是否请求数据
|
|
2456
2475
|
* 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize
|
|
@@ -2460,6 +2479,7 @@ export type EasyTableTableProps<T> = Omit<TableProps<TAny>, "dataSource" | "load
|
|
|
2460
2479
|
* 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值
|
|
2461
2480
|
* 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提高windows下table左右滚动体验
|
|
2462
2481
|
* 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)
|
|
2482
|
+
* 12. 通过asyncColumnRequest、asyncRender配合使用可实现表格列数据接口渲染(demo:https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table)
|
|
2463
2483
|
* ```
|
|
2464
2484
|
*/
|
|
2465
2485
|
export declare const EasyTable: import("react").ForwardRefExoticComponent<EasyTableProps & import("react").RefAttributes<EasyTableRefApi>> & {
|
|
@@ -2674,7 +2694,7 @@ export type FbaAppModalProps = Omit<ModalProps, "onOk" | "onCancel" | "getContai
|
|
|
2674
2694
|
bodyHeightPercent?: number;
|
|
2675
2695
|
titleExtra?: ReactElement;
|
|
2676
2696
|
/** null则隐藏footer */
|
|
2677
|
-
footer?: null | ReactElement | ReactElement[];
|
|
2697
|
+
footer?: null | ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);
|
|
2678
2698
|
};
|
|
2679
2699
|
export type FbaAppAlertProps = Omit<FbaAppModalProps, "onOk" | "cancelHidden" | "cancelButtonProps" | "onCancel" | "onClick"> & {
|
|
2680
2700
|
onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;
|