@flatbiz/antd 4.5.21 → 4.5.23

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.
Files changed (72) hide show
  1. package/esm/ace-editor-json/index.js +1 -1
  2. package/esm/ace-editor-json/index.js.map +1 -1
  3. package/esm/ace-editor-mysql/index.js +1 -1
  4. package/esm/ace-editor-mysql/index.js.map +1 -1
  5. package/esm/ace-editor-xml/index.js +1 -1
  6. package/esm/ace-editor-xml/index.js.map +1 -1
  7. package/esm/bootstrap/index.js +1 -1
  8. package/esm/bootstrap/index.js.map +1 -1
  9. package/esm/button-operate/index.js +1 -1
  10. package/esm/button-operate/index.js.map +1 -1
  11. package/esm/button-wrapper/index.js +1 -1
  12. package/esm/button-wrapper/index.js.map +1 -1
  13. package/esm/check-list/index.js +1 -1
  14. package/esm/check-list/index.js.map +1 -1
  15. package/esm/date-range-picker-wrapper-form-item/index.js +3 -1
  16. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  17. package/esm/dialog-alert/index.js +1 -1
  18. package/esm/dialog-alert/index.js.map +1 -1
  19. package/esm/dialog-confirm/index.js +1 -1
  20. package/esm/dialog-confirm/index.js.map +1 -1
  21. package/esm/dialog-drawer/index.js +1 -1
  22. package/esm/dialog-drawer/index.js.map +1 -1
  23. package/esm/dialog-drawer-content/index.js +1 -1
  24. package/esm/dialog-drawer-content/index.js.map +1 -1
  25. package/esm/dialog-modal/index.js +1 -1
  26. package/esm/dialog-modal/index.js.map +1 -1
  27. package/esm/drag-collapse/index.js +1 -1
  28. package/esm/drag-collapse/index.js.map +1 -1
  29. package/esm/drag-collapse-form-list/index.js +1 -1
  30. package/esm/drag-collapse-form-list/index.js.map +1 -1
  31. package/esm/drag-editable-table/index.js +1 -1
  32. package/esm/drag-editable-table/index.js.map +1 -1
  33. package/esm/drag-form-list/index.js +1 -1
  34. package/esm/drag-form-list/index.js.map +1 -1
  35. package/esm/dropdown-menu-wrapper/index.js +1 -1
  36. package/esm/dropdown-menu-wrapper/index.js.map +1 -1
  37. package/esm/easy-table/index.js +1 -1
  38. package/esm/easy-table/index.js.map +1 -1
  39. package/esm/editable-table/index.js +1 -1
  40. package/esm/editable-table/index.js.map +1 -1
  41. package/esm/editable-table-pro/index.css +1 -1
  42. package/esm/editable-table-pro/index.js +1 -1
  43. package/esm/editable-table-pro/index.js.map +1 -1
  44. package/esm/fba-app/index.js +1 -1
  45. package/esm/fba-app/index.js.map +1 -1
  46. package/esm/fba-utils/index.js +1 -1
  47. package/esm/fba-utils/index.js.map +1 -1
  48. package/esm/form-item-wrapper/index.js +1 -1
  49. package/esm/form-item-wrapper/index.js.map +1 -1
  50. package/esm/form-list-wrapper/index.js +1 -1
  51. package/esm/form-list-wrapper/index.js.map +1 -1
  52. package/esm/form-wrapper/index.js +1 -1
  53. package/esm/form-wrapper/index.js.map +1 -1
  54. package/esm/index.js +1 -1
  55. package/esm/json-editor/index.js +1 -1
  56. package/esm/json-editor/index.js.map +1 -1
  57. package/esm/local-loading/index.js +1 -1
  58. package/esm/local-loading/index.js.map +1 -1
  59. package/esm/pdf/index.js +1 -1
  60. package/esm/pdf/index.js.map +1 -1
  61. package/esm/permission/index.js +1 -1
  62. package/esm/permission/index.js.map +1 -1
  63. package/esm/search-form/index.js +1 -1
  64. package/esm/search-form/index.js.map +1 -1
  65. package/esm/table-cell-render/index.js +1 -1
  66. package/esm/table-cell-render/index.js.map +1 -1
  67. package/esm/text-overflow-render/index.js +1 -1
  68. package/esm/text-overflow-render/index.js.map +1 -1
  69. package/esm/time-range-picker-wrapper-form-item/index.js +5 -2
  70. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  71. package/index.d.ts +109 -14
  72. package/package.json +1 -1
