@flatbiz/antd 4.5.55 → 4.5.56

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 (242) 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.js +1 -1
  22. package/esm/card-layout/index.js.map +1 -1
  23. package/esm/cascader-wrapper/index.js +1 -1
  24. package/esm/cascader-wrapper/index.js.map +1 -1
  25. package/esm/check-list/index.js +1 -1
  26. package/esm/check-list/index.js.map +1 -1
  27. package/esm/checkbox-wrapper/index.js +1 -1
  28. package/esm/checkbox-wrapper/index.js.map +1 -1
  29. package/esm/code-render/index.css +1 -0
  30. package/esm/code-render/index.js +5 -0
  31. package/esm/code-render/index.js.map +1 -0
  32. package/esm/color-picker-wrapper/index.css +1 -1
  33. package/esm/color-picker-wrapper/index.js +1 -1
  34. package/esm/color-picker-wrapper/index.js.map +1 -1
  35. package/esm/config-provider-wrapper/index.js +1 -1
  36. package/esm/copy-wrapper/index.js +1 -1
  37. package/esm/copy-wrapper/index.js.map +1 -1
  38. package/esm/date-picker-wrapper/index.js +1 -1
  39. package/esm/date-picker-wrapper/index.js.map +1 -1
  40. package/esm/date-range-picker-wrapper/index.js +1 -1
  41. package/esm/date-range-picker-wrapper/index.js.map +1 -1
  42. package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
  43. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  44. package/esm/delete-node/index.js +1 -1
  45. package/esm/delete-node/index.js.map +1 -1
  46. package/esm/dialog-alert/index.js +1 -1
  47. package/esm/dialog-confirm/index.js +1 -1
  48. package/esm/dialog-drag-modal/index.js +1 -1
  49. package/esm/dialog-drag-modal/index.js.map +1 -1
  50. package/esm/dialog-drawer/index.js +1 -1
  51. package/esm/dialog-drawer/index.js.map +1 -1
  52. package/esm/dialog-drawer-content/index.js +1 -1
  53. package/esm/dialog-drawer-content/index.js.map +1 -1
  54. package/esm/dialog-loading/index.js +1 -1
  55. package/esm/dialog-loading/index.js.map +1 -1
  56. package/esm/dialog-modal/index.js +1 -1
  57. package/esm/dialog-modal/index.js.map +1 -1
  58. package/esm/dialog-preview-image/index.js +1 -1
  59. package/esm/dialog-preview-image/index.js.map +1 -1
  60. package/esm/drag-collapse/index.js +1 -1
  61. package/esm/drag-collapse/index.js.map +1 -1
  62. package/esm/drag-collapse-form-list/index.js +1 -1
  63. package/esm/drag-collapse-form-list/index.js.map +1 -1
  64. package/esm/drag-editable-card/index.js +1 -1
  65. package/esm/drag-editable-card/index.js.map +1 -1
  66. package/esm/drag-editable-table/index.js +1 -1
  67. package/esm/drag-editable-table/index.js.map +1 -1
  68. package/esm/drag-editable-table-pro/index.js +1 -1
  69. package/esm/drag-editable-table-pro/index.js.map +1 -1
  70. package/esm/drag-form-list/index.js +1 -1
  71. package/esm/drag-form-list/index.js.map +1 -1
  72. package/esm/drag-table/index.js +1 -1
  73. package/esm/drag-table/index.js.map +1 -1
  74. package/esm/drawer-wrapper/index.js +1 -1
  75. package/esm/drawer-wrapper/index.js.map +1 -1
  76. package/esm/dropdown-menu-wrapper/index.js +1 -1
  77. package/esm/dropdown-menu-wrapper/index.js.map +1 -1
  78. package/esm/easy-form/index.js +1 -1
  79. package/esm/easy-form/index.js.map +1 -1
  80. package/esm/easy-table/index.js +1 -1
  81. package/esm/easy-table/index.js.map +1 -1
  82. package/esm/editable-card/index.js +1 -1
  83. package/esm/editable-card/index.js.map +1 -1
  84. package/esm/editable-field/index.js +1 -1
  85. package/esm/editable-field/index.js.map +1 -1
  86. package/esm/editable-table/index.js +1 -1
  87. package/esm/editable-table/index.js.map +1 -1
  88. package/esm/editable-table-pro/index.js +1 -1
  89. package/esm/editable-table-pro/index.js.map +1 -1
  90. package/esm/editor-wrapper/index.js +1 -1
  91. package/esm/editor-wrapper/index.js.map +1 -1
  92. package/esm/fba-app/index.js +1 -1
  93. package/esm/fba-app/index.js.map +1 -1
  94. package/esm/fba-hooks/index.js +1 -1
  95. package/esm/fba-hooks/index.js.map +1 -1
  96. package/esm/fba-utils/index.js +1 -1
  97. package/esm/fba-utils/index.js.map +1 -1
  98. package/esm/file-export/index.js +1 -1
  99. package/esm/file-export/index.js.map +1 -1
  100. package/esm/file-import/index.js +1 -1
  101. package/esm/file-import/index.js.map +1 -1
  102. package/esm/file-select/index.js +1 -1
  103. package/esm/file-select/index.js.map +1 -1
  104. package/esm/flex-layout/index.js +1 -1
  105. package/esm/flex-layout/index.js.map +1 -1
  106. package/esm/form-grid/index.js +1 -1
  107. package/esm/form-grid/index.js.map +1 -1
  108. package/esm/form-item-group/index.js +1 -1
  109. package/esm/form-item-group/index.js.map +1 -1
  110. package/esm/form-item-text/index.js +1 -1
  111. package/esm/form-item-text/index.js.map +1 -1
  112. package/esm/form-item-wrapper/index.js +1 -1
  113. package/esm/form-item-wrapper/index.js.map +1 -1
  114. package/esm/form-list-wrapper/index.js +1 -1
  115. package/esm/form-list-wrapper/index.js.map +1 -1
  116. package/esm/form-wrapper/index.js +1 -1
  117. package/esm/form-wrapper/index.js.map +1 -1
  118. package/esm/full-screen/index.js +1 -1
  119. package/esm/full-screen/index.js.map +1 -1
  120. package/esm/icon-wrapper/index.js +1 -1
  121. package/esm/icon-wrapper/index.js.map +1 -1
  122. package/esm/{index-83bede1b.js → index-853b36e6.js} +2 -2
  123. package/esm/{index-83bede1b.js.map → index-853b36e6.js.map} +1 -1
  124. package/esm/index.js +2 -1
  125. package/esm/input-search-wrapper/index.js +1 -1
  126. package/esm/input-search-wrapper/index.js.map +1 -1
  127. package/esm/input-text-area-wrapper/index.js +1 -1
  128. package/esm/input-text-area-wrapper/index.js.map +1 -1
  129. package/esm/input-wrapper/index.js +1 -1
  130. package/esm/input-wrapper/index.js.map +1 -1
  131. package/esm/json-editor/index.js +1 -1
  132. package/esm/json-editor/index.js.map +1 -1
  133. package/esm/label-value-layout/index.js +1 -1
  134. package/esm/label-value-layout/index.js.map +1 -1
  135. package/esm/label-value-render/index.js +1 -1
  136. package/esm/label-value-render/index.js.map +1 -1
  137. package/esm/local-loading/index.js +1 -1
  138. package/esm/local-loading/index.js.map +1 -1
  139. package/esm/mention-editor/index.js +1 -1
  140. package/esm/mention-editor/index.js.map +1 -1
  141. package/esm/mentions-wrapper/index.js +1 -1
  142. package/esm/mentions-wrapper/index.js.map +1 -1
  143. package/esm/modal-action/index.js +1 -1
  144. package/esm/modal-action/index.js.map +1 -1
  145. package/esm/modal-wrapper/index.js +1 -1
  146. package/esm/modal-wrapper/index.js.map +1 -1
  147. package/esm/number-range-form-item/index.js +1 -1
  148. package/esm/number-range-form-item/index.js.map +1 -1
  149. package/esm/pdf/index.js +1 -1
  150. package/esm/pdf/index.js.map +1 -1
  151. package/esm/pdf-preview/index.js +1 -1
  152. package/esm/pdf-preview/index.js.map +1 -1
  153. package/esm/radio-group-wrapper/index.js +1 -1
  154. package/esm/radio-group-wrapper/index.js.map +1 -1
  155. package/esm/relation-tree/index.js +1 -1
  156. package/esm/relation-tree/index.js.map +1 -1
  157. package/esm/request-status/index.js +1 -1
  158. package/esm/request-status/index.js.map +1 -1
  159. package/esm/resizable-drawer/index.js +1 -1
  160. package/esm/resizable-drawer/index.js.map +1 -1
  161. package/esm/rich-text-editor/index.js +1 -1
  162. package/esm/rich-text-editor/index.js.map +1 -1
  163. package/esm/rich-text-viewer/index.js +1 -1
  164. package/esm/rich-text-viewer/index.js.map +1 -1
  165. package/esm/roll-location-center/index.js +1 -1
  166. package/esm/roll-location-center/index.js.map +1 -1
  167. package/esm/roll-location-in-view/index.js +1 -1
  168. package/esm/roll-location-in-view/index.js.map +1 -1
  169. package/esm/rule-describe/index.js +1 -1
  170. package/esm/rule-describe/index.js.map +1 -1
  171. package/esm/search-form/index.js +1 -1
  172. package/esm/search-form/index.js.map +1 -1
  173. package/esm/search-menu/index.js +1 -1
  174. package/esm/search-menu/index.js.map +1 -1
  175. package/esm/selector-wrapper/index.js +1 -1
  176. package/esm/selector-wrapper/index.js.map +1 -1
  177. package/esm/selector-wrapper-search/index.js +1 -1
  178. package/esm/selector-wrapper-search/index.js.map +1 -1
  179. package/esm/selector-wrapper-simple/index.js +1 -1
  180. package/esm/selector-wrapper-simple/index.js.map +1 -1
  181. package/esm/simple-layout/index.js +1 -1
  182. package/esm/simple-layout/index.js.map +1 -1
  183. package/esm/sms-count-down/index.js +1 -1
  184. package/esm/sms-count-down/index.js.map +1 -1
  185. package/esm/split-wrapper/index.js +1 -1
  186. package/esm/split-wrapper/index.js.map +1 -1
  187. package/esm/styles/index.css +1 -1
  188. package/esm/svg-http-view/index.js +1 -1
  189. package/esm/svg-http-view/index.js.map +1 -1
  190. package/esm/switch-confirm-wrapper/index.js +1 -1
  191. package/esm/switch-confirm-wrapper/index.js.map +1 -1
  192. package/esm/switch-wrapper/index.js +1 -1
  193. package/esm/switch-wrapper/index.js.map +1 -1
  194. package/esm/table-cell-render/index.js +1 -1
  195. package/esm/table-cell-render/index.js.map +1 -1
  196. package/esm/table-scrollbar/index.js +1 -1
  197. package/esm/table-scrollbar/index.js.map +1 -1
  198. package/esm/tabs-sticky/index.js +1 -1
  199. package/esm/tabs-sticky/index.js.map +1 -1
  200. package/esm/tabs-wrapper/index.js +1 -1
  201. package/esm/tabs-wrapper/index.js.map +1 -1
  202. package/esm/tag-group/index.js +1 -1
  203. package/esm/tag-group/index.js.map +1 -1
  204. package/esm/tag-list-render/index.js +1 -1
  205. package/esm/tag-list-render/index.js.map +1 -1
  206. package/esm/tag-list-select/index.js +1 -1
  207. package/esm/tag-list-select/index.js.map +1 -1
  208. package/esm/tag-wrapper/index.js +1 -1
  209. package/esm/tag-wrapper/index.js.map +1 -1
  210. package/esm/text-css-ellipsis/index.js +1 -1
  211. package/esm/text-css-ellipsis/index.js.map +1 -1
  212. package/esm/text-overflow/index.js +1 -1
  213. package/esm/text-overflow/index.js.map +1 -1
  214. package/esm/text-overflow-render/index.js +1 -1
  215. package/esm/text-symbol-wrapper/index.js +1 -1
  216. package/esm/text-symbol-wrapper/index.js.map +1 -1
  217. package/esm/time-ea73b2fb.js +3 -0
  218. package/esm/{time-53b3f55f.js.map → time-ea73b2fb.js.map} +1 -1
  219. package/esm/time-picker-wrapper/index.js +1 -1
  220. package/esm/time-picker-wrapper/index.js.map +1 -1
  221. package/esm/time-range-picker-wrapper/index.js +1 -1
  222. package/esm/time-range-picker-wrapper/index.js.map +1 -1
  223. package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
  224. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  225. package/esm/tree-modal/index.js +1 -1
  226. package/esm/tree-modal/index.js.map +1 -1
  227. package/esm/tree-modal-selector/index.js +1 -1
  228. package/esm/tree-modal-selector/index.js.map +1 -1
  229. package/esm/tree-selector-wrapper/index.js +1 -1
  230. package/esm/tree-selector-wrapper/index.js.map +1 -1
  231. package/esm/tree-wrapper/index.js +1 -1
  232. package/esm/tree-wrapper/index.js.map +1 -1
  233. package/esm/upload-wrapper/index.js +1 -1
  234. package/esm/upload-wrapper/index.js.map +1 -1
  235. package/esm/use-responsive-point-1e6d93d9.js +3 -0
  236. package/esm/{use-responsive-point-21b8c601.js.map → use-responsive-point-1e6d93d9.js.map} +1 -1
  237. package/esm/x-mind-preview/index.js +1 -1
  238. package/esm/x-mind-preview/index.js.map +1 -1
  239. package/index.d.ts +43 -4
  240. package/package.json +4 -5
  241. package/esm/time-53b3f55f.js +0 -3
  242. package/esm/use-responsive-point-21b8c601.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-loading/dialog-loading.tsx"],"sourcesContent":["import { isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps, removeBodyChild } from '../_utils/dom';\nimport './style.less';\n\nexport type DialogLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogLoadingProps) => {\n const { elementId, className, divElement, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n const [open, setOpen] = useState(true);\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onAfterClose = hooks.useCallbackRef(() => {\n removeBodyChild(`#${elementId}`);\n });\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('v-dialog-loading', className)}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n footer={null}\n closable={false}\n style={{ '--v-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <div className={classNames('v-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </div>\n </Modal>\n );\n};\n\n/**\n * Loading弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogLoading.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogLoading } = FbaApp.useDialogLoading();\n * appDialogLoading.open({})\n * ```\n */\nexport const dialogLoading = {\n open: (props?: DialogLoadingProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_loading_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} mask={props?.mask} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_loading_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","elementId","className","divElement","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","_useState","useState","open","setOpen","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onAfterClose","removeBodyChild","_jsx","Modal","maskClosable","centered","destroyOnClose","_classNames","afterClose","getContainer","footer","closable","style","children","_jsxs","dialogLoading","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","_extends","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":";omBAgBA,IAAMA,EAAc,SAAdA,EAAeC,GACnB,IAAQC,EAAoDD,EAApDC,UAAWC,EAAyCF,EAAzCE,UAAWC,EAA8BH,EAA9BG,WAAYC,EAAkBJ,EAAlBI,QAASC,EAASL,EAATK,KACnD,IAAAC,EAAkBC,EAAMC,WAAhBC,EAAKH,EAALG,MACR,IAAMC,EAAeD,EAAMC,aAE3B,IAAAC,EAAwBC,EAAS,MAA1BC,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAEpB,IAAMI,EAAUC,EAAMC,gBAAe,WACnC,WACSC,OAAOjB,EACf,CAAC,MAAOkB,GACP,CAEFL,EAAQ,MACV,IAEAM,EAASC,iBAAgB,WACvBH,OAAOjB,GAAac,CACtB,GAAG,CAACA,IAEJ,IAAMO,EAAeN,EAAMC,gBAAe,WACxCM,EAAe,IAAKtB,EACtB,IAEA,OACEuB,EAACC,EAAK,CACJC,aAAc,MACdC,SAAU,KACVC,eAAc,KACd1B,UAAW2B,EAAW,mBAAoB3B,GAC1CW,KAAMA,EACNiB,WAAYR,EACZS,aAAc5B,EACd6B,OAAQ,KACRC,SAAU,MACVC,MAAO,CAAE,oBAAqBxB,GAC9BL,KAAMA,EAAK8B,SAEXX,EAAA,MAAA,CAAKtB,UAAW2B,EAAW,4BAA4BM,SACrDC,EAAA,MAAA,CAAKlC,UAAU,iBAAgBiC,UAC7BX,EAAA,MAAA,CAAKtB,UAAU,iBACfsB,EAAA,MAAA,CAAKtB,UAAU,cAAaiC,SAAE/B,GAAW,cAKnD,EAcO,IAAMiC,EAAgB,CAC3BxB,KAAM,SAANA,EAAOb,GACL,IAAAsC,EAAkCC,IAA1BpC,EAAUmC,EAAVnC,WAAYF,EAASqC,EAATrC,UACpBiB,OAAO,8BAAgCjB,EACvC,IAAMuC,EAAOC,EAAWtC,GACxBqC,EAAKE,OAAOlB,EAACzB,EAAW4C,EAAA,CAAA,EAAK3C,EAAK,CAAEG,WAAYA,EAAYF,UAAWA,EAAWI,KAAML,GAAAA,UAAAA,EAAAA,EAAOK,SAC/F,MAAO,CACLuC,MAAO,SAAPA,IAAa,IAAAC,EAAAC,GACXD,GAAAC,EAAA5B,QAAOjB,KAAU,MAAjB4C,EAAAE,KAAAD,EACF,EAEH,EAODF,MAAO,SAAPA,IACE,IAAI,IAAAI,EAAAC,EACF,IAAMhD,EAAYiB,OAAO,8BACzB,GAAIgC,EAASjD,IAAY+C,GAAAC,EAAA/B,QAAOjB,KAAP+C,MAAAA,EAAAD,KAAAE,EAC1B,CAAC,MAAO9B,GACP,CAEJ"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-loading/dialog-loading.tsx"],"sourcesContent":["import { isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps, removeBodyChild } from '../_utils/dom';\nimport './style.less';\n\nexport type DialogLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogLoadingProps) => {\n const { elementId, className, divElement, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n const [open, setOpen] = useState(true);\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onAfterClose = hooks.useCallbackRef(() => {\n removeBodyChild(`#${elementId}`);\n });\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('v-dialog-loading', className)}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n footer={null}\n closable={false}\n style={{ '--v-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <div className={classNames('v-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </div>\n </Modal>\n );\n};\n\n/**\n * Loading弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogLoading.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogLoading } = FbaApp.useDialogLoading();\n * appDialogLoading.open({})\n * ```\n */\nexport const dialogLoading = {\n open: (props?: DialogLoadingProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_loading_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} mask={props?.mask} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_loading_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","elementId","className","divElement","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","_useState","useState","open","setOpen","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onAfterClose","removeBodyChild","_jsx","Modal","maskClosable","centered","destroyOnClose","_classNames","afterClose","getContainer","footer","closable","style","children","_jsxs","dialogLoading","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","_extends","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":";omBAgBA,IAAMA,EAAc,SAAdA,EAAeC,GACnB,IAAQC,EAAoDD,EAApDC,UAAWC,EAAyCF,EAAzCE,UAAWC,EAA8BH,EAA9BG,WAAYC,EAAkBJ,EAAlBI,QAASC,EAASL,EAATK,KACnD,IAAAC,EAAkBC,EAAMC,WAAhBC,EAAKH,EAALG,MACR,IAAMC,EAAeD,EAAMC,aAE3B,IAAAC,EAAwBC,EAAS,MAA1BC,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAEpB,IAAMI,EAAUC,EAAMC,eAAe,WACnC,WACSC,OAAOjB,EACf,CAAC,MAAOkB,GACP,CAEFL,EAAQ,MACV,GAEAM,EAASC,gBAAgB,WACvBH,OAAOjB,GAAac,CACtB,EAAG,CAACA,IAEJ,IAAMO,EAAeN,EAAMC,eAAe,WACxCM,EAAe,IAAKtB,EACtB,GAEA,OACEuB,EAACC,EAAK,CACJC,aAAc,MACdC,SAAU,KACVC,eAAc,KACd1B,UAAW2B,EAAW,mBAAoB3B,GAC1CW,KAAMA,EACNiB,WAAYR,EACZS,aAAc5B,EACd6B,OAAQ,KACRC,SAAU,MACVC,MAAO,CAAE,oBAAqBxB,GAC9BL,KAAMA,EAAK8B,SAEXX,EAAA,MAAA,CAAKtB,UAAW2B,EAAW,4BAA4BM,SACrDC,EAAA,MAAA,CAAKlC,UAAU,iBAAgBiC,UAC7BX,EAAA,MAAA,CAAKtB,UAAU,iBACfsB,EAAA,MAAA,CAAKtB,UAAU,cAAaiC,SAAE/B,GAAW,cAKnD,EAcO,IAAMiC,EAAgB,CAC3BxB,KAAM,SAANA,EAAOb,GACL,IAAAsC,EAAkCC,IAA1BpC,EAAUmC,EAAVnC,WAAYF,EAASqC,EAATrC,UACpBiB,OAAO,8BAAgCjB,EACvC,IAAMuC,EAAOC,EAAWtC,GACxBqC,EAAKE,OAAOlB,EAACzB,EAAW4C,EAAA,CAAA,EAAK3C,EAAK,CAAEG,WAAYA,EAAYF,UAAWA,EAAWI,KAAML,GAAAA,UAAAA,EAAAA,EAAOK,SAC/F,MAAO,CACLuC,MAAO,SAAPA,IAAa,IAAAC,EAAAC,GACXD,GAAAC,EAAA5B,QAAOjB,KAAU,MAAjB4C,EAAAE,KAAAD,EACF,EAEH,EAODF,MAAO,SAAPA,IACE,IAAI,IAAAI,EAAAC,EACF,IAAMhD,EAAYiB,OAAO,8BACzB,GAAIgC,EAASjD,IAAY+C,GAAAC,EAAA/B,QAAOjB,KAAP+C,MAAAA,EAAAD,KAAAE,EAC1B,CAAC,MAAO9B,GACP,CAEJ"}
@@ -7,5 +7,5 @@ import './../fba-utils/index.css';
7
7
  import './../flex-layout/index.css';
8
8
  import './index.css';
9
9
  /*! @flatjs/forge MIT @flatbiz/antd */
10
- import{isString as e}from"@dimjs/lang/cjs/is-string";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{_ as o,a as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isPromise as i}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{dom as l}from"@flatbiz/utils";import{useSize as a}from"ahooks";import{Form as d,Modal as s}from"antd";import{useState as u,useMemo as m}from"react";import{createRoot as c}from"react-dom/client";import{ButtonWrapper as f}from"../button-wrapper/index.js";import{C as p}from"../index-83bede1b.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{FlexLayout as v}from"../flex-layout/index.js";import{createCtx as g}from"@wove/react/cjs/create-ctx";import{jsx as j,jsxs as y}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";var w=g(),k=w[0],x=w[1];var C=["title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var b=function e(c){var g,w;var k=c.title,b=c.titleExtra,_=c.divElement,P=c.elementId,E=c.onOk,H=c.onCancel,B=c.okButtonProps,I=c.cancelButtonProps,z=c.content,F=c.configProviderProps,O=c.className,R=c.okHidden,N=c.cancelHidden,T=c.footer,D=c.cancelText,M=c.okText,S=c.size,Y=c.bodyHeight,q=r(c,C);var A=u(true),L=A[0],U=A[1];var G=d.useForm(),J=G[0];var K=a(document.querySelector("html"));var Q=h.useResponsivePoint()||"";var V=u({}),W=V[0],X=V[1];var Z=n.useCallbackRef((function(){try{delete window[P]}catch(e){}U(false)}));h.useEffectCustom((function(){window[P]=Z}),[Z]);var $=n.useCallbackRef((function(e){if(H){var t=H(J,e);if(t&&i(t)){return t.then(Z)}}return Z()}));var ee=n.useCallbackRef((function(e){if(E){var t=E(J,e);if(t&&i(t)){return t.then(Z)}}return Z()}));var te=n.useCallbackRef((function(){l.removeBodyChild("#"+P);c.afterClose==null||c.afterClose()}));var oe=h.useMemoCustom((function(){if(T){return typeof T==="function"?T(J,W):T}if(N&&R||T===null){return null}return[j(f,o({},I,{onClick:$,hidden:N,children:D||"取消"}),"0"),j(f,o({type:"primary"},B,{onClick:ee,hidden:R,children:M||"提交"}),"1")].filter(Boolean)}),[W]);var re=m((function(){if(!(K!=null&&K.height)||!Q)return undefined;var e=["xs","sm"].includes(Q);if(e){return{width:"90%"}}if(S=="large"){return{height:(K==null?void 0:K.height)*.7,width:e?"90%":K.width*.6}}if(S=="small"){var t=K.width*.3;return{height:(K==null?void 0:K.height)*.4,width:e?"90%":t<470?470:t}}if(S=="middle"){return{height:(K==null?void 0:K.height)*.4,width:e?"90%":K.width*.5}}return undefined}),[K==null?void 0:K.height,K==null?void 0:K.width,Q,S]);var ie=t("v-dialog-modal",{"v-dialog-modal-title-extra":!!b},O);var ne=function e(t){X(t)};var le=((g=q.styles)==null||(g=g.body)==null?void 0:g.height)||Y;var ae=m((function(){return typeof z==="function"?z(J,{onClose:Z}):z}),[]);return j(x,{value:{rerenderFooter:ne},children:j(p,o({},F,{children:j(s,o({title:b?y(v,{direction:"horizontal",fullIndex:0,children:[j("span",{children:k}),b]}):k,maskClosable:true,centered:true,onCancel:Z,destroyOnClose:true,width:re==null?void 0:re.width},q,{footer:oe,styles:o({},q.styles,{body:o({height:le||(re==null?void 0:re.height),maxHeight:"calc(100vh - 200px)"},(w=q.styles)==null?void 0:w.body)}),className:ie,open:L,afterClose:te,getContainer:_,children:ae}))}))})};var _={open:function e(t){var r=l.bodyAppendDivElement(),i=r.divElement,n=r.elementId;window["__dialog_modal_elementId"]=n;var a=c(i);a.render(j(b,o({},t,{divElement:i,elementId:n})));return{close:function e(){var t,o;(t=(o=window)[n])==null||t.call(o)}}},close:function t(){try{var o,r;var i=window["__dialog_modal_elementId"];if(e(i))(o=(r=window)[i])==null||o.call(r)}catch(e){}},useDialogModal:function e(){var t=k();return{rerenderFooter:function e(o){t.rerenderFooter(o)}}}};export{_ as dialogModal};
10
+ import{isString as e}from"@dimjs/lang/cjs/is-string";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{_ as o,a as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isPromise as i}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{dom as l}from"@flatbiz/utils";import{useSize as a}from"ahooks";import{Form as d,Modal as s}from"antd";import{useState as u,useMemo as m}from"react";import{createRoot as c}from"react-dom/client";import{ButtonWrapper as f}from"../button-wrapper/index.js";import{C as p}from"../index-853b36e6.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{FlexLayout as v}from"../flex-layout/index.js";import{createCtx as g}from"@wove/react/cjs/create-ctx";import{jsx as j,jsxs as y}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";var w=g(),k=w[0],x=w[1];var C=["title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight"];var b=function e(c){var g,w;var k=c.title,b=c.titleExtra,_=c.divElement,P=c.elementId,E=c.onOk,H=c.onCancel,B=c.okButtonProps,I=c.cancelButtonProps,z=c.content,F=c.configProviderProps,O=c.className,R=c.okHidden,N=c.cancelHidden,T=c.footer,D=c.cancelText,M=c.okText,S=c.size,Y=c.bodyHeight,q=r(c,C);var A=u(true),L=A[0],U=A[1];var G=d.useForm(),J=G[0];var K=a(document.querySelector("html"));var Q=h.useResponsivePoint()||"";var V=u({}),W=V[0],X=V[1];var Z=n.useCallbackRef(function(){try{delete window[P]}catch(e){}U(false)});h.useEffectCustom(function(){window[P]=Z},[Z]);var $=n.useCallbackRef(function(e){if(H){var t=H(J,e);if(t&&i(t)){return t.then(Z)}}return Z()});var ee=n.useCallbackRef(function(e){if(E){var t=E(J,e);if(t&&i(t)){return t.then(Z)}}return Z()});var te=n.useCallbackRef(function(){l.removeBodyChild("#"+P);c.afterClose==null||c.afterClose()});var oe=h.useMemoCustom(function(){if(T){return typeof T==="function"?T(J,W):T}if(N&&R||T===null){return null}return[j(f,o({},I,{onClick:$,hidden:N,children:D||"取消"}),"0"),j(f,o({type:"primary"},B,{onClick:ee,hidden:R,children:M||"提交"}),"1")].filter(Boolean)},[W]);var re=m(function(){if(!(K!=null&&K.height)||!Q)return undefined;var e=["xs","sm"].includes(Q);if(e){return{width:"90%"}}if(S=="large"){return{height:(K==null?void 0:K.height)*.7,width:e?"90%":K.width*.6}}if(S=="small"){var t=K.width*.3;return{height:(K==null?void 0:K.height)*.4,width:e?"90%":t<470?470:t}}if(S=="middle"){return{height:(K==null?void 0:K.height)*.4,width:e?"90%":K.width*.5}}return undefined},[K==null?void 0:K.height,K==null?void 0:K.width,Q,S]);var ie=t("v-dialog-modal",{"v-dialog-modal-title-extra":!!b},O);var ne=function e(t){X(t)};var le=((g=q.styles)==null||(g=g.body)==null?void 0:g.height)||Y;var ae=m(function(){return typeof z==="function"?z(J,{onClose:Z}):z},[]);return j(x,{value:{rerenderFooter:ne},children:j(p,o({},F,{children:j(s,o({title:b?y(v,{direction:"horizontal",fullIndex:0,children:[j("span",{children:k}),b]}):k,maskClosable:true,centered:true,onCancel:Z,destroyOnClose:true,width:re==null?void 0:re.width},q,{footer:oe,styles:o({},q.styles,{body:o({height:le||(re==null?void 0:re.height),maxHeight:"calc(100vh - 200px)"},(w=q.styles)==null?void 0:w.body)}),className:ie,open:L,afterClose:te,getContainer:_,children:ae}))}))})};var _={open:function e(t){var r=l.bodyAppendDivElement(),i=r.divElement,n=r.elementId;window["__dialog_modal_elementId"]=n;var a=c(i);a.render(j(b,o({},t,{divElement:i,elementId:n})));return{close:function e(){var t,o;(t=(o=window)[n])==null||t.call(o)}}},close:function t(){try{var o,r;var i=window["__dialog_modal_elementId"];if(e(i))(o=(r=window)[i])==null||o.call(r)}catch(e){}},useDialogModal:function e(){var t=k();return{rerenderFooter:function e(o){t.rerenderFooter(o)}}}};export{_ as dialogModal};
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-modal/context.ts","@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useDialogModalCtx, DialogModalCtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { DialogModalCtxProvider, useDialogModalCtx } from './context';\nimport './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:无\n * ```\n * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效\n * 2. 不传、传null值可取消内置尺寸\n * ```\n */\n size?: 'small' | 'middle' | 'large' | null;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n /**\n * content只在第一次弹起时,执行一次\n */\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * @deprecated 已失效,可通过size属性设置\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n titleExtra?: ReactElement;\n /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogModalProps) => {\n const {\n title,\n titleExtra,\n divElement,\n elementId,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n configProviderProps,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onAfterClose = hooks.useCallbackRef(() => {\n dom.removeBodyChild(`#${elementId}`);\n props.afterClose?.();\n });\n\n const footerNew = fbaHooks.useMemoCustom(() => {\n if (footer) {\n return typeof footer === 'function' ? footer(form, footerExtraData) : footer;\n }\n if ((cancelHidden && okHidden) || footer === null) {\n return null;\n }\n return [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || '取消'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ].filter(Boolean);\n }, [footerExtraData]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n\n if (isXsSm) {\n return { width: '90%' };\n }\n\n if (size == 'large') {\n return {\n height: htmlSize?.height * 0.7,\n width: isXsSm ? '90%' : htmlSize.width * 0.6,\n };\n }\n if (size == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : width < 470 ? 470 : width,\n };\n }\n\n if (size == 'middle') {\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : htmlSize.width * 0.5,\n };\n }\n return undefined;\n }, [htmlSize?.height, htmlSize?.width, screenType, size]);\n\n const classNameNew = classNames(\n 'v-dialog-modal',\n { 'v-dialog-modal-title-extra': !!titleExtra },\n className,\n );\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n // content 只会在第一次渲染\n const contentFt = useMemo(() => {\n return typeof content === 'function' ? content(form, { onClose }) : content;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <DialogModalCtxProvider value={{ rerenderFooter }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Modal\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n >\n {contentFt}\n </Modal>\n </ConfigProviderWrapper>\n </DialogModalCtxProvider>\n );\n};\n\n/**\n * 居中弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogModal.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogModal } = FbaApp.useDialogModal();\n * appDialogModal.open({})\n * 4. size属性可使用预设的弹窗尺寸(默认值middle),如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const dialogModal = {\n open: (props: DialogModalProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_modal_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_modal_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useDialogModal: () => {\n const ctx = useDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n};\n"],"names":["_createCtx","_createCtx2","useDialogModalCtx","DialogModalCtxProvider","ModalRender","props","_otherProps$styles","_otherProps$styles2","title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","_useState2","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","footerNew","useMemoCustom","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","filter","Boolean","customSize","useMemo","height","undefined","isXsSm","includes","width","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","styles","body","contentFt","value","ConfigProviderWrapper","Modal","_jsxs","FlexLayout","direction","fullIndex","maskClosable","centered","destroyOnClose","maxHeight","getContainer","dialogModal","_dom$bodyAppendDivEle","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString","useDialogModal","ctx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-modal/context.ts","@flatbiz/antd/src/dialog-modal/dialog-modal.tsx"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useDialogModalCtx, DialogModalCtxProvider] = createCtx<{\n /** 重新渲染footer */\n rerenderFooter: (data?: TPlainObject) => void;\n}>();\n","import { isPromise, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { BodyAppendDivElementProps, dom, TNoopDefine, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { DialogModalCtxProvider, useDialogModalCtx } from './context';\nimport './style.less';\n\nexport type DialogModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n /**\n * 内置尺寸,根据比例固定高度、宽度,默认:无\n * ```\n * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效\n * 2. 不传、传null值可取消内置尺寸\n * ```\n */\n size?: 'small' | 'middle' | 'large' | null;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n /**\n * content只在第一次弹起时,执行一次\n */\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * @deprecated 已失效,可通过size属性设置\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n titleExtra?: ReactElement;\n /**\n * null则隐藏footer\n * ```\n * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据\n * ```\n */\n footer?:\n | null\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance, extraData?: TPlainObject) => ReactElement);\n /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */\n bodyHeight?: number;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogModalProps) => {\n const {\n title,\n titleExtra,\n divElement,\n elementId,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n configProviderProps,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n size,\n bodyHeight,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useState(true);\n const [form] = Form.useForm();\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [footerExtraData, setFooterExtraData] = useState<TPlainObject>({});\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onAfterClose = hooks.useCallbackRef(() => {\n dom.removeBodyChild(`#${elementId}`);\n props.afterClose?.();\n });\n\n const footerNew = fbaHooks.useMemoCustom(() => {\n if (footer) {\n return typeof footer === 'function' ? footer(form, footerExtraData) : footer;\n }\n if ((cancelHidden && okHidden) || footer === null) {\n return null;\n }\n return [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || '取消'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ].filter(Boolean);\n }, [footerExtraData]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n\n if (isXsSm) {\n return { width: '90%' };\n }\n\n if (size == 'large') {\n return {\n height: htmlSize?.height * 0.7,\n width: isXsSm ? '90%' : htmlSize.width * 0.6,\n };\n }\n if (size == 'small') {\n const width = htmlSize.width * 0.3;\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : width < 470 ? 470 : width,\n };\n }\n\n if (size == 'middle') {\n return {\n height: htmlSize?.height * 0.4,\n width: isXsSm ? '90%' : htmlSize.width * 0.5,\n };\n }\n return undefined;\n }, [htmlSize?.height, htmlSize?.width, screenType, size]);\n\n const classNameNew = classNames(\n 'v-dialog-modal',\n { 'v-dialog-modal-title-extra': !!titleExtra },\n className,\n );\n\n const rerenderFooter = (data) => {\n setFooterExtraData(data);\n };\n\n const bodyHeightNew = otherProps.styles?.body?.height || bodyHeight;\n // content 只会在第一次渲染\n const contentFt = useMemo(() => {\n return typeof content === 'function' ? content(form, { onClose }) : content;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <DialogModalCtxProvider value={{ rerenderFooter }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Modal\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n width={customSize?.width}\n {...otherProps}\n footer={footerNew}\n styles={{\n ...otherProps.styles,\n body: {\n height: bodyHeightNew || customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNameNew}\n open={open}\n afterClose={onAfterClose}\n getContainer={divElement}\n >\n {contentFt}\n </Modal>\n </ConfigProviderWrapper>\n </DialogModalCtxProvider>\n );\n};\n\n/**\n * 居中弹框\n * ```\n * 1. 可嵌套使用\n * 2. 为什么不推荐使用\n * dialogModal.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化\n * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn)\n * 3. 需要修改默认主题风格的场景,请使用\n * const { appDialogModal } = FbaApp.useDialogModal();\n * appDialogModal.open({})\n * 4. size属性可使用预设的弹窗尺寸(默认值middle),如果不使用内置尺寸可设置 size = null\n * ```\n */\nexport const dialogModal = {\n open: (props: DialogModalProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_modal_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogModal.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_modal_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n /**\n * ```\n * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态\n * ```\n */\n useDialogModal: () => {\n const ctx = useDialogModalCtx();\n return {\n /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */\n rerenderFooter: (data?: TPlainObject) => {\n ctx.rerenderFooter(data);\n },\n };\n },\n};\n"],"names":["_createCtx","_createCtx2","useDialogModalCtx","DialogModalCtxProvider","ModalRender","props","_otherProps$styles","_otherProps$styles2","title","titleExtra","divElement","elementId","onOk","onCancel","okButtonProps","cancelButtonProps","content","configProviderProps","className","okHidden","cancelHidden","footer","cancelText","okText","size","bodyHeight","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_Form$useForm","Form","useForm","form","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","_useState2","footerExtraData","setFooterExtraData","onClose","_hooks","useCallbackRef","window","error","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","onAfterClose","dom","removeBodyChild","afterClose","footerNew","useMemoCustom","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","filter","Boolean","customSize","useMemo","height","undefined","isXsSm","includes","width","classNameNew","_classNames","rerenderFooter","data","bodyHeightNew","styles","body","contentFt","value","ConfigProviderWrapper","Modal","_jsxs","FlexLayout","direction","fullIndex","maskClosable","centered","destroyOnClose","maxHeight","getContainer","dialogModal","_dom$bodyAppendDivEle","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString","useDialogModal","ctx"],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  import './../fba-hooks/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{isString as e}from"@dimjs/lang/cjs/is-string";import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as i}from"@wove/react/cjs/hooks";import{dom as n}from"@flatbiz/utils";import{Image as t}from"antd";import{useState as o,Fragment as l}from"react";import{createRoot as a}from"react-dom/client";import{fbaHooks as m}from"../fba-hooks/index.js";import{jsx as s}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";var d=function e(r){var n=o(true),a=n[0],d=n[1];var c=r.elementId;var f=i.useCallbackRef((function(){try{delete window[c]}catch(e){}d(false)}));m.useEffectCustom((function(){window[c]=f}),[f]);return s(l,{children:s(t,{wrapperStyle:{display:"none"},preview:{visible:!!a,onVisibleChange:function e(){return d(false)},afterOpenChange:function e(r){return!r&&d(false)}},src:r.imageUrl})})};var c={show:function e(i){var t=n.bodyAppendDivElement(),o=t.divElement,l=t.elementId;window["__dialog_preview_elementId"]=l;var m=a(o);m.render(s(d,r({},i,{divElement:o,elementId:l})));return{close:function e(){var r,i;(r=(i=window)[l])==null||r.call(i)}}},hiden:function r(){try{var i,n;var t=window["__dialog_preview_elementId"];if(e(t))(i=(n=window)[t])==null||i.call(n)}catch(e){}}};export{c as dialogPreviewImage};
5
+ import{isString as e}from"@dimjs/lang/cjs/is-string";import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as i}from"@wove/react/cjs/hooks";import{dom as n}from"@flatbiz/utils";import{Image as t}from"antd";import{useState as o,Fragment as l}from"react";import{createRoot as a}from"react-dom/client";import{fbaHooks as m}from"../fba-hooks/index.js";import{jsx as s}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";var d=function e(r){var n=o(true),a=n[0],d=n[1];var c=r.elementId;var f=i.useCallbackRef(function(){try{delete window[c]}catch(e){}d(false)});m.useEffectCustom(function(){window[c]=f},[f]);return s(l,{children:s(t,{wrapperStyle:{display:"none"},preview:{visible:!!a,onVisibleChange:function e(){return d(false)},afterOpenChange:function e(r){return!r&&d(false)}},src:r.imageUrl})})};var c={show:function e(i){var t=n.bodyAppendDivElement(),o=t.divElement,l=t.elementId;window["__dialog_preview_elementId"]=l;var m=a(o);m.render(s(d,r({},i,{divElement:o,elementId:l})));return{close:function e(){var r,i;(r=(i=window)[l])==null||r.call(i)}}},hiden:function r(){try{var i,n;var t=window["__dialog_preview_elementId"];if(e(t))(i=(n=window)[t])==null||i.call(n)}catch(e){}}};export{c as dialogPreviewImage};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-preview-image/preview-image.tsx"],"sourcesContent":["import { isString } from '@dimjs/lang';\nimport type { BodyAppendDivElementProps } from '@flatbiz/utils';\nimport { dom } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Image } from 'antd';\nimport { Fragment, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { fbaHooks } from '../fba-hooks';\n\nexport type DialogPreviewImageProps = {\n imageUrl: string;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogPreviewImageProps) => {\n const [open, setOpen] = useState(true);\n const elementId = props.elementId;\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (_error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n (window as any)[elementId] = onClose;\n }, [onClose]);\n\n return (\n <Fragment>\n <Image\n wrapperStyle={{ display: 'none' }}\n preview={{\n visible: !!open,\n onVisibleChange: () => setOpen(false),\n afterOpenChange: (visible) => !visible && setOpen(false),\n }}\n src={props.imageUrl}\n />\n </Fragment>\n );\n};\n\n/** 图片预览 */\nexport const dialogPreviewImage = {\n show: (props: DialogPreviewImageProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_preview_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n (window as any)[elementId]?.();\n },\n };\n },\n hiden: () => {\n try {\n const elementId = window['__dialog_preview_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (_error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","_useState","useState","open","setOpen","elementId","onClose","_hooks","useCallbackRef","window","_error","fbaHooks","useEffectCustom","_jsx","Fragment","children","Image","wrapperStyle","display","preview","visible","onVisibleChange","afterOpenChange","src","imageUrl","dialogPreviewImage","show","_dom$bodyAppendDivEle","dom","bodyAppendDivElement","divElement","root","createRoot","render","_extends","close","_elementId","_ref","call","hiden","_window$elementId","_window","_isString"],"mappings":";mgBAaA,IAAMA,EAAc,SAAdA,EAAeC,GACnB,IAAAC,EAAwBC,EAAS,MAA1BC,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GACpB,IAAMI,EAAYL,EAAMK,UAExB,IAAMC,EAAUC,EAAMC,gBAAe,WACnC,WACSC,OAAOJ,EACf,CAAC,MAAOK,GACP,CAEFN,EAAQ,MACV,IAEAO,EAASC,iBAAgB,WACtBH,OAAeJ,GAAaC,CAC/B,GAAG,CAACA,IAEJ,OACEO,EAACC,EAAQ,CAAAC,SACPF,EAACG,EAAK,CACJC,aAAc,CAAEC,QAAS,QACzBC,QAAS,CACPC,UAAWjB,EACXkB,gBAAiB,SAAjBA,IAAe,OAAQjB,EAAQ,MAAM,EACrCkB,gBAAiB,SAAjBA,EAAkBF,GAAO,OAAMA,GAAWhB,EAAQ,MAAM,GAE1DmB,IAAKvB,EAAMwB,YAInB,EAGO,IAAMC,EAAqB,CAChCC,KAAM,SAANA,EAAO1B,GACL,IAAA2B,EAAkCC,EAAIC,uBAA9BC,EAAUH,EAAVG,WAAYzB,EAASsB,EAATtB,UACpBI,OAAO,8BAAgCJ,EACvC,IAAM0B,EAAOC,EAAWF,GACxBC,EAAKE,OAAOpB,EAACd,EAAWmC,EAAA,CAAA,EAAKlC,EAAK,CAAE8B,WAAYA,EAAYzB,UAAWA,MACvE,MAAO,CACL8B,MAAO,SAAPA,IAAa,IAAAC,EAAAC,GACXD,GAAAC,EAAC5B,QAAeJ,KAAU,MAA1B+B,EAAAE,KAAAD,EACF,EAEH,EACDE,MAAO,SAAPA,IACE,IAAI,IAAAC,EAAAC,EACF,IAAMpC,EAAYI,OAAO,8BACzB,GAAIiC,EAASrC,IAAYmC,GAAAC,EAAAhC,QAAOJ,KAAPmC,MAAAA,EAAAF,KAAAG,EAC1B,CAAC,MAAO/B,GACP,CAEJ"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-preview-image/preview-image.tsx"],"sourcesContent":["import { isString } from '@dimjs/lang';\nimport type { BodyAppendDivElementProps } from '@flatbiz/utils';\nimport { dom } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Image } from 'antd';\nimport { Fragment, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { fbaHooks } from '../fba-hooks';\n\nexport type DialogPreviewImageProps = {\n imageUrl: string;\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogPreviewImageProps) => {\n const [open, setOpen] = useState(true);\n const elementId = props.elementId;\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (_error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n (window as any)[elementId] = onClose;\n }, [onClose]);\n\n return (\n <Fragment>\n <Image\n wrapperStyle={{ display: 'none' }}\n preview={{\n visible: !!open,\n onVisibleChange: () => setOpen(false),\n afterOpenChange: (visible) => !visible && setOpen(false),\n }}\n src={props.imageUrl}\n />\n </Fragment>\n );\n};\n\n/** 图片预览 */\nexport const dialogPreviewImage = {\n show: (props: DialogPreviewImageProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_preview_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n (window as any)[elementId]?.();\n },\n };\n },\n hiden: () => {\n try {\n const elementId = window['__dialog_preview_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (_error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","_useState","useState","open","setOpen","elementId","onClose","_hooks","useCallbackRef","window","_error","fbaHooks","useEffectCustom","_jsx","Fragment","children","Image","wrapperStyle","display","preview","visible","onVisibleChange","afterOpenChange","src","imageUrl","dialogPreviewImage","show","_dom$bodyAppendDivEle","dom","bodyAppendDivElement","divElement","root","createRoot","render","_extends","close","_elementId","_ref","call","hiden","_window$elementId","_window","_isString"],"mappings":";mgBAaA,IAAMA,EAAc,SAAdA,EAAeC,GACnB,IAAAC,EAAwBC,EAAS,MAA1BC,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GACpB,IAAMI,EAAYL,EAAMK,UAExB,IAAMC,EAAUC,EAAMC,eAAe,WACnC,WACSC,OAAOJ,EACf,CAAC,MAAOK,GACP,CAEFN,EAAQ,MACV,GAEAO,EAASC,gBAAgB,WACtBH,OAAeJ,GAAaC,CAC/B,EAAG,CAACA,IAEJ,OACEO,EAACC,EAAQ,CAAAC,SACPF,EAACG,EAAK,CACJC,aAAc,CAAEC,QAAS,QACzBC,QAAS,CACPC,UAAWjB,EACXkB,gBAAiB,SAAjBA,IAAe,OAAQjB,EAAQ,MAAM,EACrCkB,gBAAiB,SAAjBA,EAAkBF,GAAO,OAAMA,GAAWhB,EAAQ,MAAM,GAE1DmB,IAAKvB,EAAMwB,YAInB,EAGO,IAAMC,EAAqB,CAChCC,KAAM,SAANA,EAAO1B,GACL,IAAA2B,EAAkCC,EAAIC,uBAA9BC,EAAUH,EAAVG,WAAYzB,EAASsB,EAATtB,UACpBI,OAAO,8BAAgCJ,EACvC,IAAM0B,EAAOC,EAAWF,GACxBC,EAAKE,OAAOpB,EAACd,EAAWmC,EAAA,CAAA,EAAKlC,EAAK,CAAE8B,WAAYA,EAAYzB,UAAWA,MACvE,MAAO,CACL8B,MAAO,SAAPA,IAAa,IAAAC,EAAAC,GACXD,GAAAC,EAAC5B,QAAeJ,KAAU,MAA1B+B,EAAAE,KAAAD,EACF,EAEH,EACDE,MAAO,SAAPA,IACE,IAAI,IAAAC,EAAAC,EACF,IAAMpC,EAAYI,OAAO,8BACzB,GAAIiC,EAASrC,IAAYmC,GAAAC,EAAAhC,QAAOJ,KAAPmC,MAAAA,EAAAF,KAAAG,EAC1B,CAAC,MAAO/B,GACP,CAEJ"}
@@ -2,5 +2,5 @@
2
2
  import './../fba-hooks/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as n}from"@dimjs/utils/cjs/array";import{hooks as i}from"@wove/react/cjs/hooks";import{DndContext as o,closestCenter as a,DragOverlay as r}from"@dnd-kit/core";import{useSortable as t,SortableContext as s,verticalListSortingStrategy as c,arrayMove as l}from"@dnd-kit/sortable";import{toArray as d}from"@flatbiz/utils";import{Fragment as m,useState as p}from"react";import{fbaHooks as f}from"../fba-hooks/index.js";import{_ as u}from"../_rollupPluginBabelHelpers-c0dbec57.js";import g from"@ant-design/icons/es/icons/DragOutlined";import{CSS as v}from"@dnd-kit/utilities";import{Collapse as y}from"antd";import{jsx as h,jsxs as I}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";function k(n){var i;var o=t({id:n.item.key}),a=o.listeners,r=o.setNodeRef,s=o.transform,c=o.transition;var l=function e(i){var o=n.dragIcon?n.dragIcon:h(g,{});return n.hideDragIcon?i.content:I(m,{children:[h("span",u({className:"dc-drag-trigger"},a,{children:o})),h("span",{className:"dc-drag-header-content",children:i.content})]})};var d=u({transform:v.Transform.toString(s),transition:c},n.style);var p=n.openKeys.includes(n.item.key);var f=e("drag-collapse",{"drag-collapse-grap":n.isGray,"drag-collapse-last":n.isLast},n.className);return h(y,{activeKey:p?n.item.key:undefined,accordion:true,className:f,collapsible:n.collapsible,expandIcon:n.expandIcon,expandIconPosition:n.expandIconPosition,size:n.size,onChange:(i=n.onChange)==null?void 0:i.bind(null,n.item.key),style:u({},d),ref:r,items:[{key:n.item.key,label:l(n.item),children:n.item.content}]})}var x=function t(m){var u=p(),g=u[0],v=u[1];var y=p([]),x=y[0],b=y[1];f.useEffectCustom((function(){var e=d(m.defaultActiveKey);if(!m.activeKey&&e.length>0){b(e)}else{b(d(m.activeKey))}}),[]);i.useUpdateEffect((function(){b(d(m.activeKey))}),[m.activeKey]);var j=i.useCallbackRef((function(e){var i=[];if(m.accordion){if(x[0]&&x[0]===e){i=[]}else{i=[e]}}else{var o=x.includes(e);if(o){n.arrayRemove(x,e);i=[].concat(x)}else{i=x.concat(e)}}b(i);if(m.accordion){m.onChange==null||m.onChange(i.length?i[0]:undefined)}else{m.onChange==null||m.onChange(i.length?i:undefined)}}));function C(e){var n=e.active;v(n.id)}function D(e){var n=e.active,i=e.over;if(n.id!==i.id){var o=m.items.findIndex((function(e){return e.key===n.id}));var a=m.items.findIndex((function(e){return e.key===i.id}));var r=l(m.items,o,a);m.onDropChange(r)}v(undefined)}return h("div",{className:e("drag-collapse-wrapper",m.className),style:m.style,children:I(o,{collisionDetection:a,onDragStart:C,onDragEnd:D,children:[h(s,{items:m.items.map((function(e){return e.key})),strategy:c,children:m.items.map((function(e,n){return h(k,{item:e,openKeys:x,collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,hideDragIcon:m.hideDragIcon,onChange:j,isGray:e.key===g,isLast:n===m.items.length-1},e.key)}))}),h(r,{dropAnimation:{duration:0},children:g?h(k,{className:"overlay-sortable-item",item:m.items.filter((function(e){return e.key===g}))[0],openKeys:x,collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,hideDragIcon:m.hideDragIcon,onChange:j},g):null})]})})};export{x as DragCollapse};
5
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as n}from"@dimjs/utils/cjs/array";import{hooks as i}from"@wove/react/cjs/hooks";import{DndContext as o,closestCenter as a,DragOverlay as r}from"@dnd-kit/core";import{useSortable as t,SortableContext as s,verticalListSortingStrategy as c,arrayMove as l}from"@dnd-kit/sortable";import{toArray as d}from"@flatbiz/utils";import{Fragment as m,useState as p}from"react";import{fbaHooks as f}from"../fba-hooks/index.js";import{_ as u}from"../_rollupPluginBabelHelpers-c0dbec57.js";import g from"@ant-design/icons/es/icons/DragOutlined";import{CSS as v}from"@dnd-kit/utilities";import{Collapse as y}from"antd";import{jsx as h,jsxs as I}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";function k(n){var i;var o=t({id:n.item.key}),a=o.listeners,r=o.setNodeRef,s=o.transform,c=o.transition;var l=function e(i){var o=n.dragIcon?n.dragIcon:h(g,{});return n.hideDragIcon?i.content:I(m,{children:[h("span",u({className:"dc-drag-trigger"},a,{children:o})),h("span",{className:"dc-drag-header-content",children:i.content})]})};var d=u({transform:v.Transform.toString(s),transition:c},n.style);var p=n.openKeys.includes(n.item.key);var f=e("drag-collapse",{"drag-collapse-grap":n.isGray,"drag-collapse-last":n.isLast},n.className);return h(y,{activeKey:p?n.item.key:undefined,accordion:true,className:f,collapsible:n.collapsible,expandIcon:n.expandIcon,expandIconPosition:n.expandIconPosition,size:n.size,onChange:(i=n.onChange)==null?void 0:i.bind(null,n.item.key),style:u({},d),ref:r,items:[{key:n.item.key,label:l(n.item),children:n.item.content}]})}var x=function t(m){var u=p(),g=u[0],v=u[1];var y=p([]),x=y[0],b=y[1];f.useEffectCustom(function(){var e=d(m.defaultActiveKey);if(!m.activeKey&&e.length>0){b(e)}else{b(d(m.activeKey))}},[]);i.useUpdateEffect(function(){b(d(m.activeKey))},[m.activeKey]);var j=i.useCallbackRef(function(e){var i=[];if(m.accordion){if(x[0]&&x[0]===e){i=[]}else{i=[e]}}else{var o=x.includes(e);if(o){n.arrayRemove(x,e);i=[].concat(x)}else{i=x.concat(e)}}b(i);if(m.accordion){m.onChange==null||m.onChange(i.length?i[0]:undefined)}else{m.onChange==null||m.onChange(i.length?i:undefined)}});function C(e){var n=e.active;v(n.id)}function D(e){var n=e.active,i=e.over;if(n.id!==i.id){var o=m.items.findIndex(function(e){return e.key===n.id});var a=m.items.findIndex(function(e){return e.key===i.id});var r=l(m.items,o,a);m.onDropChange(r)}v(undefined)}return h("div",{className:e("drag-collapse-wrapper",m.className),style:m.style,children:I(o,{collisionDetection:a,onDragStart:C,onDragEnd:D,children:[h(s,{items:m.items.map(function(e){return e.key}),strategy:c,children:m.items.map(function(e,n){return h(k,{item:e,openKeys:x,collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,hideDragIcon:m.hideDragIcon,onChange:j,isGray:e.key===g,isLast:n===m.items.length-1},e.key)})}),h(r,{dropAnimation:{duration:0},children:g?h(k,{className:"overlay-sortable-item",item:m.items.filter(function(e){return e.key===g})[0],openKeys:x,collapsible:m.collapsible,expandIcon:m.expandIcon,expandIconPosition:m.expandIconPosition,size:m.size,dragIcon:m.dragIcon,hideDragIcon:m.hideDragIcon,onChange:j},g):null})]})})};export{x as DragCollapse};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-collapse/sortable-item.tsx","@flatbiz/antd/src/drag-collapse/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Collapse } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseItem, DragCollapseItemKey, DragCollapseProps } from './types';\ntype SortableItemProps = {\n openKeys: DragCollapseItemKey[];\n style?: CSSProperties;\n item: DragCollapseItem;\n collapsible?: DragCollapseProps['collapsible'];\n expandIcon?: DragCollapseProps['expandIcon'];\n expandIconPosition?: DragCollapseProps['expandIconPosition'];\n size?: DragCollapseProps['size'];\n dragIcon?: DragCollapseProps['dragIcon'];\n hideDragIcon?: DragCollapseProps['hideDragIcon'];\n onChange: (activeKey: DragCollapseItemKey) => void;\n isGray?: boolean;\n className?: string;\n isLast?: boolean;\n};\nexport function SortableItem(props: SortableItemProps) {\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.item.key,\n });\n\n const header = (item: DragCollapseItem) => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n return props.hideDragIcon ? (\n item.content\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\">{item.content}</span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const isActive = props.openKeys.includes(props.item.key);\n const cname = classNames(\n 'drag-collapse',\n { 'drag-collapse-grap': props.isGray, 'drag-collapse-last': props.isLast },\n props.className,\n );\n return (\n <Collapse\n activeKey={isActive ? props.item.key : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.item.key)}\n style={{ ...style }}\n ref={setNodeRef}\n items={[{ key: props.item.key, label: header(props.item), children: props.item.content }]}\n />\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseItemKey, DragCollapseProps } from './types';\n\n/**\n * 可拖拽 折叠面板\n * @param props\n * @returns\n */\nexport const DragCollapse = (props: DragCollapseProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<DragCollapseItemKey[]>([]);\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = hooks.useCallbackRef((key: DragCollapseItemKey) => {\n let openKeysNew: DragCollapseItemKey[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n });\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n function handleDragEnd(event) {\n const { active, over } = event;\n if (active.id !== over.id) {\n const oldIndex = props.items.findIndex((item) => item.key === active.id);\n const newIndex = props.items.findIndex((item) => item.key === over.id);\n const newList = arrayMove(props.items, oldIndex, newIndex);\n props.onDropChange(newList);\n }\n setDragActiveId(undefined);\n }\n\n return (\n <div className={classNames('drag-collapse-wrapper', props.className)} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <SortableContext items={props.items.map((item) => item.key)} strategy={verticalListSortingStrategy}>\n {props.items.map((item, index) => (\n <SortableItem\n key={item.key}\n item={item}\n openKeys={openKeys}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n hideDragIcon={props.hideDragIcon}\n onChange={onChange}\n isGray={item.key === dragActiveId}\n isLast={index === props.items.length - 1}\n />\n ))}\n </SortableContext>\n\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId ? (\n <SortableItem\n className=\"overlay-sortable-item\"\n key={dragActiveId}\n item={props.items.filter((item) => item.key === dragActiveId)[0]}\n openKeys={openKeys}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n hideDragIcon={props.hideDragIcon}\n onChange={onChange}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","_useSortable","useSortable","id","item","key","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","hideDragIcon","content","_jsxs","Fragment","children","_extends","className","style","CSS","Transform","toString","isActive","openKeys","includes","cname","_classNames","isGray","isLast","Collapse","activeKey","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","items","label","DragCollapse","_useState","useState","dragActiveId","setDragActiveId","_useState2","setOpenKeys","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","_hooks","useUpdateEffect","useCallbackRef","openKeysNew","has","_array","arrayRemove","concat","handleDragStart","event","active","handleDragEnd","over","oldIndex","findIndex","newIndex","newList","arrayMove","onDropChange","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","SortableContext","map","strategy","verticalListSortingStrategy","index","DragOverlay","dropAnimation","duration","filter"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-collapse/sortable-item.tsx","@flatbiz/antd/src/drag-collapse/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Collapse } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseItem, DragCollapseItemKey, DragCollapseProps } from './types';\ntype SortableItemProps = {\n openKeys: DragCollapseItemKey[];\n style?: CSSProperties;\n item: DragCollapseItem;\n collapsible?: DragCollapseProps['collapsible'];\n expandIcon?: DragCollapseProps['expandIcon'];\n expandIconPosition?: DragCollapseProps['expandIconPosition'];\n size?: DragCollapseProps['size'];\n dragIcon?: DragCollapseProps['dragIcon'];\n hideDragIcon?: DragCollapseProps['hideDragIcon'];\n onChange: (activeKey: DragCollapseItemKey) => void;\n isGray?: boolean;\n className?: string;\n isLast?: boolean;\n};\nexport function SortableItem(props: SortableItemProps) {\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.item.key,\n });\n\n const header = (item: DragCollapseItem) => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n return props.hideDragIcon ? (\n item.content\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\">{item.content}</span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const isActive = props.openKeys.includes(props.item.key);\n const cname = classNames(\n 'drag-collapse',\n { 'drag-collapse-grap': props.isGray, 'drag-collapse-last': props.isLast },\n props.className,\n );\n return (\n <Collapse\n activeKey={isActive ? props.item.key : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.item.key)}\n style={{ ...style }}\n ref={setNodeRef}\n items={[{ key: props.item.key, label: header(props.item), children: props.item.content }]}\n />\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseItemKey, DragCollapseProps } from './types';\n\n/**\n * 可拖拽 折叠面板\n * @param props\n * @returns\n */\nexport const DragCollapse = (props: DragCollapseProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<DragCollapseItemKey[]>([]);\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = hooks.useCallbackRef((key: DragCollapseItemKey) => {\n let openKeysNew: DragCollapseItemKey[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n });\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n function handleDragEnd(event) {\n const { active, over } = event;\n if (active.id !== over.id) {\n const oldIndex = props.items.findIndex((item) => item.key === active.id);\n const newIndex = props.items.findIndex((item) => item.key === over.id);\n const newList = arrayMove(props.items, oldIndex, newIndex);\n props.onDropChange(newList);\n }\n setDragActiveId(undefined);\n }\n\n return (\n <div className={classNames('drag-collapse-wrapper', props.className)} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <SortableContext items={props.items.map((item) => item.key)} strategy={verticalListSortingStrategy}>\n {props.items.map((item, index) => (\n <SortableItem\n key={item.key}\n item={item}\n openKeys={openKeys}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n hideDragIcon={props.hideDragIcon}\n onChange={onChange}\n isGray={item.key === dragActiveId}\n isLast={index === props.items.length - 1}\n />\n ))}\n </SortableContext>\n\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId ? (\n <SortableItem\n className=\"overlay-sortable-item\"\n key={dragActiveId}\n item={props.items.filter((item) => item.key === dragActiveId)[0]}\n openKeys={openKeys}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n hideDragIcon={props.hideDragIcon}\n onChange={onChange}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","_useSortable","useSortable","id","item","key","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","hideDragIcon","content","_jsxs","Fragment","children","_extends","className","style","CSS","Transform","toString","isActive","openKeys","includes","cname","_classNames","isGray","isLast","Collapse","activeKey","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","items","label","DragCollapse","_useState","useState","dragActiveId","setDragActiveId","_useState2","setOpenKeys","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","_hooks","useUpdateEffect","useCallbackRef","openKeysNew","has","_array","arrayRemove","concat","handleDragStart","event","active","handleDragEnd","over","oldIndex","findIndex","newIndex","newList","arrayMove","onDropChange","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","SortableContext","map","strategy","verticalListSortingStrategy","index","DragOverlay","dropAnimation","duration","filter"],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  import './../fba-hooks/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as a}from"@dimjs/utils/cjs/array";import{hooks as n}from"@wove/react/cjs/hooks";import{DndContext as i,closestCenter as r,DragOverlay as t}from"@dnd-kit/core";import{useSortable as o,SortableContext as s,verticalListSortingStrategy as d,arrayMove as l}from"@dnd-kit/sortable";import{toArray as c}from"@flatbiz/utils";import{Form as m,Collapse as u}from"antd";import{Fragment as f,useState as p,useRef as g,useMemo as v}from"react";import{fbaHooks as h}from"../fba-hooks/index.js";import{_ as I}from"../_rollupPluginBabelHelpers-c0dbec57.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as x}from"@dnd-kit/utilities";import{jsx as N,jsxs as b}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";function y(a){var n;var i=m.useFormInstance();var r=a.isOverlay?false:a.getItemDragDisabled==null?void 0:a.getItemDragDisabled(a.uid,a.index);var t=o({id:a.uid,disabled:r}),s=t.listeners,d=t.setNodeRef,l=t.transform,p=t.transition;var g=function e(){var n=a.dragIcon?a.dragIcon:N(D,{});var r=a.header({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name].concat(c(n))},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index});return a.dragDisabled?r:b(f,{children:[N("span",I({className:"dc-drag-trigger"},s,{children:n})),N("span",{className:"dc-drag-header-content",style:a.headerStyle,children:r})]})};var v=I({transform:x.Transform.toString(l),transition:p},a.style);var h=e("drag-collapse",{"drag-collapse-grap":a.isGray,"drag-collapse-last":a.isLast,"drag-collapse-drag-disabled":r},a.className);return N(u,{activeKey:a.isActive?a.uid:undefined,accordion:true,className:h,collapsible:a.collapsible,expandIcon:a.expandIcon,expandIconPosition:a.expandIconPosition,size:a.size,onChange:(n=a.onChange)==null?void 0:n.bind(null,a.uid),style:I({},v),ref:d,items:[{key:a.uid,label:g(),children:N(f,{children:a.content({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name].concat(c(n))},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index})})}]})}var C=function o(u){var I=p(),D=I[0],x=I[1];var C=p([]),L=C[0],F=C[1];var j=m.useFormInstance();var S=g([]);var k=m.useWatch(u.formListName,j);var z=n.useCallbackRef((function(e){return e==null?void 0:e[u.uidFieldName||"uid"]}));h.useEffectCustom((function(){var e=c(u.defaultActiveKey);if(!u.activeKey&&e.length>0){F(e)}else{F(c(u.activeKey))}}),[]);n.useUpdateEffect((function(){F(c(u.activeKey))}),[u.activeKey]);var O=function e(n){var i=[];if(u.accordion){if(L[0]&&L[0]===n){i=[]}else{i=[n]}}else{var r=L.includes(n);if(r){a.arrayRemove(L,n);i=[].concat(L)}else{i=L.concat(n)}}F(i);if(u.accordion){u.onChange==null||u.onChange(i.length?i[0]:undefined)}else{u.onChange==null||u.onChange(i.length?i:undefined)}};function P(e){var a=e.active;x(a.id)}var K=n.useCallbackRef((function(){return j.getFieldValue(u.formListName)||[]}));function A(e){var a=e.active,n=e.over;var i=K();if(a.id!==n.id){var r=i.findIndex((function(e){return z(e)===a.id}));var t=i.findIndex((function(e){return z(e)===n.id}));var o=l(i,r,t);j.setFields([{name:u.formListName,value:o}]);u.onDropChange==null||u.onDropChange(o)}x(undefined)}var E=v((function(){if(!D)return undefined;var e=K();var a=e.findIndex((function(e){return z(e)===D}));return S.current.find((function(e){return e.name===a}))}),[D,K,z]);var R=e("drag-collapse-formlist-wrapper",{"dcfw-isEmpty":c(k).length===0},u.className);return N("div",{className:R,style:u.style,children:N(i,{collisionDetection:r,onDragStart:P,onDragEnd:A,children:N(m.List,{name:u.formListName,rules:u.rules,children:function e(a,n){S.current=a;return b(f,{children:[N(s,{items:K().map((function(e){return z(e)})),strategy:d,children:N(f,{children:a.map((function(e,a){var i=z(K()[a]);return N(y,{formListOperate:n,formListFieldData:e,uid:i,isActive:L.includes(i),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,getItemDragDisabled:u.getItemDragDisabled,dragDisabled:u.dragDisabled,onChange:O,isGray:i===D,isLast:a===K().length-1,header:u.header,content:u.content,index:a,formStageCompleteName:[].concat(c(u.formListName),[e.name])},i+"-"+e.key)}))})}),N(t,{dropAnimation:{duration:0},children:D&&E?N(y,{isOverlay:true,uid:D,className:"overlay-sortable-item",formListFieldData:E,isActive:L.includes(D),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,onChange:O,header:u.header,content:u.content,formListOperate:null,index:0,formStageCompleteName:[].concat(c(u.formListName),[E.name])},D):null})]})}})})})};export{C as DragCollapseFormList};
5
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as a}from"@dimjs/utils/cjs/array";import{hooks as n}from"@wove/react/cjs/hooks";import{DndContext as i,closestCenter as r,DragOverlay as t}from"@dnd-kit/core";import{useSortable as o,SortableContext as s,verticalListSortingStrategy as d,arrayMove as l}from"@dnd-kit/sortable";import{toArray as c}from"@flatbiz/utils";import{Form as m,Collapse as u}from"antd";import{Fragment as f,useState as p,useRef as g,useMemo as v}from"react";import{fbaHooks as h}from"../fba-hooks/index.js";import{_ as I}from"../_rollupPluginBabelHelpers-c0dbec57.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as x}from"@dnd-kit/utilities";import{jsx as N,jsxs as b}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";function y(a){var n;var i=m.useFormInstance();var r=a.isOverlay?false:a.getItemDragDisabled==null?void 0:a.getItemDragDisabled(a.uid,a.index);var t=o({id:a.uid,disabled:r}),s=t.listeners,d=t.setNodeRef,l=t.transform,p=t.transition;var g=function e(){var n=a.dragIcon?a.dragIcon:N(D,{});var r=a.header({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name].concat(c(n))},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index});return a.dragDisabled?r:b(f,{children:[N("span",I({className:"dc-drag-trigger"},s,{children:n})),N("span",{className:"dc-drag-header-content",style:a.headerStyle,children:r})]})};var v=I({transform:x.Transform.toString(l),transition:p},a.style);var h=e("drag-collapse",{"drag-collapse-grap":a.isGray,"drag-collapse-last":a.isLast,"drag-collapse-drag-disabled":r},a.className);return N(u,{activeKey:a.isActive?a.uid:undefined,accordion:true,className:h,collapsible:a.collapsible,expandIcon:a.expandIcon,expandIconPosition:a.expandIconPosition,size:a.size,onChange:(n=a.onChange)==null?void 0:n.bind(null,a.uid),style:I({},v),ref:d,items:[{key:a.uid,label:g(),children:N(f,{children:a.content({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name].concat(c(n))},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index})})}]})}var C=function o(u){var I=p(),D=I[0],x=I[1];var C=p([]),L=C[0],F=C[1];var j=m.useFormInstance();var S=g([]);var k=m.useWatch(u.formListName,j);var z=n.useCallbackRef(function(e){return e==null?void 0:e[u.uidFieldName||"uid"]});h.useEffectCustom(function(){var e=c(u.defaultActiveKey);if(!u.activeKey&&e.length>0){F(e)}else{F(c(u.activeKey))}},[]);n.useUpdateEffect(function(){F(c(u.activeKey))},[u.activeKey]);var O=function e(n){var i=[];if(u.accordion){if(L[0]&&L[0]===n){i=[]}else{i=[n]}}else{var r=L.includes(n);if(r){a.arrayRemove(L,n);i=[].concat(L)}else{i=L.concat(n)}}F(i);if(u.accordion){u.onChange==null||u.onChange(i.length?i[0]:undefined)}else{u.onChange==null||u.onChange(i.length?i:undefined)}};function P(e){var a=e.active;x(a.id)}var K=n.useCallbackRef(function(){return j.getFieldValue(u.formListName)||[]});function A(e){var a=e.active,n=e.over;var i=K();if(a.id!==n.id){var r=i.findIndex(function(e){return z(e)===a.id});var t=i.findIndex(function(e){return z(e)===n.id});var o=l(i,r,t);j.setFields([{name:u.formListName,value:o}]);u.onDropChange==null||u.onDropChange(o)}x(undefined)}var E=v(function(){if(!D)return undefined;var e=K();var a=e.findIndex(function(e){return z(e)===D});return S.current.find(function(e){return e.name===a})},[D,K,z]);var R=e("drag-collapse-formlist-wrapper",{"dcfw-isEmpty":c(k).length===0},u.className);return N("div",{className:R,style:u.style,children:N(i,{collisionDetection:r,onDragStart:P,onDragEnd:A,children:N(m.List,{name:u.formListName,rules:u.rules,children:function e(a,n){S.current=a;return b(f,{children:[N(s,{items:K().map(function(e){return z(e)}),strategy:d,children:N(f,{children:a.map(function(e,a){var i=z(K()[a]);return N(y,{formListOperate:n,formListFieldData:e,uid:i,isActive:L.includes(i),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,getItemDragDisabled:u.getItemDragDisabled,dragDisabled:u.dragDisabled,onChange:O,isGray:i===D,isLast:a===K().length-1,header:u.header,content:u.content,index:a,formStageCompleteName:[].concat(c(u.formListName),[e.name])},i+"-"+e.key)})})}),N(t,{dropAnimation:{duration:0},children:D&&E?N(y,{isOverlay:true,uid:D,className:"overlay-sortable-item",formListFieldData:E,isActive:L.includes(D),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,onChange:O,header:u.header,content:u.content,formListOperate:null,index:0,formStageCompleteName:[].concat(c(u.formListName),[E.name])},D):null})]})}})})})};export{C as DragCollapseFormList};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-collapse-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-collapse-form-list/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { toArray } from '@flatbiz/utils';\nimport { Collapse, Form, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: Array<string | number>;\n};\nexport function SortableItem(props: SortableItemProps) {\n const form = Form.useFormInstance();\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string | string[]) => {\n return [props.formListFieldData.name, ...toArray(key)] as (string | number)[];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n items={[\n {\n key: props.uid,\n label: header(),\n children: (\n <Fragment>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string | string[]) => {\n return [props.formListFieldData.name, ...toArray(key)] as (string | number)[];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n })}\n </Fragment>\n ),\n },\n ]}\n />\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置名称\n * ```\n */\nexport const DragCollapseFormList = (props: DragCollapseFormListProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<(number | string)[]>([]);\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const formListValue = Form.useWatch(props.formListName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[props.uidFieldName || 'uid'] as string | number;\n });\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = (key: number | string) => {\n let openKeysNew: (number | string)[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n };\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n return (form.getFieldValue(props.formListName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.formListName,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n const cName = classNames(\n 'drag-collapse-formlist-wrapper',\n { 'dcfw-isEmpty': toArray(formListValue).length === 0 },\n props.className,\n );\n return (\n <div className={cName} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.formListName} rules={props.rules}>\n {(fields, operate) => {\n formListOperationRef.current = fields;\n return (\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n return (\n <SortableItem\n formListOperate={operate}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n isActive={openKeys.includes(uid)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n onChange={onChange}\n isGray={uid === dragActiveId}\n isLast={index === getItems().length - 1}\n header={props.header}\n content={props.content}\n index={index}\n formStageCompleteName={[...toArray<string | number>(props.formListName), item.name]}\n />\n );\n })}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"overlay-sortable-item\"\n formListFieldData={dragOverlayItem}\n isActive={openKeys.includes(dragActiveId)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n onChange={onChange}\n header={props.header}\n content={props.content}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[\n ...toArray<string | number>(props.formListName),\n dragOverlayItem.name,\n ]}\n />\n ) : null}\n </DragOverlay>\n </Fragment>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","form","Form","useFormInstance","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","getInsideFormItemName","key","name","concat","toArray","getInsideFormItemData","getFieldValue","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","items","label","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","formListOperationRef","useRef","formListValue","useWatch","formListName","getUidValue","_hooks","useCallbackRef","item","uidFieldName","fbaHooks","useEffectCustom","defaultActiveKeys","defaultActiveKey","length","useUpdateEffect","openKeysNew","has","includes","_array","arrayRemove","handleDragStart","event","active","getItems","handleDragEnd","over","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","value","onDropChange","dragOverlayItem","useMemo","targetIndex","current","find","cName","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","rules","fields","operate","SortableContext","map","temp","strategy","verticalListSortingStrategy","DragOverlay","dropAnimation","duration"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-collapse-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-collapse-form-list/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { toArray } from '@flatbiz/utils';\nimport { Collapse, Form, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: Array<string | number>;\n};\nexport function SortableItem(props: SortableItemProps) {\n const form = Form.useFormInstance();\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string | string[]) => {\n return [props.formListFieldData.name, ...toArray(key)] as (string | number)[];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n items={[\n {\n key: props.uid,\n label: header(),\n children: (\n <Fragment>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string | string[]) => {\n return [props.formListFieldData.name, ...toArray(key)] as (string | number)[];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n })}\n </Fragment>\n ),\n },\n ]}\n />\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置名称\n * ```\n */\nexport const DragCollapseFormList = (props: DragCollapseFormListProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<(number | string)[]>([]);\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const formListValue = Form.useWatch(props.formListName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[props.uidFieldName || 'uid'] as string | number;\n });\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = (key: number | string) => {\n let openKeysNew: (number | string)[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n };\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n return (form.getFieldValue(props.formListName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.formListName,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n const cName = classNames(\n 'drag-collapse-formlist-wrapper',\n { 'dcfw-isEmpty': toArray(formListValue).length === 0 },\n props.className,\n );\n return (\n <div className={cName} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.formListName} rules={props.rules}>\n {(fields, operate) => {\n formListOperationRef.current = fields;\n return (\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n return (\n <SortableItem\n formListOperate={operate}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n isActive={openKeys.includes(uid)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n onChange={onChange}\n isGray={uid === dragActiveId}\n isLast={index === getItems().length - 1}\n header={props.header}\n content={props.content}\n index={index}\n formStageCompleteName={[...toArray<string | number>(props.formListName), item.name]}\n />\n );\n })}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"overlay-sortable-item\"\n formListFieldData={dragOverlayItem}\n isActive={openKeys.includes(dragActiveId)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n onChange={onChange}\n header={props.header}\n content={props.content}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[\n ...toArray<string | number>(props.formListName),\n dragOverlayItem.name,\n ]}\n />\n ) : null}\n </DragOverlay>\n </Fragment>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","form","Form","useFormInstance","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","getInsideFormItemName","key","name","concat","toArray","getInsideFormItemData","getFieldValue","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","items","label","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","formListOperationRef","useRef","formListValue","useWatch","formListName","getUidValue","_hooks","useCallbackRef","item","uidFieldName","fbaHooks","useEffectCustom","defaultActiveKeys","defaultActiveKey","length","useUpdateEffect","openKeysNew","has","includes","_array","arrayRemove","handleDragStart","event","active","getItems","handleDragEnd","over","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","value","onDropChange","dragOverlayItem","useMemo","targetIndex","current","find","cName","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","rules","fields","operate","SortableContext","map","temp","strategy","verticalListSortingStrategy","DragOverlay","dropAnimation","duration"],"mappings":";i2BAgCO,SAASA,EAAaC,GAA0B,IAAAC,EACrD,IAAMC,EAAOC,EAAKC,kBAClB,IAAMC,EAAaL,EAAMM,UAAY,MAAQN,EAAMO,iCAANP,EAAMO,oBAAsBP,EAAMQ,IAAKR,EAAMS,OAC1F,IAAAC,EAAyDC,EAAY,CACnEC,GAAIZ,EAAMQ,IACVK,SAAUR,IAFJS,EAASJ,EAATI,UAAWC,EAAUL,EAAVK,WAAYC,EAASN,EAATM,UAAWC,EAAUP,EAAVO,WAK1C,IAAMC,EAAS,SAATA,IACJ,IAAMC,EAAWnB,EAAMmB,SAAWnB,EAAMmB,SAAWC,EAAAC,MACnD,IAAMC,EAAgBtB,EAAMkB,OAAO,CACjCK,kBAAmBvB,EAAMuB,kBACzBC,UAAWxB,EAAMyB,gBACjBjB,IAAKR,EAAMQ,IACXkB,sBAAuB1B,EAAM0B,sBAC7BC,sBAAuB,SAAvBA,EAAwBC,GACtB,MAAQ5B,CAAAA,EAAMuB,kBAAkBM,MAAIC,OAAKC,EAAQH,GAClD,EACDI,sBAAuB,SAAvBA,IACE,OAAO9B,EAAK+B,cAAcjC,EAAM0B,wBAA0B,CAAA,CAC3D,EACDjB,MAAOT,EAAMS,QAEf,OAAOT,EAAMkC,aACXZ,EAEAa,EAACC,EAAQ,CAAAC,SAAA,CACPjB,EAAA,OAAAkB,EAAA,CAAMC,UAAU,mBAAsBzB,EAAS,CAAAuB,SAC5ClB,KAEHC,EAAA,OAAA,CAAMmB,UAAU,yBAAyBC,MAAOxC,EAAMyC,YAAYJ,SAC/Df,QAMT,IAAMkB,EAAKF,EAAA,CACTtB,UAAW0B,EAAIC,UAAUC,SAAS5B,GAClCC,WAAAA,GACGjB,EAAMwC,OAGX,IAAMK,EAAQC,EACZ,gBACA,CACE,qBAAsB9C,EAAM+C,OAC5B,qBAAsB/C,EAAMgD,OAC5B,8BAA+B3C,GAEjCL,EAAMuC,WAER,OACEnB,EAAC6B,EAAQ,CACPC,UAAWlD,EAAMmD,SAAWnD,EAAMQ,IAAM4C,UACxCC,UAAS,KACTd,UAAWM,EACXS,YAAatD,EAAMsD,YACnBC,WAAYvD,EAAMuD,WAClBC,mBAAoBxD,EAAMwD,mBAC1BC,KAAMzD,EAAMyD,KACZC,UAAQzD,EAAED,EAAM0D,WAANzD,UAAAA,EAAAA,EAAgB0D,KAAK,KAAM3D,EAAMQ,KAC3CgC,MAAKF,EAAOE,CAAAA,EAAAA,GACZoB,IAAK7C,EACL8C,MAAO,CACL,CACEjC,IAAK5B,EAAMQ,IACXsD,MAAO5C,IACPmB,SACEjB,EAACgB,EAAQ,CAAAC,SACNrC,EAAM+D,QAAQ,CACbxC,kBAAmBvB,EAAMuB,kBACzBC,UAAWxB,EAAMyB,gBACjBjB,IAAKR,EAAMQ,IACXkB,sBAAuB1B,EAAM0B,sBAC7BC,sBAAuB,SAAvBA,EAAwBC,GACtB,MAAQ5B,CAAAA,EAAMuB,kBAAkBM,MAAIC,OAAKC,EAAQH,GAClD,EACDI,sBAAuB,SAAvBA,IACE,OAAO9B,EAAK+B,cAAcjC,EAAM0B,wBAA0B,CAAA,CAC3D,EACDjB,MAAOT,EAAMS,aAQ7B,KCvGauD,EAAuB,SAAvBA,EAAwBhE,GACnC,IAAAiE,EAAwCC,IAAjCC,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GACpC,IAAAI,EAAgCH,EAA8B,IAAvDI,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5B,IAAMnE,EAAOC,EAAKC,kBAClB,IAAMoE,EAAuBC,EAA4B,IAEzD,IAAMC,EAAgBvE,EAAKwE,SAAS3E,EAAM4E,aAAc1E,GAExD,IAAM2E,EAAcC,EAAMC,eAAe,SAACC,GACxC,OAAOA,eAAAA,EAAOhF,EAAMiF,cAAgB,MACtC,GAEAC,EAASC,gBAAgB,WACvB,IAAMC,EAAoBrD,EAAyB/B,EAAMqF,kBACzD,IAAKrF,EAAMkD,WAAakC,EAAkBE,OAAS,EAAG,CACpDf,EAAYa,EACd,KAAO,CACLb,EAAYxC,EAAQ/B,EAAMkD,WAC5B,CACD,EAAE,IAEH4B,EAAMS,gBAAgB,WACpBhB,EAAYxC,EAAQ/B,EAAMkD,WAC5B,EAAG,CAAClD,EAAMkD,YAEV,IAAMQ,EAAW,SAAXA,EAAY9B,GAChB,IAAI4D,EAAmC,GACvC,GAAIxF,EAAMqD,UAAW,CACnB,GAAIiB,EAAS,IAAMA,EAAS,KAAO1C,EAAK,CACtC4D,EAAc,EAChB,KAAO,CACLA,EAAc,CAAC5D,EACjB,CACF,KAAO,CACL,IAAM6D,EAAMnB,EAASoB,SAAS9D,GAC9B,GAAI6D,EAAK,CACPE,EAAMC,YAAYtB,EAAU1C,GAC5B4D,EAAW1D,GAAAA,OAAOwC,EACpB,KAAO,CACLkB,EAAclB,EAASxC,OAAOF,EAChC,CACF,CACA2C,EAAYiB,GACZ,GAAIxF,EAAMqD,UAAW,CACnBrD,EAAM0D,UAAQ,MAAd1D,EAAM0D,SAAW8B,EAAYF,OAASE,EAAY,GAAKpC,UACzD,KAAO,CACLpD,EAAM0D,UAAN1D,MAAAA,EAAM0D,SAAW8B,EAAYF,OAASE,EAAcpC,UACtD,GAGF,SAASyC,EAAgBC,GACvB,IAAQC,EAAWD,EAAXC,OACR3B,EAAgB2B,EAAOnF,GACzB,CAEA,IAAMoF,EAAWlB,EAAMC,eAAe,WACpC,OAAQ7E,EAAK+B,cAAcjC,EAAM4E,eAAiB,EACpD,GAEA,SAASqB,EAAcH,GACrB,IAAQC,EAAiBD,EAAjBC,OAAQG,EAASJ,EAATI,KAChB,IAAMrC,EAAQmC,IACd,GAAID,EAAOnF,KAAOsF,EAAKtF,GAAI,CACzB,IAAMuF,EAAWtC,EAAMuC,UAAU,SAACpB,GAAI,OAAKH,EAAYG,KAAUe,EAAOnF,KACxE,IAAMyF,EAAWxC,EAAMuC,UAAU,SAACpB,GAAI,OAAKH,EAAYG,KAAUkB,EAAKtF,KACtE,IAAM0F,EAAUC,EAAwB1C,EAAOsC,EAAUE,GACzDnG,EAAKsG,UAAU,CACb,CACE3E,KAAM7B,EAAM4E,aACZ6B,MAAOH,KAGXtG,EAAM0G,cAAN1G,MAAAA,EAAM0G,aAAeJ,EACvB,CACAlC,EAAgBhB,UAClB,CAEA,IAAMuD,EAAkBC,EAAQ,WAC9B,IAAKzC,EAAc,OAAOf,UAC1B,IAAMS,EAAQmC,IACd,IAAMa,EAAchD,EAAMuC,UAAU,SAACpB,GAAI,OAAKH,EAAYG,KAAUb,IACpE,OAAOK,EAAqBsC,QAAQC,KAAK,SAAC/B,GAAI,OAAKA,EAAKnD,OAASgF,GAClE,EAAE,CAAC1C,EAAc6B,EAAUnB,IAE5B,IAAMmC,EAAQlE,EACZ,iCACA,CAAE,eAAgBf,EAAQ2C,GAAeY,SAAW,GACpDtF,EAAMuC,WAER,OACEnB,EAAA,MAAA,CAAKmB,UAAWyE,EAAOxE,MAAOxC,EAAMwC,MAAMH,SACxCjB,EAAC6F,EAAU,CAACC,mBAAoBC,EAAeC,YAAavB,EAAiBwB,UAAWpB,EAAc5D,SACpGjB,EAACjB,EAAKmH,KAAI,CAACzF,KAAM7B,EAAM4E,aAAc2C,MAAOvH,EAAMuH,MAAMlF,SACrD,SAAAA,EAACmF,EAAQC,GACRjD,EAAqBsC,QAAUU,EAC/B,OACErF,EAACC,EAAQ,CAAAC,SAAA,CACPjB,EAACsG,EAAe,CACd7D,MAAOmC,IAAW2B,IAAI,SAACC,GAAI,OAAK/C,EAAY+C,KAC5CC,SAAUC,EAA4BzF,SAEtCjB,EAACgB,EAAQ,CAAAC,SACNmF,EAAOG,IAAI,SAAC3C,EAAMvE,GACjB,IAAMD,EAAMqE,EAAYmB,IAAWvF,IACnC,OACEW,EAACrB,EAAY,CACX0B,gBAAiBgG,EACjBlG,kBAAmByD,EACnBxE,IAAKA,EAEL2C,SAAUmB,EAASoB,SAASlF,GAC5B8C,YAAatD,EAAMsD,YACnBC,WAAYvD,EAAMuD,WAClBC,mBAAoBxD,EAAMwD,mBAC1BC,KAAMzD,EAAMyD,KACZtC,SAAUnB,EAAMmB,SAChBZ,oBAAqBP,EAAMO,oBAC3B2B,aAAclC,EAAMkC,aACpBwB,SAAUA,EACVX,OAAQvC,IAAQ2D,EAChBnB,OAAQvC,IAAUuF,IAAWV,OAAS,EACtCpE,OAAQlB,EAAMkB,OACd6C,QAAS/D,EAAM+D,QACftD,MAAOA,EACPiB,sBAAqBI,GAAAA,OAAMC,EAAyB/B,EAAM4E,cAAa,CAAEI,EAAKnD,QAftErB,EAAG,IAAIwE,EAAKpD,WAqB9BR,EAAC2G,EAAW,CAACC,cAAe,CAAEC,SAAU,GAAI5F,SACzC8B,GAAgBwC,EACfvF,EAACrB,EAAY,CACXO,UAAW,KACXE,IAAK2D,EAEL5B,UAAU,wBACVhB,kBAAmBoF,EACnBxD,SAAUmB,EAASoB,SAASvB,GAC5Bb,YAAatD,EAAMsD,YACnBC,WAAYvD,EAAMuD,WAClBC,mBAAoBxD,EAAMwD,mBAC1BC,KAAMzD,EAAMyD,KACZtC,SAAUnB,EAAMmB,SAChBuC,SAAUA,EACVxC,OAAQlB,EAAMkB,OACd6C,QAAS/D,EAAM+D,QACftC,gBAAiB,KACjBhB,MAAO,EACPiB,sBAAqBI,GAAAA,OAChBC,EAAyB/B,EAAM4E,cAAa,CAC/C+B,EAAgB9E,QAhBbsC,GAmBL,SAIZ,OAKV"}
@@ -17,5 +17,5 @@ import './../form-item-wrapper/index.css';
17
17
  import './../tips-wrapper/index.css';
18
18
  import './index.css';
19
19
  /*! @flatjs/forge MIT @flatbiz/antd */
20
- import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{useSensors as i,useSensor as t,PointerSensor as o,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as a}from"@dnd-kit/modifiers";import{useSortable as s,SortableContext as d,verticalListSortingStrategy as l,arrayMove as m}from"@dnd-kit/sortable";import{noop as c,toArray as p}from"@flatbiz/utils";import{Space as u,Form as g}from"antd";import{EditableCard as f}from"../editable-card/index.js";import x from"@ant-design/icons/es/icons/DragOutlined";import{CSS as v}from"@dnd-kit/utilities";import{CardWrapper as j}from"../card-wrapper/index.js";import{DeleteNode as h}from"../delete-node/index.js";import{IconWrapper as y}from"../icon-wrapper/index.js";import{jsx as D,jsxs as I}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"react";import"../box-grid/index.js";import"@dimjs/lang/cjs/is-number";import"ahooks";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-83bede1b.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../easy-form/index.js";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";import"../form-item-hidden/index.js";import"../form-item-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/DeleteOutlined";import"@dimjs/lang/cjs/is-undefined";var k=["dragIcon","rowId","dragTriggerPosition"];var C=function i(t){var o=t.dragIcon,n=t.rowId,a=t.dragTriggerPosition,d=e(t,k);var l=a||"left";var m=s({id:n}),p=m.setActivatorNodeRef,g=m.listeners,f=m.setNodeRef,C=m.transform,b=m.transition,w=m.isDragging;var z=r({},d.style,{transform:v.Transform.toString(C&&r({},C,{scaleY:1})),transition:b,cursor:"move"},w?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var N=o||D(x,{});return D("div",{ref:f,style:z,children:D(j,{size:"small",style:{marginBottom:10},extra:I(u,{size:10,children:[D(h,{style:{color:"red"},hidden:t.extraData.required&&t.extraData.fields.length===1,onDelete:function e(){t.extraData.operation.remove(t.extraData.index)}}),l==="right"?D("span",r({ref:p,style:{touchAction:"none",cursor:"move"}},g,{children:D(y,{style:{touchAction:"none",cursor:"move",padding:"3px",margin:0,justifyContent:"center",color:"#787878"},icon:N,onClick:c,size:"small"})})):null]}),title:I(u,{size:5,children:[l==="left"?D("span",r({ref:p,style:{touchAction:"none",cursor:"move",display:"flex",alignItems:"center",justifyContent:"center"}},g,{children:D(y,{style:{touchAction:"none",cursor:"move",padding:"3px",margin:0,justifyContent:"center",color:"#787878"},icon:N,onClick:c,size:"small"})})):null,I("span",{children:["第",t.extraData.index+1,"行"]})]}),children:t.children})},n)};var b=function e(r){return D(j,{size:"small",style:{marginBottom:10},extra:D(h,{style:{color:"red"},hidden:r.extraData.required&&r.extraData.fields.length===1,onDelete:function e(){r.extraData.operation.remove(r.extraData.index)}}),title:"第"+(r.extraData.index+1)+"行",children:r.children})};var w=["dragIcon","uidFieldKey","onDragChange","disabledDrag","formListCompleteName","formListName","dragTriggerPosition"];var z=function s(c){var u=c.dragIcon,x=c.uidFieldKey,v=c.onDragChange,j=c.disabledDrag,h=c.formListCompleteName,y=c.formListName,I=c.dragTriggerPosition,k=e(c,w);var z=h||y;var N=g.useFormInstance();var F=g.useWatch(z,N);var P=i(t(o,{activationConstraint:{delay:0,tolerance:0}}));var L=function e(r){var i=r.active,t=r.over;if(i.id!==(t==null?void 0:t.id)){var o=F.findIndex((function(e){return e[x]===i.id}));var n=F.findIndex((function(e){return e[x]===(t==null?void 0:t.id)}));var a=m(F,o,n);N.setFields([{name:z,value:a}]);v==null||v(a,{activeId:i.id,overId:t==null?void 0:t.id,activeIndex:o,overIndex:n})}};return D(n,{sensors:P,modifiers:[a],onDragEnd:L,children:D(d,{items:(F==null?void 0:F.map((function(e){return e[x]})))||[],strategy:l,children:D(f,r({formListName:y,formListCompleteName:h},k,{onCustomWrapper:function e(r,i){if(j){return D(b,{extraData:i,children:r},i.key)}var t=N.getFieldValue([].concat(p(z),[i.fieldItem.name]));if(!(t!=null&&t[x])){console.error("唯一值字段【"+x+"】为空,无法进行拖拽排序",t);return D(b,{extraData:i,children:r},i.key)}return D(C,{dragIcon:u,rowId:t==null?void 0:t[x],extraData:i,dragTriggerPosition:I,children:r},i.key)}}))})})};export{z as DragEditableCard};
20
+ import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{useSensors as i,useSensor as t,PointerSensor as o,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as a}from"@dnd-kit/modifiers";import{useSortable as s,SortableContext as d,verticalListSortingStrategy as l,arrayMove as m}from"@dnd-kit/sortable";import{noop as c,toArray as p}from"@flatbiz/utils";import{Space as u,Form as g}from"antd";import{EditableCard as f}from"../editable-card/index.js";import x from"@ant-design/icons/es/icons/DragOutlined";import{CSS as v}from"@dnd-kit/utilities";import{CardWrapper as j}from"../card-wrapper/index.js";import{DeleteNode as h}from"../delete-node/index.js";import{IconWrapper as y}from"../icon-wrapper/index.js";import{jsx as D,jsxs as I}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"react";import"../box-grid/index.js";import"@dimjs/lang/cjs/is-number";import"ahooks";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-853b36e6.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../easy-form/index.js";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";import"../form-item-hidden/index.js";import"../form-item-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/DeleteOutlined";import"@dimjs/lang/cjs/is-undefined";var k=["dragIcon","rowId","dragTriggerPosition"];var C=function i(t){var o=t.dragIcon,n=t.rowId,a=t.dragTriggerPosition,d=e(t,k);var l=a||"left";var m=s({id:n}),p=m.setActivatorNodeRef,g=m.listeners,f=m.setNodeRef,C=m.transform,b=m.transition,w=m.isDragging;var z=r({},d.style,{transform:v.Transform.toString(C&&r({},C,{scaleY:1})),transition:b,cursor:"move"},w?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var N=o||D(x,{});return D("div",{ref:f,style:z,children:D(j,{size:"small",style:{marginBottom:10},extra:I(u,{size:10,children:[D(h,{style:{color:"red"},hidden:t.extraData.required&&t.extraData.fields.length===1,onDelete:function e(){t.extraData.operation.remove(t.extraData.index)}}),l==="right"?D("span",r({ref:p,style:{touchAction:"none",cursor:"move"}},g,{children:D(y,{style:{touchAction:"none",cursor:"move",padding:"3px",margin:0,justifyContent:"center",color:"#787878"},icon:N,onClick:c,size:"small"})})):null]}),title:I(u,{size:5,children:[l==="left"?D("span",r({ref:p,style:{touchAction:"none",cursor:"move",display:"flex",alignItems:"center",justifyContent:"center"}},g,{children:D(y,{style:{touchAction:"none",cursor:"move",padding:"3px",margin:0,justifyContent:"center",color:"#787878"},icon:N,onClick:c,size:"small"})})):null,I("span",{children:["第",t.extraData.index+1,"行"]})]}),children:t.children})},n)};var b=function e(r){return D(j,{size:"small",style:{marginBottom:10},extra:D(h,{style:{color:"red"},hidden:r.extraData.required&&r.extraData.fields.length===1,onDelete:function e(){r.extraData.operation.remove(r.extraData.index)}}),title:"第"+(r.extraData.index+1)+"行",children:r.children})};var w=["dragIcon","uidFieldKey","onDragChange","disabledDrag","formListCompleteName","formListName","dragTriggerPosition"];var z=function s(c){var u=c.dragIcon,x=c.uidFieldKey,v=c.onDragChange,j=c.disabledDrag,h=c.formListCompleteName,y=c.formListName,I=c.dragTriggerPosition,k=e(c,w);var z=h||y;var N=g.useFormInstance();var F=g.useWatch(z,N);var P=i(t(o,{activationConstraint:{delay:0,tolerance:0}}));var L=function e(r){var i=r.active,t=r.over;if(i.id!==(t==null?void 0:t.id)){var o=F.findIndex(function(e){return e[x]===i.id});var n=F.findIndex(function(e){return e[x]===(t==null?void 0:t.id)});var a=m(F,o,n);N.setFields([{name:z,value:a}]);v==null||v(a,{activeId:i.id,overId:t==null?void 0:t.id,activeIndex:o,overIndex:n})}};return D(n,{sensors:P,modifiers:[a],onDragEnd:L,children:D(d,{items:(F==null?void 0:F.map(function(e){return e[x]}))||[],strategy:l,children:D(f,r({formListName:y,formListCompleteName:h},k,{onCustomWrapper:function e(r,i){if(j){return D(b,{extraData:i,children:r},i.key)}var t=N.getFieldValue([].concat(p(z),[i.fieldItem.name]));if(!(t!=null&&t[x])){console.error("唯一值字段【"+x+"】为空,无法进行拖拽排序",t);return D(b,{extraData:i,children:r},i.key)}return D(C,{dragIcon:u,rowId:t==null?void 0:t[x],extraData:i,dragTriggerPosition:I,children:r},i.key)}}))})})};export{z as DragEditableCard};
21
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-card/handle.tsx","@flatbiz/antd/src/drag-editable-card/handle2.tsx","@flatbiz/antd/src/drag-editable-card/editable-card.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from '@flatbiz/utils';\nimport { FormListFieldData, FormListOperation, Space, type RowProps } from 'antd';\nimport { type ReactElement } from 'react';\nimport { CardWrapper } from '../card-wrapper';\nimport { DeleteNode } from '../delete-node';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype HandleProps = RowProps & {\n dragIcon?: ReactElement;\n rowId: string;\n children: ReactElement;\n extraData: {\n operation: FormListOperation;\n fields: FormListFieldData[];\n index: number;\n required?: boolean;\n };\n dragTriggerPosition?: 'left' | 'right';\n};\nexport const Handle = (props: HandleProps) => {\n const { dragIcon, rowId, dragTriggerPosition, ...innerProps } = props;\n\n const dragTriggerPositionFt = dragTriggerPosition || 'left';\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = dragIcon || <DragOutlined />;\n return (\n <div ref={setNodeRef} key={rowId} style={style}>\n <CardWrapper\n size=\"small\"\n style={{ marginBottom: 10 }}\n extra={\n <Space size={10}>\n <DeleteNode\n style={{ color: 'red' }}\n hidden={props.extraData.required && props.extraData.fields.length === 1}\n onDelete={() => {\n props.extraData.operation.remove(props.extraData.index);\n }}\n />\n {dragTriggerPositionFt === 'right' ? (\n <span\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n }}\n {...listeners}\n >\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '3px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n size=\"small\"\n />\n </span>\n ) : null}\n </Space>\n }\n title={\n <Space size={5}>\n {dragTriggerPositionFt === 'left' ? (\n <span\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n {...listeners}\n >\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '3px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n size=\"small\"\n />\n </span>\n ) : null}\n <span>第{props.extraData.index + 1}行</span>\n </Space>\n }\n >\n {props.children}\n </CardWrapper>\n </div>\n );\n};\n","import { FormListFieldData, FormListOperation, type RowProps } from 'antd';\nimport { type ReactElement } from 'react';\nimport { CardWrapper } from '../card-wrapper';\nimport { DeleteNode } from '../delete-node';\n\ntype Handle2Props = RowProps & {\n children: ReactElement;\n extraData: {\n operation: FormListOperation;\n fields: FormListFieldData[];\n index: number;\n required?: boolean;\n };\n};\nexport const Handle2 = (props: Handle2Props) => {\n return (\n <CardWrapper\n size=\"small\"\n style={{ marginBottom: 10 }}\n extra={\n <DeleteNode\n style={{ color: 'red' }}\n hidden={props.extraData.required && props.extraData.fields.length === 1}\n onDelete={() => {\n props.extraData.operation.remove(props.extraData.index);\n }}\n />\n }\n title={`第${props.extraData.index + 1}行`}\n >\n {props.children}\n </CardWrapper>\n );\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { toArray, type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableCard } from '../editable-card';\nimport { EditableCardProps } from '../editable-card/type';\nimport { Handle } from './handle';\nimport { Handle2 } from './handle2';\n\nexport type DragEditableCardProps = Omit<EditableCardProps, 'onCustomWrapper'> & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n overId?: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n /**\n * 拖拽触发位置,默认在左侧\n */\n dragTriggerPosition?: 'left' | 'right';\n};\n\n/**\n * 可拖拽编辑卡片\n * ```\n * 1. 卡片数组必须有唯一值字段,通过参数 uidFieldKey 告诉组件\n * ```\n */\nexport const DragEditableCard = (props: DragEditableCardProps) => {\n const {\n dragIcon,\n uidFieldKey,\n onDragChange,\n disabledDrag,\n formListCompleteName,\n formListName,\n dragTriggerPosition,\n ...otherProps\n } = props;\n\n const formListCompleteNameFt = formListCompleteName || formListName;\n\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(formListCompleteNameFt, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n form.setFields([\n {\n name: formListCompleteNameFt,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n overId: over?.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n return (\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableCard\n formListName={formListName}\n formListCompleteName={formListCompleteName}\n {...otherProps}\n onCustomWrapper={(children, extraData) => {\n if (disabledDrag) {\n return (\n <Handle2 key={extraData.key} extraData={extraData}>\n {children}\n </Handle2>\n );\n }\n\n const target = form.getFieldValue([...toArray(formListCompleteNameFt), extraData.fieldItem.name]);\n\n if (!target?.[uidFieldKey]) {\n console.error(`唯一值字段【${uidFieldKey}】为空,无法进行拖拽排序`, target);\n return (\n <Handle2 key={extraData.key} extraData={extraData}>\n {children}\n </Handle2>\n );\n }\n return (\n <Handle\n key={extraData.key}\n dragIcon={dragIcon}\n rowId={target?.[uidFieldKey]}\n extraData={extraData}\n dragTriggerPosition={dragTriggerPosition}\n >\n {children}\n </Handle>\n );\n }}\n />\n </SortableContext>\n </DndContext>\n );\n};\n"],"names":["Handle","props","dragIcon","rowId","dragTriggerPosition","innerProps","_objectWithoutPropertiesLoose","_excluded","dragTriggerPositionFt","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_jsx","_DragOutlined","ref","children","CardWrapper","size","marginBottom","extra","_jsxs","Space","DeleteNode","color","hidden","extraData","required","fields","length","onDelete","operation","remove","index","touchAction","IconWrapper","padding","margin","justifyContent","icon","onClick","noop","title","display","alignItems","Handle2","DragEditableCard","uidFieldKey","onDragChange","disabledDrag","formListCompleteName","formListName","otherProps","formListCompleteNameFt","form","Form","useFormInstance","dataList","useWatch","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","name","value","activeId","overId","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","map","strategy","verticalListSortingStrategy","EditableCard","onCustomWrapper","key","target","getFieldValue","concat","toArray","fieldItem","console","error"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-card/handle.tsx","@flatbiz/antd/src/drag-editable-card/handle2.tsx","@flatbiz/antd/src/drag-editable-card/editable-card.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from '@flatbiz/utils';\nimport { FormListFieldData, FormListOperation, Space, type RowProps } from 'antd';\nimport { type ReactElement } from 'react';\nimport { CardWrapper } from '../card-wrapper';\nimport { DeleteNode } from '../delete-node';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype HandleProps = RowProps & {\n dragIcon?: ReactElement;\n rowId: string;\n children: ReactElement;\n extraData: {\n operation: FormListOperation;\n fields: FormListFieldData[];\n index: number;\n required?: boolean;\n };\n dragTriggerPosition?: 'left' | 'right';\n};\nexport const Handle = (props: HandleProps) => {\n const { dragIcon, rowId, dragTriggerPosition, ...innerProps } = props;\n\n const dragTriggerPositionFt = dragTriggerPosition || 'left';\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = dragIcon || <DragOutlined />;\n return (\n <div ref={setNodeRef} key={rowId} style={style}>\n <CardWrapper\n size=\"small\"\n style={{ marginBottom: 10 }}\n extra={\n <Space size={10}>\n <DeleteNode\n style={{ color: 'red' }}\n hidden={props.extraData.required && props.extraData.fields.length === 1}\n onDelete={() => {\n props.extraData.operation.remove(props.extraData.index);\n }}\n />\n {dragTriggerPositionFt === 'right' ? (\n <span\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n }}\n {...listeners}\n >\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '3px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n size=\"small\"\n />\n </span>\n ) : null}\n </Space>\n }\n title={\n <Space size={5}>\n {dragTriggerPositionFt === 'left' ? (\n <span\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n {...listeners}\n >\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '3px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n size=\"small\"\n />\n </span>\n ) : null}\n <span>第{props.extraData.index + 1}行</span>\n </Space>\n }\n >\n {props.children}\n </CardWrapper>\n </div>\n );\n};\n","import { FormListFieldData, FormListOperation, type RowProps } from 'antd';\nimport { type ReactElement } from 'react';\nimport { CardWrapper } from '../card-wrapper';\nimport { DeleteNode } from '../delete-node';\n\ntype Handle2Props = RowProps & {\n children: ReactElement;\n extraData: {\n operation: FormListOperation;\n fields: FormListFieldData[];\n index: number;\n required?: boolean;\n };\n};\nexport const Handle2 = (props: Handle2Props) => {\n return (\n <CardWrapper\n size=\"small\"\n style={{ marginBottom: 10 }}\n extra={\n <DeleteNode\n style={{ color: 'red' }}\n hidden={props.extraData.required && props.extraData.fields.length === 1}\n onDelete={() => {\n props.extraData.operation.remove(props.extraData.index);\n }}\n />\n }\n title={`第${props.extraData.index + 1}行`}\n >\n {props.children}\n </CardWrapper>\n );\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { toArray, type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableCard } from '../editable-card';\nimport { EditableCardProps } from '../editable-card/type';\nimport { Handle } from './handle';\nimport { Handle2 } from './handle2';\n\nexport type DragEditableCardProps = Omit<EditableCardProps, 'onCustomWrapper'> & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n overId?: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n /**\n * 拖拽触发位置,默认在左侧\n */\n dragTriggerPosition?: 'left' | 'right';\n};\n\n/**\n * 可拖拽编辑卡片\n * ```\n * 1. 卡片数组必须有唯一值字段,通过参数 uidFieldKey 告诉组件\n * ```\n */\nexport const DragEditableCard = (props: DragEditableCardProps) => {\n const {\n dragIcon,\n uidFieldKey,\n onDragChange,\n disabledDrag,\n formListCompleteName,\n formListName,\n dragTriggerPosition,\n ...otherProps\n } = props;\n\n const formListCompleteNameFt = formListCompleteName || formListName;\n\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(formListCompleteNameFt, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n form.setFields([\n {\n name: formListCompleteNameFt,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n overId: over?.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n return (\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableCard\n formListName={formListName}\n formListCompleteName={formListCompleteName}\n {...otherProps}\n onCustomWrapper={(children, extraData) => {\n if (disabledDrag) {\n return (\n <Handle2 key={extraData.key} extraData={extraData}>\n {children}\n </Handle2>\n );\n }\n\n const target = form.getFieldValue([...toArray(formListCompleteNameFt), extraData.fieldItem.name]);\n\n if (!target?.[uidFieldKey]) {\n console.error(`唯一值字段【${uidFieldKey}】为空,无法进行拖拽排序`, target);\n return (\n <Handle2 key={extraData.key} extraData={extraData}>\n {children}\n </Handle2>\n );\n }\n return (\n <Handle\n key={extraData.key}\n dragIcon={dragIcon}\n rowId={target?.[uidFieldKey]}\n extraData={extraData}\n dragTriggerPosition={dragTriggerPosition}\n >\n {children}\n </Handle>\n );\n }}\n />\n </SortableContext>\n </DndContext>\n );\n};\n"],"names":["Handle","props","dragIcon","rowId","dragTriggerPosition","innerProps","_objectWithoutPropertiesLoose","_excluded","dragTriggerPositionFt","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_jsx","_DragOutlined","ref","children","CardWrapper","size","marginBottom","extra","_jsxs","Space","DeleteNode","color","hidden","extraData","required","fields","length","onDelete","operation","remove","index","touchAction","IconWrapper","padding","margin","justifyContent","icon","onClick","noop","title","display","alignItems","Handle2","DragEditableCard","uidFieldKey","onDragChange","disabledDrag","formListCompleteName","formListName","otherProps","formListCompleteNameFt","form","Form","useFormInstance","dataList","useWatch","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","name","value","activeId","overId","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","map","strategy","verticalListSortingStrategy","EditableCard","onCustomWrapper","key","target","getFieldValue","concat","toArray","fieldItem","console","error"],"mappings":";koEAsBO,IAAMA,EAAS,SAATA,EAAUC,GACrB,IAAQC,EAAwDD,EAAxDC,SAAUC,EAA8CF,EAA9CE,MAAOC,EAAuCH,EAAvCG,oBAAwBC,EAAUC,EAAKL,EAAKM,GAErE,IAAMC,EAAwBJ,GAAuB,OACrD,IAAAK,EAA0FC,EAAY,CACpGC,GAAIR,IADES,EAAmBH,EAAnBG,oBAAqBC,EAASJ,EAATI,UAAWC,EAAUL,EAAVK,WAAYC,EAASN,EAATM,UAAWC,EAAUP,EAAVO,WAAYC,EAAUR,EAAVQ,WAI3E,IAAMC,EAA0BC,EAC3Bd,GAAAA,EAAWa,MAAK,CACnBH,UAAWK,EAAIC,UAAUC,SAASP,GAASI,EAAA,CAAA,EAASJ,EAAS,CAAEQ,OAAQ,KACvEP,WAAAA,EACAQ,OAAQ,QACJP,EACA,CACEQ,SAAU,WACVC,OAAQ,KACRC,UAAW,0CACXC,gBAAiB,yBAEnB,CAAE,GAER,IAAMC,EAAc3B,GAAY4B,EAAAC,GAAe,GAC/C,OACED,EAAA,MAAA,CAAKE,IAAKlB,EAAwBI,MAAOA,EAAMe,SAC7CH,EAACI,EAAW,CACVC,KAAK,QACLjB,MAAO,CAAEkB,aAAc,IACvBC,MACEC,EAACC,EAAK,CAACJ,KAAM,GAAGF,SAAA,CACdH,EAACU,EAAU,CACTtB,MAAO,CAAEuB,MAAO,OAChBC,OAAQzC,EAAM0C,UAAUC,UAAY3C,EAAM0C,UAAUE,OAAOC,SAAW,EACtEC,SAAU,SAAVA,IACE9C,EAAM0C,UAAUK,UAAUC,OAAOhD,EAAM0C,UAAUO,MACnD,IAED1C,IAA0B,QACzBsB,SAAAX,EAAA,CACEa,IAAKpB,EACLM,MAAO,CACLiC,YAAa,OACb3B,OAAQ,SAENX,EAAS,CAAAoB,SAEbH,EAACsB,EAAW,CACVlC,MAAO,CACLiC,YAAa,OACb3B,OAAQ,OACR6B,QAAS,MACTC,OAAQ,EACRC,eAAgB,SAChBd,MAAO,WAETe,KAAM3B,EACN4B,QAASC,EACTvB,KAAK,aAGP,QAGRwB,MACErB,EAACC,EAAK,CAACJ,KAAM,EAAEF,UACZzB,IAA0B,OACzBsB,SAAAX,EAAA,CACEa,IAAKpB,EACLM,MAAO,CACLiC,YAAa,OACb3B,OAAQ,OACRoC,QAAS,OACTC,WAAY,SACZN,eAAgB,WAEd1C,EAAS,CAAAoB,SAEbH,EAACsB,EAAW,CACVlC,MAAO,CACLiC,YAAa,OACb3B,OAAQ,OACR6B,QAAS,MACTC,OAAQ,EACRC,eAAgB,SAChBd,MAAO,WAETe,KAAM3B,EACN4B,QAASC,EACTvB,KAAK,aAGP,KACJG,EAAA,OAAA,CAAAL,SAAA,CAAM,IAAEhC,EAAM0C,UAAUO,MAAQ,EAAE,UAErCjB,SAEAhC,EAAMgC,YAxEgB9B,EA4E/B,EC5GO,IAAM2D,EAAU,SAAVA,EAAW7D,GACtB,OACE6B,EAACI,EAAW,CACVC,KAAK,QACLjB,MAAO,CAAEkB,aAAc,IACvBC,MACEP,EAACU,EAAU,CACTtB,MAAO,CAAEuB,MAAO,OAChBC,OAAQzC,EAAM0C,UAAUC,UAAY3C,EAAM0C,UAAUE,OAAOC,SAAW,EACtEC,SAAU,SAAVA,IACE9C,EAAM0C,UAAUK,UAAUC,OAAOhD,EAAM0C,UAAUO,MACnD,IAGJS,MAAK,KAAM1D,EAAM0C,UAAUO,MAAQ,GAAK,IAAAjB,SAEvChC,EAAMgC,UAGb,iICuBa8B,EAAmB,SAAnBA,EAAoB9D,GAC/B,IACEC,EAQED,EARFC,SACA8D,EAOE/D,EAPF+D,YACAC,EAMEhE,EANFgE,aACAC,EAKEjE,EALFiE,aACAC,EAIElE,EAJFkE,qBACAC,EAGEnE,EAHFmE,aACAhE,EAEEH,EAFFG,oBACGiE,EAAU/D,EACXL,EAAKM,GAET,IAAM+D,EAAyBH,GAAwBC,EAEvD,IAAMG,EAAOC,EAAKC,kBAClB,IAAMC,EAAWF,EAAKG,SAASL,EAAwBC,GAEvD,IAAMK,EAAUC,EACdC,EAAUC,EAAe,CACvBC,qBAAsB,CAEpBC,MAAO,EACPC,UAAW,MAKjB,IAAMC,EAAY,SAAZA,EAASC,GAAuC,IAAjCC,EAAMD,EAANC,OAAQC,EAAIF,EAAJE,KAC3B,GAAID,EAAO1E,MAAO2E,GAAAA,UAAAA,EAAAA,EAAM3E,IAAI,CAC1B,IAAM4E,EAAcb,EAASc,UAAU,SAACC,GAAC,OAAKA,EAAEzB,KAAiBqB,EAAO1E,KACxE,IAAM+E,EAAYhB,EAASc,UAAU,SAACC,GAAC,OAAKA,EAAEzB,MAAiBsB,GAAI,UAAA,EAAJA,EAAM3E,MACrE,IAAMgF,EAAcC,EAAUlB,EAAUa,EAAaG,GACrDnB,EAAKsB,UAAU,CACb,CACEC,KAAMxB,EACNyB,MAAOJ,KAGX1B,GAAAA,MAAAA,EAAe0B,EAA+B,CAC5CK,SAAUX,EAAO1E,GACjBsF,OAAQX,GAAAA,UAAAA,EAAAA,EAAM3E,GACd4E,YAAAA,EACAG,UAAAA,GAEJ,GAGF,OACE5D,EAACoE,EAAU,CAACtB,QAASA,EAASuB,UAAW,CAACC,GAAyBjB,UAAWA,EAAUlD,SACtFH,EAACuE,EAAe,CACdC,OAAO5B,GAAQ,UAAA,EAARA,EAAU6B,IAAI,SAACd,GAAC,OAAKA,EAAEzB,EAAY,KAAK,GAC/CwC,SAAUC,EAA4BxE,SAEtCH,EAAC4E,EAAYvF,EAAA,CACXiD,aAAcA,EACdD,qBAAsBA,GAClBE,EAAU,CACdsC,gBAAiB,SAAjBA,EAAkB1E,EAAUU,GAC1B,GAAIuB,EAAc,CAChB,OACEpC,EAACgC,EAAO,CAAqBnB,UAAWA,EAAUV,SAC/CA,GADWU,EAAUiE,IAI5B,CAEA,IAAMC,EAAStC,EAAKuC,cAAa,GAAAC,OAAKC,EAAQ1C,IAAyB3B,EAAUsE,UAAUnB,QAE3F,KAAKe,GAAM,MAANA,EAAS7C,IAAc,CAC1BkD,QAAQC,MAAK,SAAUnD,EAAW,eAAgB6C,GAClD,OACE/E,EAACgC,EAAO,CAAqBnB,UAAWA,EAAUV,SAC/CA,GADWU,EAAUiE,IAI5B,CACA,OACE9E,EAAC9B,EAAM,CAELE,SAAUA,EACVC,MAAO0G,GAAM,UAAA,EAANA,EAAS7C,GAChBrB,UAAWA,EACXvC,oBAAqBA,EAAoB6B,SAExCA,GANIU,EAAUiE,IASrB,QAKV"}
@@ -25,5 +25,5 @@ import './../input-text-area-wrapper/index.css';
25
25
  import './../icon-wrapper/index.css';
26
26
  import './index.css';
27
27
  /*! @flatjs/forge MIT @flatbiz/antd */
28
- import{a as i,_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{useSensors as r,useSensor as o,PointerSensor as t,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as p}from"@dnd-kit/sortable";import{Form as l}from"antd";import{EditableTable as c}from"../editable-table/index.js";import{createCtx as u}from"@wove/react/cjs/create-ctx";import j from"@ant-design/icons/es/icons/DragOutlined";import{CSS as g}from"@dnd-kit/utilities";import{isUndefinedOrNull as v,noop as x}from"@flatbiz/utils";import{createElement as f,Children as y,cloneElement as b}from"react";import{IconWrapper as w}from"../icon-wrapper/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-83bede1b.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../text-symbol-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../form-item-hidden/index.js";import"../table-cell-render/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-render/index.js";import"../date-picker-wrapper/index.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper/index.js";import"../input-wrapper/index.js";import"../selector-wrapper/index.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../index-636a568e.js";import"../request-status/index.js";import"../text-overflow/index.js";import"@ant-design/icons/es/icons/SyncOutlined";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"../switch-wrapper/index.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper/index.js";import"../upload-wrapper/index.js";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";var k=u(),I=k[0],C=k[1];var _=["dragIcon"];var D=function r(o){var t=o.dragIcon,n=i(o,_);var s=n["data-row-key"];var d=a({id:s}),m=d.setActivatorNodeRef,p=d.listeners,l=d.setNodeRef,c=d.transform,u=d.transition,k=d.isDragging;if(v(s)){return h("tr",e({},n))}var I=e({},n.style,{transform:g.Transform.toString(c&&e({},c,{scaleY:1})),transition:u,cursor:"move"},k?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var C=t||h(j,{});return f("tr",e({},n,{ref:l,style:I,key:s}),y.map(o.children,(function(i){if(i.key==="__sort"){return b(i,{children:h("span",e({ref:m,style:{touchAction:"none",cursor:"move",display:"flex",alignItems:"center",justifyContent:"center"}},p,{children:h(w,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:C,onClick:x,size:"small"})}))})}return i})))};var F=function i(r){var o=I();return h(D,e({},r,{dragIcon:o.dragIcon}))};var O=["dragIcon","uidFieldKey","onDragChange","disabledDrag"];var N=function a(u){var j,g;var v=u.dragIcon,x=u.uidFieldKey,f=u.onDragChange,y=u.disabledDrag,b=i(u,O);var w=l.useFormInstance();var k=l.useWatch(u.completeName?u.completeName:u.name,w);var I=r(o(t,{activationConstraint:{delay:0,tolerance:0}}));var _=function i(e){var r=e.active,o=e.over;if(r.id!==(o==null?void 0:o.id)){var t=k.findIndex((function(i){return i[x]===r.id}));var n=k.findIndex((function(i){return i[x]===(o==null?void 0:o.id)}));var s=p(k,t,n);w.setFields([{name:u.completeName?u.completeName:u.name,value:s}]);f==null||f(s,{activeId:r.id,overId:o==null?void 0:o.id,activeIndex:t,overIndex:n})}};var D=y?b.columns:[{dataIndex:"__sort",width:40,key:"__sort",align:"center"}].concat(b.columns||[]);return h(C,{value:{dragIcon:v,uidFieldKey:x},children:h(n,{sensors:I,modifiers:[s],onDragEnd:_,children:h(d,{items:(k==null?void 0:k.map((function(i){return i[x]})))||[],strategy:m,children:h(c,e({},b,{uidFieldKey:x,columns:D,tableProps:e({},b.tableProps,{components:e({},(j=b.tableProps)==null?void 0:j.components,{body:e({},(g=b.tableProps)==null||(g=g.components)==null?void 0:g.body,{row:y?undefined:F})})})}))})})})};export{N as DragEditableTable};
28
+ import{a as i,_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{useSensors as r,useSensor as o,PointerSensor as t,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as p}from"@dnd-kit/sortable";import{Form as l}from"antd";import{EditableTable as c}from"../editable-table/index.js";import{createCtx as u}from"@wove/react/cjs/create-ctx";import j from"@ant-design/icons/es/icons/DragOutlined";import{CSS as g}from"@dnd-kit/utilities";import{isUndefinedOrNull as v,noop as x}from"@flatbiz/utils";import{createElement as f,Children as y,cloneElement as b}from"react";import{IconWrapper as w}from"../icon-wrapper/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-853b36e6.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../text-symbol-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../form-item-hidden/index.js";import"../table-cell-render/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-render/index.js";import"../date-picker-wrapper/index.js";import"../time-ea73b2fb.js";import"../date-range-picker-wrapper/index.js";import"../input-wrapper/index.js";import"../selector-wrapper/index.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../index-636a568e.js";import"../request-status/index.js";import"../text-overflow/index.js";import"@ant-design/icons/es/icons/SyncOutlined";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"../switch-wrapper/index.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper/index.js";import"../upload-wrapper/index.js";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";var k=u(),I=k[0],C=k[1];var _=["dragIcon"];var D=function r(o){var t=o.dragIcon,n=i(o,_);var s=n["data-row-key"];var d=a({id:s}),m=d.setActivatorNodeRef,p=d.listeners,l=d.setNodeRef,c=d.transform,u=d.transition,k=d.isDragging;if(v(s)){return h("tr",e({},n))}var I=e({},n.style,{transform:g.Transform.toString(c&&e({},c,{scaleY:1})),transition:u,cursor:"move"},k?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var C=t||h(j,{});return f("tr",e({},n,{ref:l,style:I,key:s}),y.map(o.children,function(i){if(i.key==="__sort"){return b(i,{children:h("span",e({ref:m,style:{touchAction:"none",cursor:"move",display:"flex",alignItems:"center",justifyContent:"center"}},p,{children:h(w,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:C,onClick:x,size:"small"})}))})}return i}))};var F=function i(r){var o=I();return h(D,e({},r,{dragIcon:o.dragIcon}))};var O=["dragIcon","uidFieldKey","onDragChange","disabledDrag"];var N=function a(u){var j,g;var v=u.dragIcon,x=u.uidFieldKey,f=u.onDragChange,y=u.disabledDrag,b=i(u,O);var w=l.useFormInstance();var k=l.useWatch(u.completeName?u.completeName:u.name,w);var I=r(o(t,{activationConstraint:{delay:0,tolerance:0}}));var _=function i(e){var r=e.active,o=e.over;if(r.id!==(o==null?void 0:o.id)){var t=k.findIndex(function(i){return i[x]===r.id});var n=k.findIndex(function(i){return i[x]===(o==null?void 0:o.id)});var s=p(k,t,n);w.setFields([{name:u.completeName?u.completeName:u.name,value:s}]);f==null||f(s,{activeId:r.id,overId:o==null?void 0:o.id,activeIndex:t,overIndex:n})}};var D=y?b.columns:[{dataIndex:"__sort",width:40,key:"__sort",align:"center"}].concat(b.columns||[]);return h(C,{value:{dragIcon:v,uidFieldKey:x},children:h(n,{sensors:I,modifiers:[s],onDragEnd:_,children:h(d,{items:(k==null?void 0:k.map(function(i){return i[x]}))||[],strategy:m,children:h(c,e({},b,{uidFieldKey:x,columns:D,tableProps:e({},b.tableProps,{components:e({},(j=b.tableProps)==null?void 0:j.components,{body:e({},(g=b.tableProps)==null||(g=g.components)==null?void 0:g.body,{row:y?undefined:F})})})}))})})})};export{N as DragEditableTable};
29
29
  //# sourceMappingURL=index.js.map