@flatbiz/antd 4.5.2 → 4.5.3

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.
@@ -6,5 +6,5 @@ import './../types/index.css';
6
6
  import './../fba-utils/index.css';
7
7
  import './index.css';
8
8
  /*! @flatjs/forge MIT @flatbiz/antd */
9
- import{isString as e}from"@dimjs/lang/cjs/is-string";import{_ as r,a as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isPromise as o}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{dom as i}from"@flatbiz/utils";import{Form as a,Space as l,Drawer as d}from"antd";import{useState as s,useMemo as c}from"react";import{createRoot as u}from"react-dom/client";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{C as p}from"../index-7f4ad045.js";import{fbaHooks as f}from"../fba-hooks/index.js";import{u as v,C as j}from"../context-1f2093c6.js";import{jsx as h,jsxs as w}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/utils/cjs/class-names";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";import"@wove/react/cjs/create-ctx";var x=["divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var y=function e(i){var u;var v=i.divElement,y=i.elementId,g=i.onOk,k=i.onCancel,C=i.content,P=i.configProviderProps,b=i.okText,_=i.cancelText,E=i.okButtonExtraProps,B=i.cancelButtonExtraProps,F=i.operatePosition,I=F===void 0?"footer":F,R=i.operateRender,W=i.width,H=i.okHidden,O=i.cancelHidden,D=i.extra,T=t(i,x);var z=s(true),S=z[0],Y=z[1];var A=s(),L=A[0],N=A[1];var U=a.useForm(),q=U[0];var G=f.useResponsivePoint()||"";var J=s({}),K=J[0],M=J[1];var Q=n.useCallbackRef((function(){try{delete window[y]}catch(e){}Y(false)}));f.useEffectCustom((function(){window[y]=Q}),[Q]);var V=n.useCallbackRef((function(e){if(k){var r=k(q,e);if(r&&o(r)){return r.then(Q)}}return Q()}));var X=n.useCallbackRef((function(e){if(g){var r=g(q,e);if(r&&o(r)){return r.then(Q)}}return Q()}));var Z=c((function(){if(R){return R(q,K)}var e=H||(E==null?void 0:E.hidden);var t=H||(E==null?void 0:E.hidden);var o=w(l,{children:[t?null:h(m,r({},B,{onClick:V,children:_||"取消"})),e?null:h(m,r({type:"primary"},E,{onClick:X,children:b||"提交"}))]});if(!H||!O){return o}return null}),[K]);var $=typeof D==="function"?D(q):D;var ee=function e(r){N(r)};var re=c((function(){if(!G)return undefined;if(["xs","sm"].includes(G)){return{width:"90%",maxWidth:"90%"}}if(W){return{width:W,maxWidth:"calc(100% - 200px)"}}return{width:"40%",maxWidth:"calc(100% - 200px)"}}),[G,W]);var te=function e(r){M(r)};return h(j,{value:{onClose:Q,updateBodyStyle:ee,rerenderFooter:te},children:h(p,r({},P,{children:h(d,r({maskClosable:true,destroyOnClose:true,onClose:Q,contentWrapperStyle:{maxWidth:re==null?void 0:re.maxWidth},footer:I==="footer"?Z:null},T,{width:re==null?void 0:re.width,styles:r({},T.styles,{body:r({},L,(u=T.styles)==null?void 0:u.body)}),extra:I==="header"?Z:$,open:S,getContainer:v,children:typeof C==="function"?C(q,{onClose:Q}):C}))}))})};var g={open:function e(t){var o=i.bodyAppendDivElement(),n=o.divElement,a=o.elementId;window["__dialog_drawer_elementId"]=a;var l=u(n);l.render(h(y,r({},t,{divElement:n,elementId:a})));return{close:function e(){var r,t;(r=(t=window)[a])==null?void 0:r.call(t)}}},close:function r(){try{var t,o;var n=window["__dialog_drawer_elementId"];if(e(n))(t=(o=window)[n])==null?void 0:t.call(o)}catch(e){}},useDialogDrawer:function e(){var r=v();return{rerenderFooter:function e(t){r.rerenderFooter(t)}}}};export{g as dialogDrawer};
9
+ import{isString as e}from"@dimjs/lang/cjs/is-string";import{_ as r,a as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isPromise as o}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{dom as i}from"@flatbiz/utils";import{Form as a,Space as l,Drawer as d}from"antd";import{useState as s,useMemo as c}from"react";import{createRoot as u}from"react-dom/client";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{C as p}from"../index-7f4ad045.js";import{fbaHooks as f}from"../fba-hooks/index.js";import{u as v,C as j}from"../context-1f2093c6.js";import{jsx as h,jsxs as w}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/utils/cjs/class-names";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";import"@wove/react/cjs/create-ctx";var x=["divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var y=function e(i){var u;var v=i.divElement,y=i.elementId,g=i.onOk,k=i.onCancel,C=i.content,P=i.configProviderProps,b=i.okText,_=i.cancelText,E=i.okButtonExtraProps,B=i.cancelButtonExtraProps,F=i.operatePosition,I=F===void 0?"footer":F,R=i.operateRender,W=i.width,H=i.okHidden,O=i.cancelHidden,D=i.extra,T=t(i,x);var z=s(true),S=z[0],Y=z[1];var A=s(),L=A[0],M=A[1];var N=a.useForm(),U=N[0];var q=f.useResponsivePoint()||"";var G=s({}),J=G[0],K=G[1];var Q=n.useCallbackRef((function(){try{delete window[y]}catch(e){}Y(false)}));f.useEffectCustom((function(){window[y]=Q}),[Q]);var V=n.useCallbackRef((function(e){if(k){var r=k(U,e);if(r&&o(r)){return r.then(Q)}}return Q()}));var X=n.useCallbackRef((function(e){if(g){var r=g(U,e);if(r&&o(r)){return r.then(Q)}}return Q()}));var Z=f.useMemoCustom((function(){if(R){return R(U,J)}var e=H||(E==null?void 0:E.hidden);var t=H||(E==null?void 0:E.hidden);var o=w(l,{children:[t?null:h(m,r({},B,{onClick:V,children:_||"取消"})),e?null:h(m,r({type:"primary"},E,{onClick:X,children:b||"提交"}))]});if(!H||!O){return o}return null}),[J]);var $=typeof D==="function"?D(U):D;var ee=function e(r){M(r)};var re=c((function(){if(!q)return undefined;if(["xs","sm"].includes(q)){return{width:"90%",maxWidth:"90%"}}if(W){return{width:W,maxWidth:"calc(100% - 200px)"}}return{width:"40%",maxWidth:"calc(100% - 200px)"}}),[q,W]);var te=function e(r){K(r)};return h(j,{value:{onClose:Q,updateBodyStyle:ee,rerenderFooter:te},children:h(p,r({},P,{children:h(d,r({maskClosable:true,destroyOnClose:true,onClose:Q,contentWrapperStyle:{maxWidth:re==null?void 0:re.maxWidth},footer:I==="footer"?Z:null},T,{width:re==null?void 0:re.width,styles:r({},T.styles,{body:r({},L,(u=T.styles)==null?void 0:u.body)}),extra:I==="header"?Z:$,open:S,getContainer:v,children:typeof C==="function"?C(U,{onClose:Q}):C}))}))})};var g={open:function e(t){var o=i.bodyAppendDivElement(),n=o.divElement,a=o.elementId;window["__dialog_drawer_elementId"]=a;var l=u(n);l.render(h(y,r({},t,{divElement:n,elementId:a})));return{close:function e(){var r,t;(r=(t=window)[a])==null?void 0:r.call(t)}}},close:function r(){try{var t,o;var n=window["__dialog_drawer_elementId"];if(e(n))(t=(o=window)[n])==null?void 0:t.call(o)}catch(e){}},useDialogDrawer:function e(){var r=v();return{rerenderFooter:function e(t){r.rerenderFooter(t)}}}};export{g as dialogDrawer};
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-drawer/dialog-drawer.tsx"],"sourcesContent":["import { isPromise, isString } from '@dimjs/lang';\nimport { dom, TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { CSSProperties, ReactElement, ReactNode, 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 { BodyAppendDivElementProps } from '../_utils/dom';\nimport { CtxProvider, useDialogDrawerCtx } from './context';\n\nexport type DialogDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | '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: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n okHidden?: boolean;\n cancelHidden?: boolean;\n /** 设置操作区域位置 */\n operatePosition?: 'header' | 'footer';\n /** 右上角自定义内容,如果operatePosition=header,此设置无效 */\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n /**\n * ```\n * 1. 自定义弹框操作区域,通过 operatePosition 配置可以自定义位置\n * 2. extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n operateRender?: (form: FormInstance, extraData?: TPlainObject) => ReactElement;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogDrawerProps) => {\n const {\n divElement,\n elementId,\n onOk,\n onCancel,\n content,\n configProviderProps,\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 [open, setOpen] = useState(true);\n const [innerBodyStyle, setInnerBodyStyle] = useState<CSSProperties>();\n const [form] = Form.useForm();\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const newOperateRender = useMemo(() => {\n if (operateRender) {\n return operateRender(form, footerExtraData);\n }\n\n const okHiddenNew = okHidden || okButtonExtraProps?.hidden;\n const cancelHiddenNew = okHidden || okButtonExtraProps?.hidden;\n\n const operateGroup = (\n <Space>\n {cancelHiddenNew ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHiddenNew ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n }, [footerExtraData]);\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const updateBodyStyle = (bodyStyle?: CSSProperties) => {\n setInnerBodyStyle(bodyStyle);\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 rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n return (\n <CtxProvider value={{ onClose, updateBodyStyle, rerenderFooter }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n onClose={onClose}\n // 5.13.0 新增 styles.wrapper,并废弃 contentWrapperStyle drawerStyle maskStyle 属性\n contentWrapperStyle={{ maxWidth: customSize?.maxWidth }}\n footer={operatePosition === 'footer' ? newOperateRender : null}\n {...otherProps}\n width={customSize?.width}\n styles={{\n ...otherProps.styles,\n body: { ...innerBodyStyle, ...otherProps.styles?.body },\n // wrapper: {\n // maxWidth: customSize?.maxWidth,\n // ...otherProps.styles?.wrapper,\n // },\n }}\n extra={operatePosition === 'header' ? newOperateRender : extraRender}\n open={open}\n getContainer={divElement}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n </ConfigProviderWrapper>\n </CtxProvider>\n );\n};\n\n/**\n * 抽屉弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogDrawer.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogDrawer } = FbaApp.useDialogDrawer();\n * appDialogDrawer.open({})\n * ```\n */\nexport const dialogDrawer = {\n open: (props: DialogDrawerProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_drawer_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. 多个弹框主动关闭,只能使用 dialogDrawer.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_drawer_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useDialogDrawer: () => {\n const ctx = useDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n};\n"],"names":["ModalRender","props","_otherProps$styles","divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","width","okHidden","cancelHidden","extra","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_useState2","innerBodyStyle","setInnerBodyStyle","_Form$useForm","Form","useForm","form","screenType","fbaHooks","useResponsivePoint","_useState3","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","newOperateRender","useMemo","okHiddenNew","hidden","cancelHiddenNew","operateGroup","_jsxs","Space","children","_jsx","ButtonWrapper","_extends","onClick","type","extraRender","updateBodyStyle","bodyStyle","customSize","undefined","includes","maxWidth","rerenderFooter","data","CtxProvider","value","ConfigProviderWrapper","Drawer","maskClosable","destroyOnClose","contentWrapperStyle","footer","styles","body","getContainer","dialogDrawer","_dom$bodyAppendDivEle","dom","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString","useDialogDrawer","ctx","useDialogDrawerCtx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-drawer/dialog-drawer.tsx"],"sourcesContent":["import { isPromise, isString } from '@dimjs/lang';\nimport { dom, TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { CSSProperties, ReactElement, ReactNode, 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 { BodyAppendDivElementProps } from '../_utils/dom';\nimport { CtxProvider, useDialogDrawerCtx } from './context';\n\nexport type DialogDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | '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: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n okHidden?: boolean;\n cancelHidden?: boolean;\n /** 设置操作区域位置 */\n operatePosition?: 'header' | 'footer';\n /** 右上角自定义内容,如果operatePosition=header,此设置无效 */\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n /**\n * ```\n * 1. 自定义弹框操作区域,通过 operatePosition 配置可以自定义位置\n * 2. extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n operateRender?: (form: FormInstance, extraData?: TPlainObject) => ReactElement;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogDrawerProps) => {\n const {\n divElement,\n elementId,\n onOk,\n onCancel,\n content,\n configProviderProps,\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 [open, setOpen] = useState(true);\n const [innerBodyStyle, setInnerBodyStyle] = useState<CSSProperties>();\n const [form] = Form.useForm();\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const newOperateRender = fbaHooks.useMemoCustom(() => {\n if (operateRender) {\n return operateRender(form, footerExtraData);\n }\n\n const okHiddenNew = okHidden || okButtonExtraProps?.hidden;\n const cancelHiddenNew = okHidden || okButtonExtraProps?.hidden;\n\n const operateGroup = (\n <Space>\n {cancelHiddenNew ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHiddenNew ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n }, [footerExtraData]);\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const updateBodyStyle = (bodyStyle?: CSSProperties) => {\n setInnerBodyStyle(bodyStyle);\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 rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n return (\n <CtxProvider value={{ onClose, updateBodyStyle, rerenderFooter }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n onClose={onClose}\n // 5.13.0 新增 styles.wrapper,并废弃 contentWrapperStyle drawerStyle maskStyle 属性\n contentWrapperStyle={{ maxWidth: customSize?.maxWidth }}\n footer={operatePosition === 'footer' ? newOperateRender : null}\n {...otherProps}\n width={customSize?.width}\n styles={{\n ...otherProps.styles,\n body: { ...innerBodyStyle, ...otherProps.styles?.body },\n // wrapper: {\n // maxWidth: customSize?.maxWidth,\n // ...otherProps.styles?.wrapper,\n // },\n }}\n extra={operatePosition === 'header' ? newOperateRender : extraRender}\n open={open}\n getContainer={divElement}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n </ConfigProviderWrapper>\n </CtxProvider>\n );\n};\n\n/**\n * 抽屉弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogDrawer.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogDrawer } = FbaApp.useDialogDrawer();\n * appDialogDrawer.open({})\n * ```\n */\nexport const dialogDrawer = {\n open: (props: DialogDrawerProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_drawer_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. 多个弹框主动关闭,只能使用 dialogDrawer.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_drawer_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useDialogDrawer: () => {\n const ctx = useDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n};\n"],"names":["ModalRender","props","_otherProps$styles","divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","width","okHidden","cancelHidden","extra","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_useState2","innerBodyStyle","setInnerBodyStyle","_Form$useForm","Form","useForm","form","screenType","fbaHooks","useResponsivePoint","_useState3","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","newOperateRender","useMemoCustom","okHiddenNew","hidden","cancelHiddenNew","operateGroup","_jsxs","Space","children","_jsx","ButtonWrapper","_extends","onClick","type","extraRender","updateBodyStyle","bodyStyle","customSize","useMemo","undefined","includes","maxWidth","rerenderFooter","data","CtxProvider","value","ConfigProviderWrapper","Drawer","maskClosable","destroyOnClose","contentWrapperStyle","footer","styles","body","getContainer","dialogDrawer","_dom$bodyAppendDivEle","dom","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString","useDialogDrawer","ctx","useDialogDrawerCtx"],"mappings":";88CAwCA,IAAMA,EAAc,SAAdA,EAAeC,GAAyD,IAAAC,EAC5E,IACEC,EAiBEF,EAjBFE,WACAC,EAgBEH,EAhBFG,UACAC,EAeEJ,EAfFI,KACAC,EAcEL,EAdFK,SACAC,EAaEN,EAbFM,QACAC,EAYEP,EAZFO,oBACAC,EAWER,EAXFQ,OACAC,EAUET,EAVFS,WACAC,EASEV,EATFU,mBACAC,EAQEX,EARFW,uBAAsBC,EAQpBZ,EAPFa,gBAAAA,EAAeD,SAAG,EAAA,SAAQA,EAC1BE,EAMEd,EANFc,cACAC,EAKEf,EALFe,MACAC,EAIEhB,EAJFgB,SACAC,EAGEjB,EAHFiB,aACAC,EAEElB,EAFFkB,MACGC,EAAUC,EACXpB,EAAKqB,GACT,IAAAC,EAAwBC,EAAS,MAA1BC,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GACpB,IAAAI,EAA4CH,IAArCI,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GACxC,IAAAG,EAAeC,EAAKC,UAAbC,EAAIH,EAAA,GACX,IAAMI,EAAaC,EAASC,sBAAwB,GACpD,IAAAC,EAA8Cb,EAAuB,IAA9Dc,EAAeD,EAAA,GAAEE,EAAkBF,EAAA,GAE1C,IAAMG,EAAUC,EAAMC,gBAAe,WACnC,WACSC,OAAOvC,EACf,CAAC,MAAOwC,GACP,CAEFlB,EAAQ,MACV,IAEAS,EAASU,iBAAgB,WACvBF,OAAOvC,GAAaoC,CACtB,GAAG,CAACA,IAEJ,IAAMM,EAAiBL,EAAMC,gBAAe,SAACK,GAC3C,GAAIzC,EAAU,CACZ,IAAM0C,EAAW1C,EAAS2B,EAAMc,GAChC,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKV,EACvB,CACF,CACA,OAAOA,GACT,IAEA,IAAMW,EAAaV,EAAMC,gBAAe,SAACK,GACvC,GAAI1C,EAAM,CACR,IAAM2C,EAAW3C,EAAK4B,EAAMc,GAC5B,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKV,EACvB,CACF,CACA,OAAOA,GACT,IAEA,IAAMY,EAAmBjB,EAASkB,eAAc,WAC9C,GAAItC,EAAe,CACjB,OAAOA,EAAckB,EAAMK,EAC7B,CAEA,IAAMgB,EAAcrC,IAAYN,GAAAA,UAAAA,EAAAA,EAAoB4C,QACpD,IAAMC,EAAkBvC,IAAYN,GAAAA,UAAAA,EAAAA,EAAoB4C,QAExD,IAAME,EACJC,EAACC,EAAK,CAAAC,SAAA,CACHJ,EAAkB,KACjBK,EAACC,EAAaC,EAAA,CAAA,EAAKnD,EAAsB,CAAEoD,QAASlB,EAAec,SAChElD,GAAc,QAGlB4C,EAAc,KACbO,EAACC,EAAaC,EAAA,CAACE,KAAK,WAActD,EAAkB,CAAEqD,QAASb,EAAWS,SACvEnD,GAAU,WAKnB,IAAKQ,IAAaC,EAAc,CAC9B,OAAOuC,CACT,CACA,OAAO,IACT,GAAG,CAACnB,IAEJ,IAAM4B,SAAqB/C,IAAU,WAAaA,EAAMc,GAAQd,EAEhE,IAAMgD,GAAkB,SAAlBA,EAAmBC,GACvBvC,EAAkBuC,IAGpB,IAAMC,GAAaC,GAAQ,WACzB,IAAKpC,EAAY,OAAOqC,UACxB,GAAI,CAAC,KAAM,MAAMC,SAAStC,GAAa,CACrC,MAAO,CACLlB,MAAO,MACPyD,SAAU,MAEd,CACA,GAAIzD,EAAO,CACT,MAAO,CAAEA,MAAOA,EAAOyD,SAAU,qBACnC,CACA,MAAO,CAAEzD,MAAO,MAAOyD,SAAU,qBACnC,GAAG,CAACvC,EAAYlB,IAEhB,IAAM0D,GAAiB,SAAjBA,EAAkBC,GACtBpC,EAAmBoC,IAGrB,OACEd,EAACe,EAAW,CAACC,MAAO,CAAErC,QAAAA,EAAS2B,gBAAAA,GAAiBO,eAAAA,IAAiBd,SAC/DC,EAACiB,EAAqBf,KAAKvD,EAAmB,CAAAoD,SAC5CC,EAACkB,EAAMhB,EAAA,CACLiB,aAAc,KACdC,eAAc,KACdzC,QAASA,EAET0C,oBAAqB,CAAET,SAAUJ,IAAAA,UAAAA,EAAAA,GAAYI,UAC7CU,OAAQrE,IAAoB,SAAWsC,EAAmB,MACtDhC,EAAU,CACdJ,MAAOqD,IAAAA,UAAAA,EAAAA,GAAYrD,MACnBoE,OAAMrB,EACD3C,GAAAA,EAAWgE,OAAM,CACpBC,KAAItB,EAAOnC,GAAAA,GAAc1B,EAAKkB,EAAWgE,SAAXlF,UAAAA,EAAAA,EAAmBmF,QAMnDlE,MAAOL,IAAoB,SAAWsC,EAAmBc,EACzDzC,KAAMA,EACN6D,aAAcnF,EAAWyD,gBAEjBrD,IAAY,WAAaA,EAAQ0B,EAAM,CAAEO,QAAAA,IAAajC,SAKxE,EAcO,IAAMgF,EAAe,CAC1B9D,KAAM,SAAAA,EAACxB,GACL,IAAAuF,EAAkCC,EAAIC,uBAA9BvF,EAAUqF,EAAVrF,WAAYC,EAASoF,EAATpF,UACpBuC,OAAO,6BAA+BvC,EACtC,IAAMuF,EAAOC,EAAWzF,GACxBwF,EAAKE,OAAOhC,EAAC7D,EAAW+D,EAAA,CAAA,EAAK9D,EAAK,CAAEE,WAAYA,EAAYC,UAAWA,MACvE,MAAO,CACL0F,MAAO,SAAAA,IAAM,IAAAC,EAAAC,GACXD,GAAAC,EAAArD,QAAOvC,KAAU,UAAA,EAAjB2F,EAAAE,KAAAD,EACF,EAEH,EAODF,MAAO,SAAAA,IACL,IAAI,IAAAI,EAAAC,EACF,IAAM/F,EAAYuC,OAAO,6BACzB,GAAIyD,EAAShG,IAAY8F,GAAAC,EAAAxD,QAAOvC,KAAP8F,UAAAA,EAAAA,EAAAD,KAAAE,EAC1B,CAAC,MAAOvD,GACP,CAEH,EAMDyD,gBAAiB,SAAAA,IACf,IAAMC,EAAMC,IACZ,MAAO,CAEL7B,eAAgB,SAAAA,EAACC,GACf2B,EAAI5B,eAAeC,EACrB,EAEJ"}
@@ -1 +1 @@
1
- .v-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px}.v-dialog-modal .ant-modal-content{padding:20px 0}.v-dialog-modal .ant-modal-header{padding:0 24px}.v-dialog-modal .ant-modal-footer{margin:0;padding:10px 24px 0}.v-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.v-dialog-modal.v-dialog-modal-footer-empty .ant-modal-footer{padding:0}.v-dialog-modal.v-dialog-modal-footer-empty .ant-modal-body{padding:10px 24px}.v-dialog-modal.v-dialog-modal-footer-empty .ant-modal-content{padding:20px 0 0}
1
+ .v-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px}.v-dialog-modal .ant-modal-content{padding:20px 0!important}.v-dialog-modal .ant-modal-header{padding:0 24px}.v-dialog-modal .ant-modal-footer{margin:0;padding:10px 24px 0}.v-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.v-dialog-modal.v-dialog-modal-footer-empty .ant-modal-footer{padding:0}.v-dialog-modal.v-dialog-modal-footer-empty .ant-modal-body{padding:10px 24px}.v-dialog-modal.v-dialog-modal-footer-empty .ant-modal-content{padding:20px 0 0}
@@ -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 o}from"@dimjs/lang/cjs/is-null";import{_ as i,a as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isPromise as n}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 u,useMemo as c}from"react";import{createRoot as f}from"react-dom/client";import{ButtonWrapper as p}from"../button-wrapper/index.js";import{C as v}from"../index-7f4ad045.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{FlexLayout as g}from"../flex-layout/index.js";import{createCtx as y}from"@wove/react/cjs/create-ctx";import{jsx as j,jsxs as w}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 k=y(),x=k[0],C=k[1];var b=["title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var _=function e(f){var y,k,x;var _=f.title,P=f.titleExtra,E=f.divElement,H=f.elementId,I=f.onOk,z=f.onCancel,B=f.okButtonProps,F=f.cancelButtonProps,O=f.content,N=f.configProviderProps,R=f.className,T=f.okHidden,D=f.cancelHidden,S=f.footer,Y=f.cancelText,q=f.okText,A=f.size,J=f.bodyHeight,L=r(f,b);var M=u(true),U=M[0],G=M[1];var K=s.useForm(),Q=K[0];var V=d(document.querySelector("html"));var W=h.useResponsivePoint()||"";var X=A===null?undefined:A===undefined?"middle":A;var Z=u({}),$=Z[0],ee=Z[1];var te=l.useCallbackRef((function(){try{delete window[H]}catch(e){}G(false)}));h.useEffectCustom((function(){window[H]=te}),[te]);var oe=l.useCallbackRef((function(e){if(z){var t=z(Q,e);if(t&&n(t)){return t.then(te)}}return te()}));var ie=l.useCallbackRef((function(e){if(I){var t=I(Q,e);if(t&&n(t)){return t.then(te)}}return te()}));var re=l.useCallbackRef((function(){a.removeBodyChild("#"+H);f.afterClose==null?void 0:f.afterClose()}));var ne=c((function(){var e=!D||!T?[j(p,i({},F,{onClick:oe,hidden:D,children:Y||"取消"}),"0"),j(p,i({type:"primary"},B,{onClick:ie,hidden:T,children:q||"提交"}),"1")]:undefined;var t=o(S)?null:(typeof S==="function"?S(Q,$):S)||e||[];return t}),[JSON.stringify($)]);var le=c((function(){if(!(V!=null&&V.height)||!W)return undefined;if(["xs","sm"].includes(W)){return{height:(V==null?void 0:V.height)*.7}}if(X=="large"){return{height:(V==null?void 0:V.height)*.7,width:V.width*.6}}if(X=="small"){var e=V.width*.3;return{height:(V==null?void 0:V.height)*.4,width:e<470?470:e}}if(X=="middle"){return{height:(V==null?void 0:V.height)*.4,width:V.width*.5}}return undefined}),[V==null?void 0:V.height,X,(y=L.styles)==null||(y=y.body)==null?void 0:y.height,L.width,W]);var ae=t("v-dialog-modal",{"v-dialog-modal-title-extra":!!P},{"v-dialog-modal-footer-empty":!ne},R);var de=function e(t){ee(t)};var se=((k=L.styles)==null||(k=k.body)==null?void 0:k.height)||J;return j(C,{value:{rerenderFooter:de},children:j(v,i({},N,{children:j(m,i({title:P?w(g,{direction:"horizontal",fullIndex:0,children:[j("span",{children:_}),P]}):_,maskClosable:true,centered:true,onCancel:te,destroyOnClose:true,width:le==null?void 0:le.width},L,{footer:ne,styles:i({},L.styles,{body:i({height:se||(le==null?void 0:le.height),maxHeight:"calc(100vh - 200px)"},(x=L.styles)==null?void 0:x.body)}),className:ae,open:U,afterClose:re,getContainer:E,children:typeof O==="function"?O(Q,{onClose:te}):O}))}))})};var P={open:function e(t){var o=a.bodyAppendDivElement(),r=o.divElement,n=o.elementId;window["__dialog_modal_elementId"]=n;var l=f(r);l.render(j(_,i({},t,{divElement:r,elementId:n})));return{close:function e(){var t,o;(t=(o=window)[n])==null?void 0:t.call(o)}}},close:function t(){try{var o,i;var r=window["__dialog_modal_elementId"];if(e(r))(o=(i=window)[r])==null?void 0:o.call(i)}catch(e){}},useDialogModal:function e(){var t=x();return{rerenderFooter:function e(o){t.rerenderFooter(o)}}}};export{P as dialogModal};
10
+ import{isString as e}from"@dimjs/lang/cjs/is-string";import{classNames as o}from"@dimjs/utils/cjs/class-names";import{isNull as t}from"@dimjs/lang/cjs/is-null";import{_ as i,a as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isPromise as n}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 v}from"../index-7f4ad045.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{FlexLayout as g}from"../flex-layout/index.js";import{createCtx as y}from"@wove/react/cjs/create-ctx";import{jsx as j,jsxs as w}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 k=y(),x=k[0],C=k[1];var b=["title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var _=function e(f){var y,k;var x=f.title,_=f.titleExtra,P=f.divElement,E=f.elementId,H=f.onOk,I=f.onCancel,z=f.okButtonProps,B=f.cancelButtonProps,F=f.content,O=f.configProviderProps,R=f.className,N=f.okHidden,T=f.cancelHidden,D=f.footer,M=f.cancelText,S=f.okText,Y=f.size,q=f.bodyHeight,A=r(f,b);var L=c(true),U=L[0],G=L[1];var J=s.useForm(),K=J[0];var Q=d(document.querySelector("html"));var V=h.useResponsivePoint()||"";var W=c({}),X=W[0],Z=W[1];var $=l.useCallbackRef((function(){try{delete window[E]}catch(e){}G(false)}));h.useEffectCustom((function(){window[E]=$}),[$]);var ee=l.useCallbackRef((function(e){if(I){var o=I(K,e);if(o&&n(o)){return o.then($)}}return $()}));var oe=l.useCallbackRef((function(e){if(H){var o=H(K,e);if(o&&n(o)){return o.then($)}}return $()}));var te=l.useCallbackRef((function(){a.removeBodyChild("#"+E);f.afterClose==null?void 0:f.afterClose()}));var ie=h.useMemoCustom((function(){var e=!T||!N?[j(p,i({},B,{onClick:ee,hidden:T,children:M||"取消"}),"0"),j(p,i({type:"primary"},z,{onClick:oe,hidden:N,children:S||"提交"}),"1")]:undefined;var o=t(D)?null:(typeof D==="function"?D(K,X):D)||e||[];return o}),[X]);var re=u((function(){if(!(Q!=null&&Q.height)||!V)return undefined;var e=["xs","sm"].includes(V);if(Y=="large"){return{height:(Q==null?void 0:Q.height)*.7,width:e?"90%":Q.width*.6}}if(Y=="small"){var o=Q.width*.3;return{height:(Q==null?void 0:Q.height)*.4,width:e?"90%":o<470?470:o}}if(Y=="middle"){return{height:(Q==null?void 0:Q.height)*.4,width:e?"90%":Q.width*.5}}return undefined}),[Q==null?void 0:Q.height,Q==null?void 0:Q.width,V,Y]);var ne=o("v-dialog-modal",{"v-dialog-modal-title-extra":!!_},{"v-dialog-modal-footer-empty":!ie},R);var le=function e(o){Z(o)};var ae=((y=A.styles)==null||(y=y.body)==null?void 0:y.height)||q;return j(C,{value:{rerenderFooter:le},children:j(v,i({},O,{children:j(m,i({title:_?w(g,{direction:"horizontal",fullIndex:0,children:[j("span",{children:x}),_]}):x,maskClosable:true,centered:true,onCancel:$,destroyOnClose:true,width:re==null?void 0:re.width},A,{footer:ie,styles:i({},A.styles,{body:i({height:ae||(re==null?void 0:re.height),maxHeight:"calc(100vh - 200px)"},(k=A.styles)==null?void 0:k.body)}),className:ne,open:U,afterClose:te,getContainer:P,children:typeof F==="function"?F(K,{onClose:$}):F}))}))})};var P={open:function e(o){var t=a.bodyAppendDivElement(),r=t.divElement,n=t.elementId;window["__dialog_modal_elementId"]=n;var l=f(r);l.render(j(_,i({},o,{divElement:r,elementId:n})));return{close:function e(){var o,t;(o=(t=window)[n])==null?void 0:o.call(t)}}},close:function o(){try{var t,i;var r=window["__dialog_modal_elementId"];if(e(r))(t=(i=window)[r])==null?void 0:t.call(i)}catch(e){}},useDialogModal:function e(){var o=x();return{rerenderFooter:function e(t){o.rerenderFooter(t)}}}};export{P as dialogModal};
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-modal/context.ts","@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useDialogModalCtx, DialogModalCtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isNull, isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { DialogModalCtxProvider, useDialogModalCtx } from './context';\nimport './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认: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 /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogModalProps) => {\n const {\n title,\n titleExtra,\n divElement,\n elementId,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n configProviderProps,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n const sizeFt = size === null ? undefined : size === undefined ? 'middle' : size;\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onAfterClose = hooks.useCallbackRef(() => {\n dom.removeBodyChild(`#${elementId}`);\n props.afterClose?.();\n });\n\n const footerNew = useMemo(() => {\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 const footerNew = isNull(footer)\n ? null\n : (typeof footer === 'function' ? footer(form, footerExtraData) : footer) || operateGroup || [];\n return footerNew;\n }, [JSON.stringify(footerExtraData)]);\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.4,\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 const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n\n return (\n <DialogModalCtxProvider value={{ rerenderFooter }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Modal\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n </ConfigProviderWrapper>\n </DialogModalCtxProvider>\n );\n};\n\n/**\n * 居中弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogModal.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogModal } = FbaApp.useDialogModal();\n * appDialogModal.open({})\n * 4. size属性可使用预设的弹窗尺寸(默认值middle),如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const dialogModal = {\n open: (props: DialogModalProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_modal_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_modal_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useDialogModal: () => {\n const ctx = useDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n};\n"],"names":["_createCtx","_createCtx2","useDialogModalCtx","DialogModalCtxProvider","ModalRender","props","_otherProps$styles","_otherProps$styles2","_otherProps$styles3","title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","sizeFt","undefined","_useState2","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","footerNew","useMemo","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","_isNull","JSON","stringify","customSize","height","includes","width","styles","body","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","value","ConfigProviderWrapper","Modal","_jsxs","FlexLayout","direction","fullIndex","maskClosable","centered","destroyOnClose","maxHeight","getContainer","dialogModal","_dom$bodyAppendDivEle","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString","useDialogModal","ctx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-modal/context.ts","@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useDialogModalCtx, DialogModalCtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isNull, isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { DialogModalCtxProvider, useDialogModalCtx } from './context';\nimport './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:无\n * ```\n * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效\n * 2. 不传、传null值可取消内置尺寸\n * ```\n */\n size?: 'small' | 'middle' | 'large' | null;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * @deprecated 已失效,可通过size属性设置\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n titleExtra?: ReactElement;\n /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogModalProps) => {\n const {\n title,\n titleExtra,\n divElement,\n elementId,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n configProviderProps,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onAfterClose = hooks.useCallbackRef(() => {\n dom.removeBodyChild(`#${elementId}`);\n props.afterClose?.();\n });\n\n const footerNew = fbaHooks.useMemoCustom(() => {\n 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 const footerNew = isNull(footer)\n ? null\n : (typeof footer === 'function' ? footer(form, footerExtraData) : footer) || operateGroup || [];\n return footerNew;\n }, [footerExtraData]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n if (size == 'large') {\n return {\n height: htmlSize?.height * 0.7,\n width: isXsSm ? '90%' : htmlSize.width * 0.6,\n };\n }\n if (size == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : width < 470 ? 470 : width,\n };\n }\n\n if (size == 'middle') {\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : htmlSize.width * 0.5,\n };\n }\n\n return undefined;\n }, [htmlSize?.height, htmlSize?.width, screenType, size]);\n\n const classNameNew = classNames(\n 'v-dialog-modal',\n { 'v-dialog-modal-title-extra': !!titleExtra },\n { 'v-dialog-modal-footer-empty': !footerNew },\n className,\n );\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n\n return (\n <DialogModalCtxProvider value={{ rerenderFooter }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Modal\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n </ConfigProviderWrapper>\n </DialogModalCtxProvider>\n );\n};\n\n/**\n * 居中弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogModal.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogModal } = FbaApp.useDialogModal();\n * appDialogModal.open({})\n * 4. size属性可使用预设的弹窗尺寸(默认值middle),如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const dialogModal = {\n open: (props: DialogModalProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_modal_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_modal_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useDialogModal: () => {\n const ctx = useDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n};\n"],"names":["_createCtx","_createCtx2","useDialogModalCtx","DialogModalCtxProvider","ModalRender","props","_otherProps$styles","_otherProps$styles2","title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","_useState2","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","footerNew","useMemoCustom","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","undefined","_isNull","customSize","useMemo","height","isXsSm","includes","width","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","styles","body","value","ConfigProviderWrapper","Modal","_jsxs","FlexLayout","direction","fullIndex","maskClosable","centered","destroyOnClose","maxHeight","getContainer","dialogModal","_dom$bodyAppendDivEle","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString","useDialogModal","ctx"],"mappings":"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"}
@@ -26,5 +26,5 @@ import './../input-text-area-wrapper/index.css';
26
26
  import './../icon-wrapper/index.css';
27
27
  import './index.css';
28
28
  /*! @flatjs/forge MIT @flatbiz/antd */