@@ -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 * 内置尺寸,根据比例固定高度、宽度\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
+ {"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":";q7CA8BO,IAAMA,EAAgBC,EAAgC,IC3BtD,IAAAC,EAA+CC,IAAxCC,EAAuBF,EAAA,GAAEG,EAAWH,EAAA,yLC0D3C,IAAMI,EAAc,SAAdA,EAAeC,GAA4B,IAAAC,EAAAC,EACtD,IACEC,EAgBEH,EAhBFG,WACAC,EAeEJ,EAfFI,MACAC,EAcEL,EAdFK,KACAC,EAaEN,EAbFM,SACAC,EAYEP,EAZFO,cACAC,EAWER,EAXFQ,kBACAC,EAUET,EAVFS,QACAC,EASEV,EATFU,UACAC,EAQEX,EARFW,SACAC,EAOEZ,EAPFY,aACAC,EAMEb,EANFa,OACAC,EAKEd,EALFc,WACAC,EAIEf,EAJFe,OACAC,EAGEhB,EAHFgB,KACAC,EAEEjB,EAFFiB,WACGC,EAAUC,EACXnB,EAAKoB,GACT,IAAAC,EAAeC,EAAKC,UAAbC,EAAIH,EAAA,GACX,IAAMI,EAAWC,EAAQC,SAASC,cAAc,SAChD,IAAMC,EAAeC,IACrB,IAAMC,EAAaC,EAASC,sBAAwB,GAEpD,IAAAC,EAA8CC,EAAuB,IAA9DC,EAAeF,EAAA,GAAEG,EAAkBH,EAAA,GAE1C,IAAMI,EAAUC,EAAMC,gBAAe,WACnCxC,EAAMsC,SAAO,UAAA,EAAbtC,EAAMsC,SACR,IAEA,IAAMG,EAAiBF,EAAMC,gBAAe,SAACE,GAC3C,GAAIpC,EAAU,CACZ,IAAMqC,EAAWrC,EAASkB,EAAMkB,GAChC,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKP,EACvB,CACF,CACAA,IACA,OAAOQ,QAAQC,SACjB,IAEA,IAAMC,EAAaT,EAAMC,gBAAe,SAACE,GACvC,GAAIrC,EAAM,CACR,IAAMsC,EAAWtC,EAAKmB,EAAMkB,GAC5B,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKP,EACvB,CACF,CACAA,IACA,OAAOQ,QAAQC,SACjB,IAEA,IAAME,EAAYjB,EAASkB,eAAc,WAAM,IAAAC,EAC7C,IAAMC,GACHxC,IAAiBD,EACd,CACE0C,EAACC,EAAaC,KAAa/C,EAAiB,CAAEgD,QAASf,EAAgBgB,OAAQ7C,EAAa8C,SACzF5C,KAAUqC,EAAItB,EAAa8B,iBAAc,UAAA,EAA3BR,EAA6BrC,cAD3B,KAGnBuC,EAACC,EAAaC,EAAA,CAASK,KAAK,WAAcrD,EAAa,CAAEiD,QAASR,EAAYS,OAAQ9C,EAAS+C,SAC5F3C,GAAU,OADM,MAIrB8C,UACN,IAAMZ,EAAYa,EAAOjD,GACrB,aACQA,IAAW,WAAaA,EAAOW,EAAMY,GAAmBvB,IAAWuC,GAAgB,GAC/F,OAAOH,CACR,GAAE,CAACb,EAAiBpC,EAAM+D,OAE3B,IAAMC,EAAaC,GAAQ,WACzB,KAAKxC,GAAQ,MAARA,EAAUyC,UAAWnC,EAAY,OAAO8B,UAC7C,IAAMM,EAAS,CAAC,KAAM,MAAMC,SAASrC,GACrC,GAAIf,GAAQ,QAAS,CACnB,MAAO,CACLkD,QAAQzC,GAAQ,UAAA,EAARA,EAAUyC,QAAS,GAC3BG,MAAOF,EAAS,MAAQ1C,EAAS4C,MAAQ,GAE7C,CACA,GAAIrD,GAAQ,QAAS,CACnB,IAAMqD,EAAQ5C,EAAS4C,MAAQ,GAC/B,MAAO,CACLH,QAAQzC,GAAQ,UAAA,EAARA,EAAUyC,QAAS,GAC3BG,MAAOF,EAAS,MAAQE,EAAQ,IAAM,IAAMA,EAEhD,CAEA,GAAIrD,GAAQ,SAAU,CACpB,MAAO,CACLkD,QAAQzC,GAAQ,UAAA,EAARA,EAAUyC,QAAS,GAC3BG,MAAOF,EAAS,MAAQ1C,EAAS4C,MAAQ,GAE7C,CAEA,OAAOR,SACT,GAAG,CAACpC,eAAAA,EAAUyC,OAAQzC,GAAAA,UAAAA,EAAAA,EAAU4C,MAAOtC,EAAYf,IAEnD,IAAMsD,EAAeC,EACnB,mBACA,CAAE,iCAAkCpE,GACpC,CAAE,iCAAkC8C,GACpCvC,GAGF,IAAM8D,EAAiB,SAAjBA,EAAkBC,GACtBpC,EAAmBoC,IAGrB,IAAMC,KAAgBzE,EAAAiB,EAAWyD,SAAM,OAAA1E,EAAjBA,EAAmB2E,OAAI,UAAA,EAAvB3E,EAAyBiE,SAAUjD,EAEzD,OACEoC,EAACvD,EAAW,CAAC+E,MAAO,CAAEL,eAAAA,GAAiBd,SACrCL,EAACyB,EAAKvB,EAAA,CACJwB,aAAc,KACd3E,MACED,EACE6E,EAACC,EAAU,CAACC,UAAU,aAAaC,UAAW,EAAEzB,UAC9CL,EAAA,OAAA,CAAAK,SAAOtD,IACND,KAGHC,EAGJgF,SAAU,KACV9E,SAAUgC,EACV+C,eAAc,KACdhB,MAAOL,GAAAA,UAAAA,EAAAA,EAAYK,OACfnD,EAAU,CACdL,OAAQoC,EACR0B,OAAMpB,EACDrC,GAAAA,EAAWyD,OAAM,CACpBC,KAAIrB,EAAA,CACFW,OAAQQ,KAAiBV,GAAAA,UAAAA,EAAAA,EAAYE,QACrCoB,UAAW,wBAAqBpF,EAC7BgB,EAAWyD,SAAXzE,UAAAA,EAAAA,EAAmB0E,QAG1BlE,UAAW4D,EACXP,KAAM/D,EAAM+D,KAAKL,gBAETjD,IAAY,WAAaA,EAAQe,EAAM,CAAEc,QAAAA,IAAa7B,MAItE,ECxMO,IAAM8E,EAAgB,SAAhBA,EAAiBvF,GAC5B,IAAMU,EAAY6D,EAAW,qBAAsBvE,EAAMU,WACzD,OACE2C,EAACtD,EAAWwD,EAAA,CACVxC,OAAO,KACPC,KAAM,KACNqD,MAAO,IACPvD,WAAW,KACXiE,aAAc,MACV/E,EAAK,CACTU,UAAWA,IAGjB,ECUO,IAAM8E,EAAc,SAAdA,EAAexF,GAC1B,OACEqD,EAACkC,EAAahC,EAAA,CACZxC,OAAO,KACPH,aAAc,KACdmE,aAAc,OACV/E,EAAK,CACTK,KAAM,SAAAA,EAACoF,EAAO/C,GACZ,OAAO1C,EAAMwD,SAAO,UAAA,EAAbxD,EAAMwD,QAAUd,EACzB,IAGN,ECtCO,IAAA/C,EAAgDC,IAAzC8F,EAAwB/F,EAAA,GAAEG,EAAWH,EAAA,uLCsC5C,IAAMgG,EAAe,SAAfA,EAAgB3F,GAC3B,IACEK,EAcEL,EAdFK,KACAC,EAaEN,EAbFM,SACAG,EAYET,EAZFS,QACAM,EAWEf,EAXFe,OACAD,EAUEd,EAVFc,WACA8E,EASE5F,EATF4F,mBACAC,EAQE7F,EARF6F,uBAAsBC,EAQpB9F,EAPF+F,gBAAAA,EAAeD,SAAG,EAAA,SAAQA,EAC1BE,EAMEhG,EANFgG,cACA3B,EAKErE,EALFqE,MACA1D,EAIEX,EAJFW,SACAC,EAGEZ,EAHFY,aACAqF,EAEEjG,EAFFiG,MACG/E,EAAUC,EACXnB,EAAKoB,GACT,IAAAC,EAAeC,EAAKC,UAAbC,EAAIH,EAAA,GACX,IAAMU,EAAaC,EAASC,sBAAwB,GACpD,IAAAC,EAA8CC,EAAuB,IAA9DC,EAAeF,EAAA,GAAEG,EAAkBH,EAAA,GAE1C,IAAMI,EAAUC,EAAMC,gBAAe,SAACE,GACpC1C,EAAMsC,SAANtC,UAAAA,EAAAA,EAAMsC,QAAUI,EAClB,IAEA,IAAMD,EAAiBF,EAAMC,gBAAe,SAACE,GAC3C,GAAIpC,EAAU,CACZ,IAAMqC,EAAWrC,EAASkB,EAAMkB,GAChC,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKP,EACvB,CACF,CACAA,EAAQI,GACR,OAAOI,QAAQC,SACjB,IAEA,IAAMC,EAAaT,EAAMC,gBAAe,SAACE,GACvC,GAAIrC,EAAM,CACR,IAAMsC,EAAWtC,EAAKmB,EAAMkB,GAC5B,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKP,EACvB,CACF,CACAA,EAAQI,GACR,OAAOI,QAAQC,SACjB,IA2BA,IAAMmD,EAAmBlE,EAASkB,eAAc,WAC9C,GAAI8C,EAAe,CACjB,OAAOA,EAAcxE,EAAMY,EAC7B,CAEA,IAAM+D,EAAcxF,IAAYiF,GAAAA,UAAAA,EAAAA,EAAoBnC,QACpD,IAAM2C,EAAkBzF,IAAYiF,GAAAA,UAAAA,EAAAA,EAAoBnC,QAExD,IAAML,EACJ4B,EAACqB,EAAK,CAAA3C,SAAA,CACH0C,EAAkB,KACjB/C,EAACC,EAAaC,EAAA,CAAA,EAAKsC,EAAsB,CAAErC,QAASf,EAAeiB,SAChE5C,GAAc,QAGlBqF,EAAc,KACb9C,EAACC,EAAaC,EAAA,CAACK,KAAK,WAAcgC,EAAkB,CAAEpC,QAASR,EAAWU,SACvE3C,GAAU,WAKnB,IAAKJ,IAAaC,EAAc,CAC9B,OAAOwC,CACT,CACA,OAAO,IACR,GAAE,CAAChB,EAAiBpC,EAAM+D,OAE3B,IAAMC,EAAaC,GAAQ,WACzB,IAAKlC,EAAY,OAAO8B,UACxB,GAAI,CAAC,KAAM,MAAMO,SAASrC,GAAa,CACrC,MAAO,CACLsC,MAAO,MACPiC,SAAU,MAEd,CACA,GAAIjC,EAAO,CACT,MAAO,CAAEA,MAAOA,EAAOiC,SAAU,qBACnC,CACA,MAAO,CAAEjC,MAAO,MAAOiC,SAAU,qBACnC,GAAG,CAACvE,EAAYsC,IAEhB,IAAMkC,SAAqBN,IAAU,WAAaA,EAAMzE,GAAQyE,EAEhE,IAAMzB,EAAiB,SAAjBA,EAAkBC,GACtBpC,EAAmBoC,IAGrB,OACEpB,EAACvD,EAAW,CAAC+E,MAAO,CAAEL,eAAAA,GAAiBd,SACrCL,EAACmD,EAAMjD,EAAA,CACLwB,aAAc,KACdM,eAAc,KAEdoB,oBAAqB,CAAEH,SAAUtC,GAAAA,UAAAA,EAAAA,EAAYsC,UAC7CzF,OAAQkF,IAAoB,SAAWG,EAAmB,MACtDhF,EAAU,CACdmD,MAAOL,GAAAA,UAAAA,EAAAA,EAAYK,MACnBM,OAAMpB,EAAA,GACDrC,EAAWyD,QAMhBjE,UAAW6D,EAAW,oBAAqBrD,EAAWR,WACtDuF,MAAOF,IAAoB,SAAWG,EAAmBK,EACzDxC,KAAM/D,EAAM+D,KACZzB,QAASA,EAAQoB,gBAETjD,IAAY,WAAaA,EAAQe,EAAM,CAAEc,QAAAA,IAAa7B,MAItE,EC/KO,IAAMiG,EAAgB,SAAhBA,EAAiB1G,GAC5B,IAAQU,EAA6BV,EAA7BU,UAAWiG,EAAkB3G,EAAlB2G,QAASC,EAAS5G,EAAT4G,KAC5B,IAAAC,EAAkBC,EAAMC,WAAhBC,EAAKH,EAALG,MACR,IAAMC,EAAeD,EAAMC,aAE3B,OACE5D,EAACyB,EAAK,CACJC,aAAc,MACdK,SAAU,KACVC,eAAc,KACd3E,UAAW6D,EAAW,qBAAsB7D,GAC5CqD,KAAM/D,EAAM+D,KACZlD,OAAQ,KACRqG,SAAU,MACVC,MAAO,CAAE,sBAAuBF,GAChCL,KAAMA,EAAKlD,SAEXL,EAAC+D,EAAW,CAAC1G,UAAW6D,EAAW,8BAA8Bb,SAC/DsB,EAAA,MAAA,CAAKtE,UAAU,iBAAgBgD,UAC7BL,EAAA,MAAA,CAAK3C,UAAU,iBACf2C,EAAA,MAAA,CAAK3C,UAAU,cAAagD,SAAEiD,GAAW,cAKnD,ECtBO,IAAMU,EAAkB,SAAlBA,IACX,IAAMC,EAAMC,EAAW9H,GAEvB,IAAM6C,EAAU,SAAVA,IACJgF,EAAIE,mBAAiB,UAAA,EAArBF,EAAIE,qBAGN,MAAO,CACLC,gBAAiB,CACf1D,KAAM,SAAAA,EAACU,GACL6C,EAAII,kBAAJJ,UAAAA,EAAAA,EAAII,iBAAgBnE,EAAA,CAAA,EAAQkB,EAAI,CAAEV,KAAM,QACxC,MAAO,CAAEzB,QAAAA,EACV,EACDqF,MAAOrF,EAMPsF,mBAAoB,SAAAA,IAClB,IAAMN,EAAM5B,IACZ,MAAO,CAELlB,eAAgB,SAAAA,EAACC,GACf6C,EAAI9C,eAAeC,EACrB,EAEJ,GAGN,EAKO,IAAMoD,EAAmB,SAAnBA,IACX,IAAMP,EAAMC,EAAW9H,GAEvB,IAAM6C,EAAU,SAAVA,IACJgF,EAAIQ,oBAAkB,UAAA,EAAtBR,EAAIQ,sBAGN,MAAO,CACLC,iBAAkB,CAChBhE,KAAM,SAAAA,EAACU,GACL6C,EAAIU,mBAAJV,UAAAA,EAAAA,EAAIU,kBAAiBzE,EAAA,CAAA,EAAQkB,EAAI,CAAEV,KAAM,QACzC,MAAO,CAAEzB,QAAAA,EACV,EACDqF,MAAOrF,EAMPsF,mBAAoB,SAAAA,IAClB,IAAMN,EAAM5B,IACZ,MAAO,CAELlB,eAAgB,SAAAA,EAACC,GACf6C,EAAI9C,eAAeC,EACrB,EAEJ,GAGN,EAQO,IAAMwD,EAAiB,SAAjBA,IACX,IAAMX,EAAMC,EAAW9H,GAEvB,IAAM6C,EAAU,SAAVA,IACJgF,EAAIY,kBAAgB,UAAA,EAApBZ,EAAIY,oBAGN,MAAO,CACLC,eAAgB,CACdpE,KAAM,SAAAA,EAACU,GACL6C,EAAIc,iBAAJd,UAAAA,EAAAA,EAAIc,gBAAe7E,EAAA,CAAA,EAAQkB,EAAI,CAAEV,KAAM,QACvC,MAAO,CAAEzB,QAAAA,EACV,EACDqF,MAAOrF,EAIP+F,kBAAmB,SAAAA,IACjB,IAAMf,EAAMzH,IACZ,MAAO,CAEL2E,eAAgB,SAAAA,EAACC,GACf6C,EAAI9C,eAAeC,EACrB,EAEJ,GAGN,EAQO,IAAM6D,EAAkB,SAAlBA,IACX,IAAMhB,EAAMC,EAAW9H,GAEvB,IAAM6C,EAAU,SAAVA,IACJgF,EAAIiB,mBAAiB,UAAA,EAArBjB,EAAIiB,qBAGN,MAAO,CACLC,gBAAiB,CACfzE,KAAM,SAAAA,EAACU,GACL6C,EAAImB,kBAAJnB,UAAAA,EAAAA,EAAImB,iBAAgBlF,EAAA,CAAA,EAAQkB,EAAI,CAAEV,KAAM,QACxC,MAAO,CAAEzB,QAAAA,EACV,EACDqF,MAAOrF,EAIP+F,kBAAmB,SAAAA,IACjB,IAAMf,EAAMzH,IACZ,MAAO,CAEL2E,eAAgB,SAAAA,EAACC,GACf6C,EAAI9C,eAAeC,EACrB,EAEJ,GAGN,EAMO,IAAMiE,EAAiB,SAAjBA,IACX,IAAMpB,EAAMC,EAAW9H,GAEvB,IAAM6C,EAAU,SAAVA,IACJgF,EAAIqB,kBAAgB,UAAA,EAApBrB,EAAIqB,oBAGN,MAAO,CACLC,eAAgB,CACd7E,KAAM,SAAAA,EAACU,GACL6C,EAAIuB,iBAAJvB,UAAAA,EAAAA,EAAIuB,gBAAetF,EAAA,CAAA,EAAQkB,EAAI,CAAEV,KAAM,QACvC,MAAO,CAAEzB,QAAAA,EACV,EACDqF,MAAOrF,GAGb,EAKO,IAAMwG,EAAmB,SAAnBA,IACX,IAAMxB,EAAMC,EAAW9H,GAEvB,IAAM6C,EAAU,SAAVA,IACJgF,EAAIyB,oBAAkB,UAAA,EAAtBzB,EAAIyB,sBAGN,MAAO,CACLC,iBAAkB,CAChBjF,KAAM,SAAAA,EAACU,GACL6C,EAAI2B,mBAAJ3B,UAAAA,EAAAA,EAAI2B,kBAAiB1F,EAAA,CAAA,EAAQkB,EAAI,CAAEV,KAAM,QACzC,MAAO,CAAEzB,QAAAA,EACV,EACDqF,MAAOrF,GAGb,EAKO,IAAM4G,EAAmB,SAAnBA,IACX,IAAM5B,EAAMC,EAAW9H,GAEvB,IAAM6C,EAAU,SAAVA,IACJgF,EAAI6B,oBAAkB,UAAA,EAAtB7B,EAAI6B,sBAGN,MAAO,CACLC,iBAAkB,CAChBrF,KAAM,SAAAA,EAACU,GACL6C,EAAI+B,mBAAJ/B,UAAAA,EAAAA,EAAI+B,kBAAiB9F,EAAA,CAAA,EAAQkB,EAAI,CAAEV,KAAM,QACzC,MAAO,CAAEzB,QAAAA,EACV,EACDqF,MAAOrF,GAGb,EAEO,IAAMgH,EAAS,SAATA,EAAUtJ,GACrB,IAAAkC,EAAsCC,EAA4B,IAA3DoH,EAAWrH,EAAA,GAAEsH,EAActH,EAAA,GAClC,IAAAuH,EAAkCtH,EAASuH,KAApCC,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAE9B,IAAAI,EAAwC1H,EAA4B,IAA7D2H,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpC,IAAAG,EAAoC7H,EAASuH,KAAtCO,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAEhC,IAAAG,EAAoChI,EAA2B,IAAxDiI,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChC,IAAAG,EAAgCnI,EAASuH,KAAlCa,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAE5B,IAAAG,EAAsCtI,EAA2B,IAA1DuI,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAClC,IAAAG,EAAkCzI,EAASuH,KAApCmB,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAE9B,IAAAG,EAAoC5I,EAA2B,IAAxD6I,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChC,IAAAG,EAAwC/I,EAA6B,IAA9DgJ,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpC,IAAAG,EAAwClJ,IAAjCmJ,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAEpC,IAAAG,EAAgCrJ,EAASuH,KAAlC+B,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5B,IAAAG,EAAoCxJ,EAASuH,KAAtCkC,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChC,IAAAG,EAAoC3J,EAASuH,KAAtCqC,GAAUD,EAAA,GAAEE,GAAaF,EAAA,GAEhC,IAAMpE,GAAyDnF,EAAMC,gBAAe,SAACiC,GACnF+E,EAAe/E,EACjB,IACA,IAAM+C,GAAoBjF,EAAMC,gBAAe,SAACE,GAC9C8G,EAAcjG,EAAA,CAAA,EAAMgG,EAAW,CAAExF,KAAM,SACvCwF,EAAYjH,SAAZiH,UAAAA,EAAAA,EAAYjH,QAAUI,GACtBuJ,YAAW,WACTrC,EAAaF,IACd,GAAE,IACL,IAEA,IAAM1B,GAA2DzF,EAAMC,gBAAe,SAACiC,GACrFsF,EAAgBtF,EAClB,IAEA,IAAMqD,GAAqBvF,EAAMC,gBAAe,SAACE,GAC/CqH,EAAexG,EAAA,CAAA,EAAMuG,EAAY,CAAE/F,KAAM,SACzC+F,EAAaxH,SAAbwH,UAAAA,EAAAA,EAAaxH,QAAUI,GACvBuJ,YAAW,WACT/B,EAAcR,IACf,GAAE,IACL,IAEA,IAAMtB,GAAuD7F,EAAMC,gBAAe,SAACiC,GACjF4F,EAAc5F,EAChB,IAEA,IAAMyD,GAAmB3F,EAAMC,gBAAe,WAC5C6H,EAAa9G,EAAA,CAAA,EAAM6G,EAAU,CAAErG,KAAM,SACrCqG,EAAW9H,SAAO,UAAA,EAAlB8H,EAAW9H,UACX2J,YAAW,WACTzB,EAAYd,IACb,GAAE,IACL,IAEA,IAAMjB,GAAyDlG,EAAMC,gBAAe,SAACiC,GACnFkG,EAAelG,EACjB,IAEA,IAAM8D,GAAoBhG,EAAMC,gBAAe,WAC7CmI,EAAcpH,EAAA,CAAA,EAAMmH,EAAW,CAAE3G,KAAM,SACvC2G,EAAYpI,SAAO,UAAA,EAAnBoI,EAAYpI,UACZ2J,YAAW,WACTnB,EAAapB,IACd,GAAE,IACL,IAEA,IAAMb,GAAuDtG,EAAMC,gBAAe,SAACiC,GACjFwG,EAAcxG,EAChB,IAEA,IAAMkE,GAAmBpG,EAAMC,gBAAe,WAC5CyI,EAAa1H,EAAA,CAAA,EAAMyH,EAAU,CAAEjH,KAAM,SACrCiH,EAAW1I,SAAO,UAAA,EAAlB0I,EAAW1I,UACX2J,YAAW,WACTP,EAAYhC,IACb,GAAE,IACL,IAEA,IAAMT,GAA2D1G,EAAMC,gBAAe,SAACiC,GACrF2G,EAAgB3G,EAClB,IAEA,IAAMsE,GAAqBxG,EAAMC,gBAAe,WAC9C4I,EAAe7H,EAAA,CAAA,EAAM4H,EAAY,CAAEpH,KAAM,SACzCoH,EAAa7I,SAAO,UAAA,EAApB6I,EAAa7I,UACb2J,YAAW,WACTJ,EAAcnC,IACf,GAAE,IACL,IAEA,IAAML,GAA2D9G,EAAMC,gBAAe,SAACiC,GACrF8G,EAAgB9G,EAClB,IAEA,IAAM0E,GAAqB5G,EAAMC,gBAAe,WAC9C+I,EAAehI,EAAA,CAAA,EAAM+H,EAAY,CAAEvH,KAAM,SACzCkI,YAAW,WACTD,GAActC,IACf,GAAE,IACL,IAEA,OACE1E,EAACvF,EAAcyM,SAAQ,CACrBrH,MAAO,CACL6C,iBAAAA,GACAF,kBAAAA,GACAQ,kBAAAA,GACAF,mBAAAA,GACAM,gBAAAA,GACAF,iBAAAA,GACAO,iBAAAA,GACAF,kBAAAA,GACAM,gBAAAA,GACAF,iBAAAA,GACAM,kBAAAA,GACAF,mBAAAA,GACAM,kBAAAA,GACAF,mBAAAA,IACAzF,UAEFyI,EAACxG,EAAYpC,KAAKgG,EAAW,CAAEjH,QAASkF,GAAmB4E,IAAKzC,KAChEwC,EAACxG,EAAYpC,KAAKuG,EAAY,CAAExH,QAASwF,GAAoBsE,IAAKnC,KAClEkC,EAACpM,EAAWwD,KAAK6G,EAAU,CAAE9H,QAAS4F,GAAkBkE,IAAK7B,KAC7D4B,EAACpM,EAAWwD,KAAKmH,EAAW,CAAEpI,QAASiG,GAAmB6D,IAAKvB,KAC/DsB,EAAC3G,EAAWjC,KAAKyH,EAAU,CAAE1I,QAASqG,GAAkByD,IAAKX,KAC7DU,EAAC5G,EAAahC,KAAK4H,EAAY,CAAE7I,QAASyG,GAAoBqD,IAAKR,KACnEO,EAACzF,EAAanD,KAAK+H,EAAY,CAAEc,IAAKL,MACrC/L,EAAM0D,WAGb,EClVO,IAAM4F,EAAS+C,EAASC,4BAA4BC,EAAa,CAEtElF,gBAAAA,EACAQ,iBAAAA,EAEAI,eAAAA,EACAK,gBAAAA,EAEAQ,iBAAAA,EAEAJ,eAAAA,EAEAQ,iBAAAA"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{isArray as r}from"@dimjs/lang/cjs/is-array";import{getGlobalData as e,getUuid as a}from"@flatbiz/utils";var n=function a(){var n=e(),t=n.elemAclLimits;var i=r(t)?t:[];return i};var t=function r(e){if(!e)return true;var a=n();if(a.includes(e)){return true}return false};function i(r,e){var a=r;for(var n in e){if(e.hasOwnProperty(n)){a[n]=e[n]}}return a}var o=function r(){return a()};var u=function r(e,a){var n=e.getInternalHooks("RC_FORM_INTERNAL_HOOKS").dispatch;a.forEach((function(r){n({type:"updateValue",namePath:r.name,value:r.value})}))};var s=function r(e,a){var n=a.map((function(r){return{name:r.name,value:r.value}}));e.setFields(n);u(e,n)};var l={hasPermission:t,getPermissionList:n,attachPropertiesToComponent:i,getModelKey:o,triggerFormValuesChange:u,setFormFieldsAndTriggerValuesChange:s};export{l as fbaUtils};
4
+ import{isArray as e}from"@dimjs/lang/cjs/is-array";import{cloneState as r}from"@dimjs/model";import{getGlobalData as n,getUuid as a}from"@flatbiz/utils";var t=function r(){var a=n(),t=a.elemAclLimits;var i=e(t)?t:[];return i};var i=function e(r){if(!r)return true;var n=t();if(n.includes(r)){return true}return false};function o(e,r){var n=e;for(var a in r){if(r.hasOwnProperty(a)){n[a]=r[a]}}return n}var u=function e(){return a()};var s=function e(r,n){var a=r.getInternalHooks("RC_FORM_INTERNAL_HOOKS").dispatch;n.forEach((function(e){a({type:"updateValue",namePath:e.name,value:e.value})}))};var l=function e(r,n){var a=n.map((function(e){return{name:e.name,value:e.value}}));r.setFields(a);s(r,a)};var f=function e(n){if(!n)return undefined;var a=r(n);Object.keys(a).forEach((function(e){if(e.includes("__#invalid_")){delete a[e]}}));return a};var m={hasPermission:i,getPermissionList:t,attachPropertiesToComponent:o,getModelKey:u,triggerFormValuesChange:s,setFormFieldsAndTriggerValuesChange:l,removeFormValuesInvalidField:f};export{m as fbaUtils};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-utils/fba-utils.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { getGlobalData, getUuid, TAny } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\n\nconst getPermissionList = () => {\n const { elemAclLimits } = getGlobalData<{ elemAclLimits: string[] }>();\n const permissionList: string[] = isArray(elemAclLimits) ? elemAclLimits : [];\n return permissionList;\n};\n\nconst hasPermission = (name?: string) => {\n if (!name) return true;\n const permissionList = getPermissionList();\n if (permissionList.includes(name)) {\n return true;\n }\n return false;\n};\n\nfunction attachPropertiesToComponent<C, P extends Record<string, unknown>>(\n component: C,\n properties: P,\n): C & P {\n const ret = component as Record<string, unknown>;\n for (const key in properties) {\n if (properties.hasOwnProperty(key)) {\n ret[key] = properties[key];\n }\n }\n return ret as C & P;\n}\n\nconst getModelKey = () => {\n return getUuid();\n};\n\nconst triggerFormValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const formDispatch = (form as TAny).getInternalHooks('RC_FORM_INTERNAL_HOOKS').dispatch;\n changeList.forEach((item) => {\n formDispatch({\n type: 'updateValue',\n namePath: item.name,\n value: item.value,\n });\n });\n};\n\nconst setFormFieldsAndTriggerValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const paramList = changeList.map((item) => {\n return {\n name: item.name,\n value: item.value,\n };\n });\n\n form.setFields(paramList);\n\n triggerFormValuesChange(form, paramList);\n};\n\nexport const fbaUtils = {\n hasPermission,\n getPermissionList,\n attachPropertiesToComponent,\n getModelKey,\n /**\n * 手动触发Antd Form 的 onValuesChange\n * ```\n * 1. 正常在通过 form.setFieldsValue 不会触发onValuesChange\n * 2. 需要触发可调用此方法\n * ```\n */\n triggerFormValuesChange,\n /**\n * 操作Antd Form\n * ```\n * 1. 通过 form.setFields 修改属性值\n * 2. 触发 Form 的 onValuesChange\n * ```\n */\n setFormFieldsAndTriggerValuesChange: setFormFieldsAndTriggerValuesChange,\n};\n"],"names":["getPermissionList","_getGlobalData","getGlobalData","elemAclLimits","permissionList","_isArray","hasPermission","name","includes","attachPropertiesToComponent","component","properties","ret","key","hasOwnProperty","getModelKey","getUuid","triggerFormValuesChange","form","changeList","formDispatch","getInternalHooks","dispatch","forEach","item","type","namePath","value","setFormFieldsAndTriggerValuesChange","paramList","map","setFields","fbaUtils"],"mappings":";+GAIA,IAAMA,EAAoB,SAApBA,IACJ,IAAAC,EAA0BC,IAAlBC,EAAaF,EAAbE,cACR,IAAMC,EAA2BC,EAAQF,GAAiBA,EAAgB,GAC1E,OAAOC,CACT,EAEA,IAAME,EAAgB,SAAhBA,EAAiBC,GACrB,IAAKA,EAAM,OAAO,KAClB,IAAMH,EAAiBJ,IACvB,GAAII,EAAeI,SAASD,GAAO,CACjC,OAAO,IACT,CACA,OAAO,KACT,EAEA,SAASE,EACPC,EACAC,GAEA,IAAMC,EAAMF,EACZ,IAAK,IAAMG,KAAOF,EAAY,CAC5B,GAAIA,EAAWG,eAAeD,GAAM,CAClCD,EAAIC,GAAOF,EAAWE,EACxB,CACF,CACA,OAAOD,CACT,CAEA,IAAMG,EAAc,SAAdA,IACJ,OAAOC,GACT,EAEA,IAAMC,EAA0B,SAA1BA,EACJC,EACAC,GAEA,IAAMC,EAAgBF,EAAcG,iBAAiB,0BAA0BC,SAC/EH,EAAWI,SAAQ,SAACC,GAClBJ,EAAa,CACXK,KAAM,cACNC,SAAUF,EAAKjB,KACfoB,MAAOH,EAAKG,OAEhB,GACF,EAEA,IAAMC,EAAsC,SAAtCA,EACJV,EACAC,GAEA,IAAMU,EAAYV,EAAWW,KAAI,SAACN,GAChC,MAAO,CACLjB,KAAMiB,EAAKjB,KACXoB,MAAOH,EAAKG,MAEhB,IAEAT,EAAKa,UAAUF,GAEfZ,EAAwBC,EAAMW,EAChC,EAEO,IAAMG,EAAW,CACtB1B,cAAAA,EACAN,kBAAAA,EACAS,4BAAAA,EACAM,YAAAA,EAQAE,wBAAAA,EAQAW,oCAAqCA"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-utils/fba-utils.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { getGlobalData, getUuid, TAny, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\n\nconst getPermissionList = () => {\n const { elemAclLimits } = getGlobalData<{ elemAclLimits: string[] }>();\n const permissionList: string[] = isArray(elemAclLimits) ? elemAclLimits : [];\n return permissionList;\n};\n\nconst hasPermission = (name?: string) => {\n if (!name) return true;\n const permissionList = getPermissionList();\n if (permissionList.includes(name)) {\n return true;\n }\n return false;\n};\n\nfunction attachPropertiesToComponent<C, P extends Record<string, unknown>>(\n component: C,\n properties: P,\n): C & P {\n const ret = component as Record<string, unknown>;\n for (const key in properties) {\n if (properties.hasOwnProperty(key)) {\n ret[key] = properties[key];\n }\n }\n return ret as C & P;\n}\n\nconst getModelKey = () => {\n return getUuid();\n};\n\nconst triggerFormValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const formDispatch = (form as TAny).getInternalHooks('RC_FORM_INTERNAL_HOOKS').dispatch;\n changeList.forEach((item) => {\n formDispatch({\n type: 'updateValue',\n namePath: item.name,\n value: item.value,\n });\n });\n};\n\nconst setFormFieldsAndTriggerValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const paramList = changeList.map((item) => {\n return {\n name: item.name,\n value: item.value,\n };\n });\n\n form.setFields(paramList);\n\n triggerFormValuesChange(form, paramList);\n};\n\nconst removeFormValuesInvalidField = (params?: TPlainObject) => {\n if (!params) return undefined;\n const paramsNew = cloneState(params);\n Object.keys(paramsNew).forEach((key) => {\n if (key.includes('__#invalid_')) {\n delete paramsNew[key];\n }\n });\n return paramsNew as TPlainObject;\n};\n\nexport const fbaUtils = {\n hasPermission,\n getPermissionList,\n attachPropertiesToComponent,\n getModelKey,\n /**\n * 手动触发Antd Form 的 onValuesChange\n * ```\n * 1. 正常在通过 form.setFieldsValue 不会触发onValuesChange\n * 2. 需要触发可调用此方法\n * ```\n */\n triggerFormValuesChange,\n /**\n * 操作Antd Form\n * ```\n * 1. 通过 form.setFields 修改属性值\n * 2. 触发 Form 的 onValuesChange\n * ```\n */\n setFormFieldsAndTriggerValuesChange: setFormFieldsAndTriggerValuesChange,\n /**\n * 移除Form Values中无效字段\n * ```\n * 1. 在使用 DateRangePickerWrapperFormItem、TimeRangePickerWrapperFormItem 会产生 `__#invalid_xxxx` 无效字段\n * ```\n */\n removeFormValuesInvalidField: removeFormValuesInvalidField,\n};\n"],"names":["getPermissionList","_getGlobalData","getGlobalData","elemAclLimits","permissionList","_isArray","hasPermission","name","includes","attachPropertiesToComponent","component","properties","ret","key","hasOwnProperty","getModelKey","getUuid","triggerFormValuesChange","form","changeList","formDispatch","getInternalHooks","dispatch","forEach","item","type","namePath","value","setFormFieldsAndTriggerValuesChange","paramList","map","setFields","removeFormValuesInvalidField","params","undefined","paramsNew","cloneState","Object","keys","fbaUtils"],"mappings":";yJAKA,IAAMA,EAAoB,SAApBA,IACJ,IAAAC,EAA0BC,IAAlBC,EAAaF,EAAbE,cACR,IAAMC,EAA2BC,EAAQF,GAAiBA,EAAgB,GAC1E,OAAOC,CACT,EAEA,IAAME,EAAgB,SAAhBA,EAAiBC,GACrB,IAAKA,EAAM,OAAO,KAClB,IAAMH,EAAiBJ,IACvB,GAAII,EAAeI,SAASD,GAAO,CACjC,OAAO,IACT,CACA,OAAO,KACT,EAEA,SAASE,EACPC,EACAC,GAEA,IAAMC,EAAMF,EACZ,IAAK,IAAMG,KAAOF,EAAY,CAC5B,GAAIA,EAAWG,eAAeD,GAAM,CAClCD,EAAIC,GAAOF,EAAWE,EACxB,CACF,CACA,OAAOD,CACT,CAEA,IAAMG,EAAc,SAAdA,IACJ,OAAOC,GACT,EAEA,IAAMC,EAA0B,SAA1BA,EACJC,EACAC,GAEA,IAAMC,EAAgBF,EAAcG,iBAAiB,0BAA0BC,SAC/EH,EAAWI,SAAQ,SAACC,GAClBJ,EAAa,CACXK,KAAM,cACNC,SAAUF,EAAKjB,KACfoB,MAAOH,EAAKG,OAEhB,GACF,EAEA,IAAMC,EAAsC,SAAtCA,EACJV,EACAC,GAEA,IAAMU,EAAYV,EAAWW,KAAI,SAACN,GAChC,MAAO,CACLjB,KAAMiB,EAAKjB,KACXoB,MAAOH,EAAKG,MAEhB,IAEAT,EAAKa,UAAUF,GAEfZ,EAAwBC,EAAMW,EAChC,EAEA,IAAMG,EAA+B,SAA/BA,EAAgCC,GACpC,IAAKA,EAAQ,OAAOC,UACpB,IAAMC,EAAYC,EAAWH,GAC7BI,OAAOC,KAAKH,GAAWZ,SAAQ,SAACV,GAC9B,GAAIA,EAAIL,SAAS,eAAgB,QACxB2B,EAAUtB,EACnB,CACF,IACA,OAAOsB,CACT,EAEO,IAAMI,EAAW,CACtBjC,cAAAA,EACAN,kBAAAA,EACAS,4BAAAA,EACAM,YAAAA,EAQAE,wBAAAA,EAQAW,oCAAqCA,EAOrCI,6BAA8BA"}
@@ -2,5 +2,5 @@
2
2
  import './../pre-defined-class-name/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{a as e,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{composeProps as a}from"@flatbiz/utils";import{Form as l}from"antd";import{useMemo as i,isValidElement as t,cloneElement as n}from"react";import{preDefinedClassName as m}from"../pre-defined-class-name/index.js";import{jsx as o,jsxs as p}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";var s=["wrapper","children","inputNormalize"],u=["wrapper","isClear","labelWidth","labelItemVertical","labelAlign","children","before","after","inputNormalize","outputNormalize","className"];var f=function r(l){var i=l.wrapper,t=l.children,m=l.inputNormalize,u=e(l,s);var f=u.hasOwnProperty("value");if(f&&m){u["value"]=m(u["value"])}var c=n(t,a(t.props,u,true));if(i){return i(c)}if(l.before||l.after){return p("div",{style:{display:"flex",alignItems:"center"},children:[l.before?o("span",{style:{marginRight:10},children:l.before}):null,o("div",{style:{flex:1},children:c}),l.after?o("span",{style:{marginLeft:10},children:l.after}):null]})}return c};var c=function a(n){var p=n.wrapper,s=n.isClear,c=n.labelWidth,d=n.labelItemVertical,b=n.labelAlign,h=n.children,v=n.before,N=n.after,g=n.inputNormalize,z=n.outputNormalize,y=n.className,I=e(n,u);var w=i((function(){return m.getFormItemLayoutClassName({labelWidth:c,labelItemVertical:d,labelAlign:b,className:y})}),[c,d,b]);if(s)return null;return o(l.Item,r({normalize:z},I,{className:w,children:t(h)?o(f,{wrapper:p,before:v,after:N,inputNormalize:g,children:h}):h}))};c["domTypeName"]="FormItemWrapper";export{c as FormItemWrapper};
