@flatbiz/antd 4.1.8 → 4.2.0

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 (261) hide show
  1. package/esm/_rollupPluginBabelHelpers-1f4d8910.js +3 -0
  2. package/esm/_rollupPluginBabelHelpers-1f4d8910.js.map +1 -0
  3. package/esm/attach-properties-to-component-9d9644cf.js +3 -0
  4. package/esm/attach-properties-to-component-9d9644cf.js.map +1 -0
  5. package/esm/button-operate/index.css +1 -0
  6. package/esm/button-operate/index.js +10 -0
  7. package/esm/button-operate/index.js.map +1 -0
  8. package/esm/button-operate-32f0fea1.js +3 -0
  9. package/esm/button-operate-32f0fea1.js.map +1 -0
  10. package/esm/button-wrapper/index.css +0 -0
  11. package/esm/button-wrapper/index.js +6 -0
  12. package/esm/button-wrapper/index.js.map +1 -0
  13. package/esm/button-wrapper-9bef2281.js +3 -0
  14. package/esm/button-wrapper-9bef2281.js.map +1 -0
  15. package/esm/cascader-wrapper/index.css +1 -0
  16. package/esm/cascader-wrapper/index.js +7 -0
  17. package/esm/cascader-wrapper/index.js.map +1 -0
  18. package/esm/check-list/index.css +1 -0
  19. package/esm/check-list/index.js +6 -0
  20. package/esm/check-list/index.js.map +1 -0
  21. package/esm/config-provider-wrapper/index.css +0 -0
  22. package/esm/config-provider-wrapper/index.js +6 -0
  23. package/esm/config-provider-wrapper/index.js.map +1 -0
  24. package/esm/config-provider-wrapper-dfe8f592.js +3 -0
  25. package/esm/config-provider-wrapper-dfe8f592.js.map +1 -0
  26. package/esm/context-25d0b686.js +3 -0
  27. package/esm/context-25d0b686.js.map +1 -0
  28. package/esm/create-drawer-wrapper-model/index.css +0 -0
  29. package/esm/create-drawer-wrapper-model/index.js +5 -0
  30. package/esm/create-drawer-wrapper-model/index.js.map +1 -0
  31. package/esm/create-modal-wrapper-model/index.css +0 -0
  32. package/esm/create-modal-wrapper-model/index.js +5 -0
  33. package/esm/create-modal-wrapper-model/index.js.map +1 -0
  34. package/esm/css-node-hover/index.css +1 -0
  35. package/esm/css-node-hover/index.js +5 -0
  36. package/esm/css-node-hover/index.js.map +1 -0
  37. package/esm/date-picker-wrapper/index.css +0 -0
  38. package/esm/date-picker-wrapper/index.js +5 -0
  39. package/esm/date-picker-wrapper/index.js.map +1 -0
  40. package/esm/date-picker-wrapper-407942d1.js +3 -0
  41. package/esm/date-picker-wrapper-407942d1.js.map +1 -0
  42. package/esm/date-range-picker-wrapper/index.css +0 -0
  43. package/esm/date-range-picker-wrapper/index.js +5 -0
  44. package/esm/date-range-picker-wrapper/index.js.map +1 -0
  45. package/esm/date-range-picker-wrapper-d22d0f60.js +3 -0
  46. package/esm/date-range-picker-wrapper-d22d0f60.js.map +1 -0
  47. package/esm/date-range-picker-wrapper-form-item/index.css +0 -0
  48. package/esm/date-range-picker-wrapper-form-item/index.js +8 -0
  49. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -0
  50. package/esm/dialog-alert/index.css +1 -0
  51. package/esm/dialog-alert/index.js +11 -0
  52. package/esm/dialog-alert/index.js.map +1 -0
  53. package/esm/dialog-confirm/index.css +1 -0
  54. package/esm/dialog-confirm/index.js +10 -0
  55. package/esm/dialog-confirm/index.js.map +1 -0
  56. package/esm/dialog-confirm-0bc1ee6e.js +3 -0
  57. package/esm/dialog-confirm-0bc1ee6e.js.map +1 -0
  58. package/esm/dialog-drawer/index.css +0 -0
  59. package/esm/dialog-drawer/index.js +9 -0
  60. package/esm/dialog-drawer/index.js.map +1 -0
  61. package/esm/dialog-loading/index.css +1 -0
  62. package/esm/dialog-loading/index.js +6 -0
  63. package/esm/dialog-loading/index.js.map +1 -0
  64. package/esm/dialog-modal/index.css +1 -0
  65. package/esm/dialog-modal/index.js +9 -0
  66. package/esm/dialog-modal/index.js.map +1 -0
  67. package/esm/dialog-modal-29b1ddf9.js +3 -0
  68. package/esm/dialog-modal-29b1ddf9.js.map +1 -0
  69. package/esm/dom-4d04aa64.js +3 -0
  70. package/esm/dom-4d04aa64.js.map +1 -0
  71. package/esm/drawer-wrapper/index.css +1 -0
  72. package/esm/drawer-wrapper/index.js +6 -0
  73. package/esm/drawer-wrapper/index.js.map +1 -0
  74. package/esm/dropdown-menu-wrapper/index.css +1 -0
  75. package/esm/dropdown-menu-wrapper/index.js +8 -0
  76. package/esm/dropdown-menu-wrapper/index.js.map +1 -0
  77. package/esm/dropdown-menu-wrapper-40f6a65b.js +3 -0
  78. package/esm/dropdown-menu-wrapper-40f6a65b.js.map +1 -0
  79. package/esm/easy-table/index.css +0 -0
  80. package/esm/easy-table/index.js +10 -0
  81. package/esm/easy-table/index.js.map +1 -0
  82. package/esm/editable-field/index.css +1 -0
  83. package/esm/editable-field/index.js +7 -0
  84. package/esm/editable-field/index.js.map +1 -0
  85. package/esm/editable-field-provider/index.css +0 -0
  86. package/esm/editable-field-provider/index.js +5 -0
  87. package/esm/editable-field-provider/index.js.map +1 -0
  88. package/esm/editable-table/index.css +1 -0
  89. package/esm/editable-table/index.js +13 -0
  90. package/esm/editable-table/index.js.map +1 -0
  91. package/esm/editor-wrapper/index.css +1 -0
  92. package/esm/editor-wrapper/index.js +5 -0
  93. package/esm/editor-wrapper/index.js.map +1 -0
  94. package/esm/fba-hooks/index.css +0 -0
  95. package/esm/fba-hooks/index.js +5 -0
  96. package/esm/fba-hooks/index.js.map +1 -0
  97. package/esm/fba-utils/index.css +0 -0
  98. package/esm/fba-utils/index.js +5 -0
  99. package/esm/fba-utils/index.js.map +1 -0
  100. package/esm/fba-utils-a4c7d94d.js +3 -0
  101. package/esm/fba-utils-a4c7d94d.js.map +1 -0
  102. package/esm/file-import/index.css +0 -0
  103. package/esm/file-import/index.js +5 -0
  104. package/esm/file-import/index.js.map +1 -0
  105. package/esm/flex-layout/index.css +1 -0
  106. package/esm/flex-layout/index.js +5 -0
  107. package/esm/flex-layout/index.js.map +1 -0
  108. package/esm/flex-layout-8d2b668b.js +3 -0
  109. package/esm/flex-layout-8d2b668b.js.map +1 -0
  110. package/esm/form-grid/index.css +0 -0
  111. package/esm/form-grid/index.js +5 -0
  112. package/esm/form-grid/index.js.map +1 -0
  113. package/esm/form-item-group/index.css +1 -0
  114. package/esm/form-item-group/index.js +7 -0
  115. package/esm/form-item-group/index.js.map +1 -0
  116. package/esm/form-item-wrapper/index.css +0 -0
  117. package/esm/form-item-wrapper/index.js +5 -0
  118. package/esm/form-item-wrapper/index.js.map +1 -0
  119. package/esm/gap/index.css +0 -0
  120. package/esm/gap/index.js +5 -0
  121. package/esm/gap/index.js.map +1 -0
  122. package/esm/icon-wrapper/index.css +1 -0
  123. package/esm/icon-wrapper/index.js +5 -0
  124. package/esm/icon-wrapper/index.js.map +1 -0
  125. package/esm/icon-wrapper-ed5fcacc.js +3 -0
  126. package/esm/icon-wrapper-ed5fcacc.js.map +1 -0
  127. package/esm/input-search-wrapper/index.css +0 -0
  128. package/esm/input-search-wrapper/index.js +6 -0
  129. package/esm/input-search-wrapper/index.js.map +1 -0
  130. package/esm/input-search-wrapper-10d4a9b9.js +3 -0
  131. package/esm/input-search-wrapper-10d4a9b9.js.map +1 -0
  132. package/esm/input-text-area-wrapper/index.css +0 -0
  133. package/esm/input-text-area-wrapper/index.js +6 -0
  134. package/esm/input-text-area-wrapper/index.js.map +1 -0
  135. package/esm/input-text-area-wrapper-c958fba0.js +3 -0
  136. package/esm/input-text-area-wrapper-c958fba0.js.map +1 -0
  137. package/esm/input-wrapper/index.css +0 -0
  138. package/esm/input-wrapper/index.js +6 -0
  139. package/esm/input-wrapper/index.js.map +1 -0
  140. package/esm/input-wrapper-b378eb5a.js +3 -0
  141. package/esm/input-wrapper-b378eb5a.js.map +1 -0
  142. package/esm/label-value-layout/index.css +1 -0
  143. package/esm/label-value-layout/index.js +5 -0
  144. package/esm/label-value-layout/index.js.map +1 -0
  145. package/esm/local-loading/index.css +1 -0
  146. package/esm/local-loading/index.js +6 -0
  147. package/esm/local-loading/index.js.map +1 -0
  148. package/esm/modal-action/index.css +0 -0
  149. package/esm/modal-action/index.js +5 -0
  150. package/esm/modal-action/index.js.map +1 -0
  151. package/esm/modal-wrapper/index.css +1 -0
  152. package/esm/modal-wrapper/index.js +6 -0
  153. package/esm/modal-wrapper/index.js.map +1 -0
  154. package/esm/page-fixed-footer/index.css +1 -0
  155. package/esm/page-fixed-footer/index.js +5 -0
  156. package/esm/page-fixed-footer/index.js.map +1 -0
  157. package/esm/page404/index.css +0 -0
  158. package/esm/page404/index.js +5 -0
  159. package/esm/page404/index.js.map +1 -0
  160. package/esm/permission/index.css +0 -0
  161. package/esm/permission/index.js +6 -0
  162. package/esm/permission/index.js.map +1 -0
  163. package/esm/pre-defined-class-name/index.css +1 -0
  164. package/esm/pre-defined-class-name/index.js +5 -0
  165. package/esm/pre-defined-class-name/index.js.map +1 -0
  166. package/esm/radio-group-wrapper/index.css +0 -0
  167. package/esm/radio-group-wrapper/index.js +5 -0
  168. package/esm/radio-group-wrapper/index.js.map +1 -0
  169. package/esm/relation-tree/index.css +1 -0
  170. package/esm/relation-tree/index.js +6 -0
  171. package/esm/relation-tree/index.js.map +1 -0
  172. package/esm/request-status/index.css +1 -0
  173. package/esm/request-status/index.js +5 -0
  174. package/esm/request-status/index.js.map +1 -0
  175. package/esm/request-status-03fc60e2.js +3 -0
  176. package/esm/request-status-03fc60e2.js.map +1 -0
  177. package/esm/roll-location-center/index.css +1 -0
  178. package/esm/roll-location-center/index.js +6 -0
  179. package/esm/roll-location-center/index.js.map +1 -0
  180. package/esm/roll-location-in-view/index.css +1 -0
  181. package/esm/roll-location-in-view/index.js +6 -0
  182. package/esm/roll-location-in-view/index.js.map +1 -0
  183. package/esm/rule-describe/index.css +1 -0
  184. package/esm/rule-describe/index.js +7 -0
  185. package/esm/rule-describe/index.js.map +1 -0
  186. package/esm/selector-wrapper/index.css +1 -0
  187. package/esm/selector-wrapper/index.js +7 -0
  188. package/esm/selector-wrapper/index.js.map +1 -0
  189. package/esm/selector-wrapper-6560eb49.js +3 -0
  190. package/esm/selector-wrapper-6560eb49.js.map +1 -0
  191. package/esm/selector-wrapper-search/index.css +0 -0
  192. package/esm/selector-wrapper-search/index.js +6 -0
  193. package/esm/selector-wrapper-search/index.js.map +1 -0
  194. package/esm/selector-wrapper-simple/index.css +0 -0
  195. package/esm/selector-wrapper-simple/index.js +7 -0
  196. package/esm/selector-wrapper-simple/index.js.map +1 -0
  197. package/esm/simple-layout/index.css +1 -0
  198. package/esm/simple-layout/index.js +6 -0
  199. package/esm/simple-layout/index.js.map +1 -0
  200. package/esm/simple-layout-1676e586.js +3 -0
  201. package/esm/simple-layout-1676e586.js.map +1 -0
  202. package/esm/sms-count-down/index.css +0 -0
  203. package/esm/sms-count-down/index.js +5 -0
  204. package/esm/sms-count-down/index.js.map +1 -0
  205. package/esm/styles/index.css +1 -0
  206. package/esm/styles/index.js +5 -0
  207. package/esm/styles/index.js.map +1 -0
  208. package/esm/switch-wrapper/index.css +0 -0
  209. package/esm/switch-wrapper/index.js +5 -0
  210. package/esm/switch-wrapper/index.js.map +1 -0
  211. package/esm/table-cell-render/index.css +0 -0
  212. package/esm/table-cell-render/index.js +12 -0
  213. package/esm/table-cell-render/index.js.map +1 -0
  214. package/esm/table-title-tooltip/index.css +0 -0
  215. package/esm/table-title-tooltip/index.js +5 -0
  216. package/esm/table-title-tooltip/index.js.map +1 -0
  217. package/esm/tabs-wrapper/index.css +1 -0
  218. package/esm/tabs-wrapper/index.js +5 -0
  219. package/esm/tabs-wrapper/index.js.map +1 -0
  220. package/esm/tag-group/index.css +0 -0
  221. package/esm/tag-group/index.js +6 -0
  222. package/esm/tag-group/index.js.map +1 -0
  223. package/esm/tag-list-select/index.css +0 -0
  224. package/esm/tag-list-select/index.js +5 -0
  225. package/esm/tag-list-select/index.js.map +1 -0
  226. package/esm/tag-list-select-066f682f.js +3 -0
  227. package/esm/tag-list-select-066f682f.js.map +1 -0
  228. package/esm/time-2782aa9b.js +3 -0
  229. package/esm/time-2782aa9b.js.map +1 -0
  230. package/esm/time-picker-wrapper/index.css +0 -0
  231. package/esm/time-picker-wrapper/index.js +5 -0
  232. package/esm/time-picker-wrapper/index.js.map +1 -0
  233. package/esm/time-range-picker-wrapper/index.css +0 -0
  234. package/esm/time-range-picker-wrapper/index.js +5 -0
  235. package/esm/time-range-picker-wrapper/index.js.map +1 -0
  236. package/esm/time-range-picker-wrapper-24adf0d0.js +3 -0
  237. package/esm/time-range-picker-wrapper-24adf0d0.js.map +1 -0
  238. package/esm/time-range-picker-wrapper-form-item/index.css +0 -0
  239. package/esm/time-range-picker-wrapper-form-item/index.js +8 -0
  240. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -0
  241. package/esm/tree-selector-wrapper/index.css +1 -0
  242. package/esm/tree-selector-wrapper/index.js +7 -0
  243. package/esm/tree-selector-wrapper/index.js.map +1 -0
  244. package/esm/tree-wrapper/index.css +1 -0
  245. package/esm/tree-wrapper/index.js +11 -0
  246. package/esm/tree-wrapper/index.js.map +1 -0
  247. package/esm/types/index.css +0 -0
  248. package/esm/types/index.js +4 -0
  249. package/esm/types/index.js.map +1 -0
  250. package/esm/upload-wrapper/index.css +1 -0
  251. package/esm/upload-wrapper/index.js +6 -0
  252. package/esm/upload-wrapper/index.js.map +1 -0
  253. package/esm/upload-wrapper-f20208d6.js +3 -0
  254. package/esm/upload-wrapper-f20208d6.js.map +1 -0
  255. package/esm/use-responsive-point-21b8c601.js +3 -0
  256. package/esm/use-responsive-point-21b8c601.js.map +1 -0
  257. package/index.d.ts +240 -256
  258. package/package.json +1 -1
  259. package/esm/index.css +0 -1
  260. package/esm/index.js +0 -5
  261. package/esm/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-drawer/dialog-drawer.tsx"],"sourcesContent":["import { isPromise, isString } from '@dimjs/lang';\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps } from '../_utils/dom';\n\nexport type DialogDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'footer'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogDrawerProps) => {\n const {\n divElement,\n elementId,\n onOk,\n onCancel,\n content,\n configProviderProps,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width = 600,\n okHidden,\n cancelHidden,\n ...otherProps\n } = props;\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const 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 return (\n <ConfigProviderWrapper {...configProviderProps}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n onClose={onClose}\n width={'80%'}\n contentWrapperStyle={{ maxWidth: width }}\n extra={operatePosition === 'header' ? operateRenderHandle() : null}\n footer={operatePosition === 'footer' ? operateRenderHandle() : null}\n {...otherProps}\n open={open}\n getContainer={divElement}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n </ConfigProviderWrapper>\n );\n};\n\n/**\n * 函数式调用弹框;初始化后,内容无法更新\n *```\n * 1. 基础使用方式\n * dialogDrawer.open({\n * title: '我是弹框',\n * content: <div>我是内容</div>,\n * });\n * ```\n * ```\n * ***************************\n * 2. 结合内置form使用,可在onOK、onCancel获取form对象\n * dialogDrawer.open({\n * title: '我是弹框',\n * content: (form, operate) => {\n * return (\n * <Form form={form}>\n * <Form.Item name=\"useName\">\n * <Input placeholder=\"请输入\" />\n * </Form.Item>\n * </Form>\n * );\n * },\n * onOK: (form) => {\n * console.log('content form数据', form.getFieldsValue());\n * return Promise.resolve();\n * },\n * });\n * 注意:\n * 1. 设置operateRender后,需要自定义操作按钮,onOk、onCancel、okText、cancelText、okButtonExtraProps、cancelButtonExtraProps配置失效\n * ```\n */\nexport const dialogDrawer = {\n open: (props: DialogDrawerProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_drawer_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogDrawer.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_drawer_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","_props$width","width","okHidden","cancelHidden","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","operateGroup","_jsxs","Space","children","hidden","_jsx","ButtonWrapper","_extends","onClick","type","operateRenderHandle","ConfigProviderWrapper","Drawer","maskClosable","destroyOnClose","contentWrapperStyle","maxWidth","extra","footer","getContainer","dialogDrawer","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .v-dialog-loading .ant-modal-content{background-color:transparent;box-shadow:none;padding:0}.v-dialog-loading .ant-modal-body{text-align:center}.v-dialog-loading-content{background-color:#fff;border-radius:8px;display:inline-block;padding:20px 30px;text-align:center}.v-dialog-loading-content .loader-inner{animation:dialog-spinner .6s linear infinite;border:2px solid rgba(0,128,227,.08);border-left:2px solid var(--v-loading-color);border-radius:50%;height:30px;margin:0 auto;text-indent:-12345px;width:30px;z-index:100001}.v-dialog-loading-content .loader-text{color:#606060;font-size:12px;font-size:16px;font-weight:500;letter-spacing:2px;margin-top:15px;text-align:left}@keyframes dialog-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ import './../fba-hooks/index.css';
3
+ import './index.css';
4
+ /*! @flatjs/forge MIT @flatbiz/antd */
5
+ import{isString as e}from"@dimjs/lang/cjs/is-string";import{a as o}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as a}from"@wove/react/cjs/hooks";import{theme as l,Modal as n}from"antd";import{useState as i}from"react";import{createRoot as t}from"react-dom/client";import{fbaHooks as s}from"../fba-hooks/index.js";import{b as d,r as m}from"../dom-4d04aa64.js";import{jsx as c,jsxs as f}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var v=function e(o){var t=o.elementId;var d=l.useToken(),v=d.token;var u=v.colorPrimary;var p=i(true),g=p[0],w=p[1];var j=a.useCallbackRef((function(){try{delete window[t]}catch(e){}w(false)}));s.useEffectCustom((function(){window[t]=j}),[j]);var _=a.useCallbackRef((function(){m("#"+t)}));return c(n,{maskClosable:false,centered:true,destroyOnClose:true,className:r("v-dialog-loading",o.className),open:g,afterClose:_,getContainer:o.divElement,footer:null,closable:false,style:{"--v-loading-color":u},children:c("div",{className:r("v-dialog-loading-content"),children:f("div",{className:"loader-wrapper",children:[c("div",{className:"loader-inner"}),c("div",{className:"loader-text",children:o.message||"处理中"})]})})})};var u={open:function e(r){var a=d(),l=a.divElement,n=a.elementId;window["__dialog_loading_elementId"]=n;var i=t(l);i.render(c(v,o({},r,{divElement:l,elementId:n})));return{close:function e(){var o,r;(o=(r=window)[n])==null?void 0:o.call(r)}}},close:function o(){try{var r,a;var l=window["__dialog_loading_elementId"];if(e(l))(r=(a=window)[l])==null?void 0:r.call(a)}catch(e){}}};export{u as dialogLoading};
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-loading/dialog-loading.tsx"],"sourcesContent":["import { isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps, removeBodyChild } from '../_utils/dom';\nimport './style.less';\n\nexport type DialogLoadingProps = {\n className?: string;\n message?: string;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogLoadingProps) => {\n const elementId = props.elementId;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n const [open, setOpen] = useState(true);\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onAfterClose = hooks.useCallbackRef(() => {\n removeBodyChild(`#${elementId}`);\n });\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('v-dialog-loading', props.className)}\n open={open}\n afterClose={onAfterClose}\n getContainer={props.divElement}\n footer={null}\n // width={120}\n closable={false}\n style={{ '--v-loading-color': colorPrimary } as CSSProperties}\n >\n <div className={classNames('v-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{props.message || '处理中'}</div>\n </div>\n </div>\n </Modal>\n );\n};\n\nexport const dialogLoading = {\n open: (props?: DialogLoadingProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_loading_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_loading_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","elementId","_theme$useToken","theme","useToken","token","colorPrimary","_useState","useState","open","setOpen","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onAfterClose","removeBodyChild","_jsx","Modal","maskClosable","centered","destroyOnClose","className","_classNames","afterClose","getContainer","divElement","footer","closable","style","children","_jsxs","message","dialogLoading","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","_extends","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":";+iBAeA,IAAMA,EAAc,SAAdA,EAAeC,GACnB,IAAMC,EAAYD,EAAMC,UACxB,IAAAC,EAAkBC,EAAMC,WAAhBC,EAAKH,EAALG,MACR,IAAMC,EAAeD,EAAMC,aAE3B,IAAAC,EAAwBC,EAAS,MAA1BC,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAEpB,IAAMI,EAAUC,EAAMC,gBAAe,WACnC,WACSC,OAAOb,EACf,CAAC,MAAOc,GACP,CAEFL,EAAQ,MACV,IAEAM,EAASC,iBAAgB,WACvBH,OAAOb,GAAaU,CACtB,GAAG,CAACA,IAEJ,IAAMO,EAAeN,EAAMC,gBAAe,WACxCM,EAAe,IAAKlB,EACtB,IAEA,OACEmB,EAACC,EAAK,CACJC,aAAc,MACdC,SAAU,KACVC,eAAc,KACdC,UAAWC,EAAW,mBAAoB1B,EAAMyB,WAChDhB,KAAMA,EACNkB,WAAYT,EACZU,aAAc5B,EAAM6B,WACpBC,OAAQ,KAERC,SAAU,MACVC,MAAO,CAAE,oBAAqB1B,GAAgC2B,SAE9Db,EAAA,MAAA,CAAKK,UAAWC,EAAW,4BAA4BO,SACrDC,EAAA,MAAA,CAAKT,UAAU,iBAAgBQ,UAC7Bb,EAAA,MAAA,CAAKK,UAAU,iBACfL,EAAA,MAAA,CAAKK,UAAU,cAAaQ,SAAEjC,EAAMmC,SAAW,cAKzD,EAEO,IAAMC,EAAgB,CAC3B3B,KAAM,SAAAA,EAACT,GACL,IAAAqC,EAAkCC,IAA1BT,EAAUQ,EAAVR,WAAY5B,EAASoC,EAATpC,UACpBa,OAAO,8BAAgCb,EACvC,IAAMsC,EAAOC,EAAWX,GACxBU,EAAKE,OAAOrB,EAACrB,EAAW2C,EAAA,CAAA,EAAK1C,EAAK,CAAE6B,WAAYA,EAAY5B,UAAWA,MACvE,MAAO,CACL0C,MAAO,SAAAA,IAAM,IAAAC,EAAAC,GACXD,GAAAC,EAAA/B,QAAOb,KAAU,UAAA,EAAjB2C,EAAAE,KAAAD,EACF,EAEH,EAODF,MAAO,SAAAA,IACL,IAAI,IAAAI,EAAAC,EACF,IAAM/C,EAAYa,OAAO,8BACzB,GAAImC,EAAShD,IAAY8C,GAAAC,EAAAlC,QAAOb,KAAP8C,UAAAA,EAAAA,EAAAD,KAAAE,EAC1B,CAAC,MAAOjC,GACP,CAEJ"}
@@ -0,0 +1 @@
1
+ .v-dialog-modal .ant-modal-body{max-height:calc(100vh - 150px);overflow:auto}
@@ -0,0 +1,9 @@
1
+ /* eslint-disable */
2
+ import './../button-wrapper/index.css';
3
+ import './../fba-utils/index.css';
4
+ import './../config-provider-wrapper/index.css';
5
+ import './../fba-hooks/index.css';
6
+ import './index.css';
7
+ /*! @flatjs/forge MIT @flatbiz/antd */
8
+ export{d as dialogModal}from"../dialog-modal-29b1ddf9.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/utils/cjs/class-names";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"react-dom/client";import"../button-wrapper-9bef2281.js";import"@flatbiz/utils";import"../fba-utils-a4c7d94d.js";import"@dimjs/lang/cjs/is-array";import"react/jsx-runtime";import"../config-provider-wrapper-dfe8f592.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"../use-responsive-point-21b8c601.js";import"../dom-4d04aa64.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,3 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+ import{isString as e}from"@dimjs/lang/cjs/is-string";import{classNames as o}from"@dimjs/utils/cjs/class-names";import{a as r,_ as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isPromise as t}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Form as i,Modal as l}from"antd";import{useState as c}from"react";import{createRoot as s}from"react-dom/client";import{B as d}from"./button-wrapper-9bef2281.js";import{C as m}from"./config-provider-wrapper-dfe8f592.js";import{fbaHooks as f}from"./fba-hooks/index.js";import{b as u,r as p}from"./dom-4d04aa64.js";import{jsx as v}from"react/jsx-runtime";var C=["divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText"];var k=function e(s){var u=s.divElement,k=s.elementId,w=s.onOk,j=s.onCancel,h=s.okButtonProps,g=s.cancelButtonProps,_=s.content,b=s.configProviderProps,P=s.className,x=s.okHidden,y=s.cancelHidden,B=s.footer,I=s.cancelText,E=s.okText,H=n(s,C);var R=c(true),T=R[0],N=R[1];var O=i.useForm(),F=O[0];var q=a.useCallbackRef((function(){try{delete window[k]}catch(e){}N(false)}));f.useEffectCustom((function(){window[k]=q}),[q]);var z=a.useCallbackRef((function(e){if(j){var o=j(F,e);if(o&&t(o)){return o.then(q)}}return q()}));var A=a.useCallbackRef((function(e){if(w){var o=w(F,e);if(o&&t(o)){return o.then(q)}}return q()}));var D=a.useCallbackRef((function(){p("#"+k);s.afterClose==null?void 0:s.afterClose()}));var G=[v(d,r({},g,{onClick:z,hidden:y,children:I||"取消"}),"0"),v(d,r({type:"primary"},h,{onClick:A,hidden:x,children:E||"提交"}),"1")];var J=B||G;return v(m,r({},b,{children:v(l,r({maskClosable:true,centered:true,onCancel:q,destroyOnClose:true},H,{className:o("v-dialog-modal",P),open:T,afterClose:D,getContainer:u,footer:J,children:typeof _==="function"?_(F,{onClose:q}):_}))}))};var w={open:function e(o){var n=u(),t=n.divElement,a=n.elementId;window["__dialog_modal_elementId"]=a;var i=s(t);i.render(v(k,r({},o,{divElement:t,elementId:a})));return{close:function e(){var o,r;(o=(r=window)[a])==null?void 0:o.call(r)}}},close:function o(){try{var r,n;var t=window["__dialog_modal_elementId"];if(e(t))(r=(n=window)[t])==null?void 0:r.call(n)}catch(e){}}};export{w as d};
3
+ //# sourceMappingURL=dialog-modal-29b1ddf9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-modal-29b1ddf9.js","sources":["@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps, removeBodyChild } from '../_utils/dom';\nimport './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps'\n> & {\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogModalProps) => {\n const {\n divElement,\n elementId,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n configProviderProps,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n ...otherProps\n } = props;\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onAfterClose = hooks.useCallbackRef(() => {\n removeBodyChild(`#${elementId}`);\n props.afterClose?.();\n });\n\n const operateGroup = [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || '取消'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ];\n\n const footerNew = footer || operateGroup;\n\n return (\n <ConfigProviderWrapper {...configProviderProps}>\n <Modal\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n {...otherProps}\n className={classNames('v-dialog-modal', className)}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n footer={footerNew}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n </ConfigProviderWrapper>\n );\n};\n\n/**\n * 函数式调用弹框;初始化后,内容无法更新\n *```\n * 1. 基础使用方式\n * dialogModal.open({\n * title: '我是弹框',\n * content: <div>我是内容</div>,\n * });\n * ```\n * ```\n * ***************************\n * 2. 结合内置form使用,可在onOK、onCancel获取form对象\n * dialogModal.open({\n * title: '我是弹框',\n * content: (form, operate) => {\n * return (\n * <Form form={form}>\n * <Form.Item name=\"useName\">\n * <Input placeholder=\"请输入\" />\n * </Form.Item>\n * </Form>\n * );\n * },\n * onOK: (form) => {\n * console.log('content form数据', form.getFieldsValue());\n * return Promise.resolve();\n * },\n * });\n * ```\n */\nexport const dialogModal = {\n open: (props: DialogModalProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_modal_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_modal_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","removeBodyChild","afterClose","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","footerNew","ConfigProviderWrapper","Modal","maskClosable","centered","destroyOnClose","_classNames","getContainer","dialogModal","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+ var e=function e(){var t=document.createElement("div");var n="id_"+Date.now();t.setAttribute("id",n);document.body.append(t);return{divElement:t,elementId:n}};var t=function e(t){try{document.body.removeChild(document.querySelector(t))}catch(e){}};export{e as b,t as r};
3
+ //# sourceMappingURL=dom-4d04aa64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-4d04aa64.js","sources":["@flatbiz/antd/src/_utils/dom.ts"],"sourcesContent":["export const bodyAppendDivElement = () => {\n const div = document.createElement('div');\n const id = `id_${Date.now()}`;\n div.setAttribute('id', id);\n document.body.append(div);\n return {\n divElement: div,\n elementId: id,\n };\n};\n\nexport const removeBodyChild = (element: string) => {\n try {\n document.body.removeChild(document.querySelector(element) as Node);\n } catch (error) {\n //\n }\n};\n\nexport interface BodyAppendDivElementProps {\n divElement: HTMLDivElement;\n elementId: string;\n}\n"],"names":["bodyAppendDivElement","div","document","createElement","id","Date","now","setAttribute","body","append","divElement","elementId","removeBodyChild","element","removeChild","querySelector","error"],"mappings":";IAAaA,EAAuB,SAAvBA,IACX,IAAMC,EAAMC,SAASC,cAAc,OACnC,IAAMC,EAAE,MAASC,KAAKC,MACtBL,EAAIM,aAAa,KAAMH,GACvBF,SAASM,KAAKC,OAAOR,GACrB,MAAO,CACLS,WAAYT,EACZU,UAAWP,EAEf,MAEaQ,EAAkB,SAAlBA,EAAmBC,GAC9B,IACEX,SAASM,KAAKM,YAAYZ,SAASa,cAAcF,GAClD,CAAC,MAAOG,GACP,CAEJ"}
@@ -0,0 +1 @@
1
+ .drawer-wrapper .ant-drawer-header{padding:12px 14px}.drawer-wrapper .ant-drawer-body{display:flex;flex-direction:column;padding:0;position:relative}.drawer-wrapper .ant-drawer-content-wrapper{max-width:80%}.drawer-wrapper-content{flex:1;height:100%;overflow-x:hidden;overflow-y:auto;padding:20px;position:relative}.drawer-wrapper-footer{border-top:1px solid #f0f0f0;padding:10px 16px}.drawer-wrapper-loader{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;opacity:1;position:absolute;right:0;text-align:center;top:0;z-index:100000}.drawer-wrapper-loader .loader-wrapper{display:inline-flex;flex-direction:column;height:100px;justify-content:space-around;width:100px}.drawer-wrapper-loader .loader-inner{animation:spinner .6s linear infinite;border:2px solid rgba(0,128,227,.08);border-left-color:rgba(0,84,153,.7);border-radius:50%;height:30px;margin:0 auto;text-indent:-12345px;width:30px;z-index:100001}.drawer-wrapper-loader .loader-text{color:#0080e3;font-size:12px;height:20px;letter-spacing:4px;text-align:center;width:100px}
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ import './../fba-hooks/index.css';
3
+ import './index.css';
4
+ /*! @flatjs/forge MIT @flatbiz/antd */
5
+ import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as e,_ as o}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{Space as a,Button as n,Drawer as i}from"antd";import{Fragment as t}from"react";import{fbaHooks as s}from"../fba-hooks/index.js";import l from"@ant-design/icons/es/icons/SaveOutlined";import{jsx as c,jsxs as d}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var p=function r(o){return c("div",{className:"fixed-bottom-block",children:d(a,{size:"middle",children:[c(n,e({},o.cancelButtonProps,{className:"cancel-btn",onClick:o.onCancel,children:o.cancelText||"取消"})),o.hideOkBtn!=true&&c(n,e({type:"primary",icon:c(l,{})},o.okButtonProps,{className:"ok-btn",onClick:o.onOk,loading:o.loading,children:o.okText||"提交"}))]})})};var m=["pageLoading","className","width","children"];var u=function r(){return c("div",{className:"drawer-wrapper-loader",children:d("div",{className:"loader-wrapper",children:[c("div",{className:"loader-inner"}),c("div",{className:"loader-text",children:"LOADING"})]})})};var f=function r(o){return d(t,{children:[c("div",{className:"drawer-wrapper-content",children:o.children}),o.operationProps?c(h,{children:c(p,e({},o.operationProps))}):null]})};var h=function r(e){return c("div",{className:"drawer-wrapper-footer",children:e.children})};var v=function a(n){var t=n.pageLoading,l=n.className,p=n.width,f=p===void 0?600:p,h=n.children,v=o(n,m);s.useEffectCustom((function(){if(n["operationProps"]){throw new Error("DrawerWrapper组件升级,参数operationProps用法变更,请及时更新")}}),[]);return d(i,e({className:r("drawer-wrapper",l),keyboard:false,destroyOnClose:true,forceRender:false,width:"80%",contentWrapperStyle:{maxWidth:f},size:"default"},v,{footer:null,children:[t&&c(u,{}),h]}))};v.Content=f;v.Footer=h;export{v as DrawerWrapper};
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drawer-wrapper/drawer-operation.tsx","@flatbiz/antd/src/drawer-wrapper/drawer-wrapper.tsx"],"sourcesContent":["import { SaveOutlined } from '@ant-design/icons';\nimport { Button, ButtonProps, Space } from 'antd';\n\nexport interface DrawerOperationProps {\n loading?: boolean;\n okText?: string;\n cancelText?: string;\n onOk?: () => void;\n onCancel?: () => void;\n hideOkBtn?: boolean;\n okButtonProps?: Omit<ButtonProps, 'onClick' | 'loading' | 'className'>;\n cancelButtonProps?: Omit<ButtonProps, 'onClick' | 'loading' | 'className'>;\n}\n\nexport const DrawerOperation = (props: DrawerOperationProps) => {\n return (\n <div className=\"fixed-bottom-block\">\n <Space size=\"middle\">\n <Button {...props.cancelButtonProps} className=\"cancel-btn\" onClick={props.onCancel}>\n {props.cancelText || '取消'}\n </Button>\n {props.hideOkBtn != true && (\n <Button\n type=\"primary\"\n icon={<SaveOutlined />}\n {...props.okButtonProps}\n className=\"ok-btn\"\n onClick={props.onOk}\n loading={props.loading}\n >\n {props.okText || '提交'}\n </Button>\n )}\n </Space>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Drawer, DrawerProps } from 'antd';\nimport { FC, Fragment, ReactNode } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { DrawerOperation, DrawerOperationProps } from './drawer-operation';\nimport './style.less';\n\ntype DrawerWrapperStaticMethods = {\n Content: typeof DrawerWrapperContent;\n Footer: typeof DrawerWrapperFooter;\n};\n\nexport type DrawerWrapperProps = {\n className?: string;\n /**\n * 整个drawer页面级的spinning <Page loading />\n */\n pageLoading?: boolean;\n} & Omit<DrawerProps, 'footer'>;\n\nconst PageLoader = () => {\n return (\n <div className=\"drawer-wrapper-loader\">\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">LOADING</div>\n </div>\n </div>\n );\n};\n\nconst DrawerWrapperContent = (props: { operationProps?: DrawerOperationProps; children?: ReactNode }) => {\n return (\n <Fragment>\n <div className=\"drawer-wrapper-content\">{props.children}</div>\n {props.operationProps ? (\n <DrawerWrapperFooter>\n <DrawerOperation {...props.operationProps} />\n </DrawerWrapperFooter>\n ) : null}\n </Fragment>\n );\n};\n\nconst DrawerWrapperFooter = (props) => {\n return <div className=\"drawer-wrapper-footer\">{props.children}</div>;\n};\n\n/**\n * 弹窗机制\n * @deprecated 已过期,后面版本会移除;请使用 dialogDrawer.open\n * ```\n * 1. 默认 destroyOnClose = true\n * 2. 默认 forceRender = false\n * 3. 如果设置 forceRender = true,会导致弹框中的接口提前调用\n *\n * 注意\n * 1. <Drawer /> 默认关闭后状态不会自动清空, 如果希望每次打开都是新内容,请设置 destroyOnClose。\n * 2. <Drawer /> 和 Form 一起配合使用时,设置 destroyOnClose 也不会在 Drawer 关闭时销毁表单字段数据,需要设置 <Form preserve={false} />。\n *\n * ```\n */\nexport const DrawerWrapper: FC<DrawerWrapperProps> & DrawerWrapperStaticMethods = (props) => {\n const { pageLoading, className, width = 600, children, ...otherProps } = props;\n\n fbaHooks.useEffectCustom(() => {\n if (props['operationProps']) {\n throw new Error('DrawerWrapper组件升级,参数operationProps用法变更,请及时更新');\n }\n }, []);\n\n return (\n <Drawer\n className={classNames('drawer-wrapper', className)}\n keyboard={false}\n destroyOnClose={true}\n forceRender={false}\n width={'80%'}\n contentWrapperStyle={{ maxWidth: width }}\n size=\"default\"\n {...otherProps}\n footer={null}\n >\n {pageLoading && <PageLoader />}\n {children}\n </Drawer>\n );\n};\n\nDrawerWrapper.Content = DrawerWrapperContent;\nDrawerWrapper.Footer = DrawerWrapperFooter;\n"],"names":["DrawerOperation","props","_jsx","className","children","_jsxs","Space","size","Button","_extends","cancelButtonProps","onClick","onCancel","cancelText","hideOkBtn","type","icon","_SaveOutlined","okButtonProps","onOk","loading","okText","PageLoader","DrawerWrapperContent","Fragment","operationProps","DrawerWrapperFooter","DrawerWrapper","pageLoading","_props$width","width","otherProps","_objectWithoutPropertiesLoose","_excluded","fbaHooks","useEffectCustom","Error","Drawer","_classNames","keyboard","destroyOnClose","forceRender","contentWrapperStyle","maxWidth","footer","Content","Footer"],"mappings":";ydAcO,IAAMA,EAAkB,SAAlBA,EAAmBC,GAC9B,OACEC,EAAA,MAAA,CAAKC,UAAU,qBAAoBC,SACjCC,EAACC,EAAK,CAACC,KAAK,SAAQH,SAAA,CAClBF,EAACM,EAAMC,EAAA,CAAA,EAAKR,EAAMS,kBAAiB,CAAEP,UAAU,aAAaQ,QAASV,EAAMW,SAASR,SACjFH,EAAMY,YAAc,QAEtBZ,EAAMa,WAAa,MAClBZ,EAACM,EAAMC,EAAA,CACLM,KAAK,UACLC,KAAMd,EAAAe,EAAA,KACFhB,EAAMiB,cAAa,CACvBf,UAAU,SACVQ,QAASV,EAAMkB,KACfC,QAASnB,EAAMmB,QAAQhB,SAEtBH,EAAMoB,QAAU,YAM7B,uDChBA,IAAMC,EAAa,SAAbA,IACJ,OACEpB,EAAA,MAAA,CAAKC,UAAU,wBAAuBC,SACpCC,EAAA,MAAA,CAAKF,UAAU,iBAAgBC,UAC7BF,EAAA,MAAA,CAAKC,UAAU,iBACfD,EAAA,MAAA,CAAKC,UAAU,cAAaC,SAAC,gBAIrC,EAEA,IAAMmB,EAAuB,SAAvBA,EAAwBtB,GAC5B,OACEI,EAACmB,EAAQ,CAAApB,UACPF,EAAA,MAAA,CAAKC,UAAU,yBAAwBC,SAAEH,EAAMG,WAC9CH,EAAMwB,eACLvB,EAACwB,EAAmB,CAAAtB,SAClBF,EAACF,EAAeS,EAAA,CAAA,EAAKR,EAAMwB,mBAE3B,OAGV,EAEA,IAAMC,EAAsB,SAAtBA,EAAuBzB,GAC3B,OAAOC,EAAA,MAAA,CAAKC,UAAU,wBAAuBC,SAAEH,EAAMG,UACvD,MAgBauB,EAAqE,SAArEA,EAAsE1B,GACjF,IAAQ2B,EAAiE3B,EAAjE2B,YAAazB,EAAoDF,EAApDE,UAAS0B,EAA2C5B,EAAzC6B,MAAAA,EAAKD,SAAG,EAAA,IAAGA,EAAEzB,EAA4BH,EAA5BG,SAAa2B,EAAUC,EAAK/B,EAAKgC,GAE9EC,EAASC,iBAAgB,WACvB,GAAIlC,EAAM,kBAAmB,CAC3B,MAAM,IAAImC,MAAM,+CAClB,CACD,GAAE,IAEH,OACE/B,EAACgC,EAAM5B,EAAA,CACLN,UAAWmC,EAAW,iBAAkBnC,GACxCoC,SAAU,MACVC,eAAgB,KAChBC,YAAa,MACbX,MAAO,MACPY,oBAAqB,CAAEC,SAAUb,GACjCvB,KAAK,WACDwB,EAAU,CACda,OAAQ,KAAKxC,SAAA,CAEZwB,GAAe1B,EAACoB,EAAU,CAAA,GAC1BlB,KAGP,EAEAuB,EAAckB,QAAUtB,EACxBI,EAAcmB,OAASpB"}
@@ -0,0 +1 @@
1
+ .dmw-popconfirm .ant-popconfirm-buttons{display:flex;justify-content:right}.dmw-popconfirm .ant-popconfirm-buttons>.ant-btn:first-child{margin-left:0}
@@ -0,0 +1,8 @@
1
+ /* eslint-disable */
2
+ import './../button-wrapper/index.css';
3
+ import './../fba-utils/index.css';
4
+ import './../fba-hooks/index.css';
5
+ import './index.css';
6
+ /*! @flatjs/forge MIT @flatbiz/antd */
7
+ export{D as DropdownMenuWrapper}from"../dropdown-menu-wrapper-40f6a65b.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-9bef2281.js";import"@flatbiz/utils";import"../fba-utils-a4c7d94d.js";import"@dimjs/lang/cjs/is-array";import"react/jsx-runtime";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,3 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+ import{_ as o,a as e}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isPromise as r}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{Popconfirm as i,Button as t,Dropdown as l}from"antd";import{useState as a,createElement as s}from"react";import{B as p}from"./button-wrapper-9bef2281.js";import{fbaHooks as f}from"./fba-hooks/index.js";import{f as u}from"./fba-utils-a4c7d94d.js";import{jsx as c}from"react/jsx-runtime";var m=["menuList"],d=["text","color","permission","needConfirm","confirmMessage","hidden","type","style","popconfirmProps"];var v=function v(g){var y=g.menuList,k=o(g,m);var C=a([]),b=C[0],h=C[1];var P=a({}),x=P[0],j=P[1];var w=n.useCallbackRef((function(o,e){var r;e.stopPropagation();j((r={},r[o]={open:true},r))}));var z=n.useCallbackRef((function(o,n,i){i.stopPropagation();var t=o.onClick==null?void 0:o.onClick(i);if(t&&r(t)){x[n]={loading:true,open:true};j(e({},x));t.finally((function(){x[n]={loading:false,open:false};j(e({},x))}));return}x[n]={loading:false,open:false};j(e({},x))}));var B=n.useCallbackRef((function(o,e){e.stopPropagation();return o.onClick==null?void 0:o.onClick(e)}));f.useEffectCustom((function(){var r=[];y.filter(Boolean).forEach((function(n,l){var a,f;if(!n)return;var m=n.text,v=n.color,g=n.permission,y=n.needConfirm,k=n.confirmMessage,C=n.hidden,b=n.type,h=n.style,P=n.popconfirmProps,R=o(n,d);if(C)return;if(g&&!u.hasPermission(g))return;var S=v?e({color:v},h):h;var T=b||"link";var A={key:l,label:s(p,e({size:"small"},R,{type:T,style:S,key:l,onClick:B.bind(null,n)}),m)};var E={key:l,label:s(i,e({okText:"确定",cancelText:"取消",trigger:["click"],destroyTooltipOnHide:true},P,{title:k,onConfirm:z.bind(null,n,l),onCancel:function o(e){e==null?void 0:e.stopPropagation();j({})},overlayClassName:"dmw-popconfirm",arrowPointAtCenter:true,key:l,overlayStyle:{zIndex:10},open:((a=x[l])==null?void 0:a.open)||false,okButtonProps:{loading:(f=x[l])==null?void 0:f.loading}}),c(t,e({size:"small",danger:true},R,{onClick:w.bind(null,l),type:T,style:S,children:m})))};if(y&&!R.disabled){r.push(E)}else{r.push(A)}}));h(r)}),[y,x]);return c(l,e({trigger:(k==null?void 0:k.trigger)||["hover"],arrow:{pointAtCenter:true}},k,{overlayStyle:e({zIndex:9},k.overlayStyle),menu:{items:b},onOpenChange:function o(e){if(!e){j({})}},children:g.children}))};export{v as D};
3
+ //# sourceMappingURL=dropdown-menu-wrapper-40f6a65b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu-wrapper-40f6a65b.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["import { isPromise } from '@dimjs/lang';\nimport { hooks } from '@wove/react';\nimport { Button, ButtonProps, Dropdown, DropdownProps, Popconfirm, PopconfirmProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { ReactElement, useState } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport './style.less';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n}\n\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const [menuItems, setMenuItems] = useState<ItemType[]>([]);\n\n const [statusMap, setStatusMap] = useState<Record<string, { open?: boolean; loading?: boolean }>>({});\n const onConfirmtTriggerClick = hooks.useCallbackRef((index, event) => {\n event.stopPropagation();\n setStatusMap({ [index]: { open: true } });\n });\n\n const onConfirm = hooks.useCallbackRef((item: DropdownMenuItem, index: number, event) => {\n event.stopPropagation();\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n statusMap[index] = { loading: true, open: true };\n setStatusMap({ ...statusMap });\n result.finally(() => {\n statusMap[index] = { loading: false, open: false };\n setStatusMap({ ...statusMap });\n });\n return;\n }\n statusMap[index] = { loading: false, open: false };\n setStatusMap({ ...statusMap });\n });\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n fbaHooks.useEffectCustom(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n color,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n style,\n popconfirmProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const newStyle = color ? { color, ...style } : style;\n const buttonType = type || 'link';\n const nromal = {\n key: index,\n label: (\n <ButtonWrapper\n size=\"small\"\n {...otherProps}\n type={buttonType}\n style={newStyle}\n key={index}\n onClick={onClick.bind(null, item)}\n >\n {text}\n </ButtonWrapper>\n ),\n };\n const confirm = {\n key: index,\n label: (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item, index)}\n onCancel={(event) => {\n event?.stopPropagation();\n setStatusMap({});\n }}\n overlayClassName=\"dmw-popconfirm\"\n arrowPointAtCenter={true}\n key={index}\n overlayStyle={{ zIndex: 10 }}\n open={statusMap[index]?.open || false}\n okButtonProps={{\n loading: statusMap[index]?.loading,\n }}\n >\n <Button\n size=\"small\"\n danger\n {...otherProps}\n onClick={onConfirmtTriggerClick.bind(null, index)}\n type={buttonType}\n style={newStyle}\n >\n {text}\n </Button>\n </Popconfirm>\n ),\n };\n if (needConfirm && !otherProps.disabled) {\n menuItemsNew.push(confirm);\n } else {\n menuItemsNew.push(nromal);\n }\n });\n setMenuItems(menuItemsNew);\n }, [menuList, statusMap]);\n return (\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n onOpenChange={(_open) => {\n if (!_open) {\n setStatusMap({});\n }\n }}\n >\n {props.children}\n </Dropdown>\n );\n};\n"],"names":["DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","menuItems","setMenuItems","_useState2","statusMap","setStatusMap","onConfirmtTriggerClick","_hooks","useCallbackRef","index","event","_setStatusMap","stopPropagation","open","onConfirm","item","result","onClick","_isPromise","loading","_extends","finally","fbaHooks","useEffectCustom","menuItemsNew","filter","Boolean","forEach","_statusMap$index","_statusMap$index2","text","color","permission","needConfirm","confirmMessage","hidden","type","style","popconfirmProps","otherProps","_excluded2","fbaUtils","hasPermission","newStyle","buttonType","nromal","key","label","_createElement","ButtonWrapper","size","bind","confirm","Popconfirm","okText","cancelText","trigger","destroyTooltipOnHide","title","onCancel","overlayClassName","arrowPointAtCenter","overlayStyle","zIndex","okButtonProps","_jsx","Button","danger","children","disabled","push","Dropdown","arrow","pointAtCenter","menu","items","onOpenChange","_open"],"mappings":"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"}
File without changes
@@ -0,0 +1,10 @@
1
+ /* eslint-disable */
2
+ import './../button-wrapper/index.css';
3
+ import './../fba-utils/index.css';
4
+ import './../form-grid/index.css';
5
+ import './../simple-layout/index.css';
6
+ import './../fba-hooks/index.css';
7
+ import './index.css';
8
+ /*! @flatjs/forge MIT @flatbiz/antd */
9
+ import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{isArray as t}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a as i,_ as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as o}from"@dimjs/model";import{Form as a,message as u,Table as s}from"antd";import{forwardRef as l,useState as c,useImperativeHandle as d,Children as f,useMemo as m}from"react";import{createCtx as p}from"@wove/react/cjs/create-ctx";import{Model as v}from"@dimjs/model-react";import{jsx as g,jsxs as h}from"react/jsx-runtime";import{B as y}from"../button-wrapper-9bef2281.js";import{FormGrid as C}from"../form-grid/index.js";import{S}from"../simple-layout-1676e586.js";import{isUndefinedOrNull as q,getUuid as F}from"@flatbiz/utils";import{fbaHooks as j}from"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-promise";import"../fba-utils-a4c7d94d.js";import"@dimjs/utils/cjs/class-names";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var z=p(),P=z[0],R=z[1];var b={queryCondition:{},isInit:true};var w={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=i({},e.queryCondition,t)}},resetFilterCondition:function e(){return function(e){e.queryCondition=b.queryCondition}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:b};var N={};var V=function e(t){if(!N[t]){N[t]=v(w)}return N[t]};var x=l((function(e,n){var s;var l=c([]),f=l[0],m=l[1];var p=c(0),v=p[0],h=p[1];var y=c(false),C=y[0],S=y[1];var q=V(e.modelKey).useStore(),F=q[0],j=q[1];var z=e.pageSize||((s=e.initialPaginationParams)==null?void 0:s.pageSize)||10;var P=e.initRequest===undefined?true:e.initRequest;var b=c(false),w=b[0],N=b[1];var x=i({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var K=a.useForm(),k=K[0];var I=r.useCallbackRef((function(r){return new Promise((function(i,n){var a,s,l,c,d,f,p,v,g,y;var C=function(){try{return i()}catch(e){return n(e)}};var q=function(e){try{S(false);void u.error(e.message);return C()}catch(e){return n(e)}};try{S(true);return Promise.resolve(j.updateFilterCondition(r)).then((function(r){try{a=r;s=o(a.queryCondition||{});l=e.serviceConfig,c=l.requestParamsAdapter,d=l.onRequest,f=l.requestResultAdapter;p=c?c(s):s;return Promise.resolve(d(p)).then((function(r){try{v=r||{};e.onDataSourceChange==null?void 0:e.onDataSourceChange(v);g=f?f(v):v;y=g[x.list];m(t(y)?y:[]);h(g[x.total]);S(false);return C()}catch(e){return q(e)}}),q)}catch(e){return q(e)}}),q)}catch(e){q(e)}}))}));var T=r.useCallbackRef((function(e){return new Promise((function(t,r){return Promise.resolve(j.resetFilterCondition()).then((function(i){try{k.resetFields();if(e){void j.updateFilterCondition(e);k.setFieldsValue(e)}return t()}catch(e){return r(e)}}),r)}))}));var A=r.useCallbackRef((function(t){return new Promise((function(r,n){var o;return Promise.resolve(j.resetFilterCondition()).then((function(a){try{k.resetFields();if(w){void I(i((o={},o[x.pageNo]=1,o[x.pageSize]=z,o),e.initialValues,t))}else{void I(i({},e.initialValues,t))}return r()}catch(e){return n(e)}}),n)}))}));var B=function e(){return i({},F.queryCondition,k.getFieldsValue())};d(n,(function(){return{onRequest:I,clearQueryCondition:T,getRequestParams:B,onResetRequest:A,form:k}}));var L=function e(t){N(t)};var D=function t(){var r=k.getFieldsValue();if(e.onFormFinish){e.onFormFinish(r)}else{if(w){var n;void I(i({},r,(n={},n[x.pageNo]=1,n[x.pageSize]=F.queryCondition.pageSize,n)))}else{void I(r)}}};return g(R,{value:{modelKey:e.modelKey,onRequest:I,tableList:f,tableTotal:v,loading:C,fieldNames:x,pageSize:z,initRequest:P,initialValues:e.initialValues||{},onSetPaginationStatus:L,paginationStatus:w},children:g(a,{form:k,onFinish:D,initialValues:i({},e.initialValues,F.queryCondition),children:e.children})})}));var K=function e(t){var n=a.useFormInstance();var o=t.queryButtonProps,u=t.resetButtonProps,s=t.filterOperate;var l=typeof t.children==="function"?t.children(n):t.children;var c=f.toArray(l);var d=P(),m=d.modelKey,p=d.fieldNames,v=d.onRequest,h=d.pageSize,q=d.paginationStatus,F=d.initialValues;var j=V(m).useStore(),z=j[1];var R=r.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(z.resetFilterCondition()).then((function(o){try{n.resetFields();if(q){v(i((r={},r[p.pageNo]=1,r[p.pageSiz]=h,r),F))}else{v(F)}return e()}catch(e){return t(e)}}),t)}))}));var b=i({rightList:[!(o!=null&&o.hidden)?g(y,i({type:"primary",htmlType:"submit"},o,{children:(o==null?void 0:o.text)||"查询"}),"1"):null,!(u!=null&&u.hidden)?g(y,i({onClick:R},u,{children:(u==null?void 0:u.text)||"重置"}),"2"):null]},s==null?void 0:s(n));if(t.isPure){return g(S,{children:l})}var w=c.map((function(e,t){if(e.type["domTypeName"]==="FormCol"){return e}return g(C.Col,{children:e},t)})).concat(g(C.OperateCol,i({},b),99));return g(S,{children:g(C.Row,{gutter:[15,0],children:w})})};var k=["children","rowKey","pagination"];var I=function e(t){var r=t.children,o=t.rowKey,a=t.pagination,u=n(t,k);var l=P(),c=l.modelKey,d=l.fieldNames,f=l.onRequest,p=l.tableList,v=l.initRequest,y=l.pageSize,C=l.tableTotal,z=l.loading,R=l.initialValues,b=l.onSetPaginationStatus;var w=V(c).useStore(),N=w[0],x=w[1];var K=a==false?false:i({showSizeChanger:true,current:N.queryCondition[d.pageNo],pageSize:N.queryCondition[d.pageSize],total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},t.pagination);var I=function e(r){if(K){var i;f((i={},i[d.pageSize]=r.pageSize,i[d.pageNo]=r.current,i))}for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++){o[a-1]=arguments[a]}t.onChange==null?void 0:t.onChange.apply(t,[r].concat(o))};var T=m((function(){if(p.length===0){return[]}if(q(p[0][o])){return p.map((function(e){e[o]=F();return e}))}return p}),[p,o]);j.useEffectCustom((function(){b(K!==false);if(v!==false||!N.isInit){if(K){var e;void f(i((e={},e[d.pageNo]=1,e[d.pageSize]=y,e),R))}else{void f(R)}}else{void x.updateFilterCondition(R)}void x.updateInitStatus()}),[]);return h(S,{children:[r?g(S,{children:r}):null,g(s,i({size:"small",scroll:{x:"max-content"},bordered:true},u,{pagination:K,rowKey:o,onChange:I,loading:z,dataSource:T}))]})};var T=e(x,{Filter:K,Table:I});export{T as EasyTable};
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition: void;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: () => {\n return (state) => {\n state.queryCondition = defaultState.queryCondition;\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableRefApi = {\n /** 外部发起请求服务 */\n onRequest: (params?: TPlainObject) => void;\n /** 获取请求参数 */\n getRequestParams: () => TPlainObject;\n /** 清楚查询条件 */\n clearQueryCondition: (values?: TPlainObject) => Promise<void>;\n form: FormInstance;\n /** 重置请求 */\n onResetRequest: (params?: TPlainObject) => void;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[];\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSiz = 10\n * @deprecated 使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n};\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n void message.error(error.message);\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...values,\n });\n } else {\n void onRequest({\n ...props.initialValues,\n ...values,\n });\n }\n });\n\n const getRequestParams = () => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n };\n\n useImperativeHandle(ref, () => {\n return {\n onRequest: onRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n };\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish(values);\n } else {\n if (paginationStatus) {\n void onRequest({\n ...values,\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: state.queryCondition.pageSize,\n });\n } else {\n void onRequest(values);\n }\n }\n };\n\n return (\n <EasyTableCtxProvider\n value={{\n modelKey: props.modelKey,\n onRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n }}\n >\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...props.initialValues,\n ...state.queryCondition,\n }}\n >\n {props.children}\n </Form>\n </EasyTableCtxProvider>\n );\n});\n","import { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n // 查询按钮配置\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n // 重置按钮配置\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const form = Form.useFormInstance();\n const { queryButtonProps, resetButtonProps, filterOperate } = props;\n\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = Children.toArray(children);\n const { modelKey, fieldNames, onRequest, pageSize, paginationStatus, initialValues } = useEasyTableCtx();\n const [, actions] = easyTableModel(modelKey).useStore();\n\n // const onQuery = hooks.useCallbackRef(() => {\n // if (paginationStatus) {\n // onRequest({\n // ...form.getFieldsValue(),\n // [fieldNames.pageNo]: 1,\n // [fieldNames.pageSiz]: state.queryCondition.pageSize,\n // });\n // } else {\n // onRequest(form.getFieldsValue());\n // }\n // });\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSiz]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n ...filterOperate?.(form),\n };\n\n if (props.isPure) {\n return <SimpleLayout>{children}</SimpleLayout>;\n }\n\n const formRowChildren = childrens\n .map((item, index) => {\n if ((item as ReactElement).type['domTypeName'] === 'FormCol') {\n return item;\n }\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .concat(<FormGrid.OperateCol key={99} {...formOperateColProps} />);\n\n return (\n <SimpleLayout>\n <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>\n </SimpleLayout>\n );\n};\n","import { getUuid, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement;\n /** 表格行 key 的取值 */\n rowKey: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const paginationData =\n pagination == false\n ? false\n : {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo],\n pageSize: state.queryCondition[fieldNames.pageSize],\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n\n const onChangePage: TableProps<TAny>['onChange'] = (data, ...otherProps) => {\n if (paginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(paginationData !== false);\n if (initRequest !== false || !state.isInit) {\n if (paginationData) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n return (\n <SimpleLayout>\n {children ? <SimpleLayout>{children}</SimpleLayout> : null}\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n pagination={paginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </SimpleLayout>\n );\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { EasyTableTable } from './table';\n\nexport const EasyTable = attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","_onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","onResetRequest","_extends2","$await_5","initialValues","getRequestParams","getFieldsValue","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","_extends3","_jsx","value","tableList","tableTotal","children","onFinish","EasyTableFilter","useFormInstance","queryButtonProps","resetButtonProps","filterOperate","childrens","Children","toArray","_useEasyTableCtx","onReset","$await_1","pageSiz","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","isPure","SimpleLayout","formRowChildren","map","item","index","FormGrid","Col","concat","OperateCol","Row","gutter","EasyTableTable","rowKey","pagination","otherProps","_objectWithoutPropertiesLoose","_excluded","paginationData","showSizeChanger","current","showTotal","onChangePage","data","_len","arguments","length","Array","_key","onChange","apply","useMemo","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","_jsxs","Table","size","scroll","x","bordered","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":";m/BAGO,IAAAA,EAAgDC,IAAzCC,EAAeF,EAAA,GAAEG,EAAoBH,EAAA,GCYnD,IAAMI,EAA2B,CAC/BC,eAAgB,CAAE,EAClBC,OAAQ,MAGV,IAAMC,EAA4D,CAChEC,QAAS,CACPC,sBAAuB,SAAAA,EAACC,GACtB,OAAO,SAACC,GACNA,EAAMN,eAAcO,EAAA,CAAA,EACfD,EAAMN,eACNK,GAGR,EACDG,qBAAsB,SAAAA,IACpB,OAAO,SAACF,GACNA,EAAMN,eAAiBD,EAAaC,eAEvC,EACDS,iBAAkB,SAAAA,IAChB,OAAO,SAACH,GACNA,EAAML,OAAS,MAEnB,GAEFK,MAAOP,GAGT,IAAMW,EAAuF,CAAA,EAQtF,IAAMC,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAKF,EAAgBE,GAAM,CACzBF,EAAgBE,GAAOC,EAAMX,EAC/B,CACA,OAAOQ,EAAgBE,EACzB,ECkBO,IAAME,EAAYC,GAA4C,SAACC,EAAuBC,GAAQ,IAAAC,EACnG,IAAAC,EAAoCC,EAAyB,IAAtDC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChC,IAAAI,EAA0BH,EAAiB,GAApCI,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GACtB,IAAAG,EAA8BN,EAAkB,OAAzCO,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAAG,EAAyBlB,EAAeK,EAAMc,UAAUC,WAAjDzB,EAAKuB,EAAA,GAAE1B,EAAO0B,EAAA,GACrB,IAAMG,EAAWhB,EAAMgB,YAAQd,EAAIF,EAAMiB,0BAANf,UAAAA,EAAAA,EAA+Bc,WAAY,GAC9E,IAAME,EAAclB,EAAMkB,cAAgBC,UAAY,KAAOnB,EAAMkB,YACnE,IAAAE,EAAgDhB,EAAS,OAAlDiB,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAE5C,IAAMG,EAAUhC,EAAA,CACdiC,KAAM,OACNhB,MAAO,QACPiB,OAAQ,SACRT,SAAU,YACPhB,EAAMuB,YAGX,IAAAG,EAAeC,EAAKC,UAAbC,EAAIH,EAAA,GAEX,IAAMI,EAAYC,EAAMC,gBAAe,SAAO3C,GAAP,OAAA,IAAA4C,SAAA,SAAAC,EAAAC,GAAA,IAG7BC,EACApD,EAA0DqD,EAAAC,EAAAC,EAAAC,EAE1DC,EACAC,EAEAC,EACAC,EAxGZ,IAAIC,aAAJ,IAAI,OAAAX,GAAK,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,GAAlC,IAAIC,EAAA,SA4GSC,GA5Gb,IA6GMpC,EAAW,YACNqC,EAAQD,MAAMA,EAAMC,SA9G/B,OAAOJ,GAAE,CAAC,MAAAC,GAAW,OAAOX,EAAAW,EAAM,GA+F9B,IACElC,EAAW,MACM,OAAAqB,QAAAiB,QAAM/D,EAAQC,sBAAsBC,IAApC8D,eAA2CC,GAjGlE,IAiGYhB,EAAWgB,EACXpE,EAAiBqE,EAAWjB,EAASpD,gBAAkB,CAAE,GAC/DqD,EAAkErC,EAAMsD,cAAhEhB,EAAoBD,EAApBC,qBAAsBR,EAASO,EAATP,UAAWU,EAAoBH,EAApBG,qBACnCC,EAAYH,EAAuBA,EAAqBtD,GAAkBA,EAC9D,OAAAiD,QAAAiB,QAAMpB,EAAUW,IAAhBU,MAA0B,SAAAI,GArGlD,IAqGYb,EAAYa,GAA+B,GACjDvD,EAAMwD,oBAANxD,UAAAA,EAAAA,EAAMwD,mBAAqBd,GACrBC,EAAcH,EAAuBA,EAAqBE,GAAYA,EACtEE,EAAWD,EAAYpB,EAAWC,MACxClB,EAAcmD,EAAQb,GAAYA,EAAW,IAC7CnC,EAASkC,EAAYpB,EAAWf,QAChCI,EAAW,OA3GjB,OAAOiC,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAA1B,CAAC,MAAAD,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EA4G9B,CAAC,MAAOC,GAAOD,EAAPC,EAGT,CAAC,OAGH,IAAMU,EAAsB3B,EAAMC,gBAAe,SAAO2B,GAAP,OAAA,IAAA1B,SAAA,SAAAC,EAAAC,GAC/C,OAAAF,QAAAiB,QAAM/D,EAAQK,wBAAd2D,MAAoC,SAAAS,GAnHxC,IAoHI/B,EAAKgC,cACL,GAAIF,EAAQ,MACLxE,EAAQC,sBAAsBuE,GACnC9B,EAAKiC,eAAeH,EACtB,CAAC,OAAAzB,GAxHI,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EAmHK,OAOtC,IAAM4B,EAAiBhC,EAAMC,gBAAe,SAAO2B,GAAP,OAAA,IAAA1B,SAAA,SAAAC,EAAAC,GAAA,IAAA6B,EAC1C,OAAA/B,QAAAiB,QAAM/D,EAAQK,wBAAd2D,MAAoC,SAAAc,GA3HxC,IA4HIpC,EAAKgC,cACL,GAAIxC,EAAkB,MACfS,EAASvC,GAAAyE,EAAA,CAAA,EAAAA,EACXzC,EAAWE,QAAS,EAACuC,EACrBzC,EAAWP,UAAWA,EAAQgD,GAC5BhE,EAAMkE,cACNP,GAEP,KAAO,MACA7B,EAASvC,EAAA,CAAA,EACTS,EAAMkE,cACNP,GAEP,CAAC,OAAAzB,GAzII,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EA2HK,OAiBtC,IAAMgC,EAAmB,SAAnBA,IACJ,OAAA5E,KACKD,EAAMN,eACN6C,EAAKuC,mBAIZC,EAAoBpE,GAAK,WACvB,MAAO,CACL6B,UAAWA,EACX4B,oBAAAA,EACAS,iBAAAA,EACAJ,eAAAA,EACAlC,KAAAA,EAEJ,IAEA,IAAMyC,EAAwB,SAAxBA,EAAyBC,GAC7BjD,EAAoBiD,IAGtB,IAAMC,EAAe,SAAfA,IACJ,IAAMb,EAAS9B,EAAKuC,iBACpB,GAAIpE,EAAMwE,aAAc,CACtBxE,EAAMwE,aAAab,EACrB,KAAO,CACL,GAAItC,EAAkB,CAAA,IAAAoD,OACf3C,EAASvC,EAAA,GACToE,GAAMc,EAAA,CAAA,EAAAA,EACRlD,EAAWE,QAAS,EAACgD,EACrBlD,EAAWP,UAAW1B,EAAMN,eAAegC,SAAQyD,IAExD,KAAO,MACA3C,EAAU6B,EACjB,CACF,GAGF,OACEe,EAAC5F,EAAoB,CACnB6F,MAAO,CACL7D,SAAUd,EAAMc,SAChBgB,UAAAA,EACA8C,UAAWvE,EACXwE,WAAYrE,EACZG,QAAAA,EACAY,WAAAA,EACAP,SAAAA,EACAE,YAAAA,EACAgD,cAAelE,EAAMkE,eAAiB,CAAE,EACxCI,sBAAAA,EACAjD,iBAAAA,GACAyD,SAEFJ,EAAC/C,EAAI,CACHE,KAAMA,EACNkD,SAAUP,EACVN,cAAa3E,EAAA,CAAA,EACRS,EAAMkE,cACN5E,EAAMN,gBACT8F,SAED9E,EAAM8E,YAIf,IC3JO,IAAME,EAAkB,SAAlBA,EAAmBhF,GAC9B,IAAM6B,EAAOF,EAAKsD,kBAClB,IAAQC,EAAsDlF,EAAtDkF,iBAAkBC,EAAoCnF,EAApCmF,iBAAkBC,EAAkBpF,EAAlBoF,cAE5C,IAAMN,SAAkB9E,EAAM8E,WAAa,WAAa9E,EAAM8E,SAASjD,GAAQ7B,EAAM8E,SACrF,IAAMO,EAAYC,EAASC,QAAQT,GACnC,IAAAU,EAAuF3G,IAA/EiC,EAAQ0E,EAAR1E,SAAUS,EAAUiE,EAAVjE,WAAYO,EAAS0D,EAAT1D,UAAWd,EAAQwE,EAARxE,SAAUK,EAAgBmE,EAAhBnE,iBAAkB6C,EAAasB,EAAbtB,cACrE,IAAArD,EAAoBlB,EAAemB,GAAUC,WAApC5B,EAAO0B,EAAA,GAchB,IAAM4E,EAAU1D,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAAA6B,EACnC,OAAA/B,QAAAiB,QAAM/D,EAAQK,wBAAd2D,MAAoC,SAAAuC,GAzExC,IA0EI7D,EAAKgC,cACL,GAAIxC,EAAkB,CACpBS,EAASvC,GAAAyE,EAAA,CAAA,EAAAA,EACNzC,EAAWE,QAAS,EAACuC,EACrBzC,EAAWoE,SAAU3E,EAAQgD,GAC3BE,GAEP,KAAO,CACLpC,EAAUoC,EACZ,CAAC,OAAAhC,GAnFI,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EAyEK,OAatC,IAAMyD,EAAmBrG,EAAA,CACvBsG,UAAW,GACRX,GAAAA,MAAAA,EAAkBY,QACjBpB,EAACqB,EAAaxG,EAAA,CAASyG,KAAK,UAAUC,SAAS,UAAaf,EAAgB,CAAAJ,UACzEI,eAAAA,EAAkBgB,OAAQ,OADV,KAGjB,OACHf,GAAgB,MAAhBA,EAAkBW,QACjBpB,EAACqB,EAAaxG,EAAA,CAAS4G,QAASV,GAAaN,EAAgB,CAAAL,UAC1DK,eAAAA,EAAkBe,OAAQ,OADV,KAGjB,OAEHd,GAAAA,UAAAA,EAAAA,EAAgBvD,IAGrB,GAAI7B,EAAMoG,OAAQ,CAChB,OAAO1B,EAAC2B,EAAY,CAAAvB,SAAEA,GACxB,CAEA,IAAMwB,EAAkBjB,EACrBkB,KAAI,SAACC,EAAMC,GACV,GAAKD,EAAsBR,KAAK,iBAAmB,UAAW,CAC5D,OAAOQ,CACT,CACA,OAAO9B,EAACgC,EAASC,IAAG,CAAA7B,SAAc0B,GAARC,EAC3B,IACAG,OAAOlC,EAACgC,EAASG,WAAUtH,EAAcqG,CAAAA,EAAAA,GAAR,KAEpC,OACElB,EAAC2B,EAAY,CAAAvB,SACXJ,EAACgC,EAASI,IAAG,CAACC,OAAQ,CAAC,GAAI,GAAGjC,SAAEwB,KAGtC,2CCnGO,IAAMU,EAAiB,SAAjBA,EAAkBhH,GAC7B,IAAQ8E,EAAgD9E,EAAhD8E,SAAUmC,EAAsCjH,EAAtCiH,OAAQC,EAA8BlH,EAA9BkH,WAAeC,EAAUC,EAAKpH,EAAKqH,GAE7D,IAAA7B,EAWI3G,IAVFiC,EAAQ0E,EAAR1E,SACAS,EAAUiE,EAAVjE,WACAO,EAAS0D,EAAT1D,UACA8C,EAASY,EAATZ,UACA1D,EAAWsE,EAAXtE,YACAF,EAAQwE,EAARxE,SACA6D,EAAUW,EAAVX,WACAlE,EAAO6E,EAAP7E,QACAuD,EAAasB,EAAbtB,cACAI,EAAqBkB,EAArBlB,sBAEF,IAAAzD,EAAyBlB,EAAemB,GAAUC,WAA3CzB,EAAKuB,EAAA,GAAE1B,EAAO0B,EAAA,GAErB,IAAMyG,EACJJ,GAAc,MACV,MAAK3H,EAAA,CAEHgI,gBAAiB,KACjBC,QAASlI,EAAMN,eAAeuC,EAAWE,QACzCT,SAAU1B,EAAMN,eAAeuC,EAAWP,UAC1CR,MAAOqE,EACP4C,UAAW,SAAAA,EAACjH,GAAK,MAAA,KAAUA,EAAK,MAAA,GAC7BR,EAAMkH,YAGjB,IAAMQ,EAA6C,SAA7CA,EAA8CC,GAClD,GAAIL,EAAgB,CAAA,IAAA/E,EAClBT,GAASS,EAAA,CAAA,EAAAA,EAAIhB,EAAWP,UAAW2G,EAAK3G,SAAQuB,EAAGhB,EAAWE,QAASkG,EAAKH,QAAOjF,GACrF,CAAC,IAAAqF,IAAAA,EAAAC,UAAAC,OAH0DX,MAAUY,MAAAH,EAAAA,EAAAA,OAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAA,CAAVb,EAAUa,EAAAH,GAAAA,UAAAG,EAAA,CAIrEhI,EAAMiI,UAAQ,UAAA,EAAdjI,EAAMiI,SAAQC,MAAdlI,GAAiB2H,GAAIf,OAAKO,KAG5B,IAAM9G,EAAa8H,GAAQ,WACzB,GAAIvD,EAAUkD,SAAW,EAAG,CAC1B,MAAO,EACT,CACA,GAAIM,EAAkBxD,EAAU,GAAGqC,IAAU,CAC3C,OAAOrC,EAAU2B,KAAI,SAACC,GACpBA,EAAKS,GAAUoB,IACf,OAAO7B,CACT,GACF,CACA,OAAO5B,CACT,GAAG,CAACA,EAAWqC,IAEfqB,EAASC,iBAAgB,WACvBjE,EAAsBgD,IAAmB,OACzC,GAAIpG,IAAgB,QAAU5B,EAAML,OAAQ,CAC1C,GAAIqI,EAAgB,CAAA,IAAAtD,OACblC,EAASvC,GAAAyE,KAAAA,EACXzC,EAAWE,QAAS,EAACuC,EACrBzC,EAAWP,UAAWA,EAAQgD,GAC5BE,GAEP,KAAO,MACApC,EAAUoC,EACjB,CACF,KAAO,MACA/E,EAAQC,sBAAsB8E,EACrC,MACK/E,EAAQM,kBACd,GAAE,IAEH,OACE+I,EAACnC,EAAY,CAAAvB,SACVA,CAAAA,EAAWJ,EAAC2B,EAAY,CAAAvB,SAAEA,IAA2B,KACtDJ,EAAC+D,EAAKlJ,EAAA,CACJmJ,KAAK,QACLC,OAAQ,CAAEC,EAAG,eACbC,SAAQ,MACJ1B,EAAU,CACdD,WAAYI,EACZL,OAAQA,EACRgB,SAAUP,EACV/G,QAASA,EACTN,WAAYA,OAIpB,MCnGaP,EAAYgJ,EAA4BC,EAAgB,CA8BnEC,OAAQhE,EAQRyD,MAAOzB"}
@@ -0,0 +1 @@
1
+ .editable-field-full>.ant-space-item:first-child{flex:1}
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ import './../fba-hooks/index.css';
3
+ import './../icon-wrapper/index.css';
4
+ import './index.css';
5
+ /*! @flatjs/forge MIT @flatbiz/antd */
6
+ import{classNames as n}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/CloseOutlined";import e from"@ant-design/icons/es/icons/CheckOutlined";import{a as i}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{isNumber as t}from"@dimjs/lang/cjs/is-number";import{isString as l}from"@dimjs/lang/cjs/is-string";import a from"@ant-design/icons/es/icons/EditOutlined";import{isUndefinedOrNull as c}from"@flatbiz/utils";import{Space as s}from"antd";import{useState as u,useContext as f,useRef as m,useEffect as d,isValidElement as v}from"react";import{E as p}from"../context-25d0b686.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{I as C}from"../icon-wrapper-ed5fcacc.js";import{jsx as b,jsxs as g}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var j=function j(k){var I=k.value,y=k.onChange,w=k.viewRender,E=k.placeholderValue,P=E===void 0?"-":E,x=k.editRender,z=k.isEditFull,R=k.onClickEditIconPre,O=k.onClickConfirmIconPre,N=k.iconConfig,T=k.onEditCallback,B=k.onConfirmCallback;var F=u(false),H=F[0],V=F[1];var _=f(p);var q=m(I);var A=function(){if(_.isCtx){return k.showEditableIcon===undefined?_.showEditableIcon:k.showEditableIcon}return k.showEditableIcon===undefined?true:k.showEditableIcon}();var D=function(){if(_.isCtx){return k.editable===undefined?_.editable:k.editable}return k.editable||false}();var G=h.useThemeToken();d((function(){V(D)}),[D]);var J=function n(){return new Promise((function(n,r){if(R){return Promise.resolve(R(I)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){q.current=I;V(true);T==null?void 0:T(I);return n()}return e.call(this)}))};var K=N!=null&&N.editIcon?N.editIcon({onClick:J}):b(C,{size:"small",icon:b(a,{}),onClick:J});if(!H){var L=(w?w(k.value):k.value)||P;if(l(L)||t(L)||c(L)||v(L)){if(!A){return L}return g(s,{size:8,children:[b("span",{children:L}),K]})}console.warn("对象作为React子对象无效",L)}var M=function n(){if(I!==q.current){k.onChange==null?void 0:k.onChange(q.current)}V(false)};var Q=function n(r){var e=r;if(typeof r==="object"&&!o(r)&&r.target){var i;e=(i=r.target)==null?void 0:i.value}y==null?void 0:y(e)};var S=function n(){return new Promise((function(n,r){if(O){return Promise.resolve(O(I,q.current)).then(function(n){try{return e.call(this)}catch(n){return r(n)}}.bind(this),r)}function e(){V(false);B==null?void 0:B(I,q.current);return n()}return e.call(this)}))};var U=v(x)?x:x({value:I,onChange:Q});if(!A){return b(U.type,i({value:I,onChange:Q},U.props))}var W=N!=null&&N.confirmIcon?N.confirmIcon({onClick:S}):b(C,{size:"small",icon:b(e,{style:{color:G.colorPrimary}}),onClick:S});var X=N!=null&&N.cancelIcon?N.cancelIcon({onClick:M}):b(C,{size:"small",icon:b(r,{style:{color:G.colorPrimary}}),onClick:M});return g(s,{direction:"horizontal",size:12,style:{display:"flex",paddingRight:6},className:n({"editable-field-full":z},k.className),children:[b(U.type,i({value:I,onChange:Q},U.props)),W,X]})};export{j as EditableField};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport { isValidElement, ReactElement, ReactNode, useContext, useEffect, useRef, useState } from 'react';\nimport { EditableFieldContext } from '../editable-field-provider/context';\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\n\nimport './style.less';\n\nexport interface EditableFieldProps {\n className?: string;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 是否可编辑 */\n editable?: boolean;\n /** 是否显示编辑、确认、取消操作icon,默认值:true */\n showEditableIcon?: boolean;\n /** 点击编辑按钮,操作前,返回reject不会开启编辑效果 */\n onClickEditIconPre?: (value?: TAny) => Promise<void>;\n onEditCallback?: (value?: TAny) => void;\n /** 点击确定按钮,操作前,返回reject不会执行确定功能 */\n onClickConfirmIconPre?: (value?: TAny, preValue?: TAny) => Promise<void>;\n onConfirmCallback?: (value?: TAny, preValue?: TAny) => void;\n /** 组件操作Icon配置 */\n iconConfig?: {\n editIcon?: (options: { onClick: () => void }) => ReactElement;\n confirmIcon?: (options: { onClick: () => void }) => ReactElement;\n cancelIcon?: (options: { onClick: () => void }) => ReactElement;\n };\n}\n\n/**\n * 可编辑字段组件\n * @param props\n * @returns\n * ```\n * 字段渲染有两种状态\n * 1. 只读:如果value类型为复杂格式,必须要通过【viewRender】来进行处理操作,转成简单数据类型\n * 2. 编辑:参数value的格式要求必须满足编辑组件入参value要求\n * 3. 可自定义编辑Icon、确定Icon、取消Icon\n * 4. 可拦截编辑操作、确定操作\n * ```\n */\nexport const EditableField = (props: EditableFieldProps) => {\n const {\n value,\n onChange,\n viewRender,\n placeholderValue = '-',\n editRender,\n isEditFull,\n onClickEditIconPre,\n onClickConfirmIconPre,\n iconConfig,\n onEditCallback,\n onConfirmCallback,\n } = props;\n const [isEdit, setIsEdit] = useState<boolean>(false);\n const ctx = useContext(EditableFieldContext);\n const originalValue = useRef<TAny>(value);\n\n const showEditableIcon = (function () {\n if (ctx.isCtx) {\n return props.showEditableIcon === undefined ? ctx.showEditableIcon : props.showEditableIcon;\n }\n return props.showEditableIcon === undefined ? true : props.showEditableIcon;\n })();\n\n const editable = (function () {\n if (ctx.isCtx) {\n return props.editable === undefined ? ctx.editable : props.editable;\n }\n return props.editable || false;\n })();\n\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n setIsEdit(editable);\n }, [editable]);\n\n const onClickEditIcon = async () => {\n if (onClickEditIconPre) {\n await onClickEditIconPre(value);\n }\n originalValue.current = value;\n setIsEdit(true);\n onEditCallback?.(value);\n };\n\n const editIcon = iconConfig?.editIcon ? (\n iconConfig.editIcon({ onClick: onClickEditIcon })\n ) : (\n <IconWrapper size=\"small\" icon={<EditOutlined />} onClick={onClickEditIcon} />\n );\n\n if (!isEdit) {\n const viewValue = (viewRender ? viewRender(props.value) : props.value) || placeholderValue;\n if (\n isString(viewValue) ||\n isNumber(viewValue) ||\n isUndefinedOrNull(viewValue) ||\n isValidElement(viewValue)\n ) {\n if (!showEditableIcon) {\n return viewValue;\n }\n return (\n <Space size={8}>\n <span>{viewValue}</span>\n {editIcon}\n </Space>\n );\n }\n console.warn('对象作为React子对象无效', viewValue);\n }\n\n const onCancel = () => {\n if (value !== originalValue.current) {\n props.onChange?.(originalValue.current);\n }\n setIsEdit(false);\n };\n\n const onEditChange = (value) => {\n let target = value;\n /** 为了处理 Input、TextArea等onChange取值 */\n if (typeof value === 'object' && !isArray(value) && value.target) {\n target = value.target?.value;\n }\n onChange?.(target);\n };\n\n const onOk = async () => {\n if (onClickConfirmIconPre) {\n await onClickConfirmIconPre(value, originalValue.current);\n }\n setIsEdit(false);\n onConfirmCallback?.(value, originalValue.current);\n };\n\n const editRenderElement = isValidElement(editRender)\n ? editRender\n : editRender({ value: value, onChange: onEditChange });\n\n if (!showEditableIcon) {\n return <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />;\n }\n\n const confirmIcon = iconConfig?.confirmIcon ? (\n iconConfig.confirmIcon({ onClick: onOk })\n ) : (\n <IconWrapper size=\"small\" icon={<CheckOutlined style={{ color: theme.colorPrimary }} />} onClick={onOk} />\n );\n\n const cancelIcon = iconConfig?.cancelIcon ? (\n iconConfig.cancelIcon({ onClick: onCancel })\n ) : (\n <IconWrapper\n size=\"small\"\n icon={<CloseOutlined style={{ color: theme.colorPrimary }} />}\n onClick={onCancel}\n />\n );\n\n return (\n <Space\n direction=\"horizontal\"\n size={12}\n style={{ display: 'flex', paddingRight: 6 }}\n className={classNames({ 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","_useState","useState","isEdit","setIsEdit","ctx","useContext","EditableFieldContext","originalValue","useRef","showEditableIcon","isCtx","undefined","editable","theme","fbaHooks","useThemeToken","useEffect","onClickEditIcon","Promise","$return","$error","resolve","then","$await_3","$If_1","call","this","$boundEx","bind","current","editIcon","onClick","_jsx","IconWrapper","size","icon","_EditOutlined","viewValue","_isString","_isNumber","isUndefinedOrNull","isValidElement","_jsxs","Space","children","console","warn","onCancel","onEditChange","target","_isArray","_value$target","onOk","$await_4","$If_2","editRenderElement","type","_extends","confirmIcon","_CheckOutlined","style","color","colorPrimary","cancelIcon","_CloseOutlined","direction","display","paddingRight","className","_classNames"],"mappings":"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"}
File without changes
@@ -0,0 +1,5 @@
1
+ /* eslint-disable */
2
+ import './index.css';
3
+ /*! @flatjs/forge MIT @flatbiz/antd */
4
+ import{E as e}from"../context-25d0b686.js";import{jsx as r}from"react/jsx-runtime";import"react";var t=function t(i){var o=i.editable===undefined?true:i.editable;var a=i.showEditableIcon===undefined?false:i.showEditableIcon;return r(e.Provider,{value:{editable:o,isCtx:true,showEditableIcon:a},children:i.children})};export{t as EditableFieldProvider};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-field-provider/editable-field-provider.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { EditableFieldContext } from './context';\n\nexport interface EditableFieldProviderProps {\n children: ReactElement;\n editable?: boolean;\n showEditableIcon?: boolean;\n}\n\n/**\n * EditableFieldProvider 控制内部使有的 EditableField 状态\n * @param props\n * @returns\n */\nexport const EditableFieldProvider = (props: EditableFieldProviderProps) => {\n const editable = props.editable === undefined ? true : props.editable;\n const showEditableIcon = props.showEditableIcon === undefined ? false : props.showEditableIcon;\n\n return (\n <EditableFieldContext.Provider value={{ editable, isCtx: true, showEditableIcon }}>\n {props.children}\n </EditableFieldContext.Provider>\n );\n};\n"],"names":["EditableFieldProvider","props","editable","undefined","showEditableIcon","_jsx","EditableFieldContext","Provider","value","isCtx","children"],"mappings":";qGAcaA,EAAwB,SAAxBA,EAAyBC,GACpC,IAAMC,EAAWD,EAAMC,WAAaC,UAAY,KAAOF,EAAMC,SAC7D,IAAME,EAAmBH,EAAMG,mBAAqBD,UAAY,MAAQF,EAAMG,iBAE9E,OACEC,EAACC,EAAqBC,SAAQ,CAACC,MAAO,CAAEN,SAAAA,EAAUO,MAAO,KAAML,iBAAAA,GAAmBM,SAC/ET,EAAMS,UAGb"}
@@ -0,0 +1 @@
1
+ .editable-table{padding-bottom:15px}.editable-table .ant-form-item{margin:0!important}.editable-table .editable-text-view.ant-typography{margin-bottom:0}.editable-input-number-form-item .ant-input-number{width:100%}
@@ -0,0 +1,13 @@
1
+ /* eslint-disable */
2
+ import './../date-picker-wrapper/index.css';
3
+ import './../date-range-picker-wrapper/index.css';
4
+ import './../selector-wrapper/index.css';
5
+ import './../request-status/index.css';
6
+ import './../fba-hooks/index.css';
7
+ import './../upload-wrapper/index.css';
8
+ import './../input-wrapper/index.css';
9
+ import './../input-text-area-wrapper/index.css';
10
+ import './index.css';
11
+ /*! @flatjs/forge MIT @flatbiz/antd */
12
+ import e from"@ant-design/icons/es/icons/PlusOutlined";import{a as n,_ as r}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{Form as a,Checkbox as i,Tag as l,InputNumber as t,Radio as o,Typography as d,Space as u,Button as m,Input as f,Table as s}from"antd";import{useMemo as c,useState as v,useEffect as p,Fragment as g}from"react";import{isArray as b}from"@dimjs/lang/cjs/is-array";import{extend as C}from"@dimjs/utils/cjs/extend";import{classNames as h}from"@dimjs/utils/cjs/class-names";import{hooks as I}from"@wove/react/cjs/hooks";import{jsx as w,jsxs as x,Fragment as R}from"react/jsx-runtime";import{D as N}from"../date-picker-wrapper-407942d1.js";import{D as j}from"../date-range-picker-wrapper-d22d0f60.js";import{I as P}from"../input-wrapper-b378eb5a.js";import{fbaHooks as y}from"../fba-hooks/index.js";import{arrayField2LabelValue as k}from"@flatbiz/utils";import{S as L}from"../selector-wrapper-6560eb49.js";import{isBoolean as F}from"@dimjs/lang/cjs/is-boolean";import{isNumber as T}from"@dimjs/lang/cjs/is-number";import{isString as A}from"@dimjs/lang/cjs/is-string";import{I as O}from"../input-text-area-wrapper-c958fba0.js";import{U as S}from"../upload-wrapper-f20208d6.js";import V from"@ant-design/icons/es/icons/DeleteOutlined";import"dayjs";import"../time-2782aa9b.js";import"../use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status-03fc60e2.js";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-plain-object";import"react-dom";var B=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var G=function e(r){var a=r.fieldConfig,t=a.editableConfig,o=a.editable,d=a.render;var u=t.editableComptProps;var m=c((function(){if(o)return[];var e=b(r.value)?r.value:[];var n=u.options||[];if(!b(n)||n.length===0){return e.map((function(e){return{label:e,value:e}}))}var a=[];e.forEach((function(e){var r=n.find((function(n){return n.value===e}));a.push(r?r:{label:e,value:e})}));return a}),[o,u.options,r.value]);var f=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e)}));if(o){return w(i.Group,n({},u,{value:r.value,onChange:f}))}return w("span",{className:"editable-checkbox-group-view",children:d?d(r.value):m.map((function(e,n){return w(l,{color:"#1890ff",children:e.label},n)}))})};var W=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-checkbox-group-form-item",i==null?void 0:i.className),children:w(G,n({},r))}))};var D=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,className:h("editable-date-picker-wraper-form-item",l==null?void 0:l.className),children:w(N,n({allowClear:true},t.editableComptProps))}))};var _=function e(r){var a=r.fieldConfig,i=a.editableConfig,l=a.editable,t=a.render;var o=i.editableComptProps;var d=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null?void 0:o.onChange==null?void 0:o.onChange(e)}));var u=c((function(){var e=b(r.value)?r.value:[];if(l)return undefined;return e.join("~")}),[l,r.value]);if(l){return w(j,n({allowClear:true},o,{value:r.value,onChange:d}))}return w("span",{className:"editable-date-range-picker-view",children:t?t(r.value):u})};var E=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-date-range-picker-wraper-form-item",i==null?void 0:i.className),children:w(_,n({},r))}))};var M=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,children:w(P,n({allowClear:true},t.editableComptProps))}))};var q=function e(r){var i=r.fieldConfig,l=i.formItemProps,o=i.editableConfig;return w(a.Item,n({},l,{name:r.name,className:h("editable-input-number-form-item",l==null?void 0:l.className),children:w(t,n({},o.editableComptProps))}))};var z=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,d=a.render;var u=i.editableComptProps;var m=y.useThemeToken();var f=c((function(){if(t)return[];var e=r.value;var n=u.options||[];if(!b(n)||n.length===0){return e}var a=n.find((function(n){return n.value===e}));return(a==null?void 0:a.label)||e}),[t,u.options,r.value]);var s=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);u.onChange==null?void 0:u.onChange(e)}));if(t){return w(o.Group,n({},u,{value:r.value,onChange:s}))}return w("span",{className:"editable-radio-group-view",children:d?d(r.value):f?w(l,{color:m.colorPrimary,children:f}):null})};var H=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-radio-group-form-item",i==null?void 0:i.className),children:w(z,n({},r))}))};var J=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,o=a.render;var d=i.editableComptProps;var u=v([]),m=u[0],f=u[1];var s=v([]),c=s[0],C=s[1];var h=y.useThemeToken();p((function(){if(!t){var e=b(r.value)?r.value:r.value===undefined?[]:[r.value];if(m.length===0){C(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=m.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));C(n)}}),[t,d.fieldNames,r.value,m]);var R=I.useCallbackRef((function(e){f(k(e||[],d.fieldNames))}));var N=I.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);d.onChange==null?void 0:d.onChange(e,n)}));if(t){return w(L,n({},d,{value:r.value,onChange:N,onSelectorListAllChange:R}))}return x(g,{children:[w("div",{style:{display:"none"},children:w(L,n({},d,{onSelectorListAllChange:R}))}),w("span",{className:"editable-selector-view",children:o?o(r.value,m):c.map((function(e,n){return w(l,{color:h.colorPrimary,children:e.label},n)}))})]})};var K=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-selector-wrapper-form-item",i==null?void 0:i.className),children:w(J,n({},r))}))};var U=function e(n){var r,a;var i=c((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=A(n.value)||T(n.value)||F(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var l=((a=n.fieldConfig)==null?void 0:a.render==null?void 0:a.render(n.value))||i;return w(d.Paragraph,{className:"editable-text-view",ellipsis:A(l)?{tooltip:l}:true,children:l})};var Q=function e(n){return w(a.Item,{noStyle:true,name:n.name,children:w(U,{name:n.name,fieldConfig:n.fieldConfig})})};var X=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,children:w(O,n({},t.editableComptProps))}))};var Y=["children"];var Z=function e(a){var i=a.fieldConfig,l=i.editableConfig,t=i.render,o=i.editable;var d=l.editableComptProps,u=d.children,m=r(d,Y);if(o){return w(S,n({listType:"text"},m,{value:a.value,onChange:a.onChange,children:u}))}return w("div",{className:"upload-wrapper-selector-view",children:t?t(a.value):w(S,n({listType:"text"},m,{value:a.value,disabled:true}))})};var $=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-upload-wrapper-form-item",i==null?void 0:i.className),children:w(Z,n({},r))}))};var ee=function e(r){var a=r.fieldConfig,i=a.editableConfig,l=a.editable;var t=B(l,r.tableRowIndex);var o=C({},r.fieldConfig,{editable:t});var d={name:r.name,fieldConfig:o};if((i==null?void 0:i.type)==="input"&&t){return w(M,n({},d))}else if((i==null?void 0:i.type)==="inputNumber"&&t){return w(q,n({},d))}else if((i==null?void 0:i.type)==="textArea"&&t){return w(X,n({},d))}else if((i==null?void 0:i.type)==="datePickerWrapper"&&t){return w(D,n({},d))}else if((i==null?void 0:i.type)==="dateRangePickerWrapper"){return w(E,n({},d))}else if((i==null?void 0:i.type)==="selectorWrapper"){return w(K,n({},d))}else if((i==null?void 0:i.type)==="checkboxGroup"){return w(W,n({},d))}else if((i==null?void 0:i.type)==="radioGroup"){return w(H,n({},d))}else if((i==null?void 0:i.type)==="uploadWrapper"){return w($,n({},d))}else if((i==null?void 0:i.type)==="custom"){return i.editableComptProps({name:r.name,editable:t,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return w(Q,n({},d))};var ne=function e(n){var r=a.useFormInstance();var i=n.formListConfig,l=i.onFormListBeforeRender,t=i.editableConfigList,o=i.onFormListAfterRender,d=i.onFormListItemBeforeRender,m=i.onFormListItemAfterRender,f=i.deleteOperateRender;return w(a.List,{name:n.name,children:function e(a,i){var s=i.add,c=i.remove;return x(R,{children:[l?l({tableRowIndex:n.tableRowIndex,add:s,get value(){return r.getFieldValue(n.completeName)}}):null,a.map((function(e,a){var i=t.find((function(e){return B(e.editable,n.tableRowIndex)}));var l=h("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!i});return x("div",{className:l,children:[d==null?void 0:d({add:s,remove:function e(){c(a)},formListItemIndex:a,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),x(u,{children:[t.map((function(r,a){return w(ee,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},a)})),i?w(re,{deleteOperateRender:f,remove:function e(){c(a)},index:a}):undefined]}),m==null?void 0:m({add:s,formListItemIndex:a,tableRowIndex:n.tableRowIndex,remove:function e(){c(a)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},a)})),o?o({tableRowIndex:n.tableRowIndex,add:s,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var re=function e(n){return w(a.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):w(m,{type:"link",danger:true,icon:w(V,{}),onClick:n.remove,children:"删除"})})};var ae=function e(n){if(n.fieldConfig){if(b(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return w(ne,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return x(g,{children:[w(ee,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?w(a.Item,{hidden:true,name:n.hiddenField.dataIndex,children:w(f,{})}):null]})}}return w(Q,{name:n.name})};var ie=["fieldConfig","renderMiddleware"];var le=function i(l){var t;var o=c((function(){if(!l.columns)return[];return l.columns.map((function(e){var a=e.fieldConfig,i=e.renderMiddleware,t=r(e,ie);return n({onCell:function e(){var n;return{valign:((n=l.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},t,{render:function n(r,t){var o=[l.name,t.name];var d=e.dataIndex?[].concat(o,[e.dataIndex]):o;var u=i==null?void 0:i({name:d,tableRowIndex:t.name,operation:t.operation,tableRowName:o});if(u){return u}var m=typeof a==="function"?a({name:d,tableRowIndex:t.name,tableRowName:o}):a;return w(ae,{name:e.dataIndex?[t.name,e.dataIndex]:[t.name],completeName:d,fieldConfig:m,tableRowIndex:t.name,hiddenField:e.hiddenField})}})}))}),[l.columns,l.name,(t=l.tableProps)==null?void 0:t.cellVerticalAlign]);return w("div",{className:"editable-table",children:w(a.List,{name:l.name,rules:l.rules,children:function r(a,i){return x(g,{children:[l.onTableBeforeRender?l.onTableBeforeRender(i,a.length):null,w(s,n({scroll:{x:"max-content"},pagination:false,rowKey:"key"},l.tableProps,{dataSource:a.map((function(e){return n({},e,{operation:i})})),columns:o})),l.onTableAfterRender?l.onTableAfterRender(i,a.length):w(m,{type:"dashed",onClick:function e(){return i.add()},block:true,icon:w(e,{}),style:{marginTop:15},children:"新增"})]})}})})};export{le as EditableTable};
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table/utils.ts","@flatbiz/antd/src/editable-table/form-item/checkbox-group.tsx","@flatbiz/antd/src/editable-table/form-item/date-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/date-range-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/input.tsx","@flatbiz/antd/src/editable-table/form-item/input-number.tsx","@flatbiz/antd/src/editable-table/form-item/radio-group.tsx","@flatbiz/antd/src/editable-table/form-item/selector-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/text.tsx","@flatbiz/antd/src/editable-table/form-item/textarea.tsx","@flatbiz/antd/src/editable-table/form-item/upload-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/index.tsx","@flatbiz/antd/src/editable-table/form-list-item/form-list.tsx","@flatbiz/antd/src/editable-table/form-list-item/index.tsx","@flatbiz/antd/src/editable-table/editable-table.tsx"],"sourcesContent":["import { FieldSingleConfig } from './type';\n\nexport const getEditable = (editable: FieldSingleConfig['editable'], tableRowIndex: number) => {\n return typeof editable === 'boolean' ? editable : editable?.({ tableRowIndex });\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableCheckboxGroupConfig, EditableFormItemProps } from '../type';\n\ntype CheckboxGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst CheckboxGroupFormItemContent = (props: CheckboxGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableCheckboxGroupConfig).editableComptProps;\n const viewLabelList = useMemo(() => {\n if (editable) return [];\n const value = isArray(props.value) ? props.value : ([] as TAny[]);\n const options = (editableComptProps.options || []) as LabelValueItem[];\n if (!isArray(options) || options.length === 0) {\n return value.map((item) => ({ label: item, value: item }));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = options.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: item, value: item });\n });\n return returnList;\n }, [editable, editableComptProps.options, props.value]);\n\n const onChange = hooks.useCallbackRef((value) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value);\n });\n\n if (editable) {\n return <Checkbox.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-checkbox-group-view\">\n {render\n ? render(props.value)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color=\"#1890ff\">\n {tag.label}\n </Tag>\n ))}\n </span>\n );\n};\n\nexport const CheckboxGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-checkbox-group-form-item', formItemProps?.className)}\n >\n <CheckboxGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { DatePickerWrapper } from '../../date-picker-wrapper';\nimport { EditableDatePickerWrapperConfig, EditableFormItemProps } from '../type';\n\nexport const DatePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-picker-wraper-form-item', formItemProps?.className)}\n >\n <DatePickerWrapper\n allowClear\n {...(editableConfig as EditableDatePickerWrapperConfig).editableComptProps}\n />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { DateRangePickerWrapper } from '../../date-range-picker-wrapper';\nimport { EditableDateRangePickerWrapperConfig, EditableFormItemProps } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableDateRangePickerWrapperConfig).editableComptProps;\n\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewLabel = useMemo(() => {\n const value = isArray(props.value) ? props.value : ([] as any[]);\n if (editable) return undefined;\n return value.join('~');\n }, [editable, props.value]);\n\n if (editable) {\n return (\n <DateRangePickerWrapper allowClear {...editableComptProps} value={props.value} onChange={onChange} />\n );\n }\n return <span className=\"editable-date-range-picker-view\">{render ? render(props.value) : viewLabel}</span>;\n};\n\nexport const DateRangePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-range-picker-wraper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputWrapper } from '../../input-wrapper';\nimport { EditableFormItemProps, EditableInputConfig } from '../type';\n\nexport const InputFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputWrapper allowClear {...(editableConfig as EditableInputConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form, InputNumber } from 'antd';\nimport { EditableFormItemProps, EditableInputNumberConfig } from '../type';\n\nexport const InputNumberFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-input-number-form-item', formItemProps?.className)}\n >\n <InputNumber {...(editableConfig as EditableInputNumberConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport { EditableFormItemProps, EditableRadioGroupConfig } from '../type';\n\ntype RadioGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number;\n onChange?: (value: string | number) => void;\n};\n\nconst RadioGroupFormItemContent = (props: RadioGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableRadioGroupConfig).editableComptProps;\n\n const theme = fbaHooks.useThemeToken();\n\n const viewLabel = useMemo(() => {\n if (editable) return [];\n const value = props.value;\n const options = (editableComptProps.options || []) as LabelValueItem<string | number>[];\n if (!isArray(options) || options.length === 0) {\n return value;\n }\n const target = options.find((item) => item.value === value);\n return target?.label || value;\n }, [editable, editableComptProps.options, props.value]);\n\n const onChange = hooks.useCallbackRef((e) => {\n props.onChange?.(e.target.value as string | number);\n editableComptProps.onChange?.(e);\n });\n\n if (editable) {\n return <Radio.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-radio-group-view\">\n {render ? render(props.value) : viewLabel ? <Tag color={theme.colorPrimary}>{viewLabel}</Tag> : null}\n </span>\n );\n};\n\nexport const RadioGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-radio-group-form-item', formItemProps?.className)}\n >\n <RadioGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { arrayField2LabelValue, LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { Fragment, useEffect, useState } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport { SelectorWrapper } from '../../selector-wrapper';\nimport { EditableFormItemProps, EditableSelectWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSelectWrapperConfig).editableComptProps;\n const [selectorList, setSelectorList] = useState<LabelValueItem[]>([]);\n const [viewLabelList, setviewLabelList] = useState<LabelValueItem[]>([]);\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n if (!editable) {\n const value = isArray(props.value) ? props.value : props.value === undefined ? [] : [props.value];\n if (selectorList.length === 0) {\n setviewLabelList(value.map((item) => ({ label: item as string, value: item })));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = selectorList.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: String(item), value: item });\n });\n setviewLabelList(returnList);\n }\n }, [editable, editableComptProps.fieldNames, props.value, selectorList]);\n\n const onSelectorListAllChange = hooks.useCallbackRef((dataList: TPlainObject[]) => {\n setSelectorList(arrayField2LabelValue(dataList || [], editableComptProps.fieldNames));\n });\n\n const onChange = hooks.useCallbackRef((value, selectList) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value, selectList);\n });\n\n if (editable) {\n return (\n <SelectorWrapper\n {...editableComptProps}\n value={props.value}\n onChange={onChange}\n onSelectorListAllChange={onSelectorListAllChange}\n />\n );\n }\n return (\n <Fragment>\n <div style={{ display: 'none' }}>\n <SelectorWrapper {...editableComptProps} onSelectorListAllChange={onSelectorListAllChange} />\n </div>\n <span className=\"editable-selector-view\">\n {render\n ? render(props.value, selectorList)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={theme.colorPrimary}>\n {tag.label}\n </Tag>\n ))}\n </span>\n </Fragment>\n );\n};\n\nexport const SelectorWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-selector-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form, Typography } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, FieldSingleConfig } from '../type';\n\nconst FormItemTextContent = (props: {\n value?: string | number;\n name: EditableFormItemProps['name'];\n fieldConfig?: FieldSingleConfig;\n}) => {\n const value = useMemo(() => {\n if (props.fieldConfig?.render) return undefined;\n const isBaseData =\n isString(props.value) || isNumber(props.value) || isBoolean(props.value) || !props.value;\n if (!isBaseData) {\n console.warn(`Form.List name:【${props.name}】数据【${JSON.stringify(props.value)}】不能渲染在页面中`);\n }\n return isBaseData ? props.value : undefined;\n }, [props.fieldConfig?.render, props.name, props.value]);\n const viewText = props.fieldConfig?.render?.(props.value) || value;\n return (\n <Typography.Paragraph\n className=\"editable-text-view\"\n ellipsis={isString(viewText) ? { tooltip: viewText } : true}\n >\n {viewText}\n </Typography.Paragraph>\n );\n};\n\nexport const TextFormItem = (props: { name: Array<number | string>; fieldConfig?: FieldSingleConfig }) => {\n return (\n <Form.Item noStyle name={props.name}>\n <FormItemTextContent name={props.name} fieldConfig={props.fieldConfig} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputTextAreaWrapper } from '../../input-text-area-wrapper';\nimport { EditableFormItemProps, EditableTextareaConfig } from '../type';\n\nexport const TextAreaFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputTextAreaWrapper {...(editableConfig as EditableTextareaConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { UploadWrapper } from '../../upload-wrapper';\nimport { EditableFileUploadConfig, EditableFormItemProps } from '../type';\n\nconst UploadWrapperFormItemContent = (\n props: EditableFormItemProps & { value?: TAny; onChange?: (value?: TAny) => void },\n) => {\n const { editableConfig, render, editable } = props.fieldConfig;\n const { children, ...otherProps } = (editableConfig as EditableFileUploadConfig).editableComptProps;\n if (editable) {\n return (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} onChange={props.onChange}>\n {children}\n </UploadWrapper>\n );\n }\n return (\n <div className=\"upload-wrapper-selector-view\">\n {render ? (\n render(props.value)\n ) : (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} disabled={true} />\n )}\n </div>\n );\n};\n\nexport const UploadWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-upload-wrapper-form-item', formItemProps?.className)}\n >\n <UploadWrapperFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { extend } from '@dimjs/utils';\nimport { FieldSingleConfig } from '../type';\nimport { getEditable } from '../utils';\nimport { CheckboxGroupFormItem } from './checkbox-group';\nimport { DatePickerWrapperFormItem } from './date-picker-wrapper';\nimport { DateRangePickerWrapperFormItem } from './date-range-picker-wrapper';\nimport { InputFormItem } from './input';\nimport { InputNumberFormItem } from './input-number';\nimport { RadioGroupFormItem } from './radio-group';\nimport { SelectorWrapperFormItem } from './selector-wrapper';\nimport { TextFormItem } from './text';\nimport { TextAreaFormItem } from './textarea';\nimport { UploadWrapperFormItem } from './upload-wrapper';\n\nexport type FormItemAdapterProps = {\n name: Array<number | string>;\n completeName: Array<number | string>;\n fieldConfig: FieldSingleConfig;\n tableRowIndex: number;\n};\n\nexport const FormItemAdapter = (props: FormItemAdapterProps) => {\n const { editableConfig, editable } = props.fieldConfig;\n const newEditable = getEditable(editable, props.tableRowIndex);\n const fieldConfig = extend({}, props.fieldConfig, { editable: newEditable });\n\n const commomProps = {\n name: props.name,\n fieldConfig,\n };\n\n if (editableConfig?.type === 'input' && newEditable) {\n return <InputFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'inputNumber' && newEditable) {\n return <InputNumberFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'textArea' && newEditable) {\n return <TextAreaFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'datePickerWrapper' && newEditable) {\n return <DatePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'dateRangePickerWrapper') {\n return <DateRangePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'selectorWrapper') {\n return <SelectorWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'checkboxGroup') {\n return <CheckboxGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'radioGroup') {\n return <RadioGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'uploadWrapper') {\n return <UploadWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'custom') {\n return editableConfig.editableComptProps({\n name: props.name,\n editable: newEditable,\n completeName: props.completeName,\n tableRowIndex: props.tableRowIndex,\n });\n }\n\n return <TextFormItem {...commomProps} />;\n};\n","import { DeleteOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Button, Form, Space } from 'antd';\nimport { FormItemAdapter } from '../form-item';\nimport { FormListConfig } from '../type';\nimport { getEditable } from '../utils';\n\nexport type FormListProps = {\n name: Array<number | string>;\n formListConfig: FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n};\n\nexport const FormList = (props: FormListProps) => {\n const from = Form.useFormInstance();\n const {\n onFormListBeforeRender,\n editableConfigList,\n onFormListAfterRender,\n onFormListItemBeforeRender,\n onFormListItemAfterRender,\n deleteOperateRender,\n } = props.formListConfig;\n return (\n <Form.List name={props.name}>\n {(fields, { add, remove }) => (\n <>\n {onFormListBeforeRender\n ? onFormListBeforeRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n {fields.map((fieldChild, index) => {\n const hasEditable = editableConfigList.find((item) =>\n getEditable(item.editable, props.tableRowIndex),\n );\n const className = classNames(\n 'editable-inner-formlist-item',\n `editable-inner-formlist-item-${props.name[1]}`,\n { 'editable-inner-formlist-item_preview': !hasEditable },\n );\n return (\n <div key={index} className={className}>\n {onFormListItemBeforeRender?.({\n add,\n remove: () => {\n remove(index);\n },\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n <Space>\n {editableConfigList.map((fieldItem, index) => {\n return (\n <FormItemAdapter\n name={[fieldChild.name, fieldItem.fieldName]}\n fieldConfig={fieldItem}\n key={index}\n tableRowIndex={props.tableRowIndex}\n completeName={[...props.completeName, fieldChild.name]}\n />\n );\n })}\n {hasEditable ? (\n <DeleteFormListItem\n deleteOperateRender={deleteOperateRender}\n remove={() => {\n remove(index);\n }}\n index={index}\n />\n ) : undefined}\n </Space>\n {onFormListItemAfterRender?.({\n add,\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n remove: () => {\n remove(index);\n },\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n </div>\n );\n })}\n {onFormListAfterRender\n ? onFormListAfterRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n </>\n )}\n </Form.List>\n );\n};\n\nconst DeleteFormListItem = (props: {\n deleteOperateRender: FormListConfig['deleteOperateRender'];\n remove: () => void;\n index: number;\n}) => {\n return (\n <Form.Item>\n {props.deleteOperateRender ? (\n props.deleteOperateRender({ remove: props.remove, formListItemIndex: props.index })\n ) : (\n <Button type=\"link\" danger icon={<DeleteOutlined />} onClick={props.remove}>\n 删除\n </Button>\n )}\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { Form, Input } from 'antd';\nimport { Fragment } from 'react';\nimport { FormItemAdapter } from '../form-item';\nimport { TextFormItem } from '../form-item/text';\nimport { FieldSingleConfig, FormListConfig } from '../type';\nimport { FormList } from './form-list';\n\nexport type FormListItemProps = {\n name: Array<number | string>;\n fieldConfig?: FieldSingleConfig | FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n hiddenField?: { dataIndex: string };\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n if (isArray(props.fieldConfig['editableConfigList'])) {\n const formListConfig = props.fieldConfig as FormListConfig;\n return (\n <FormList\n name={props.name}\n completeName={props.completeName}\n formListConfig={formListConfig}\n tableRowIndex={props.tableRowIndex}\n />\n );\n } else {\n return (\n <Fragment>\n <FormItemAdapter\n name={props.name}\n fieldConfig={props.fieldConfig as FieldSingleConfig}\n tableRowIndex={props.tableRowIndex}\n completeName={props.completeName}\n />\n {props.hiddenField ? (\n <Form.Item hidden={true} name={props.hiddenField.dataIndex}>\n <Input />\n </Form.Item>\n ) : null}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { Button, Form, Table, TableProps } from 'antd';\nimport { FormListOperation, FormListProps } from 'antd/lib/form/FormList';\nimport { ColumnsType } from 'antd/lib/table';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { FormListItem } from './form-list-item';\nimport './style.less';\nimport { EditableTableName, EditableTableRecordType, FieldSingleConfig, FormListConfig } from './type';\n\ntype fieldConfigFunctionParams = {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?: {\n dataIndex: string;\n };\n /**\n * 渲染中间件,如果renderMiddleware返回值为ReactElement格式,则会终止后续逻辑,fieldConfig配置将失效\n * ```\n * 1. tableRowIndex: 当前row的索引值\n * 2. name: 当前table单元格的form.item的name值\n * 3. operation Form.List的操作函数\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n }) => ReactElement | null;\n};\n\nexport type EditableTableProps = {\n name: string;\n /**\n * ```\n * antd table属性\n * 1. 新增cellVerticalAlign,单元格竖直方向对齐方式,设置table column onCell属性后失效\n * ```\n */\n tableProps?: Omit<TableProps<EditableTableRecordType>, 'dataSource' | 'columns' | 'rowKey'> & {\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n columns: EditableTableColumn[];\n onTableBeforeRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /**\n * 设置后,将覆盖底部`新增`按钮\n */\n onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n rules?: FormListProps['rules'];\n};\n\nexport const EditableTable = (props: EditableTableProps) => {\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const { fieldConfig, renderMiddleware, ...otherColumnItem } = columnItem;\n return {\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (_value, record) => {\n const tableRowName = [props.name, record.name];\n const completeName = columnItem.dataIndex ? [...tableRowName, columnItem.dataIndex] : tableRowName;\n const customRender = renderMiddleware?.({\n name: completeName,\n tableRowIndex: record.name,\n operation: record.operation,\n tableRowName,\n });\n if (customRender) {\n return customRender;\n }\n\n const fieldConfigActual =\n typeof fieldConfig === 'function'\n ? fieldConfig({\n name: completeName,\n tableRowIndex: record.name,\n tableRowName,\n })\n : fieldConfig;\n return (\n <FormListItem\n name={columnItem.dataIndex ? [record.name, columnItem.dataIndex] : [record.name]}\n completeName={completeName}\n fieldConfig={fieldConfigActual}\n tableRowIndex={record.name}\n hiddenField={columnItem.hiddenField}\n />\n );\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [props.columns, props.name, props.tableProps?.cellVerticalAlign]);\n\n return (\n <div className=\"editable-table\">\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation) => {\n return (\n <Fragment>\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n rowKey=\"key\"\n {...props.tableProps}\n dataSource={fields.map((item) => ({ ...item, operation: formListOperation }))}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <Button\n type=\"dashed\"\n onClick={() => formListOperation.add()}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </Button>\n )}\n </Fragment>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","viewLabelList","useMemo","value","_isArray","options","length","map","item","label","returnList","forEach","target","find","temp","push","onChange","_hooks","useCallbackRef","_jsx","Checkbox","Group","_extends","className","children","tag","index","Tag","color","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","theme","fbaHooks","useThemeToken","e","Radio","colorPrimary","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","setviewLabelList","useEffect","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","SelectorWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","Typography","Paragraph","ellipsis","tooltip","TextFormItem","noStyle","TextAreaFormItem","InputTextAreaWrapper","UploadWrapperFormItemContent","_editableComptProps","otherProps","_objectWithoutPropertiesLoose","_excluded","UploadWrapper","listType","disabled","UploadWrapperFormItem","FormItemAdapter","newEditable","_extend","commomProps","type","completeName","FormList","from","useFormInstance","_props$formListConfig","formListConfig","onFormListBeforeRender","editableConfigList","onFormListAfterRender","onFormListItemBeforeRender","onFormListItemAfterRender","deleteOperateRender","List","fields","_ref","add","remove","_Fragment","getFieldValue","fieldChild","hasEditable","formListItemIndex","concat","Space","fieldItem","fieldName","DeleteFormListItem","Button","danger","icon","_DeleteOutlined","onClick","FormListItem","hiddenField","hidden","dataIndex","Input","EditableTable","_props$tableProps2","columns","columnItem","renderMiddleware","otherColumnItem","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","_value","record","tableRowName","customRender","operation","fieldConfigActual","rules","formListOperation","onTableBeforeRender","Table","scroll","x","pagination","rowKey","dataSource","onTableAfterRender","block","_PlusOutlined","marginTop"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .v-editor-wrapper{height:100%;width:100%}
@@ -0,0 +1,5 @@
1
+ /* eslint-disable */
2
+ import './index.css';
3
+ /*! @flatjs/forge MIT @flatbiz/antd */
4
+ import{Editor as e}from"@wove/react/cjs/editor";import{a as t}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as i}from"@wove/react/cjs/hooks";import{jsx as a}from"react/jsx-runtime";var r=function r(n){var o=i.useCallbackRef((function(e,t){var i=t.getContent();var a=i?i:undefined;n.onChange==null?void 0:n.onChange(a)}));return a("div",{className:"v-editor-wrapper",children:a(e,t({value:n.value,cdnTinyMce:"https://file.40017.cn/tcsk/tinymce/tinymce.min.js",init:t({height:n.height||300,menubar:true,language:"zh_CN",paste_retain_style_properties:"all",table_default_styles:{width:"100%"},plugins:"advlist lists image charmap preview visualblocks code hr print media table paste help template",toolbar:["undo redo template","formatselect bold italic backcolor bullist numlist","outdent indent alignleft aligncenter alignright alignjustify","textmark untextmark code preview","link image help"].join("|"),fontsize_formats:"8px 10px 12px 14px 16px 18px 24px 36px 48px",autoresize_bottom_margin:50},n.editorInitParams)},n.editorProps,{onEditorChange:o}))})};export{r as EditorWrapper};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editor-wrapper/editor-wrapper.tsx"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { Editor, hooks } from '@wove/react';\nimport { CSSProperties } from 'react';\nimport './style.less';\nimport { varStyles } from './types';\n\nexport type EditorWrapperProps = {\n onChange?: (data?: string) => void;\n value?: string;\n editorInitParams?: TPlainObject;\n editorProps?: TPlainObject;\n varStyle?: Record<varStyles, CSSProperties['color']>;\n height?: number | string;\n};\n\n/**\n * 富文本编辑器,配置参考tinymce\n * @param props\n * @returns\n */\nexport const EditorWrapper = (props: EditorWrapperProps) => {\n const onChange = hooks.useCallbackRef((_, editor) => {\n const content = editor.getContent();\n const respValue = content ? content : undefined;\n props.onChange?.(respValue);\n });\n\n // const varStyleString = useMemo(() => {\n // const merge = { ...defaultVarStyle, ...props.varStyle };\n // let varStyleString = '';\n // Object.keys(merge).map((key) => {\n // varStyleString += `${key}:${merge[key]};`;\n // });\n // return varStyleString;\n // }, [props.varStyle]);\n\n return (\n <div className=\"v-editor-wrapper\">\n <Editor\n value={props.value}\n cdnTinyMce=\"https://file.40017.cn/tcsk/tinymce/tinymce.min.js\"\n init={{\n height: props.height || 300,\n menubar: true,\n language: 'zh_CN',\n paste_retain_style_properties: 'all',\n table_default_styles: {\n width: '100%',\n },\n plugins:\n 'advlist lists image charmap preview visualblocks code hr print media table paste help template',\n toolbar: [\n 'undo redo template',\n 'formatselect bold italic backcolor bullist numlist',\n 'outdent indent alignleft aligncenter alignright alignjustify',\n 'textmark untextmark code preview',\n 'link image help',\n ].join('|'),\n fontsize_formats: '8px 10px 12px 14px 16px 18px 24px 36px 48px',\n autoresize_bottom_margin: 50,\n // templates: [\n // editorTemplates.block,\n // editorTemplates.primary_p,\n // editorTemplates.secondary_p,\n // editorTemplates.warning_p,\n // editorTemplates.danger_p,\n // editorTemplates.success_p,\n // editorTemplates.p,\n // ],\n // template_replace_values: {\n // varStyle: varStyleString,\n // },\n // template_preview_replace_values: {\n // varStyle: varStyleString,\n // },\n ...props.editorInitParams,\n }}\n {...props.editorProps}\n onEditorChange={onChange}\n />\n </div>\n );\n};\n\n/**\n * undo redo\n * codesample\n * fontselect fontsizeselect formatselect\n * image media link anchor\n * preview save print\n * emoticons(表情)\n */\n"],"names":["EditorWrapper","props","onChange","_hooks","useCallbackRef","_","editor","content","getContent","respValue","undefined","_jsx","className","children","_Editor","_extends","value","cdnTinyMce","init","height","menubar","language","paste_retain_style_properties","table_default_styles","width","plugins","toolbar","join","fontsize_formats","autoresize_bottom_margin","editorInitParams","editorProps","onEditorChange"],"mappings":";uMAoBaA,EAAgB,SAAhBA,EAAiBC,GAC5B,IAAMC,EAAWC,EAAMC,gBAAe,SAACC,EAAGC,GACxC,IAAMC,EAAUD,EAAOE,aACvB,IAAMC,EAAYF,EAAUA,EAAUG,UACtCT,EAAMC,UAAND,UAAAA,EAAAA,EAAMC,SAAWO,EACnB,IAWA,OACEE,EAAA,MAAA,CAAKC,UAAU,mBAAkBC,SAC/BF,EAAAG,EAAAC,EAAA,CACEC,MAAOf,EAAMe,MACbC,WAAW,oDACXC,KAAIH,EAAA,CACFI,OAAQlB,EAAMkB,QAAU,IACxBC,QAAS,KACTC,SAAU,QACVC,8BAA+B,MAC/BC,qBAAsB,CACpBC,MAAO,QAETC,QACE,iGACFC,QAAS,CACP,qBACA,qDACA,+DACA,mCACA,mBACAC,KAAK,KACPC,iBAAkB,8CAClBC,yBAA0B,IAgBvB5B,EAAM6B,mBAEP7B,EAAM8B,YAAW,CACrBC,eAAgB9B,MAIxB"}
File without changes