29
- import{a as i,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as e,useSensor as o,PointerSensor as t,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as p}from"@dnd-kit/sortable";import{Form as l}from"antd";import{EditableTable as c}from"../editable-table/index.js";import{createCtx as u}from"@wove/react/cjs/create-ctx";import j from"@ant-design/icons/es/icons/DragOutlined";import{CSS as g}from"@dnd-kit/utilities";import{isUndefinedOrNull as v,noop as f}from"@flatbiz/utils";import{createElement as x,Children as y,cloneElement as b}from"react";import{IconWrapper as w}from"../icon-wrapper/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"../text-symbol-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../form-item-hidden/index.js";import"../table-cell-render/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-render/index.js";import"../date-picker-wrapper/index.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper/index.js";import"../input-wrapper/index.js";import"../selector-wrapper/index.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"../switch-wrapper/index.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper/index.js";import"../upload-wrapper/index.js";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";var k=u(),I=k[0],_=k[1];var C=["dragIcon"];var D=function e(o){var t=o.dragIcon,n=i(o,C);var s=n["data-row-key"];var d=a({id:s}),m=d.setActivatorNodeRef,p=d.listeners,l=d.setNodeRef,c=d.transform,u=d.transition,k=d.isDragging;if(v(s)){return h("tr",r({},n))}var I=r({},n.style,{transform:g.Transform.toString(c&&r({},c,{scaleY:1})),transition:u,cursor:"move"},k?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var _=t||h(j,{});return x("tr",r({},n,{ref:l,style:I,key:s}),y.map(o.children,(function(i){if(i.key==="__sort"){return b(i,{children:h("span",r({ref:m,style:{touchAction:"none",cursor:"move"}},p,{children:h(w,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:_,onClick:f})}))})}return i})))};var F=function i(e){var o=I();return h(D,r({},e,{dragIcon:o.dragIcon}))};var O=["dragIcon","uidFieldKey","onDragChange","disabledDrag"];var P=function a(u){var j,g;var v=u.dragIcon,f=u.uidFieldKey,x=u.onDragChange,y=u.disabledDrag,b=i(u,O);var w=l.useFormInstance();var k=l.useWatch(u.name,w);var I=e(o(t,{activationConstraint:{delay:0,tolerance:0}}));var C=function i(r){var e=r.active,o=r.over;if(e.id!==(o==null?void 0:o.id)){var t=k.findIndex((function(i){return i[f]===e.id}));var n=k.findIndex((function(i){return i[f]===(o==null?void 0:o.id)}));var s=p(k,t,n);w.setFields([{name:u.name,value:s}]);x==null?void 0:x(s,{activeId:e.id,activeIndex:t,overIndex:n})}};var D=y?b.columns:[{dataIndex:"__sort",width:50,key:"__sort"}].concat(b.columns||[]);return h(_,{value:{dragIcon:v,uidFieldKey:f},children:h(n,{sensors:I,modifiers:[s],onDragEnd:C,children:h(d,{items:(k==null?void 0:k.map((function(i){return i[f]})))||[],strategy:m,children:h(c,r({},b,{uidFieldKey:f,columns:D,tableProps:r({},b.tableProps,{components:r({},(j=b.tableProps)==null?void 0:j.components,{body:r({},(g=b.tableProps)==null||(g=g.components)==null?void 0:g.body,{row:y?undefined:F})})})}))})})})};export{P as DragEditableTable};
29
+ import{a as i,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as e,useSensor as o,PointerSensor as t,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as p}from"@dnd-kit/sortable";import{Form as l}from"antd";import{EditableTable as c}from"../editable-table/index.js";import{createCtx as u}from"@wove/react/cjs/create-ctx";import j from"@ant-design/icons/es/icons/DragOutlined";import{CSS as g}from"@dnd-kit/utilities";import{isUndefinedOrNull as v,noop as f}from"@flatbiz/utils";import{createElement as x,Children as y,cloneElement as b}from"react";import{IconWrapper as w}from"../icon-wrapper/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"../text-symbol-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../form-item-hidden/index.js";import"../table-cell-render/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-render/index.js";import"../date-picker-wrapper/index.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper/index.js";import"../input-wrapper/index.js";import"../selector-wrapper/index.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"../switch-wrapper/index.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper/index.js";import"../upload-wrapper/index.js";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";var k=u(),I=k[0],_=k[1];var C=["dragIcon"];var D=function e(o){var t=o.dragIcon,n=i(o,C);var s=n["data-row-key"];var d=a({id:s}),m=d.setActivatorNodeRef,p=d.listeners,l=d.setNodeRef,c=d.transform,u=d.transition,k=d.isDragging;if(v(s)){return h("tr",r({},n))}var I=r({},n.style,{transform:g.Transform.toString(c&&r({},c,{scaleY:1})),transition:u,cursor:"move"},k?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var _=t||h(j,{});return x("tr",r({},n,{ref:l,style:I,key:s}),y.map(o.children,(function(i){if(i.key==="__sort"){return b(i,{children:h("span",r({ref:m,style:{touchAction:"none",cursor:"move"}},p,{children:h(w,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:_,onClick:f,size:"small"})}))})}return i})))};var F=function i(e){var o=I();return h(D,r({},e,{dragIcon:o.dragIcon}))};var O=["dragIcon","uidFieldKey","onDragChange","disabledDrag"];var P=function a(u){var j,g;var v=u.dragIcon,f=u.uidFieldKey,x=u.onDragChange,y=u.disabledDrag,b=i(u,O);var w=l.useFormInstance();var k=l.useWatch(u.name,w);var I=e(o(t,{activationConstraint:{delay:0,tolerance:0}}));var C=function i(r){var e=r.active,o=r.over;if(e.id!==(o==null?void 0:o.id)){var t=k.findIndex((function(i){return i[f]===e.id}));var n=k.findIndex((function(i){return i[f]===(o==null?void 0:o.id)}));var s=p(k,t,n);w.setFields([{name:u.name,value:s}]);x==null?void 0:x(s,{activeId:e.id,activeIndex:t,overIndex:n})}};var D=y?b.columns:[{dataIndex:"__sort",width:50,key:"__sort"}].concat(b.columns||[]);return h(_,{value:{dragIcon:v,uidFieldKey:f},children:h(n,{sensors:I,modifiers:[s],onDragEnd:C,children:h(d,{items:(k==null?void 0:k.map((function(i){return i[f]})))||[],strategy:m,children:h(c,r({},b,{uidFieldKey:f,columns:D,tableProps:r({},b.tableProps,{components:r({},(j=b.tableProps)==null?void 0:j.components,{body:r({},(g=b.tableProps)==null||(g=g.components)==null?void 0:g.body,{row:y?undefined:F})})})}))})})})};export{P as DragEditableTable};
30
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-table/context.ts","@flatbiz/antd/src/drag-editable-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-editable-table/row.tsx","@flatbiz/antd/src/drag-editable-table/drag.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: ReactElement;\n uidFieldKey: string;\n}>();\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isUndefinedOrNull, noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype TableTrHandleProps = RowProps & {\n dragIcon?: ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'] as number;\n\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (isUndefinedOrNull(rowId)) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = dragIcon || <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style} key={rowId}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === '__sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span ref={setActivatorNodeRef} style={{ touchAction: 'none', cursor: 'move' }} {...listeners}>\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return <TableTrHandle {...props} dragIcon={ctx.dragIcon} />;\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableTable, EditableTableProps } from '../editable-table';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\nexport type DragEditableTableProps = EditableTableProps & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽编辑表格\n * ```\n * 1. 表格数据必须要有唯一值字段,通过参数 uidFieldKey 告诉组件\n * 2. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragEditableTable = (props) => {\n const { dragIcon, uidFieldKey, onDragChange, disabledDrag, ...otherProps } = props;\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(props.name, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n form.setFields([\n {\n name: props.name,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columns = disabledDrag\n ? otherProps.columns\n : [{ dataIndex: '__sort', width: 50, key: '__sort' }].concat((otherProps.columns || []) as TAny[]);\n\n return (\n <CtxProvider\n value={{\n dragIcon,\n uidFieldKey,\n }}\n >\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableTable\n {...otherProps}\n uidFieldKey={uidFieldKey}\n columns={columns}\n tableProps={{\n ...otherProps.tableProps,\n components: {\n ...otherProps.tableProps?.components,\n body: {\n ...otherProps.tableProps?.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n },\n }}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTrHandle","props","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","isUndefinedOrNull","_jsx","_extends","style","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_DragOutlined","_createElement","ref","key","Children","map","children","child","cloneElement","touchAction","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","Row","ctx","DragEditableTable","_otherProps$tableProp","_otherProps$tableProp2","uidFieldKey","onDragChange","disabledDrag","otherProps","form","Form","useFormInstance","dataList","useWatch","name","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","value","activeId","columns","dataIndex","width","concat","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","EditableTable","tableProps","components","body","row","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-table/context.ts","@flatbiz/antd/src/drag-editable-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-editable-table/row.tsx","@flatbiz/antd/src/drag-editable-table/drag.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: ReactElement;\n uidFieldKey: string;\n}>();\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isUndefinedOrNull, noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype TableTrHandleProps = RowProps & {\n dragIcon?: ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'] as number;\n\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (isUndefinedOrNull(rowId)) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = dragIcon || <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style} key={rowId}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === '__sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span ref={setActivatorNodeRef} style={{ touchAction: 'none', cursor: 'move' }} {...listeners}>\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n size=\"small\"\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return <TableTrHandle {...props} dragIcon={ctx.dragIcon} />;\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableTable, EditableTableProps } from '../editable-table';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\nexport type DragEditableTableProps = EditableTableProps & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽编辑表格\n * ```\n * 1. 表格数据必须要有唯一值字段,通过参数 uidFieldKey 告诉组件\n * 2. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragEditableTable = (props) => {\n const { dragIcon, uidFieldKey, onDragChange, disabledDrag, ...otherProps } = props;\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(props.name, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n form.setFields([\n {\n name: props.name,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columns = disabledDrag\n ? otherProps.columns\n : [{ dataIndex: '__sort', width: 50, key: '__sort' }].concat((otherProps.columns || []) as TAny[]);\n\n return (\n <CtxProvider\n value={{\n dragIcon,\n uidFieldKey,\n }}\n >\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableTable\n {...otherProps}\n uidFieldKey={uidFieldKey}\n columns={columns}\n tableProps={{\n ...otherProps.tableProps,\n components: {\n ...otherProps.tableProps?.components,\n body: {\n ...otherProps.tableProps?.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n },\n }}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTrHandle","props","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","isUndefinedOrNull","_jsx","_extends","style","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_DragOutlined","_createElement","ref","key","Children","map","children","child","cloneElement","touchAction","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","size","Row","ctx","DragEditableTable","_otherProps$tableProp","_otherProps$tableProp2","uidFieldKey","onDragChange","disabledDrag","otherProps","form","Form","useFormInstance","dataList","useWatch","name","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","value","activeId","columns","dataIndex","width","concat","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","EditableTable","tableProps","components","body","row","undefined"],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  import './../icon-wrapper/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{_ as r,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as o,useSensor as e,PointerSensor as t,DndContext as i}from"@dnd-kit/core";import{restrictToVerticalAxis as a}from"@dnd-kit/modifiers";import{useSortable as d,SortableContext as s,verticalListSortingStrategy as c,arrayMove as l}from"@dnd-kit/sortable";import{Table as f}from"antd";import{Children as u,cloneElement as m,isValidElement as v,useState as p,useEffect as g,useMemo as x}from"react";import{createCtx as y}from"@wove/react/cjs/create-ctx";import{CSS as I}from"@dnd-kit/utilities";import{jsx as b}from"react/jsx-runtime";import h from"@ant-design/icons/es/icons/DragOutlined";import{noop as k}from"@flatbiz/utils";import{IconWrapper as j}from"../icon-wrapper/index.js";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";var w=y(),D=w[0],S=w[1];var C=function n(o){var e=d({id:o["data-row-key"]}),t=e.listeners,i=e.setNodeRef,a=e.transform,s=e.transition,c=e.isDragging;var l=r({},o.style,{transform:I.Transform.toString(a&&r({},a,{scaleY:1})),transition:s,cursor:"move"},c?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)"}:{});return b("tr",r({},o,{ref:i,style:l},t))};var z=["dragIcon"];var A=function o(e){var t=e.dragIcon,i=n(e,z);var a=i["data-row-key"];var s=d({id:a}),c=s.setActivatorNodeRef,l=s.listeners,f=s.setNodeRef,p=s.transform,g=s.transition,x=s.isDragging;if(!a){return b("tr",r({},i))}var y=r({},i.style,{transform:I.Transform.toString(p&&r({},p,{scaleY:1})),transition:g,cursor:t===false?"move":undefined},x?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var w=v(t)?t:b(h,{});return b("tr",r({},i,{ref:f,style:y,children:u.map(e.children,(function(n){if(n.key==="sort"){return m(n,{children:b("span",r({ref:c,style:{touchAction:"none",cursor:"move",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",display:"inline-flex"}},l,{children:b(j,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:w,onClick:k})}))})}return n}))}))};var K=function n(o){var e=D();return e.dragIcon===false?b(C,r({},o,{dragIcon:e.dragIcon})):b(A,r({},o,{dragIcon:e.dragIcon}))};var N=["dragIcon","uidFieldKey","columns","dataSource","onDragChange","disabledDrag"];var R=function d(u){var m;var v=u.dragIcon,y=u.uidFieldKey,I=u.columns,h=u.dataSource,k=u.onDragChange,j=u.disabledDrag,w=n(u,N);var D=p([]),C=D[0],z=D[1];g((function(){z(h||[])}),[h]);var A=function r(n){var o=n.active,e=n.over;if(o.id!==(e==null?void 0:e.id)){var t=C.findIndex((function(r){return r[y]===o.id}));var i=C.findIndex((function(r){return r[y]===(e==null?void 0:e.id)}));var a=l(C,t,i);z([].concat(a));k==null?void 0:k(a,{activeId:o.id,activeIndex:t,overIndex:i})}};var R=x((function(){if(v===false||u.disabledDrag)return I;return[{key:"sort",dataIndex:"sort",align:"center",width:50}].concat(I||[])}),[I,v]);var F=o(e(t,{activationConstraint:{delay:v===false?150:0,tolerance:0}}));return b(S,{value:{dragIcon:v},children:b(i,{sensors:F,modifiers:[a],onDragEnd:A,children:b(s,{items:C.map((function(r){return r[y]})),strategy:c,children:b(f,r({pagination:false,rowKey:y,bordered:true,components:r({},w.components,{body:r({},(m=w.components)==null?void 0:m.body,{row:j?undefined:K})})},w,{dataSource:C,columns:R}))})})})};export{R as DragTable};
5
+ import{_ as r,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as o,useSensor as e,PointerSensor as t,DndContext as i}from"@dnd-kit/core";import{restrictToVerticalAxis as a}from"@dnd-kit/modifiers";import{useSortable as d,SortableContext as s,verticalListSortingStrategy as c,arrayMove as l}from"@dnd-kit/sortable";import{Table as f}from"antd";import{Children as u,cloneElement as m,isValidElement as v,useState as p,useEffect as g,useMemo as x}from"react";import{createCtx as y}from"@wove/react/cjs/create-ctx";import{CSS as b}from"@dnd-kit/utilities";import{jsx as I}from"react/jsx-runtime";import h from"@ant-design/icons/es/icons/DragOutlined";import{noop as k}from"@flatbiz/utils";import{IconWrapper as D}from"../icon-wrapper/index.js";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";var j=y(),w=j[0],S=j[1];var C=function n(o){var e=d({id:o["data-row-key"]}),t=e.listeners,i=e.setNodeRef,a=e.transform,s=e.transition,c=e.isDragging;var l=r({},o.style,{transform:b.Transform.toString(a&&r({},a,{scaleY:1})),transition:s,cursor:"move"},c?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)"}:{});return I("tr",r({},o,{ref:i,style:l},t))};var z=["dragIcon"];var A=function o(e){var t=e.dragIcon,i=n(e,z);var a=i["data-row-key"];var s=d({id:a}),c=s.setActivatorNodeRef,l=s.listeners,f=s.setNodeRef,p=s.transform,g=s.transition,x=s.isDragging;if(!a){return I("tr",r({},i))}var y=r({},i.style,{transform:b.Transform.toString(p&&r({},p,{scaleY:1})),transition:g,cursor:t===false?"move":undefined},x?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var j=v(t)?t:I(h,{});return I("tr",r({},i,{ref:f,style:y,children:u.map(e.children,(function(n){if(n.key==="sort"){return m(n,{children:I("span",r({ref:c,style:{touchAction:"none",cursor:"move",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",display:"inline-flex"}},l,{children:I(D,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:j,onClick:k,size:"small"})}))})}return n}))}))};var K=function n(o){var e=w();return e.dragIcon===false?I(C,r({},o,{dragIcon:e.dragIcon})):I(A,r({},o,{dragIcon:e.dragIcon}))};var N=["dragIcon","uidFieldKey","columns","dataSource","onDragChange","disabledDrag"];var R=function d(u){var m;var v=u.dragIcon,y=u.uidFieldKey,b=u.columns,h=u.dataSource,k=u.onDragChange,D=u.disabledDrag,j=n(u,N);var w=p([]),C=w[0],z=w[1];g((function(){z(h||[])}),[h]);var A=function r(n){var o=n.active,e=n.over;if(o.id!==(e==null?void 0:e.id)){var t=C.findIndex((function(r){return r[y]===o.id}));var i=C.findIndex((function(r){return r[y]===(e==null?void 0:e.id)}));var a=l(C,t,i);z([].concat(a));k==null?void 0:k(a,{activeId:o.id,activeIndex:t,overIndex:i})}};var R=x((function(){if(v===false||u.disabledDrag)return b;return[{key:"sort",dataIndex:"sort",align:"center",width:50}].concat(b||[])}),[b,v,u.disabledDrag]);var F=o(e(t,{activationConstraint:{delay:v===false?150:0,tolerance:0}}));return I(S,{value:{dragIcon:v},children:I(i,{sensors:F,modifiers:[a],onDragEnd:A,children:I(s,{items:C.map((function(r){return r[y]})),strategy:c,children:I(f,r({pagination:false,rowKey:y,bordered:true,components:r({},j.components,{body:r({},(m=j.components)==null?void 0:m.body,{row:D?undefined:K})})},j,{dataSource:C,columns:R}))})})})};export{R as DragTable};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/context.ts","@flatbiz/antd/src/drag-table/table-tr.tsx","@flatbiz/antd/src/drag-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-table/row.tsx","@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: false | ReactElement;\n}>();\n","import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nexport const TableTr = (props) => {\n const { listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...props.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n }\n : {}),\n };\n\n return <tr {...props} ref={setNodeRef} style={style} {...listeners} />;\n};\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, isValidElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\ntype TableTrHandleProps = RowProps & {\n dragIcon?: false | ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'];\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (!rowId) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = isValidElement(dragIcon) ? dragIcon : <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === 'sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n display: 'inline-flex',\n }}\n {...listeners}\n >\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTr } from './table-tr';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return ctx.dragIcon === false ? (\n <TableTr {...props} dragIcon={ctx.dragIcon} />\n ) : (\n <TableTrHandle {...props} dragIcon={ctx.dragIcon} />\n );\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Table, type TableProps } from 'antd';\nimport { useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\ntype DragTableProps = Omit<TableProps<TPlainObject>, 'dataSource'> & {\n /**\n * ```\n * 1. 可自定义拖拽图标\n * 2. dragIcon = false,可设置表格行拖拽\n * ```\n */\n dragIcon?: false | ReactElement;\n /** 表格数据唯一值字段Key,未填或者无法唯一,都不能拖拽能力 */\n uidFieldKey: string;\n dataSource?: TPlainObject[];\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽表格\n * ```\n * 1. 必须设置唯一值字段 uidFieldKey\n * 2. 如果拖拽显示异常,请检查 uidFieldKey 是否正确\n * 3. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragTable = (props: DragTableProps) => {\n const { dragIcon, uidFieldKey, columns, dataSource, onDragChange, disabledDrag, ...otherProps } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n useEffect(() => {\n setDataList(dataSource || []);\n }, [dataSource]);\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n setDataList([...dataListNew]);\n onDragChange?.(dataListNew, {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columnsList = useMemo(() => {\n if (dragIcon === false || props.disabledDrag) return columns;\n return [\n {\n key: 'sort',\n dataIndex: 'sort',\n align: 'center',\n width: 50,\n } as TAny,\n ].concat(columns || []);\n }, [columns, dragIcon]);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: dragIcon === false ? 150 : 0,\n tolerance: 0,\n },\n }),\n );\n\n return (\n <CtxProvider value={{ dragIcon }}>\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext items={dataList.map((i) => i[uidFieldKey])} strategy={verticalListSortingStrategy}>\n <Table\n pagination={false}\n rowKey={uidFieldKey}\n bordered\n components={{\n ...otherProps.components,\n body: {\n ...otherProps.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n }}\n {...otherProps}\n dataSource={dataList}\n columns={columnsList}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTr","props","_useSortable","useSortable","id","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","_jsx","ref","TableTrHandle","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","setActivatorNodeRef","undefined","backgroundColor","iconElement","isValidElement","_DragOutlined","children","Children","map","child","key","cloneElement","touchAction","top","left","display","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","Row","ctx","DragTable","_otherProps$component","uidFieldKey","columns","dataSource","onDragChange","disabledDrag","otherProps","_useState","useState","dataList","setDataList","useEffect","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","concat","activeId","columnsList","useMemo","dataIndex","align","width","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","value","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","Table","pagination","rowKey","bordered","components","body","row"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/context.ts","@flatbiz/antd/src/drag-table/table-tr.tsx","@flatbiz/antd/src/drag-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-table/row.tsx","@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: false | ReactElement;\n}>();\n","import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nexport const TableTr = (props) => {\n const { listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...props.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n }\n : {}),\n };\n\n return <tr {...props} ref={setNodeRef} style={style} {...listeners} />;\n};\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, isValidElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\ntype TableTrHandleProps = RowProps & {\n dragIcon?: false | ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'];\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (!rowId) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = isValidElement(dragIcon) ? dragIcon : <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === 'sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n display: 'inline-flex',\n }}\n {...listeners}\n >\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n size=\"small\"\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTr } from './table-tr';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return ctx.dragIcon === false ? (\n <TableTr {...props} dragIcon={ctx.dragIcon} />\n ) : (\n <TableTrHandle {...props} dragIcon={ctx.dragIcon} />\n );\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Table, type TableProps } from 'antd';\nimport { useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\ntype DragTableProps = Omit<TableProps<TPlainObject>, 'dataSource'> & {\n /**\n * ```\n * 1. 可自定义拖拽图标\n * 2. dragIcon = false,可设置表格行拖拽\n * ```\n */\n dragIcon?: false | ReactElement;\n /** 表格数据唯一值字段Key,未填或者无法唯一,都不能拖拽能力 */\n uidFieldKey: string;\n dataSource?: TPlainObject[];\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽表格\n * ```\n * 1. 必须设置唯一值字段 uidFieldKey\n * 2. 如果拖拽显示异常,请检查 uidFieldKey 是否正确\n * 3. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragTable = (props: DragTableProps) => {\n const { dragIcon, uidFieldKey, columns, dataSource, onDragChange, disabledDrag, ...otherProps } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n useEffect(() => {\n setDataList(dataSource || []);\n }, [dataSource]);\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n setDataList([...dataListNew]);\n onDragChange?.(dataListNew, {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columnsList = useMemo(() => {\n if (dragIcon === false || props.disabledDrag) return columns;\n return [\n {\n key: 'sort',\n dataIndex: 'sort',\n align: 'center',\n width: 50,\n } as TAny,\n ].concat(columns || []);\n }, [columns, dragIcon, props.disabledDrag]);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: dragIcon === false ? 150 : 0,\n tolerance: 0,\n },\n }),\n );\n\n return (\n <CtxProvider value={{ dragIcon }}>\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext items={dataList.map((i) => i[uidFieldKey])} strategy={verticalListSortingStrategy}>\n <Table\n pagination={false}\n rowKey={uidFieldKey}\n bordered\n components={{\n ...otherProps.components,\n body: {\n ...otherProps.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n }}\n {...otherProps}\n dataSource={dataList}\n columns={columnsList}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTr","props","_useSortable","useSortable","id","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","_jsx","ref","TableTrHandle","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","setActivatorNodeRef","undefined","backgroundColor","iconElement","isValidElement","_DragOutlined","children","Children","map","child","key","cloneElement","touchAction","top","left","display","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","size","Row","ctx","DragTable","_otherProps$component","uidFieldKey","columns","dataSource","onDragChange","disabledDrag","otherProps","_useState","useState","dataList","setDataList","useEffect","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","concat","activeId","columnsList","useMemo","dataIndex","align","width","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","value","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","Table","pagination","rowKey","bordered","components","body","row"],"mappings":"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"}
@@ -1 +1 @@
1
- .fba-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px}.fba-dialog-modal .ant-modal-content{padding:20px 0}.fba-dialog-modal .ant-modal-footer,.fba-dialog-modal .ant-modal-header{padding:0 24px}.fba-dialog-modal .ant-modal-footer{margin:0}.fba-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.fba-dialog-modal.fba-dialog-modal-footer-empty .ant-modal-footer{padding:0}.fba-dialog-modal.fba-dialog-modal-footer-empty .ant-modal-body{padding:10px 24px}.fba-dialog-modal.fba-dialog-modal-footer-empty .ant-modal-content{padding:20px 0 0}.fba-dialog-modal.fba-dialog-confirm .ant-modal-header{margin:0}.fba-dialog-modal.fba-dialog-confirm .ant-modal-body{font-size:14px;font-weight:400}.fba-dialog-modal.fba-dialog-confirm .ant-modal-footer>button:nth-child(2){margin-left:15px}.light-theme .app-dialog-drawer .ant-drawer-body{color:rgba(0,0,0,.88)}.dark-theme .app-dialog-drawer .ant-drawer-body{color:hsla(0,0%,100%,.85)}.fba-dialog-loading .ant-modal-content{background-color:transparent!important;box-shadow:none!important;padding:0!important}.fba-dialog-loading .ant-modal-body{text-align:center!important}.fba-dialog-loading-content{background-color:var(--bg-color);border-radius:8px;display:inline-block;padding:20px 30px;text-align:center}.fba-dialog-loading-content .loader-inner{animation:dialog-spinner .6s linear infinite;border:2px solid rgba(0,128,227,.08);border-left:2px solid var(--fba-loading-color);border-radius:50%;height:30px;margin:0 auto;text-indent:-12345px;width:30px;z-index:100001}.fba-dialog-loading-content .loader-text{font-size:12px;font-size:16px;font-weight:500;letter-spacing:2px;margin-top:15px;text-align:left}@keyframes dialog-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
1
+ .fba-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px}.fba-dialog-modal .ant-modal-content{padding:20px 0!important}.fba-dialog-modal .ant-modal-footer,.fba-dialog-modal .ant-modal-header{padding:0 24px}.fba-dialog-modal .ant-modal-footer{margin:0}.fba-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.fba-dialog-modal.fba-dialog-modal-footer-empty .ant-modal-footer{padding:0}.fba-dialog-modal.fba-dialog-modal-footer-empty .ant-modal-body{padding:10px 24px}.fba-dialog-modal.fba-dialog-modal-footer-empty .ant-modal-content{padding:20px 0 0}.fba-dialog-modal.fba-dialog-confirm .ant-modal-header{margin:0}.fba-dialog-modal.fba-dialog-confirm .ant-modal-body{font-size:14px;font-weight:400}.fba-dialog-modal.fba-dialog-confirm .ant-modal-footer>button:nth-child(2){margin-left:15px}.light-theme .app-dialog-drawer .ant-drawer-body{color:rgba(0,0,0,.88)}.dark-theme .app-dialog-drawer .ant-drawer-body{color:hsla(0,0%,100%,.85)}.fba-dialog-loading .ant-modal-content{background-color:transparent!important;box-shadow:none!important;padding:0!important}.fba-dialog-loading .ant-modal-body{text-align:center!important}.fba-dialog-loading-content{background-color:var(--bg-color);border-radius:8px;display:inline-block;padding:20px 30px;text-align:center}.fba-dialog-loading-content .loader-inner{animation:dialog-spinner .6s linear infinite;border:2px solid rgba(0,128,227,.08);border-left:2px solid var(--fba-loading-color);border-radius:50%;height:30px;margin:0 auto;text-indent:-12345px;width:30px;z-index:100001}.fba-dialog-loading-content .loader-text{font-size:12px;font-size:16px;font-weight:500;letter-spacing:2px;margin-top:15px;text-align:left}@keyframes dialog-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
@@ -8,5 +8,5 @@ import './../flex-layout/index.css';
8
8
  import './../block-layout/index.css';
9
9
  import './index.css';
10
10
  /*! @flatjs/forge MIT @flatbiz/antd */
11
- import{fbaUtils as e}from"../fba-utils/index.js";import{hooks as o}from"@wove/react/cjs/hooks";import{a as n,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{getUuid as l}from"@flatbiz/utils";import{createContext as a,useState as i,useMemo as t,useContext as u,createElement as s}from"react";import{classNames as d}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 v}from"ahooks";import{Form as p,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{createCtx as w}from"@wove/react/cjs/create-ctx";import{jsx as D,jsxs as j}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 R=a({});var P=w(),T=P[0],M=P[1];var F=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size"];var N=function e(l){var a,u;var s=l.titleExtra,g=l.title,C=l.onOk,h=l.onCancel,w=l.okButtonProps,O=l.cancelButtonProps,R=l.content,P=l.className,T=l.okHidden,N=l.cancelHidden,A=l.footer,H=l.cancelText,B=l.okText,L=l.size,z=n(l,F);var E=p.useForm(),W=E[0];var _=v(document.querySelector("html"));var S=b();var Y=x.useResponsivePoint()||"";var q=L===null?undefined:L===undefined?"middle":L;var I=i({}),U=I[0],G=I[1];var J=o.useCallbackRef((function(){l.onClose==null?void 0:l.onClose()}));var K=o.useCallbackRef((function(e){if(h){var o=h(W,e);if(o&&f(o)){return o.then(J)}}J();return Promise.resolve()}));var Q=o.useCallbackRef((function(e){if(C){var o=C(W,e);if(o&&f(o)){return o.then(J)}}J();return Promise.resolve()}));var V=t((function(){var e;var o=!N||!T?[D(k,r({},O,{onClick:K,hidden:N,children:H||((e=S.FbaDialogModal)==null?void 0:e.cancelText)}),"0"),D(k,r({type:"primary"},w,{onClick:Q,hidden:T,children:B||"提交"}),"1")]:undefined;var n=c(A)?null:(typeof A==="function"?A(W,U):A)||o||[];return n}),[U,l.open]);var X=t((function(){if(!(_!=null&&_.height)||!Y)return undefined;if(["xs","sm"].includes(Y)){return{height:(_==null?void 0:_.height)*.7}}if(q=="large"){return{height:(_==null?void 0:_.height)*.7,width:_.width*.6}}if(q=="small"){var e=_.width*.3;return{height:(_==null?void 0:_.height)*.4,width:e<470?470:e}}if(q=="middle"){return{height:(_==null?void 0:_.height)*.55,width:_.width*.5}}return undefined}),[_==null?void 0:_.height,q,(a=z.styles)==null||(a=a.body)==null?void 0:a.height,z.width,Y]);var Z=d("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!s},{"fba-dialog-modal-footer-empty":!V},P);var $=function e(o){G(o)};return D(M,{value:{rerenderFooter:$},children:D(m,r({maskClosable:true,title:s?j(y,{direction:"horizontal",fullIndex:0,children:[D("span",{children:g}),s]}):g,centered:true,onCancel:J,destroyOnClose:true,width:X==null?void 0:X.width},z,{footer:V,styles:r({},z.styles,{body:r({height:X==null?void 0:X.height,maxHeight:"calc(100vh - 200px)"},(u=z.styles)==null?void 0:u.body)}),className:Z,open:l.open,children:typeof R==="function"?R(W,{onClose:J}):R}))})};var A=function e(o){var n=d("fba-dialog-confirm",o.className);return D(N,r({okText:"确定",size:null,width:350,cancelText:"取消",maskClosable:true},o,{className:n}))};var H=function e(o){return D(A,r({okText:"确定",cancelHidden:true,maskClosable:false},o,{onOk:function e(n,r){return o.onClick==null?void 0:o.onClick(r)}}))};var B=w(),L=B[0],z=B[1];var E=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var W=function e(l){var a=l.onOk,u=l.onCancel,s=l.content,c=l.okText,v=l.cancelText,m=l.okButtonExtraProps,h=l.cancelButtonExtraProps,y=l.operatePosition,b=y===void 0?"footer":y,w=l.operateRender,O=l.width,R=l.okHidden,P=l.cancelHidden,T=l.extra,M=n(l,E);var F=p.useForm(),N=F[0];var A=x.useResponsivePoint()||"";var H=i({}),B=H[0],L=H[1];var W=o.useCallbackRef((function(e){l.onClose==null?void 0:l.onClose(e)}));var _=o.useCallbackRef((function(e){if(u){var o=u(N,e);if(o&&f(o)){return o.then(W)}}W(e);return Promise.resolve()}));var S=o.useCallbackRef((function(e){if(a){var o=a(N,e);if(o&&f(o)){return o.then(W)}}W(e);return Promise.resolve()}));var Y=t((function(){if(w){return w(N,B)}var e=R||(m==null?void 0:m.hidden);var o=R||(m==null?void 0:m.hidden);var n=j(g,{children:[o?null:D(k,r({},h,{onClick:_,children:v||"取消"})),e?null:D(k,r({type:"primary"},m,{onClick:S,children:c||"提交"}))]});if(!R||!P){return n}return null}),[B,l.open]);var q=t((function(){if(!A)return undefined;if(["xs","sm"].includes(A)){return{width:"90%",maxWidth:"90%"}}if(O){return{width:O,maxWidth:"calc(100% - 200px)"}}return{width:"40%",maxWidth:"calc(100% - 200px)"}}),[A,O]);var I=typeof T==="function"?T(N):T;var U=function e(o){L(o)};return D(z,{value:{rerenderFooter:U},children:D(C,r({maskClosable:true,destroyOnClose:true,contentWrapperStyle:{maxWidth:q==null?void 0:q.maxWidth},footer:b==="footer"?Y:null},M,{width:q==null?void 0:q.width,styles:r({},M.styles),className:d("app-dialog-drawer",M.className),extra:b==="header"?Y:I,open:l.open,onClose:W,children:typeof s==="function"?s(N,{onClose:W}):s}))})};var _=function e(o){var n=o.className,r=o.message,l=o.mask;var a=h.useToken(),i=a.token;var t=i.colorPrimary;return D(m,{maskClosable:false,centered:true,destroyOnClose:true,className:d("fba-dialog-loading",n),open:o.open,footer:null,closable:false,style:{"--fba-loading-color":t},mask:l,children:D(O,{className:d("fba-dialog-loading-content"),children:j("div",{className:"loader-wrapper",children:[D("div",{className:"loader-inner"}),D("div",{className:"loader-text",children:r||"处理中"})]})})})};var S=function e(){var o=u(R);var n=function e(){o.dialogDrawerClose==null?void 0:o.dialogDrawerClose()};return{appDialogDrawer:{open:function e(l){o.dialogDrawerOpen==null?void 0:o.dialogDrawerOpen(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogDrawer:function e(){var o=L();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var Y=function e(){var o=u(R);var n=function e(){o.dialogDrawerClose2==null?void 0:o.dialogDrawerClose2()};return{appDialogDrawer2:{open:function e(l){o.dialogDrawerOpen2==null?void 0:o.dialogDrawerOpen2(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogDrawer:function e(){var o=L();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var q=function e(){var o=u(R);var n=function e(){o.dialogModalClose==null?void 0:o.dialogModalClose()};return{appDialogModal:{open:function e(l){o.dialogModalOpen==null?void 0:o.dialogModalOpen(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogModal:function e(){var o=T();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var I=function e(){var o=u(R);var n=function e(){o.dialogModalClose2==null?void 0:o.dialogModalClose2()};return{appDialogModal2:{open:function e(l){o.dialogModalOpen2==null?void 0:o.dialogModalOpen2(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogModal:function e(){var o=T();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var U=function e(){var o=u(R);var n=function e(){o.dialogAlertClose==null?void 0:o.dialogAlertClose()};return{appDialogAlert:{open:function e(l){o.dialogAlertOpen==null?void 0:o.dialogAlertOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var G=function e(){var o=u(R);var n=function e(){o.dialogConfirmClose==null?void 0:o.dialogConfirmClose()};return{appDialogConfirm:{open:function e(l){o.dialogConfirmOpen==null?void 0:o.dialogConfirmOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var J=function e(){var o=u(R);var n=function e(){o.dialogLoadingClose==null?void 0:o.dialogLoadingClose()};return{appDialogLoading:{open:function e(l){o.dialogLoadingOpen==null?void 0:o.dialogLoadingOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var K=function e(n){var a=i({}),t=a[0],u=a[1];var d=i(l()),c=d[0],f=d[1];var v=i({}),p=v[0],m=v[1];var g=i(l()),C=g[0],h=g[1];var k=i({}),x=k[0],y=k[1];var b=i(l()),w=b[0],D=b[1];var O=i({}),P=O[0],T=O[1];var M=i(l()),F=M[0],B=M[1];var L=i({}),z=L[0],E=L[1];var S=i({}),Y=S[0],q=S[1];var I=i(),U=I[0],G=I[1];var J=i(l()),K=J[0],Q=J[1];var V=i(l()),X=V[0],Z=V[1];var $=i(l()),ee=$[0],oe=$[1];var ne=o.useCallbackRef((function(e){u(e)}));var re=o.useCallbackRef((function(e){u(r({},t,{open:false}));t.onClose==null?void 0:t.onClose(e);setTimeout((function(){f(l())}),200)}));var le=o.useCallbackRef((function(e){m(e)}));var ae=o.useCallbackRef((function(e){m(r({},p,{open:false}));p.onClose==null?void 0:p.onClose(e);setTimeout((function(){h(l())}),200)}));var ie=o.useCallbackRef((function(e){y(e)}));var te=o.useCallbackRef((function(){y(r({},x,{open:false}));x.onClose==null?void 0:x.onClose();setTimeout((function(){D(l())}),200)}));var ue=o.useCallbackRef((function(e){T(e)}));var se=o.useCallbackRef((function(){T(r({},P,{open:false}));P.onClose==null?void 0:P.onClose();setTimeout((function(){B(l())}),200)}));var de=o.useCallbackRef((function(e){E(e)}));var ce=o.useCallbackRef((function(){E(r({},z,{open:false}));z.onClose==null?void 0:z.onClose();setTimeout((function(){Q(l())}),200)}));var fe=o.useCallbackRef((function(e){q(e)}));var ve=o.useCallbackRef((function(){q(r({},Y,{open:false}));Y.onClose==null?void 0:Y.onClose();setTimeout((function(){Z(l())}),200)}));var pe=o.useCallbackRef((function(e){G(e)}));var me=o.useCallbackRef((function(){G(r({},U,{open:false}));setTimeout((function(){oe(l())}),200)}));return j(R.Provider,{value:{dialogDrawerOpen:ne,dialogDrawerClose:re,dialogDrawerOpen2:le,dialogDrawerClose2:ae,dialogModalOpen:ie,dialogModalClose:te,dialogModalOpen2:ue,dialogModalClose2:se,dialogAlertOpen:de,dialogAlertClose:ce,dialogConfirmOpen:fe,dialogConfirmClose:ve,dialogLoadingOpen:pe,dialogLoadingClose:me},children:[s(W,r({},t,{onClose:re,key:c})),s(W,r({},p,{onClose:ae,key:C})),s(N,r({},x,{onClose:te,key:w})),s(N,r({},P,{onClose:se,key:F})),s(H,r({},z,{onClose:ce,key:K})),s(A,r({},Y,{onClose:ve,key:X})),s(_,r({},U,{key:ee})),n.children]})};var Q=e.attachPropertiesToComponent(K,{useDialogDrawer:S,useDialogDrawer2:Y,useDialogModal:q,useDialogModal2:I,useDialogConfirm:G,useDialogAlert:U,useDialogLoading:J});export{Q as FbaApp};
11
+ import{fbaUtils as e}from"../fba-utils/index.js";import{hooks as o}from"@wove/react/cjs/hooks";import{a as n,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{getUuid as l}from"@flatbiz/utils";import{createContext as a,useState as i,useMemo as t,useContext as s,createElement as u}from"react";import{classNames as d}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 v}from"ahooks";import{Form as p,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{createCtx as w}from"@wove/react/cjs/create-ctx";import{jsx as D,jsxs as j}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 R=a({});var M=w(),P=M[0],T=M[1];var F=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var N=function e(l){var a,s;var u=l.titleExtra,g=l.title,C=l.onOk,h=l.onCancel,w=l.okButtonProps,O=l.cancelButtonProps,R=l.content,M=l.className,P=l.okHidden,N=l.cancelHidden,H=l.footer,A=l.cancelText,B=l.okText,L=l.size,z=l.bodyHeight,E=n(l,F);var W=p.useForm(),_=W[0];var S=v(document.querySelector("html"));var Y=b();var q=y.useResponsivePoint()||"";var I=i({}),U=I[0],G=I[1];var J=o.useCallbackRef((function(){l.onClose==null?void 0:l.onClose()}));var K=o.useCallbackRef((function(e){if(h){var o=h(_,e);if(o&&f(o)){return o.then(J)}}J();return Promise.resolve()}));var Q=o.useCallbackRef((function(e){if(C){var o=C(_,e);if(o&&f(o)){return o.then(J)}}J();return Promise.resolve()}));var V=y.useMemoCustom((function(){var e;var o=!N||!P?[D(k,r({},O,{onClick:K,hidden:N,children:A||((e=Y.FbaDialogModal)==null?void 0:e.cancelText)}),"0"),D(k,r({type:"primary"},w,{onClick:Q,hidden:P,children:B||"提交"}),"1")]:undefined;var n=c(H)?null:(typeof H==="function"?H(_,U):H)||o||[];return n}),[U,l.open]);var X=t((function(){if(!(S!=null&&S.height)||!q)return undefined;var e=["xs","sm"].includes(q);if(L=="large"){return{height:(S==null?void 0:S.height)*.7,width:e?"90%":S.width*.6}}if(L=="small"){var o=S.width*.3;return{height:(S==null?void 0:S.height)*.4,width:e?"90%":o<470?470:o}}if(L=="middle"){return{height:(S==null?void 0:S.height)*.4,width:e?"90%":S.width*.5}}return undefined}),[S==null?void 0:S.height,S==null?void 0:S.width,q,L]);var Z=d("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!u},{"fba-dialog-modal-footer-empty":!V},M);var $=function e(o){G(o)};var ee=((a=E.styles)==null||(a=a.body)==null?void 0:a.height)||z;return D(T,{value:{rerenderFooter:$},children:D(m,r({maskClosable:true,title:u?j(x,{direction:"horizontal",fullIndex:0,children:[D("span",{children:g}),u]}):g,centered:true,onCancel:J,destroyOnClose:true,width:X==null?void 0:X.width},E,{footer:V,styles:r({},E.styles,{body:r({height:ee||(X==null?void 0:X.height),maxHeight:"calc(100vh - 200px)"},(s=E.styles)==null?void 0:s.body)}),className:Z,open:l.open,children:typeof R==="function"?R(_,{onClose:J}):R}))})};var H=function e(o){var n=d("fba-dialog-confirm",o.className);return D(N,r({okText:"确定",size:null,width:350,cancelText:"取消",maskClosable:true},o,{className:n}))};var A=function e(o){return D(H,r({okText:"确定",cancelHidden:true,maskClosable:false},o,{onOk:function e(n,r){return o.onClick==null?void 0:o.onClick(r)}}))};var B=w(),L=B[0],z=B[1];var E=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var W=function e(l){var a=l.onOk,s=l.onCancel,u=l.content,c=l.okText,v=l.cancelText,m=l.okButtonExtraProps,h=l.cancelButtonExtraProps,x=l.operatePosition,b=x===void 0?"footer":x,w=l.operateRender,O=l.width,R=l.okHidden,M=l.cancelHidden,P=l.extra,T=n(l,E);var F=p.useForm(),N=F[0];var H=y.useResponsivePoint()||"";var A=i({}),B=A[0],L=A[1];var W=o.useCallbackRef((function(e){l.onClose==null?void 0:l.onClose(e)}));var _=o.useCallbackRef((function(e){if(s){var o=s(N,e);if(o&&f(o)){return o.then(W)}}W(e);return Promise.resolve()}));var S=o.useCallbackRef((function(e){if(a){var o=a(N,e);if(o&&f(o)){return o.then(W)}}W(e);return Promise.resolve()}));var Y=y.useMemoCustom((function(){if(w){return w(N,B)}var e=R||(m==null?void 0:m.hidden);var o=R||(m==null?void 0:m.hidden);var n=j(g,{children:[o?null:D(k,r({},h,{onClick:_,children:v||"取消"})),e?null:D(k,r({type:"primary"},m,{onClick:S,children:c||"提交"}))]});if(!R||!M){return n}return null}),[B,l.open]);var q=t((function(){if(!H)return undefined;if(["xs","sm"].includes(H)){return{width:"90%",maxWidth:"90%"}}if(O){return{width:O,maxWidth:"calc(100% - 200px)"}}return{width:"40%",maxWidth:"calc(100% - 200px)"}}),[H,O]);var I=typeof P==="function"?P(N):P;var U=function e(o){L(o)};return D(z,{value:{rerenderFooter:U},children:D(C,r({maskClosable:true,destroyOnClose:true,contentWrapperStyle:{maxWidth:q==null?void 0:q.maxWidth},footer:b==="footer"?Y:null},T,{width:q==null?void 0:q.width,styles:r({},T.styles),className:d("app-dialog-drawer",T.className),extra:b==="header"?Y:I,open:l.open,onClose:W,children:typeof u==="function"?u(N,{onClose:W}):u}))})};var _=function e(o){var n=o.className,r=o.message,l=o.mask;var a=h.useToken(),i=a.token;var t=i.colorPrimary;return D(m,{maskClosable:false,centered:true,destroyOnClose:true,className:d("fba-dialog-loading",n),open:o.open,footer:null,closable:false,style:{"--fba-loading-color":t},mask:l,children:D(O,{className:d("fba-dialog-loading-content"),children:j("div",{className:"loader-wrapper",children:[D("div",{className:"loader-inner"}),D("div",{className:"loader-text",children:r||"处理中"})]})})})};var S=function e(){var o=s(R);var n=function e(){o.dialogDrawerClose==null?void 0:o.dialogDrawerClose()};return{appDialogDrawer:{open:function e(l){o.dialogDrawerOpen==null?void 0:o.dialogDrawerOpen(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogDrawer:function e(){var o=L();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var Y=function e(){var o=s(R);var n=function e(){o.dialogDrawerClose2==null?void 0:o.dialogDrawerClose2()};return{appDialogDrawer2:{open:function e(l){o.dialogDrawerOpen2==null?void 0:o.dialogDrawerOpen2(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogDrawer:function e(){var o=L();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var q=function e(){var o=s(R);var n=function e(){o.dialogModalClose==null?void 0:o.dialogModalClose()};return{appDialogModal:{open:function e(l){o.dialogModalOpen==null?void 0:o.dialogModalOpen(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogModal:function e(){var o=P();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var I=function e(){var o=s(R);var n=function e(){o.dialogModalClose2==null?void 0:o.dialogModalClose2()};return{appDialogModal2:{open:function e(l){o.dialogModalOpen2==null?void 0:o.dialogModalOpen2(r({},l,{open:true}));return{onClose:n}},close:n,useAppDialogModal:function e(){var o=P();return{rerenderFooter:function e(n){o.rerenderFooter(n)}}}}}};var U=function e(){var o=s(R);var n=function e(){o.dialogAlertClose==null?void 0:o.dialogAlertClose()};return{appDialogAlert:{open:function e(l){o.dialogAlertOpen==null?void 0:o.dialogAlertOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var G=function e(){var o=s(R);var n=function e(){o.dialogConfirmClose==null?void 0:o.dialogConfirmClose()};return{appDialogConfirm:{open:function e(l){o.dialogConfirmOpen==null?void 0:o.dialogConfirmOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var J=function e(){var o=s(R);var n=function e(){o.dialogLoadingClose==null?void 0:o.dialogLoadingClose()};return{appDialogLoading:{open:function e(l){o.dialogLoadingOpen==null?void 0:o.dialogLoadingOpen(r({},l,{open:true}));return{onClose:n}},close:n}}};var K=function e(n){var a=i({}),t=a[0],s=a[1];var d=i(l()),c=d[0],f=d[1];var v=i({}),p=v[0],m=v[1];var g=i(l()),C=g[0],h=g[1];var k=i({}),y=k[0],x=k[1];var b=i(l()),w=b[0],D=b[1];var O=i({}),M=O[0],P=O[1];var T=i(l()),F=T[0],B=T[1];var L=i({}),z=L[0],E=L[1];var S=i({}),Y=S[0],q=S[1];var I=i(),U=I[0],G=I[1];var J=i(l()),K=J[0],Q=J[1];var V=i(l()),X=V[0],Z=V[1];var $=i(l()),ee=$[0],oe=$[1];var ne=o.useCallbackRef((function(e){s(e)}));var re=o.useCallbackRef((function(e){s(r({},t,{open:false}));t.onClose==null?void 0:t.onClose(e);setTimeout((function(){f(l())}),200)}));var le=o.useCallbackRef((function(e){m(e)}));var ae=o.useCallbackRef((function(e){m(r({},p,{open:false}));p.onClose==null?void 0:p.onClose(e);setTimeout((function(){h(l())}),200)}));var ie=o.useCallbackRef((function(e){x(e)}));var te=o.useCallbackRef((function(){x(r({},y,{open:false}));y.onClose==null?void 0:y.onClose();setTimeout((function(){D(l())}),200)}));var se=o.useCallbackRef((function(e){P(e)}));var ue=o.useCallbackRef((function(){P(r({},M,{open:false}));M.onClose==null?void 0:M.onClose();setTimeout((function(){B(l())}),200)}));var de=o.useCallbackRef((function(e){E(e)}));var ce=o.useCallbackRef((function(){E(r({},z,{open:false}));z.onClose==null?void 0:z.onClose();setTimeout((function(){Q(l())}),200)}));var fe=o.useCallbackRef((function(e){q(e)}));var ve=o.useCallbackRef((function(){q(r({},Y,{open:false}));Y.onClose==null?void 0:Y.onClose();setTimeout((function(){Z(l())}),200)}));var pe=o.useCallbackRef((function(e){G(e)}));var me=o.useCallbackRef((function(){G(r({},U,{open:false}));setTimeout((function(){oe(l())}),200)}));return j(R.Provider,{value:{dialogDrawerOpen:ne,dialogDrawerClose:re,dialogDrawerOpen2:le,dialogDrawerClose2:ae,dialogModalOpen:ie,dialogModalClose:te,dialogModalOpen2:se,dialogModalClose2:ue,dialogAlertOpen:de,dialogAlertClose:ce,dialogConfirmOpen:fe,dialogConfirmClose:ve,dialogLoadingOpen:pe,dialogLoadingClose:me},children:[u(W,r({},t,{onClose:re,key:c})),u(W,r({},p,{onClose:ae,key:C})),u(N,r({},y,{onClose:te,key:w})),u(N,r({},M,{onClose:ue,key:F})),u(A,r({},z,{onClose:ce,key:K})),u(H,r({},Y,{onClose:ve,key:X})),u(_,r({},U,{key:ee})),n.children]})};var Q=e.attachPropertiesToComponent(K,{useDialogDrawer:S,useDialogDrawer2:Y,useDialogModal:q,useDialogModal2:I,useDialogConfirm:G,useDialogAlert:U,useDialogLoading:J});export{Q as FbaApp};
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/index.tsx","@flatbiz/antd/src/fba-app/dialog-confirm/index.tsx","@flatbiz/antd/src/fba-app/dialog-alert/index.tsx","@flatbiz/antd/src/fba-app/dialog-drawer/context.ts","@flatbiz/antd/src/fba-app/dialog-drawer/index.tsx","@flatbiz/antd/src/fba-app/dialog-loading/index.tsx","@flatbiz/antd/src/fba-app/fba-app.tsx","@flatbiz/antd/src/fba-app/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModalProps } from './dialog-modal';\n\nexport type FbaAppContextApi = {\n dialogDrawerOpen?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose?: (e?) => void;\n\n dialogDrawerOpen2?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose2?: (e?) => void;\n\n dialogModalOpen?: (data: FbaAppModalProps) => void;\n dialogModalClose?: () => void;\n\n dialogModalOpen2?: (data: FbaAppModalProps) => void;\n dialogModalClose2?: () => void;\n\n dialogAlertOpen?: (data: FbaAppAlertProps) => void;\n dialogAlertClose?: () => void;\n\n dialogConfirmOpen?: (data: FbaAppConfirmProps) => void;\n dialogConfirmClose?: () => void;\n\n dialogLoadingOpen?: (data?: FbaAppLoadingProps & { open?: boolean }) => void;\n dialogLoadingClose?: () => void;\n};\n\nexport const FbaAppContext = createContext<FbaAppContextApi>({});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useFbaAppDialogModalCtx, CtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isNull, isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { getFbaLocaleMessage } from '../../_utils/i18n';\nimport { CtxProvider } from './context';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认: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 /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n};\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 [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n props.onClose?.();\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const footerNew = useMemo(() => {\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 const footerNew = isNull(footer)\n ? null\n : (typeof footer === 'function' ? footer(form, footerExtraData) : footer) || operateGroup || [];\n return footerNew;\n }, [footerExtraData, props.open]);\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 const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n return (\n <CtxProvider value={{ rerenderFooter }}>\n <Modal\n maskClosable={true}\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: 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 </CtxProvider>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { FbaAppModal, FbaAppModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type FbaAppConfirmProps = FbaAppModalProps;\n\nexport const FbaAppConfirm = (props: FbaAppConfirmProps) => {\n const className = classNames('fba-dialog-confirm', props.className);\n return (\n <FbaAppModal\n okText=\"确定\"\n size={null}\n width={350}\n cancelText=\"取消\"\n maskClosable={true}\n {...props}\n className={className}\n />\n );\n};\n","import { FbaAppConfirm } from '../dialog-confirm';\nimport { FbaAppModalProps } from '../dialog-modal';\n\n// export type DialogAlertProps = Omit<\n// DialogModalProps,\n// 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n// > & {\n// onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n// };\n\n// export const dialogAlert = {\n// open: (props: DialogAlertProps) => {\n// return dialogConfirm.open({\n// okText: '确定',\n// cancelHidden: true,\n// maskClosable: false,\n// ...props,\n// onOk: props.onClick,\n// } as DialogModalProps);\n// },\n// };\n\nexport type FbaAppAlertProps = Omit<\n FbaAppModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const FbaAppAlert = (props: FbaAppAlertProps) => {\n return (\n <FbaAppConfirm\n okText=\"确定\"\n cancelHidden={true}\n maskClosable={false}\n {...props}\n onOk={(_form, e) => {\n return props.onClick?.(e);\n }}\n />\n );\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useFbaAppDialogDrawerCtx, CtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode, useMemo, useState } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { CtxProvider } from './context';\nimport './style.less';\n\nexport type FbaAppDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: DrawerProps['onClose'] }) => ReactElement);\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n okHidden?: boolean;\n cancelHidden?: boolean;\n\n /** 设置操作区域位置 */\n operatePosition?: 'header' | 'footer';\n /** 右上角自定义内容,如果operatePosition=header,此设置无效 */\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n /**\n * ```\n * 1. 自定义弹框操作区域,通过 operatePosition 配置可以自定义位置\n * 2. extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n operateRender?: (form: FormInstance, extraData?: TPlainObject) => ReactElement;\n};\n\nexport const FbaAppDrawer = (props: FbaAppDrawerProps) => {\n const {\n onOk,\n onCancel,\n content,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width,\n okHidden,\n cancelHidden,\n extra,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef((e) => {\n props.onClose?.(e);\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n // const 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 newOperateRender = useMemo(() => {\n if (operateRender) {\n return operateRender(form, footerExtraData);\n }\n\n const okHiddenNew = okHidden || okButtonExtraProps?.hidden;\n const cancelHiddenNew = okHidden || okButtonExtraProps?.hidden;\n\n const operateGroup = (\n <Space>\n {cancelHiddenNew ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHiddenNew ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n }, [footerExtraData, props.open]);\n\n const customSize = useMemo(() => {\n if (!screenType) return undefined;\n if (['xs', 'sm'].includes(screenType)) {\n return {\n width: '90%',\n maxWidth: '90%',\n };\n }\n if (width) {\n return { width: width, maxWidth: 'calc(100% - 200px)' };\n }\n return { width: '40%', maxWidth: 'calc(100% - 200px)' };\n }, [screenType, width]);\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n return (\n <CtxProvider value={{ rerenderFooter }}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n // 5.13.0 新增 styles.wrapper,并废弃 contentWrapperStyle drawerStyle maskStyle 属性\n contentWrapperStyle={{ maxWidth: customSize?.maxWidth }}\n footer={operatePosition === 'footer' ? newOperateRender : null}\n {...otherProps}\n width={customSize?.width}\n styles={{\n ...otherProps.styles,\n // wrapper: {\n // maxWidth: customSize?.maxWidth,\n // ...otherProps.styles?.wrapper,\n // },\n }}\n className={classNames('app-dialog-drawer', otherProps.className)}\n extra={operatePosition === 'header' ? newOperateRender : extraRender}\n open={props.open}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n </CtxProvider>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties } from 'react';\nimport { BlockLayout } from '../../block-layout';\nimport './style.less';\n\nexport type FbaAppLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nexport const FbaAppLoading = (props: FbaAppLoadingProps & { open?: boolean }) => {\n const { className, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('fba-dialog-loading', className)}\n open={props.open}\n footer={null}\n closable={false}\n style={{ '--fba-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <BlockLayout className={classNames('fba-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </BlockLayout>\n </Modal>\n );\n};\n","import { getUuid, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ReactNode, useContext, useState } from 'react';\nimport { FbaAppContext, FbaAppContextApi } from './context';\nimport { FbaAppAlert, FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirm, FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawer, FbaAppDrawerProps } from './dialog-drawer';\nimport { useFbaAppDialogDrawerCtx } from './dialog-drawer/context';\nimport { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\nimport { useFbaAppDialogModalCtx } from './dialog-modal/context';\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n */\nexport const useDialogDrawer = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose?.();\n };\n\n return {\n appDialogDrawer: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useAppDialogDrawer: () => {\n const ctx = useFbaAppDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n */\nexport const useDialogDrawer2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose2?.();\n };\n\n return {\n appDialogDrawer2: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useAppDialogDrawer: () => {\n const ctx = useFbaAppDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogModal2\n * ```\n * 1. 配置size属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const useDialogModal = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose?.();\n };\n\n return {\n appDialogModal: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n */\n useAppDialogModal: () => {\n const ctx = useFbaAppDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * ```\n * 1. 配置size属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const useDialogModal2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose2?.();\n };\n\n return {\n appDialogModal2: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n */\n useAppDialogModal: () => {\n const ctx = useFbaAppDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogAlert = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogAlertClose?.();\n };\n\n return {\n appDialogAlert: {\n open: (data: FbaAppAlertProps) => {\n ctx.dialogAlertOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogConfirm = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogConfirmClose?.();\n };\n\n return {\n appDialogConfirm: {\n open: (data: FbaAppConfirmProps) => {\n ctx.dialogConfirmOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogLoading = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogLoadingClose?.();\n };\n\n return {\n appDialogLoading: {\n open: (data?: FbaAppLoadingProps) => {\n ctx.dialogLoadingOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const FbaApp = (props: { children: ReactNode }) => {\n const [drawerProps, setDrawerProps] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey, setDrawerKey] = useState(getUuid());\n\n const [drawerProps2, setDrawerProps2] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey2, setDrawerKey2] = useState(getUuid());\n\n const [modalProps, setModalProps] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey, setModalKey] = useState(getUuid());\n\n const [modalProps2, setModalProps2] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey2, setModalKey2] = useState(getUuid());\n\n const [alertProps, setAlertProps] = useState<FbaAppAlertProps>({} as FbaAppAlertProps);\n const [confirmProps, setConfirmProps] = useState<FbaAppConfirmProps>({} as FbaAppConfirmProps);\n const [loadingProps, setLoadingProps] = useState<FbaAppLoadingProps>();\n\n const [alertKey, setAlertKey] = useState(getUuid());\n const [confirmKey, setConfirmKey] = useState(getUuid());\n const [loadingKey, setLoadingKey] = useState(getUuid());\n\n const dialogDrawerOpen: FbaAppContextApi['dialogDrawerOpen'] = hooks.useCallbackRef((data) => {\n setDrawerProps(data);\n });\n const dialogDrawerClose = hooks.useCallbackRef((e) => {\n setDrawerProps({ ...drawerProps, open: false } as FbaAppDrawerProps);\n drawerProps.onClose?.(e);\n setTimeout(() => {\n setDrawerKey(getUuid());\n }, 200);\n });\n\n const dialogDrawerOpen2: FbaAppContextApi['dialogDrawerOpen2'] = hooks.useCallbackRef((data) => {\n setDrawerProps2(data);\n });\n\n const dialogDrawerClose2 = hooks.useCallbackRef((e) => {\n setDrawerProps2({ ...drawerProps2, open: false } as FbaAppDrawerProps);\n drawerProps2.onClose?.(e);\n setTimeout(() => {\n setDrawerKey2(getUuid());\n }, 200);\n });\n\n const dialogModalOpen: FbaAppContextApi['dialogModalOpen'] = hooks.useCallbackRef((data) => {\n setModalProps(data);\n });\n\n const dialogModalClose = hooks.useCallbackRef(() => {\n setModalProps({ ...modalProps, open: false } as FbaAppModalProps);\n modalProps.onClose?.();\n setTimeout(() => {\n setModalKey(getUuid());\n }, 200);\n });\n\n const dialogModalOpen2: FbaAppContextApi['dialogModalOpen2'] = hooks.useCallbackRef((data) => {\n setModalProps2(data);\n });\n\n const dialogModalClose2 = hooks.useCallbackRef(() => {\n setModalProps2({ ...modalProps2, open: false } as FbaAppModalProps);\n modalProps2.onClose?.();\n setTimeout(() => {\n setModalKey2(getUuid());\n }, 200);\n });\n\n const dialogAlertOpen: FbaAppContextApi['dialogAlertOpen'] = hooks.useCallbackRef((data) => {\n setAlertProps(data);\n });\n\n const dialogAlertClose = hooks.useCallbackRef(() => {\n setAlertProps({ ...alertProps, open: false } as FbaAppAlertProps);\n alertProps.onClose?.();\n setTimeout(() => {\n setAlertKey(getUuid());\n }, 200);\n });\n\n const dialogConfirmOpen: FbaAppContextApi['dialogConfirmOpen'] = hooks.useCallbackRef((data) => {\n setConfirmProps(data);\n });\n\n const dialogConfirmClose = hooks.useCallbackRef(() => {\n setConfirmProps({ ...confirmProps, open: false } as FbaAppConfirmProps);\n confirmProps.onClose?.();\n setTimeout(() => {\n setConfirmKey(getUuid());\n }, 200);\n });\n\n const dialogLoadingOpen: FbaAppContextApi['dialogLoadingOpen'] = hooks.useCallbackRef((data) => {\n setLoadingProps(data);\n });\n\n const dialogLoadingClose = hooks.useCallbackRef(() => {\n setLoadingProps({ ...loadingProps, open: false } as FbaAppLoadingProps);\n setTimeout(() => {\n setLoadingKey(getUuid());\n }, 200);\n });\n\n return (\n <FbaAppContext.Provider\n value={{\n dialogDrawerOpen,\n dialogDrawerClose,\n dialogDrawerOpen2,\n dialogDrawerClose2,\n dialogModalOpen,\n dialogModalClose,\n dialogModalOpen2,\n dialogModalClose2,\n dialogAlertOpen,\n dialogAlertClose,\n dialogConfirmOpen,\n dialogConfirmClose,\n dialogLoadingOpen,\n dialogLoadingClose,\n }}\n >\n <FbaAppDrawer {...drawerProps} onClose={dialogDrawerClose} key={drawerKey}></FbaAppDrawer>\n <FbaAppDrawer {...drawerProps2} onClose={dialogDrawerClose2} key={drawerKey2}></FbaAppDrawer>\n <FbaAppModal {...modalProps} onClose={dialogModalClose} key={modalKey}></FbaAppModal>\n <FbaAppModal {...modalProps2} onClose={dialogModalClose2} key={modalKey2}></FbaAppModal>\n <FbaAppAlert {...alertProps} onClose={dialogAlertClose} key={alertKey}></FbaAppAlert>\n <FbaAppConfirm {...confirmProps} onClose={dialogConfirmClose} key={confirmKey}></FbaAppConfirm>\n <FbaAppLoading {...loadingProps} key={loadingKey}></FbaAppLoading>\n {props.children}\n </FbaAppContext.Provider>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport {\n FbaApp as FbaAppInner,\n useDialogAlert,\n useDialogConfirm,\n useDialogDrawer,\n useDialogDrawer2,\n useDialogLoading,\n useDialogModal,\n useDialogModal2,\n} from './fba-app';\n\nexport const FbaApp = fbaUtils.attachPropertiesToComponent(FbaAppInner, {\n /** 不支持多次弹框,第二个弹框可使用useDialogDrawer2 */\n useDialogDrawer,\n useDialogDrawer2,\n /** 不支持多次弹框,第二个弹框可使用useDialogModal2 */\n useDialogModal,\n useDialogModal2,\n /** 不支持多次弹框 */\n useDialogConfirm,\n /** 不支持多次弹框 */\n useDialogAlert,\n /** 不支持多次弹框 */\n useDialogLoading,\n});\n"],"names":["FbaAppContext","createContext","_createCtx","_createCtx2","useFbaAppDialogModalCtx","CtxProvider","FbaAppModal","props","_otherProps$styles","_otherProps$styles2","titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","localMessage","getFbaLocaleMessage","screenType","fbaHooks","useResponsivePoint","sizeFt","undefined","_useState","useState","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","footerNew","useMemo","_localMessage$FbaDial","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","FbaDialogModal","type","_isNull","open","customSize","height","includes","width","styles","body","classNameNew","_classNames","rerenderFooter","data","value","Modal","maskClosable","_jsxs","FlexLayout","direction","fullIndex","centered","destroyOnClose","maxHeight","FbaAppConfirm","FbaAppAlert","_form","useFbaAppDialogDrawerCtx","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","extra","newOperateRender","okHiddenNew","cancelHiddenNew","Space","maxWidth","extraRender","Drawer","contentWrapperStyle","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","BlockLayout","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","dialogDrawerOpen","close","useAppDialogDrawer","useDialogDrawer2","dialogDrawerClose2","appDialogDrawer2","dialogDrawerOpen2","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useAppDialogModal","useDialogModal2","dialogModalClose2","appDialogModal2","dialogModalOpen2","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","drawerProps","setDrawerProps","_useState2","getUuid","drawerKey","setDrawerKey","_useState3","drawerProps2","setDrawerProps2","_useState4","drawerKey2","setDrawerKey2","_useState5","modalProps","setModalProps","_useState6","modalKey","setModalKey","_useState7","modalProps2","setModalProps2","_useState8","modalKey2","setModalKey2","_useState9","alertProps","setAlertProps","_useState10","confirmProps","setConfirmProps","_useState11","loadingProps","setLoadingProps","_useState12","alertKey","setAlertKey","_useState13","confirmKey","setConfirmKey","_useState14","loadingKey","setLoadingKey","setTimeout","Provider","_createElement","key","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/index.tsx","@flatbiz/antd/src/fba-app/dialog-confirm/index.tsx","@flatbiz/antd/src/fba-app/dialog-alert/index.tsx","@flatbiz/antd/src/fba-app/dialog-drawer/context.ts","@flatbiz/antd/src/fba-app/dialog-drawer/index.tsx","@flatbiz/antd/src/fba-app/dialog-loading/index.tsx","@flatbiz/antd/src/fba-app/fba-app.tsx","@flatbiz/antd/src/fba-app/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModalProps } from './dialog-modal';\n\nexport type FbaAppContextApi = {\n dialogDrawerOpen?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose?: (e?) => void;\n\n dialogDrawerOpen2?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose2?: (e?) => void;\n\n dialogModalOpen?: (data: FbaAppModalProps) => void;\n dialogModalClose?: () => void;\n\n dialogModalOpen2?: (data: FbaAppModalProps) => void;\n dialogModalClose2?: () => void;\n\n dialogAlertOpen?: (data: FbaAppAlertProps) => void;\n dialogAlertClose?: () => void;\n\n dialogConfirmOpen?: (data: FbaAppConfirmProps) => void;\n dialogConfirmClose?: () => void;\n\n dialogLoadingOpen?: (data?: FbaAppLoadingProps & { open?: boolean }) => void;\n dialogLoadingClose?: () => void;\n};\n\nexport const FbaAppContext = createContext<FbaAppContextApi>({});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useFbaAppDialogModalCtx, CtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isNull, isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { getFbaLocaleMessage } from '../../_utils/i18n';\nimport { CtxProvider } from './context';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度\n * ```\n * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效\n * 2. 不传、传null值可取消内置尺寸\n * ```\n */\n size?: 'small' | 'middle' | 'large' | null;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onClose?: () => void;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * @deprecated 已失效,可通过size属性设置\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n\n titleExtra?: ReactElement;\n /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nexport const FbaAppModal = (props: FbaAppModalProps) => {\n const {\n titleExtra,\n title,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const localMessage = getFbaLocaleMessage();\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n props.onClose?.();\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const footerNew = fbaHooks.useMemoCustom(() => {\n 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 const footerNew = isNull(footer)\n ? null\n : (typeof footer === 'function' ? footer(form, footerExtraData) : footer) || operateGroup || [];\n return footerNew;\n }, [footerExtraData, props.open]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n if (size == 'large') {\n return {\n height: htmlSize?.height * 0.7,\n width: isXsSm ? '90%' : htmlSize.width * 0.6,\n };\n }\n if (size == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : width < 470 ? 470 : width,\n };\n }\n\n if (size == 'middle') {\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : htmlSize.width * 0.5,\n };\n }\n\n return undefined;\n }, [htmlSize?.height, htmlSize?.width, screenType, size]);\n\n const classNameNew = classNames(\n 'fba-dialog-modal',\n { 'fba-dialog-modal-title-extra': !!titleExtra },\n { 'fba-dialog-modal-footer-empty': !footerNew },\n className,\n );\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n\n return (\n <CtxProvider value={{ rerenderFooter }}>\n <Modal\n maskClosable={true}\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={props.open}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n </CtxProvider>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { FbaAppModal, FbaAppModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type FbaAppConfirmProps = FbaAppModalProps;\n\nexport const FbaAppConfirm = (props: FbaAppConfirmProps) => {\n const className = classNames('fba-dialog-confirm', props.className);\n return (\n <FbaAppModal\n okText=\"确定\"\n size={null}\n width={350}\n cancelText=\"取消\"\n maskClosable={true}\n {...props}\n className={className}\n />\n );\n};\n","import { FbaAppConfirm } from '../dialog-confirm';\nimport { FbaAppModalProps } from '../dialog-modal';\n\n// export type DialogAlertProps = Omit<\n// DialogModalProps,\n// 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n// > & {\n// onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n// };\n\n// export const dialogAlert = {\n// open: (props: DialogAlertProps) => {\n// return dialogConfirm.open({\n// okText: '确定',\n// cancelHidden: true,\n// maskClosable: false,\n// ...props,\n// onOk: props.onClick,\n// } as DialogModalProps);\n// },\n// };\n\nexport type FbaAppAlertProps = Omit<\n FbaAppModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const FbaAppAlert = (props: FbaAppAlertProps) => {\n return (\n <FbaAppConfirm\n okText=\"确定\"\n cancelHidden={true}\n maskClosable={false}\n {...props}\n onOk={(_form, e) => {\n return props.onClick?.(e);\n }}\n />\n );\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useFbaAppDialogDrawerCtx, CtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode, useMemo, useState } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { CtxProvider } from './context';\nimport './style.less';\n\nexport type FbaAppDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: DrawerProps['onClose'] }) => ReactElement);\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n okHidden?: boolean;\n cancelHidden?: boolean;\n\n /** 设置操作区域位置 */\n operatePosition?: 'header' | 'footer';\n /** 右上角自定义内容,如果operatePosition=header,此设置无效 */\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n /**\n * ```\n * 1. 自定义弹框操作区域,通过 operatePosition 配置可以自定义位置\n * 2. extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n operateRender?: (form: FormInstance, extraData?: TPlainObject) => ReactElement;\n};\n\nexport const FbaAppDrawer = (props: FbaAppDrawerProps) => {\n const {\n onOk,\n onCancel,\n content,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width,\n okHidden,\n cancelHidden,\n extra,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef((e) => {\n props.onClose?.(e);\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n // const 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 newOperateRender = fbaHooks.useMemoCustom(() => {\n if (operateRender) {\n return operateRender(form, footerExtraData);\n }\n\n const okHiddenNew = okHidden || okButtonExtraProps?.hidden;\n const cancelHiddenNew = okHidden || okButtonExtraProps?.hidden;\n\n const operateGroup = (\n <Space>\n {cancelHiddenNew ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHiddenNew ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n }, [footerExtraData, props.open]);\n\n const customSize = useMemo(() => {\n if (!screenType) return undefined;\n if (['xs', 'sm'].includes(screenType)) {\n return {\n width: '90%',\n maxWidth: '90%',\n };\n }\n if (width) {\n return { width: width, maxWidth: 'calc(100% - 200px)' };\n }\n return { width: '40%', maxWidth: 'calc(100% - 200px)' };\n }, [screenType, width]);\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n return (\n <CtxProvider value={{ rerenderFooter }}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n // 5.13.0 新增 styles.wrapper,并废弃 contentWrapperStyle drawerStyle maskStyle 属性\n contentWrapperStyle={{ maxWidth: customSize?.maxWidth }}\n footer={operatePosition === 'footer' ? newOperateRender : null}\n {...otherProps}\n width={customSize?.width}\n styles={{\n ...otherProps.styles,\n // wrapper: {\n // maxWidth: customSize?.maxWidth,\n // ...otherProps.styles?.wrapper,\n // },\n }}\n className={classNames('app-dialog-drawer', otherProps.className)}\n extra={operatePosition === 'header' ? newOperateRender : extraRender}\n open={props.open}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n </CtxProvider>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties } from 'react';\nimport { BlockLayout } from '../../block-layout';\nimport './style.less';\n\nexport type FbaAppLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nexport const FbaAppLoading = (props: FbaAppLoadingProps & { open?: boolean }) => {\n const { className, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('fba-dialog-loading', className)}\n open={props.open}\n footer={null}\n closable={false}\n style={{ '--fba-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <BlockLayout className={classNames('fba-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </BlockLayout>\n </Modal>\n );\n};\n","import { getUuid, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ReactNode, useContext, useState } from 'react';\nimport { FbaAppContext, FbaAppContextApi } from './context';\nimport { FbaAppAlert, FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirm, FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawer, FbaAppDrawerProps } from './dialog-drawer';\nimport { useFbaAppDialogDrawerCtx } from './dialog-drawer/context';\nimport { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\nimport { useFbaAppDialogModalCtx } from './dialog-modal/context';\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n */\nexport const useDialogDrawer = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose?.();\n };\n\n return {\n appDialogDrawer: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useAppDialogDrawer: () => {\n const ctx = useFbaAppDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n */\nexport const useDialogDrawer2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose2?.();\n };\n\n return {\n appDialogDrawer2: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useAppDialogDrawer: () => {\n const ctx = useFbaAppDialogDrawerCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogModal2\n * ```\n * 1. 配置size属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const useDialogModal = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose?.();\n };\n\n return {\n appDialogModal: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n */\n useAppDialogModal: () => {\n const ctx = useFbaAppDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * ```\n * 1. 配置size属性可使用预设的弹窗尺寸,如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const useDialogModal2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose2?.();\n };\n\n return {\n appDialogModal2: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n /**\n * rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n */\n useAppDialogModal: () => {\n const ctx = useFbaAppDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogAlert = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogAlertClose?.();\n };\n\n return {\n appDialogAlert: {\n open: (data: FbaAppAlertProps) => {\n ctx.dialogAlertOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogConfirm = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogConfirmClose?.();\n };\n\n return {\n appDialogConfirm: {\n open: (data: FbaAppConfirmProps) => {\n ctx.dialogConfirmOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogLoading = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogLoadingClose?.();\n };\n\n return {\n appDialogLoading: {\n open: (data?: FbaAppLoadingProps) => {\n ctx.dialogLoadingOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const FbaApp = (props: { children: ReactNode }) => {\n const [drawerProps, setDrawerProps] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey, setDrawerKey] = useState(getUuid());\n\n const [drawerProps2, setDrawerProps2] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey2, setDrawerKey2] = useState(getUuid());\n\n const [modalProps, setModalProps] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey, setModalKey] = useState(getUuid());\n\n const [modalProps2, setModalProps2] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey2, setModalKey2] = useState(getUuid());\n\n const [alertProps, setAlertProps] = useState<FbaAppAlertProps>({} as FbaAppAlertProps);\n const [confirmProps, setConfirmProps] = useState<FbaAppConfirmProps>({} as FbaAppConfirmProps);\n const [loadingProps, setLoadingProps] = useState<FbaAppLoadingProps>();\n\n const [alertKey, setAlertKey] = useState(getUuid());\n const [confirmKey, setConfirmKey] = useState(getUuid());\n const [loadingKey, setLoadingKey] = useState(getUuid());\n\n const dialogDrawerOpen: FbaAppContextApi['dialogDrawerOpen'] = hooks.useCallbackRef((data) => {\n setDrawerProps(data);\n });\n const dialogDrawerClose = hooks.useCallbackRef((e) => {\n setDrawerProps({ ...drawerProps, open: false } as FbaAppDrawerProps);\n drawerProps.onClose?.(e);\n setTimeout(() => {\n setDrawerKey(getUuid());\n }, 200);\n });\n\n const dialogDrawerOpen2: FbaAppContextApi['dialogDrawerOpen2'] = hooks.useCallbackRef((data) => {\n setDrawerProps2(data);\n });\n\n const dialogDrawerClose2 = hooks.useCallbackRef((e) => {\n setDrawerProps2({ ...drawerProps2, open: false } as FbaAppDrawerProps);\n drawerProps2.onClose?.(e);\n setTimeout(() => {\n setDrawerKey2(getUuid());\n }, 200);\n });\n\n const dialogModalOpen: FbaAppContextApi['dialogModalOpen'] = hooks.useCallbackRef((data) => {\n setModalProps(data);\n });\n\n const dialogModalClose = hooks.useCallbackRef(() => {\n setModalProps({ ...modalProps, open: false } as FbaAppModalProps);\n modalProps.onClose?.();\n setTimeout(() => {\n setModalKey(getUuid());\n }, 200);\n });\n\n const dialogModalOpen2: FbaAppContextApi['dialogModalOpen2'] = hooks.useCallbackRef((data) => {\n setModalProps2(data);\n });\n\n const dialogModalClose2 = hooks.useCallbackRef(() => {\n setModalProps2({ ...modalProps2, open: false } as FbaAppModalProps);\n modalProps2.onClose?.();\n setTimeout(() => {\n setModalKey2(getUuid());\n }, 200);\n });\n\n const dialogAlertOpen: FbaAppContextApi['dialogAlertOpen'] = hooks.useCallbackRef((data) => {\n setAlertProps(data);\n });\n\n const dialogAlertClose = hooks.useCallbackRef(() => {\n setAlertProps({ ...alertProps, open: false } as FbaAppAlertProps);\n alertProps.onClose?.();\n setTimeout(() => {\n setAlertKey(getUuid());\n }, 200);\n });\n\n const dialogConfirmOpen: FbaAppContextApi['dialogConfirmOpen'] = hooks.useCallbackRef((data) => {\n setConfirmProps(data);\n });\n\n const dialogConfirmClose = hooks.useCallbackRef(() => {\n setConfirmProps({ ...confirmProps, open: false } as FbaAppConfirmProps);\n confirmProps.onClose?.();\n setTimeout(() => {\n setConfirmKey(getUuid());\n }, 200);\n });\n\n const dialogLoadingOpen: FbaAppContextApi['dialogLoadingOpen'] = hooks.useCallbackRef((data) => {\n setLoadingProps(data);\n });\n\n const dialogLoadingClose = hooks.useCallbackRef(() => {\n setLoadingProps({ ...loadingProps, open: false } as FbaAppLoadingProps);\n setTimeout(() => {\n setLoadingKey(getUuid());\n }, 200);\n });\n\n return (\n <FbaAppContext.Provider\n value={{\n dialogDrawerOpen,\n dialogDrawerClose,\n dialogDrawerOpen2,\n dialogDrawerClose2,\n dialogModalOpen,\n dialogModalClose,\n dialogModalOpen2,\n dialogModalClose2,\n dialogAlertOpen,\n dialogAlertClose,\n dialogConfirmOpen,\n dialogConfirmClose,\n dialogLoadingOpen,\n dialogLoadingClose,\n }}\n >\n <FbaAppDrawer {...drawerProps} onClose={dialogDrawerClose} key={drawerKey}></FbaAppDrawer>\n <FbaAppDrawer {...drawerProps2} onClose={dialogDrawerClose2} key={drawerKey2}></FbaAppDrawer>\n <FbaAppModal {...modalProps} onClose={dialogModalClose} key={modalKey}></FbaAppModal>\n <FbaAppModal {...modalProps2} onClose={dialogModalClose2} key={modalKey2}></FbaAppModal>\n <FbaAppAlert {...alertProps} onClose={dialogAlertClose} key={alertKey}></FbaAppAlert>\n <FbaAppConfirm {...confirmProps} onClose={dialogConfirmClose} key={confirmKey}></FbaAppConfirm>\n <FbaAppLoading {...loadingProps} key={loadingKey}></FbaAppLoading>\n {props.children}\n </FbaAppContext.Provider>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport {\n FbaApp as FbaAppInner,\n useDialogAlert,\n useDialogConfirm,\n useDialogDrawer,\n useDialogDrawer2,\n useDialogLoading,\n useDialogModal,\n useDialogModal2,\n} from './fba-app';\n\nexport const FbaApp = fbaUtils.attachPropertiesToComponent(FbaAppInner, {\n /** 不支持多次弹框,第二个弹框可使用useDialogDrawer2 */\n useDialogDrawer,\n useDialogDrawer2,\n /** 不支持多次弹框,第二个弹框可使用useDialogModal2 */\n useDialogModal,\n useDialogModal2,\n /** 不支持多次弹框 */\n useDialogConfirm,\n /** 不支持多次弹框 */\n useDialogAlert,\n /** 不支持多次弹框 */\n useDialogLoading,\n});\n"],"names":["FbaAppContext","createContext","_createCtx","_createCtx2","useFbaAppDialogModalCtx","CtxProvider","FbaAppModal","props","_otherProps$styles","_otherProps$styles2","titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","localMessage","getFbaLocaleMessage","screenType","fbaHooks","useResponsivePoint","_useState","useState","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","footerNew","useMemoCustom","_localMessage$FbaDial","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","FbaDialogModal","type","undefined","_isNull","open","customSize","useMemo","height","isXsSm","includes","width","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","styles","body","value","Modal","maskClosable","_jsxs","FlexLayout","direction","fullIndex","centered","destroyOnClose","maxHeight","FbaAppConfirm","FbaAppAlert","_form","useFbaAppDialogDrawerCtx","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","extra","newOperateRender","okHiddenNew","cancelHiddenNew","Space","maxWidth","extraRender","Drawer","contentWrapperStyle","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","BlockLayout","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","dialogDrawerOpen","close","useAppDialogDrawer","useDialogDrawer2","dialogDrawerClose2","appDialogDrawer2","dialogDrawerOpen2","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useAppDialogModal","useDialogModal2","dialogModalClose2","appDialogModal2","dialogModalOpen2","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","drawerProps","setDrawerProps","_useState2","getUuid","drawerKey","setDrawerKey","_useState3","drawerProps2","setDrawerProps2","_useState4","drawerKey2","setDrawerKey2","_useState5","modalProps","setModalProps","_useState6","modalKey","setModalKey","_useState7","modalProps2","setModalProps2","_useState8","modalKey2","setModalKey2","_useState9","alertProps","setAlertProps","_useState10","confirmProps","setConfirmProps","_useState11","loadingProps","setLoadingProps","_useState12","alertKey","setAlertKey","_useState13","confirmKey","setConfirmKey","_useState14","loadingKey","setLoadingKey","setTimeout","Provider","_createElement","key","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
@@ -1 +1 @@
1
- .label-value-render .label-value-label{color:rgba(0,0,0,.45);flex-shrink:0;font-weight:400;padding:8px 10px}.label-value-render .label-value-value{flex:1;overflow:hidden;padding:8px 0}.label-value-render .text-symbol-wrapper{display:inline-block;max-width:100%}.label-value-render .tips-wrapper{max-width:100%}.label-value-render .tips-wrapper .tips-wrapper-text{flex:initial}.label-value-render-border .box-grad-row{border-bottom:1px solid rgba(5,5,5,.06);border-left:1px solid rgba(5,5,5,.06);border-radius:6px;border-top:1px solid rgba(5,5,5,.06);overflow:hidden}.label-value-render-border .box-grad-col:not(.label-value-last-tr){border-bottom:1px solid rgba(5,5,5,.06)}.label-value-render-border .label-value-label{background-color:rgba(0,0,0,.02);color:rgba(0,0,0,.45);font-weight:400;padding:8px 16px}.label-value-render-border .label-value-value{border-left:1px solid rgba(5,5,5,.06);border-right:1px solid rgba(5,5,5,.06);padding:8px 16px}.label-value-render-right .label-value-label{text-align:right}.label-value-render-right .label-value-label .tips-wrapper{justify-content:right}.label-value-render-left .label-value-label{text-align:left}.label-value-render-center .label-value-label{text-align:center}.label-value-render-center .label-value-label .tips-wrapper{justify-content:center}.label-value-tr{display:flex}.label-value-render-vertical .label-value-tr{display:block}.label-value-render-vertical .label-value-label{display:block;padding:0;text-align:left}.label-value-render-vertical .label-value-value{display:block;padding:5px 0 15px}
1
+ .label-value-render .label-value-label{color:rgba(0,0,0,.45);flex-shrink:0;font-weight:400;padding:8px 10px}.label-value-render .label-value-value{flex:1;overflow:hidden;padding:8px 0}.label-value-render .text-symbol-wrapper{display:inline-block;max-width:100%}.label-value-render .tips-wrapper{max-width:100%}.label-value-render .tips-wrapper .tips-wrapper-text{flex:initial}.label-value-render-border .box-grad-row{border-bottom:1px solid rgba(5,5,5,.06);border-left:1px solid rgba(5,5,5,.06);border-radius:6px;border-top:1px solid rgba(5,5,5,.06);overflow:hidden}.label-value-render-border .box-grad-col:not(.label-value-last-tr){border-bottom:1px solid rgba(5,5,5,.06)}.label-value-render-border .label-value-label{background-color:rgba(0,0,0,.02);color:rgba(0,0,0,.45);font-weight:400;padding:8px 16px}.label-value-render-border .label-value-value{border-left:1px solid rgba(5,5,5,.06);border-right:1px solid rgba(5,5,5,.06);padding:8px 16px}.label-value-render-right .label-value-label{text-align:right}.label-value-render-right .label-value-label .tips-wrapper{justify-content:right}.label-value-render-left .label-value-label{text-align:left}.label-value-render-center .label-value-label{text-align:center}.label-value-render-center .label-value-label .tips-wrapper{justify-content:center}.label-value-tr{display:flex}.label-value-render-vertical .label-value-tr{display:block}.label-value-render-vertical .label-value-label{display:block;padding:0;text-align:left}.label-value-render-vertical .label-value-value{display:block;padding:5px 0 15px}.label-value-render-small .label-value-label{padding:4px 10px}.label-value-render-small .label-value-value{padding:4px 0}.label-value-render-small.label-value-render-border .label-value-label,.label-value-render-small.label-value-render-border .label-value-value{padding:4px 16px}.label-value-render-small.label-value-render-vertical .label-value-label{padding:0}.label-value-render-small.label-value-render-vertical .label-value-value{padding:5px 0 10px}
@@ -6,5 +6,5 @@ import './../text-symbol-wrapper/index.css';
6
6
  import './../tips-wrapper/index.css';
7
7
  import './index.css';
8
8
  /*! @flatjs/forge MIT @flatbiz/antd */
9
- import{hooks as e}from"@wove/react/cjs/hooks";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{_ as l}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useState as i,useMemo as t,Fragment as a}from"react";import{arrayTotal as s,isUndefinedOrNull as n}from"@flatbiz/utils";import{BoxGrid as o}from"../box-grid/index.js";import{fbaHooks as u}from"../fba-hooks/index.js";import{TextOverflow as p}from"../text-overflow/index.js";import{TextSymbolWrapper as m}from"../text-symbol-wrapper/index.js";import{TipsWrapper as d}from"../tips-wrapper/index.js";import{jsx as f,jsxs as v}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"antd";import"@dimjs/lang/cjs/is-string";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var c=function e(r){var i=[];var t=0;var a=[];for(var n=0;n<r.length;n++){var o=r[n];var u=o.grid;var p=l({},o,{grid:u});if(t+u<=24&&u>0){t+=u;a.push(p)}else{i.push(a);t=u;a=[p]}}if(a.length>0){i.push(a)}if(i.length>0){i=i.map((function(e,r){if(e.length===1){e[0].grid=24}else{var l=s(e,"grid");var t=e[e.length-1];if(l<24){t.grid=24-l+t.grid}}if(r===i.length-1){return e.map((function(e){e.isLast=true;return e}))}return e}))}var m=[];i.forEach((function(e){m=m.concat(e)}));return m};var x=function s(x){var h=u.useResponsivePoint()||"";var g=i(),b=g[0],j=g[1];var y=x.column,w=x.forceColumn,k=x.labelAlign,B=x.labelWidth,N=x.options,C=x.border,P=x.width;var R=n(x.ellipsis)?true:x.ellipsis;var S=!C?h==="xs"||b==="xs":false;var T=t((function(){if(w){var e=24/w;return{xs:e,sm:e,md:e,lg:e,xl:e,xxl:e}}var r={1:{xs:24,sm:24,md:24,lg:24,xl:24,xxl:24},2:{xs:24,sm:12,md:12,lg:12,xl:12,xxl:12},3:{xs:24,sm:12,md:12,lg:8,xl:8,xxl:8},4:{xs:24,sm:12,md:12,lg:6,xl:6,xxl:6}};return!y?r[4]:r[y]}),[y,w]);var q=t((function(){if(!b)return undefined;var e=[];N.forEach((function(r){if(!r.hidden){var i=undefined;if(r.span){i=r.span*6;if(b==="xs"){i=24}else if(b==="sm"){i=i>12?i:12}}e.push(l({},r,{grid:i?i:T[b]}))}}));return c(e.filter(Boolean))}),[b,T,N]);var E=C?"":":";var L=function e(){return q==null?void 0:q.map((function(e,i){var t=n(e.ellipsis)?R:e.ellipsis;var s=S?undefined:B||100;var u=""+e.label+E;if(e.tips&&t){u=f(d,{tipType:"tooltip",tooltipProps:{title:e.tips},children:f(p,{text:u})})}else if(e.tips){u=f(d,{tipType:"tooltip",tooltipProps:{title:e.tips},children:u})}else if(t){u=f(p,{text:u})}return f(o.Col,l({},T,{span:e.grid,className:r("label-value-tr",{"label-value-last-tr":e.isLast}),children:!e.replenish?v(a,{children:[f("span",{className:"label-value-label",style:l({width:s},x.labelStyle),children:e.required?f(m,{text:u,symbolType:"required"}):u}),t?f("span",{className:"label-value-value",style:x.valueStyle,children:f(p,{text:e.value})}):f("span",{className:"label-value-value",style:l({wordBreak:"break-all"},x.valueStyle),children:e.value})]}):f(a,{})}),i)})).filter(Boolean)};var _=e.useCallbackRef((function(e){j(e)}));var z=t((function(){if(["xs","sm"].includes(h)||!P){return{}}return{width:P}}),[h]);var A=k||(C?"left":"right");return f(o.Row,{style:l({},z,x.style),className:r("label-value-render","label-value-render-"+A,{"label-value-render-border":C,"label-value-render-vertical":S},x.className),gutter:C?[0,0]:[30,0],onBoxBreakpointChange:_,children:L()})};export{x as LabelValueRender};
9
+ import{hooks as e}from"@wove/react/cjs/hooks";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{_ as l}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useState as i,useMemo as t,Fragment as a}from"react";import{arrayTotal as s,isUndefinedOrNull as n}from"@flatbiz/utils";import{BoxGrid as o}from"../box-grid/index.js";import{fbaHooks as u}from"../fba-hooks/index.js";import{TextOverflow as m}from"../text-overflow/index.js";import{TextSymbolWrapper as p}from"../text-symbol-wrapper/index.js";import{TipsWrapper as d}from"../tips-wrapper/index.js";import{jsx as f,jsxs as v}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"antd";import"@dimjs/lang/cjs/is-string";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var c=function e(r){var i=[];var t=0;var a=[];for(var n=0;n<r.length;n++){var o=r[n];var u=o.grid;var m=l({},o,{grid:u});if(t+u<=24&&u>0){t+=u;a.push(m)}else{i.push(a);t=u;a=[m]}}if(a.length>0){i.push(a)}if(i.length>0){i=i.map((function(e,r){if(e.length===1){e[0].grid=24}else{var l=s(e,"grid");var t=e[e.length-1];if(l<24){t.grid=24-l+t.grid}}if(r===i.length-1){return e.map((function(e){e.isLast=true;return e}))}return e}))}var p=[];i.forEach((function(e){p=p.concat(e)}));return p};var x=function s(x){var g=u.useResponsivePoint()||"";var h=i(),b=h[0],j=h[1];var y=x.column,w=x.forceColumn,k=x.labelAlign,B=x.labelWidth,N=x.options,C=x.border,P=x.width,R=x.size;var S=n(x.ellipsis)?true:x.ellipsis;var T=y&&[1,2,3,4,6].includes(y)?y:4;var q=!C?g==="xs"||b==="xs":false;var z=t((function(){if(w){var e=24/w;return{xs:e,sm:e,md:e,lg:e,xl:e,xxl:e}}var r={1:{xs:24,sm:24,md:24,lg:24,xl:24,xxl:24},2:{xs:24,sm:12,md:12,lg:12,xl:12,xxl:12},3:{xs:24,sm:12,md:12,lg:8,xl:8,xxl:8},4:{xs:24,sm:12,md:12,lg:6,xl:6,xxl:6},6:{xs:24,sm:12,md:8,lg:6,xl:4,xxl:4}};return r[T]}),[T,w]);var E=t((function(){if(!b)return undefined;var e=[];N.forEach((function(r){if(!r.hidden){var i=undefined;if(r.span){var t=r.span>T?T:r.span;i=t*(24/T);if(b==="xs"){i=24}else if(b==="sm"){i=i>12?i:12}}e.push(l({},r,{grid:i?i:z[b]}))}}));return c(e.filter(Boolean))}),[b,T,z,N]);var L=C?"":":";var _=function e(){return E==null?void 0:E.map((function(e,i){var t=n(e.ellipsis)?S:e.ellipsis;var s=q?undefined:B||100;var u=""+e.label+L;if(e.tips&&t){u=f(d,{tipType:"tooltip",tooltipProps:{title:e.tips},children:f(m,{text:u})})}else if(e.tips){u=f(d,{tipType:"tooltip",tooltipProps:{title:e.tips},children:u})}else if(t){u=f(m,{text:u})}return f(o.Col,l({},z,{span:e.grid,className:r("label-value-tr",{"label-value-last-tr":e.isLast}),children:v(a,{children:[f("span",{className:"label-value-label",style:l({width:s},x.labelStyle),children:e.required?f(p,{text:u,symbolType:"required"}):u}),t?f("span",{className:"label-value-value",style:x.valueStyle,children:f(m,{text:e.value})}):f("span",{className:"label-value-value",style:l({wordBreak:"break-all"},x.valueStyle),children:e.value})]})}),i)})).filter(Boolean)};var A=e.useCallbackRef((function(e){j(e)}));var H=t((function(){if(["xs","sm"].includes(g)||!P){return{}}return{width:P}}),[g,P]);var O=function(){if(k)return k;if(q||C)return"left";return"right"}();return f(o.Row,{style:l({},H,x.style),className:r("label-value-render","label-value-render-"+O,{"label-value-render-border":C,"label-value-render-vertical":q,"label-value-render-small":R==="small"},x.className),gutter:C?[0,0]:[30,0],onBoxBreakpointChange:A,children:_()})};export{x as LabelValueRender};
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-render/utils.ts","@flatbiz/antd/src/label-value-render/label-value.tsx"],"sourcesContent":["import { arrayTotal } from '@flatbiz/utils';\nimport { TLabelValueRenderItem } from './types';\n\nexport const getRenderGrid = (dataList: TLabelValueRenderItem[]) => {\n let results: TLabelValueRenderItem[][] = [];\n\n let currentSum = 0;\n let currentArr: TLabelValueRenderItem[] = [];\n for (let i = 0; i < dataList.length; i++) {\n const item = dataList[i];\n const grid = item.grid as number;\n const temp = {\n ...item,\n grid: grid,\n } as TLabelValueRenderItem;\n if (currentSum + grid <= 24 && grid > 0) {\n currentSum += grid;\n currentArr.push(temp);\n } else {\n results.push(currentArr);\n currentSum = grid;\n currentArr = [temp];\n }\n }\n\n if (currentArr.length > 0) {\n results.push(currentArr);\n }\n if (results.length > 0) {\n results = results.map((item, index) => {\n if (item.length === 1) {\n item[0].grid = 24;\n } else {\n const total = arrayTotal(item, 'grid');\n const lastItem = item[item.length - 1];\n if (total < 24) {\n lastItem.grid = 24 - total + lastItem.grid;\n }\n }\n if (index === results.length - 1) {\n return item.map((temp) => {\n temp.isLast = true;\n return temp;\n });\n }\n return item;\n });\n }\n\n let resultsFt: TLabelValueRenderItem[] = [];\n results.forEach((item) => {\n resultsFt = resultsFt.concat(item);\n });\n return resultsFt;\n};\n","import { CSSProperties, Fragment, ReactElement, useMemo, useState } from 'react';\n\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { BoxGrid } from '../box-grid';\nimport { TBoxBreakpoint } from '../box-grid/type';\nimport { fbaHooks } from '../fba-hooks';\nimport { TextOverflow } from '../text-overflow';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper } from '../tips-wrapper';\nimport './style.less';\nimport { TLabelValueItem, TLabelValueRenderItem } from './types';\nimport { getRenderGrid } from './utils';\n\nexport type LabelValueRenderProps = {\n className?: string;\n style?: CSSProperties;\n /**\n * 定义一行显示几列, 默认值:4\n * ```\n * 1. 当外层宽度尺寸大于 992px(lg) 时,一行显示几列\n * 1. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响,响应式布局\n * 2. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 3. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4;\n /** 数据源配置 */\n options: TLabelValueItem[];\n /**\n * 超过宽度将自动省略,默认值:true\n */\n ellipsis?: boolean;\n /** 是否添加边框 */\n border?: boolean;\n /** label对齐方式 */\n labelAlign?: 'left' | 'right' | 'center';\n /** label 宽度,默认值:100 */\n labelWidth?: number;\n width?: number;\n /** label 样式 */\n labelStyle?: CSSProperties;\n /** value 样式 */\n valueStyle?: CSSProperties;\n};\n\n/**\n * label+value 列表布局\n * ```\n * 1. 可设置超出隐藏、必填标识、设置隐藏、添加说明标签等功能\n * 2. 可自定义设置占用网格列数\n * 3. 内置响应式布局\n * ```\n */\nexport const LabelValueRender = (props: LabelValueRenderProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [breakpoint, setBreakpoint] = useState<TBoxBreakpoint>();\n\n const { column, forceColumn, labelAlign, labelWidth, options, border, width } = props;\n\n const ellipsis = isUndefinedOrNull(props.ellipsis) ? true : props.ellipsis;\n\n const isVertical = !border ? screenType === 'xs' || breakpoint === 'xs' : false;\n\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n };\n return !column ? columnMap[4] : columnMap[column];\n }, [column, forceColumn]);\n\n const renderList = useMemo(() => {\n if (!breakpoint) return undefined;\n const dataListNew: TLabelValueRenderItem[] = [];\n options.forEach((item) => {\n if (!item.hidden) {\n let grid: number | undefined = undefined;\n if (item.span) {\n grid = item.span * 6;\n if (breakpoint === 'xs') {\n grid = 24;\n } else if (breakpoint === 'sm') {\n grid = grid > 12 ? grid : 12;\n }\n }\n dataListNew.push({\n ...item,\n grid: grid ? grid : gridSize[breakpoint],\n });\n }\n });\n return getRenderGrid(dataListNew.filter(Boolean));\n }, [breakpoint, gridSize, options]);\n\n const colon = border ? '' : ':';\n\n const getFormRowChildren = () => {\n return renderList\n ?.map((item, index) => {\n const ellipsisFt = isUndefinedOrNull(item.ellipsis) ? ellipsis : item.ellipsis;\n\n const width = isVertical ? undefined : labelWidth || 100;\n\n let labelContent: ReactElement | string = `${item.label}${colon}`;\n\n if (item.tips && ellipsisFt) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n <TextOverflow text={labelContent as unknown as string} />\n </TipsWrapper>\n );\n } else if (item.tips) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n {labelContent}\n </TipsWrapper>\n );\n } else if (ellipsisFt) {\n labelContent = <TextOverflow text={labelContent as unknown as string} />;\n }\n\n return (\n <BoxGrid.Col\n key={index}\n {...gridSize}\n span={item.grid}\n className={classNames('label-value-tr', { 'label-value-last-tr': item.isLast })}\n >\n {!item.replenish ? (\n <Fragment>\n <span className=\"label-value-label\" style={{ width, ...props.labelStyle }}>\n {item.required ? (\n <TextSymbolWrapper text={labelContent} symbolType=\"required\" />\n ) : (\n labelContent\n )}\n </span>\n {ellipsisFt ? (\n <span className=\"label-value-value\" style={props.valueStyle}>\n <TextOverflow text={item.value as string} />\n </span>\n ) : (\n <span\n className=\"label-value-value\"\n style={{\n wordBreak: 'break-all',\n ...props.valueStyle,\n }}\n >\n {item.value}\n </span>\n )}\n </Fragment>\n ) : (\n <Fragment />\n )}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const onBoxBreakpointChange = hooks.useCallbackRef((breakpoint: TBoxBreakpoint) => {\n setBreakpoint(breakpoint);\n });\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType]);\n\n const align = labelAlign || (border ? 'left' : 'right');\n\n return (\n <BoxGrid.Row\n style={{ ...innerStyle, ...props.style }}\n className={classNames(\n 'label-value-render',\n `label-value-render-${align}`,\n {\n 'label-value-render-border': border,\n 'label-value-render-vertical': isVertical,\n },\n props.className,\n )}\n gutter={border ? [0, 0] : [30, 0]}\n onBoxBreakpointChange={onBoxBreakpointChange}\n >\n {getFormRowChildren()}\n </BoxGrid.Row>\n );\n};\n"],"names":["getRenderGrid","dataList","results","currentSum","currentArr","i","length","item","grid","temp","_extends","push","map","index","total","arrayTotal","lastItem","isLast","resultsFt","forEach","concat","LabelValueRender","props","screenType","fbaHooks","useResponsivePoint","_useState","useState","breakpoint","setBreakpoint","column","forceColumn","labelAlign","labelWidth","options","border","width","ellipsis","isUndefinedOrNull","isVertical","gridSize","useMemo","num","xs","sm","md","lg","xl","xxl","columnMap","renderList","undefined","dataListNew","hidden","span","filter","Boolean","colon","getFormRowChildren","ellipsisFt","labelContent","label","tips","_jsx","TipsWrapper","tipType","tooltipProps","title","children","TextOverflow","text","BoxGrid","Col","className","_classNames","replenish","_jsxs","Fragment","style","labelStyle","required","TextSymbolWrapper","symbolType","valueStyle","value","wordBreak","onBoxBreakpointChange","_hooks","useCallbackRef","innerStyle","includes","align","Row","gutter"],"mappings":";i1BAGO,IAAMA,EAAgB,SAAhBA,EAAiBC,GAC5B,IAAIC,EAAqC,GAEzC,IAAIC,EAAa,EACjB,IAAIC,EAAsC,GAC1C,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAASK,OAAQD,IAAK,CACxC,IAAME,EAAON,EAASI,GACtB,IAAMG,EAAOD,EAAKC,KAClB,IAAMC,EAAIC,EAAA,CAAA,EACLH,EAAI,CACPC,KAAMA,IAER,GAAIL,EAAaK,GAAQ,IAAMA,EAAO,EAAG,CACvCL,GAAcK,EACdJ,EAAWO,KAAKF,EAClB,KAAO,CACLP,EAAQS,KAAKP,GACbD,EAAaK,EACbJ,EAAa,CAACK,EAChB,CACF,CAEA,GAAIL,EAAWE,OAAS,EAAG,CACzBJ,EAAQS,KAAKP,EACf,CACA,GAAIF,EAAQI,OAAS,EAAG,CACtBJ,EAAUA,EAAQU,KAAI,SAACL,EAAMM,GAC3B,GAAIN,EAAKD,SAAW,EAAG,CACrBC,EAAK,GAAGC,KAAO,EACjB,KAAO,CACL,IAAMM,EAAQC,EAAWR,EAAM,QAC/B,IAAMS,EAAWT,EAAKA,EAAKD,OAAS,GACpC,GAAIQ,EAAQ,GAAI,CACdE,EAASR,KAAO,GAAKM,EAAQE,EAASR,IACxC,CACF,CACA,GAAIK,IAAUX,EAAQI,OAAS,EAAG,CAChC,OAAOC,EAAKK,KAAI,SAACH,GACfA,EAAKQ,OAAS,KACd,OAAOR,CACT,GACF,CACA,OAAOF,CACT,GACF,CAEA,IAAIW,EAAqC,GACzChB,EAAQiB,SAAQ,SAACZ,GACfW,EAAYA,EAAUE,OAAOb,EAC/B,IACA,OAAOW,CACT,MCqBaG,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAaC,EAASC,sBAAwB,GACpD,IAAAC,EAAoCC,IAA7BC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAEhC,IAAQI,EAAwER,EAAxEQ,OAAQC,EAAgET,EAAhES,YAAaC,EAAmDV,EAAnDU,WAAYC,EAAuCX,EAAvCW,WAAYC,EAA2BZ,EAA3BY,QAASC,EAAkBb,EAAlBa,OAAQC,EAAUd,EAAVc,MAEtE,IAAMC,EAAWC,EAAkBhB,EAAMe,UAAY,KAAOf,EAAMe,SAElE,IAAME,GAAcJ,EAASZ,IAAe,MAAQK,IAAe,KAAO,MAE1E,IAAMY,EAAWC,GAAQ,WACvB,GAAIV,EAAa,CACf,IAAMW,EAAM,GAAKX,EACjB,MAAO,CAAEY,GAAID,EAAKE,GAAIF,EAAKG,GAAIH,EAAKI,GAAIJ,EAAKK,GAAIL,EAAKM,IAAKN,EAC7D,CACA,IAAMO,EAAY,CAChB,EAAG,CAAEN,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,IAAK,IAClD,EAAG,CAAEL,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,IAAK,IAClD,EAAG,CAAEL,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGC,IAAK,GAChD,EAAG,CAAEL,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGC,IAAK,IAElD,OAAQlB,EAASmB,EAAU,GAAKA,EAAUnB,EAC5C,GAAG,CAACA,EAAQC,IAEZ,IAAMmB,EAAaT,GAAQ,WACzB,IAAKb,EAAY,OAAOuB,UACxB,IAAMC,EAAuC,GAC7ClB,EAAQf,SAAQ,SAACZ,GACf,IAAKA,EAAK8C,OAAQ,CAChB,IAAI7C,EAA2B2C,UAC/B,GAAI5C,EAAK+C,KAAM,CACb9C,EAAOD,EAAK+C,KAAO,EACnB,GAAI1B,IAAe,KAAM,CACvBpB,EAAO,EACT,MAAO,GAAIoB,IAAe,KAAM,CAC9BpB,EAAOA,EAAO,GAAKA,EAAO,EAC5B,CACF,CACA4C,EAAYzC,KAAID,KACXH,EAAI,CACPC,KAAMA,EAAOA,EAAOgC,EAASZ,KAEjC,CACF,IACA,OAAO5B,EAAcoD,EAAYG,OAAOC,SACzC,GAAE,CAAC5B,EAAYY,EAAUN,IAE1B,IAAMuB,EAAQtB,EAAS,GAAK,IAE5B,IAAMuB,EAAqB,SAArBA,IACJ,OAAOR,GAAAA,UAAAA,EAAAA,EACHtC,KAAI,SAACL,EAAMM,GACX,IAAM8C,EAAarB,EAAkB/B,EAAK8B,UAAYA,EAAW9B,EAAK8B,SAEtE,IAAMD,EAAQG,EAAaY,UAAYlB,GAAc,IAErD,IAAI2B,EAAyCrD,GAAAA,EAAKsD,MAAQJ,EAE1D,GAAIlD,EAAKuD,MAAQH,EAAY,CAC3BC,EACEG,EAACC,EAAW,CAACC,QAAQ,UAAUC,aAAc,CAAEC,MAAO5D,EAAKuD,MAAOM,SAChEL,EAACM,EAAY,CAACC,KAAMV,KAG1B,MAAO,GAAIrD,EAAKuD,KAAM,CACpBF,EACEG,EAACC,EAAW,CAACC,QAAQ,UAAUC,aAAc,CAAEC,MAAO5D,EAAKuD,MAAOM,SAC/DR,GAGN,MAAM,GAAID,EAAY,CACrBC,EAAeG,EAACM,EAAY,CAACC,KAAMV,GACrC,CAEA,OACEG,EAACQ,EAAQC,IAAG9D,KAEN8B,EAAQ,CACZc,KAAM/C,EAAKC,KACXiE,UAAWC,EAAW,iBAAkB,CAAE,sBAAuBnE,EAAKU,SAAUmD,UAE9E7D,EAAKoE,UACLC,EAACC,EAAQ,CAAAT,UACPL,EAAA,OAAA,CAAMU,UAAU,oBAAoBK,MAAKpE,EAAA,CAAI0B,MAAAA,GAAUd,EAAMyD,YAAaX,SACvE7D,EAAKyE,SACJjB,EAACkB,EAAiB,CAACX,KAAMV,EAAcsB,WAAW,aAElDtB,IAGHD,EACCI,EAAA,OAAA,CAAMU,UAAU,oBAAoBK,MAAOxD,EAAM6D,WAAWf,SAC1DL,EAACM,EAAY,CAACC,KAAM/D,EAAK6E,UAG3BrB,EAAA,OAAA,CACEU,UAAU,oBACVK,MAAKpE,EAAA,CACH2E,UAAW,aACR/D,EAAM6D,YACTf,SAED7D,EAAK6E,WAKZrB,EAACc,EAAU,MA/BRhE,EAmCX,IACC0C,OAAOC,UAGZ,IAAM8B,EAAwBC,EAAMC,gBAAe,SAAC5D,GAClDC,EAAcD,EAChB,IAEA,IAAM6D,EAAahD,GAAQ,WAEzB,GAAI,CAAC,KAAM,MAAMiD,SAASnE,KAAgBa,EAAO,CAC/C,MAAO,EACT,CACA,MAAO,CAAEA,MAAAA,EACX,GAAG,CAACb,IAEJ,IAAMoE,EAAQ3D,IAAeG,EAAS,OAAS,SAE/C,OACE4B,EAACQ,EAAQqB,IAAG,CACVd,MAAKpE,EAAO+E,CAAAA,EAAAA,EAAenE,EAAMwD,OACjCL,UAAWC,EACT,qBAAoB,sBACEiB,EACtB,CACE,4BAA6BxD,EAC7B,8BAA+BI,GAEjCjB,EAAMmD,WAERoB,OAAQ1D,EAAS,CAAC,EAAG,GAAK,CAAC,GAAI,GAC/BmD,sBAAuBA,EAAsBlB,SAE5CV,KAGP"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-render/utils.ts","@flatbiz/antd/src/label-value-render/label-value.tsx"],"sourcesContent":["import { arrayTotal } from '@flatbiz/utils';\nimport { TLabelValueRenderItem } from './types';\n\nexport const getRenderGrid = (dataList: TLabelValueRenderItem[]) => {\n let results: TLabelValueRenderItem[][] = [];\n\n let currentSum = 0;\n let currentArr: TLabelValueRenderItem[] = [];\n for (let i = 0; i < dataList.length; i++) {\n const item = dataList[i];\n const grid = item.grid;\n const temp = {\n ...item,\n grid: grid,\n } as TLabelValueRenderItem;\n if (currentSum + grid <= 24 && grid > 0) {\n currentSum += grid;\n currentArr.push(temp);\n } else {\n results.push(currentArr);\n currentSum = grid;\n currentArr = [temp];\n }\n }\n\n if (currentArr.length > 0) {\n results.push(currentArr);\n }\n if (results.length > 0) {\n results = results.map((item, index) => {\n if (item.length === 1) {\n item[0].grid = 24;\n } else {\n const total = arrayTotal(item, 'grid');\n const lastItem = item[item.length - 1];\n if (total < 24) {\n lastItem.grid = 24 - total + lastItem.grid;\n }\n }\n if (index === results.length - 1) {\n return item.map((temp) => {\n temp.isLast = true;\n return temp;\n });\n }\n return item;\n });\n }\n\n let resultsFt: TLabelValueRenderItem[] = [];\n results.forEach((item) => {\n resultsFt = resultsFt.concat(item);\n });\n return resultsFt;\n};\n","import { classNames } from '@dimjs/utils';\nimport { CSSProperties, Fragment, ReactElement, useMemo, useState } from 'react';\n\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { BoxGrid } from '../box-grid';\nimport { TBoxBreakpoint } from '../box-grid/type';\nimport { fbaHooks } from '../fba-hooks';\nimport { TextOverflow } from '../text-overflow';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper } from '../tips-wrapper';\nimport './style.less';\nimport { TLabelValueItem, TLabelValueRenderItem } from './types';\nimport { getRenderGrid } from './utils';\n\nexport type LabelValueRenderProps = {\n className?: string;\n style?: CSSProperties;\n /**\n * 定义一行显示几列, 默认值:4\n * ```\n * 1. label+value 一组为一列\n * 2. 当外层宽度尺寸大于 992px(lg) 时,一行显示几列\n * 3. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响,响应式布局\n * 4. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 5. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4 | 6;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4 | 6;\n /** 数据源配置 */\n options: TLabelValueItem[];\n /** 超过宽度将自动省略,默认值:true */\n ellipsis?: boolean;\n /** 是否添加边框 */\n border?: boolean;\n /** label对齐方式 */\n labelAlign?: 'left' | 'right' | 'center';\n /** label 宽度,默认值:100 */\n labelWidth?: number;\n width?: number;\n /** label 样式 */\n labelStyle?: CSSProperties;\n /** value 样式 */\n valueStyle?: CSSProperties;\n size?: 'default' | 'small';\n};\n\n/**\n * label+value 列表布局\n * ```\n * 1. 可设置超出隐藏、必填标识、设置隐藏、添加说明标签等功能\n * 2. 可自定义设置占用网格列数\n * 3. 内置响应式布局\n * ```\n */\nexport const LabelValueRender = (props: LabelValueRenderProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [breakpoint, setBreakpoint] = useState<TBoxBreakpoint>();\n\n const { column, forceColumn, labelAlign, labelWidth, options, border, width, size } = props;\n\n const ellipsis = isUndefinedOrNull(props.ellipsis) ? true : props.ellipsis;\n\n const columnNew = column && [1, 2, 3, 4, 6].includes(column) ? column : 4;\n\n const isVertical = !border ? screenType === 'xs' || breakpoint === 'xs' : false;\n\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },\n };\n return columnMap[columnNew];\n }, [columnNew, forceColumn]);\n\n const renderList = useMemo(() => {\n if (!breakpoint) return undefined;\n const dataListNew: TLabelValueRenderItem[] = [];\n options.forEach((item) => {\n if (!item.hidden) {\n let grid: number | undefined = undefined;\n if (item.span) {\n const itemSpan = item.span > columnNew ? columnNew : item.span;\n grid = itemSpan * (24 / columnNew);\n if (breakpoint === 'xs') {\n grid = 24;\n } else if (breakpoint === 'sm') {\n grid = grid > 12 ? grid : 12;\n }\n }\n dataListNew.push({\n ...item,\n grid: grid ? grid : gridSize[breakpoint],\n });\n }\n });\n return getRenderGrid(dataListNew.filter(Boolean));\n }, [breakpoint, columnNew, gridSize, options]);\n\n const colon = border ? '' : ':';\n\n const getFormRowChildren = () => {\n return renderList\n ?.map((item, index) => {\n const ellipsisFt = isUndefinedOrNull(item.ellipsis) ? ellipsis : item.ellipsis;\n\n const width = isVertical ? undefined : labelWidth || 100;\n\n let labelContent: ReactElement | string = `${item.label}${colon}`;\n\n if (item.tips && ellipsisFt) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n <TextOverflow text={labelContent as unknown as string} />\n </TipsWrapper>\n );\n } else if (item.tips) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n {labelContent}\n </TipsWrapper>\n );\n } else if (ellipsisFt) {\n labelContent = <TextOverflow text={labelContent as unknown as string} />;\n }\n\n return (\n <BoxGrid.Col\n key={index}\n {...gridSize}\n span={item.grid}\n className={classNames('label-value-tr', {\n 'label-value-last-tr': item.isLast,\n })}\n >\n {/* {!item.replenish ? ( */}\n <Fragment>\n <span className=\"label-value-label\" style={{ width, ...props.labelStyle }}>\n {item.required ? (\n <TextSymbolWrapper text={labelContent} symbolType=\"required\" />\n ) : (\n labelContent\n )}\n </span>\n {ellipsisFt ? (\n <span className=\"label-value-value\" style={props.valueStyle}>\n <TextOverflow text={item.value as string} />\n </span>\n ) : (\n <span\n className=\"label-value-value\"\n style={{\n wordBreak: 'break-all',\n ...props.valueStyle,\n }}\n >\n {item.value}\n </span>\n )}\n </Fragment>\n {/* ) : (\n <Fragment />\n )} */}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const onBoxBreakpointChange = hooks.useCallbackRef((breakpoint: TBoxBreakpoint) => {\n setBreakpoint(breakpoint);\n });\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType, width]);\n\n const align = (function () {\n if (labelAlign) return labelAlign;\n if (isVertical || border) return 'left';\n return 'right';\n })();\n\n return (\n <BoxGrid.Row\n style={{ ...innerStyle, ...props.style }}\n className={classNames(\n 'label-value-render',\n `label-value-render-${align}`,\n {\n 'label-value-render-border': border,\n 'label-value-render-vertical': isVertical,\n 'label-value-render-small': size === 'small',\n },\n props.className,\n )}\n gutter={border ? [0, 0] : [30, 0]}\n onBoxBreakpointChange={onBoxBreakpointChange}\n >\n {getFormRowChildren()}\n </BoxGrid.Row>\n );\n};\n"],"names":["getRenderGrid","dataList","results","currentSum","currentArr","i","length","item","grid","temp","_extends","push","map","index","total","arrayTotal","lastItem","isLast","resultsFt","forEach","concat","LabelValueRender","props","screenType","fbaHooks","useResponsivePoint","_useState","useState","breakpoint","setBreakpoint","column","forceColumn","labelAlign","labelWidth","options","border","width","size","ellipsis","isUndefinedOrNull","columnNew","includes","isVertical","gridSize","useMemo","num","xs","sm","md","lg","xl","xxl","columnMap","renderList","undefined","dataListNew","hidden","span","itemSpan","filter","Boolean","colon","getFormRowChildren","ellipsisFt","labelContent","label","tips","_jsx","TipsWrapper","tipType","tooltipProps","title","children","TextOverflow","text","BoxGrid","Col","className","_classNames","_jsxs","Fragment","style","labelStyle","required","TextSymbolWrapper","symbolType","valueStyle","value","wordBreak","onBoxBreakpointChange","_hooks","useCallbackRef","innerStyle","align","Row","gutter"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { dynamicNode } from '../dynamic-node';\nimport { fbaHooks } from '../fba-hooks';\nimport { LocalLoadingCtxProvider } from './context';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TAny>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number | string;\n className?: string;\n style?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoadingInner = forwardRef<\n LocalLoadingRefApi,\n LocalLoadingProps\n>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight =\n props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const loadingKeyRef = useRef<string>();\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (\n !serviceConfig.params ||\n toArray(serviceConfig.invalidParamKey).length === 0\n ) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const openLoading = () => {\n errorRef.current = undefined;\n loadingKeyRef.current = dynamicNode.append({\n content: <Spin spinning={true}></Spin>,\n getContainer: () => {\n return rootRef.current as HTMLElement;\n },\n }).elementId;\n };\n\n const closeLoading = () => {\n dynamicNode.remove(loadingKeyRef.current);\n };\n\n const onInitRequest = async (params?: TPlainObject) => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest({\n ...serviceParams,\n ...params,\n });\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n console.error(error);\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n closeLoading();\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInitRequest();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n useImperativeHandle(ref, () => {\n return { onRefresh: onInitRequest };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className=\"local-loading-error\">\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n size=\"small\"\n onClick={() => {\n setStatus('init');\n setTimeout(() => {\n void onInitRequest();\n }, 100);\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className=\"fba-local-loading-process\"\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: 'var(--block-bg-color)',\n }}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div\n className={classNames('fba-local-loading', props.className)}\n style={props.style}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <div className=\"local-loading-content\" style={props.contentStyle}>\n {children(respData)}\n </div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils';\nimport { useLocalLoadingCtx } from './context';\nimport { LocalLoadingInner } from './local-loading';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(LocalLoadingInner, {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n});\n"],"names":["_createCtx","_createCtx2","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","loadingKeyRef","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","openLoading","current","dynamicNode","append","content","_jsx","Spin","spinning","getContainer","elementId","closeLoading","remove","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","console","message","resolve","onRequest","then","$await_2","useEffectCustomAsync","useEffectCustom","_isDeepEqual","useImperativeHandle","onRefresh","value","_jsxs","className","Result","subTitle","extra","Button","type","ghost","size","onClick","setTimeout","style","height","display","justifyContent","position","backgroundColor","_classNames","contentStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { dynamicNode } from '../dynamic-node';\nimport { fbaHooks } from '../fba-hooks';\nimport { LocalLoadingCtxProvider } from './context';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TAny>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number | string;\n className?: string;\n style?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoadingInner = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const loadingKeyRef = useRef<string>();\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig.params || toArray(serviceConfig.invalidParamKey).length === 0) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const openLoading = () => {\n errorRef.current = undefined;\n loadingKeyRef.current = dynamicNode.append({\n content: <Spin spinning={true}></Spin>,\n getContainer: () => {\n return rootRef.current as HTMLElement;\n },\n }).elementId;\n };\n\n const closeLoading = () => {\n dynamicNode.remove(loadingKeyRef.current);\n };\n\n const onInitRequest = async (params?: TPlainObject) => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest({\n ...serviceParams,\n ...params,\n });\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n console.error(error);\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n closeLoading();\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInitRequest();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n useImperativeHandle(ref, () => {\n return { onRefresh: onInitRequest };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className=\"local-loading-error\">\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n size=\"small\"\n onClick={() => {\n setStatus('init');\n setTimeout(() => {\n void onInitRequest();\n }, 100);\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className=\"fba-local-loading-process\"\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: 'var(--block-bg-color)',\n }}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('fba-local-loading', props.className)} style={props.style}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <div className=\"local-loading-content\" style={props.contentStyle}>\n {children(respData)}\n </div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils';\nimport { useLocalLoadingCtx } from './context';\nimport { LocalLoadingInner } from './local-loading';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(LocalLoadingInner, {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n});\n"],"names":["_createCtx","_createCtx2","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","loadingKeyRef","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","openLoading","current","dynamicNode","append","content","_jsx","Spin","spinning","getContainer","elementId","closeLoading","remove","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","console","message","resolve","onRequest","then","$await_2","useEffectCustomAsync","useEffectCustom","_isDeepEqual","useImperativeHandle","onRefresh","value","_jsxs","className","Result","subTitle","extra","Button","type","ghost","size","onClick","setTimeout","style","height","display","justifyContent","position","backgroundColor","_classNames","contentStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -432,10 +432,10 @@ export type ButtonWrapperProps = Omit<ButtonProps, "onClick"> & {
432
432
  export declare const ButtonWrapper: (props: ButtonWrapperProps) => import("react/jsx-runtime").JSX.Element | null;
433
433
  export type DialogModalProps = Omit<ModalProps, "onOk" | "onCancel" | "getContainer" | "open" | "open" | "okButtonProps" | "cancelButtonProps" | "footer"> & {
434
434
  /**
435
- * 内置尺寸,根据比例固定高度、宽度,默认:middle
435
+ * 内置尺寸,根据比例固定高度、宽度,默认:无
436
436
  * ```
437
- * 1. 如果自定义了width、styles.body.height属性,size中的height、width将对应失效
438
- * 2. 可传 null 值,取消内置尺寸
437
+ * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效
438
+ * 2. 不传、传null值可取消内置尺寸
439
439
  * ```
440
440
  */
441
441
  size?: "small" | "middle" | "large" | null;
@@ -2701,10 +2701,10 @@ export type FbaAppDrawerProps = Omit<DrawerProps, "onOk" | "onCancel" | "getCont
2701
2701
  };
2702
2702
  export type FbaAppModalProps = Omit<ModalProps, "onOk" | "onCancel" | "getContainer" | "okButtonProps" | "cancelButtonProps" | "footer"> & {
2703
2703
  /**
2704
- * 内置尺寸,根据比例固定高度、宽度,默认:middle
2704
+ * 内置尺寸,根据比例固定高度、宽度
2705
2705
  * ```
2706
- * 1. 如果自定义了width、styles.body.height属性,size中的height、width将对应失效
2707
- * 2. 可传 null 值,取消内置尺寸
2706
+ * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效
2707
+ * 2. 不传、传null值可取消内置尺寸
2708
2708
  * ```
2709
2709
  */
2710
2710
  size?: "small" | "middle" | "large" | null;
@@ -2735,6 +2735,8 @@ export type FbaAppModalProps = Omit<ModalProps, "onOk" | "onCancel" | "getContai
2735
2735
  * ```
2736
2736
  */
2737
2737
  footer?: null | ReactElement | ReactElement[] | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);
2738
+ /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */
2739
+ bodyHeight?: number;
2738
2740
  };
2739
2741
  export type FbaAppAlertProps = Omit<FbaAppModalProps, "onOk" | "cancelHidden" | "cancelButtonProps" | "onCancel" | "onClick"> & {
2740
2742
  onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;
@@ -3363,8 +3365,8 @@ export declare const LabelValueLayout: (props: LabelValueLayoutProps) => import(
3363
3365
  export type TLabelValueItem = {
3364
3366
  label: string | ReactElement;
3365
3367
  value?: string | number | ReactElement;
3366
- /** 一行有4列,当前labelValue数据占用的列数,默认是根据LabelValueRender.column配置来 */
3367
- span?: 1 | 2 | 3 | 4;
3368
+ /** 根据LabelValueRender.column配置,当前item占几列 */
3369
+ span?: 1 | 2 | 3 | 4 | 6;
3368
3370
  /** 是否隐藏 */
3369
3371
  hidden?: boolean;
3370
3372
  /** 超出宽度是否隐藏 */
@@ -3380,25 +3382,27 @@ export type LabelValueRenderProps = {
3380
3382
  /**
3381
3383
  * 定义一行显示几列, 默认值:4
3382
3384
  * ```
3383
- * 1. 当外层宽度尺寸大于 992px(lg) 时,一行显示几列
3384
- * 1. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响,响应式布局
3385
- * 2. 宽度尺寸定义
3385
+ * 1. label+value 一组为一列
3386
+ * 2. 当外层宽度尺寸大于 992px(lg) 时,一行显示几列
3387
+ * 3. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响,响应式布局
3388
+ * 4. 宽度尺寸定义
3386
3389
  * xs: 宽度 < 576px
3387
3390
  * sm: 宽度 ≥ 576px
3388
3391
  * md: 宽度 ≥ 768px
3389
3392
  * lg: 宽度 ≥ 992px
3390
3393
  * xl: 宽度 ≥ 1200px
3391
3394
  * xxl: 宽度 ≥ 1600px
3392
- * 3. 列数尺寸定义
3395
+ * 5. 列数尺寸定义
3393
3396
  * {
3394
3397
  * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },
3395
3398
  * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },
3396
3399
  * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },
3397
3400
  * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },
3401
+ * 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },
3398
3402
  * };
3399
3403
  * ```
3400
3404
  */
3401
- column?: 1 | 2 | 3 | 4;
3405
+ column?: 1 | 2 | 3 | 4 | 6;
3402
3406
  /**
3403
3407
  * 强制定义一行显示几列,不考虑响应式
3404
3408
  * ```
@@ -3406,12 +3410,10 @@ export type LabelValueRenderProps = {
3406
3410
  * 2. 建议优先使用column配置
3407
3411
  * ```
3408
3412
  */
3409
- forceColumn?: 1 | 2 | 3 | 4;
3413
+ forceColumn?: 1 | 2 | 3 | 4 | 6;
3410
3414
  /** 数据源配置 */
3411
3415
  options: TLabelValueItem[];
3412
- /**
3413
- * 超过宽度将自动省略,默认值:true
3414
- */
3416
+ /** 超过宽度将自动省略,默认值:true */
3415
3417
  ellipsis?: boolean;
3416
3418
  /** 是否添加边框 */
3417
3419
  border?: boolean;
@@ -3424,6 +3426,7 @@ export type LabelValueRenderProps = {
3424
3426
  labelStyle?: CSSProperties;
3425
3427
  /** value 样式 */
3426
3428
  valueStyle?: CSSProperties;
3429
+ size?: "default" | "small";
3427
3430
  };
3428
3431
  /**
3429
3432
  * label+value 列表布局
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.5.2",
3
+ "version": "4.5.3",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",