5
+ import{a as e,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{composeProps as a}from"@flatbiz/utils";import{Form as l}from"antd";import{useMemo as i,isValidElement as t,cloneElement as n}from"react";import{preDefinedClassName as m}from"../pre-defined-class-name/index.js";import{jsx as o,jsxs as p}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";var s=["wrapper","children","inputNormalize"],u=["wrapper","isClear","labelWidth","labelItemVertical","labelAlign","children","before","after","inputNormalize","outputNormalize","className"];var f=function r(l){var i=l.wrapper,t=l.children,m=l.inputNormalize,u=e(l,s);var f=u.hasOwnProperty("value");if(f&&m){u["value"]=m(u["value"])}var c=n(t,a(t.props,u,true));if(i){return i(c)}if(l.before||l.after){return p("div",{style:{display:"flex",alignItems:"center"},children:[l.before?o("span",{style:{marginRight:10},children:l.before}):null,o("div",{style:{flex:1},children:c}),l.after?o("span",{style:{marginLeft:10},children:l.after}):null]})}return c};var c=function a(n){var p=n.wrapper,s=n.isClear,c=n.labelWidth,d=n.labelItemVertical,b=n.labelAlign,h=n.children,v=n.before,N=n.after,g=n.inputNormalize,z=n.outputNormalize,y=n.className,I=e(n,u);var w=i((function(){return m.getFormItemLayoutClassName({labelWidth:c,labelItemVertical:d,labelAlign:b,className:y})}),[c,d,b,y]);if(s)return null;return o(l.Item,r({normalize:z},I,{className:w,children:t(h)?o(f,{wrapper:p,before:v,after:N,inputNormalize:g,children:h}):h}))};c["domTypeName"]="FormItemWrapper";export{c as FormItemWrapper};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-wrapper/form-item-wrapper.tsx"],"sourcesContent":["import { composeProps, TAny } from '@flatbiz/utils';\nimport { Form, FormItemProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormItemLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormItemWrapperProps = FormItemProps &\n TFormItemLayoutPreClassNameProps & {\n wrapper?: (children: ReactNode) => ReactElement;\n /** 设置wrapper后,before、after失效 */\n before?: ReactNode;\n /** 设置wrapper后,before、after失效 */\n after?: ReactNode;\n /** value 序列化处理 */\n inputNormalize?: (value?: TAny) => TAny;\n /**\n * onChange 参数序列化处理\n * 如果设置 normalize 属性,outputNormalize将失效\n */\n outputNormalize?: (value?: TAny) => TAny;\n /** 是否清除 Form.Item */\n isClear?: boolean;\n /**\n * 栅格占位格数,最大值:24\n * ```\n * 1. 当 FormItemWrapper 处在 EasyForm 直接子节点中有效,即FormItemWrapper在EasyForm栅格中的占位格数;\n * ```\n */\n span?: number;\n };\n\ntype FormItemWrapperChildrenProps = Pick<\n FormItemWrapperProps,\n 'wrapper' | 'after' | 'before' | 'inputNormalize'\n> & {\n children: ReactElement;\n};\n\nconst FormItemWrapperChildren = (props: FormItemWrapperChildrenProps) => {\n const { wrapper, children, inputNormalize, ...rest } = props;\n // composeProps 合并执行 Form.Item 传的 onChange 以及组件本身的方法\n const hasValue = rest.hasOwnProperty('value');\n if (hasValue && inputNormalize) {\n rest['value'] = inputNormalize(rest['value']);\n }\n const _children = cloneElement(children, composeProps(children.props, rest, true));\n if (wrapper) {\n return wrapper(_children);\n }\n if (props.before || props.after) {\n return (\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {props.before ? <span style={{ marginRight: 10 }}>{props.before}</span> : null}\n <div style={{ flex: 1 }}>{_children}</div>\n {props.after ? <span style={{ marginLeft: 10 }}>{props.after}</span> : null}\n </div>\n );\n }\n return _children;\n};\n\n/**\n * 对 Form.Item 包装处理\n * ```\n * 1. 为 children 增加 before、after\n * 2. 对输入、输出数据进行序列化处理\n * 3. 内置布局样式使用 preDefinedClassName.formItem\n * ```\n */\nexport const FormItemWrapper = (props: FormItemWrapperProps) => {\n const {\n wrapper,\n isClear,\n labelWidth,\n labelItemVertical,\n labelAlign,\n children,\n before,\n after,\n inputNormalize,\n outputNormalize,\n className,\n ...rest\n } = props;\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormItemLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign]);\n\n if (isClear) return null;\n\n return (\n <Form.Item normalize={outputNormalize} {...rest} className={innerClassName}>\n {isValidElement(children) ? (\n <FormItemWrapperChildren\n wrapper={wrapper}\n before={before}\n after={after}\n inputNormalize={inputNormalize}\n >\n {children}\n </FormItemWrapperChildren>\n ) : (\n children\n )}\n </Form.Item>\n );\n};\n\nFormItemWrapper['domTypeName'] = 'FormItemWrapper';\n"],"names":["FormItemWrapperChildren","props","wrapper","children","inputNormalize","rest","_objectWithoutPropertiesLoose","_excluded","hasValue","hasOwnProperty","_children","cloneElement","composeProps","before","after","_jsxs","style","display","alignItems","_jsx","marginRight","flex","marginLeft","FormItemWrapper","isClear","labelWidth","labelItemVertical","labelAlign","outputNormalize","className","_excluded2","innerClassName","useMemo","preDefinedClassName","getFormItemLayoutClassName","Form","Item","_extends","normalize","isValidElement"],"mappings":";mjBAsCA,IAAMA,EAA0B,SAA1BA,EAA2BC,GAC/B,IAAQC,EAA+CD,EAA/CC,QAASC,EAAsCF,EAAtCE,SAAUC,EAA4BH,EAA5BG,eAAmBC,EAAIC,EAAKL,EAAKM,GAE5D,IAAMC,EAAWH,EAAKI,eAAe,SACrC,GAAID,GAAYJ,EAAgB,CAC9BC,EAAK,SAAWD,EAAeC,EAAK,SACtC,CACA,IAAMK,EAAYC,EAAaR,EAAUS,EAAaT,EAASF,MAAOI,EAAM,OAC5E,GAAIH,EAAS,CACX,OAAOA,EAAQQ,EACjB,CACA,GAAIT,EAAMY,QAAUZ,EAAMa,MAAO,CAC/B,OACEC,EAAA,MAAA,CAAKC,MAAO,CAAEC,QAAS,OAAQC,WAAY,UAAWf,SACnDF,CAAAA,EAAMY,OAASM,EAAA,OAAA,CAAMH,MAAO,CAAEI,YAAa,IAAKjB,SAAEF,EAAMY,SAAiB,KAC1EM,EAAA,MAAA,CAAKH,MAAO,CAAEK,KAAM,GAAIlB,SAAEO,IACzBT,EAAMa,MAAQK,EAAA,OAAA,CAAMH,MAAO,CAAEM,WAAY,IAAKnB,SAAEF,EAAMa,QAAgB,OAG7E,CACA,OAAOJ,CACT,MAUaa,EAAkB,SAAlBA,EAAmBtB,GAC9B,IACEC,EAYED,EAZFC,QACAsB,EAWEvB,EAXFuB,QACAC,EAUExB,EAVFwB,WACAC,EASEzB,EATFyB,kBACAC,EAQE1B,EARF0B,WACAxB,EAOEF,EAPFE,SACAU,EAMEZ,EANFY,OACAC,EAKEb,EALFa,MACAV,EAIEH,EAJFG,eACAwB,EAGE3B,EAHF2B,gBACAC,EAEE5B,EAFF4B,UACGxB,EAAIC,EACLL,EAAK6B,GAET,IAAMC,EAAiBC,GAAQ,WAC7B,OAAOC,EAAoBC,2BAA2B,CACpDT,WAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAE,UAAAA,GAEH,GAAE,CAACJ,EAAYC,EAAmBC,IAEnC,GAAIH,EAAS,OAAO,KAEpB,OACEL,EAACgB,EAAKC,KAAIC,EAAA,CAACC,UAAWV,GAAqBvB,EAAI,CAAEwB,UAAWE,EAAe5B,SACxEoC,EAAepC,GACdgB,EAACnB,EAAuB,CACtBE,QAASA,EACTW,OAAQA,EACRC,MAAOA,EACPV,eAAgBA,EAAeD,SAE9BA,IAGHA,IAIR,EAEAoB,EAAgB,eAAiB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-wrapper/form-item-wrapper.tsx"],"sourcesContent":["import { composeProps, TAny } from '@flatbiz/utils';\nimport { Form, FormItemProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormItemLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormItemWrapperProps = FormItemProps &\n TFormItemLayoutPreClassNameProps & {\n wrapper?: (children: ReactNode) => ReactElement;\n /** 设置wrapper后,before、after失效 */\n before?: ReactNode;\n /** 设置wrapper后,before、after失效 */\n after?: ReactNode;\n /** value 序列化处理 */\n inputNormalize?: (value?: TAny) => TAny;\n /**\n * onChange 参数序列化处理\n * 如果设置 normalize 属性,outputNormalize将失效\n */\n outputNormalize?: (value?: TAny) => TAny;\n /** 是否清除 Form.Item */\n isClear?: boolean;\n /**\n * 栅格占位格数,最大值:24\n * ```\n * 1. 当 FormItemWrapper 处在 EasyForm 直接子节点中有效,即FormItemWrapper在EasyForm栅格中的占位格数;\n * ```\n */\n span?: number;\n };\n\ntype FormItemWrapperChildrenProps = Pick<\n FormItemWrapperProps,\n 'wrapper' | 'after' | 'before' | 'inputNormalize'\n> & {\n children: ReactElement;\n};\n\nconst FormItemWrapperChildren = (props: FormItemWrapperChildrenProps) => {\n const { wrapper, children, inputNormalize, ...rest } = props;\n // composeProps 合并执行 Form.Item 传的 onChange 以及组件本身的方法\n const hasValue = rest.hasOwnProperty('value');\n if (hasValue && inputNormalize) {\n rest['value'] = inputNormalize(rest['value']);\n }\n const _children = cloneElement(children, composeProps(children.props, rest, true));\n if (wrapper) {\n return wrapper(_children);\n }\n if (props.before || props.after) {\n return (\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {props.before ? <span style={{ marginRight: 10 }}>{props.before}</span> : null}\n <div style={{ flex: 1 }}>{_children}</div>\n {props.after ? <span style={{ marginLeft: 10 }}>{props.after}</span> : null}\n </div>\n );\n }\n return _children;\n};\n\n/**\n * 对 Form.Item 包装处理\n * ```\n * 1. 为 children 增加 before、after\n * 2. 对输入、输出数据进行序列化处理\n * 3. 内置布局样式使用 preDefinedClassName.formItem\n * ```\n */\nexport const FormItemWrapper = (props: FormItemWrapperProps) => {\n const {\n wrapper,\n isClear,\n labelWidth,\n labelItemVertical,\n labelAlign,\n children,\n before,\n after,\n inputNormalize,\n outputNormalize,\n className,\n ...rest\n } = props;\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormItemLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign, className]);\n\n if (isClear) return null;\n\n return (\n <Form.Item normalize={outputNormalize} {...rest} className={innerClassName}>\n {isValidElement(children) ? (\n <FormItemWrapperChildren\n wrapper={wrapper}\n before={before}\n after={after}\n inputNormalize={inputNormalize}\n >\n {children}\n </FormItemWrapperChildren>\n ) : (\n children\n )}\n </Form.Item>\n );\n};\n\nFormItemWrapper['domTypeName'] = 'FormItemWrapper';\n"],"names":["FormItemWrapperChildren","props","wrapper","children","inputNormalize","rest","_objectWithoutPropertiesLoose","_excluded","hasValue","hasOwnProperty","_children","cloneElement","composeProps","before","after","_jsxs","style","display","alignItems","_jsx","marginRight","flex","marginLeft","FormItemWrapper","isClear","labelWidth","labelItemVertical","labelAlign","outputNormalize","className","_excluded2","innerClassName","useMemo","preDefinedClassName","getFormItemLayoutClassName","Form","Item","_extends","normalize","isValidElement"],"mappings":";mjBAsCA,IAAMA,EAA0B,SAA1BA,EAA2BC,GAC/B,IAAQC,EAA+CD,EAA/CC,QAASC,EAAsCF,EAAtCE,SAAUC,EAA4BH,EAA5BG,eAAmBC,EAAIC,EAAKL,EAAKM,GAE5D,IAAMC,EAAWH,EAAKI,eAAe,SACrC,GAAID,GAAYJ,EAAgB,CAC9BC,EAAK,SAAWD,EAAeC,EAAK,SACtC,CACA,IAAMK,EAAYC,EAAaR,EAAUS,EAAaT,EAASF,MAAOI,EAAM,OAC5E,GAAIH,EAAS,CACX,OAAOA,EAAQQ,EACjB,CACA,GAAIT,EAAMY,QAAUZ,EAAMa,MAAO,CAC/B,OACEC,EAAA,MAAA,CAAKC,MAAO,CAAEC,QAAS,OAAQC,WAAY,UAAWf,SACnDF,CAAAA,EAAMY,OAASM,EAAA,OAAA,CAAMH,MAAO,CAAEI,YAAa,IAAKjB,SAAEF,EAAMY,SAAiB,KAC1EM,EAAA,MAAA,CAAKH,MAAO,CAAEK,KAAM,GAAIlB,SAAEO,IACzBT,EAAMa,MAAQK,EAAA,OAAA,CAAMH,MAAO,CAAEM,WAAY,IAAKnB,SAAEF,EAAMa,QAAgB,OAG7E,CACA,OAAOJ,CACT,MAUaa,EAAkB,SAAlBA,EAAmBtB,GAC9B,IACEC,EAYED,EAZFC,QACAsB,EAWEvB,EAXFuB,QACAC,EAUExB,EAVFwB,WACAC,EASEzB,EATFyB,kBACAC,EAQE1B,EARF0B,WACAxB,EAOEF,EAPFE,SACAU,EAMEZ,EANFY,OACAC,EAKEb,EALFa,MACAV,EAIEH,EAJFG,eACAwB,EAGE3B,EAHF2B,gBACAC,EAEE5B,EAFF4B,UACGxB,EAAIC,EACLL,EAAK6B,GAET,IAAMC,EAAiBC,GAAQ,WAC7B,OAAOC,EAAoBC,2BAA2B,CACpDT,WAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAE,UAAAA,GAEH,GAAE,CAACJ,EAAYC,EAAmBC,EAAYE,IAE/C,GAAIL,EAAS,OAAO,KAEpB,OACEL,EAACgB,EAAKC,KAAIC,EAAA,CAACC,UAAWV,GAAqBvB,EAAI,CAAEwB,UAAWE,EAAe5B,SACxEoC,EAAepC,GACdgB,EAACnB,EAAuB,CACtBE,QAASA,EACTW,OAAQA,EACRC,MAAOA,EACPV,eAAgBA,EAAeD,SAE9BA,IAGHA,IAIR,EAEAoB,EAAgB,eAAiB"}
@@ -9,5 +9,5 @@ import './../flex-layout/index.css';
9
9
  import './../text-symbol-wrapper/index.css';
