@flatbiz/antd 4.5.55 → 4.5.57

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 (243) hide show
  1. package/esm/ace-editor-groovy/index.js +1 -1
  2. package/esm/ace-editor-groovy/index.js.map +1 -1
  3. package/esm/ace-editor-java/index.js +1 -1
  4. package/esm/ace-editor-java/index.js.map +1 -1
  5. package/esm/ace-editor-json/index.js +1 -1
  6. package/esm/ace-editor-json/index.js.map +1 -1
  7. package/esm/ace-editor-mysql/index.js +1 -1
  8. package/esm/ace-editor-mysql/index.js.map +1 -1
  9. package/esm/ace-editor-xml/index.js +1 -1
  10. package/esm/ace-editor-xml/index.js.map +1 -1
  11. package/esm/anchor-steps/index.js +1 -1
  12. package/esm/anchor-steps/index.js.map +1 -1
  13. package/esm/bootstrap/index.js +1 -1
  14. package/esm/bootstrap/index.js.map +1 -1
  15. package/esm/box-grid/index.js +1 -1
  16. package/esm/box-grid/index.js.map +1 -1
  17. package/esm/button-operate/index.js +1 -1
  18. package/esm/button-operate/index.js.map +1 -1
  19. package/esm/button-wrapper/index.js +1 -1
  20. package/esm/button-wrapper/index.js.map +1 -1
  21. package/esm/card-layout/index.css +1 -1
  22. package/esm/card-layout/index.js +1 -1
  23. package/esm/card-layout/index.js.map +1 -1
  24. package/esm/cascader-wrapper/index.js +1 -1
  25. package/esm/cascader-wrapper/index.js.map +1 -1
  26. package/esm/check-list/index.js +1 -1
  27. package/esm/check-list/index.js.map +1 -1
  28. package/esm/checkbox-wrapper/index.js +1 -1
  29. package/esm/checkbox-wrapper/index.js.map +1 -1
  30. package/esm/code-render/index.css +1 -0
  31. package/esm/code-render/index.js +5 -0
  32. package/esm/code-render/index.js.map +1 -0
  33. package/esm/color-picker-wrapper/index.css +1 -1
  34. package/esm/color-picker-wrapper/index.js +1 -1
  35. package/esm/color-picker-wrapper/index.js.map +1 -1
  36. package/esm/config-provider-wrapper/index.js +1 -1
  37. package/esm/copy-wrapper/index.js +1 -1
  38. package/esm/copy-wrapper/index.js.map +1 -1
  39. package/esm/date-picker-wrapper/index.js +1 -1
  40. package/esm/date-picker-wrapper/index.js.map +1 -1
  41. package/esm/date-range-picker-wrapper/index.js +1 -1
  42. package/esm/date-range-picker-wrapper/index.js.map +1 -1
  43. package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
  44. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  45. package/esm/delete-node/index.js +1 -1
  46. package/esm/delete-node/index.js.map +1 -1
  47. package/esm/dialog-alert/index.js +1 -1
  48. package/esm/dialog-confirm/index.js +1 -1
  49. package/esm/dialog-drag-modal/index.js +1 -1
  50. package/esm/dialog-drag-modal/index.js.map +1 -1
  51. package/esm/dialog-drawer/index.js +1 -1
  52. package/esm/dialog-drawer/index.js.map +1 -1
  53. package/esm/dialog-drawer-content/index.js +1 -1
  54. package/esm/dialog-drawer-content/index.js.map +1 -1
  55. package/esm/dialog-loading/index.js +1 -1
  56. package/esm/dialog-loading/index.js.map +1 -1
  57. package/esm/dialog-modal/index.js +1 -1
  58. package/esm/dialog-modal/index.js.map +1 -1
  59. package/esm/dialog-preview-image/index.js +1 -1
  60. package/esm/dialog-preview-image/index.js.map +1 -1
  61. package/esm/drag-collapse/index.js +1 -1
  62. package/esm/drag-collapse/index.js.map +1 -1
  63. package/esm/drag-collapse-form-list/index.js +1 -1
  64. package/esm/drag-collapse-form-list/index.js.map +1 -1
  65. package/esm/drag-editable-card/index.js +1 -1
  66. package/esm/drag-editable-card/index.js.map +1 -1
  67. package/esm/drag-editable-table/index.js +1 -1
  68. package/esm/drag-editable-table/index.js.map +1 -1
  69. package/esm/drag-editable-table-pro/index.js +1 -1
  70. package/esm/drag-editable-table-pro/index.js.map +1 -1
  71. package/esm/drag-form-list/index.js +1 -1
  72. package/esm/drag-form-list/index.js.map +1 -1
  73. package/esm/drag-table/index.js +1 -1
  74. package/esm/drag-table/index.js.map +1 -1
  75. package/esm/drawer-wrapper/index.js +1 -1
  76. package/esm/drawer-wrapper/index.js.map +1 -1
  77. package/esm/dropdown-menu-wrapper/index.js +1 -1
  78. package/esm/dropdown-menu-wrapper/index.js.map +1 -1
  79. package/esm/easy-form/index.js +1 -1
  80. package/esm/easy-form/index.js.map +1 -1
  81. package/esm/easy-table/index.js +1 -1
  82. package/esm/easy-table/index.js.map +1 -1
  83. package/esm/editable-card/index.js +1 -1
  84. package/esm/editable-card/index.js.map +1 -1
  85. package/esm/editable-field/index.js +1 -1
  86. package/esm/editable-field/index.js.map +1 -1
  87. package/esm/editable-table/index.js +1 -1
  88. package/esm/editable-table/index.js.map +1 -1
  89. package/esm/editable-table-pro/index.js +1 -1
  90. package/esm/editable-table-pro/index.js.map +1 -1
  91. package/esm/editor-wrapper/index.js +1 -1
  92. package/esm/editor-wrapper/index.js.map +1 -1
  93. package/esm/fba-app/index.js +1 -1
  94. package/esm/fba-app/index.js.map +1 -1
  95. package/esm/fba-hooks/index.js +1 -1
  96. package/esm/fba-hooks/index.js.map +1 -1
  97. package/esm/fba-utils/index.js +1 -1
  98. package/esm/fba-utils/index.js.map +1 -1
  99. package/esm/file-export/index.js +1 -1
  100. package/esm/file-export/index.js.map +1 -1
  101. package/esm/file-import/index.js +1 -1
  102. package/esm/file-import/index.js.map +1 -1
  103. package/esm/file-select/index.js +1 -1
  104. package/esm/file-select/index.js.map +1 -1
  105. package/esm/flex-layout/index.js +1 -1
  106. package/esm/flex-layout/index.js.map +1 -1
  107. package/esm/form-grid/index.js +1 -1
  108. package/esm/form-grid/index.js.map +1 -1
  109. package/esm/form-item-group/index.js +1 -1
  110. package/esm/form-item-group/index.js.map +1 -1
  111. package/esm/form-item-text/index.js +1 -1
  112. package/esm/form-item-text/index.js.map +1 -1
  113. package/esm/form-item-wrapper/index.js +1 -1
  114. package/esm/form-item-wrapper/index.js.map +1 -1
  115. package/esm/form-list-wrapper/index.js +1 -1
  116. package/esm/form-list-wrapper/index.js.map +1 -1
  117. package/esm/form-wrapper/index.js +1 -1
  118. package/esm/form-wrapper/index.js.map +1 -1
  119. package/esm/full-screen/index.js +1 -1
  120. package/esm/full-screen/index.js.map +1 -1
  121. package/esm/icon-wrapper/index.js +1 -1
  122. package/esm/icon-wrapper/index.js.map +1 -1
  123. package/esm/{index-83bede1b.js → index-853b36e6.js} +2 -2
  124. package/esm/{index-83bede1b.js.map → index-853b36e6.js.map} +1 -1
  125. package/esm/index.js +2 -1
  126. package/esm/input-search-wrapper/index.js +1 -1
  127. package/esm/input-search-wrapper/index.js.map +1 -1
  128. package/esm/input-text-area-wrapper/index.js +1 -1
  129. package/esm/input-text-area-wrapper/index.js.map +1 -1
  130. package/esm/input-wrapper/index.js +1 -1
  131. package/esm/input-wrapper/index.js.map +1 -1
  132. package/esm/json-editor/index.js +1 -1
  133. package/esm/json-editor/index.js.map +1 -1
  134. package/esm/label-value-layout/index.js +1 -1
  135. package/esm/label-value-layout/index.js.map +1 -1
  136. package/esm/label-value-render/index.js +1 -1
  137. package/esm/label-value-render/index.js.map +1 -1
  138. package/esm/local-loading/index.js +1 -1
  139. package/esm/local-loading/index.js.map +1 -1
  140. package/esm/mention-editor/index.js +1 -1
  141. package/esm/mention-editor/index.js.map +1 -1
  142. package/esm/mentions-wrapper/index.js +1 -1
  143. package/esm/mentions-wrapper/index.js.map +1 -1
  144. package/esm/modal-action/index.js +1 -1
  145. package/esm/modal-action/index.js.map +1 -1
  146. package/esm/modal-wrapper/index.js +1 -1
  147. package/esm/modal-wrapper/index.js.map +1 -1
  148. package/esm/number-range-form-item/index.js +1 -1
  149. package/esm/number-range-form-item/index.js.map +1 -1
  150. package/esm/pdf/index.js +1 -1
  151. package/esm/pdf/index.js.map +1 -1
  152. package/esm/pdf-preview/index.js +1 -1
  153. package/esm/pdf-preview/index.js.map +1 -1
  154. package/esm/radio-group-wrapper/index.js +1 -1
  155. package/esm/radio-group-wrapper/index.js.map +1 -1
  156. package/esm/relation-tree/index.js +1 -1
  157. package/esm/relation-tree/index.js.map +1 -1
  158. package/esm/request-status/index.js +1 -1
  159. package/esm/request-status/index.js.map +1 -1
  160. package/esm/resizable-drawer/index.js +1 -1
  161. package/esm/resizable-drawer/index.js.map +1 -1
  162. package/esm/rich-text-editor/index.js +1 -1
  163. package/esm/rich-text-editor/index.js.map +1 -1
  164. package/esm/rich-text-viewer/index.js +1 -1
  165. package/esm/rich-text-viewer/index.js.map +1 -1
  166. package/esm/roll-location-center/index.js +1 -1
  167. package/esm/roll-location-center/index.js.map +1 -1
  168. package/esm/roll-location-in-view/index.js +1 -1
  169. package/esm/roll-location-in-view/index.js.map +1 -1
  170. package/esm/rule-describe/index.js +1 -1
  171. package/esm/rule-describe/index.js.map +1 -1
  172. package/esm/search-form/index.js +1 -1
  173. package/esm/search-form/index.js.map +1 -1
  174. package/esm/search-menu/index.js +1 -1
  175. package/esm/search-menu/index.js.map +1 -1
  176. package/esm/selector-wrapper/index.js +1 -1
  177. package/esm/selector-wrapper/index.js.map +1 -1
  178. package/esm/selector-wrapper-search/index.js +1 -1
  179. package/esm/selector-wrapper-search/index.js.map +1 -1
  180. package/esm/selector-wrapper-simple/index.js +1 -1
  181. package/esm/selector-wrapper-simple/index.js.map +1 -1
  182. package/esm/simple-layout/index.js +1 -1
  183. package/esm/simple-layout/index.js.map +1 -1
  184. package/esm/sms-count-down/index.js +1 -1
  185. package/esm/sms-count-down/index.js.map +1 -1
  186. package/esm/split-wrapper/index.js +1 -1
  187. package/esm/split-wrapper/index.js.map +1 -1
  188. package/esm/styles/index.css +1 -1
  189. package/esm/svg-http-view/index.js +1 -1
  190. package/esm/svg-http-view/index.js.map +1 -1
  191. package/esm/switch-confirm-wrapper/index.js +1 -1
  192. package/esm/switch-confirm-wrapper/index.js.map +1 -1
  193. package/esm/switch-wrapper/index.js +1 -1
  194. package/esm/switch-wrapper/index.js.map +1 -1
  195. package/esm/table-cell-render/index.js +1 -1
  196. package/esm/table-cell-render/index.js.map +1 -1
  197. package/esm/table-scrollbar/index.js +1 -1
  198. package/esm/table-scrollbar/index.js.map +1 -1
  199. package/esm/tabs-sticky/index.js +1 -1
  200. package/esm/tabs-sticky/index.js.map +1 -1
  201. package/esm/tabs-wrapper/index.js +1 -1
  202. package/esm/tabs-wrapper/index.js.map +1 -1
  203. package/esm/tag-group/index.js +1 -1
  204. package/esm/tag-group/index.js.map +1 -1
  205. package/esm/tag-list-render/index.js +1 -1
  206. package/esm/tag-list-render/index.js.map +1 -1
  207. package/esm/tag-list-select/index.js +1 -1
  208. package/esm/tag-list-select/index.js.map +1 -1
  209. package/esm/tag-wrapper/index.js +1 -1
  210. package/esm/tag-wrapper/index.js.map +1 -1
  211. package/esm/text-css-ellipsis/index.js +1 -1
  212. package/esm/text-css-ellipsis/index.js.map +1 -1
  213. package/esm/text-overflow/index.js +1 -1
  214. package/esm/text-overflow/index.js.map +1 -1
  215. package/esm/text-overflow-render/index.js +1 -1
  216. package/esm/text-symbol-wrapper/index.js +1 -1
  217. package/esm/text-symbol-wrapper/index.js.map +1 -1
  218. package/esm/time-ea73b2fb.js +3 -0
  219. package/esm/{time-53b3f55f.js.map → time-ea73b2fb.js.map} +1 -1
  220. package/esm/time-picker-wrapper/index.js +1 -1
  221. package/esm/time-picker-wrapper/index.js.map +1 -1
  222. package/esm/time-range-picker-wrapper/index.js +1 -1
  223. package/esm/time-range-picker-wrapper/index.js.map +1 -1
  224. package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
  225. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  226. package/esm/tree-modal/index.js +1 -1
  227. package/esm/tree-modal/index.js.map +1 -1
  228. package/esm/tree-modal-selector/index.js +1 -1
  229. package/esm/tree-modal-selector/index.js.map +1 -1
  230. package/esm/tree-selector-wrapper/index.js +1 -1
  231. package/esm/tree-selector-wrapper/index.js.map +1 -1
  232. package/esm/tree-wrapper/index.js +1 -1
  233. package/esm/tree-wrapper/index.js.map +1 -1
  234. package/esm/upload-wrapper/index.js +1 -1
  235. package/esm/upload-wrapper/index.js.map +1 -1
  236. package/esm/use-responsive-point-1e6d93d9.js +3 -0
  237. package/esm/{use-responsive-point-21b8c601.js.map → use-responsive-point-1e6d93d9.js.map} +1 -1
  238. package/esm/x-mind-preview/index.js +1 -1
  239. package/esm/x-mind-preview/index.js.map +1 -1
  240. package/index.d.ts +61 -4
  241. package/package.json +4 -5
  242. package/esm/time-53b3f55f.js +0 -3
  243. package/esm/use-responsive-point-21b8c601.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-hooks/use-array-change.ts","@flatbiz/antd/src/fba-hooks/use-effect-custom.ts","@flatbiz/antd/src/fba-hooks/use-copy-remove-space.ts","@flatbiz/antd/src/fba-hooks/use-effect-custom-async.ts","@flatbiz/antd/src/fba-hooks/use-memo-custom.ts","@flatbiz/antd/src/fba-hooks/use-previous.ts","@flatbiz/antd/src/fba-hooks/use-safe-state.ts","@flatbiz/antd/src/fba-hooks/use-theme.ts","@flatbiz/antd/src/fba-hooks/use-uuid.ts","@flatbiz/antd/src/fba-hooks/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { hooks } from '@wove/react';\nimport { useRef } from 'react';\n\nexport const useArrayChange = <T>(defautDataList: Array<T>, forceUpdate = true) => {\n const changeListRef = useRef<Array<T>>(defautDataList);\n const update = hooks.useForceUpdate();\n const arrayOperate = {\n add: hooks.useCallbackRef((dataItem: T | Array<T>, isUnshift?: boolean) => {\n if (isUnshift) {\n const targetList = isArray(dataItem) ? dataItem : [dataItem];\n changeListRef.current = [...targetList, ...changeListRef.current];\n } else {\n changeListRef.current = changeListRef.current.concat(dataItem);\n }\n forceUpdate && update();\n }),\n update: hooks.useCallbackRef((index: number, dataItem: T) => {\n const target = changeListRef.current[index];\n if (target) {\n changeListRef.current[index] = { ...target, ...dataItem };\n }\n forceUpdate && update();\n }),\n delete: hooks.useCallbackRef((index: number) => {\n const deleteItem = changeListRef.current.splice(index, 1);\n forceUpdate && update();\n return deleteItem;\n }),\n resetList: hooks.useCallbackRef((dataList: Array<T>) => {\n changeListRef.current = dataList;\n forceUpdate && update();\n }),\n getList: hooks.useCallbackRef(() => {\n return changeListRef.current;\n }),\n };\n return [changeListRef.current, arrayOperate] as const;\n};\n","import { type DependencyList, type EffectCallback, useEffect } from 'react';\n\nexport const useEffectCustom = (fn: EffectCallback, deps: DependencyList) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useEffect(fn, deps);\n};\n","import { TAny, trim } from '@flatbiz/utils';\nimport { useEffectCustom } from './use-effect-custom';\n\nconst innerIgnoreClass = ['ace_editor', 'tox-tinymce', 'cancel-flatbiz-antd-copy'];\n\nexport type CopyRemoveSpaceProps = {\n /** 设置监听复制范围,如果不设置则监听全局 */\n target?: () => Element;\n /**\n * 忽略的class配置(不参与copy逻辑处理的class),例如:['ace_editor']\n * ```\n * 1. 某些控件(例如:ace编辑器、富文本等)内部自定义处理copy逻辑,此处不能进行拦截,通过配置class属性来忽略\n * 2. ignoreClass可配置操作目标class、以及层层父节点class,通过目标节点以及层层父节点的class与ignoreClass匹配成功后,取消后续copy文案处理逻辑\n * ```\n */\n ignoreClass?: string[];\n};\n/**\n * 移除复制文本中前后空格\n * ```\n * 1. target 设置监听复制范围,如果不设置则监听全局,例如\n * export const Demo = () => {\n * const ref = useRef<any>();\n * useCopyRemoveSpace({\n * target: () => ref.current,\n * });\n * return (\n * <div ref={ref}>\n * <QueryTable />\n * </div>\n * );\n * };\n * 2. 某些控件(例如:ace编辑器、富文本等)内部自定义处理copy逻辑,此处不能进行拦截,通过配置class属性来忽略\n * 3. ignoreClass包括操作目标class、以及层层父节点class,通过目标节点层层父节点的class匹配成功后,取消后续copy文案处理逻辑\n * 3. ignoreClass 内置有 ['ace_editor', 'tox-tinymce', 'cancel-flatbiz-antd-copy']\n * ```\n */\nexport const useCopyRemoveSpace = (props?: CopyRemoveSpaceProps) => {\n const ignoreClass = innerIgnoreClass.concat(props?.ignoreClass || []);\n const target = props?.target?.() || window.document;\n\n useEffectCustom(() => {\n const handle = (oEvent) => {\n try {\n let parentNode = oEvent.target as HTMLElement;\n let isIgnore = false;\n while (parentNode != null) {\n const target = ignoreClass.find((item) => parentNode.classList?.contains(item));\n if (target) {\n isIgnore = true;\n break;\n }\n parentNode = parentNode.parentNode as HTMLElement;\n }\n if (isIgnore) return;\n let copyInfo = '';\n // 获取复制信息\n const _window = window as TAny;\n try {\n copyInfo = window['document']['selection'].createRange().text;\n } catch (ex) {\n copyInfo = _window.getSelection().toString();\n }\n let clipboardData = _window.clipboardData; // for IE\n if (!clipboardData) {\n clipboardData = oEvent['clipboardData'];\n }\n const nextValue = trim(copyInfo, true);\n // 修改剪贴板中的内容\n clipboardData.setData('Text', nextValue);\n // 必须禁用原copy方法才能生效\n oEvent.preventDefault();\n if (nextValue !== copyInfo) {\n console.log('useCopyRemoveSpace 已操作移除复制文本中前后空格');\n }\n } catch (error: TAny) {\n console.warn(error?.message);\n }\n };\n target.addEventListener('copy', handle);\n return () => {\n target.removeEventListener('copy', handle);\n };\n }, [JSON.stringify(ignoreClass)]);\n};\n","import { DependencyList, useEffect } from 'react';\n\nexport const useEffectCustomAsync = (fn: () => Promise<void>, deps: DependencyList) => {\n useEffect(() => {\n async function asyncFunction() {\n await fn();\n }\n void asyncFunction();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n","import { type DependencyList, useMemo } from 'react';\n/**\n * 自定义控制 useMemo 依赖\n */\nexport const useMemoCustom = <T>(fn: () => T, deps: DependencyList) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo<T>(fn, deps);\n};\n","import { useRef } from 'react';\n\nexport type ShouldUpdateFunc<T> = (prev: T | undefined, next: T) => boolean;\n\nconst defaultShouldUpdate = <T>(a?: T, b?: T) => !Object.is(a, b);\n\nexport function usePrevious<T>(\n state: T,\n shouldUpdate: ShouldUpdateFunc<T> = defaultShouldUpdate,\n): T | undefined {\n const prevRef = useRef<T>();\n const curRef = useRef<T>();\n\n if (shouldUpdate(curRef.current, state)) {\n prevRef.current = curRef.current;\n curRef.current = state;\n }\n\n return prevRef.current;\n}\n","import { hooks } from '@wove/react';\nimport { Dispatch, SetStateAction, useState } from 'react';\n\nexport const useSafeState = <S extends undefined | unknown>(\n initialState?: S | (() => S),\n): [S, Dispatch<SetStateAction<S>>] => {\n const [state, setState] = useState(initialState as S);\n const isMounted = hooks.useIsMounted();\n\n return [\n state,\n (value) => {\n if (isMounted.current) {\n return setState(value);\n }\n },\n ];\n};\n","import { theme } from 'antd';\n\nexport const useThemeToken = () => {\n const { token } = theme.useToken();\n return token;\n};\n","import { uuid } from '@dimjs/utils';\nimport { useMemo } from 'react';\n\nexport const useUuid = () => {\n const id = useMemo(() => {\n return uuid();\n }, []);\n return id;\n};\n","import { useArrayChange } from './use-array-change';\nimport { useCopyRemoveSpace } from './use-copy-remove-space';\nimport { useEffectCustom } from './use-effect-custom';\nimport { useEffectCustomAsync } from './use-effect-custom-async';\nimport { useMemoCustom } from './use-memo-custom';\nimport { usePrevious } from './use-previous';\nimport { useResponsivePoint } from './use-responsive-point';\nimport { useSafeState } from './use-safe-state';\nimport { useThemeToken } from './use-theme';\nimport { useUuid } from './use-uuid';\n\nexport const fbaHooks = {\n useEffectCustom: useEffectCustom,\n useEffectCustomAsync: useEffectCustomAsync,\n useThemeToken: useThemeToken,\n useArrayChange: useArrayChange,\n usePrevious: usePrevious,\n useResponsivePoint: useResponsivePoint,\n useSafeState: useSafeState,\n useMemoCustom: useMemoCustom,\n useCopyRemoveSpace: useCopyRemoveSpace,\n useUuid: useUuid,\n};\n"],"names":["useArrayChange","defautDataList","forceUpdate","changeListRef","useRef","update","_hooks","useForceUpdate","arrayOperate","add","useCallbackRef","dataItem","isUnshift","targetList","_isArray","current","concat","index","target","_extends","delete","deleteItem","splice","resetList","dataList","getList","useEffectCustom","fn","deps","useEffect","innerIgnoreClass","useCopyRemoveSpace","props","ignoreClass","window","document","handle","oEvent","parentNode","isIgnore","find","item","_parentNode$classList","classList","contains","copyInfo","_window","createRange","text","ex","getSelection","toString","clipboardData","nextValue","trim","setData","preventDefault","console","log","error","warn","message","addEventListener","removeEventListener","JSON","stringify","useEffectCustomAsync","asyncFunction","Promise","$return","$error","resolve","then","$await_1","$boundEx","useMemoCustom","useMemo","defaultShouldUpdate","a","b","Object","is","usePrevious","state","shouldUpdate","prevRef","curRef","useSafeState","initialState","_useState","useState","setState","isMounted","useIsMounted","value","useThemeToken","_theme$useToken","theme","useToken","token","useUuid","id","_uuid","fbaHooks","useResponsivePoint"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-hooks/use-array-change.ts","@flatbiz/antd/src/fba-hooks/use-effect-custom.ts","@flatbiz/antd/src/fba-hooks/use-copy-remove-space.ts","@flatbiz/antd/src/fba-hooks/use-effect-custom-async.ts","@flatbiz/antd/src/fba-hooks/use-memo-custom.ts","@flatbiz/antd/src/fba-hooks/use-previous.ts","@flatbiz/antd/src/fba-hooks/use-safe-state.ts","@flatbiz/antd/src/fba-hooks/use-theme.ts","@flatbiz/antd/src/fba-hooks/use-uuid.ts","@flatbiz/antd/src/fba-hooks/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { hooks } from '@wove/react';\nimport { useRef } from 'react';\n\nexport const useArrayChange = <T>(defautDataList: Array<T>, forceUpdate = true) => {\n const changeListRef = useRef<Array<T>>(defautDataList);\n const update = hooks.useForceUpdate();\n const arrayOperate = {\n add: hooks.useCallbackRef((dataItem: T | Array<T>, isUnshift?: boolean) => {\n if (isUnshift) {\n const targetList = isArray(dataItem) ? dataItem : [dataItem];\n changeListRef.current = [...targetList, ...changeListRef.current];\n } else {\n changeListRef.current = changeListRef.current.concat(dataItem);\n }\n forceUpdate && update();\n }),\n update: hooks.useCallbackRef((index: number, dataItem: T) => {\n const target = changeListRef.current[index];\n if (target) {\n changeListRef.current[index] = { ...target, ...dataItem };\n }\n forceUpdate && update();\n }),\n delete: hooks.useCallbackRef((index: number) => {\n const deleteItem = changeListRef.current.splice(index, 1);\n forceUpdate && update();\n return deleteItem;\n }),\n resetList: hooks.useCallbackRef((dataList: Array<T>) => {\n changeListRef.current = dataList;\n forceUpdate && update();\n }),\n getList: hooks.useCallbackRef(() => {\n return changeListRef.current;\n }),\n };\n return [changeListRef.current, arrayOperate] as const;\n};\n","import { type DependencyList, type EffectCallback, useEffect } from 'react';\n\nexport const useEffectCustom = (fn: EffectCallback, deps: DependencyList) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useEffect(fn, deps);\n};\n","import { TAny, trim } from '@flatbiz/utils';\nimport { useEffectCustom } from './use-effect-custom';\n\nconst innerIgnoreClass = ['ace_editor', 'tox-tinymce', 'cancel-flatbiz-antd-copy'];\n\nexport type CopyRemoveSpaceProps = {\n /** 设置监听复制范围,如果不设置则监听全局 */\n target?: () => Element;\n /**\n * 忽略的class配置(不参与copy逻辑处理的class),例如:['ace_editor']\n * ```\n * 1. 某些控件(例如:ace编辑器、富文本等)内部自定义处理copy逻辑,此处不能进行拦截,通过配置class属性来忽略\n * 2. ignoreClass可配置操作目标class、以及层层父节点class,通过目标节点以及层层父节点的class与ignoreClass匹配成功后,取消后续copy文案处理逻辑\n * ```\n */\n ignoreClass?: string[];\n};\n/**\n * 移除复制文本中前后空格\n * ```\n * 1. target 设置监听复制范围,如果不设置则监听全局,例如\n * export const Demo = () => {\n * const ref = useRef<any>();\n * useCopyRemoveSpace({\n * target: () => ref.current,\n * });\n * return (\n * <div ref={ref}>\n * <QueryTable />\n * </div>\n * );\n * };\n * 2. 某些控件(例如:ace编辑器、富文本等)内部自定义处理copy逻辑,此处不能进行拦截,通过配置class属性来忽略\n * 3. ignoreClass包括操作目标class、以及层层父节点class,通过目标节点层层父节点的class匹配成功后,取消后续copy文案处理逻辑\n * 3. ignoreClass 内置有 ['ace_editor', 'tox-tinymce', 'cancel-flatbiz-antd-copy']\n * ```\n */\nexport const useCopyRemoveSpace = (props?: CopyRemoveSpaceProps) => {\n const ignoreClass = innerIgnoreClass.concat(props?.ignoreClass || []);\n const target = props?.target?.() || window.document;\n\n useEffectCustom(() => {\n const handle = (oEvent) => {\n try {\n let parentNode = oEvent.target as HTMLElement;\n let isIgnore = false;\n while (parentNode != null) {\n const target = ignoreClass.find((item) => parentNode.classList?.contains(item));\n if (target) {\n isIgnore = true;\n break;\n }\n parentNode = parentNode.parentNode as HTMLElement;\n }\n if (isIgnore) return;\n let copyInfo = '';\n // 获取复制信息\n const _window = window as TAny;\n try {\n copyInfo = window['document']['selection'].createRange().text;\n } catch (ex) {\n copyInfo = _window.getSelection().toString();\n }\n let clipboardData = _window.clipboardData; // for IE\n if (!clipboardData) {\n clipboardData = oEvent['clipboardData'];\n }\n const nextValue = trim(copyInfo, true);\n // 修改剪贴板中的内容\n clipboardData.setData('Text', nextValue);\n // 必须禁用原copy方法才能生效\n oEvent.preventDefault();\n if (nextValue !== copyInfo) {\n console.log('useCopyRemoveSpace 已操作移除复制文本中前后空格');\n }\n } catch (error: TAny) {\n console.warn(error?.message);\n }\n };\n target.addEventListener('copy', handle);\n return () => {\n target.removeEventListener('copy', handle);\n };\n }, [JSON.stringify(ignoreClass)]);\n};\n","import { DependencyList, useEffect } from 'react';\n\nexport const useEffectCustomAsync = (fn: () => Promise<void>, deps: DependencyList) => {\n useEffect(() => {\n async function asyncFunction() {\n await fn();\n }\n void asyncFunction();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n","import { type DependencyList, useMemo } from 'react';\n/**\n * 自定义控制 useMemo 依赖\n */\nexport const useMemoCustom = <T>(fn: () => T, deps: DependencyList) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo<T>(fn, deps);\n};\n","import { useRef } from 'react';\n\nexport type ShouldUpdateFunc<T> = (prev: T | undefined, next: T) => boolean;\n\nconst defaultShouldUpdate = <T>(a?: T, b?: T) => !Object.is(a, b);\n\nexport function usePrevious<T>(\n state: T,\n shouldUpdate: ShouldUpdateFunc<T> = defaultShouldUpdate,\n): T | undefined {\n const prevRef = useRef<T>();\n const curRef = useRef<T>();\n\n if (shouldUpdate(curRef.current, state)) {\n prevRef.current = curRef.current;\n curRef.current = state;\n }\n\n return prevRef.current;\n}\n","import { hooks } from '@wove/react';\nimport { Dispatch, SetStateAction, useState } from 'react';\n\nexport const useSafeState = <S extends undefined | unknown>(\n initialState?: S | (() => S),\n): [S, Dispatch<SetStateAction<S>>] => {\n const [state, setState] = useState(initialState as S);\n const isMounted = hooks.useIsMounted();\n\n return [\n state,\n (value) => {\n if (isMounted.current) {\n return setState(value);\n }\n },\n ];\n};\n","import { theme } from 'antd';\n\nexport const useThemeToken = () => {\n const { token } = theme.useToken();\n return token;\n};\n","import { uuid } from '@dimjs/utils';\nimport { useMemo } from 'react';\n\nexport const useUuid = () => {\n const id = useMemo(() => {\n return uuid();\n }, []);\n return id;\n};\n","import { useArrayChange } from './use-array-change';\nimport { useCopyRemoveSpace } from './use-copy-remove-space';\nimport { useEffectCustom } from './use-effect-custom';\nimport { useEffectCustomAsync } from './use-effect-custom-async';\nimport { useMemoCustom } from './use-memo-custom';\nimport { usePrevious } from './use-previous';\nimport { useResponsivePoint } from './use-responsive-point';\nimport { useSafeState } from './use-safe-state';\nimport { useThemeToken } from './use-theme';\nimport { useUuid } from './use-uuid';\n\nexport const fbaHooks = {\n useEffectCustom: useEffectCustom,\n useEffectCustomAsync: useEffectCustomAsync,\n useThemeToken: useThemeToken,\n useArrayChange: useArrayChange,\n usePrevious: usePrevious,\n useResponsivePoint: useResponsivePoint,\n useSafeState: useSafeState,\n useMemoCustom: useMemoCustom,\n useCopyRemoveSpace: useCopyRemoveSpace,\n useUuid: useUuid,\n};\n"],"names":["useArrayChange","defautDataList","forceUpdate","changeListRef","useRef","update","_hooks","useForceUpdate","arrayOperate","add","useCallbackRef","dataItem","isUnshift","targetList","_isArray","current","concat","index","target","_extends","delete","deleteItem","splice","resetList","dataList","getList","useEffectCustom","fn","deps","useEffect","innerIgnoreClass","useCopyRemoveSpace","props","ignoreClass","window","document","handle","oEvent","parentNode","isIgnore","find","item","_parentNode$classList","classList","contains","copyInfo","_window","createRange","text","ex","getSelection","toString","clipboardData","nextValue","trim","setData","preventDefault","console","log","error","warn","message","addEventListener","removeEventListener","JSON","stringify","useEffectCustomAsync","asyncFunction","Promise","$return","$error","resolve","then","$await_1","$boundEx","useMemoCustom","useMemo","defaultShouldUpdate","a","b","Object","is","usePrevious","state","shouldUpdate","prevRef","curRef","useSafeState","initialState","_useState","useState","setState","isMounted","useIsMounted","value","useThemeToken","_theme$useToken","theme","useToken","token","useUuid","id","_uuid","fbaHooks","useResponsivePoint"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{isArray as e}from"@dimjs/lang/cjs/is-array";import{cloneState as r}from"@dimjs/model";import{getGlobalData as n,getUuid as a}from"@flatbiz/utils";var t=function r(){var a=n(),t=a.elemAclLimits;var i=e(t)?t:[];return i};var i=function e(r){if(!r)return true;var n=t();if(n.includes(r)){return true}return false};function o(e,r){var n=e;for(var a in r){if(r.hasOwnProperty(a)){n[a]=r[a]}}return n}var u=function e(){return a()};var s=function e(r,n){var a=r.getInternalHooks("RC_FORM_INTERNAL_HOOKS").dispatch;n.forEach((function(e){a({type:"updateValue",namePath:e.name,value:e.value})}))};var l=function e(r,n){var a=n.map((function(e){return{name:e.name,value:e.value}}));r.setFields(a);s(r,a)};var f=function e(n){if(!n)return undefined;var a=r(n);Object.keys(a).forEach((function(e){if(e.includes("__#invalid_")){delete a[e]}}));return a};var m={hasPermission:i,getPermissionList:t,attachPropertiesToComponent:o,getModelKey:u,triggerFormValuesChange:s,setFormFieldsAndTriggerValuesChange:l,removeFormValuesInvalidField:f};export{m as fbaUtils};
4
+ import{isArray as e}from"@dimjs/lang/cjs/is-array";import{cloneState as r}from"@dimjs/model";import{getGlobalData as n,getUuid as a}from"@flatbiz/utils";var t=function r(){var a=n(),t=a.elemAclLimits;var i=e(t)?t:[];return i};var i=function e(r){if(!r)return true;var n=t();if(n.includes(r)){return true}return false};function o(e,r){var n=e;for(var a in r){if(r.hasOwnProperty(a)){n[a]=r[a]}}return n}var u=function e(){return a()};var s=function e(r,n){var a=r.getInternalHooks("RC_FORM_INTERNAL_HOOKS").dispatch;n.forEach(function(e){a({type:"updateValue",namePath:e.name,value:e.value})})};var l=function e(r,n){var a=n.map(function(e){return{name:e.name,value:e.value}});r.setFields(a);s(r,a)};var f=function e(n){if(!n)return undefined;var a=r(n);Object.keys(a).forEach(function(e){if(e.includes("__#invalid_")){delete a[e]}});return a};var m={hasPermission:i,getPermissionList:t,attachPropertiesToComponent:o,getModelKey:u,triggerFormValuesChange:s,setFormFieldsAndTriggerValuesChange:l,removeFormValuesInvalidField:f};export{m as fbaUtils};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-utils/fba-utils.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { getGlobalData, getUuid, TAny, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\n\nconst getPermissionList = () => {\n const { elemAclLimits } = getGlobalData<{ elemAclLimits: string[] }>();\n const permissionList: string[] = isArray(elemAclLimits) ? elemAclLimits : [];\n return permissionList;\n};\n\nconst hasPermission = (name?: string) => {\n if (!name) return true;\n const permissionList = getPermissionList();\n if (permissionList.includes(name)) {\n return true;\n }\n return false;\n};\n\nfunction attachPropertiesToComponent<C, P extends Record<string, unknown>>(\n component: C,\n properties: P,\n): C & P {\n const ret = component as Record<string, unknown>;\n for (const key in properties) {\n if (properties.hasOwnProperty(key)) {\n ret[key] = properties[key];\n }\n }\n return ret as C & P;\n}\n\nconst getModelKey = () => {\n return getUuid();\n};\n\nconst triggerFormValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const formDispatch = (form as TAny).getInternalHooks('RC_FORM_INTERNAL_HOOKS').dispatch;\n changeList.forEach((item) => {\n formDispatch({\n type: 'updateValue',\n namePath: item.name,\n value: item.value,\n });\n });\n};\n\nconst setFormFieldsAndTriggerValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const paramList = changeList.map((item) => {\n return {\n name: item.name,\n value: item.value,\n };\n });\n\n form.setFields(paramList);\n\n triggerFormValuesChange(form, paramList);\n};\n\nconst removeFormValuesInvalidField = (params?: TPlainObject) => {\n if (!params) return undefined;\n const paramsNew = cloneState(params);\n Object.keys(paramsNew).forEach((key) => {\n if (key.includes('__#invalid_')) {\n delete paramsNew[key];\n }\n });\n return paramsNew as TPlainObject;\n};\n\nexport const fbaUtils = {\n hasPermission,\n getPermissionList,\n attachPropertiesToComponent,\n getModelKey,\n /**\n * 手动触发Antd Form 的 onValuesChange\n * ```\n * 1. 正常在通过 form.setFieldsValue 不会触发onValuesChange\n * 2. 需要触发可调用此方法\n * ```\n */\n triggerFormValuesChange,\n /**\n * 操作Antd Form\n * ```\n * 1. 通过 form.setFields 修改属性值\n * 2. 触发 Form 的 onValuesChange\n * ```\n */\n setFormFieldsAndTriggerValuesChange: setFormFieldsAndTriggerValuesChange,\n /**\n * 移除Form Values中无效字段\n * ```\n * 1. 在使用 DateRangePickerWrapperFormItem、TimeRangePickerWrapperFormItem 会产生 `__#invalid_xxxx` 无效字段\n * ```\n */\n removeFormValuesInvalidField: removeFormValuesInvalidField,\n};\n"],"names":["getPermissionList","_getGlobalData","getGlobalData","elemAclLimits","permissionList","_isArray","hasPermission","name","includes","attachPropertiesToComponent","component","properties","ret","key","hasOwnProperty","getModelKey","getUuid","triggerFormValuesChange","form","changeList","formDispatch","getInternalHooks","dispatch","forEach","item","type","namePath","value","setFormFieldsAndTriggerValuesChange","paramList","map","setFields","removeFormValuesInvalidField","params","undefined","paramsNew","cloneState","Object","keys","fbaUtils"],"mappings":";yJAKA,IAAMA,EAAoB,SAApBA,IACJ,IAAAC,EAA0BC,IAAlBC,EAAaF,EAAbE,cACR,IAAMC,EAA2BC,EAAQF,GAAiBA,EAAgB,GAC1E,OAAOC,CACT,EAEA,IAAME,EAAgB,SAAhBA,EAAiBC,GACrB,IAAKA,EAAM,OAAO,KAClB,IAAMH,EAAiBJ,IACvB,GAAII,EAAeI,SAASD,GAAO,CACjC,OAAO,IACT,CACA,OAAO,KACT,EAEA,SAASE,EACPC,EACAC,GAEA,IAAMC,EAAMF,EACZ,IAAK,IAAMG,KAAOF,EAAY,CAC5B,GAAIA,EAAWG,eAAeD,GAAM,CAClCD,EAAIC,GAAOF,EAAWE,EACxB,CACF,CACA,OAAOD,CACT,CAEA,IAAMG,EAAc,SAAdA,IACJ,OAAOC,GACT,EAEA,IAAMC,EAA0B,SAA1BA,EACJC,EACAC,GAEA,IAAMC,EAAgBF,EAAcG,iBAAiB,0BAA0BC,SAC/EH,EAAWI,SAAQ,SAACC,GAClBJ,EAAa,CACXK,KAAM,cACNC,SAAUF,EAAKjB,KACfoB,MAAOH,EAAKG,OAEhB,GACF,EAEA,IAAMC,EAAsC,SAAtCA,EACJV,EACAC,GAEA,IAAMU,EAAYV,EAAWW,KAAI,SAACN,GAChC,MAAO,CACLjB,KAAMiB,EAAKjB,KACXoB,MAAOH,EAAKG,MAEhB,IAEAT,EAAKa,UAAUF,GAEfZ,EAAwBC,EAAMW,EAChC,EAEA,IAAMG,EAA+B,SAA/BA,EAAgCC,GACpC,IAAKA,EAAQ,OAAOC,UACpB,IAAMC,EAAYC,EAAWH,GAC7BI,OAAOC,KAAKH,GAAWZ,SAAQ,SAACV,GAC9B,GAAIA,EAAIL,SAAS,eAAgB,QACxB2B,EAAUtB,EACnB,CACF,IACA,OAAOsB,CACT,EAEO,IAAMI,EAAW,CACtBjC,cAAAA,EACAN,kBAAAA,EACAS,4BAAAA,EACAM,YAAAA,EAQAE,wBAAAA,EAQAW,oCAAqCA,EAOrCI,6BAA8BA"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-utils/fba-utils.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { getGlobalData, getUuid, TAny, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\n\nconst getPermissionList = () => {\n const { elemAclLimits } = getGlobalData<{ elemAclLimits: string[] }>();\n const permissionList: string[] = isArray(elemAclLimits) ? elemAclLimits : [];\n return permissionList;\n};\n\nconst hasPermission = (name?: string) => {\n if (!name) return true;\n const permissionList = getPermissionList();\n if (permissionList.includes(name)) {\n return true;\n }\n return false;\n};\n\nfunction attachPropertiesToComponent<C, P extends Record<string, unknown>>(\n component: C,\n properties: P,\n): C & P {\n const ret = component as Record<string, unknown>;\n for (const key in properties) {\n if (properties.hasOwnProperty(key)) {\n ret[key] = properties[key];\n }\n }\n return ret as C & P;\n}\n\nconst getModelKey = () => {\n return getUuid();\n};\n\nconst triggerFormValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const formDispatch = (form as TAny).getInternalHooks('RC_FORM_INTERNAL_HOOKS').dispatch;\n changeList.forEach((item) => {\n formDispatch({\n type: 'updateValue',\n namePath: item.name,\n value: item.value,\n });\n });\n};\n\nconst setFormFieldsAndTriggerValuesChange = (\n form: FormInstance,\n changeList: { name: string | number | Array<string | number>; value: TAny }[],\n) => {\n const paramList = changeList.map((item) => {\n return {\n name: item.name,\n value: item.value,\n };\n });\n\n form.setFields(paramList);\n\n triggerFormValuesChange(form, paramList);\n};\n\nconst removeFormValuesInvalidField = (params?: TPlainObject) => {\n if (!params) return undefined;\n const paramsNew = cloneState(params);\n Object.keys(paramsNew).forEach((key) => {\n if (key.includes('__#invalid_')) {\n delete paramsNew[key];\n }\n });\n return paramsNew as TPlainObject;\n};\n\nexport const fbaUtils = {\n hasPermission,\n getPermissionList,\n attachPropertiesToComponent,\n getModelKey,\n /**\n * 手动触发Antd Form 的 onValuesChange\n * ```\n * 1. 正常在通过 form.setFieldsValue 不会触发onValuesChange\n * 2. 需要触发可调用此方法\n * ```\n */\n triggerFormValuesChange,\n /**\n * 操作Antd Form\n * ```\n * 1. 通过 form.setFields 修改属性值\n * 2. 触发 Form 的 onValuesChange\n * ```\n */\n setFormFieldsAndTriggerValuesChange: setFormFieldsAndTriggerValuesChange,\n /**\n * 移除Form Values中无效字段\n * ```\n * 1. 在使用 DateRangePickerWrapperFormItem、TimeRangePickerWrapperFormItem 会产生 `__#invalid_xxxx` 无效字段\n * ```\n */\n removeFormValuesInvalidField: removeFormValuesInvalidField,\n};\n"],"names":["getPermissionList","_getGlobalData","getGlobalData","elemAclLimits","permissionList","_isArray","hasPermission","name","includes","attachPropertiesToComponent","component","properties","ret","key","hasOwnProperty","getModelKey","getUuid","triggerFormValuesChange","form","changeList","formDispatch","getInternalHooks","dispatch","forEach","item","type","namePath","value","setFormFieldsAndTriggerValuesChange","paramList","map","setFields","removeFormValuesInvalidField","params","undefined","paramsNew","cloneState","Object","keys","fbaUtils"],"mappings":";yJAKA,IAAMA,EAAoB,SAApBA,IACJ,IAAAC,EAA0BC,IAAlBC,EAAaF,EAAbE,cACR,IAAMC,EAA2BC,EAAQF,GAAiBA,EAAgB,GAC1E,OAAOC,CACT,EAEA,IAAME,EAAgB,SAAhBA,EAAiBC,GACrB,IAAKA,EAAM,OAAO,KAClB,IAAMH,EAAiBJ,IACvB,GAAII,EAAeI,SAASD,GAAO,CACjC,OAAO,IACT,CACA,OAAO,KACT,EAEA,SAASE,EACPC,EACAC,GAEA,IAAMC,EAAMF,EACZ,IAAK,IAAMG,KAAOF,EAAY,CAC5B,GAAIA,EAAWG,eAAeD,GAAM,CAClCD,EAAIC,GAAOF,EAAWE,EACxB,CACF,CACA,OAAOD,CACT,CAEA,IAAMG,EAAc,SAAdA,IACJ,OAAOC,GACT,EAEA,IAAMC,EAA0B,SAA1BA,EACJC,EACAC,GAEA,IAAMC,EAAgBF,EAAcG,iBAAiB,0BAA0BC,SAC/EH,EAAWI,QAAQ,SAACC,GAClBJ,EAAa,CACXK,KAAM,cACNC,SAAUF,EAAKjB,KACfoB,MAAOH,EAAKG,OAEhB,EACF,EAEA,IAAMC,EAAsC,SAAtCA,EACJV,EACAC,GAEA,IAAMU,EAAYV,EAAWW,IAAI,SAACN,GAChC,MAAO,CACLjB,KAAMiB,EAAKjB,KACXoB,MAAOH,EAAKG,MAEhB,GAEAT,EAAKa,UAAUF,GAEfZ,EAAwBC,EAAMW,EAChC,EAEA,IAAMG,EAA+B,SAA/BA,EAAgCC,GACpC,IAAKA,EAAQ,OAAOC,UACpB,IAAMC,EAAYC,EAAWH,GAC7BI,OAAOC,KAAKH,GAAWZ,QAAQ,SAACV,GAC9B,GAAIA,EAAIL,SAAS,eAAgB,QACxB2B,EAAUtB,EACnB,CACF,GACA,OAAOsB,CACT,EAEO,IAAMI,EAAW,CACtBjC,cAAAA,EACAN,kBAAAA,EACAS,4BAAAA,EACAM,YAAAA,EAQAE,wBAAAA,EAQAW,oCAAqCA,EAOrCI,6BAA8BA"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{message as t}from"antd";import{Fragment as e,isValidElement as o}from"react";import{jsx as n}from"react/jsx-runtime";var c=function c(i){var u=i.action;var a=function r(){return new Promise((function(r,e){var o,n,c;var u=function(){try{return r()}catch(r){return e(r)}};var a=function(r){try{if(i.onExportError){i.onExportError(r)}else{t.error((r==null?void 0:r.message)||"文件导出失败...")}return u()}catch(r){return e(r)}};try{i.onExportPre==null||i.onExportPre();return Promise.resolve(i.onRequest()).then((function(r){try{o=r;n=document.createElement("a");c=window.URL.createObjectURL(o.data);n.style.display="none";n.href=c;n.setAttribute("download",o.fileName);document.body.appendChild(n);n.click();document.body.removeChild(n);i.onExportNext==null||i.onExportNext();return u()}catch(r){return a(r)}}),a)}catch(r){a(r)}}))};return n(e,{children:o(u)?n(u.type,r({},u.props,{onClick:a})):u==null?void 0:u({onClick:a})})};export{c as FileExport};
4
+ import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{message as t}from"antd";import{Fragment as e,isValidElement as o}from"react";import{jsx as n}from"react/jsx-runtime";var c=function c(i){var u=i.action;var a=function r(){return new Promise(function(r,e){var o,n,c;var u=function(){try{return r()}catch(r){return e(r)}};var a=function(r){try{if(i.onExportError){i.onExportError(r)}else{t.error((r==null?void 0:r.message)||"文件导出失败...")}return u()}catch(r){return e(r)}};try{i.onExportPre==null||i.onExportPre();return Promise.resolve(i.onRequest()).then(function(r){try{o=r;n=document.createElement("a");c=window.URL.createObjectURL(o.data);n.style.display="none";n.href=c;n.setAttribute("download",o.fileName);document.body.appendChild(n);n.click();document.body.removeChild(n);i.onExportNext==null||i.onExportNext();return u()}catch(r){return a(r)}},a)}catch(r){a(r)}})};return n(e,{children:o(u)?n(u.type,r({},u.props,{onClick:a})):u==null?void 0:u({onClick:a})})};export{c as FileExport};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-export/file-export.tsx"],"sourcesContent":["import { message } from 'antd';\nimport { Fragment, isValidElement, ReactElement } from 'react';\n\nexport type FileExportProps = {\n /** 触发节点 */\n action: (ReactElement & { onClick?: (e) => void }) | ((data: { onClick: (e) => void }) => ReactElement);\n /**\n * 获取文件流数据\n * ```\n * 1. fileName 文件名称\n * 2. data 文件流\n * ```\n */\n onRequest: () => Promise<{ fileName: string; data: Blob }>;\n /** 导出操作前 */\n onExportPre?: () => void;\n /** 导出操作后 */\n onExportNext?: () => void;\n /** 导出操作失败,隐藏默认失败效果 */\n onExportError?: (error?: any) => void;\n};\n\n/**\n * 文件导出\n * ```\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/widget?key=file-export\n * 例如:\n <FileExport\n action={<Button>下载</Button>}\n onRequest={() => {\n return serviceHandle.fileExport('/export/file', {});\n }}\n onExportNext={() => {\n message.success('导出成功...');\n }}\n />\n * ```\n */\nexport const FileExport = (props: FileExportProps) => {\n const Action = props.action;\n\n const handleOnClick = async () => {\n try {\n props.onExportPre?.();\n const respData = await props.onRequest();\n const link = document.createElement('a');\n const url = window.URL.createObjectURL(respData.data);\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', respData.fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n props.onExportNext?.();\n } catch (error: any) {\n if (props.onExportError) {\n props.onExportError(error);\n } else {\n message.error(error?.message || '文件导出失败...');\n }\n }\n };\n\n return (\n <Fragment>\n {isValidElement(Action) ? (\n <Action.type {...Action.props} onClick={handleOnClick} />\n ) : (\n Action?.({ onClick: handleOnClick })\n )}\n </Fragment>\n );\n};\n"],"names":["FileExport","props","Action","action","handleOnClick","Promise","$return","$error","respData","link","url","$Try_1_Post","$boundEx","$Try_1_Catch","error","onExportError","message","onExportPre","resolve","onRequest","then","$await_2","document","createElement","window","URL","createObjectURL","data","style","display","href","setAttribute","fileName","body","appendChild","click","removeChild","onExportNext","_jsx","Fragment","children","isValidElement","type","_extends","onClick"],"mappings":";6LAsCaA,EAAa,SAAbA,EAAcC,GACzB,IAAMC,EAASD,EAAME,OAErB,IAAMC,EAAgB,SAAhBA,IAAgB,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAGZC,EACAC,EACAC,EA9CZ,IAAIC,aAAJ,IAAI,OAAAL,GAAK,CAAC,MAAAM,GAAW,OAAOL,EAAAK,EAAM,GAAlC,IAAIC,EAAA,SAsDSC,GAtDb,IAuDM,GAAIb,EAAMc,cAAe,CACvBd,EAAMc,cAAcD,EACtB,KAAO,CACLE,EAAQF,OAAMA,GAAAA,UAAAA,EAAAA,EAAOE,UAAW,YAClC,CA3DN,OAAOL,GAAE,CAAC,MAAAC,GAAW,OAAOL,EAAAK,EAAM,GA0C9B,IACEX,EAAMgB,aAAW,MAAjBhB,EAAMgB,cACW,OAAAZ,QAAAa,QAAMjB,EAAMkB,aAAZC,MAAuB,SAAAC,GA5C9C,IA4CYb,EAAWa,EACXZ,EAAOa,SAASC,cAAc,KAC9Bb,EAAMc,OAAOC,IAAIC,gBAAgBlB,EAASmB,MAChDlB,EAAKmB,MAAMC,QAAU,OACrBpB,EAAKqB,KAAOpB,EACZD,EAAKsB,aAAa,WAAYvB,EAASwB,UACvCV,SAASW,KAAKC,YAAYzB,GAC1BA,EAAK0B,QACLb,SAASW,KAAKG,YAAY3B,GAC1BR,EAAMoC,cAAY,MAAlBpC,EAAMoC,eArDZ,OAAO1B,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAsD9B,CAAC,MAAOC,GAAYD,EAAZC,EAMT,CAAC,GACF,EAED,OACEwB,EAACC,EAAQ,CAAAC,SACNC,EAAevC,GACdoC,EAACpC,EAAOwC,KAAIC,EAAKzC,CAAAA,EAAAA,EAAOD,MAAK,CAAE2C,QAASxC,KAExCF,GAAM,UAAA,EAANA,EAAS,CAAE0C,QAASxC,KAI5B"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-export/file-export.tsx"],"sourcesContent":["import { message } from 'antd';\nimport { Fragment, isValidElement, ReactElement } from 'react';\n\nexport type FileExportProps = {\n /** 触发节点 */\n action: (ReactElement & { onClick?: (e) => void }) | ((data: { onClick: (e) => void }) => ReactElement);\n /**\n * 获取文件流数据\n * ```\n * 1. fileName 文件名称\n * 2. data 文件流\n * ```\n */\n onRequest: () => Promise<{ fileName: string; data: Blob }>;\n /** 导出操作前 */\n onExportPre?: () => void;\n /** 导出操作后 */\n onExportNext?: () => void;\n /** 导出操作失败,隐藏默认失败效果 */\n onExportError?: (error?: any) => void;\n};\n\n/**\n * 文件导出\n * ```\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/widget?key=file-export\n * 例如:\n <FileExport\n action={<Button>下载</Button>}\n onRequest={() => {\n return serviceHandle.fileExport('/export/file', {});\n }}\n onExportNext={() => {\n message.success('导出成功...');\n }}\n />\n * ```\n */\nexport const FileExport = (props: FileExportProps) => {\n const Action = props.action;\n\n const handleOnClick = async () => {\n try {\n props.onExportPre?.();\n const respData = await props.onRequest();\n const link = document.createElement('a');\n const url = window.URL.createObjectURL(respData.data);\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', respData.fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n props.onExportNext?.();\n } catch (error: any) {\n if (props.onExportError) {\n props.onExportError(error);\n } else {\n message.error(error?.message || '文件导出失败...');\n }\n }\n };\n\n return (\n <Fragment>\n {isValidElement(Action) ? (\n <Action.type {...Action.props} onClick={handleOnClick} />\n ) : (\n Action?.({ onClick: handleOnClick })\n )}\n </Fragment>\n );\n};\n"],"names":["FileExport","props","Action","action","handleOnClick","Promise","$return","$error","respData","link","url","$Try_1_Post","$boundEx","$Try_1_Catch","error","onExportError","message","onExportPre","resolve","onRequest","then","$await_2","document","createElement","window","URL","createObjectURL","data","style","display","href","setAttribute","fileName","body","appendChild","click","removeChild","onExportNext","_jsx","Fragment","children","isValidElement","type","_extends","onClick"],"mappings":";6LAsCaA,EAAa,SAAbA,EAAcC,GACzB,IAAMC,EAASD,EAAME,OAErB,IAAMC,EAAgB,SAAhBA,IAAgB,OAAA,IAAAC,QAAA,SAAAC,EAAAC,GAAA,IAGZC,EACAC,EACAC,EA9CZ,IAAIC,aAAJ,IAAI,OAAAL,GAAK,CAAC,MAAAM,GAAW,OAAOL,EAAAK,EAAM,GAAlC,IAAIC,EAAA,SAsDSC,GAtDb,IAuDM,GAAIb,EAAMc,cAAe,CACvBd,EAAMc,cAAcD,EACtB,KAAO,CACLE,EAAQF,OAAMA,GAAAA,UAAAA,EAAAA,EAAOE,UAAW,YAClC,CA3DN,OAAOL,GAAE,CAAC,MAAAC,GAAW,OAAOL,EAAAK,EAAM,GA0C9B,IACEX,EAAMgB,aAAW,MAAjBhB,EAAMgB,cACW,OAAAZ,QAAAa,QAAMjB,EAAMkB,aAAZC,KAAuB,SAAAC,GA5C9C,IA4CYb,EAAWa,EACXZ,EAAOa,SAASC,cAAc,KAC9Bb,EAAMc,OAAOC,IAAIC,gBAAgBlB,EAASmB,MAChDlB,EAAKmB,MAAMC,QAAU,OACrBpB,EAAKqB,KAAOpB,EACZD,EAAKsB,aAAa,WAAYvB,EAASwB,UACvCV,SAASW,KAAKC,YAAYzB,GAC1BA,EAAK0B,QACLb,SAASW,KAAKG,YAAY3B,GAC1BR,EAAMoC,cAAY,MAAlBpC,EAAMoC,eArDZ,OAAO1B,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,EAAAC,EAsD9B,CAAC,MAAOC,GAAYD,EAAZC,EAMT,CAAC,EACF,EAED,OACEwB,EAACC,EAAQ,CAAAC,SACNC,EAAevC,GACdoC,EAACpC,EAAOwC,KAAIC,EAAKzC,CAAAA,EAAAA,EAAOD,MAAK,CAAE2C,QAASxC,KAExCF,GAAM,UAAA,EAANA,EAAS,CAAE0C,QAASxC,KAI5B"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as o}from"@wove/react/cjs/hooks";import{message as a,Upload as i,Button as t}from"antd";import{useState as n,isValidElement as l}from"react";import{jsx as s}from"react/jsx-runtime";var f=["onImportFinish","buttonName"];var m=function m(c){var d=c.onImportFinish,p=c.buttonName,u=e(c,f);var h=n(false),v=h[0],g=h[1];var x=o.useCallbackRef((function(e){if(e.file.status==="uploading"){g(true)}else if(e.file.status==="done"){g(false);var r=e.file.response;if(r.code==="0000"){d(r.data)}else{void a.error(r.message||"文件导入异常...")}}}));return s(i,r({showUploadList:false,maxCount:1},u,{onChange:x,children:typeof c.children==="function"?c.children==null?void 0:c.children({loading:v}):l(c.children)?c.children:s(t,{type:"primary",ghost:true,loading:v,children:p||"选择文件"})}))};m.defaultProps={name:"file",accept:".xlsx,.xls"};export{m as FileImport};
4
+ import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as o}from"@wove/react/cjs/hooks";import{message as a,Upload as i,Button as t}from"antd";import{useState as n,isValidElement as l}from"react";import{jsx as s}from"react/jsx-runtime";var f=["onImportFinish","buttonName"];var m=function m(c){var d=c.onImportFinish,p=c.buttonName,u=e(c,f);var h=n(false),v=h[0],g=h[1];var x=o.useCallbackRef(function(e){if(e.file.status==="uploading"){g(true)}else if(e.file.status==="done"){g(false);var r=e.file.response;if(r.code==="0000"){d(r.data)}else{void a.error(r.message||"文件导入异常...")}}});return s(i,r({showUploadList:false,maxCount:1},u,{onChange:x,children:typeof c.children==="function"?c.children==null?void 0:c.children({loading:v}):l(c.children)?c.children:s(t,{type:"primary",ghost:true,loading:v,children:p||"选择文件"})}))};m.defaultProps={name:"file",accept:".xlsx,.xls"};export{m as FileImport};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-import/file-import.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Upload, UploadProps } from 'antd';\nimport { isValidElement, ReactElement, useState } from 'react';\n\nexport type FileImportProps = {\n /** 上传文件接口返回处理 */\n onImportFinish: (data?: TAny) => void;\n buttonName?: string | ReactElement;\n children?: React.ReactNode | ((data: { loading: boolean }) => React.ReactNode);\n} & Omit<\n UploadProps,\n | 'fileList'\n | 'showUploadList'\n | 'itemRender'\n | 'listType'\n | 'multiple'\n | 'previewFile'\n | 'progress'\n | 'onChange'\n | 'onDownload'\n | 'onRemove'\n | 'onPreview'\n | 'directory'\n | 'customRequest'\n | 'defaultFileList'\n | 'iconRender'\n>;\n\n/**\n * 文件导入\n * ```\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/widget?key=file-export\n * 1. accept默认值 '.xlsx,.xls',\n * 2. formData 上传key默认值 file\n * \n * 例如:\n <FileImport\n action={'https://xxx/xxx/xx'}\n onImportFinish={(data) => {\n console.log('上传接口响应数据', data);\n }}\n >\n <Button>文件上传</Button>\n </FileImport>\n * ```\n */\nexport const FileImport = (props: FileImportProps) => {\n const { onImportFinish, buttonName, ...otherProps } = props;\n\n const [loading, setLoading] = useState(false);\n\n const onChange = hooks.useCallbackRef((info) => {\n if (info.file.status === 'uploading') {\n setLoading(true);\n } else if (info.file.status === 'done') {\n setLoading(false);\n const respData = info.file.response;\n if (respData.code === '0000') {\n onImportFinish(respData.data);\n } else {\n void message.error((respData.message as string) || '文件导入异常...');\n }\n }\n });\n\n return (\n <Upload showUploadList={false} maxCount={1} {...otherProps} onChange={onChange}>\n {typeof props.children === 'function' ? (\n props.children?.({ loading })\n ) : isValidElement(props.children) ? (\n props.children\n ) : (\n <Button type=\"primary\" ghost loading={loading}>\n {buttonName || '选择文件'}\n </Button>\n )}\n </Upload>\n );\n};\n\nFileImport.defaultProps = {\n name: 'file',\n accept: '.xlsx,.xls',\n};\n"],"names":["FileImport","props","onImportFinish","buttonName","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","loading","setLoading","onChange","_hooks","useCallbackRef","info","file","status","respData","response","code","data","message","error","_jsx","Upload","_extends","showUploadList","maxCount","children","isValidElement","Button","type","ghost","defaultProps","name","accept"],"mappings":";gTA+CaA,EAAa,SAAbA,EAAcC,GACzB,IAAQC,EAA8CD,EAA9CC,eAAgBC,EAA8BF,EAA9BE,WAAeC,EAAUC,EAAKJ,EAAKK,GAE3D,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1B,IAAMI,EAAWC,EAAMC,gBAAe,SAACC,GACrC,GAAIA,EAAKC,KAAKC,SAAW,YAAa,CACpCN,EAAW,KACZ,MAAM,GAAII,EAAKC,KAAKC,SAAW,OAAQ,CACtCN,EAAW,OACX,IAAMO,EAAWH,EAAKC,KAAKG,SAC3B,GAAID,EAASE,OAAS,OAAQ,CAC5BjB,EAAee,EAASG,KAC1B,KAAO,MACAC,EAAQC,MAAOL,EAASI,SAAsB,YACrD,CACF,CACF,IAEA,OACEE,EAACC,EAAMC,EAAA,CAACC,eAAgB,MAAOC,SAAU,GAAOvB,EAAU,CAAEO,SAAUA,EAASiB,gBACrE3B,EAAM2B,WAAa,WACzB3B,EAAM2B,UAAQ,UAAA,EAAd3B,EAAM2B,SAAW,CAAEnB,QAAAA,IACjBoB,EAAe5B,EAAM2B,UACvB3B,EAAM2B,SAENL,EAACO,EAAM,CAACC,KAAK,UAAUC,MAAK,KAACvB,QAASA,EAAQmB,SAC3CzB,GAAc,WAKzB,EAEAH,EAAWiC,aAAe,CACxBC,KAAM,OACNC,OAAQ"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-import/file-import.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Upload, UploadProps } from 'antd';\nimport { isValidElement, ReactElement, useState } from 'react';\n\nexport type FileImportProps = {\n /** 上传文件接口返回处理 */\n onImportFinish: (data?: TAny) => void;\n buttonName?: string | ReactElement;\n children?: React.ReactNode | ((data: { loading: boolean }) => React.ReactNode);\n} & Omit<\n UploadProps,\n | 'fileList'\n | 'showUploadList'\n | 'itemRender'\n | 'listType'\n | 'multiple'\n | 'previewFile'\n | 'progress'\n | 'onChange'\n | 'onDownload'\n | 'onRemove'\n | 'onPreview'\n | 'directory'\n | 'customRequest'\n | 'defaultFileList'\n | 'iconRender'\n>;\n\n/**\n * 文件导入\n * ```\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/widget?key=file-export\n * 1. accept默认值 '.xlsx,.xls',\n * 2. formData 上传key默认值 file\n * \n * 例如:\n <FileImport\n action={'https://xxx/xxx/xx'}\n onImportFinish={(data) => {\n console.log('上传接口响应数据', data);\n }}\n >\n <Button>文件上传</Button>\n </FileImport>\n * ```\n */\nexport const FileImport = (props: FileImportProps) => {\n const { onImportFinish, buttonName, ...otherProps } = props;\n\n const [loading, setLoading] = useState(false);\n\n const onChange = hooks.useCallbackRef((info) => {\n if (info.file.status === 'uploading') {\n setLoading(true);\n } else if (info.file.status === 'done') {\n setLoading(false);\n const respData = info.file.response;\n if (respData.code === '0000') {\n onImportFinish(respData.data);\n } else {\n void message.error((respData.message as string) || '文件导入异常...');\n }\n }\n });\n\n return (\n <Upload showUploadList={false} maxCount={1} {...otherProps} onChange={onChange}>\n {typeof props.children === 'function' ? (\n props.children?.({ loading })\n ) : isValidElement(props.children) ? (\n props.children\n ) : (\n <Button type=\"primary\" ghost loading={loading}>\n {buttonName || '选择文件'}\n </Button>\n )}\n </Upload>\n );\n};\n\nFileImport.defaultProps = {\n name: 'file',\n accept: '.xlsx,.xls',\n};\n"],"names":["FileImport","props","onImportFinish","buttonName","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","loading","setLoading","onChange","_hooks","useCallbackRef","info","file","status","respData","response","code","data","message","error","_jsx","Upload","_extends","showUploadList","maxCount","children","isValidElement","Button","type","ghost","defaultProps","name","accept"],"mappings":";gTA+CaA,EAAa,SAAbA,EAAcC,GACzB,IAAQC,EAA8CD,EAA9CC,eAAgBC,EAA8BF,EAA9BE,WAAeC,EAAUC,EAAKJ,EAAKK,GAE3D,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1B,IAAMI,EAAWC,EAAMC,eAAe,SAACC,GACrC,GAAIA,EAAKC,KAAKC,SAAW,YAAa,CACpCN,EAAW,KACZ,MAAM,GAAII,EAAKC,KAAKC,SAAW,OAAQ,CACtCN,EAAW,OACX,IAAMO,EAAWH,EAAKC,KAAKG,SAC3B,GAAID,EAASE,OAAS,OAAQ,CAC5BjB,EAAee,EAASG,KAC1B,KAAO,MACAC,EAAQC,MAAOL,EAASI,SAAsB,YACrD,CACF,CACF,GAEA,OACEE,EAACC,EAAMC,EAAA,CAACC,eAAgB,MAAOC,SAAU,GAAOvB,EAAU,CAAEO,SAAUA,EAASiB,gBACrE3B,EAAM2B,WAAa,WACzB3B,EAAM2B,UAAQ,UAAA,EAAd3B,EAAM2B,SAAW,CAAEnB,QAAAA,IACjBoB,EAAe5B,EAAM2B,UACvB3B,EAAM2B,SAENL,EAACO,EAAM,CAACC,KAAK,UAAUC,MAAK,KAACvB,QAASA,EAAQmB,SAC3CzB,GAAc,WAKzB,EAEAH,EAAWiC,aAAe,CACxBC,KAAM,OACNC,OAAQ"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{isUndefinedOrNull as o}from"@flatbiz/utils";import{Upload as t,Button as a}from"antd";import{useState as l}from"react";import{jsx as n}from"react/jsx-runtime";var i=function i(s){var c=s.buttonName;var m=l([]),f=m[0],u=m[1];var h=o(s.direction)?"horizontal":s.direction;var p=r.useCallbackRef((function(e){u([e]);s.onChange==null||s.onChange(e);return false}));var d=r.useCallbackRef((function(e){var r;if((e==null||(r=e.file)==null?void 0:r.status)==="removed"){u([]);s.onChange==null||s.onChange()}}));return n(t,{showUploadList:true,onChange:d,maxCount:1,beforeUpload:p,fileList:f,accept:s.accept||".xlsx,.xls",className:e("file-select",{"file-select-horizontal":h==="horizontal"},s.className),children:s.children?s.children:n(a,{type:"primary",ghost:true,children:c||"选择文件"})})};export{i as FileSelect};
4
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{isUndefinedOrNull as o}from"@flatbiz/utils";import{Upload as t,Button as a}from"antd";import{useState as l}from"react";import{jsx as n}from"react/jsx-runtime";var i=function i(s){var c=s.buttonName;var m=l([]),f=m[0],u=m[1];var h=o(s.direction)?"horizontal":s.direction;var p=r.useCallbackRef(function(e){u([e]);s.onChange==null||s.onChange(e);return false});var d=r.useCallbackRef(function(e){var r;if((e==null||(r=e.file)==null?void 0:r.status)==="removed"){u([]);s.onChange==null||s.onChange()}});return n(t,{showUploadList:true,onChange:d,maxCount:1,beforeUpload:p,fileList:f,accept:s.accept||".xlsx,.xls",className:e("file-select",{"file-select-horizontal":h==="horizontal"},s.className),children:s.children?s.children:n(a,{type:"primary",ghost:true,children:c||"选择文件"})})};export{i as FileSelect};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-select/file-select.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Upload } from 'antd';\nimport { RcFile } from 'antd/es/upload';\nimport { ReactElement, useState } from 'react';\nimport './style.less';\n\nexport type FileSelectProps = {\n buttonName?: string | ReactElement;\n children?: React.ReactNode;\n /** 上传按钮与文件排版 默认:horizontal */\n direction?: 'horizontal' | 'hertical';\n /** 可选择文件格式,默认:.xlsx,.xls */\n accept?: string;\n onChange?: (file?: RcFile) => void;\n className?: string;\n};\n\n/**\n * 文件选择,内部不调用服务上传\n * ```\n * 默认选择文件格式:.xlsx,.xls\n * ```\n */\nexport const FileSelect = (props: FileSelectProps) => {\n const { buttonName } = props;\n const [fileList, setFileList] = useState<RcFile[]>([]);\n const direction = isUndefinedOrNull(props.direction) ? 'horizontal' : props.direction;\n\n const beforeUpload = hooks.useCallbackRef((file) => {\n setFileList([file]);\n props.onChange?.(file);\n return false;\n });\n\n const onChange = hooks.useCallbackRef((info) => {\n if (info?.file?.status === 'removed') {\n setFileList([]);\n props.onChange?.();\n }\n });\n\n return (\n <Upload\n showUploadList={true}\n onChange={onChange}\n maxCount={1}\n beforeUpload={beforeUpload}\n fileList={fileList}\n accept={props.accept || '.xlsx,.xls'}\n className={classNames(\n 'file-select',\n { 'file-select-horizontal': direction === 'horizontal' },\n props.className,\n )}\n >\n {props.children ? (\n props.children\n ) : (\n <Button type=\"primary\" ghost>\n {buttonName || '选择文件'}\n </Button>\n )}\n </Upload>\n );\n};\n"],"names":["FileSelect","props","buttonName","_useState","useState","fileList","setFileList","direction","isUndefinedOrNull","beforeUpload","_hooks","useCallbackRef","file","onChange","info","_info$file","status","_jsx","Upload","showUploadList","maxCount","accept","className","_classNames","children","Button","type","ghost"],"mappings":";kRAyBaA,EAAa,SAAbA,EAAcC,GACzB,IAAQC,EAAeD,EAAfC,WACR,IAAAC,EAAgCC,EAAmB,IAA5CC,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5B,IAAMI,EAAYC,EAAkBP,EAAMM,WAAa,aAAeN,EAAMM,UAE5E,IAAME,EAAeC,EAAMC,gBAAe,SAACC,GACzCN,EAAY,CAACM,IACbX,EAAMY,UAANZ,MAAAA,EAAMY,SAAWD,GACjB,OAAO,KACT,IAEA,IAAMC,EAAWH,EAAMC,gBAAe,SAACG,GAAS,IAAAC,EAC9C,IAAID,GAAIC,OAAAA,EAAJD,EAAMF,OAAI,UAAA,EAAVG,EAAYC,UAAW,UAAW,CACpCV,EAAY,IACZL,EAAMY,UAAQ,MAAdZ,EAAMY,UACR,CACF,IAEA,OACEI,EAACC,EAAM,CACLC,eAAgB,KAChBN,SAAUA,EACVO,SAAU,EACVX,aAAcA,EACdJ,SAAUA,EACVgB,OAAQpB,EAAMoB,QAAU,aACxBC,UAAWC,EACT,cACA,CAAE,yBAA0BhB,IAAc,cAC1CN,EAAMqB,WACNE,SAEDvB,EAAMuB,SACLvB,EAAMuB,SAENP,EAACQ,EAAM,CAACC,KAAK,UAAUC,MAAK,KAAAH,SACzBtB,GAAc,UAKzB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-select/file-select.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Upload } from 'antd';\nimport { RcFile } from 'antd/es/upload';\nimport { ReactElement, useState } from 'react';\nimport './style.less';\n\nexport type FileSelectProps = {\n buttonName?: string | ReactElement;\n children?: React.ReactNode;\n /** 上传按钮与文件排版 默认:horizontal */\n direction?: 'horizontal' | 'hertical';\n /** 可选择文件格式,默认:.xlsx,.xls */\n accept?: string;\n onChange?: (file?: RcFile) => void;\n className?: string;\n};\n\n/**\n * 文件选择,内部不调用服务上传\n * ```\n * 默认选择文件格式:.xlsx,.xls\n * ```\n */\nexport const FileSelect = (props: FileSelectProps) => {\n const { buttonName } = props;\n const [fileList, setFileList] = useState<RcFile[]>([]);\n const direction = isUndefinedOrNull(props.direction) ? 'horizontal' : props.direction;\n\n const beforeUpload = hooks.useCallbackRef((file) => {\n setFileList([file]);\n props.onChange?.(file);\n return false;\n });\n\n const onChange = hooks.useCallbackRef((info) => {\n if (info?.file?.status === 'removed') {\n setFileList([]);\n props.onChange?.();\n }\n });\n\n return (\n <Upload\n showUploadList={true}\n onChange={onChange}\n maxCount={1}\n beforeUpload={beforeUpload}\n fileList={fileList}\n accept={props.accept || '.xlsx,.xls'}\n className={classNames(\n 'file-select',\n { 'file-select-horizontal': direction === 'horizontal' },\n props.className,\n )}\n >\n {props.children ? (\n props.children\n ) : (\n <Button type=\"primary\" ghost>\n {buttonName || '选择文件'}\n </Button>\n )}\n </Upload>\n );\n};\n"],"names":["FileSelect","props","buttonName","_useState","useState","fileList","setFileList","direction","isUndefinedOrNull","beforeUpload","_hooks","useCallbackRef","file","onChange","info","_info$file","status","_jsx","Upload","showUploadList","maxCount","accept","className","_classNames","children","Button","type","ghost"],"mappings":";kRAyBaA,EAAa,SAAbA,EAAcC,GACzB,IAAQC,EAAeD,EAAfC,WACR,IAAAC,EAAgCC,EAAmB,IAA5CC,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5B,IAAMI,EAAYC,EAAkBP,EAAMM,WAAa,aAAeN,EAAMM,UAE5E,IAAME,EAAeC,EAAMC,eAAe,SAACC,GACzCN,EAAY,CAACM,IACbX,EAAMY,UAANZ,MAAAA,EAAMY,SAAWD,GACjB,OAAO,KACT,GAEA,IAAMC,EAAWH,EAAMC,eAAe,SAACG,GAAS,IAAAC,EAC9C,IAAID,GAAIC,OAAAA,EAAJD,EAAMF,OAAI,UAAA,EAAVG,EAAYC,UAAW,UAAW,CACpCV,EAAY,IACZL,EAAMY,UAAQ,MAAdZ,EAAMY,UACR,CACF,GAEA,OACEI,EAACC,EAAM,CACLC,eAAgB,KAChBN,SAAUA,EACVO,SAAU,EACVX,aAAcA,EACdJ,SAAUA,EACVgB,OAAQpB,EAAMoB,QAAU,aACxBC,UAAWC,EACT,cACA,CAAE,yBAA0BhB,IAAc,cAC1CN,EAAMqB,WACNE,SAEDvB,EAAMuB,SACLvB,EAAMuB,SAENP,EAACQ,EAAM,CAACC,KAAK,UAAUC,MAAK,KAAAH,SACzBtB,GAAc,UAKzB"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as l}from"@dimjs/utils/cjs/class-names";import{toArray as e}from"@flatbiz/utils";import{Children as a,cloneElement as i}from"react";import{jsx as t}from"react/jsx-runtime";var o=function o(s){var n=a.toArray(s.children);var m=s.direction||"vertical";var c=s.gap?s.gap:0;var p=e(s.fullIndex);return t("div",{className:l("v-flex-layout","v-flex-"+m,s.className),style:r({},s.style,{gap:c}),onClick:s.onClick,children:n.map((function(l,e){var a;var t=((a=l.props)==null?void 0:a.style)||{};var o=p.includes(e)?r({flex:1},t):r({flexShrink:0},t);return i(l,{style:o,key:e})}))})};export{o as FlexLayout};
4
+ import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as l}from"@dimjs/utils/cjs/class-names";import{toArray as e}from"@flatbiz/utils";import{Children as a,cloneElement as i}from"react";import{jsx as t}from"react/jsx-runtime";var o=function o(s){var n=a.toArray(s.children);var m=s.direction||"vertical";var c=s.gap?s.gap:0;var p=e(s.fullIndex);return t("div",{className:l("v-flex-layout","v-flex-"+m,s.className),style:r({},s.style,{gap:c}),onClick:s.onClick,children:n.map(function(l,e){var a;var t=((a=l.props)==null?void 0:a.style)||{};var o=p.includes(e)?r({flex:1},t):r({flexShrink:0},t);return i(l,{style:o,key:e})})})};export{o as FlexLayout};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/flex-layout/flex-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { toArray } from '@flatbiz/utils';\nimport { Children, cloneElement, CSSProperties, ReactElement, ReactNode } from 'react';\nimport './style.less';\n\nexport type FlexLayoutProps = {\n className?: string;\n /** 子组件铺满的索引值,从0开始 */\n fullIndex: number | number[];\n /**方向,默认值vertical */\n direction?: 'vertical' | 'horizontal';\n onClick?: () => void;\n style?: CSSProperties;\n /** 间隙尺寸 */\n gap?: number;\n children?: ReactNode | null | Array<ReactNode | null>;\n};\n/**\n * flex布局,主要用于Flex结构性布局\n * ```\n * 4.2.87版本中将fullIndex改为了必填属性,如果在升级中遇到问题,不确定怎么写,可设置 fullIndex=[] 保持原样\n * ```\n */\nexport const FlexLayout = (props: FlexLayoutProps) => {\n const childrens = Children.toArray(props.children) as ReactElement[];\n const direction = props.direction || 'vertical';\n const gap = props.gap ? props.gap : 0;\n const fullIndexList = toArray<number>(props.fullIndex);\n\n return (\n <div\n className={classNames('v-flex-layout', `v-flex-${direction}`, props.className)}\n style={{\n ...props.style,\n gap,\n }}\n onClick={props.onClick}\n >\n {childrens.map((children, index) => {\n const childrenStyle = children.props?.style || {};\n const style = fullIndexList.includes(index)\n ? { flex: 1, ...childrenStyle }\n : { flexShrink: 0, ...childrenStyle };\n // if (index < childrens.length - 1 && gap > 0) {\n // if (direction === 'horizontal') {\n // style.marginRight = gap;\n // } else {\n // style.marginBottom = gap;\n // }\n // }\n return cloneElement(children, { style, key: index });\n })}\n </div>\n );\n};\n"],"names":["FlexLayout","props","childrens","Children","toArray","children","direction","gap","fullIndexList","fullIndex","_jsx","className","_classNames","style","_extends","onClick","map","index","_children$props","childrenStyle","includes","flex","flexShrink","cloneElement","key"],"mappings":";+PAuBaA,EAAa,SAAbA,EAAcC,GACzB,IAAMC,EAAYC,EAASC,QAAQH,EAAMI,UACzC,IAAMC,EAAYL,EAAMK,WAAa,WACrC,IAAMC,EAAMN,EAAMM,IAAMN,EAAMM,IAAM,EACpC,IAAMC,EAAgBJ,EAAgBH,EAAMQ,WAE5C,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAW,gBAAe,UAAYN,EAAaL,EAAMU,WACpEE,MAAKC,EACAb,GAAAA,EAAMY,MAAK,CACdN,IAAAA,IAEFQ,QAASd,EAAMc,QAAQV,SAEtBH,EAAUc,KAAI,SAACX,EAAUY,GAAU,IAAAC,EAClC,IAAMC,IAAgBD,EAAAb,EAASJ,QAAK,UAAA,EAAdiB,EAAgBL,QAAS,CAAA,EAC/C,IAAMA,EAAQL,EAAcY,SAASH,GAAMH,EAAA,CACrCO,KAAM,GAAMF,GAAaL,EAAA,CACzBQ,WAAY,GAAMH,GAQxB,OAAOI,EAAalB,EAAU,CAAEQ,MAAAA,EAAOW,IAAKP,QAIpD"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/flex-layout/flex-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { toArray } from '@flatbiz/utils';\nimport { Children, cloneElement, CSSProperties, ReactElement, ReactNode } from 'react';\nimport './style.less';\n\nexport type FlexLayoutProps = {\n className?: string;\n /** 子组件铺满的索引值,从0开始 */\n fullIndex: number | number[];\n /**方向,默认值vertical */\n direction?: 'vertical' | 'horizontal';\n onClick?: () => void;\n style?: CSSProperties;\n /** 间隙尺寸 */\n gap?: number;\n children?: ReactNode | null | Array<ReactNode | null>;\n};\n/**\n * flex布局,主要用于Flex结构性布局\n * ```\n * 4.2.87版本中将fullIndex改为了必填属性,如果在升级中遇到问题,不确定怎么写,可设置 fullIndex=[] 保持原样\n * ```\n */\nexport const FlexLayout = (props: FlexLayoutProps) => {\n const childrens = Children.toArray(props.children) as ReactElement[];\n const direction = props.direction || 'vertical';\n const gap = props.gap ? props.gap : 0;\n const fullIndexList = toArray<number>(props.fullIndex);\n\n return (\n <div\n className={classNames('v-flex-layout', `v-flex-${direction}`, props.className)}\n style={{\n ...props.style,\n gap,\n }}\n onClick={props.onClick}\n >\n {childrens.map((children, index) => {\n const childrenStyle = children.props?.style || {};\n const style = fullIndexList.includes(index)\n ? { flex: 1, ...childrenStyle }\n : { flexShrink: 0, ...childrenStyle };\n // if (index < childrens.length - 1 && gap > 0) {\n // if (direction === 'horizontal') {\n // style.marginRight = gap;\n // } else {\n // style.marginBottom = gap;\n // }\n // }\n return cloneElement(children, { style, key: index });\n })}\n </div>\n );\n};\n"],"names":["FlexLayout","props","childrens","Children","toArray","children","direction","gap","fullIndexList","fullIndex","_jsx","className","_classNames","style","_extends","onClick","map","index","_children$props","childrenStyle","includes","flex","flexShrink","cloneElement","key"],"mappings":";+PAuBaA,EAAa,SAAbA,EAAcC,GACzB,IAAMC,EAAYC,EAASC,QAAQH,EAAMI,UACzC,IAAMC,EAAYL,EAAMK,WAAa,WACrC,IAAMC,EAAMN,EAAMM,IAAMN,EAAMM,IAAM,EACpC,IAAMC,EAAgBJ,EAAgBH,EAAMQ,WAE5C,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAW,gBAAe,UAAYN,EAAaL,EAAMU,WACpEE,MAAKC,EACAb,GAAAA,EAAMY,MAAK,CACdN,IAAAA,IAEFQ,QAASd,EAAMc,QAAQV,SAEtBH,EAAUc,IAAI,SAACX,EAAUY,GAAU,IAAAC,EAClC,IAAMC,IAAgBD,EAAAb,EAASJ,QAAK,UAAA,EAAdiB,EAAgBL,QAAS,CAAA,EAC/C,IAAMA,EAAQL,EAAcY,SAASH,GAAMH,EAAA,CACrCO,KAAM,GAAMF,GAAaL,EAAA,CACzBQ,WAAY,GAAMH,GAQxB,OAAOI,EAAalB,EAAU,CAAEQ,MAAAA,EAAOW,IAAKP,OAIpD"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{a as r,_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{Col as t,Form as i,Row as n,Space as o}from"antd";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{classNames as u}from"@dimjs/utils/cjs/class-names";import{useMemo as s,isValidElement as f,cloneElement as d}from"react";import{toArray as v,valueIsEqual as m}from"@flatbiz/utils";import{u as p}from"../use-responsive-point-21b8c601.js";var c=["forceAloneRow","hidden"];var h={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var g=function i(n){var o=n.forceAloneRow,l=n.hidden,u=r(n,c);var s=o?h:u;if(l)return null;return a(t,e({},s,{children:n.children}))};g["domTypeName"]="FormCol";var x=["leftList","rightList","rowColTotal","justify","forceAloneRow","hidden","leftSpaceProps","rightSpaceProps"];var y={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var L=function f(d){var v=d,m=v.leftList,p=v.rightList,c=v.rowColTotal,h=v.justify,g=v.forceAloneRow,L=v.hidden,w=v.leftSpaceProps,C=v.rightSpaceProps,N=r(v,x);var j=(m||[]).filter(Boolean);var T=(p||[]).filter(Boolean);var F=j.length>0&&T.length>0;var S=g||F?y:{};var G=s((function(){if(h)return h;if(F)return"space-between";if(g)return"end";if(c===1)return"start";return"end"}),[g,F,h,c]);var O=u(d.className,"v-form-col-operate");if(L)return null;return a(t,e({},N,S,{className:O,children:a(i.Item,{children:l(n,{justify:G,wrap:false,children:[a(o,e({},w,{className:u("v-form-col-operate-left",w==null?void 0:w.className),children:j.map((function(r){return r}))})),a(o,e({},C,{style:e({overflowX:"auto"},C==null?void 0:C.style),className:u("v-form-col-operate-right",C==null?void 0:C.className),children:T==null?void 0:T.map((function(r){return r}))}))]})})}))};L["domTypeName"]="FormOperateCol";var w=function r(e,t){try{var i=[];var n=function r(t){var i=e[t];return{index:t,value:i>24?24:i}};var o=true;var a=[];var l=0;var u=0;while(o){var s=e[l];a.push(n(l));if(s>=24){i.push(a);a=[];u=0}else if(l===e.length-1){i.push(a)}else{u+=s;if(u>=24){i.push(a);a=[];u=0}}l=l+1;if(l>=e.length){o=false}}var f=i.find((function(r){return!!r.find((function(r){return r.index===t}))}))||[];var d=0;var v=0;f.forEach((function(r,e){if(r.index===t)v=e;if(r.index<t){d=d+r.value}}));if(d===24||d===0){f[v].value=24}else{f[v].value=24-d}return{gridList:i.reduce((function(r,e){return r.concat(e)})).map((function(r){return r.value})),gridGroupList:i}}catch(r){return{gridList:e,gridGroupList:[]}}};var C=["gridSize"];var N={xs:24,sm:12,md:12,lg:8,xl:8,xxl:6};var j={xs:24,sm:12,md:8,lg:6,xl:6,xxl:6};var T=function t(i){var o=i.gridSize,l=r(i,C);var u=p()||"md";var c=v(i.children).filter((function(r){if(!r||!f(r))return false;return m(r.type["domTypeName"],["FormOperateCol","FormCol"])}));var h=o==="small"?j:N;var g=s((function(){var r=c.findIndex((function(r){return r.type["domTypeName"]==="FormOperateCol"}));if(u===undefined){return{gridList:[],gridGroupList:[]}}var e=c.map((function(e,t){var i,n;if(t===r)return 0;var o=(i=e.props)==null?void 0:i.span;if(["md","sm","xs"].includes(u)){var a;var l=((a=e.props)==null?void 0:a[u])||h[u];if(u=="md"&&o){return o>l?o:l}return l}return((n=e.props)==null?void 0:n[u])||o||h[u]}));if(r<0){return{gridList:e,gridGroupList:[]}}return w(e,r)}),[c,h,u]),x=g.gridList,y=g.gridGroupList;return a(n,e({},l,{children:c.map((function(r,t){var i;var n=e({},h,r.props);var o=e({key:t},n,(i={},i[u]=x[t]||n[u],i));if(r.type["domTypeName"]==="FormOperateCol"){o["rowColTotal"]=y.length}return d(r,o)}))}))};var F={Row:T,Col:g,OperateCol:L};export{F as FormGrid};
4
+ import{a as r,_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{Col as t,Form as i,Row as n,Space as o}from"antd";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{classNames as u}from"@dimjs/utils/cjs/class-names";import{useMemo as s,isValidElement as f,cloneElement as d}from"react";import{toArray as v,valueIsEqual as m}from"@flatbiz/utils";import{u as p}from"../use-responsive-point-1e6d93d9.js";var c=["forceAloneRow","hidden"];var h={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var g=function i(n){var o=n.forceAloneRow,l=n.hidden,u=r(n,c);var s=o?h:u;if(l)return null;return a(t,e({},s,{children:n.children}))};g["domTypeName"]="FormCol";var x=["leftList","rightList","rowColTotal","justify","forceAloneRow","hidden","leftSpaceProps","rightSpaceProps"];var y={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var L=function f(d){var v=d,m=v.leftList,p=v.rightList,c=v.rowColTotal,h=v.justify,g=v.forceAloneRow,L=v.hidden,w=v.leftSpaceProps,C=v.rightSpaceProps,N=r(v,x);var j=(m||[]).filter(Boolean);var T=(p||[]).filter(Boolean);var F=j.length>0&&T.length>0;var S=g||F?y:{};var G=s(function(){if(h)return h;if(F)return"space-between";if(g)return"end";if(c===1)return"start";return"end"},[g,F,h,c]);var O=u(d.className,"v-form-col-operate");if(L)return null;return a(t,e({},N,S,{className:O,children:a(i.Item,{children:l(n,{justify:G,wrap:false,children:[a(o,e({},w,{className:u("v-form-col-operate-left",w==null?void 0:w.className),children:j.map(function(r){return r})})),a(o,e({},C,{style:e({overflowX:"auto"},C==null?void 0:C.style),className:u("v-form-col-operate-right",C==null?void 0:C.className),children:T==null?void 0:T.map(function(r){return r})}))]})})}))};L["domTypeName"]="FormOperateCol";var w=function r(e,t){try{var i=[];var n=function r(t){var i=e[t];return{index:t,value:i>24?24:i}};var o=true;var a=[];var l=0;var u=0;while(o){var s=e[l];a.push(n(l));if(s>=24){i.push(a);a=[];u=0}else if(l===e.length-1){i.push(a)}else{u+=s;if(u>=24){i.push(a);a=[];u=0}}l=l+1;if(l>=e.length){o=false}}var f=i.find(function(r){return!!r.find(function(r){return r.index===t})})||[];var d=0;var v=0;f.forEach(function(r,e){if(r.index===t)v=e;if(r.index<t){d=d+r.value}});if(d===24||d===0){f[v].value=24}else{f[v].value=24-d}return{gridList:i.reduce(function(r,e){return r.concat(e)}).map(function(r){return r.value}),gridGroupList:i}}catch(r){return{gridList:e,gridGroupList:[]}}};var C=["gridSize"];var N={xs:24,sm:12,md:12,lg:8,xl:8,xxl:6};var j={xs:24,sm:12,md:8,lg:6,xl:6,xxl:6};var T=function t(i){var o=i.gridSize,l=r(i,C);var u=p()||"md";var c=v(i.children).filter(function(r){if(!r||!f(r))return false;return m(r.type["domTypeName"],["FormOperateCol","FormCol"])});var h=o==="small"?j:N;var g=s(function(){var r=c.findIndex(function(r){return r.type["domTypeName"]==="FormOperateCol"});if(u===undefined){return{gridList:[],gridGroupList:[]}}var e=c.map(function(e,t){var i,n;if(t===r)return 0;var o=(i=e.props)==null?void 0:i.span;if(["md","sm","xs"].includes(u)){var a;var l=((a=e.props)==null?void 0:a[u])||h[u];if(u=="md"&&o){return o>l?o:l}return l}return((n=e.props)==null?void 0:n[u])||o||h[u]});if(r<0){return{gridList:e,gridGroupList:[]}}return w(e,r)},[c,h,u]),x=g.gridList,y=g.gridGroupList;return a(n,e({},l,{children:c.map(function(r,t){var i;var n=e({},h,r.props);var o=e({key:t},n,(i={},i[u]=x[t]||n[u],i));if(r.type["domTypeName"]==="FormOperateCol"){o["rowColTotal"]=y.length}return d(r,o)})}))};var F={Row:T,Col:g,OperateCol:L};export{F as FormGrid};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-grid/form-col.tsx","@flatbiz/antd/src/form-grid/form-operate-col.tsx","@flatbiz/antd/src/form-grid/utils.ts","@flatbiz/antd/src/form-grid/form-row.tsx","@flatbiz/antd/src/form-grid/index.ts"],"sourcesContent":["import { Col } from 'antd';\nimport { ReactNode } from 'react';\nconst forceAloneRowGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormColProps = {\n /** 栅格占位格数,替换lg、xl、xxl默认数据 */\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n children?: ReactNode | ReactNode[];\n hidden?: boolean;\n};\n\n/**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,替换lg、xl、xxl默认数据,不替换xs、sm布局数据\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\nexport const FormCol = (props: FormColProps) => {\n const { forceAloneRow, hidden, ...otherProps } = props;\n const forceGrid = forceAloneRow ? forceAloneRowGrid : otherProps;\n if (hidden) return null;\n return <Col {...forceGrid}>{props.children}</Col>;\n};\n\nFormCol['domTypeName'] = 'FormCol';\n","import { classNames } from '@dimjs/utils';\nimport { Col, Form, Row, RowProps, Space, SpaceProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\n\nconst fullGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormOperateColProps = {\n className?: string;\n leftList?: Array<ReactElement | null>;\n rightList?: Array<ReactElement | null>;\n // left、right 对齐方式,优先级最高\n justify?: RowProps['justify'];\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n hidden?: boolean;\n leftSpaceProps?: SpaceProps;\n rightSpaceProps?: SpaceProps;\n};\n\n/**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\nexport const FormOperateCol = (props: FormOperateColProps) => {\n const {\n leftList,\n rightList,\n rowColTotal,\n justify,\n forceAloneRow,\n hidden,\n leftSpaceProps,\n rightSpaceProps,\n ...otherProps\n } = props as FormOperateColProps & {\n rowColTotal: number;\n };\n const _leftList = (leftList || []).filter(Boolean);\n const _rightList = (rightList || []).filter(Boolean);\n const hasAll = _leftList.length > 0 && _rightList.length > 0;\n const forceGrid = forceAloneRow || hasAll ? fullGrid : {};\n\n const colJustify = useMemo(() => {\n if (justify) return justify;\n if (hasAll) return 'space-between';\n if (forceAloneRow) return 'end';\n if (rowColTotal === 1) return 'start';\n return 'end';\n }, [forceAloneRow, hasAll, justify, rowColTotal]);\n\n const className = classNames(props.className, 'v-form-col-operate');\n\n if (hidden) return null;\n\n return (\n <Col {...otherProps} {...forceGrid} className={className}>\n <Form.Item>\n <Row justify={colJustify} wrap={false}>\n <Space\n {...leftSpaceProps}\n className={classNames('v-form-col-operate-left', leftSpaceProps?.className)}\n >\n {_leftList.map((item) => item)}\n </Space>\n <Space\n {...rightSpaceProps}\n style={{ overflowX: 'auto', ...rightSpaceProps?.style }}\n className={classNames('v-form-col-operate-right', rightSpaceProps?.className)}\n >\n {_rightList?.map((item) => item)}\n </Space>\n </Row>\n </Form.Item>\n </Col>\n );\n};\n\nFormOperateCol['domTypeName'] = 'FormOperateCol';\n","/**\n * 用于计算 operateCol 所占用网格数\n * ```\n * col网格数据 [8,8,8,12,24,0,8] => [[8,8,8],[12],[24],[0,8]],分组后计算operateCol所在行中剩余网格数\n * ```\n * @returns\n */\nexport const calculateOperateGrid = (gridList: number[], operateColIndex: number) => {\n try {\n const groupList = [] as { index: number; value: number }[][];\n const getGroupItem = function (index) {\n const value = gridList[index];\n return { index, value: value > 24 ? 24 : value };\n };\n let condition = true;\n let groupItemList = [] as { index: number; value: number }[];\n let currentIndex = 0;\n let total = 0;\n while (condition) {\n const currentValue = gridList[currentIndex];\n groupItemList.push(getGroupItem(currentIndex));\n if (currentValue >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n } else if (currentIndex === gridList.length - 1) {\n groupList.push(groupItemList);\n } else {\n total += currentValue;\n if (total >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n }\n }\n currentIndex = currentIndex + 1;\n if (currentIndex >= gridList.length) {\n condition = false;\n }\n }\n const hasOperateList =\n groupList.find((item) => !!item.find((temp) => temp.index === operateColIndex)) || [];\n let hasOperateTotal = 0;\n let hasOperateIndex = 0;\n hasOperateList.forEach((item, index) => {\n if (item.index === operateColIndex) hasOperateIndex = index;\n if (item.index < operateColIndex) {\n hasOperateTotal = hasOperateTotal + item.value;\n }\n });\n if (hasOperateTotal === 24 || hasOperateTotal === 0) {\n hasOperateList[hasOperateIndex].value = 24;\n } else {\n hasOperateList[hasOperateIndex].value = 24 - hasOperateTotal;\n }\n\n return {\n gridList: groupList.reduce((a, b) => a.concat(b)).map((temp) => temp.value),\n gridGroupList: groupList,\n };\n } catch (error) {\n return {\n gridList,\n gridGroupList: [],\n };\n }\n};\n","import { toArray, valueIsEqual } from '@flatbiz/utils';\nimport { Row, RowProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { calculateOperateGrid } from './utils';\n\nexport type FormRowProps = RowProps & {\n children?: ReactNode | ReactNode[];\n /**\n * default = { xs: 24, sm: 12, md: 8, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 12, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n gridSize?: 'default' | 'small';\n};\nconst defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\nconst defaultSmallGrid = { xs: 24, sm: 12, md: 8, lg: 6, xl: 6, xxl: 6 };\n\n/**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\nexport const FormRow = (props: FormRowProps) => {\n const { gridSize, ...otherProps } = props;\n const screenType = useResponsivePoint() || 'md';\n\n const childrenList = toArray<ReactElement>(props.children).filter((item) => {\n if (!item || !isValidElement(item)) return false;\n return valueIsEqual(item.type['domTypeName'], ['FormOperateCol', 'FormCol']);\n });\n const defaultGridSize = gridSize === 'small' ? defaultSmallGrid : defaultGrid;\n\n const { gridList, gridGroupList } = useMemo(() => {\n const operateColIndex = childrenList.findIndex((item) => {\n return item.type['domTypeName'] === 'FormOperateCol';\n });\n if (screenType === undefined) {\n return { gridList: [] as number[], gridGroupList: [] };\n }\n const _currentGridList = childrenList.map((temp, index) => {\n if (index === operateColIndex) return 0;\n const span = temp.props?.span as number;\n if (['md', 'sm', 'xs'].includes(screenType)) {\n const innerSpan = temp.props?.[screenType] || defaultGridSize[screenType];\n if (screenType == 'md' && span) {\n return span > innerSpan ? span : innerSpan;\n }\n return innerSpan;\n }\n return temp.props?.[screenType] || span || defaultGridSize[screenType];\n });\n if (operateColIndex < 0) {\n return { gridList: _currentGridList, gridGroupList: [] };\n }\n return calculateOperateGrid(_currentGridList, operateColIndex);\n }, [childrenList, defaultGridSize, screenType]);\n\n // if (!screenType) return <Fragment>{props.children}</Fragment>;\n return (\n <Row {...otherProps}>\n {childrenList.map((item, index) => {\n const itemProps = { ...defaultGridSize, ...item.props };\n const newProps = {\n key: index,\n ...itemProps,\n [screenType]: gridList[index] || itemProps[screenType],\n };\n if (item.type['domTypeName'] === 'FormOperateCol') {\n newProps['rowColTotal'] = gridGroupList.length;\n }\n return cloneElement(item, newProps);\n })}\n </Row>\n );\n};\n","import { FormCol } from './form-col';\nimport { FormOperateCol } from './form-operate-col';\nimport { FormRow } from './form-row';\n\nexport const FormGrid = {\n /**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\n Row: FormRow,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,替换lg、xl、xxl默认数据,不替换xs、sm布局数据\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\n Col: FormCol,\n /**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\n OperateCol: FormOperateCol,\n};\n"],"names":["forceAloneRowGrid","xs","sm","md","lg","xl","xxl","FormCol","props","forceAloneRow","hidden","otherProps","_objectWithoutPropertiesLoose","_excluded","forceGrid","_jsx","Col","_extends","children","fullGrid","FormOperateCol","_ref","leftList","rightList","rowColTotal","justify","leftSpaceProps","rightSpaceProps","_leftList","filter","Boolean","_rightList","hasAll","length","colJustify","useMemo","className","_classNames","Form","Item","_jsxs","Row","wrap","Space","map","item","style","overflowX","calculateOperateGrid","gridList","operateColIndex","groupList","getGroupItem","index","value","condition","groupItemList","currentIndex","total","currentValue","push","hasOperateList","find","temp","hasOperateTotal","hasOperateIndex","forEach","reduce","a","b","concat","gridGroupList","error","defaultGrid","defaultSmallGrid","FormRow","gridSize","screenType","useResponsivePoint","childrenList","toArray","isValidElement","valueIsEqual","type","defaultGridSize","_useMemo","findIndex","undefined","_currentGridList","_temp$props","_temp$props3","span","includes","_temp$props2","innerSpan","_extends2","itemProps","newProps","key","cloneElement","FormGrid","OperateCol"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-grid/form-col.tsx","@flatbiz/antd/src/form-grid/form-operate-col.tsx","@flatbiz/antd/src/form-grid/utils.ts","@flatbiz/antd/src/form-grid/form-row.tsx","@flatbiz/antd/src/form-grid/index.ts"],"sourcesContent":["import { Col } from 'antd';\nimport { ReactNode } from 'react';\nconst forceAloneRowGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormColProps = {\n /** 栅格占位格数,替换lg、xl、xxl默认数据 */\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n children?: ReactNode | ReactNode[];\n hidden?: boolean;\n};\n\n/**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,替换lg、xl、xxl默认数据,不替换xs、sm布局数据\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\nexport const FormCol = (props: FormColProps) => {\n const { forceAloneRow, hidden, ...otherProps } = props;\n const forceGrid = forceAloneRow ? forceAloneRowGrid : otherProps;\n if (hidden) return null;\n return <Col {...forceGrid}>{props.children}</Col>;\n};\n\nFormCol['domTypeName'] = 'FormCol';\n","import { classNames } from '@dimjs/utils';\nimport { Col, Form, Row, RowProps, Space, SpaceProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\n\nconst fullGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormOperateColProps = {\n className?: string;\n leftList?: Array<ReactElement | null>;\n rightList?: Array<ReactElement | null>;\n // left、right 对齐方式,优先级最高\n justify?: RowProps['justify'];\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n hidden?: boolean;\n leftSpaceProps?: SpaceProps;\n rightSpaceProps?: SpaceProps;\n};\n\n/**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\nexport const FormOperateCol = (props: FormOperateColProps) => {\n const {\n leftList,\n rightList,\n rowColTotal,\n justify,\n forceAloneRow,\n hidden,\n leftSpaceProps,\n rightSpaceProps,\n ...otherProps\n } = props as FormOperateColProps & {\n rowColTotal: number;\n };\n const _leftList = (leftList || []).filter(Boolean);\n const _rightList = (rightList || []).filter(Boolean);\n const hasAll = _leftList.length > 0 && _rightList.length > 0;\n const forceGrid = forceAloneRow || hasAll ? fullGrid : {};\n\n const colJustify = useMemo(() => {\n if (justify) return justify;\n if (hasAll) return 'space-between';\n if (forceAloneRow) return 'end';\n if (rowColTotal === 1) return 'start';\n return 'end';\n }, [forceAloneRow, hasAll, justify, rowColTotal]);\n\n const className = classNames(props.className, 'v-form-col-operate');\n\n if (hidden) return null;\n\n return (\n <Col {...otherProps} {...forceGrid} className={className}>\n <Form.Item>\n <Row justify={colJustify} wrap={false}>\n <Space\n {...leftSpaceProps}\n className={classNames('v-form-col-operate-left', leftSpaceProps?.className)}\n >\n {_leftList.map((item) => item)}\n </Space>\n <Space\n {...rightSpaceProps}\n style={{ overflowX: 'auto', ...rightSpaceProps?.style }}\n className={classNames('v-form-col-operate-right', rightSpaceProps?.className)}\n >\n {_rightList?.map((item) => item)}\n </Space>\n </Row>\n </Form.Item>\n </Col>\n );\n};\n\nFormOperateCol['domTypeName'] = 'FormOperateCol';\n","/**\n * 用于计算 operateCol 所占用网格数\n * ```\n * col网格数据 [8,8,8,12,24,0,8] => [[8,8,8],[12],[24],[0,8]],分组后计算operateCol所在行中剩余网格数\n * ```\n * @returns\n */\nexport const calculateOperateGrid = (gridList: number[], operateColIndex: number) => {\n try {\n const groupList = [] as { index: number; value: number }[][];\n const getGroupItem = function (index) {\n const value = gridList[index];\n return { index, value: value > 24 ? 24 : value };\n };\n let condition = true;\n let groupItemList = [] as { index: number; value: number }[];\n let currentIndex = 0;\n let total = 0;\n while (condition) {\n const currentValue = gridList[currentIndex];\n groupItemList.push(getGroupItem(currentIndex));\n if (currentValue >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n } else if (currentIndex === gridList.length - 1) {\n groupList.push(groupItemList);\n } else {\n total += currentValue;\n if (total >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n }\n }\n currentIndex = currentIndex + 1;\n if (currentIndex >= gridList.length) {\n condition = false;\n }\n }\n const hasOperateList =\n groupList.find((item) => !!item.find((temp) => temp.index === operateColIndex)) || [];\n let hasOperateTotal = 0;\n let hasOperateIndex = 0;\n hasOperateList.forEach((item, index) => {\n if (item.index === operateColIndex) hasOperateIndex = index;\n if (item.index < operateColIndex) {\n hasOperateTotal = hasOperateTotal + item.value;\n }\n });\n if (hasOperateTotal === 24 || hasOperateTotal === 0) {\n hasOperateList[hasOperateIndex].value = 24;\n } else {\n hasOperateList[hasOperateIndex].value = 24 - hasOperateTotal;\n }\n\n return {\n gridList: groupList.reduce((a, b) => a.concat(b)).map((temp) => temp.value),\n gridGroupList: groupList,\n };\n } catch (error) {\n return {\n gridList,\n gridGroupList: [],\n };\n }\n};\n","import { toArray, valueIsEqual } from '@flatbiz/utils';\nimport { Row, RowProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { calculateOperateGrid } from './utils';\n\nexport type FormRowProps = RowProps & {\n children?: ReactNode | ReactNode[];\n /**\n * default = { xs: 24, sm: 12, md: 8, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 12, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n gridSize?: 'default' | 'small';\n};\nconst defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\nconst defaultSmallGrid = { xs: 24, sm: 12, md: 8, lg: 6, xl: 6, xxl: 6 };\n\n/**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\nexport const FormRow = (props: FormRowProps) => {\n const { gridSize, ...otherProps } = props;\n const screenType = useResponsivePoint() || 'md';\n\n const childrenList = toArray<ReactElement>(props.children).filter((item) => {\n if (!item || !isValidElement(item)) return false;\n return valueIsEqual(item.type['domTypeName'], ['FormOperateCol', 'FormCol']);\n });\n const defaultGridSize = gridSize === 'small' ? defaultSmallGrid : defaultGrid;\n\n const { gridList, gridGroupList } = useMemo(() => {\n const operateColIndex = childrenList.findIndex((item) => {\n return item.type['domTypeName'] === 'FormOperateCol';\n });\n if (screenType === undefined) {\n return { gridList: [] as number[], gridGroupList: [] };\n }\n const _currentGridList = childrenList.map((temp, index) => {\n if (index === operateColIndex) return 0;\n const span = temp.props?.span as number;\n if (['md', 'sm', 'xs'].includes(screenType)) {\n const innerSpan = temp.props?.[screenType] || defaultGridSize[screenType];\n if (screenType == 'md' && span) {\n return span > innerSpan ? span : innerSpan;\n }\n return innerSpan;\n }\n return temp.props?.[screenType] || span || defaultGridSize[screenType];\n });\n if (operateColIndex < 0) {\n return { gridList: _currentGridList, gridGroupList: [] };\n }\n return calculateOperateGrid(_currentGridList, operateColIndex);\n }, [childrenList, defaultGridSize, screenType]);\n\n // if (!screenType) return <Fragment>{props.children}</Fragment>;\n return (\n <Row {...otherProps}>\n {childrenList.map((item, index) => {\n const itemProps = { ...defaultGridSize, ...item.props };\n const newProps = {\n key: index,\n ...itemProps,\n [screenType]: gridList[index] || itemProps[screenType],\n };\n if (item.type['domTypeName'] === 'FormOperateCol') {\n newProps['rowColTotal'] = gridGroupList.length;\n }\n return cloneElement(item, newProps);\n })}\n </Row>\n );\n};\n","import { FormCol } from './form-col';\nimport { FormOperateCol } from './form-operate-col';\nimport { FormRow } from './form-row';\n\nexport const FormGrid = {\n /**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\n Row: FormRow,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,替换lg、xl、xxl默认数据,不替换xs、sm布局数据\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\n Col: FormCol,\n /**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\n OperateCol: FormOperateCol,\n};\n"],"names":["forceAloneRowGrid","xs","sm","md","lg","xl","xxl","FormCol","props","forceAloneRow","hidden","otherProps","_objectWithoutPropertiesLoose","_excluded","forceGrid","_jsx","Col","_extends","children","fullGrid","FormOperateCol","_ref","leftList","rightList","rowColTotal","justify","leftSpaceProps","rightSpaceProps","_leftList","filter","Boolean","_rightList","hasAll","length","colJustify","useMemo","className","_classNames","Form","Item","_jsxs","Row","wrap","Space","map","item","style","overflowX","calculateOperateGrid","gridList","operateColIndex","groupList","getGroupItem","index","value","condition","groupItemList","currentIndex","total","currentValue","push","hasOperateList","find","temp","hasOperateTotal","hasOperateIndex","forEach","reduce","a","b","concat","gridGroupList","error","defaultGrid","defaultSmallGrid","FormRow","gridSize","screenType","useResponsivePoint","childrenList","toArray","isValidElement","valueIsEqual","type","defaultGridSize","_useMemo","findIndex","undefined","_currentGridList","_temp$props","_temp$props3","span","includes","_temp$props2","innerSpan","_extends2","itemProps","newProps","key","cloneElement","FormGrid","OperateCol"],"mappings":"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"}
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
3
3
  import './../flex-layout/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- import{_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{fbaHooks as t}from"../fba-hooks/index.js";import{jsxs as i,jsx as o}from"react/jsx-runtime";import{Form as l}from"antd";import{useMemo as a,isValidElement as n,cloneElement as s}from"react";import{FlexLayout as m}from"../flex-layout/index.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";var u=function l(a){var n;var s="form-item-group-card";var m=t.useThemeToken();var u={"--form-item-group-colorPrimary":m.colorPrimary};return i("div",{className:r(s,a.className),style:e({},u,a.style),children:[a.title?o("div",{className:r(s+"-title",(n={},n[s+"-title-sign"]=a.titleSign===true,n)),children:a.title}):null,a.children]})};u.defaultProps={titleSign:true};var f=function t(i){var u=a((function(){var r=[];var t=[];var l=i.groupConfigList.filter((function(e){return!e.hidden}));l.forEach((function(i){if(i.before){t.push(n(i.before)?i.before:o("div",{className:"union-before-text",children:i.before}))}if(i.width){t.push(s(i.mainItem,{style:e({width:i.width},i.mainItem.props.style)}))}else{r.push(t.length);t.push(i.mainItem)}if(i.after){t.push(n(i.after)?i.after:o("div",{className:"union-after-text",children:i.after}))}}));return{flexElementList:t,fullIndex:r}}),[i.groupConfigList]);return o(l.Item,{label:i.label,className:r("form-item-group-horizontal-union",i.className),style:i.style,hidden:i.hidden,required:i.required,colon:i.colon,children:o(m,{direction:"horizontal",gap:i.gap===undefined?15:i.gap,fullIndex:u.fullIndex,style:i.flexLayoutStyle,className:i.flexLayoutClassName,children:u.flexElementList.map((function(e,r){return s(e,{key:r})}))})})};var d={HorizontalUnion:f,Card:u};export{d as FormItemGroup};
6
+ import{_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{fbaHooks as t}from"../fba-hooks/index.js";import{jsxs as i,jsx as o}from"react/jsx-runtime";import{Form as l}from"antd";import{useMemo as a,isValidElement as n,cloneElement as s}from"react";import{FlexLayout as m}from"../flex-layout/index.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";var u=function l(a){var n;var s="form-item-group-card";var m=t.useThemeToken();var u={"--form-item-group-colorPrimary":m.colorPrimary};return i("div",{className:r(s,a.className),style:e({},u,a.style),children:[a.title?o("div",{className:r(s+"-title",(n={},n[s+"-title-sign"]=a.titleSign===true,n)),children:a.title}):null,a.children]})};u.defaultProps={titleSign:true};var f=function t(i){var u=a(function(){var r=[];var t=[];var l=i.groupConfigList.filter(function(e){return!e.hidden});l.forEach(function(i){if(i.before){t.push(n(i.before)?i.before:o("div",{className:"union-before-text",children:i.before}))}if(i.width){t.push(s(i.mainItem,{style:e({width:i.width},i.mainItem.props.style)}))}else{r.push(t.length);t.push(i.mainItem)}if(i.after){t.push(n(i.after)?i.after:o("div",{className:"union-after-text",children:i.after}))}});return{flexElementList:t,fullIndex:r}},[i.groupConfigList]);return o(l.Item,{label:i.label,className:r("form-item-group-horizontal-union",i.className),style:i.style,hidden:i.hidden,required:i.required,colon:i.colon,children:o(m,{direction:"horizontal",gap:i.gap===undefined?15:i.gap,fullIndex:u.fullIndex,style:i.flexLayoutStyle,className:i.flexLayoutClassName,children:u.flexElementList.map(function(e,r){return s(e,{key:r})})})})};var d={HorizontalUnion:f,Card:u};export{d as FormItemGroup};
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-group/card/index.tsx","@flatbiz/antd/src/form-item-group/horizontal-union/index.tsx","@flatbiz/antd/src/form-item-group/index.ts"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { CSSProperties, FC, ReactElement } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport './style.less';\n\nexport type FormItemCardProps = {\n title?: string | ReactElement;\n children: ReactElement | ReactElement[];\n className?: string;\n style?: CSSProperties;\n titleSign?: boolean;\n};\nexport const FormItemCard: FC<FormItemCardProps> = (props) => {\n const classNamePrefix = 'form-item-group-card';\n\n const theme = fbaHooks.useThemeToken();\n\n const style = { '--form-item-group-colorPrimary': theme.colorPrimary } as CSSProperties;\n\n return (\n <div className={classNames(classNamePrefix, props.className)} style={{ ...style, ...props.style }}>\n {props.title ? (\n <div\n className={classNames(`${classNamePrefix}-title`, {\n [`${classNamePrefix}-title-sign`]: props.titleSign === true,\n })}\n >\n {props.title}\n </div>\n ) : null}\n {props.children}\n </div>\n );\n};\n\nFormItemCard.defaultProps = {\n titleSign: true,\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { cloneElement, CSSProperties, isValidElement, ReactElement, useMemo } from 'react';\nimport { FlexLayout } from '../../flex-layout';\nimport './style.less';\n\nexport type FormItemHorizontalUnionProps = {\n className?: string;\n style?: CSSProperties;\n label?: string | ReactElement;\n /** 水平布局元素 */\n groupConfigList: {\n hidden?: boolean;\n before?: ReactElement | string;\n /**\n * 设置宽度\n * ```\n * 1. 自适应可设置:auto\n * 2. 可设置具体数值\n * 3. 不设置会在铺满flex剩余空间\n * 4. 多个未设置会等分铺满剩余空间\n * ```\n */\n width?: number | string;\n mainItem: ReactElement;\n after?: ReactElement | string;\n }[];\n /** 水平布局原始之间的间距 */\n gap?: number;\n flexLayoutStyle?: CSSProperties;\n flexLayoutClassName?: string;\n hidden?: boolean;\n required?: boolean;\n colon?: boolean;\n};\n\n/**\n * FormItem 水平布局\n * ```\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/input\n * ```\n * @param props\n * @returns\n */\nexport const FormItemHorizontalUnion = (props: FormItemHorizontalUnionProps) => {\n const groupFlexElementData = useMemo(() => {\n const fullIndex = [] as number[];\n const flexElementList = [] as Array<ReactElement>;\n const groupConfigList = props.groupConfigList.filter((item) => !item.hidden);\n groupConfigList.forEach((item) => {\n if (item.before) {\n flexElementList.push(\n isValidElement(item.before) ? (\n (item.before as ReactElement)\n ) : (\n <div className=\"union-before-text\">{item.before}</div>\n ),\n );\n }\n if (item.width) {\n flexElementList.push(\n cloneElement(item.mainItem, {\n style: { width: item.width, ...item.mainItem.props.style },\n }),\n );\n } else {\n fullIndex.push(flexElementList.length);\n flexElementList.push(item.mainItem);\n }\n if (item.after) {\n flexElementList.push(\n isValidElement(item.after) ? (\n (item.after as ReactElement)\n ) : (\n <div className=\"union-after-text\">{item.after}</div>\n ),\n );\n }\n });\n return {\n flexElementList,\n fullIndex,\n };\n }, [props.groupConfigList]);\n\n return (\n <Form.Item\n label={props.label}\n className={classNames('form-item-group-horizontal-union', props.className)}\n style={props.style}\n hidden={props.hidden}\n required={props.required}\n colon={props.colon}\n >\n <FlexLayout\n direction=\"horizontal\"\n gap={props.gap === undefined ? 15 : props.gap}\n fullIndex={groupFlexElementData.fullIndex}\n style={props.flexLayoutStyle}\n className={props.flexLayoutClassName}\n >\n {groupFlexElementData.flexElementList.map((item, index) => {\n return cloneElement(item, { key: index });\n })}\n </FlexLayout>\n </Form.Item>\n );\n};\n","import { FormItemCard } from './card';\nimport { FormItemHorizontalUnion } from './horizontal-union';\n\nexport const FormItemGroup = {\n HorizontalUnion: FormItemHorizontalUnion,\n Card: FormItemCard,\n};\n"],"names":["FormItemCard","props","_classNames2","classNamePrefix","theme","fbaHooks","useThemeToken","style","colorPrimary","_jsxs","className","_classNames","_extends","children","title","_jsx","titleSign","defaultProps","FormItemHorizontalUnion","groupFlexElementData","useMemo","fullIndex","flexElementList","groupConfigList","filter","item","hidden","forEach","before","push","isValidElement","width","cloneElement","mainItem","length","after","Form","Item","label","required","colon","FlexLayout","direction","gap","undefined","flexLayoutStyle","flexLayoutClassName","map","index","key","FormItemGroup","HorizontalUnion","Card"],"mappings":";ihBAYO,IAAMA,EAAsC,SAAtCA,EAAuCC,GAAU,IAAAC,EAC5D,IAAMC,EAAkB,uBAExB,IAAMC,EAAQC,EAASC,gBAEvB,IAAMC,EAAQ,CAAE,iCAAkCH,EAAMI,cAExD,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAWR,EAAiBF,EAAMS,WAAYH,MAAKK,EAAOL,CAAAA,EAAAA,EAAUN,EAAMM,OAAQM,SAC/FZ,CAAAA,EAAMa,MACLC,EAAA,MAAA,CACEL,UAAWC,EAAcR,EAAeD,UAAAA,KAAAA,EAClCC,EAA+BF,eAAAA,EAAMe,YAAc,KAAId,IAC1DW,SAEFZ,EAAMa,QAEP,KACHb,EAAMY,WAGb,EAEAb,EAAaiB,aAAe,CAC1BD,UAAW,MCQN,IAAME,EAA0B,SAA1BA,EAA2BjB,GACtC,IAAMkB,EAAuBC,GAAQ,WACnC,IAAMC,EAAY,GAClB,IAAMC,EAAkB,GACxB,IAAMC,EAAkBtB,EAAMsB,gBAAgBC,QAAO,SAACC,GAAI,OAAMA,EAAKC,UACrEH,EAAgBI,SAAQ,SAACF,GACvB,GAAIA,EAAKG,OAAQ,CACfN,EAAgBO,KACdC,EAAeL,EAAKG,QACjBH,EAAKG,OAENb,EAAA,MAAA,CAAKL,UAAU,oBAAmBG,SAAEY,EAAKG,SAG/C,CACA,GAAIH,EAAKM,MAAO,CACdT,EAAgBO,KACdG,EAAaP,EAAKQ,SAAU,CAC1B1B,MAAKK,EAAA,CAAImB,MAAON,EAAKM,OAAUN,EAAKQ,SAAShC,MAAMM,SAGzD,KAAO,CACLc,EAAUQ,KAAKP,EAAgBY,QAC/BZ,EAAgBO,KAAKJ,EAAKQ,SAC5B,CACA,GAAIR,EAAKU,MAAO,CACdb,EAAgBO,KACdC,EAAeL,EAAKU,OACjBV,EAAKU,MAENpB,EAAA,MAAA,CAAKL,UAAU,mBAAkBG,SAAEY,EAAKU,QAG9C,CACF,IACA,MAAO,CACLb,gBAAAA,EACAD,UAAAA,EAEJ,GAAG,CAACpB,EAAMsB,kBAEV,OACER,EAACqB,EAAKC,KAAI,CACRC,MAAOrC,EAAMqC,MACb5B,UAAWC,EAAW,mCAAoCV,EAAMS,WAChEH,MAAON,EAAMM,MACbmB,OAAQzB,EAAMyB,OACda,SAAUtC,EAAMsC,SAChBC,MAAOvC,EAAMuC,MAAM3B,SAEnBE,EAAC0B,EAAU,CACTC,UAAU,aACVC,IAAK1C,EAAM0C,MAAQC,UAAY,GAAK3C,EAAM0C,IAC1CtB,UAAWF,EAAqBE,UAChCd,MAAON,EAAM4C,gBACbnC,UAAWT,EAAM6C,oBAAoBjC,SAEpCM,EAAqBG,gBAAgByB,KAAI,SAACtB,EAAMuB,GAC/C,OAAOhB,EAAaP,EAAM,CAAEwB,IAAKD,UAK3C,ECxGO,IAAME,EAAgB,CAC3BC,gBAAiBjC,EACjBkC,KAAMpD"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-group/card/index.tsx","@flatbiz/antd/src/form-item-group/horizontal-union/index.tsx","@flatbiz/antd/src/form-item-group/index.ts"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { CSSProperties, FC, ReactElement } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport './style.less';\n\nexport type FormItemCardProps = {\n title?: string | ReactElement;\n children: ReactElement | ReactElement[];\n className?: string;\n style?: CSSProperties;\n titleSign?: boolean;\n};\nexport const FormItemCard: FC<FormItemCardProps> = (props) => {\n const classNamePrefix = 'form-item-group-card';\n\n const theme = fbaHooks.useThemeToken();\n\n const style = { '--form-item-group-colorPrimary': theme.colorPrimary } as CSSProperties;\n\n return (\n <div className={classNames(classNamePrefix, props.className)} style={{ ...style, ...props.style }}>\n {props.title ? (\n <div\n className={classNames(`${classNamePrefix}-title`, {\n [`${classNamePrefix}-title-sign`]: props.titleSign === true,\n })}\n >\n {props.title}\n </div>\n ) : null}\n {props.children}\n </div>\n );\n};\n\nFormItemCard.defaultProps = {\n titleSign: true,\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { cloneElement, CSSProperties, isValidElement, ReactElement, useMemo } from 'react';\nimport { FlexLayout } from '../../flex-layout';\nimport './style.less';\n\nexport type FormItemHorizontalUnionProps = {\n className?: string;\n style?: CSSProperties;\n label?: string | ReactElement;\n /** 水平布局元素 */\n groupConfigList: {\n hidden?: boolean;\n before?: ReactElement | string;\n /**\n * 设置宽度\n * ```\n * 1. 自适应可设置:auto\n * 2. 可设置具体数值\n * 3. 不设置会在铺满flex剩余空间\n * 4. 多个未设置会等分铺满剩余空间\n * ```\n */\n width?: number | string;\n mainItem: ReactElement;\n after?: ReactElement | string;\n }[];\n /** 水平布局原始之间的间距 */\n gap?: number;\n flexLayoutStyle?: CSSProperties;\n flexLayoutClassName?: string;\n hidden?: boolean;\n required?: boolean;\n colon?: boolean;\n};\n\n/**\n * FormItem 水平布局\n * ```\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/input\n * ```\n * @param props\n * @returns\n */\nexport const FormItemHorizontalUnion = (props: FormItemHorizontalUnionProps) => {\n const groupFlexElementData = useMemo(() => {\n const fullIndex = [] as number[];\n const flexElementList = [] as Array<ReactElement>;\n const groupConfigList = props.groupConfigList.filter((item) => !item.hidden);\n groupConfigList.forEach((item) => {\n if (item.before) {\n flexElementList.push(\n isValidElement(item.before) ? (\n (item.before as ReactElement)\n ) : (\n <div className=\"union-before-text\">{item.before}</div>\n ),\n );\n }\n if (item.width) {\n flexElementList.push(\n cloneElement(item.mainItem, {\n style: { width: item.width, ...item.mainItem.props.style },\n }),\n );\n } else {\n fullIndex.push(flexElementList.length);\n flexElementList.push(item.mainItem);\n }\n if (item.after) {\n flexElementList.push(\n isValidElement(item.after) ? (\n (item.after as ReactElement)\n ) : (\n <div className=\"union-after-text\">{item.after}</div>\n ),\n );\n }\n });\n return {\n flexElementList,\n fullIndex,\n };\n }, [props.groupConfigList]);\n\n return (\n <Form.Item\n label={props.label}\n className={classNames('form-item-group-horizontal-union', props.className)}\n style={props.style}\n hidden={props.hidden}\n required={props.required}\n colon={props.colon}\n >\n <FlexLayout\n direction=\"horizontal\"\n gap={props.gap === undefined ? 15 : props.gap}\n fullIndex={groupFlexElementData.fullIndex}\n style={props.flexLayoutStyle}\n className={props.flexLayoutClassName}\n >\n {groupFlexElementData.flexElementList.map((item, index) => {\n return cloneElement(item, { key: index });\n })}\n </FlexLayout>\n </Form.Item>\n );\n};\n","import { FormItemCard } from './card';\nimport { FormItemHorizontalUnion } from './horizontal-union';\n\nexport const FormItemGroup = {\n HorizontalUnion: FormItemHorizontalUnion,\n Card: FormItemCard,\n};\n"],"names":["FormItemCard","props","_classNames2","classNamePrefix","theme","fbaHooks","useThemeToken","style","colorPrimary","_jsxs","className","_classNames","_extends","children","title","_jsx","titleSign","defaultProps","FormItemHorizontalUnion","groupFlexElementData","useMemo","fullIndex","flexElementList","groupConfigList","filter","item","hidden","forEach","before","push","isValidElement","width","cloneElement","mainItem","length","after","Form","Item","label","required","colon","FlexLayout","direction","gap","undefined","flexLayoutStyle","flexLayoutClassName","map","index","key","FormItemGroup","HorizontalUnion","Card"],"mappings":";ihBAYO,IAAMA,EAAsC,SAAtCA,EAAuCC,GAAU,IAAAC,EAC5D,IAAMC,EAAkB,uBAExB,IAAMC,EAAQC,EAASC,gBAEvB,IAAMC,EAAQ,CAAE,iCAAkCH,EAAMI,cAExD,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAWR,EAAiBF,EAAMS,WAAYH,MAAKK,EAAOL,CAAAA,EAAAA,EAAUN,EAAMM,OAAQM,SAC/FZ,CAAAA,EAAMa,MACLC,EAAA,MAAA,CACEL,UAAWC,EAAcR,EAAeD,UAAAA,KAAAA,EAClCC,EAA+BF,eAAAA,EAAMe,YAAc,KAAId,IAC1DW,SAEFZ,EAAMa,QAEP,KACHb,EAAMY,WAGb,EAEAb,EAAaiB,aAAe,CAC1BD,UAAW,MCQN,IAAME,EAA0B,SAA1BA,EAA2BjB,GACtC,IAAMkB,EAAuBC,EAAQ,WACnC,IAAMC,EAAY,GAClB,IAAMC,EAAkB,GACxB,IAAMC,EAAkBtB,EAAMsB,gBAAgBC,OAAO,SAACC,GAAI,OAAMA,EAAKC,SACrEH,EAAgBI,QAAQ,SAACF,GACvB,GAAIA,EAAKG,OAAQ,CACfN,EAAgBO,KACdC,EAAeL,EAAKG,QACjBH,EAAKG,OAENb,EAAA,MAAA,CAAKL,UAAU,oBAAmBG,SAAEY,EAAKG,SAG/C,CACA,GAAIH,EAAKM,MAAO,CACdT,EAAgBO,KACdG,EAAaP,EAAKQ,SAAU,CAC1B1B,MAAKK,EAAA,CAAImB,MAAON,EAAKM,OAAUN,EAAKQ,SAAShC,MAAMM,SAGzD,KAAO,CACLc,EAAUQ,KAAKP,EAAgBY,QAC/BZ,EAAgBO,KAAKJ,EAAKQ,SAC5B,CACA,GAAIR,EAAKU,MAAO,CACdb,EAAgBO,KACdC,EAAeL,EAAKU,OACjBV,EAAKU,MAENpB,EAAA,MAAA,CAAKL,UAAU,mBAAkBG,SAAEY,EAAKU,QAG9C,CACF,GACA,MAAO,CACLb,gBAAAA,EACAD,UAAAA,EAEJ,EAAG,CAACpB,EAAMsB,kBAEV,OACER,EAACqB,EAAKC,KAAI,CACRC,MAAOrC,EAAMqC,MACb5B,UAAWC,EAAW,mCAAoCV,EAAMS,WAChEH,MAAON,EAAMM,MACbmB,OAAQzB,EAAMyB,OACda,SAAUtC,EAAMsC,SAChBC,MAAOvC,EAAMuC,MAAM3B,SAEnBE,EAAC0B,EAAU,CACTC,UAAU,aACVC,IAAK1C,EAAM0C,MAAQC,UAAY,GAAK3C,EAAM0C,IAC1CtB,UAAWF,EAAqBE,UAChCd,MAAON,EAAM4C,gBACbnC,UAAWT,EAAM6C,oBAAoBjC,SAEpCM,EAAqBG,gBAAgByB,IAAI,SAACtB,EAAMuB,GAC/C,OAAOhB,EAAaP,EAAM,CAAEwB,IAAKD,SAK3C,ECxGO,IAAME,EAAgB,CAC3BC,gBAAiBjC,EACjBkC,KAAMpD"}
@@ -7,5 +7,5 @@ import './../pre-defined-class-name/index.css';
7
7
  import './../form-item-hidden/index.css';
8
8
  import './index.css';
9
9
  /*! @flatjs/forge MIT @flatbiz/antd */
10
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import{_ as r,a as n}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{Fragment as i,useState as t,useRef as o,useMemo as a}from"react";import s from"@ant-design/icons/es/icons/RedoOutlined";import l from"@ant-design/icons/es/icons/QuestionCircleFilled";import{isUndefinedOrNull as u,toArray as c}from"@flatbiz/utils";import{Tooltip as d,Spin as m,Form as f}from"antd";import{TextOverflow as p}from"../text-overflow/index.js";import{TipsWrapper as v}from"../tips-wrapper/index.js";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{FormItemWrapper as y}from"../form-item-wrapper/index.js";import{isDeepEqual as j}from"@dimjs/lang/cjs/is-deep-equal";import{fbaHooks as x}from"../fba-hooks/index.js";import{FormItemHidden as w}from"../form-item-hidden/index.js";import"@dimjs/lang/cjs/is-string";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../pre-defined-class-name/index.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";var C=function e(r){var n=function(){if(u(r.value))return r.placeholderValue;return typeof r.value==="string"?r.value:JSON.stringify(r.value)}();var t=r.wrap?n:h(p,{text:n||""});if(r.status==="error"){return h(i,{children:h(v,{tipType:"tooltip",tooltipProps:{title:r.errorMsg},icon:h(l,{style:{color:"red"}}),gap:6,children:h(d,{title:"点击查询",children:h(s,{style:{color:"red"},onClick:r.onRequest,className:"fitc-reload-icon"})})})})}if(r.loading){return h("span",{className:"form-item-text-content fitc-loading",style:r.style,children:h(m,{spinning:r.loading,size:"small",children:h("span",{style:{textIndent:"-9999px",display:"inline-block"},children:"Loading"})})})}return h("span",{className:"form-item-text-content",style:r.style,children:r.render?r.render(r.value):t})};var V=function e(n){var i=n.serviceConfig;var s=t(false),l=s[0],d=s[1];var m=t(),p=m[0],v=m[1];var h=x.usePrevious(i==null?void 0:i.params);var g=t("init"),y=g[0],w=g[1];var C=o();var V=f.useFormInstance();var N=a((function(){var e;if(!(i!=null&&i.params)||c(i==null?void 0:i.invalidParamKey).length===0){return i==null?void 0:i.params}var n=r({},i==null?void 0:i.params);i==null||(e=i.invalidParamKey)==null||e.forEach((function(e){n[e]=undefined}));return n}),[i==null?void 0:i.invalidParamKey,i==null?void 0:i.params]);var P=function e(t){return new Promise((function(e,o){var a=function(e){return function(r){try{d(false);return e&&e.call(this,r)}catch(e){return o(e)}}.bind(this)}.bind(this);var s,c,m,f,p,h;if(!i)return e();s=r({},N,t);c=i==null?void 0:i.requiredParamsKeys;if(c!=null&&c.length){m=c.find((function(e){return u(s[e])}));if(m){C.current="缺少必填参数:"+c.join("、");console.warn(C.current);w("error");return e()}}var g=function(){try{return e()}catch(e){return o(e)}};var y=function(e){try{console.error(e);C.current=(e==null?void 0:e.message)||"接口调用异常";w("error");return a(g)()}catch(e){return a(o)(e)}};try{if(!l)d(true);w("init");return Promise.resolve(i.onRequest(s)).then((function(e){try{f=e;p=n.name?V.getFieldValue(n.name):undefined;h=i.onResponseAdapter?i.onResponseAdapter(f,p):f;v(h);w("success");return a(g)()}catch(e){return y(e)}}),y)}catch(e){y(e)}}))};x.useEffectCustomAsync(P,[]);x.useEffectCustom((function(){if(!i)return;if(h){if(!j(i.params,h)){void P()}}}),[h,i==null?void 0:i.params]);if(!i){return undefined}return{loading:l,status:y,viewValue:p,onRequest:P,errorMsg:C.current}};var N=["wrap","render","placeholderValue","serviceConfig"];var P=function i(t){var o=t.wrap,a=t.render,s=t.placeholderValue,l=t.serviceConfig,u=n(t,N);var c=V({serviceConfig:l,name:t.name});return h(y,r({},u,{name:undefined,className:e("form-item-text",t.className),children:h(C,{loading:c==null?void 0:c.loading,wrap:o,render:a,placeholderValue:s,value:c==null?void 0:c.viewValue,status:c==null?void 0:c.status,onRequest:c==null?void 0:c.onRequest,errorMsg:c==null?void 0:c.errorMsg})}))};var R=["wrap","render","placeholderValue"];var q=function t(o){var a=o.wrap,s=o.render,l=o.placeholderValue,u=n(o,R);if(o.serviceConfig){return g(i,{children:[h(w,{name:o.name}),h(P,r({},o))]})}return h(y,r({},u,{className:e("form-item-text",o.className),children:h(C,{wrap:a,render:s,placeholderValue:l})}))};q["domTypeName"]="FormItemText";export{q as FormItemText};
10
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import{_ as r,a as n}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{Fragment as i,useState as t,useRef as o,useMemo as a}from"react";import s from"@ant-design/icons/es/icons/RedoOutlined";import l from"@ant-design/icons/es/icons/QuestionCircleFilled";import{isUndefinedOrNull as u,toArray as c}from"@flatbiz/utils";import{Tooltip as d,Spin as m,Form as f}from"antd";import{TextOverflow as p}from"../text-overflow/index.js";import{TipsWrapper as v}from"../tips-wrapper/index.js";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{FormItemWrapper as y}from"../form-item-wrapper/index.js";import{isDeepEqual as j}from"@dimjs/lang/cjs/is-deep-equal";import{fbaHooks as x}from"../fba-hooks/index.js";import{FormItemHidden as w}from"../form-item-hidden/index.js";import"@dimjs/lang/cjs/is-string";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../pre-defined-class-name/index.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";var C=function e(r){var n=function(){if(u(r.value))return r.placeholderValue;return typeof r.value==="string"?r.value:JSON.stringify(r.value)}();var t=r.wrap?n:h(p,{text:n||""});if(r.status==="error"){return h(i,{children:h(v,{tipType:"tooltip",tooltipProps:{title:r.errorMsg},icon:h(l,{style:{color:"red"}}),gap:6,children:h(d,{title:"点击查询",children:h(s,{style:{color:"red"},onClick:r.onRequest,className:"fitc-reload-icon"})})})})}if(r.loading){return h("span",{className:"form-item-text-content fitc-loading",style:r.style,children:h(m,{spinning:r.loading,size:"small",children:h("span",{style:{textIndent:"-9999px",display:"inline-block"},children:"Loading"})})})}return h("span",{className:"form-item-text-content",style:r.style,children:r.render?r.render(r.value):t})};var V=function e(n){var i=n.serviceConfig;var s=t(false),l=s[0],d=s[1];var m=t(),p=m[0],v=m[1];var h=x.usePrevious(i==null?void 0:i.params);var g=t("init"),y=g[0],w=g[1];var C=o();var V=f.useFormInstance();var N=a(function(){var e;if(!(i!=null&&i.params)||c(i==null?void 0:i.invalidParamKey).length===0){return i==null?void 0:i.params}var n=r({},i==null?void 0:i.params);i==null||(e=i.invalidParamKey)==null||e.forEach(function(e){n[e]=undefined});return n},[i==null?void 0:i.invalidParamKey,i==null?void 0:i.params]);var P=function e(t){return new Promise(function(e,o){var a=function(e){return function(r){try{d(false);return e&&e.call(this,r)}catch(e){return o(e)}}.bind(this)}.bind(this);var s,c,m,f,p,h;if(!i)return e();s=r({},N,t);c=i==null?void 0:i.requiredParamsKeys;if(c!=null&&c.length){m=c.find(function(e){return u(s[e])});if(m){C.current="缺少必填参数:"+c.join("、");console.warn(C.current);w("error");return e()}}var g=function(){try{return e()}catch(e){return o(e)}};var y=function(e){try{console.error(e);C.current=(e==null?void 0:e.message)||"接口调用异常";w("error");return a(g)()}catch(e){return a(o)(e)}};try{if(!l)d(true);w("init");return Promise.resolve(i.onRequest(s)).then(function(e){try{f=e;p=n.name?V.getFieldValue(n.name):undefined;h=i.onResponseAdapter?i.onResponseAdapter(f,p):f;v(h);w("success");return a(g)()}catch(e){return y(e)}},y)}catch(e){y(e)}})};x.useEffectCustomAsync(P,[]);x.useEffectCustom(function(){if(!i)return;if(h){if(!j(i.params,h)){void P()}}},[h,i==null?void 0:i.params]);if(!i){return undefined}return{loading:l,status:y,viewValue:p,onRequest:P,errorMsg:C.current}};var N=["wrap","render","placeholderValue","serviceConfig"];var P=function i(t){var o=t.wrap,a=t.render,s=t.placeholderValue,l=t.serviceConfig,u=n(t,N);var c=V({serviceConfig:l,name:t.name});return h(y,r({},u,{name:undefined,className:e("form-item-text",t.className),children:h(C,{loading:c==null?void 0:c.loading,wrap:o,render:a,placeholderValue:s,value:c==null?void 0:c.viewValue,status:c==null?void 0:c.status,onRequest:c==null?void 0:c.onRequest,errorMsg:c==null?void 0:c.errorMsg})}))};var R=["wrap","render","placeholderValue"];var q=function t(o){var a=o.wrap,s=o.render,l=o.placeholderValue,u=n(o,R);if(o.serviceConfig){return g(i,{children:[h(w,{name:o.name}),h(P,r({},o))]})}return h(y,r({},u,{className:e("form-item-text",o.className),children:h(C,{wrap:a,render:s,placeholderValue:l})}))};q["domTypeName"]="FormItemText";export{q as FormItemText};
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-text/content.tsx","@flatbiz/antd/src/form-item-text/use-request.tsx","@flatbiz/antd/src/form-item-text/request-text.tsx","@flatbiz/antd/src/form-item-text/form-item-text.tsx"],"sourcesContent":["import { QuestionCircleFilled, RedoOutlined } from '@ant-design/icons';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Spin, Tooltip } from 'antd';\nimport { Fragment, type CSSProperties } from 'react';\nimport { TextOverflow } from '../text-overflow';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { type FormItemTextProps } from './types';\n\nexport const FormItemTextContent = (\n props: Pick<FormItemTextProps, 'render' | 'wrap' | 'placeholderValue'> & {\n value?: string;\n style?: CSSProperties;\n loading?: boolean;\n status?: 'success' | 'error' | 'init';\n onRequest?: () => TAny;\n errorMsg?: string;\n },\n) => {\n const originalValue = (function () {\n if (isUndefinedOrNull(props.value)) return props.placeholderValue;\n return typeof props.value === 'string' ? props.value : JSON.stringify(props.value);\n })();\n const valueFt = props.wrap ? originalValue : <TextOverflow text={originalValue || ''} />;\n\n if (props.status === 'error') {\n return (\n <Fragment>\n <TipsWrapper\n tipType=\"tooltip\"\n tooltipProps={{ title: props.errorMsg }}\n icon={<QuestionCircleFilled style={{ color: 'red' }} />}\n gap={6}\n >\n <Tooltip title=\"点击查询\">\n <RedoOutlined style={{ color: 'red' }} onClick={props.onRequest} className=\"fitc-reload-icon\" />\n </Tooltip>\n </TipsWrapper>\n </Fragment>\n );\n }\n\n if (props.loading) {\n return (\n <span className=\"form-item-text-content fitc-loading\" style={props.style}>\n <Spin spinning={props.loading} size=\"small\">\n <span style={{ textIndent: '-9999px', display: 'inline-block' }}>Loading</span>\n </Spin>\n </span>\n );\n }\n return (\n <span className=\"form-item-text-content\" style={props.style}>\n {props.render ? props.render(props.value) : valueFt}\n </span>\n );\n};\n","import { isDeepEqual } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemWrapperProps } from '../form-item-wrapper';\nimport { type FormItemTextServiceConfig } from './types';\n\nexport const useRequestFormItemText = (props: {\n serviceConfig?: FormItemTextServiceConfig;\n name?: FormItemWrapperProps['name'];\n}) => {\n const serviceConfig = props.serviceConfig;\n const [loading, setLoading] = useState(false);\n const [respData, setRespData] = useState<TAny>();\n const prevParams = fbaHooks.usePrevious(serviceConfig?.params);\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const errorMsgRef = useRef<string>();\n const form = Form.useFormInstance();\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig?.params || toArray(serviceConfig?.invalidParamKey).length === 0) {\n return serviceConfig?.params;\n }\n const newParams = { ...serviceConfig?.params };\n serviceConfig?.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig?.invalidParamKey, serviceConfig?.params]);\n\n const onInnerRequest = async (params?: TPlainObject) => {\n if (!serviceConfig) return;\n const mergeProps = { ...serviceParams, ...params };\n const keys = serviceConfig?.requiredParamsKeys;\n if (keys?.length) {\n const target = keys.find((item) => {\n return isUndefinedOrNull(mergeProps[item]);\n });\n if (target) {\n errorMsgRef.current = `缺少必填参数:${keys.join('、')}`;\n console.warn(errorMsgRef.current);\n setStatus('error');\n return;\n }\n }\n try {\n if (!loading) setLoading(true);\n setStatus('init');\n const respData = await serviceConfig.onRequest(mergeProps);\n const value = props.name ? form.getFieldValue(props.name) : undefined;\n const respDataFt = serviceConfig.onResponseAdapter\n ? serviceConfig.onResponseAdapter(respData, value)\n : respData;\n setRespData(respDataFt);\n setStatus('success');\n } catch (error: TAny) {\n console.error(error);\n errorMsgRef.current = error?.message || '接口调用异常';\n setStatus('error');\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInnerRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (!serviceConfig) return;\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInnerRequest();\n }\n }\n }, [prevParams, serviceConfig?.params]);\n\n if (!serviceConfig) {\n return undefined;\n }\n\n return {\n loading,\n status,\n viewValue: respData,\n onRequest: onInnerRequest,\n errorMsg: errorMsgRef.current,\n };\n};\n","import { classNames } from '@dimjs/utils';\n\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { FormItemTextContent } from './content';\nimport { type FormItemTextProps } from './types';\nimport { useRequestFormItemText } from './use-request';\n\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * @param props\n * @returns\n */\nexport const RequestText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, serviceConfig, ...otherProps } = props;\n const requestResult = useRequestFormItemText({\n serviceConfig,\n name: props.name,\n });\n return (\n <FormItemWrapper\n {...otherProps}\n name={undefined}\n className={classNames('form-item-text', props.className)}\n >\n <FormItemTextContent\n loading={requestResult?.loading}\n wrap={wrap}\n render={render}\n placeholderValue={placeholderValue}\n value={requestResult?.viewValue}\n status={requestResult?.status}\n onRequest={requestResult?.onRequest}\n errorMsg={requestResult?.errorMsg}\n />\n </FormItemWrapper>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Fragment } from 'react';\n\nimport { FormItemTextContent } from './content';\nimport { RequestText } from './request-text';\nimport { type FormItemTextProps } from './types';\n\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport './style.less';\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * ```\n * 可通过配置 serviceConfig 通过接口获取数据,一般用于 Select 数据显示\n *\n * 例如:\n * 1. 基本数据渲染\n * <FormItemText name=\"xxx\" label=\"xxx\" />\n * 2. 对象数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * render={(value) => {\n * const target = [].find(\n * (item) => item.value === value,\n * );\n * return target ? (\n * <Tag color={target['color']}>{target.label}</Tag>\n * ) : null;\n * }}\n * />\n * 3. 接口数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * serviceConfig={{\n * onRequest: () => {\n * return serviceHandle.request('/random/api9468', {}, 'post');\n * },\n * onResponseAdapter: (dataList: TPlainObject[], value) => {\n * return dataList?.find((item) => item.value === value);\n * },\n * }}\n * render={(dataItem) => {\n * return dataItem ? (\n * <Tag style={{ margin: 0 }} color={dataItem['color']}>\n * {dataItem.label}\n * </Tag>\n * ) : null;\n * }}\n * />\n * ```\n */\nexport const FormItemText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, ...otherProps } = props;\n\n if (props.serviceConfig) {\n return (\n <Fragment>\n <FormItemHidden name={props.name} />\n <RequestText {...props} />\n </Fragment>\n );\n }\n\n return (\n <FormItemWrapper {...otherProps} className={classNames('form-item-text', props.className)}>\n <FormItemTextContent wrap={wrap} render={render} placeholderValue={placeholderValue} />\n </FormItemWrapper>\n );\n};\n\nFormItemText['domTypeName'] = 'FormItemText';\n"],"names":["FormItemTextContent","props","originalValue","isUndefinedOrNull","value","placeholderValue","JSON","stringify","valueFt","wrap","_jsx","TextOverflow","text","status","Fragment","children","TipsWrapper","tipType","tooltipProps","title","errorMsg","icon","_QuestionCircleFilled","style","color","gap","Tooltip","_RedoOutlined","onClick","onRequest","className","loading","Spin","spinning","size","textIndent","display","render","useRequestFormItemText","serviceConfig","_useState","useState","setLoading","_useState2","respData","setRespData","prevParams","fbaHooks","usePrevious","params","_useState3","setStatus","errorMsgRef","useRef","form","Form","useFormInstance","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","undefined","onInnerRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","mergeProps","keys","target","_respData","respDataFt","requiredParamsKeys","find","item","current","join","console","warn","$Try_1_Post","$Try_1_Catch","error","message","resolve","then","$await_2","name","getFieldValue","onResponseAdapter","useEffectCustomAsync","useEffectCustom","_isDeepEqual","viewValue","RequestText","otherProps","_objectWithoutPropertiesLoose","_excluded","requestResult","FormItemWrapper","_classNames","FormItemText","_jsxs","FormItemHidden"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-text/content.tsx","@flatbiz/antd/src/form-item-text/use-request.tsx","@flatbiz/antd/src/form-item-text/request-text.tsx","@flatbiz/antd/src/form-item-text/form-item-text.tsx"],"sourcesContent":["import { QuestionCircleFilled, RedoOutlined } from '@ant-design/icons';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Spin, Tooltip } from 'antd';\nimport { Fragment, type CSSProperties } from 'react';\nimport { TextOverflow } from '../text-overflow';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { type FormItemTextProps } from './types';\n\nexport const FormItemTextContent = (\n props: Pick<FormItemTextProps, 'render' | 'wrap' | 'placeholderValue'> & {\n value?: string;\n style?: CSSProperties;\n loading?: boolean;\n status?: 'success' | 'error' | 'init';\n onRequest?: () => TAny;\n errorMsg?: string;\n },\n) => {\n const originalValue = (function () {\n if (isUndefinedOrNull(props.value)) return props.placeholderValue;\n return typeof props.value === 'string' ? props.value : JSON.stringify(props.value);\n })();\n const valueFt = props.wrap ? originalValue : <TextOverflow text={originalValue || ''} />;\n\n if (props.status === 'error') {\n return (\n <Fragment>\n <TipsWrapper\n tipType=\"tooltip\"\n tooltipProps={{ title: props.errorMsg }}\n icon={<QuestionCircleFilled style={{ color: 'red' }} />}\n gap={6}\n >\n <Tooltip title=\"点击查询\">\n <RedoOutlined style={{ color: 'red' }} onClick={props.onRequest} className=\"fitc-reload-icon\" />\n </Tooltip>\n </TipsWrapper>\n </Fragment>\n );\n }\n\n if (props.loading) {\n return (\n <span className=\"form-item-text-content fitc-loading\" style={props.style}>\n <Spin spinning={props.loading} size=\"small\">\n <span style={{ textIndent: '-9999px', display: 'inline-block' }}>Loading</span>\n </Spin>\n </span>\n );\n }\n return (\n <span className=\"form-item-text-content\" style={props.style}>\n {props.render ? props.render(props.value) : valueFt}\n </span>\n );\n};\n","import { isDeepEqual } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemWrapperProps } from '../form-item-wrapper';\nimport { type FormItemTextServiceConfig } from './types';\n\nexport const useRequestFormItemText = (props: {\n serviceConfig?: FormItemTextServiceConfig;\n name?: FormItemWrapperProps['name'];\n}) => {\n const serviceConfig = props.serviceConfig;\n const [loading, setLoading] = useState(false);\n const [respData, setRespData] = useState<TAny>();\n const prevParams = fbaHooks.usePrevious(serviceConfig?.params);\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const errorMsgRef = useRef<string>();\n const form = Form.useFormInstance();\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig?.params || toArray(serviceConfig?.invalidParamKey).length === 0) {\n return serviceConfig?.params;\n }\n const newParams = { ...serviceConfig?.params };\n serviceConfig?.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig?.invalidParamKey, serviceConfig?.params]);\n\n const onInnerRequest = async (params?: TPlainObject) => {\n if (!serviceConfig) return;\n const mergeProps = { ...serviceParams, ...params };\n const keys = serviceConfig?.requiredParamsKeys;\n if (keys?.length) {\n const target = keys.find((item) => {\n return isUndefinedOrNull(mergeProps[item]);\n });\n if (target) {\n errorMsgRef.current = `缺少必填参数:${keys.join('、')}`;\n console.warn(errorMsgRef.current);\n setStatus('error');\n return;\n }\n }\n try {\n if (!loading) setLoading(true);\n setStatus('init');\n const respData = await serviceConfig.onRequest(mergeProps);\n const value = props.name ? form.getFieldValue(props.name) : undefined;\n const respDataFt = serviceConfig.onResponseAdapter\n ? serviceConfig.onResponseAdapter(respData, value)\n : respData;\n setRespData(respDataFt);\n setStatus('success');\n } catch (error: TAny) {\n console.error(error);\n errorMsgRef.current = error?.message || '接口调用异常';\n setStatus('error');\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInnerRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (!serviceConfig) return;\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInnerRequest();\n }\n }\n }, [prevParams, serviceConfig?.params]);\n\n if (!serviceConfig) {\n return undefined;\n }\n\n return {\n loading,\n status,\n viewValue: respData,\n onRequest: onInnerRequest,\n errorMsg: errorMsgRef.current,\n };\n};\n","import { classNames } from '@dimjs/utils';\n\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { FormItemTextContent } from './content';\nimport { type FormItemTextProps } from './types';\nimport { useRequestFormItemText } from './use-request';\n\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * @param props\n * @returns\n */\nexport const RequestText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, serviceConfig, ...otherProps } = props;\n const requestResult = useRequestFormItemText({\n serviceConfig,\n name: props.name,\n });\n return (\n <FormItemWrapper\n {...otherProps}\n name={undefined}\n className={classNames('form-item-text', props.className)}\n >\n <FormItemTextContent\n loading={requestResult?.loading}\n wrap={wrap}\n render={render}\n placeholderValue={placeholderValue}\n value={requestResult?.viewValue}\n status={requestResult?.status}\n onRequest={requestResult?.onRequest}\n errorMsg={requestResult?.errorMsg}\n />\n </FormItemWrapper>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Fragment } from 'react';\n\nimport { FormItemTextContent } from './content';\nimport { RequestText } from './request-text';\nimport { type FormItemTextProps } from './types';\n\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport './style.less';\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * ```\n * 可通过配置 serviceConfig 通过接口获取数据,一般用于 Select 数据显示\n *\n * 例如:\n * 1. 基本数据渲染\n * <FormItemText name=\"xxx\" label=\"xxx\" />\n * 2. 对象数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * render={(value) => {\n * const target = [].find(\n * (item) => item.value === value,\n * );\n * return target ? (\n * <Tag color={target['color']}>{target.label}</Tag>\n * ) : null;\n * }}\n * />\n * 3. 接口数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * serviceConfig={{\n * onRequest: () => {\n * return serviceHandle.request('/random/api9468', {}, 'post');\n * },\n * onResponseAdapter: (dataList: TPlainObject[], value) => {\n * return dataList?.find((item) => item.value === value);\n * },\n * }}\n * render={(dataItem) => {\n * return dataItem ? (\n * <Tag style={{ margin: 0 }} color={dataItem['color']}>\n * {dataItem.label}\n * </Tag>\n * ) : null;\n * }}\n * />\n * ```\n */\nexport const FormItemText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, ...otherProps } = props;\n\n if (props.serviceConfig) {\n return (\n <Fragment>\n <FormItemHidden name={props.name} />\n <RequestText {...props} />\n </Fragment>\n );\n }\n\n return (\n <FormItemWrapper {...otherProps} className={classNames('form-item-text', props.className)}>\n <FormItemTextContent wrap={wrap} render={render} placeholderValue={placeholderValue} />\n </FormItemWrapper>\n );\n};\n\nFormItemText['domTypeName'] = 'FormItemText';\n"],"names":["FormItemTextContent","props","originalValue","isUndefinedOrNull","value","placeholderValue","JSON","stringify","valueFt","wrap","_jsx","TextOverflow","text","status","Fragment","children","TipsWrapper","tipType","tooltipProps","title","errorMsg","icon","_QuestionCircleFilled","style","color","gap","Tooltip","_RedoOutlined","onClick","onRequest","className","loading","Spin","spinning","size","textIndent","display","render","useRequestFormItemText","serviceConfig","_useState","useState","setLoading","_useState2","respData","setRespData","prevParams","fbaHooks","usePrevious","params","_useState3","setStatus","errorMsgRef","useRef","form","Form","useFormInstance","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","undefined","onInnerRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","mergeProps","keys","target","_respData","respDataFt","requiredParamsKeys","find","item","current","join","console","warn","$Try_1_Post","$Try_1_Catch","error","message","resolve","then","$await_2","name","getFieldValue","onResponseAdapter","useEffectCustomAsync","useEffectCustom","_isDeepEqual","viewValue","RequestText","otherProps","_objectWithoutPropertiesLoose","_excluded","requestResult","FormItemWrapper","_classNames","FormItemText","_jsxs","FormItemHidden"],"mappings":"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"}
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
3
3
  import './../pre-defined-class-name/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{composeProps as l,isUndefinedOrNull as t}from"@flatbiz/utils";import{Form as i}from"antd";import{useMemo as a,isValidElement as n,cloneElement as o}from"react";import{fbaHooks as s}from"../fba-hooks/index.js";import{preDefinedClassName as f}from"../pre-defined-class-name/index.js";import{jsx as u,jsxs as m}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/class-names";var p=["wrapper","children","inputNormalize","isClear","beforeAfterStyle"],d=["wrapper","isClear","labelWidth","labelItemVertical","labelAlign","children","before","after","inputNormalize","outputNormalize","className","dependencies","hidden","beforeAfterStyle"];var c=function i(a){var n=a.wrapper,f=a.children,d=a.inputNormalize,c=a.isClear,h=a.beforeAfterStyle,b=e(a,p);var v=Object.prototype.hasOwnProperty.call(b,"value");if(v&&d){b["value"]=d(b["value"])}var y=o(f,l(f.props,b,true));s.useEffectCustom((function(){if(c&&!t(a.value)){a.onChange==null||a.onChange(undefined)}}),[c,a.value]);if(n){return n(y)}if(a.before||a.after){return m("div",{style:r({display:"flex",alignItems:"center"},h),children:[a.before?u("span",{style:{marginRight:10},children:a.before}):null,u("div",{style:{flex:1},children:y}),a.after?u("span",{style:{marginLeft:10},children:a.after}):null]})}return y};var h=function l(t){var o=t.wrapper,s=t.isClear,m=t.labelWidth,p=t.labelItemVertical,h=t.labelAlign,b=t.children,v=t.before,y=t.after,g=t.inputNormalize,N=t.outputNormalize,j=t.className,z=t.dependencies,C=t.hidden,I=t.beforeAfterStyle,A=e(t,d);var w=i.useFormInstance();var F=a((function(){return f.getFormItemLayoutClassName({labelWidth:m,labelItemVertical:p,labelAlign:h,className:j})}),[m,p,h,j]);if(z&&(z==null?void 0:z.length)>0){return u(i.Item,{dependencies:z,noStyle:true,children:function e(l){var t=typeof C==="function"?C==null?void 0:C(l.getFieldsValue()):C;var a=typeof s==="function"?s==null?void 0:s(l.getFieldsValue()):s;return u(i.Item,r({normalize:N},A,{rules:a?[]:A.rules,className:F,hidden:a||t,children:n(b)?u(c,{wrapper:o,before:v,after:y,inputNormalize:g,isClear:a,beforeAfterStyle:I,children:b}):b}))}})}var S=typeof C==="function"?C(w.getFieldsValue()):C;var V=typeof s==="function"?s(w.getFieldsValue()):s;return u(i.Item,r({normalize:N},A,{className:F,hidden:S||V,children:n(b)?u(c,{wrapper:o,before:v,after:y,inputNormalize:g,isClear:V,beforeAfterStyle:I,children:b}):b}))};h["domTypeName"]="FormItemWrapper";export{h as FormItemWrapper};
6
+ import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{composeProps as l,isUndefinedOrNull as t}from"@flatbiz/utils";import{Form as i}from"antd";import{useMemo as a,isValidElement as n,cloneElement as o}from"react";import{fbaHooks as s}from"../fba-hooks/index.js";import{preDefinedClassName as f}from"../pre-defined-class-name/index.js";import{jsx as u,jsxs as m}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/class-names";var p=["wrapper","children","inputNormalize","isClear","beforeAfterStyle"],d=["wrapper","isClear","labelWidth","labelItemVertical","labelAlign","children","before","after","inputNormalize","outputNormalize","className","dependencies","hidden","beforeAfterStyle"];var c=function i(a){var n=a.wrapper,f=a.children,d=a.inputNormalize,c=a.isClear,h=a.beforeAfterStyle,b=e(a,p);var v=Object.prototype.hasOwnProperty.call(b,"value");if(v&&d){b["value"]=d(b["value"])}var y=o(f,l(f.props,b,true));s.useEffectCustom(function(){if(c&&!t(a.value)){a.onChange==null||a.onChange(undefined)}},[c,a.value]);if(n){return n(y)}if(a.before||a.after){return m("div",{style:r({display:"flex",alignItems:"center"},h),children:[a.before?u("span",{style:{marginRight:10},children:a.before}):null,u("div",{style:{flex:1},children:y}),a.after?u("span",{style:{marginLeft:10},children:a.after}):null]})}return y};var h=function l(t){var o=t.wrapper,s=t.isClear,m=t.labelWidth,p=t.labelItemVertical,h=t.labelAlign,b=t.children,v=t.before,y=t.after,g=t.inputNormalize,N=t.outputNormalize,j=t.className,z=t.dependencies,C=t.hidden,I=t.beforeAfterStyle,A=e(t,d);var w=i.useFormInstance();var F=a(function(){return f.getFormItemLayoutClassName({labelWidth:m,labelItemVertical:p,labelAlign:h,className:j})},[m,p,h,j]);if(z&&(z==null?void 0:z.length)>0){return u(i.Item,{dependencies:z,noStyle:true,children:function e(l){var t=typeof C==="function"?C==null?void 0:C(l.getFieldsValue()):C;var a=typeof s==="function"?s==null?void 0:s(l.getFieldsValue()):s;return u(i.Item,r({normalize:N},A,{rules:a?[]:A.rules,className:F,hidden:a||t,children:n(b)?u(c,{wrapper:o,before:v,after:y,inputNormalize:g,isClear:a,beforeAfterStyle:I,children:b}):b}))}})}var S=typeof C==="function"?C(w.getFieldsValue()):C;var V=typeof s==="function"?s(w.getFieldsValue()):s;return u(i.Item,r({normalize:N},A,{className:F,hidden:S||V,children:n(b)?u(c,{wrapper:o,before:v,after:y,inputNormalize:g,isClear:V,beforeAfterStyle:I,children:b}):b}))};h["domTypeName"]="FormItemWrapper";export{h as FormItemWrapper};
7
7
  //# sourceMappingURL=index.js.map