10
10
  import './index.css';
11
11
  /*! @flatjs/forge MIT @flatbiz/antd */
12
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import{_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as r,getUuid as i}from"@flatbiz/utils";import{Form as n,Empty as o}from"antd";import{useRef as l,Fragment as a}from"react";import{ButtonWrapper as s}from"../button-wrapper/index.js";import{FormItemGroup as m}from"../form-item-group/index.js";import{TextSymbolWrapper as d}from"../text-symbol-wrapper/index.js";import{jsx as p,jsxs as u}from"react/jsx-runtime";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"../flex-layout/index.js";var c=function e(t){if(t.wrapper)return t.wrapper({children:t.children});return t.children};var f=function e(r){var i,n;return p(m.HorizontalUnion,t({},r.formListItemTitleHProps,{style:t({marginBottom:10},(i=r.formListItemTitleHProps)==null?void 0:i.style),groupConfigList:((n=r.formListItemTitleList)==null?void 0:n.map((function(e){if(e.required){return{width:e.width,mainItem:p("div",{style:{textAlign:"center"},children:p(d,{text:e.title,symbolType:"required"})})}}return{width:e.width,mainItem:p("div",{style:{textAlign:"center"},children:e.title})}})))||[]}))};var h=function m(d){var h=[].concat(d.prevCompleteName,r(d.name));var g=n.useFormInstance();var y=l([]);var j=d.uidFieldName||"uid";var v=n.useWatch(h,g);var x=d.itemGap?d.itemGap/2:8;return p("div",{className:e("form-list-wrapper",d.className),style:d.style,children:p(n.List,{name:d.name,rules:d.rules,children:function e(l,m,w){var L;var I=w.errors;y.current=l;return u("div",{style:{borderRadius:"6px",border:I!=null&&I.length?"1px solid #ff4d4f":"1px solid transparent"},children:[(L=d.formListItemTitleList)!=null&&L.length?p(f,{formListItemTitleList:d.formListItemTitleList,formListItemTitleHProps:d.formListItemTitleHorizontalUnionProps}):null,!d.hiddenEmptyRender&&!(v!=null&&v.length)?p(o,{image:o.PRESENTED_IMAGE_SIMPLE,style:{margin:"15px 0"}}):null,u(a,{children:[p(c,{wrapper:d.formListChildrenWrapper,children:p(a,{children:l.map((function(e,t){var i=[].concat(h,[e.name]);return p("div",{className:"form-list-item-content",style:{padding:x+"px 0 "+x+"px 0"},children:d.children({formListFieldData:e,operation:m,formStageCompleteName:i,prevCompleteName:h,index:t,getInsideFormItemName:function t(i){var n=r(i);return[e.name].concat(n)},getInsideFormItemData:function e(){return g.getFieldValue(i)},uidKey:j})},e.key)}))})}),d.onCustomAddRowButton?d.onCustomAddRowButton(m):p(s,{hidden:d.hiddenAddRowButton,type:"dashed",block:true,onClick:function e(){var r;return m.add(t((r={},r[j]=i(),r),d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues()))},children:"添加"}),p(n.ErrorList,{errors:I!=null&&I.length?[p("div",{style:{color:"#ff4d4f",padding:"5px"},children:I},"0")]:undefined})]})]})}})})};export{h as FormListWrapper};
12
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import{_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as r,getUuid as i}from"@flatbiz/utils";import{Form as o,Empty as n}from"antd";import{useRef as l,Fragment as a}from"react";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{FormItemGroup as s}from"../form-item-group/index.js";import{TextSymbolWrapper as d}from"../text-symbol-wrapper/index.js";import{jsx as p,jsxs as u}from"react/jsx-runtime";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"@dimjs/model";import"../flex-layout/index.js";var c=function e(t){if(t.wrapper)return t.wrapper({children:t.children});return t.children};var f=function e(r){var i,o;return p(s.HorizontalUnion,t({},r.formListItemTitleHProps,{style:t({marginBottom:10},(i=r.formListItemTitleHProps)==null?void 0:i.style),groupConfigList:((o=r.formListItemTitleList)==null?void 0:o.map((function(e){if(e.required){return{width:e.width,mainItem:p("div",{style:{textAlign:"center"},children:p(d,{text:e.title,symbolType:"required"})})}}return{width:e.width,mainItem:p("div",{style:{textAlign:"center"},children:e.title})}})))||[]}))};var h=function s(d){var h=[].concat(d.prevCompleteName,r(d.name));var g=o.useFormInstance();var j=l([]);var y=d.uidFieldName||"uid";var v=o.useWatch(h,g);var x=d.itemGap?d.itemGap/2:8;return p("div",{className:e("form-list-wrapper",d.className),style:d.style,children:p(o.List,{name:d.name,rules:d.rules,children:function e(l,s,w){var L;var I=w.errors;j.current=l;return u("div",{style:{borderRadius:"6px",border:I!=null&&I.length?"1px solid #ff4d4f":"1px solid transparent"},children:[(L=d.formListItemTitleList)!=null&&L.length?p(f,{formListItemTitleList:d.formListItemTitleList,formListItemTitleHProps:d.formListItemTitleHorizontalUnionProps}):null,!d.hiddenEmptyRender&&!(v!=null&&v.length)?p(n,{image:n.PRESENTED_IMAGE_SIMPLE,style:{margin:"15px 0"}}):null,u(a,{children:[p(c,{wrapper:d.formListChildrenWrapper,children:p(a,{children:l.map((function(e,t){var i=[].concat(h,[e.name]);return p("div",{className:"form-list-item-content",style:{padding:x+"px 0 "+x+"px 0"},children:d.children({formListFieldData:e,operation:s,formStageCompleteName:i,prevCompleteName:h,index:t,getInsideFormItemName:function t(i){var o=r(i);return[e.name].concat(o)},getInsideFormItemData:function e(){return g.getFieldValue(i)},uidKey:y})},e.key)}))})}),d.onCustomAddRowButton?d.onCustomAddRowButton(s):p(m,{hidden:d.hiddenAddRowButton,type:"dashed",block:true,onClick:function e(){var r;return s.add(t((r={},r[y]=i(),r),d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues()))},children:"添加"}),p(o.ErrorList,{errors:I!=null&&I.length?[p("div",{style:{color:"#ff4d4f",padding:"5px"},children:I},"0")]:undefined})]})]})}})})};export{h as FormListWrapper};
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-list-wrapper/form-list-wrapper.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid, toArray } from '@flatbiz/utils';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useRef, type ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormItemGroup } from '../form-item-group';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport './style.less';\nimport { type FormListWrapperProps } from './types';\n\ntype FormListChildrenWrapperProps = {\n wrapper?: FormListWrapperProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\nconst FormListTitleRender = (props: {\n formListItemTitleList: FormListWrapperProps['formListItemTitleList'];\n formListItemTitleHProps?: FormListWrapperProps['formListItemTitleHorizontalUnionProps'];\n}) => {\n return (\n <FormItemGroup.HorizontalUnion\n {...props.formListItemTitleHProps}\n style={{ marginBottom: 10, ...props.formListItemTitleHProps?.style }}\n groupConfigList={\n props.formListItemTitleList?.map((item) => {\n if (item.required) {\n return {\n width: item.width,\n mainItem: (\n <div style={{ textAlign: 'center' }}>\n <TextSymbolWrapper text={item.title} symbolType=\"required\" />\n </div>\n ),\n };\n }\n return {\n width: item.width,\n mainItem: <div style={{ textAlign: 'center' }}>{item.title}</div>,\n };\n }) || []\n }\n />\n );\n};\n\n/**\n * Form.List 包装组件,使用更简单\n * ```\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. 通过 itemGap 设置FormList Item 之间间隙\n * ```\n */\nexport const FormListWrapper = (props: FormListWrapperProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n const uidFieldName = props.uidFieldName || 'uid';\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n const gapHalf = props.itemGap ? props.itemGap / 2 : 8;\n\n return (\n <div className={classNames('form-list-wrapper', props.className)} style={props.style}>\n <Form.List name={props.name} rules={props.rules}>\n {(fields, operation, { errors }) => {\n formListOperationRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.formListItemTitleList?.length ? (\n <FormListTitleRender\n formListItemTitleList={props.formListItemTitleList}\n formListItemTitleHProps={props.formListItemTitleHorizontalUnionProps}\n />\n ) : null}\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <Fragment>\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n {fields.map((field, index) => {\n const formStageCompleteName = [...stageCompleteName, field.name];\n return (\n <div\n key={field.key}\n className=\"form-list-item-content\"\n style={{ padding: `${gapHalf}px 0 ${gapHalf}px 0` }}\n >\n {props.children({\n formListFieldData: field,\n operation: operation,\n formStageCompleteName,\n prevCompleteName: stageCompleteName,\n index,\n getInsideFormItemName: (key) => {\n const keys = toArray<string>(key);\n return [field.name, ...keys];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(formStageCompleteName);\n },\n uidKey: uidFieldName,\n })}\n </div>\n );\n })}\n </Fragment>\n </FormListChildrenWrapper>\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({\n [uidFieldName]: getUuid(),\n ...props.getAddRowDefaultValues?.(),\n })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n\n <Form.ErrorList\n errors={\n errors?.length\n ? [\n <div\n key=\"0\"\n style={{\n color: '#ff4d4f',\n padding: '5px',\n }}\n >\n {errors}\n </div>,\n ]\n : undefined\n }\n />\n </Fragment>\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["FormListChildrenWrapper","props","wrapper","children","FormListTitleRender","_props$formListItemTi","_props$formListItemTi2","_jsx","FormItemGroup","HorizontalUnion","_extends","formListItemTitleHProps","style","marginBottom","groupConfigList","formListItemTitleList","map","item","required","width","mainItem","textAlign","TextSymbolWrapper","text","title","symbolType","FormListWrapper","stageCompleteName","concat","prevCompleteName","toArray","name","form","Form","useFormInstance","formListOperationRef","useRef","uidFieldName","formListValue","useWatch","gapHalf","itemGap","className","_classNames","List","rules","fields","operation","_ref","_props$formListItemTi3","errors","current","_jsxs","borderRadius","border","length","formListItemTitleHorizontalUnionProps","hiddenEmptyRender","Empty","image","PRESENTED_IMAGE_SIMPLE","margin","Fragment","formListChildrenWrapper","field","index","formStageCompleteName","padding","formListFieldData","getInsideFormItemName","key","keys","getInsideFormItemData","getFieldValue","uidKey","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","getUuid","getAddRowDefaultValues","ErrorList","color","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-list-wrapper/form-list-wrapper.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid, toArray } from '@flatbiz/utils';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useRef, type ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormItemGroup } from '../form-item-group';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport './style.less';\nimport { type FormListWrapperProps } from './types';\n\ntype FormListChildrenWrapperProps = {\n wrapper?: FormListWrapperProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\nconst FormListTitleRender = (props: {\n formListItemTitleList: FormListWrapperProps['formListItemTitleList'];\n formListItemTitleHProps?: FormListWrapperProps['formListItemTitleHorizontalUnionProps'];\n}) => {\n return (\n <FormItemGroup.HorizontalUnion\n {...props.formListItemTitleHProps}\n style={{ marginBottom: 10, ...props.formListItemTitleHProps?.style }}\n groupConfigList={\n props.formListItemTitleList?.map((item) => {\n if (item.required) {\n return {\n width: item.width,\n mainItem: (\n <div style={{ textAlign: 'center' }}>\n <TextSymbolWrapper text={item.title} symbolType=\"required\" />\n </div>\n ),\n };\n }\n return {\n width: item.width,\n mainItem: <div style={{ textAlign: 'center' }}>{item.title}</div>,\n };\n }) || []\n }\n />\n );\n};\n\n/**\n * Form.List 包装组件,使用更简单\n * ```\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. 通过 itemGap 设置FormList Item 之间间隙\n * ```\n */\nexport const FormListWrapper = (props: FormListWrapperProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n const uidFieldName = props.uidFieldName || 'uid';\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n const gapHalf = props.itemGap ? props.itemGap / 2 : 8;\n\n return (\n <div className={classNames('form-list-wrapper', props.className)} style={props.style}>\n <Form.List name={props.name} rules={props.rules}>\n {(fields, operation, { errors }) => {\n formListOperationRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.formListItemTitleList?.length ? (\n <FormListTitleRender\n formListItemTitleList={props.formListItemTitleList}\n formListItemTitleHProps={props.formListItemTitleHorizontalUnionProps}\n />\n ) : null}\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <Fragment>\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n {fields.map((field, index) => {\n const formStageCompleteName = [...stageCompleteName, field.name];\n return (\n <div\n key={field.key}\n className=\"form-list-item-content\"\n style={{ padding: `${gapHalf}px 0 ${gapHalf}px 0` }}\n >\n {props.children({\n formListFieldData: field,\n operation: operation,\n formStageCompleteName,\n prevCompleteName: stageCompleteName,\n index,\n getInsideFormItemName: (key) => {\n const keys = toArray<string>(key);\n return [field.name, ...keys];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(formStageCompleteName);\n },\n uidKey: uidFieldName,\n })}\n </div>\n );\n })}\n </Fragment>\n </FormListChildrenWrapper>\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({\n [uidFieldName]: getUuid(),\n ...props.getAddRowDefaultValues?.(),\n })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n\n <Form.ErrorList\n errors={\n errors?.length\n ? [\n <div\n key=\"0\"\n style={{\n color: '#ff4d4f',\n padding: '5px',\n }}\n >\n {errors}\n </div>,\n ]\n : undefined\n }\n />\n </Fragment>\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["FormListChildrenWrapper","props","wrapper","children","FormListTitleRender","_props$formListItemTi","_props$formListItemTi2","_jsx","FormItemGroup","HorizontalUnion","_extends","formListItemTitleHProps","style","marginBottom","groupConfigList","formListItemTitleList","map","item","required","width","mainItem","textAlign","TextSymbolWrapper","text","title","symbolType","FormListWrapper","stageCompleteName","concat","prevCompleteName","toArray","name","form","Form","useFormInstance","formListOperationRef","useRef","uidFieldName","formListValue","useWatch","gapHalf","itemGap","className","_classNames","List","rules","fields","operation","_ref","_props$formListItemTi3","errors","current","_jsxs","borderRadius","border","length","formListItemTitleHorizontalUnionProps","hiddenEmptyRender","Empty","image","PRESENTED_IMAGE_SIMPLE","margin","Fragment","formListChildrenWrapper","field","index","formStageCompleteName","padding","formListFieldData","getInsideFormItemName","key","keys","getInsideFormItemData","getFieldValue","uidKey","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","getUuid","getAddRowDefaultValues","ErrorList","color","undefined"],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  import './../pre-defined-class-name/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{a,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{Form as l}from"antd";import{useMemo as r}from"react";import{preDefinedClassName as m}from"../pre-defined-class-name/index.js";import{jsx as t}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";var s=["labelWidth","labelItemVertical","labelAlign","formItemGap","className"];var i=function i(o){var n=o.labelWidth,c=o.labelItemVertical,p=o.labelAlign,f=o.formItemGap,b=o.className,u=a(o,s);var d=r((function(){return m.getFormLayoutClassName({labelWidth:n,labelItemVertical:c,labelAlign:p,formItemGap:f,className:b})}),[n,c,p,f]);return t(l,e({},u,{className:d}))};export{i as FormWrapper};
5
+ import{a,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{Form as l}from"antd";import{useMemo as r}from"react";import{preDefinedClassName as m}from"../pre-defined-class-name/index.js";import{jsx as t}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";var s=["labelWidth","labelItemVertical","labelAlign","formItemGap","className"];var i=function i(o){var n=o.labelWidth,c=o.labelItemVertical,p=o.labelAlign,f=o.formItemGap,b=o.className,u=a(o,s);var d=r((function(){return m.getFormLayoutClassName({labelWidth:n,labelItemVertical:c,labelAlign:p,formItemGap:f,className:b})}),[n,c,p,f,b]);return t(l,e({},u,{className:d}))};export{i as FormWrapper};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-wrapper/form-wrapper.tsx"],"sourcesContent":["import { Form, FormProps } from 'antd';\nimport { ReactNode, useMemo } from 'react';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormWrapperProps<Values = any> = TFormLayoutPreClassNameProps &\n FormProps<Values> & {\n children: ReactNode;\n };\n\n/**\n * Form 包装组件,添加对formItem的布局控制\n * ```\n * 1. 内置布局样式使用 preDefinedClassName.form\n * ```\n */\nexport const FormWrapper = (props: FormWrapperProps) => {\n const { labelWidth, labelItemVertical, labelAlign, formItemGap, className, ...rest } = props;\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n formItemGap,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign, formItemGap]);\n\n return <Form {...rest} className={innerClassName}></Form>;\n};\n"],"names":["FormWrapper","props","labelWidth","labelItemVertical","labelAlign","formItemGap","className","rest","_objectWithoutPropertiesLoose","_excluded","innerClassName","useMemo","preDefinedClassName","getFormLayoutClassName","_jsx","Form","_extends"],"mappings":";qWAgBaA,EAAc,SAAdA,EAAeC,GAC1B,IAAQC,EAA+ED,EAA/EC,WAAYC,EAAmEF,EAAnEE,kBAAmBC,EAAgDH,EAAhDG,WAAYC,EAAoCJ,EAApCI,YAAaC,EAAuBL,EAAvBK,UAAcC,EAAIC,EAAKP,EAAKQ,GAE5F,IAAMC,EAAiBC,GAAQ,WAC7B,OAAOC,EAAoBC,uBAAuB,CAChDX,WAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,UAAAA,GAEH,GAAE,CAACJ,EAAYC,EAAmBC,EAAYC,IAE/C,OAAOS,EAACC,EAAIC,KAAKT,EAAI,CAAED,UAAWI,IACpC"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-wrapper/form-wrapper.tsx"],"sourcesContent":["import { Form, FormProps } from 'antd';\nimport { ReactNode, useMemo } from 'react';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormWrapperProps<Values = any> = TFormLayoutPreClassNameProps &\n FormProps<Values> & {\n children: ReactNode;\n };\n\n/**\n * Form 包装组件,添加对formItem的布局控制\n * ```\n * 1. 内置布局样式使用 preDefinedClassName.form\n * ```\n */\nexport const FormWrapper = (props: FormWrapperProps) => {\n const { labelWidth, labelItemVertical, labelAlign, formItemGap, className, ...rest } = props;\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n formItemGap,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign, formItemGap, className]);\n\n return <Form {...rest} className={innerClassName}></Form>;\n};\n"],"names":["FormWrapper","props","labelWidth","labelItemVertical","labelAlign","formItemGap","className","rest","_objectWithoutPropertiesLoose","_excluded","innerClassName","useMemo","preDefinedClassName","getFormLayoutClassName","_jsx","Form","_extends"],"mappings":";qWAgBaA,EAAc,SAAdA,EAAeC,GAC1B,IAAQC,EAA+ED,EAA/EC,WAAYC,EAAmEF,EAAnEE,kBAAmBC,EAAgDH,EAAhDG,WAAYC,EAAoCJ,EAApCI,YAAaC,EAAuBL,EAAvBK,UAAcC,EAAIC,EAAKP,EAAKQ,GAE5F,IAAMC,EAAiBC,GAAQ,WAC7B,OAAOC,EAAoBC,uBAAuB,CAChDX,WAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,UAAAA,GAEJ,GAAG,CAACJ,EAAYC,EAAmBC,EAAYC,EAAaC,IAE5D,OAAOQ,EAACC,EAAIC,KAAKT,EAAI,CAAED,UAAWI,IACpC"}
package/esm/index.js CHANGED
@@ -39,6 +39,7 @@ import './data-render/index.css';
39
39
  import './date-picker-wrapper/index.css';
40
40
  import './date-range-picker-wrapper/index.css';
41
41
  import './date-range-picker-wrapper-form-item/index.css';
42
+ import './form-item-hidden/index.css';
42
43
  import './form-item-wrapper/index.css';
43
44
  import './pre-defined-class-name/index.css';
44
45
  import './delete-node/index.css';
@@ -51,7 +52,6 @@ import './drag-collapse-form-list/index.css';
51
52
  import './drag-editable-table/index.css';
52
53
  import './editable-table/index.css';
53
54
  import './text-symbol-wrapper/index.css';
54
- import './form-item-hidden/index.css';
55
55
  import './selector-wrapper/index.css';
56
56
  import './switch-wrapper/index.css';
57
57
  import './upload-wrapper/index.css';
@@ -8,5 +8,5 @@ import './../error-boundary-wrapper/index.css';
8
8
  import './../flex-layout/index.css';
9
9
  import './index.css';
10
10
  /*! @flatjs/forge MIT @flatbiz/antd */
11
- import{a as e,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{isObject as o}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as n,jsonStringToJsonObject as r}from"@flatbiz/utils";import"ace-builds/src-noconflict/ext-language_tools";import"ace-builds/src-noconflict/mode-json";import{useState as a,useRef as s,useMemo as l}from"react";import u from"react-ace";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{ErrorBoundaryWrapper as c}from"../error-boundary-wrapper/index.js";import{FlexLayout as d}from"../flex-layout/index.js";import{jsxs as p,jsx as f}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@dimjs/utils/cjs/class-names";import"antd";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";var h=["value","onChange","theme","height","showVerifyBtn","autoCompleterList"];var j=function j(v){var g=v.value,y=v.onChange,b=v.theme,w=v.height,x=v.showVerifyBtn,C=v.autoCompleterList,k=e(v,h);var L=n(w)?"100%":w;var N=a(Date.now()),z=N[0],B=N[1];var O=a(),S=O[0],_=O[1];var R=s();var V=l((function(){if(o(g)){return JSON.stringify(g,null,2)}return g}),[g]);var A=t.useCallbackRef((function(e){if(S){if(!e){_(undefined)}else{try{var i=r(e);_(i?undefined:undefined)}catch(e){}}}y==null?void 0:y(e)}));var D=t.useCallbackRef((function(e,i,t,o,n){n(null,C==null?void 0:C.map((function(e){return{name:e.name,value:e.name,meta:e.desc}})))}));var P=function e(i){R.current=i;var t=i.completers.findIndex((function(e){return e.id==="custom"}));if(t>=0){i.completers[t]={getCompletions:D,id:"custom"}}else{i.completers.push({getCompletions:D,id:"custom"})}};var F=function e(i){try{var t=r(i);y==null?void 0:y(t)}catch(e){_('数据解析异常,正确格式:{"name":"张三", "age": 20}')}};return p(d,{fullIndex:0,className:"json-editor",style:{height:L},children:[f("div",{className:"json-editor-ace",children:f(c,{onRenderReset:function e(){y==null?void 0:y(undefined);B(Date.now())},children:f(u,i({fontSize:14,showPrintMargin:true,showGutter:true,highlightActiveLine:true,height:"100%",width:"auto"},k,{setOptions:i({useWorker:false,enableBasicAutocompletion:false,enableLiveAutocompletion:true,enableSnippets:false,showLineNumbers:true,tabSize:2},k.setOptions),theme:b,mode:"json",onLoad:P,onChange:A,onBlur:function e(i,t){var o=t==null?void 0:t.getValue();if(o){F(o)}},value:V}))})}),p("div",{className:"json-editor-erify",children:[x!==false?f(m,{style:{marginTop:10},block:false,onClick:function e(){var i;var t=(i=R.current)==null?void 0:i.getValue();if(!t){y==null?void 0:y(t);return}F(t)},children:"验证数据"}):null,S?f("span",{style:{color:"red",marginLeft:10},children:S}):null]})]},z)};export{j as JsonEditor};
11
+ import{a as e,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{isObject as o}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as n,jsonStringToJsonObject as r}from"@flatbiz/utils";import"ace-builds/src-noconflict/ext-language_tools";import"ace-builds/src-noconflict/mode-json";import{useState as a,useRef as s,useMemo as l}from"react";import m from"react-ace";import{ButtonWrapper as u}from"../button-wrapper/index.js";import{ErrorBoundaryWrapper as c}from"../error-boundary-wrapper/index.js";import{FlexLayout as d}from"../flex-layout/index.js";import{jsxs as p,jsx as f}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@dimjs/utils/cjs/class-names";import"antd";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"@dimjs/model";var j=["value","onChange","theme","height","showVerifyBtn","autoCompleterList"];var h=function h(v){var g=v.value,y=v.onChange,b=v.theme,w=v.height,x=v.showVerifyBtn,C=v.autoCompleterList,k=e(v,j);var L=n(w)?"100%":w;var N=a(Date.now()),z=N[0],B=N[1];var O=a(),S=O[0],_=O[1];var R=s();var V=l((function(){if(o(g)){return JSON.stringify(g,null,2)}return g}),[g]);var A=t.useCallbackRef((function(e){if(S){if(!e){_(undefined)}else{try{var i=r(e);_(i?undefined:undefined)}catch(e){}}}y==null?void 0:y(e)}));var D=t.useCallbackRef((function(e,i,t,o,n){n(null,C==null?void 0:C.map((function(e){return{name:e.name,value:e.name,meta:e.desc}})))}));var P=function e(i){R.current=i;var t=i.completers.findIndex((function(e){return e.id==="custom"}));if(t>=0){i.completers[t]={getCompletions:D,id:"custom"}}else{i.completers.push({getCompletions:D,id:"custom"})}};var F=function e(i){try{var t=r(i);y==null?void 0:y(t)}catch(e){_('数据解析异常,正确格式:{"name":"张三", "age": 20}')}};return p(d,{fullIndex:0,className:"json-editor",style:{height:L},children:[f("div",{className:"json-editor-ace",children:f(c,{onRenderReset:function e(){y==null?void 0:y(undefined);B(Date.now())},children:f(m,i({fontSize:14,showPrintMargin:true,showGutter:true,highlightActiveLine:true,height:"100%",width:"auto"},k,{setOptions:i({useWorker:false,enableBasicAutocompletion:false,enableLiveAutocompletion:true,enableSnippets:false,showLineNumbers:true,tabSize:2},k.setOptions),theme:b,mode:"json",onLoad:P,onChange:A,onBlur:function e(i,t){var o=t==null?void 0:t.getValue();if(o){F(o)}},value:V}))})}),p("div",{className:"json-editor-erify",children:[x!==false?f(u,{style:{marginTop:10},block:false,onClick:function e(){var i;var t=(i=R.current)==null?void 0:i.getValue();if(!t){y==null?void 0:y(t);return}F(t)},children:"验证数据"}):null,S?f("span",{style:{color:"red",marginLeft:10},children:S}):null]})]},z)};export{h as JsonEditor};
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/json-editor/editor.tsx"],"sourcesContent":["import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, jsonStringToJsonObject, TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport 'ace-builds/src-noconflict/ext-language_tools';\nimport 'ace-builds/src-noconflict/mode-json';\nimport { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper';\nimport { FlexLayout } from '../flex-layout';\n\nexport type JsonEditorProps = Omit<IAceEditorProps, 'onLoad' | 'mode' | 'value' | 'onChange'> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /** 是否显示【验证数据】按钮,默认值:true */\n showVerifyBtn?: boolean;\n /**\n * 编辑器主题配置\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n};\n\n/**\n * Json编辑器\n * @deprecated 已过期,请使用 AceEditorJson 组件\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 showVerifyBtn配置是否显示【验证数据】按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const JsonEditor = (props: JsonEditorProps) => {\n const { value, onChange, theme, height, showVerifyBtn, autoCompleterList, ...otherProps } = props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n const [errorMsg, setErrorMsg] = useState<string>();\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const handleChange = hooks.useCallbackRef((content: string) => {\n if (errorMsg) {\n if (!content) {\n setErrorMsg(undefined);\n } else {\n try {\n const result = jsonStringToJsonObject(content);\n setErrorMsg(result ? undefined : undefined);\n } catch (error: TAny) {\n // 异常不处理\n }\n }\n }\n onChange?.(content);\n });\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n })),\n );\n });\n\n const onLoad = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex((item) => item.id === 'custom');\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n };\n\n const inputValueVerify = (inputValue: string) => {\n try {\n const result = jsonStringToJsonObject(inputValue);\n onChange?.(result);\n } catch (error: TAny) {\n setErrorMsg('数据解析异常,正确格式:{\"name\":\"张三\", \"age\": 20}');\n }\n };\n\n return (\n <FlexLayout fullIndex={0} className=\"json-editor\" key={rootNodekey} style={{ height: heightFt }}>\n <div className=\"json-editor-ace\">\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Ace\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n theme={theme}\n mode=\"json\"\n onLoad={onLoad}\n onChange={handleChange}\n onBlur={(_event, editor) => {\n const value = editor?.getValue();\n if (value) {\n inputValueVerify(value);\n }\n }}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n <div className=\"json-editor-erify\">\n {showVerifyBtn !== false ? (\n <ButtonWrapper\n style={{ marginTop: 10 }}\n block={false}\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n if (!currentValue) {\n onChange?.(currentValue);\n return;\n }\n inputValueVerify(currentValue);\n }}\n >\n 验证数据\n </ButtonWrapper>\n ) : null}\n {errorMsg ? <span style={{ color: 'red', marginLeft: 10 }}>{errorMsg}</span> : null}\n </div>\n </FlexLayout>\n );\n};\n"],"names":["JsonEditor","props","value","onChange","theme","height","showVerifyBtn","autoCompleterList","otherProps","_objectWithoutPropertiesLoose","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","rootNodekey","setRootNodekey","_useState2","errorMsg","setErrorMsg","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","handleChange","_hooks","useCallbackRef","content","undefined","result","jsonStringToJsonObject","error","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoad","editor","current","findIndex","completers","id","push","inputValueVerify","inputValue","_jsxs","FlexLayout","fullIndex","className","style","children","_jsx","ErrorBoundaryWrapper","onRenderReset","Ace","_extends","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","onBlur","_event","getValue","ButtonWrapper","marginTop","block","onClick","_editorRef$current","currentValue","color","marginLeft"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/json-editor/editor.tsx"],"sourcesContent":["import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, jsonStringToJsonObject, TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport 'ace-builds/src-noconflict/ext-language_tools';\nimport 'ace-builds/src-noconflict/mode-json';\nimport { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper';\nimport { FlexLayout } from '../flex-layout';\n\nexport type JsonEditorProps = Omit<IAceEditorProps, 'onLoad' | 'mode' | 'value' | 'onChange'> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /** 是否显示【验证数据】按钮,默认值:true */\n showVerifyBtn?: boolean;\n /**\n * 编辑器主题配置\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n};\n\n/**\n * Json编辑器\n * @deprecated 已过期,请使用 AceEditorJson 组件\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 showVerifyBtn配置是否显示【验证数据】按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const JsonEditor = (props: JsonEditorProps) => {\n const { value, onChange, theme, height, showVerifyBtn, autoCompleterList, ...otherProps } = props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n const [errorMsg, setErrorMsg] = useState<string>();\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const handleChange = hooks.useCallbackRef((content: string) => {\n if (errorMsg) {\n if (!content) {\n setErrorMsg(undefined);\n } else {\n try {\n const result = jsonStringToJsonObject(content);\n setErrorMsg(result ? undefined : undefined);\n } catch (error: TAny) {\n // 异常不处理\n }\n }\n }\n onChange?.(content);\n });\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n })),\n );\n });\n\n const onLoad = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex((item) => item.id === 'custom');\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n };\n\n const inputValueVerify = (inputValue: string) => {\n try {\n const result = jsonStringToJsonObject(inputValue);\n onChange?.(result);\n } catch (error: TAny) {\n setErrorMsg('数据解析异常,正确格式:{\"name\":\"张三\", \"age\": 20}');\n }\n };\n\n return (\n <FlexLayout fullIndex={0} className=\"json-editor\" key={rootNodekey} style={{ height: heightFt }}>\n <div className=\"json-editor-ace\">\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Ace\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n theme={theme}\n mode=\"json\"\n onLoad={onLoad}\n onChange={handleChange}\n onBlur={(_event, editor) => {\n const value = editor?.getValue();\n if (value) {\n inputValueVerify(value);\n }\n }}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n <div className=\"json-editor-erify\">\n {showVerifyBtn !== false ? (\n <ButtonWrapper\n style={{ marginTop: 10 }}\n block={false}\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n if (!currentValue) {\n onChange?.(currentValue);\n return;\n }\n inputValueVerify(currentValue);\n }}\n >\n 验证数据\n </ButtonWrapper>\n ) : null}\n {errorMsg ? <span style={{ color: 'red', marginLeft: 10 }}>{errorMsg}</span> : null}\n </div>\n </FlexLayout>\n );\n};\n"],"names":["JsonEditor","props","value","onChange","theme","height","showVerifyBtn","autoCompleterList","otherProps","_objectWithoutPropertiesLoose","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","rootNodekey","setRootNodekey","_useState2","errorMsg","setErrorMsg","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","handleChange","_hooks","useCallbackRef","content","undefined","result","jsonStringToJsonObject","error","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoad","editor","current","findIndex","completers","id","push","inputValueVerify","inputValue","_jsxs","FlexLayout","fullIndex","className","style","children","_jsx","ErrorBoundaryWrapper","onRenderReset","Ace","_extends","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","onBlur","_event","getValue","ButtonWrapper","marginTop","block","onClick","_editorRef$current","currentValue","color","marginLeft"],"mappings":"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"}
@@ -3,5 +3,5 @@ import './../fba-utils/index.css';
3
3
  import './../fba-hooks/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- import{fbaUtils as r}from"../fba-utils/index.js";import{createCtx as e}from"@wove/react/cjs/create-ctx";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as n}from"@dimjs/lang/cjs/is-deep-equal";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as a}from"@flatbiz/utils";import{Result as s,Button as o,Spin as l}from"antd";import{forwardRef as c,useState as u,useRef as m,useMemo as f,useImperativeHandle as d}from"react";import{fbaHooks as v}from"../fba-hooks/index.js";import{jsx as p,jsxs as h}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var g=e(),y=g[0],j=g[1];var b=c((function(r,e){var c=r.serviceConfig,g=r.isAsync,y=r.children,b=r.errorRender;var x=u("init"),C=x[0],N=x[1];var P=u(),R=P[0],q=P[1];var k=r.loadingHeight===undefined?100:r.loadingHeight;var w=m(null);var E=u(true),H=E[0],z=E[1];var A=m();var I=v.usePrevious(c.params);var K=f((function(){var r;if(!c.params||a(c.invalidParamKey).length===0){return c.params}var e=i({},c.params);(r=c.invalidParamKey)==null?void 0:r.forEach((function(r){e[r]=undefined}));return e}),[c]);var L=function r(e){return new Promise((function(r,t){var n=function(r){return function(e){try{z(false);return r&&r.call(this,e)}catch(r){return t(r)}}.bind(this)}.bind(this);var a;var s=function(){try{return r()}catch(r){return t(r)}};var o=function(r){try{console.error(r);N("error");A.current=r.message;return n(s)()}catch(r){return n(t)(r)}};try{z(true);return Promise.resolve(c.onRequest(i({},K,e))).then((function(r){try{a=r;N("success");q(a);return n(s)()}catch(r){return o(r)}}),o)}catch(r){o(r)}}))};v.useEffectCustomAsync(L,[]);v.useEffectCustom((function(){if(I){if(!n(c.params,I)){void L()}}}),[I,c.params]);d(e,(function(){return{onRefresh:L}}));if(C==="error"){if(b){return b({message:A.current})}return p(j,{value:{onRequest:L},children:h("div",{className:t("local-loading-error",r.className),children:[p("div",{className:"local-loading-area",ref:w}),p(s,{status:"error",subTitle:A.current||"数据处理异常",extra:[p(o,{type:"primary",ghost:true,size:"small",onClick:function r(){N("init");void L()},children:"重新获取"},"console")]})]})})}if(C!=="success"&&!g){return p("div",{className:t("fba-local-loading-process",r.className),style:{height:k,display:"flex",justifyContent:"center",position:"relative",backgroundColor:"var(--block-bg-color)"},children:p(l,{spinning:H,style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",height:"100%",width:"100%"}})})}return p(j,{value:{onRequest:L},children:h("div",{className:t("fba-local-loading",r.className),style:r.style,children:[H?p(l,{spinning:true,style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",height:"100%",width:"100%"}}):null,p("div",{className:"local-loading-content",style:r.contentStyle,children:y(R)})]})})}));var x=r.attachPropertiesToComponent(b,{useLocalLoading:function r(){var e=y();return{onRequest:function r(t){e.onRequest(t)}}}});export{x as LocalLoading};
6
+ import{fbaUtils as r}from"../fba-utils/index.js";import{createCtx as e}from"@wove/react/cjs/create-ctx";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as n}from"@dimjs/lang/cjs/is-deep-equal";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as a}from"@flatbiz/utils";import{Result as o,Button as s,Spin as l}from"antd";import{forwardRef as c,useState as u,useRef as m,useMemo as f,useImperativeHandle as d}from"react";import{fbaHooks as v}from"../fba-hooks/index.js";import{jsx as p,jsxs as h}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var g=e(),y=g[0],j=g[1];var b=c((function(r,e){var c=r.serviceConfig,g=r.isAsync,y=r.children,b=r.errorRender;var x=u("init"),C=x[0],N=x[1];var P=u(),R=P[0],q=P[1];var k=r.loadingHeight===undefined?100:r.loadingHeight;var w=m(null);var E=u(true),H=E[0],z=E[1];var A=m();var I=v.usePrevious(c.params);var K=f((function(){var r;if(!c.params||a(c.invalidParamKey).length===0){return c.params}var e=i({},c.params);(r=c.invalidParamKey)==null?void 0:r.forEach((function(r){e[r]=undefined}));return e}),[c]);var L=function r(e){return new Promise((function(r,t){var n=function(r){return function(e){try{z(false);return r&&r.call(this,e)}catch(r){return t(r)}}.bind(this)}.bind(this);var a;var o=function(){try{return r()}catch(r){return t(r)}};var s=function(r){try{console.error(r);N("error");A.current=r.message;return n(o)()}catch(r){return n(t)(r)}};try{z(true);return Promise.resolve(c.onRequest(i({},K,e))).then((function(r){try{a=r;N("success");q(a);return n(o)()}catch(r){return s(r)}}),s)}catch(r){s(r)}}))};v.useEffectCustomAsync(L,[]);v.useEffectCustom((function(){if(I){if(!n(c.params,I)){void L()}}}),[I,c.params]);d(e,(function(){return{onRefresh:L}}));if(C==="error"){if(b){return b({message:A.current})}return p(j,{value:{onRequest:L},children:h("div",{className:t("local-loading-error",r.className),children:[p("div",{className:"local-loading-area",ref:w}),p(o,{status:"error",subTitle:A.current||"数据处理异常",extra:[p(s,{type:"primary",ghost:true,size:"small",onClick:function r(){N("init");void L()},children:"重新获取"},"console")]})]})})}if(C!=="success"&&!g){return p("div",{className:t("fba-local-loading-process",r.className),style:{height:k,display:"flex",justifyContent:"center",position:"relative",backgroundColor:"var(--block-bg-color)"},children:p(l,{spinning:H,style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",height:"100%",width:"100%"}})})}return p(j,{value:{onRequest:L},children:h("div",{className:t("fba-local-loading",r.className),style:r.style,children:[H?p(l,{spinning:true,style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",height:"100%",width:"100%"}}):null,p("div",{className:"local-loading-content",style:r.contentStyle,children:y(R)})]})})}));var x=r.attachPropertiesToComponent(b,{useLocalLoading:function r(){var e=y();return{onRequest:function r(t){e.onRequest(t)}}}});export{x as LocalLoading};
7
7
  //# sourceMappingURL=index.js.map